12017-07-04 Release Manager 2 3 * GCC 6.4.0 released. 4 52016-12-21 Release Manager 6 7 * GCC 6.3.0 released. 8 92016-08-22 Release Manager 10 11 * GCC 6.2.0 released. 12 132016-04-27 Release Manager 14 15 * GCC 6.1.0 released. 16 172016-04-13 Bernd Schmidt <bschmidt@redhat.com> 18 19 Patch from Roger Orr <rogero@howzatt.demon.co.uk> 20 PR preprocessor/69650 21 * directives.c (do_linemarker): Reread map after calling 22 cpp_get_token. 23 242016-04-06 Richard Henderson <rth@redhat.com> 25 26 PR preprocessor/61817 27 PR preprocessor/69391 28 * internal.h (_cpp_builtin_macro_text): Update decl. 29 * macro.c (_cpp_builtin_macro_text): Accept location for __LINE__. 30 (builtin_macro): Accept a second location for __LINE__. 31 (enter_macro_context): Compute both virtual and real expansion 32 locations for the macro. 33 342016-03-25 Bernd Schmidt <bschmidt@redhat.com> 35 36 PR lto/69650 37 * directives.c (do_linemarker): Test for file left but not entered 38 here. 39 * line-map.c (linemap_add): Not here. 40 412016-03-21 Jakub Jelinek <jakub@redhat.com> 42 43 PR target/70296 44 * include/cpplib.h (cpp_fun_like_macro_p): New prototype. 45 * macro.c (cpp_fun_like_macro_p): New function. 46 472016-03-15 Richard Henderson <rth@redhat.com> 48 49 * line-map.c (new_linemap): Make alloc_size a size_t. 50 512016-03-14 Jason Merrill <jason@redhat.com> 52 53 * expr.c (cpp_classify_number): Hex floats are new in C++1z. 54 * init.c (lang_defaults): Likewise. 55 562016-03-09 David Malcolm <dmalcolm@redhat.com> 57 58 PR c/68473 59 PR c++/70105 60 * line-map.c (linemap_macro_map_loc_unwind_toward_spelling): Move 61 decl... 62 * include/line-map.h 63 (linemap_macro_map_loc_unwind_toward_spelling): ...here, 64 converting from static to extern. 65 662016-03-09 David Malcolm <dmalcolm@redhat.com> 67 68 PR c/68473 69 PR c++/70105 70 * include/line-map.h (source_range::debug): Delete. 71 (struct location_range): Update comment. Replace 72 expanded_location fields "m_start", "m_finish", and "m_caret" with 73 a source_location field: "m_loc". 74 (class rich_location): Reword comment. 75 (rich_location::get_loc): Reimplement in terms of a new overloaded 76 variant which takes an unsigned int. 77 (rich_location::get_loc_addr): Delete. 78 (rich_location::add_range): Drop params "start" and "finish" in 79 favor of param "loc". Drop overloaded variants taking a 80 source_range or location_range *. 81 (rich_location::lazily_expand_location): Delete in favor of... 82 (rich_location::get_expanded_location): New decl. 83 (rich_location::m_loc): Delete field. 84 (rich_location::m_column_override): New field. 85 * line-map.c (rich_location::rich_location): Drop name of 86 line_maps * param. Update initializations for deletion of field 87 "m_loc" and addition of field "m_column_override". Reimplement 88 body as a call to add_range. Delete overloaded variant taking a 89 source_range. 90 (rich_location::get_loc): New function. 91 (rich_location::lazily_expand_location): Delete in favor of... 92 (rich_location::get_expanded_location): New function. 93 (rich_location::override_column): Reimplement. 94 (rich_location::add_range): Drop params "start" and "finish" in 95 favor of param "loc". Eliminate location expansion in favor of 96 simply storing loc. Drop overloaded variants taking a 97 source_range or location_range *. 98 (rich_location::set_range): Eliminate location expansion. 99 1002016-02-29 David Malcolm <dmalcolm@redhat.com> 101 102 PR preprocessor/69985 103 (linemap_position_for_loc_and_offset): Rename param from "offset" 104 to "column_offset". Right-shift the column_offset by m_range_bits 105 of the pertinent ordinary map whenever offsetting a 106 source_location. For clarity, offset the column by the column 107 offset, rather than the other way around. 108 1092016-02-23 David Malcolm <dmalcolm@redhat.com> 110 111 PR preprocessor/69126 112 PR preprocessor/69543 113 * line-map.c (linemap_compare_locations): At the function top, 114 replace inlined bodies of get_location_from_adhoc_loc with calls 115 to get_location_from_adhoc_loc. Add a pair of calls to 116 get_location_from_adhoc_loc at the bottom of the function, to 117 avoid meaningless comparisons of ad-hoc and non-ad-hoc locations. 118 1192016-02-08 David Malcolm <dmalcolm@redhat.com> 120 121 PR preprocessor/69664 122 * errors.c (cpp_diagnostic_with_line): Only call 123 rich_location::override_column if the column is non-zero. 124 * line-map.c (rich_location::override_column): Update columns 125 within m_ranges[0]. Add assertions to verify that doing so is 126 sane. 127 1282016-02-05 Jakub Jelinek <jakub@redhat.com> 129 130 PR c++/69628 131 * charset.c (cpp_interpret_charconst): Clear *PCHARS_SEEN 132 and *UNSIGNEDP if bailing out early due to errors. 133 1342016-01-28 Jakub Jelinek <jakub@redhat.com> 135 136 PR pch/68176 137 * files.c (_cpp_find_file): Set file->implicit_preinclude even if 138 included from file->implicit_preinclude header. 139 140 * directives.c (destringize_and_run): Adjust prototype. 141 1422016-01-27 David Malcolm <dmalcolm@redhat.com> 143 144 PR preprocessor/69126 145 * directives.c (destringize_and_run): Add expansion_loc param; use 146 it when handling unexpanded pragmas to fixup the locations of the 147 synthesized tokens. 148 (_cpp_do__Pragma): Add expansion_loc param and use it when calling 149 destringize_and_run. 150 * internal.h (_cpp_do__Pragma): Add expansion_loc param. 151 * macro.c (builtin_macro): Pass expansion location of _Pragma to 152 _cpp_do__Pragma. 153 1542016-01-14 David Malcolm <dmalcolm@redhat.com> 155 156 PR preprocessor/69177 157 * line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): New 158 constant. 159 (LINE_MAP_MAX_LOCATION_WITH_COLS): Add note about unit tests 160 to comment. 161 (can_be_stored_compactly_p): Reduce threshold from 162 LINE_MAP_MAX_LOCATION_WITH_COLS to 163 LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES. 164 (get_combined_adhoc_loc): Likewise. 165 (get_range_from_loc): Likewise. 166 (linemap_line_start): Ensure that a new ordinary map is created 167 when transitioning from range-packing being enabled to disabled, 168 at the LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES threshold. Set 169 range_bits to 0 for new ordinary maps when beyond this limit. 170 Prevent the "increase the column bits of a freshly created map" 171 optimization if the range bits has reduced. 172 1732016-01-08 Jakub Jelinek <jakub@redhat.com> 174 175 PR c++/69145 176 * files.c (cpp_included_before): If IS_ADHOC_LOC (location), lookup 177 real location from the line_table. 178 1792016-01-04 Jakub Jelinek <jakub@redhat.com> 180 181 Update copyright years. 182 1832015-12-22 David Malcolm <dmalcolm@redhat.com> 184 185 * line-map.c (get_combined_adhoc_loc): Remove condition 186 on locus < RESERVED_LOCATION_COUNT when considering 187 whether a caret == start == finish location can be 188 simply stored as the caret location. 189 1902015-12-07 David Malcolm <dmalcolm@redhat.com> 191 192 * include/line-map.h (rich_location::set_range): Add line_maps * 193 param; convert param from source_range to source_location. Drop 194 "overwrite_loc_p" param. 195 * line-map.c (rich_location::set_range): Likewise, acting as if 196 "overwrite_loc_p" were true, and getting range from the location. 197 1982015-11-20 David Malcolm <dmalcolm@redhat.com> 199 200 PR 62314 201 * include/line-map.h (source_range::intersects_line_p): New 202 method. 203 (rich_location::~rich_location): New. 204 (rich_location::add_fixit_insert): New method. 205 (rich_location::add_fixit_remove): New method. 206 (rich_location::add_fixit_replace): New method. 207 (rich_location::get_num_fixit_hints): New accessor. 208 (rich_location::get_fixit_hint): New accessor. 209 (rich_location::MAX_FIXIT_HINTS): New constant. 210 (rich_location::m_num_fixit_hints): New field. 211 (rich_location::m_fixit_hints): New field. 212 (class fixit_hint): New class. 213 (class fixit_insert): New class. 214 (class fixit_remove): New class. 215 (class fixit_replace): New class. 216 * line-map.c (source_range::intersects_line_p): New method. 217 (rich_location::rich_location): Add initialization of 218 m_num_fixit_hints to both ctors. 219 (rich_location::~rich_location): New. 220 (rich_location::add_fixit_insert): New method. 221 (rich_location::add_fixit_remove): New method. 222 (rich_location::add_fixit_replace): New method. 223 (fixit_insert::fixit_insert): New. 224 (fixit_insert::~fixit_insert): New. 225 (fixit_insert::affects_line_p): New. 226 (fixit_remove::fixit_remove): New. 227 (fixit_remove::affects_line_p): New. 228 (fixit_replace::fixit_replace): New. 229 (fixit_replace::~fixit_replace): New. 230 (fixit_replace::affects_line_p): New. 231 2322015-11-19 Jakub Jelinek <jakub@redhat.com> 233 234 PR preprocessor/60736 235 * include/cpplib.h (cpp_errno_filename): New prototype. 236 * errors.c (cpp_errno): Don't handle msgid "" specially, use 237 _(msgid) instead of msgid as argument to cpp_error. 238 (cpp_errno_filename): New function. 239 * files.c (read_file_guts): Use cpp_errno_filename instead of 240 cpp_errno. 241 (open_file_failed): Likewise. Use file->name if file->path is NULL 242 in diagnostics. 243 2442015-11-13 David Malcolm <dmalcolm@redhat.com> 245 246 * errors.c (cpp_diagnostic): Pass pfile->line_table to 247 rich_location ctor. 248 (cpp_diagnostic_with_line): Likewise. 249 * include/cpplib.h (struct cpp_token): Update comment for src_loc 250 to indicate that the range of the token is "baked into" the 251 source_location. 252 * include/line-map.h (source_location): Update the descriptive 253 comment to reflect the packing scheme for short ranges, adding 254 worked examples of location encoding. 255 (struct line_map_ordinary): Drop field "column_bits" in favor 256 of field "m_column_and_range_bits"; add field "m_range_bits". 257 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete. 258 (location_adhoc_data): Add source_range field. 259 (struct line_maps): Add fields "default_range_bits", 260 "num_optimized_ranges" and "num_unoptimized_ranges". 261 (get_combined_adhoc_loc): Add source_range param. 262 (get_range_from_loc): New declaration. 263 (pure_location_p): New prototype. 264 (COMBINE_LOCATION_DATA): Add source_range param. 265 (SOURCE_LINE): Update for renaming of column_bits. 266 (SOURCE_COLUMN): Likewise. Shift the column right by the map's 267 range_bits. 268 (LAST_SOURCE_LINE_LOCATION): Update for renaming of column_bits. 269 (linemap_position_for_line_and_column): Add line_maps * params. 270 (rich_location::rich_location): Likewise. 271 * lex.c (_cpp_lex_direct): Capture the range of the token, baking 272 it into token->src_loc via a call to COMBINE_LOCATION_DATA. 273 * line-map.c (LINE_MAP_MAX_COLUMN_NUMBER): Reduce from 1U << 17 to 274 1U << 12. 275 (location_adhoc_data_hash): Add the src_range into 276 the hash value. 277 (location_adhoc_data_eq): Require equality of the src_range 278 values. 279 (can_be_stored_compactly_p): New function. 280 (get_combined_adhoc_loc): Add src_range param, and store it, 281 via a bit-packing scheme for short ranges, otherwise within the 282 lookaside table. Remove the requirement that data is non-NULL. 283 (get_range_from_adhoc_loc): New function. 284 (get_range_from_loc): New function. 285 (pure_location_p): New function. 286 (linemap_add): Ensure that start_location has zero for the 287 range_bits, unless we're past LINE_MAP_MAX_LOCATION_WITH_COLS. 288 Initialize range_bits to zero. Assert that the start_location 289 is "pure". 290 (linemap_line_start): Assert that the 291 column_and_range_bits >= range_bits. 292 Update determinination of whether we need to start a new map 293 using the effective column bits, without the range bits. 294 Use the set's default_range_bits in new maps, apart from 295 those with column_bits == 0, which should also have 0 range_bits. 296 Increase the column bits for new maps by the range bits. 297 When adding lines to an existing map, use set->highest_line 298 directly rather than offsetting highest by SOURCE_COLUMN. 299 Add assertions to sanity-check the return value. 300 (linemap_position_for_column): Offset to_column by range_bits. 301 Update set->highest_location if necessary. 302 (linemap_position_for_line_and_column): Add line_maps * param. 303 Update the calculation to offset the column by range_bits, and 304 conditionalize it on being <= LINE_MAP_MAX_LOCATION_WITH_COLS. 305 Bound it by LINEMAPS_MACRO_LOWEST_LOCATION. Update 306 set->highest_location if necessary. 307 (linemap_position_for_loc_and_offset): Handle ad-hoc locations; 308 pass "set" to linemap_position_for_line_and_column. 309 (linemap_macro_map_loc_unwind_toward_spelling): Add line_maps 310 param. Handle ad-hoc locations. 311 (linemap_location_in_system_header_p): Pass on "set" to call to 312 linemap_macro_map_loc_unwind_toward_spelling. 313 (linemap_macro_loc_to_spelling_point): Retain ad-hoc locations. 314 Pass on "set" to call to 315 linemap_macro_map_loc_unwind_toward_spelling. 316 (linemap_resolve_location): Retain ad-hoc locations. Pass on 317 "set" to call to linemap_macro_map_loc_unwind_toward_spelling. 318 (linemap_unwind_toward_expansion): Pass on "set" to call to 319 linemap_macro_map_loc_unwind_toward_spelling. 320 (linemap_expand_location): Extract the data pointer before 321 extracting the location. 322 (rich_location::rich_location): Add line_maps param; use it to 323 extract the range from the source_location. 324 * location-example.txt: Regenerate, showing new representation. 325 3262015-11-06 David Malcolm <dmalcolm@redhat.com> 327 328 * errors.c (cpp_diagnostic): Update for change in signature 329 of "error" callback. 330 (cpp_diagnostic_with_line): Likewise, calling override_column 331 on the rich_location. 332 * include/cpplib.h (struct cpp_callbacks): Within "error" 333 callback, convert param from source_location to rich_location *, 334 and drop column_override param. 335 * include/line-map.h (struct source_range): New struct. 336 (struct location_range): New struct. 337 (class rich_location): New class. 338 (linemap_client_expand_location_to_spelling_point): New declaration. 339 * line-map.c (rich_location::rich_location): New ctors. 340 (rich_location::lazily_expand_location): New method. 341 (rich_location::override_column): New method. 342 (rich_location::add_range): New methods. 343 (rich_location::set_range): New method. 344 3452015-11-06 David Malcolm <dmalcolm@redhat.com> 346 347 * include/line-map.h (struct linemap_stats): Add fields 348 "adhoc_table_size" and "adhoc_table_entries_used". 349 * line-map.c (linemap_get_statistics): Populate above fields. 350 3512015-11-04 Mikhail Maltsev <maltsevm@gmail.com> 352 353 * config.in: Regenerate. 354 * configure: Regenerate. 355 * configure.ac: Remove ENABLE_CHECKING. 356 3572015-11-03 Uros Bizjak <ubizjak@gmail.com> 358 359 * lex.c (search_line_sse42): Correctly advance the pointer to an 360 aligned address. 361 3622015-11-02 David Malcolm <dmalcolm@redhat.com> 363 364 * include/line-map.h (source_location): In the table in the 365 descriptive comment, show UNKNOWN_LOCATION, BUILTINS_LOCATION, 366 LINE_MAP_MAX_LOCATION_WITH_COLS, LINE_MAP_MAX_SOURCE_LOCATION. 367 Add notes about ad-hoc values. 368 3692015-10-21 Mikhail Maltsev <maltsevm@gmail.com> 370 371 * include/line-map.h: Use CHECKING_P instead of ENABLE_CHECKING. 372 * init.c: Likewise. 373 * macro.c (struct macro_arg_token_iter, set_arg_token, 374 macro_arg_token_iter_init, macro_arg_token_iter_forward, 375 macro_arg_token_iter_get_token, macro_arg_token_iter_get_location, 376 alloc_expanded_arg_mem, _cpp_backup_tokens): Likewise. 377 378 * config.in: Regenerate. 379 * configure: Regenerate. 380 * configure.ac (CHECKING_P): Define. 381 * system.h (fancy_abort): Declare. 382 (abort): Define. 383 (gcc_assert): Define. Use CHECKING_P. 384 3852015-10-13 Mikhail Maltsev <maltsevm@gmail.com> 386 387 * system.h (CHECKING_P, gcc_checking_assert): Define. 388 3892015-09-21 Manuel López-Ibáñez <manu@gcc.gnu.org> 390 391 PR c/66415 392 * line-map.c (linemap_position_for_loc_and_offset): Handle the 393 case of long lines encoded in multiple maps. 394 3952015-09-07 Marek Polacek <polacek@redhat.com> 396 397 * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning. 398 3992015-08-06 Yaakov Selkowitz <yselkowi@redhat.com> 400 401 * configure: Regenerate. 402 4032015-07-08 Thomas Schwinge <thomas@codesourcery.com> 404 405 * include/line-map.h (RESERVED_LOCATION_COUNT): Change type to 406 source_location. 407 4082015-07-02 Paolo Carlini <paolo.carlini@oracle.com> 409 410 PR preprocessor/53690 411 * charset.c (_cpp_valid_ucn): Add cppchar_t * parameter and change 412 return type to bool. Fix encoding of \u0000 and \U00000000 in C++. 413 (convert_ucn): Adjust call. 414 * lex.c (forms_identifier_p): Likewise. 415 * internal.h (_cpp_valid_ucn): Adjust declaration. 416 4172015-06-30 Edward Smith-Rowland <3dw4rd@verizon.net> 418 419 Implement N4197 - Adding u8 character literals 420 * include/cpplib.h (UTF8CHAR, UTF8CHAR_USERDEF): New cpp tokens; 421 (struct cpp_options): Add utf8_char_literals. 422 * init.c (struct lang_flags): Add utf8_char_literals; 423 (struct lang_flags lang_defaults): Add column for utf8_char_literals. 424 * macro.c (stringify_arg()): Treat CPP_UTF8CHAR token; 425 * expr.c (cpp_userdef_char_remove_type(), cpp_userdef_char_add_type()): 426 Treat CPP_UTF8CHAR_USERDEF, CPP_UTF8CHAR tokens; 427 (cpp_userdef_char_p()): Treat CPP_UTF8CHAR_USERDEF token; 428 (eval_token(), _cpp_parse_expr()): Treat CPP_UTF8CHAR token. 429 * lex.c (lex_string(), _cpp_lex_direct()): Include CPP_UTF8CHAR tokens. 430 * charset.c (converter_for_type(), cpp_interpret_charconst()): 431 Treat CPP_UTF8CHAR token. 432 4332015-06-30 Uros Bizjak <ubizjak@gmail.com> 434 435 * lex.c (search_line_sse42) [__GCC_ASM_FLAG_OUTPUTS__]: New main 436 loop using asm flag outputs. 437 4382015-06-08 Marek Polacek <polacek@redhat.com> 439 440 PR c/66415 441 * line-map.c (linemap_position_for_loc_and_offset): Remove 442 linemap_assert_fails; reverse conditions. 443 4442015-05-26 Manuel López-Ibáñez <manu@gcc.gnu.org> 445 446 * line-map.c (LINE_MAP_MAX_COLUMN_NUMBER 447 LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_SOURCE_LOCATION): 448 New constants. 449 (linemap_line_start): Use them. 450 (linemap_position_for_column): Use them. 451 4522015-05-20 David Malcolm <dmalcolm@redhat.com> 453 454 * include/line-map.h (MAP_START_LOCATION): Eliminate the non-const 455 variant, and tweak comment for the const variant. 456 (ORDINARY_MAP_STARTING_LINE_NUMBER): Drop the non-const variant. 457 (ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise. 458 (ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise. 459 (SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete. 460 (ORDINARY_MAP_FILE_NAME): Drop the non-const variant. 461 (MACRO_MAP_MACRO): Likewise. 462 (MACRO_MAP_NUM_MACRO_TOKENS): Likewise. 463 (MACRO_MAP_LOCATIONS): Likewise. 464 (MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise. 465 * line-map.c (linemap_add): Replace writes through macros with 466 direct field accesses. 467 (linemap_enter_macro): Likewise. 468 (linemap_line_start): Likewise. 469 4702015-05-19 David Malcolm <dmalcolm@redhat.com> 471 472 * directives.c (do_line): Strengthen local "map" from 473 const line_map * to const line_map_ordinary *. 474 (do_linemarker): Likewise. 475 (_cpp_do_file_change): Assert that we're not dealing with 476 a macro map. Introduce local "ord_map" via a call to 477 linemap_check_ordinary, guarded within the check for 478 non-NULL. Use it for typesafety. 479 * files.c (cpp_make_system_header): Strengthen local "map" from 480 const line_map * to const line_map_ordinary *. 481 * include/cpplib.h (struct cpp_callbacks): Likewise for second 482 parameter of "file_change" callback. 483 * include/line-map.h (struct line_map): Convert from a struct 484 containing a union to a base class. 485 (struct line_map_ordinary): Convert to a subclass of line_map. 486 (struct line_map_macro): Likewise. 487 (linemap_check_ordinary): Strengthen return type from line_map * 488 to line_map_ordinary *, and add a const-variant. 489 (linemap_check_macro): New pair of functions. 490 (ORDINARY_MAP_STARTING_LINE_NUMBER): Strengthen param from 491 const line_map * to const line_map_ordinary *, eliminating call 492 to linemap_check_ordinary. Likewise for the non-const variant. 493 (ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise. 494 (ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise. 495 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Likewise. 496 (ORDINARY_MAP_FILE_NAME): Likewise. 497 (MACRO_MAP_MACRO): Strengthen param from const line_map * to 498 const line_map_macro *. Likewise for the non-const variant. 499 (MACRO_MAP_NUM_MACRO_TOKENS): Likewise. 500 (MACRO_MAP_LOCATIONS): Likewise. 501 (MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise. 502 (struct maps_info): Replace with... 503 (struct maps_info_ordinary):...this and... 504 (struct maps_info_macro): ...this. 505 (struct line_maps): Convert fields "info_ordinary" and 506 "info_macro" to the above new structs. 507 (LINEMAPS_MAP_INFO): Delete both functions. 508 (LINEMAPS_MAPS): Likewise. 509 (LINEMAPS_ALLOCATED): Rewrite both variants to avoid using 510 LINEMAPS_MAP_INFO. 511 (LINEMAPS_USED): Likewise. 512 (LINEMAPS_CACHE): Likewise. 513 (LINEMAPS_MAP_AT): Likewise. 514 (LINEMAPS_ORDINARY_MAPS): Strengthen return type from line_map * 515 to line_map_ordinary *. 516 (LINEMAPS_ORDINARY_MAP_AT): Likewise. 517 (LINEMAPS_LAST_ORDINARY_MAP): Likewise. 518 (LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise. 519 (LINEMAPS_MACRO_MAPS): Strengthen return type from line_map * to 520 line_map_macro *. 521 (LINEMAPS_MACRO_MAP_AT): Likewise. 522 (LINEMAPS_LAST_MACRO_MAP): Likewise. 523 (LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise. 524 (linemap_map_get_macro_name): Strengthen param from 525 const line_map * to const line_map_macro *. 526 (SOURCE_LINE): Strengthen first param from const line_map * to 527 const line_map_ordinary *, removing call to 528 linemap_check_ordinary. 529 (SOURCE_COLUMN): Likewise. 530 (LAST_SOURCE_LINE_LOCATION): Likewise. 531 (LAST_SOURCE_LINE): Strengthen first param from const line_map * 532 to const line_map_ordinary *. 533 (LAST_SOURCE_COLUMN): Likewise. 534 (INCLUDED_FROM): Strengthen return type from line_map * to 535 line_map_ordinary *., and second param from const line_map * 536 to const line_map_ordinary *, removing call to 537 linemap_check_ordinary. 538 (MAIN_FILE_P): Strengthen param from const line_map * to 539 const line_map_ordinary *, removing call to 540 linemap_check_ordinary. 541 (linemap_position_for_line_and_column): Strengthen param from 542 const line_map * to const line_map_ordinary *. 543 (LINEMAP_FILE): Strengthen param from const line_map * to 544 const line_map_ordinary *, removing call to 545 linemap_check_ordinary. 546 (LINEMAP_LINE): Likewise. 547 (LINEMAP_SYSP): Likewise. 548 (linemap_resolve_location): Strengthen final param from 549 const line_map ** to const line_map_ordinary **. 550 * internal.h (CPP_INCREMENT_LINE): Likewise for local "map". 551 (linemap_enter_macro): Strengthen return type from 552 const line_map * to const line_map_macro *. 553 (linemap_add_macro_token): Likewise for first param. 554 * line-map.c (linemap_check_files_exited): Strengthen local "map" 555 from const line_map * to const line_map_ordinary *. 556 (new_linemap): Introduce local "map_size" and use it when 557 calculating how large the buffer should be. Rewrite based 558 on change of info_macro and info_ordinary into distinct types. 559 (linemap_add): Strengthen locals "map" and "from" from line_map * 560 to line_map_ordinary *. 561 (linemap_enter_macro): Strengthen return type from 562 const line_map * to const line_map_macro *, and local "map" from 563 line_map * to line_map_macro *. 564 (linemap_add_macro_token): Strengthen param "map" from 565 const line_map * to const line_map_macro *. 566 (linemap_line_start): Strengthen local "map" from line_map * to 567 line_map_ordinary *. 568 (linemap_position_for_column): Likewise. 569 (linemap_position_for_line_and_column): Strengthen first param 570 from const line_map * to const line_map_ordinary *. 571 (linemap_position_for_loc_and_offset): Strengthen local "map" from 572 const line_map * to const line_map_ordinary *. 573 (linemap_ordinary_map_lookup): Likewise for return type and locals 574 "cached" and "result". 575 (linemap_macro_map_lookup): Strengthen return type and locals 576 "cached" and "result" from const line_map * to 577 const line_map_macro *. 578 (linemap_macro_map_loc_to_exp_point): Likewise for param "map". 579 (linemap_macro_map_loc_to_def_point): Likewise. 580 (linemap_macro_map_loc_unwind_toward_spelling): Likewise. 581 (linemap_get_expansion_line): Strengthen local "map" from 582 const line_map * to const line_map_ordinary *. 583 (linemap_get_expansion_filename): Likewise. 584 (linemap_map_get_macro_name): Strengthen param from 585 const line_map * to const line_map_macro *. 586 (linemap_location_in_system_header_p): Add call to 587 linemap_check_ordinary in region guarded by 588 !linemap_macro_expansion_map_p. Introduce local "macro_map" via 589 linemap_check_macro in other region, using it in place of "map" 590 for typesafety. 591 (first_map_in_common_1): Add calls to linemap_check_macro. 592 (trace_include): Strengthen param "map" from const line_map * to 593 const line_map_ordinary *. 594 (linemap_macro_loc_to_spelling_point): Strengthen final param from 595 const line_map ** to const line_map_ordinary **. Replace a 596 C-style cast with a const_cast, and add calls to 597 linemap_check_macro and linemap_check_ordinary. 598 (linemap_macro_loc_to_def_point): Likewise. 599 (linemap_macro_loc_to_exp_point): Likewise. 600 (linemap_resolve_location): Strengthen final param from 601 const line_map ** to const line_map_ordinary **. 602 (linemap_unwind_toward_expansion): Introduce local "macro_map" via 603 a checked cast and use it in place of *map. 604 (linemap_unwind_to_first_non_reserved_loc): Strengthen local 605 "map1" from const line_map * to const line_map_ordinary *. 606 (linemap_expand_location): Introduce local "ord_map" via a checked 607 cast and use it in place of map. 608 (linemap_dump): Make local "map" const. Strengthen local 609 "includer_map" from line_map * to const line_map_ordinary *. 610 Introduce locals "ord_map" and "macro_map" via checked casts and 611 use them in place of "map" for typesafety. 612 (linemap_dump_location): Strengthen local "map" from 613 const line_map * to const line_map_ordinary *. 614 (linemap_get_file_highest_location): Update for elimination of 615 union. 616 (linemap_get_statistics): Strengthen local "cur_map" from 617 line_map * to const line_map_macro *. Update uses of sizeof to 618 use the appropriate line_map subclasses. 619 * macro.c (_cpp_warn_if_unused_macro): Add call to 620 linemap_check_ordinary. 621 (builtin_macro): Strengthen local "map" from const line_map * to 622 const line_map_macro *. 623 (enter_macro_context): Likewise. 624 (replace_args): Likewise. 625 (tokens_buff_put_token_to): Likewise for param "map". 626 (tokens_buff_add_token): Likewise. 627 6282015-05-13 David Malcolm <dmalcolm@redhat.com> 629 630 * include/line-map.h (source_location): Add a reference to 631 location-example.txt to the descriptive comment. 632 * location-example.txt: New file. 633 6342015-05-13 David Malcolm <dmalcolm@redhat.com> 635 636 * include/line-map.h (MAX_SOURCE_LOCATION): Convert from a macro 637 to a const source_location. 638 (RESERVED_LOCATION_COUNT): Likewise. 639 (linemap_check_ordinary): Convert from a macro to a pair of inline 640 functions, for const/non-const arguments. 641 (MAP_START_LOCATION): Likewise. 642 (ORDINARY_MAP_STARTING_LINE_NUMBER): Likewise. 643 (ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise. 644 (ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise. 645 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Convert from a macro to a 646 pair of inline functions, for const/non-const arguments, where the 647 latter is named... 648 (SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): New function. 649 (ORDINARY_MAP_FILE_NAME): Convert from a macro to a pair of inline 650 functions, for const/non-const arguments. 651 (MACRO_MAP_MACRO): Likewise. 652 (MACRO_MAP_NUM_MACRO_TOKENS): Likewise. 653 (MACRO_MAP_LOCATIONS): Likewise. 654 (MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise. 655 (LINEMAPS_MAP_INFO): Likewise. 656 (LINEMAPS_MAPS): Likewise. 657 (LINEMAPS_ALLOCATED): Likewise. 658 (LINEMAPS_USED): Likewise. 659 (LINEMAPS_CACHE): Likewise. 660 (LINEMAPS_ORDINARY_CACHE): Likewise. 661 (LINEMAPS_MACRO_CACHE): Likewise. 662 (LINEMAPS_MAP_AT): Convert from a macro to an inline function. 663 (LINEMAPS_LAST_MAP): Likewise. 664 (LINEMAPS_LAST_ALLOCATED_MAP): Likewise. 665 (LINEMAPS_ORDINARY_MAPS): Likewise. 666 (LINEMAPS_ORDINARY_MAP_AT): Likewise. 667 (LINEMAPS_ORDINARY_ALLOCATED): Likewise. 668 (LINEMAPS_ORDINARY_USED): Likewise. 669 (LINEMAPS_LAST_ORDINARY_MAP): Likewise. 670 (LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise. 671 (LINEMAPS_MACRO_MAPS): Likewise. 672 (LINEMAPS_MACRO_MAP_AT): Likewise. 673 (LINEMAPS_MACRO_ALLOCATED): Likewise. 674 (LINEMAPS_MACRO_USED): Likewise. 675 (LINEMAPS_MACRO_LOWEST_LOCATION): Likewise. 676 (LINEMAPS_LAST_MACRO_MAP): Likewise. 677 (LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise. 678 (IS_ADHOC_LOC): Likewise. 679 (COMBINE_LOCATION_DATA): Likewise. 680 (SOURCE_LINE): Likewise. 681 (SOURCE_COLUMN): Likewise. 682 (LAST_SOURCE_LINE_LOCATION): Likewise. 683 (LAST_SOURCE_LINE): Likewise. 684 (LAST_SOURCE_COLUMN): Likewise. 685 (LAST_SOURCE_LINE_LOCATION) 686 (INCLUDED_FROM): Likewise. 687 (MAIN_FILE_P): Likewise. 688 (LINEMAP_FILE): Likewise. 689 (LINEMAP_LINE): Likewise. 690 (LINEMAP_SYSP): Likewise. 691 (linemap_location_before_p): Likewise. 692 * line-map.c (linemap_check_files_exited): Make local "map" const. 693 (linemap_add): Use SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS. 694 (linemap_line_start): Likewise. 695 6962015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> 697 698 * aclocal.m4: Regenerated with automake-1.11.6. 699 7002015-05-13 David Malcolm <dmalcolm@redhat.com> 701 702 * include/line-map.h (linemap_assert): Move up within the file to 703 before all of the map accessor macros. 704 (linemap_assert_fails): Likewise. 705 (linemap_check_ordinary): Likewise. 706 (linemap_macro_expansion_map_p): Likewise. 707 7082015-05-12 David Malcolm <dmalcolm@redhat.com> 709 710 * directives.c (do_line): Set seen_line_directive on line_table. 711 (do_linemarker): Likewise. 712 * include/line-map.h (struct line_maps): Add new field 713 "seen_line_directive". 714 7152015-05-08 Jason Merrill <jason@redhat.com> 716 717 * include/cpplib.h: Add CPP_W_CXX11_COMPAT. 718 (struct cpp_options): Add cpp_warn_cxx11_compat. 719 * init.c (cpp_create_reader): Initialize it. 720 * lex.c (lex_string): Add -Wc++11-compat warning. 721 7222015-05-05 David Malcolm <dmalcolm@redhat.com> 723 724 * pch.c (cpp_valid_state): Fix indentation so that it reflects the 725 block structure. 726 7272015-05-05 David Malcolm <dmalcolm@redhat.com> 728 729 * include/line-map.h: Fix comment at the top of the file. 730 (source_location): Rewrite and expand the comment for this 731 typedef, adding an ascii-art table to clarify how source_location 732 values are allocated. 733 * line-map.c: Fix comment at the top of the file. 734 7352015-04-09 Richard Biener <rguenther@suse.de> 736 737 PR pch/65550 738 * files.c (pch_open_file): Allow main and pre-included files 739 when trying to open a PCH. 740 7412015-04-06 Jakub Jelinek <jakub@redhat.com> 742 743 PR preprocessor/61977 744 * lex.c (cpp_peek_token): If peektok is CPP_EOF, back it up 745 with all tokens peeked by the current function. 746 7472015-04-02 Jakub Jelinek <jakub@redhat.com> 748 749 PR preprocessor/61977 750 * lex.c (cpp_peek_token): Temporarily clear pfile->cb.line_change. 751 7522015-03-23 Jakub Jelinek <jakub@redhat.com> 753 754 PR preprocessor/65238 755 * internal.h (_cpp_scan_out_logical_line): Add third argument. 756 * directives.c (prepare_directive_trad): Pass false to it. 757 * traditional.c (_cpp_read_logical_line_trad, 758 _cpp_create_trad_definition): Likewise. 759 (struct fun_macro): Add paramc field. 760 (fun_like_macro): New function. 761 (maybe_start_funlike): Handle NODE_BUILTIN macros. Initialize 762 macro->paramc field. 763 (save_argument): Use macro->paramc instead of 764 macro->node->value.macro->paramc. 765 (push_replacement_text): Formatting fix. 766 (recursive_macro): Use fun_like_macro helper. 767 (_cpp_scan_out_logical_line): Likewise. Add BUILTIN_MACRO_ARG 768 argument. Initialize fmacro.paramc field. Handle builtin 769 function-like macros. 770 7712015-03-16 Edward Smith-Rowland <3dw4rd@verizon.net> 772 773 PR c++/64626 774 * lex.c (lex_number): If a number ends with digit-seps (') skip back 775 and let lex_string take them. 776 7772015-03-02 Markus Trippelsdorf <markus@trippelsdorf.de> 778 779 PR target/65261 780 * lex.c (search_line_fast): Silence ubsan errors. 781 7822015-02-03 <dodji@redhat.com> 783 784 PR preprocessor/64803 785 * internal.h (cpp_reader::top_most_macro_node): New data member. 786 * macro.c (enter_macro_context): Pass the location of the end of 787 the top-most invocation of the function-like macro, or the 788 location of the expansion point of the top-most object-like macro. 789 (cpp_get_token_1): Store the top-most macro node in the new 790 pfile->top_most_macro_node data member. 791 (_cpp_pop_context): Clear the new cpp_reader::top_most_macro_node 792 data member. 793 7942015-01-30 Szabolcs Nagy <szabolcs.nagy@arm.com> 795 796 * lex.c (search_line_fast): Change __ARM_NEON__ to __ARM_NEON. 797 7982015-01-23 Marek Polacek <polacek@redhat.com> 799 800 DR#412 801 PR preprocessor/60570 802 * directives.c (do_elif): Don't evaluate #elif conditionals 803 when they don't need to be. 804 8052015-01-16 Jakub Jelinek <jakub@redhat.com> 806 807 * expr.c (cpp_classify_number): Add N_() around ?: string 808 literals used in cpp_error_with_line call as format string. 809 8102015-01-05 Jakub Jelinek <jakub@redhat.com> 811 812 Update copyright years. 813 8142014-12-19 Jakub Jelinek <jakub@redhat.com> 815 816 PR preprocessor/63831 817 * directives.c (lex_macro_node): Remove __has_attribute__ handling. 818 * internal.h (struct spec_node): Remove n__has_attribute__ field. 819 (struct lexer_state): Remove in__has_attribute__ field. 820 * macro.c (_cpp_builtin_macro_text): Handle BT_HAS_ATTRIBUTE. 821 * identifiers.c (_cpp_init_hashtable): Remove __has_attribute__ 822 handling. 823 * init.c (builtin_array): Add __has_attribute and __has_cpp_attribute. 824 (cpp_init_special_builtins): Don't initialize __has_attribute 825 or __has_cpp_attribute if CLK_ASM or pfile->cb.has_attribute is NULL. 826 * traditional.c (enum ls): Remove ls_has_attribute, 827 ls_has_attribute_close. 828 (_cpp_scan_out_logical_line): Remove __has_attribute__ handling. 829 * include/cpplib.h (enum cpp_builtin_type): Add BT_HAS_ATTRIBUTE. 830 * pch.c (cpp_read_state): Remove __has_attribute__ handling. 831 * expr.c (eval_token): Likewise. 832 (parse_has_attribute): Removed. 833 8342014-12-11 Uros Bizjak <ubizjak@gmail.com> 835 836 * directives.c (cpp_define_formatted): Use xvasprintf. 837 8382014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org> 839 840 * line-map.c (linemap_position_for_loc_and_offset): Add new 841 linemap_assert_fails. 842 8432014-12-02 Manuel López-Ibáñez <manu@gcc.gnu.org> 844 845 * include/line-map.h (linemap_assert_fails): Declare. 846 * line-map.c (linemap_position_for_loc_and_offset): Use it. 847 8482014-12-02 Manuel López-Ibáñez <manu@gcc.gnu.org> 849 850 * line-map.c (linemap_add): Fix typo. 851 (linemap_line_start): Fix whitespace. 852 8532014-11-29 John Schmerge <jbschmerge@gmail.com> 854 855 PR preprocessor/41698 856 * charset.c (one_utf8_to_utf16): Do not produce surrogate pairs 857 for 0xffff. 858 8592014-11-25 Jakub Jelinek <jakub@redhat.com> 860 861 PR preprocessor/60436 862 * line-map.c (linemap_line_start): If highest is above 0x60000000 863 and we are still tracking columns or highest is above 0x70000000, 864 force add_map. 865 8662014-11-20 Uros Bizjak <ubizjak@gmail.com> 867 868 PR target/63966 869 * lex.c [__i386__ || __x86_64__]: Compile special SSE functions 870 only for (__GNUC__ >= 5 || !defined(__PIC__)). 871 8722014-11-13 Manuel López-Ibáñez <manu@gcc.gnu.org> 873 874 * include/line-map.h: Include EXPR, so that unused variable warnings 875 do not occur. 876 8772014-11-11 Manuel López-Ibáñez <manu@gcc.gnu.org> 878 879 PR fortran/44054 880 * include/line-map.h (linemap_position_for_loc_and_offset): 881 Declare. 882 * line-map.c (linemap_position_for_loc_and_offset): New. 883 8842014-11-11 David Malcolm <dmalcolm@redhat.com> 885 886 * ChangeLog.jit: New. 887 8882014-11-10 Edward Smith-Rowland <3dw4rd@verizon.net> 889 890 * include/cpplib.h (cpp_callbacks): Add has_attribute. 891 * internal.h (lexer_state): Add in__has_attribute__. 892 * directives.c (lex_macro_node): Prevent use of __has_attribute__ 893 as a macro. 894 * expr.c (parse_has_attribute): New function; (eval_token): Look for 895 __has_attribute__ and route to parse_has_attribute. 896 * identifiers.c (_cpp_init_hashtable): Initialize n__has_attribute__. 897 * pch.c (cpp_read_state): Initialize n__has_attribute__. 898 * traditional.c (enum ls): Add ls_has_attribute, ls_has_attribute_close; 899 (_cpp_scan_out_logical_line): Attend to __has_attribute__. 900 9012014-11-06 Joseph Myers <joseph@codesourcery.com> 902 903 * include/cpp-id-data.h (struct cpp_macro): Update comment 904 regarding parameters. 905 * include/cpplib.h (struct cpp_macro_arg, struct cpp_identifier): 906 Add spelling fields. 907 (struct cpp_token): Update comment on macro_arg. 908 * internal.h (_cpp_save_parameter): Add extra argument. 909 (_cpp_spell_ident_ucns): New declaration. 910 * lex.c (lex_identifier): Add SPELLING argument. Set *SPELLING to 911 original spelling of identifier. 912 (_cpp_lex_direct): Update calls to lex_identifier. 913 (_cpp_spell_ident_ucns): New function, factored out of 914 cpp_spell_token. 915 (cpp_spell_token): Adjust FORSTRING argument semantics to return 916 original spelling of identifiers. Use _cpp_spell_ident_ucns in 917 !FORSTRING case. 918 (_cpp_equiv_tokens): Check spellings of identifiers and macro 919 arguments are identical. 920 * macro.c (macro_arg_saved_data): New structure. 921 (paste_tokens): Use original spellings of identifiers from 922 cpp_spell_token. 923 (_cpp_save_parameter): Add argument SPELLING. Save both canonical 924 node and its value. 925 (parse_params): Update calls to _cpp_save_parameter. 926 (lex_expansion_token): Save spelling of macro argument tokens. 927 (_cpp_create_definition): Extract canonical node from saved data. 928 (cpp_macro_definition): Use UCNs in spelling of macro name. Use 929 original spellings of macro argument tokens and identifiers. 930 * traditional.c (scan_parameters): Update call to 931 _cpp_save_parameter. 932 9332014-11-05 Joseph Myers <joseph@codesourcery.com> 934 935 PR preprocessor/9449 936 * init.c (lang_defaults): Enable extended identifiers for C++ and 937 C99-based standards. 938 9392014-10-22 Alan Modra <amodra@gmail.com> 940 941 * symtab.c (ht_create): Use obstack_specify_allocation in place of 942 _obstack_begin. 943 * files.c (_cpp_init_files): Likewise. 944 * init.c (cpp_create_reader): Likewise. 945 * identifiers.c (_cpp_init_hashtable): Likewise. 946 9472014-10-14 Manuel López-Ibáñez <manu@gcc.gnu.org> 948 949 * include/line-map.h (linemap_location_from_macro_expansion_p): 950 const struct line_maps * argument. 951 (linemap_position_for_line_and_column): const struct line_map * 952 argument. 953 * line-map.c (linemap_add_macro_token): Use correct argument name 954 in comment. 955 (linemap_position_for_line_and_column): const struct line_map * 956 argument. 957 (linemap_macro_map_loc_to_def_point): Fix comment. Make static. 958 (linemap_location_from_macro_expansion_p): const struct line_maps * 959 argument. 960 (linemap_resolve_location): Fix argument names in comment. 961 9622014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 963 964 * lex.c (search_line_fast): Add new version to be used for Power8 965 and later targets when Altivec is enabled. Restrict the existing 966 Altivec version to big-endian systems so that lvsr is not used on 967 little endian, where it is deprecated. Remove LE-specific code 968 from the now-BE-only version. 969 9702014-10-02 Bernd Edlinger <bernd.edlinger@hotmail.de> 971 Jeff Law <law@redhat.com> 972 973 * charset.c (convert_no_conversion): Reallocate memory with 25% 974 headroom. 975 9762014-10-01 Edward Smith-Rowland <3dw4rd@verizon.net> 977 978 Implement SD-6: SG10 Feature Test Recommendations 979 * internal.h (lexer_state, spec_nodes): Add in__has_include__. 980 * directives.c: Support __has_include__ builtin. 981 * expr.c (parse_has_include): New function to parse __has_include__ 982 builtin; (eval_token()): Use it. 983 * files.c (_cpp_has_header()): New funtion to look for header; 984 (open_file_failed()): Not an error to not find a header file for 985 __has_include__. 986 * identifiers.c (_cpp_init_hashtable()): Add entry for __has_include__. 987 * pch.c (cpp_read_state): Lookup __has_include__. 988 * traditional.c (enum ls, _cpp_scan_out_logical_line()): Walk through 989 __has_include__ statements. 990 9912014-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de> 992 993 PR preprocessor/58893 994 * errors.c (cpp_diagnostic): Fix possible out of bounds access. 995 * files.c (_cpp_stack_include): Initialize src_loc for IT_CMDLINE. 996 9972014-09-24 Marek Polacek <polacek@redhat.com> 998 999 PR c/61405 1000 PR c/53874 1001 * include/cpplib.h (enum cpp_ttype): Define CPP_KEYWORD. 1002 10032014-09-17 Jan Hubicka <hubicka@ucw.cz> 1004 1005 * charset.c (conversion): Rename to ... 1006 (cpp_conversion): ... this one; update. 1007 * files.c (file_hash_entry): Rename to ... 1008 (cpp_file_hash_entry): ... this one ; update. 1009 10102014-09-17 Marek Polacek <polacek@redhat.com> 1011 1012 PR c/61854 1013 * init.c (struct lang_flags): Remove cplusplus_comments. 1014 (cpp_set_lang): Likewise. 1015 (post_options): Likewise. 1016 * lex.c (_cpp_lex_direct): Disallow C++ style comments in C90/C94. 1017 10182014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org> 1019 1020 * include/cpplib.h (struct cpp_options): Declare warn_normalize as 1021 int instead of enum. 1022 10232014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org> 1024 1025 * macro.c (replace_args): Use cpp_pedwarning, cpp_warning and 1026 CPP_W flags. 1027 * include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC. 1028 * init.c (cpp_create_reader): Do not init to -1 here. 1029 * expr.c (num_binary_op): Use cpp_pedwarning. 1030 10312014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org> 1032 1033 * directives.c (check_eol_1): New. 1034 (check_eol_endif_labels): New. 1035 (check_eol): Call check_eol_1. 1036 (do_else,do_endif): Call check_eol_endif_labels. 1037 10382014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org> 1039 1040 * macro.c (warn_of_redefinition): Suppress warnings for builtins 1041 that lack the NODE_WARN flag, unless Wbuiltin-macro-redefined. 1042 (_cpp_create_definition): Use Wbuiltin-macro-redefined for 1043 builtins that lack the NODE_WARN flag. 1044 * directives.c (do_undef): Likewise. 1045 * init.c (cpp_init_special_builtins): Do not change flags 1046 depending on Wbuiltin-macro-redefined. 1047 10482014-08-28 Edward Smith-Rowland <3dw4rd@verizon.net> 1049 1050 PR cpp/23827 - standard C++ should not have hex float preprocessor 1051 tokens 1052 * libcpp/init.c (lang_flags): Change CXX98 flag for extended numbers 1053 from 1 to 0. 1054 * libcpp/expr.c (cpp_classify_number): Weite error message for improper 1055 use of hex floating literal. 1056 10572014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net> 1058 1059 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z; 1060 Rename CLK_GNUCXX1Y, CLK_CXX1Y to CLK_GNUCXX14, CLK_CXX14; 1061 * init.c (struct lang_flags lang_defaults): Add column for trigraphs; 1062 Add rows for CLK_GNUCXX1Z, CLK_CXX1Z; (cpp_set_lang): Set trigraphs; 1063 (cpp_init_builtins): Set __cplusplus to 201402L for C++14; 1064 Set __cplusplus to 201500L for C++17. 1065 * expr.c (cpp_classify_number): Change C++1y to C++14 in binary 1066 constants error message. 1067 10682014-08-20 Marek Polacek <polacek@redhat.com> 1069 1070 * include/cpplib.h (cpp_options): Use signed char. 1071 * lex.c (_cpp_lex_direct): Don't warn in C++ mode. 1072 10732014-08-19 Marek Polacek <polacek@redhat.com> 1074 1075 * lex.c (_cpp_lex_direct): Fix a typo. 1076 10772014-08-19 Marek Polacek <polacek@redhat.com> 1078 1079 * charset.c (_cpp_valid_ucn): Warn only if -Wc90-c99-compat. 1080 * lex.c (_cpp_lex_direct): Likewise. 1081 * macro.c (replace_args): Likewise. 1082 (parse_params): Likewise. 1083 * include/cpplib.h (cpp_options): Change cpp_warn_c90_c99_compat 1084 to char. 1085 10862014-08-10 Marek Polacek <polacek@redhat.com> 1087 1088 PR c/51849 1089 * lex.c (_cpp_lex_direct): Warn when -Wc90-c99-compat is in effect. 1090 * charset.c (_cpp_valid_ucn): Likewise. 1091 * include/cpplib.h (cpp_options): Add cpp_warn_c90_c99_compat. 1092 * macro.c (replace_args): Warn when -Wc90-c99-compat is in effect. 1093 (parse_params): Likewise. 1094 10952014-07-27 Marek Polacek <polacek@redhat.com> 1096 1097 PR c/61861 1098 * macro.c (builtin_macro): Add location parameter. Set 1099 location of builtin macro to the expansion point. 1100 (enter_macro_context): Pass location to builtin_macro. 1101 11022014-07-16 Dodji Seketeli <dodji@redhat.com> 1103 1104 Support location tracking for built-in macro tokens 1105 * include/line-map.h (line_maps::builtin_location): New data 1106 member. 1107 (line_map_init): Add a new parameter to initialize the new 1108 line_maps::builtin_location data member. 1109 * line-map.c (linemap_init): Initialize the 1110 line_maps::builtin_location data member. 1111 * macro.c (builtin_macro): Create a macro map and track the token 1112 resulting from the expansion of a built-in macro. 1113 11142014-07-10 Edward Smith-Rowland <3dw4rd@verizon.net> 1115 Jonathan Wakely <jwakely@redhat.com> 1116 1117 PR preprocessor/61389 1118 * macro.c (_cpp_arguments_ok, parse_params, create_iso_definition): 1119 Warning messages mention C++11 in c++ mode and C99 in c mode. 1120 * lex.c (lex_identifier_intern, lex_identifier): Ditto 1121 11222014-07-09 Edward Smith-Rowland <3dw4rd@verizon.net> 1123 1124 PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped 1125 by preprocessor 1126 * lex.c (lex_raw_string ()): Do not warn about invalid suffix 1127 if skipping. (lex_string ()): Ditto. 1128 11292014-06-04 Edward Smith-Rowland <3dw4rd@verizon.net> 1130 1131 PR c++/61038 1132 * macro.c (stringify_arg (cpp_reader *, macro_arg *)): 1133 Combine user-defined escape logic with the other string and char logic. 1134 11352014-05-26 Richard Biener <rguenther@suse.de> 1136 1137 * configure.ac: Remove long long and __int64 type checks, 1138 add check for uint64_t and fail if that wasn't found. 1139 * include/cpplib.h (cpp_num_part): Use uint64_t. 1140 * config.in: Regenerate. 1141 * configure: Likewise. 1142 11432014-05-21 Marek Polacek <polacek@redhat.com> 1144 1145 PR c/61212 1146 * files.c (find_file_in_dir): Add parens around &&. 1147 11482014-05-20 Edward Smith-Rowland <3dw4rd@verizon.net> 1149 1150 PR c++/61038 1151 * macro.c (stringify_arg (cpp_reader *, macro_arg *)): 1152 Check for user-defined literal strings and user-defined literal chars 1153 to escape necessary characters. 1154 11552014-05-20 Richard Biener <rguenther@suse.de> 1156 1157 * configure.ac: Copy gcc logic of detecting a 64bit type. 1158 Remove HOST_WIDE_INT define. 1159 * include/cpplib.h: typedef cpp_num_part to a 64bit type, 1160 similar to how hwint.h does it. 1161 * config.in: Regenerate. 1162 * configure: Likewise. 1163 11642014-05-09 Joey Ye <joey.ye@arm.com> 1165 1166 * files.c (find_file_in_dir): Always try to shorten for DOS 1167 non-system headers. 1168 * init.c (ENABLE_CANONICAL_SYSTEM_HEADERS): Default enabled for DOS. 1169 11702014-05-07 Richard Biener <rguenther@suse.de> 1171 1172 * configure.ac: Always set need_64bit_hwint to yes. 1173 * configure: Regenerated. 1174 11752014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1176 1177 * lex.c: Remove Solaris 9 reference. 1178 11792014-02-24 Walter Lee <walt@tilera.com> 1180 1181 * configure.ac: Change "tilepro" triplet to "tilepro*". 1182 * configure: Regenerate. 1183 11842014-02-19 Jakub Jelinek <jakub@redhat.com> 1185 1186 PR preprocessor/58844 1187 * macro.c (enter_macro_context): Only push 1188 macro_real_token_count (macro) tokens rather than 1189 macro->count tokens, regardless of 1190 CPP_OPTION (pfile, track-macro-expansion). 1191 11922014-02-07 Jakub Jelinek <jakub@redhat.com> 1193 1194 PR preprocessor/56824 1195 * line-map.c (get_combined_adhoc_loc, linemap_get_expansion_line, 1196 linemap_get_expansion_filename, linemap_location_in_system_header_p, 1197 linemap_location_from_macro_expansion_p, 1198 linemap_macro_loc_to_spelling_point, linemap_macro_loc_to_def_point, 1199 linemap_macro_loc_to_exp_point, linemap_expand_location): Fix 1200 formatting. 1201 (linemap_compare_locations): Look through adhoc locations for both 1202 l0 and l1. 1203 12042014-01-23 Dodji Seketeli <dodji@redhat.com> 1205 1206 PR PR preprocessor/58580 1207 * include/line-map.h (linemap_get_file_highest_location): Declare 1208 new function. 1209 * line-map.c (linemap_get_file_highest_location): Define it. 1210 12112014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 1212 1213 Update copyright years 1214 12152013-12-09 Joseph Myers <joseph@codesourcery.com> 1216 1217 PR preprocessor/55715 1218 * expr.c (num_binary_op): Implement subtraction directly rather 1219 than with negation and falling through into addition case. 1220 12212013-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1222 1223 * lex.c (search_line_fast): Correct for little endian. 1224 12252013-11-15 Joseph Myers <joseph@codesourcery.com> 1226 1227 * ucnid.tab: Add C11 and C11NOSTART data. 1228 * makeucnid.c (digit): Rename enum value to N99. 1229 (C11, N11, all_languages): New enum values. 1230 (NUM_CODE_POINTS, MAX_CODE_POINT): New macros. 1231 (flags, decomp, combining_value): Use NUM_CODE_POINTS as array 1232 size. 1233 (decomp): Use unsigned int as element type. 1234 (all_decomp): New array. 1235 (read_ucnid): Handle C11 and C11NOSTART. Use MAX_CODE_POINT. 1236 (read_table): Use MAX_CODE_POINT. Store all decompositions in 1237 all_decomp. 1238 (read_derived): Use MAX_CODE_POINT. 1239 (write_table): Use NUM_CODE_POINTS. Print N99, C11 and N11 1240 flags. Print whole array variable declaration rather than just 1241 array contents. 1242 (char_id_valid, write_context_switch): New functions. 1243 (main): Call write_context_switch. 1244 * ucnid.h: Regenerate. 1245 * include/cpplib.h (struct cpp_options): Add c11_identifiers. 1246 * init.c (struct lang_flags): Add c11_identifiers. 1247 (cpp_set_lang): Set c11_identifiers option from selected language. 1248 * internal.h (struct normalize_state): Document "previous" as 1249 previous starter character. 1250 (NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument. 1251 * charset.c (DIG): Rename enum value to N99. 1252 (C11, N11): New enum values. 1253 (struct ucnrange): Give name to struct. Use short for flags and 1254 unsigned int for end of range. Include ucnid.h for whole variable 1255 declaration. 1256 (ucn_valid_in_identifier): Allow for characters up to 0x10FFFF. 1257 Allow for C11 in determining valid characters and valid start 1258 characters. Use check_nfc for non-Hangul context-dependent 1259 checks. Only store starter characters in nst->previous. 1260 (_cpp_valid_ucn): Pass new argument to 1261 NORMALIZE_STATE_UPDATE_IDNUM. 1262 * lex.c (lex_identifier): Pass new argument to 1263 NORMALIZE_STATE_UPDATE_IDNUM. Call NORMALIZE_STATE_UPDATE_IDNUM 1264 after initial non-UCN part of identifier. 1265 (lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM. 1266 12672013-11-15 Joseph Myers <joseph@codesourcery.com> 1268 1269 * ucnid.tab: Mark C99 digits as [C99DIG]. 1270 * makeucnid.c (read_ucnid): Handle [C99DIG]. 1271 (read_table): Don't check for digit characters. 1272 * ucnid.h: Regenerate. 1273 12742013-11-06 Tobias Burnus <burnus@net-b.de> 1275 1276 * macro.c (_cpp_builtin_macro_text): Correct 1277 wording of two warnings. 1278 12792013-11-05 Tobias Burnus <burnus@net-b.de> 1280 1281 * include/cpplib.h (CPP_W_DATE_TIME): Added. 1282 (cpp_options): Add warn_date_time. 1283 * init.c (cpp_create_reader): Init it. 1284 * macro.c (_cpp_builtin_macro_text): Warn when 1285 __DATE__/__TIME__/__TIMESTAMP__ is used. 1286 12872013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net> 1288 1289 Implement C++14 digit separators. 1290 * include/cpplib.h (cpp_options): Add digit_separators flag. 1291 * internal.h (DIGIT_SEP(c)): New macro. 1292 * expr.c (cpp_classify_number): Check improper placement of digit sep; 1293 (cpp_interpret_integer): Skip over digit separators. 1294 * init.c (lang_flags): Add digit_separators flag; (lang_defaults): Add 1295 digit separator flags per language; (cpp_set_lang): Set 1296 digit_separators 1297 * lex.c (lex_number): Add digits separator to allowable characters for 1298 C++14. 1299 13002013-10-15 David Malcolm <dmalcolm@redhat.com> 1301 1302 * Makefile.in (PICFLAG): New. 1303 (ALL_CFLAGS): Add PICFLAG. 1304 (ALL_CXXFLAGS): Likewise. 1305 * configure.ac: Add --enable-host-shared, setting up new 1306 PICFLAG variable. 1307 * configure: Regenerate. 1308 13092013-08-07 Richard Earnshaw <rearnsha@arm.com> 1310 1311 * configure.ac: Set need_64bit_hwint for all arm targets. 1312 * configure: Regenerated. 1313 13142013-07-20 Jakub Jelinek <jakub@redhat.com> 1315 1316 PR preprocessor/57620 1317 * lex.c (lex_raw_string): Undo phase1 and phase2 transformations 1318 between R" and final " rather than only in between R"del( and )del". 1319 13202013-07-10 Jakub Jelinek <jakub@redhat.com> 1321 1322 PR preprocessor/57824 1323 * lex.c (lex_raw_string): Allow reading new-lines if 1324 in_deferred_pragma or if parsing_args and there is still 1325 data in the current buffer. 1326 1327 * include/cpplib.h (cpp_token_val_index): Change parameter type to 1328 const cpp_token *. 1329 * lex.c (cpp_token_val_index): Likewise. 1330 1331 PR preprocessor/57757 1332 * lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING 1333 or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that 1334 starts if a-zA-Z_. 1335 13362013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net> 1337 1338 * lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated 1339 as concatenated literal and macro to just the patterns found in 1340 inttypes.h; (is_macro()): New. 1341 13422013-06-24 Dehao Chen <dehao@google.com> 1343 1344 * files.c (_cpp_stack_include): Fix the highest_location when header 1345 file is guarded by #ifndef and is included twice. 1346 13472013-04-28 Jakub Jelinek <jakub@redhat.com> 1348 1349 N3472 binary constants 1350 * include/cpplib.h (struct cpp_options): Fix a typo in user_literals 1351 field comment. Add binary_constants field. 1352 * init.c (struct lang_flags): Add binary_constants field. 1353 (lang_defaults): Add bin_cst column to the table. 1354 (cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants). 1355 * expr.c (cpp_classify_number): Talk about C++11 instead of C++0x 1356 in diagnostics. Accept binary constants if 1357 CPP_OPTION (pfile, binary_constants) even when pedantic. Adjust 1358 pedwarn message. 1359 13602013-04-24 Paolo Carlini <paolo.carlini@oracle.com> 1361 1362 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y. 1363 * init.c (lang_defaults): Add defaults for the latter. 1364 (cpp_init_builtins): Define __cplusplus as 201300L for the latter. 1365 * lex.c (_cpp_lex_direct): Update. 1366 13672013-04-03 Sebastian Huber <sebastian.huber@embedded-brains.de> 1368 1369 PR target/56771 1370 * configure.ac: Require 64-bit int for arm*-*-rtems*. 1371 * configure: Regenerate. 1372 13732013-03-06 Jakub Jelinek <jakub@redhat.com> 1374 1375 PR middle-end/56461 1376 * internal.h (struct cpp_buffer): Add to_free field. 1377 (_cpp_pop_file_buffer): Add third argument. 1378 * files.c (_cpp_stack_file): Set buffer->to_free. 1379 (_cpp_pop_file_buffer): Add to_free argument. Free to_free 1380 if non-NULL, and if equal to file->buffer_start, also clear 1381 file->buffer{,_start,_valid}. 1382 * directives.c (_cpp_pop_buffer): Pass buffer->to_free 1383 to _cpp_pop_file_buffer. 1384 13852013-03-01 Jakub Jelinek <jakub@redhat.com> 1386 1387 PR middle-end/56461 1388 * files.c (_cpp_save_file_entries): Free result at the end. 1389 * pch.c (cpp_string_free): New function. 1390 (cpp_save_state): Use it in htab_create call. 1391 (cpp_write_pch_deps): Free ss->defs. Destroy ss->definedhash. 1392 13932013-02-28 Jakub Jelinek <jakub@redhat.com> 1394 1395 * files.c (_cpp_find_file): If returning early, before storing 1396 something to *hash_slot and *hash_slot is NULL, call htab_clear_slot 1397 on it. Access *hash_slot using void * type rather than 1398 struct file_hash_entry * to avoid aliasing issues. 1399 1400 * configure.ac: Don't define ENABLE_CHECKING whenever 1401 --enable-checking is seen, instead use similar --enable-checking=yes 1402 vs. --enable-checking=release default as gcc/ subdir has and 1403 define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/. 1404 Define ENABLE_VALGRIND_CHECKING if requested. 1405 * lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff 1406 struct first in the allocated buffer and result->base after it. 1407 (_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself 1408 instead of buff->base. 1409 * config.in: Regenerated. 1410 * configure: Regenerated. 1411 14122013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net> 1413 1414 PR c++/55582 1415 * lex.c (lex_raw_string): Allow string literal with suffix 1416 beginning with 's' to be parsed as a C++11 user-defined literal. 1417 14182013-01-14 Richard Sandiford <rdsandiford@googlemail.com> 1419 1420 Update copyright years. 1421 14222013-01-04 Paolo Carlini <paolo.carlini@oracle.com> 1423 1424 PR c++/54526 (again) 1425 * lex.c (_cpp_lex_direct): In C++11 mode, implement 2.5 p3, bullet 2. 1426 14272013-01-03 Marc Glisse <marc.glisse@inria.fr> 1428 1429 PR bootstrap/50177 1430 * line-map.c (get_combined_adhoc_loc): Cast from extern "C" type. 1431 (new_linemap): Likewise. 1432 (linemap_enter_macro): Likewise. 1433 14342012-12-03 Jakub Jelinek <jakub@redhat.com> 1435 1436 PR bootstrap/55380 1437 PR other/54691 1438 * files.c (read_file_guts): Allocate extra 16 bytes instead of 1439 1 byte at the end of buf. Pass size + 16 instead of size 1440 to _cpp_convert_input. 1441 * charset.c (_cpp_convert_input): Reallocate if there aren't 1442 at least 16 bytes beyond to.len in the buffer. Clear 16 bytes 1443 at to.text + to.len. 1444 14452012-11-21 Steve Ellcey <sellcey@mips.com> 1446 1447 PR pch/55399 1448 * files.c (pch_open_file): Fix check for implicit_preinclude. 1449 14502012-11-16 Simon Baldwin <simonb@google.com> 1451 1452 * include/cpplib.h (struct cpp_options): Add canonical_system_headers. 1453 * files.c (find_file_in_dir): Call maybe_shorter_path() only if 1454 canonical_system_headers is set. 1455 * init.c (cpp_create_reader): Initialize canonical_system_headers. 1456 * configure.ac: Add new --enable-canonical-system-headers. 1457 * configure: Regenerate. 1458 * config.in: Regenerate. 1459 14602012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net> 1461 1462 PR c++/54413 1463 * include/cpplib.h (cpp_interpret_float_suffix): Add cpp_reader* arg. 1464 (cpp_interpret_int_suffix): Add cpp_reader* arg. 1465 * init.c (cpp_create_reader): Iitialize new flags. 1466 * expr.c (interpret_float_suffix): Use new flags. 1467 (cpp_interpret_float_suffix): Add cpp_reader* arg. 1468 (interpret_int_suffix): Use new flags. 1469 (cpp_interpret_int_suffix): Add cpp_reader* arg. 1470 (cpp_classify_number): Adjust calls to interpret_x_suffix. 1471 14722012-10-23 Ian Bolton <ian.bolton@arm.com> 1473 Jim MacArthur <jim.macarthur@arm.com> 1474 Marcus Shawcroft <marcus.shawcroft@arm.com> 1475 Nigel Stephens <nigel.stephens@arm.com> 1476 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 1477 Richard Earnshaw <rearnsha@arm.com> 1478 Sofiane Naci <sofiane.naci@arm.com> 1479 Stephen Thomas <stephen.thomas@arm.com> 1480 Tejas Belagod <tejas.belagod@arm.com> 1481 Yufeng Zhang <yufeng.zhang@arm.com> 1482 1483 * configure.ac: Enable AArch64. 1484 * configure: Regenerate. 1485 14862012-10-23 Joseph Myers <joseph@codesourcery.com> 1487 1488 * files.c (struct _cpp_file): Add implicit_preinclude. 1489 (pch_open_file): Allow a previously opened implicitly included 1490 file. 1491 (_cpp_find_file): Add implicit_preinclude argument. Free file and 1492 do not call open_file_failed if implicit_preinclude. Store 1493 implicit_preinclude value. 1494 (_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date): 1495 Update calls to _cpp_find_file. 1496 (_cpp_stack_include): Handle IT_DEFAULT. 1497 (cpp_push_default_include): New. 1498 * include/cpplib.h (cpp_push_default_include): Declare. 1499 * init.c (cpp_read_main_file): Update call to _cpp_find_file. 1500 * internal.h (enum include_type): Add IT_DEFAULT. 1501 (_cpp_find_file): Update prototype. 1502 15032012-10-15 Tobias Burnus <burnus@net-b.de> 1504 1505 * files.c (read_file_guts, _cpp_save_file_entries): Free memory 1506 before returning. 1507 * lex.c (warn_about_normalization): Ditto. 1508 * mkdeps.c (deps_save): Ditto. 1509 * pch.c (cpp_valid_state): Ditto. 1510 15112012-10-04 Florian Weimer <fweimer@redhat.com> 1512 1513 * directives.c (do_pragma_warning_or_error): New. 1514 (do_pragma_warning): New. 1515 (do_pragma_error): New. 1516 (_cpp_init_internal_pragmas): Register new pragmas. 1517 15182012-09-25 Dehao Chen <dehao@google.com> 1519 1520 PR middle-end/54704 1521 * line-map.c (location_adhoc_data_hash): Fix the hash function. 1522 15232012-09-25 Dehao Chen <dehao@google.com> 1524 1525 PR middle-end/54645 1526 * include/line-map.h (location_adhoc_data): Move location_adhoc_data 1527 into GC. 1528 (location_adhoc_data_map): Likewise. 1529 (line_maps): Likewise. 1530 (rebuild_location_adhoc_htab): New Function. 1531 * line-map.c (+rebuild_location_adhoc_htab): new Funcion. 1532 (get_combined_adhoc_loc): Move location_adhoc_data into GC. 1533 (location_adhoc_data_fini): Likewise. 1534 (linemap_init): Likewise. 1535 (location_adhoc_data_init): Remove Function. 1536 15372012-09-19 Dehao Chen <dehao@google.com> 1538 1539 * include/line-map.h (MAX_SOURCE_LOCATION): New value. 1540 (location_adhoc_data_fini): New. 1541 (get_combined_adhoc_loc): New. 1542 (get_data_from_adhoc_loc): New. 1543 (get_location_from_adhoc_loc): New. 1544 (location_adhoc_data_map): New. 1545 (COMBINE_LOCATION_DATA): New. 1546 (IS_ADHOC_LOC): New. 1547 (expanded_location): New field. 1548 (line_maps): New field. 1549 * line-map.c (location_adhoc_data): New. 1550 (location_adhoc_data_hash): New. 1551 (location_adhoc_data_eq): New. 1552 (location_adhoc_data_update): New. 1553 (get_combined_adhoc_loc): New. 1554 (get_data_from_adhoc_loc): New. 1555 (get_location_from_adhoc_loc): New. 1556 (location_adhoc_data_init): New. 1557 (location_adhoc_data_fini): New. 1558 (linemap_init): Initialize location_adhoc_data. 1559 (linemap_lookup): Change to use new location. 1560 (linemap_ordinary_map_lookup): Likewise. 1561 (linemap_macro_map_lookup): Likewise. 1562 (linemap_macro_map_loc_to_def_point): Likewise. 1563 (linemap_macro_map_loc_unwind_toward_spel): Likewise. 1564 (linemap_get_expansion_line): Likewise. 1565 (linemap_get_expansion_filename): Likewise. 1566 (linemap_location_in_system_header_p): Likewise. 1567 (linemap_location_from_macro_expansion_p): Likewise. 1568 (linemap_macro_loc_to_spelling_point): Likewise. 1569 (linemap_macro_loc_to_def_point): Likewise. 1570 (linemap_macro_loc_to_exp_point): Likewise. 1571 (linemap_resolve_location): Likewise. 1572 (linemap_unwind_toward_expansion): Likewise. 1573 (linemap_unwind_to_first_non_reserved_loc): Likewise. 1574 (linemap_expand_location): Likewise. 1575 (linemap_dump_location): Likewise. 1576 (linemap_line_start): Likewise. 1577 15782012-05-25 Dodji Seketeli <dodji@redhat.com> 1579 1580 PR preprocessor/53469 1581 * directives.c (do_pragma): Use the virtual location for the 1582 pragma token, instead of its spelling location. 1583 15842012-08-14 Diego Novillo <dnovillo@google.com> 1585 1586 Merge from cxx-conversion branch. Configury. 1587 1588 * Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX. 1589 * configure.ac: Likewise. 1590 * configure: Regenerate. 1591 15922012-08-14 Lawrence Crowl <crowl@google.com> 1593 1594 Merge from cxx-conversion branch. New C++ hash table. 1595 1596 * include/symtab.h (typedef struct ht hash_table): Change the typedef 1597 name to cpp_hash_table. Update all users of the typedef. 1598 15992012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com> 1600 1601 * include/line-map.h (line_map_macro): Use the "atomic" GTY option 1602 for the macro_locations field. 1603 16042011-06-19 Uros Bizjak <ubizjak@gmail.com> 1605 1606 * lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and 1607 __builtin_ia32_pcmpestri128 instead of asm. 1608 16092012-06-04 Dimitrios Apostolou <jimis@gmx.net> 1610 1611 * line-map.c (linemap_enter_macro): Don't zero max_column_hint in 1612 every macro. This improves performance by reducing the number of 1613 reallocations when track-macro-expansion is on. 1614 16152012-06-04 Dodji Seketeli <dodji@redhat.com> 1616 1617 PR preprocessor/53463 1618 * line-map.c (linemap_location_in_system_header_p): For built-in 1619 macro tokens, check the first expansion point location that is not 1620 for a token coming from a built-in macro. 1621 16222012-05-29 Joseph Myers <joseph@codesourcery.com> 1623 1624 * directives.c: Fix typos. 1625 * include/line-map.h: Fix typos. 1626 * line-map.c: Fix typos. 1627 * macro.c: Fix typos. 1628 16292012-05-25 Dodji Seketeli <dodji@redhat.com> 1630 1631 PR bootstrap/53459 1632 * lex.c (search_line_fast): Avoid unused local typedefs to simulate 1633 a static assertion. 1634 16352012-05-29 Dodji Seketeli <dodji@redhat.com> 1636 1637 PR preprocessor/53229 1638 * internal.h (cpp_reader::set_invocation_location): Remove. 1639 (cpp_reader::about_to_expand_macro_p): New member flag. 1640 * directives.c (do_pragma): Remove Kludge as 1641 pfile->set_invocation_location is no more. 1642 * macro.c (cpp_get_token_1): Do away with the use of 1643 cpp_reader::set_invocation_location. Just collect the macro 1644 expansion point when we are about to expand the top-most macro. 1645 Do not override cpp_reader::about_to_expand_macro_p. 1646 This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding 1647 properly handle locations of expansion points. 1648 (cpp_get_token_with_location): Adjust, as 1649 cpp_reader::set_invocation_location is no more. 1650 (paste_tokens): Take a virtual location parameter for 1651 the LHS of the pasting operator. Use it in diagnostics. Update 1652 comments. 1653 (paste_all_tokens): Tighten the assert. Propagate the location of 1654 the expansion point when no virtual locations are available. 1655 Pass the virtual location to paste_tokens. 1656 (in_macro_expansion_p): New static function. 1657 (enter_macro_context): Set the cpp_reader::about_to_expand_macro_p 1658 flag until we really start expanding the macro. 1659 16602012-05-16 Dodji Seketeli <dodji@redhat.com> 1661 1662 PR preprocessor/7263 1663 * include/cpplib.h (cpp_classify_number): Take a location 1664 parameter. 1665 * expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic 1666 macros that take a location parameter. 1667 (cpp_classify_number): Take a (virtual) location parameter. Use 1668 it for diagnostics. Adjust comments. 1669 (eval_token): Take a location parameter. Pass it to 1670 cpp_classify_number and to diagnostic routines. 1671 (_cpp_parse_expr): Use virtual locations of tokens when parsing 1672 expressions. Pass a virtual location to eval_token and to 1673 diagnostic routines. 1674 16752012-05-10 Tristan Gingold <gingold@adacore.com> 1676 1677 * expr.c (interpret_float_suffix): Add a guard. 1678 16792012-05-02 Dodji Seketeli <dodji@redhat.com> 1680 1681 Properly initialize cpp_context in destringize_and_run 1682 * directives.c (destringize_and_run): Properly initialize the new 1683 context. 1684 * macro.c (_cpp_pop_context): Assert that we shouldn't try to pop 1685 the initial base context, which has the same life time as the 1686 current instance of cpp_file. 1687 16882012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org> 1689 Dodji Seketeli <dodji@seketeli.org> 1690 1691 PR c++/52974 1692 * libcpp/files.c (maybe_shorter_path): New. 1693 (find_file_in_dir): Use it. 1694 16952012-04-30 Dodji Seketeli <dodji@redhat.com> 1696 1697 Switch -ftrack-macro-expansion=2 on by default. 1698 * init.c (cpp_create_reader): Switch -ftrack-macro-expansion=2 on 1699 by default. Add comments. 1700 1701 Strip "<built-in>" loc from displayed expansion context 1702 * include/line-map.h (linemap_unwind_toward_expansion): Fix typo 1703 in comment. 1704 (linemap_unwind_to_first_non_reserved_loc): Declare new function. 1705 * line-map.c (linemap_unwind_to_first_non_reserved_loc): Define 1706 new function. 1707 1708 Fix expansion point loc for macro-like tokens 1709 * macro.c (macro_of_context): New static function. 1710 (_cpp_push_token_context, push_extended_tokens_context): If the 1711 macro argument is NULL, it means we are continuing the expansion 1712 of the current macro, if any. Update comments. 1713 (_cpp_pop_context): Re-enable expansion of the macro only when we 1714 are really out of the context of the current expansion. 1715 1716 Fix token pasting with -ftrack-macro-expansion 1717 * macro.c (paste_all_tokens): Put the token resulting from pasting 1718 into an extended token context with -ftrack-macro-location is in 1719 effect. 1720 1721 Fix cpp_sys_macro_p with -ftrack-macro-expansion 1722 * macro.c (cpp_sys_macro_p): Support -ftrack-macro-expansion. 1723 17242012-04-29 Dodji Seketeli <dodji@redhat.com> 1725 1726 * lex.c (lex_raw_string): Change C++ style comments into C style 1727 comments. 1728 (lex_string): Likewise. 1729 17302012-04-27 Ollie Wild <aaw@google.com> 1731 1732 * include/cpplib.h (struct cpp_options): Add new field, 1733 warn_literal_suffix. 1734 (CPP_W_LITERAL_SUFFIX): New enum. 1735 * init.c (cpp_create_reader): Default initialization of 1736 warn_literal_suffix. 1737 * lex.c (lex_raw_string): Treat user-defined literals which don't 1738 begin with '_' as separate tokens and produce a warning. 1739 (lex_string): Ditto. 1740 17412012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org> 1742 1743 * line-map.c (linemap_resolve_location): Synchronize comments with 1744 those in line-map.h. 1745 * include/line-map.h (linemap_resolve_location): Fix spelling in 1746 comment. 1747 17482012-03-22 Richard Earnshaw <rearnsha@arm.com> 1749 1750 * lex.c (search_line_fast): Provide Neon-optimized version for ARM. 1751 17522012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1753 1754 * lex.c: Remove Solaris 8 reference. 1755 17562012-02-14 Walter Lee <walt@tilera.com> 1757 1758 * configure.ac: Require 64-bit hwint for tilegx and tilepro. 1759 * configure: Regenerate. 1760 17612012-01-09 Richard Guenther <rguenther@suse.de> 1762 1763 * macro.c (_cpp_builtin_macro_text): Remove unused variable map. 1764 17652012-01-09 Gary Funck <gary@intrepid.com> 1766 1767 PR preprocessor/33919 1768 * files.c (_cpp_get_file_name): New. Implement file name 1769 access function. 1770 * internal.h (_cpp_get_file_name): New prototype. 1771 * macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name() 1772 to use pfile->main_file in lieu of traversing INCLUDED_FROM chain. 1773 17742012-01-03 Olivier Hainque <hainque@adacore.com> 1775 1776 * system.h: Prior to #define, #undef fopen and freopen unconditionally. 1777 17782011-12-20 Joseph Myers <joseph@codesourcery.com> 1779 1780 * include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11. 1781 (CLK_STDC1X): Change to CLK_STDC11. 1782 * init.c (lang_defaults): Update comments. 1783 (cpp_init_builtins): Update language tests. Use 201112L for C11 1784 __STDC_VERSION__. 1785 17862011-12-20 Andreas Schwab <schwab@linux-m68k.org> 1787 1788 * configure: Regenerate. 1789 17902011-12-19 Andreas Schwab <schwab@linux-m68k.org> 1791 1792 * configure: Regenerate. 1793 17942011-12-07 Jakub Jelinek <jakub@redhat.com> 1795 1796 PR bootstrap/50237 1797 * internal.h (_cpp_init_lexer): New prototype. 1798 * init.c (init_library): Call it. 1799 * lex.c (init_vectorized_lexer): Remove constructor attribute, 1800 add inline keyword. 1801 (HAVE_init_vectorized_lexer): Define. 1802 (_cpp_init_lexer): New function. 1803 18042011-12-03 Dodji Seketeli <dodji@redhat.com> 1805 1806 * macro.c (tokens_buff_remove_last_token) 1807 (tokens_buff_put_token_to): Add an 'inline' function specifier to 1808 the prototype. 1809 18102011-11-22 Diego Novillo <dnovillo@google.com> 1811 1812 * include/line-map.h (linemap_dump): Declare. 1813 (line_table_dump): Declare. 1814 * line-map.c (linemap_dump): New. 1815 (line_table_dump): New. 1816 18172011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net> 1818 1819 PR c++/50958 1820 * expr.c (cpp_userdef_char_remove_type): Fix typo. 1821 18222011-11-03 Michael Matz <matz@suse.de> 1823 1824 PR bootstrap/50857 1825 * configure.ac: Check for -fno-exceptions -fno-rtti. 1826 * configure: Regenerate. 1827 * Makefile.in (NOEXCEPTION_FLAGS): New flag. 1828 (ALL_CXXFLAGS): Use it. 1829 18302011-11-02 Paolo Carlini <paolo.carlini@oracle.com> 1831 1832 * internal.h (uxstrdup, ustrchr): Return const unsigned char *. 1833 18342011-11-02 Jason Merrill <jason@redhat.com> 1835 1836 PR c++/50810 1837 * configure.ac: Add -Wno-narrowing to warning options. 1838 18392011-10-31 Jason Merrill <jason@redhat.com> 1840 1841 PR libstdc++/1773 1842 * init.c (cpp_init_builtins): Set __cplusplus for C++11. 1843 1844 PR c++/50920 1845 * include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11, 1846 CLK_GNUCXX0X to CLK_GNUCXX11. 1847 18482011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net> 1849 1850 Implement C++11 user-defined literals. 1851 * expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix, 1852 cpp_userdef_string_remove_type, cpp_userdef_string_add_type, 1853 cpp_userdef_char_remove_type, cpp_userdef_char_add_type, 1854 cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New. 1855 (cpp_classify_number): Classify unrecognized tokens as user-defined 1856 literals. 1857 * include/cpplib.h: Add new tokens for user-defined literals. 1858 * init.c: Add new preprocessor flag (cxx11). 1859 * lex.c: (lex_string, lex_raw_string): Handle user-defined literals 1860 including concatenation and promotion with suffixes. 1861 18622011-10-24 Dodji Seketeli <dodji@redhat.com> 1863 1864 * line-map.c (linemap_macro_map_lookup): Fix logic. 1865 18662011-10-24 Dodji Seketeli <dodji@redhat.com> 1867 1868 * include/line-map.h (linemap_expand_location): Take a line table 1869 parameter. Update comment. 1870 (linemap_resolve_location): Update comment. 1871 (linemap_expand_location_full): Remove. 1872 * line-map.c (linemap_resolve_location): Handle reserved 1873 locations; return a NULL map in those cases. 1874 (linemap_expand_location): If location is reserved, return a 1875 zeroed expanded location. Update comment. Take a line table to 1876 assert that the function takes non-virtual locations only. 1877 (linemap_expand_location_full): remove. 1878 (linemap_dump_location): Handle the fact that 1879 linemap_resolve_location can return NULL line maps when the 1880 location resolves to a reserved location. 1881 1882 * line-map.c (linemap_macro_map_lookup): Fix logic. 1883 18842011-10-22 Dodji Seketeli <dodji@redhat.com> 1885 1886 PR bootstrap/50778 1887 * include/internal.h (_cpp_remaining_tokens_num_in_context): Take the 1888 context to act upon. 1889 * lex.c (_cpp_remaining_tokens_num_in_context): Likewise. Update 1890 comment. 1891 (cpp_token_from_context_at): Likewise. 1892 (cpp_peek_token): Use the context to peek tokens from. 1893 18942011-10-20 Dodji Seketeli <dodji@redhat.com> 1895 1896 PR bootstrap/50801 1897 * lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of 1898 number of tokens. 1899 19002011-10-18 Dodji Seketeli <dodji@redhat.com> 1901 1902 PR bootstrap/50760 1903 * include/line-map.h (struct linemap_stats): Change the type of 1904 the members from size_t to long. 1905 * macro.c (macro_arg_token_iter_init): Unconditionally initialize 1906 iter->location_ptr. 1907 19082011-10-17 Dodji Seketeli <dodji@redhat.com> 1909 1910 * line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a 1911 variable without using it if ENABLE_CHECKING is not defined. Mark 1912 the LOCATION parameter as being unused. 1913 19142011-10-15 Tom Tromey <tromey@redhat.com> 1915 Dodji Seketeli <dodji@redhat.com> 1916 1917 * include/line-map.h (struct line_maps::alloced_size_for_request): 1918 New member. 1919 * line-map.c (new_linemap): Use set->alloced_size_for_request to 1920 get the actual allocated size of line maps. 1921 19222011-10-15 Tom Tromey <tromey@redhat.com> 1923 Dodji Seketeli <dodji@redhat.com> 1924 1925 * line-map.h (struct linemap_stats): Declare new struct. 1926 (linemap_get_statistics): Declare ... 1927 * line-map.c (linemap_get_statistics): ... new function. 1928 * macro.c (num_expanded_macros_counter, num_macro_tokens_counter): 1929 Declare new counters. 1930 (enter_macro_context, replace_args): Update 1931 num_macro_tokens_counter. 1932 (cpp_get_token_1): Update num_expanded_macros_counter. 1933 19342011-10-15 Tom Tromey <tromey@redhat.com> 1935 Dodji Seketeli <dodji@redhat.com> 1936 1937 * include/cpplib.h (struct cpp_options)<debug>: New struct member. 1938 * include/line-map.h (linemap_dump_location): Declare ... 1939 * line-map.c (linemap_dump_location): ... new function. 1940 19412011-10-15 Tom Tromey <tromey@redhat.com> 1942 Dodji Seketeli <dodji@redhat.com> 1943 1944 * include/cpplib.h (struct cpp_options)<track_macro_expansion>: 1945 New option. 1946 * internal.h (struct macro_context): New struct. 1947 (enum context_tokens_kind): New enum. 1948 (struct cpp_context)<tokens_kind>: New member of type enum 1949 context_tokens_kind. 1950 (struct cpp_context)<macro>: Remove this. Replace it with an enum 1951 of macro and macro_context. 1952 (struct cpp_context)<direct_p>: Remove. 1953 (_cpp_remaining_tokens_num_in_context): Declare new function. 1954 * directives.c (destringize_and_run): Adjust. 1955 * lex.c (_cpp_remaining_tokens_num_in_context) 1956 (_cpp_token_from_context_at): Define new functions 1957 (cpp_peek_token): Use them. 1958 * init.c (cpp_create_reader): Initialize the base context to zero. 1959 (_cpp_token_from_context_at): Define new static function. 1960 (cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and 1961 _cpp_token_from_context_at. 1962 * macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New 1963 members. 1964 (enum macro_arg_token_kind): New enum. 1965 (struct macro_arg_token_iter): New struct. 1966 (maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context) 1967 (alloc_expanded_arg_mem, ensure_expanded_arg_room) 1968 (delete_macro_args, set_arg_token, get_arg_token_location) 1969 (arg_token_ptr_at, macro_arg_token_iter_init) 1970 (macro_arg_token_iter_get_token) 1971 (macro_arg_token_iter_get_location, macro_arg_token_iter_forward) 1972 (expanded_token_index, tokens_buff_new, tokens_buff_count) 1973 (tokens_buff_last_token_ptr, tokens_buff_put_token_to) 1974 (tokens_buff_add_token, tokens_buff_remove_last_token) 1975 (reached_end_of_context, consume_next_token_from_context): New 1976 static functions. 1977 (cpp_get_token_1): New static function. Split and extended from 1978 cpp_get_token. Use reached_end_of_context and 1979 consume_next_token_from_context. Unify its return point. Move 1980 the location tweaking from cpp_get_token_with_location in here. 1981 (cpp_get_token): Use cpp_get_token_1 1982 (stringify_arg): Use the new arg_token_at. 1983 (paste_all_tokens): Support tokens coming from extended tokens 1984 contexts. 1985 (collect_args): Return the number of collected arguments, by 1986 parameter. Store virtual locations of tokens that constitute the 1987 collected args. 1988 (funlike_invocation_p): Return the number of collected arguments, 1989 by parameter. 1990 (enter_macro_context): Add a parameter for macro expansion point. 1991 Pass it to replace_args and to the "used" cpp callback. Get the 1992 number of function-like macro arguments from funlike_invocation_p, 1993 pass it to the new delete_macro_args to free the memory used by 1994 macro args. When -ftrack-macro-expansion is in effect, for macros 1995 that have no arguments, create a macro map for the macro expansion 1996 and use it to allocate proper virtual locations for tokens 1997 resulting from the expansion. Push an extended tokens context 1998 containing the tokens resulting from macro expansion and their 1999 virtual locations. 2000 (replace_args): Rename the different variables named 'count' into 2001 variables with more meaningful names. Create a macro map; 2002 allocate virtual locations of tokens resulting from this 2003 expansion. Use macro_arg_token_iter to iterate over tokens of a 2004 given macro. Handle the case of the argument of 2005 -ftrack-macro-expansion being < 2. Don't free macro arguments 2006 memory resulting from expand_arg here, as these are freed by the 2007 caller of replace_arg using delete_macro_args now. Push extended 2008 token context. 2009 (next_context, push_ptoken_context, _cpp_push_token_context) 2010 (_cpp_push_text_context): Properly initialize the context. 2011 (expand_arg): Use the new alloc_expanded_arg_mem, 2012 push_extended_tokens_context, cpp_get_token_1, and set_arg_token. 2013 (_cpp_pop_context): Really free the memory held by the context. 2014 Handle freeing memory used by extended tokens contexts. 2015 (cpp_get_token_with_location): Use cpp_get_token_1. 2016 (cpp_sys_macro_p): Adjust. 2017 (_cpp_backup_tokens): Support the new kinds of token contexts. 2018 * traditional.c (recursive_macro): Adjust. 2019 20202011-10-15 Tom Tromey <tromey@redhat> 2021 Dodji Seketeli <dodji@redhat.com> 2022 2023 * include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum 2024 member. 2025 (MAX_SOURCE_LOCATION): New constant. 2026 (struct line_map_ordinary, struct line_map_macro): New structs. 2027 (struct line_map): Turn this into a union of the two above. Add 2028 comments. 2029 (struct maps_info): New struct. 2030 (struct line_maps)<info_ordinary, info_macro>: Two new fields. 2031 These now carry the map information that was previously scattered 2032 in struct line_maps. 2033 (struct map_info::allocated): Fix comment. 2034 (MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME) 2035 (ORDINARY_MAP_STARTING_LINE_NUMBER) 2036 (ORDINARY_MAP_INCLUDER_FILE_INDEX) 2037 (ORDINARY_MAP_IN_SYSTEM_HEADER_P) 2038 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO) 2039 (MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS) 2040 (MACRO_MAP_EXPANSION_POINT_LOCATION) 2041 (LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO) 2042 (LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE) 2043 (LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP) 2044 (LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED) 2045 (LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE) 2046 (LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP) 2047 (LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED) 2048 (LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE) 2049 (LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP) 2050 (LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT) 2051 (LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map 2052 information. 2053 (linemap_check_ordinary, linemap_assert) 2054 (linemap_location_before_p): New macros. 2055 (linemap_position_for_line_and_column) 2056 (linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token) 2057 (linemap_macro_expansion_map_p) 2058 (linemap_macro_map_loc_to_def_point) 2059 (linemap_macro_map_loc_unwind_once) 2060 (linemap_macro_map_loc_to_exp_point, linemap_step_out_once) 2061 (linemap_get_source_line linemap_get_source_column) 2062 (linemap_map_get_macro_name, linemap_get_file_path) 2063 (linemap_location_in_system_header_p) 2064 (linemap_location_from_macro_expansion_p): Declare new functions. 2065 (SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION) 2066 (LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this 2067 accessors act on ordinary maps only. 2068 (INCLUDED_FROM): Return NULL for main files; use the new 2069 accessors. 2070 (LINEMAP_POSITION_FOR_COLUMN): Use the new accessors. 2071 (struct expanded_location): Move here from gcc/input.h 2072 (linemap_resolve_location, linemap_expand_location) 2073 (linemap_expand_location_full): Declare new functions. 2074 * line-map.c: Include cpplib.h, internal.h 2075 (linemap_enter_macro, linemap_add_macro_token) 2076 (linemap_get_expansion_line, linemap_get_expansion_filename): New 2077 functions that are private to libcpp. 2078 (linemap_assert): New macro. 2079 (linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point) 2080 (linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point) 2081 (linemap_macro_map_loc_unwind_toward_spelling) 2082 (linemap_macro_map_loc_to_exp_point) 2083 (first_map_in_common_1, first_map_in_common): New static 2084 functions. 2085 (new_linemap): Define new static functions. Extracted and 2086 enhanced from ... 2087 (linemap_add): ... here. Use linemap_assert in lieu of abort 2088 previously. 2089 (linemap_tracks_macro_expansion_locs_p) 2090 (linemap_add_macro_token, linemap_macro_expansion_map_p) 2091 (linemap_check_ordinary, linemap_macro_map_loc_to_exp_point) 2092 (linemap_macro_map_loc_to_def_point) 2093 (linemap_macro_map_loc_unwind_once) 2094 (linemap_step_out_once, linemap_map_get_index) 2095 (linemap_get_source_line,linemap_get_source_column) 2096 (linemap_get_file_path, linemap_map_get_macro_name) 2097 (linemap_location_in_system_header_p) 2098 (linemap_location_originated_from_system_header_p) 2099 (linemap_location_from_macro_expansion_p) 2100 (linemap_tracks_macro_expansion_locs_p) 2101 (linemap_resolve_location, linemap_expand_location) 2102 (linemap_expand_location_full) 2103 (linemap_tracks_macro_expansion_locs_p) 2104 (linemap_position_for_line_and_column, linemap_compare_locations): 2105 Define new public functions. 2106 (linemap_init): Initialize ordinary and macro maps information in 2107 the map set. 2108 (linemap_check_files_exited): Use the new accessors. 2109 (linemap_free): Remove this dead code. 2110 (linemap_line_start): Assert this uses an ordinary map. Adjust to 2111 use the new ordinary map accessors and data structures. Don't 2112 overflow past the lowest possible macro token's location. 2113 (linemap_position_for_column): Assert the ordinary maps of the map 2114 set are really ordinary. Use ordinary map accessors. 2115 (linemap_lookup): Keep the same logic but generalize to allow 2116 lookup of both ordinary and macro maps. Do not crash when called 2117 with an empty line table. 2118 * directives-only.c (_cpp_preprocess_dir_only): Adjust to use the 2119 new API of line-map.h. 2120 * directives.c (start_directive, do_line, do_linemarker) 2121 (do_linemarker): Likewise. 2122 * files.c (_cpp_find_file, _cpp_stack_include, open_file_failed) 2123 (make_cpp_dir, cpp_make_system_header): Likewise. 2124 * init.c (cpp_read_main_file): Likewise. 2125 * internal.h (CPP_INCREMENT_LINE): Likewise. 2126 (linemap_enter_macro, linemap_add_macro_token) 2127 (linemap_get_expansion_line, linemap_get_expansion_filename): New 2128 functions private to libcpp. 2129 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment) 2130 (skip_line_comment, skip_whitespace, lex_raw_string) 2131 (_cpp_lex_direct): Likewise. 2132 * macro.c (_cpp_builtin_macro_text): Likewise. 2133 (_cpp_aligned_alloc): Initialize the new name member of the macro. 2134 * traditional.c (copy_comment, _cpp_scan_out_logical_line): 2135 Likewise. 2136 * errors.c (cpp_diagnostic): Adjust to new linemap API. 2137 21382011-08-28 Dodji Seketeli <dodji@redhat.com> 2139 2140 * line-map.c (linemap_add): Assert that reason must not be 2141 LC_RENAME when called for the first time on a "main input file". 2142 21432011-08-22 Gabriel Charette <gchare@google.com> 2144 2145 * init.c (cpp_create_reader): Inititalize forced_token_location_p. 2146 * internal.h (struct cpp_reader): Add field forced_token_location_p. 2147 * lex.c (_cpp_lex_direct): Use forced_token_location_p. 2148 (cpp_force_token_locations): New. 2149 (cpp_stop_forcing_token_locations): New. 2150 21512011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2152 2153 PR libstdc++/1773 2154 * init.c (cpp_init_builtins): Define __cplusplus 19971L. 2155 21562011-08-18 Joseph Myers <joseph@codesourcery.com> 2157 2158 * include/cpplib.h (struct cpp_options): Fix typo. 2159 21602011-08-18 Joseph Myers <joseph@codesourcery.com> 2161 2162 * include/cpplib.h (struct cpp_options): Add rliterals. 2163 * init.c (struct lang_flags, lang_defaults): Add rliterals. 2164 (cpp_set_lang): Set rliterals option. 2165 (cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__. 2166 * lex.c (_cpp_lex_direct): Only accept raw strings if rliterals. 2167 21682011-08-15 Gabriel Charette <gchare@google.com> 2169 2170 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove. 2171 Update all users to use linemap_position_for_column instead. 2172 21732011-07-28 Gabriel Charette <gchare@google.com> 2174 2175 * include/line-map.h (struct line_maps): 2176 Remove unused field last_listed. Update all users. 2177 21782011-07-28 H.J. Lu <hongjiu.lu@intel.com> 2179 2180 * configure.ac: Set need_64bit_hwint to yes for x86 targets. 2181 * configure: Regenerated. 2182 21832011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2184 2185 * system.h [__cplusplus]: Wrap C function declarations in extern "C". 2186 21872011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2188 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2189 2190 PR bootstrap/49794 2191 * configure.ac: Test AM_ICONV with CXX. 2192 * configure: Regenerate. 2193 * system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++. 2194 21952011-07-15 Dodji Seketeli <dodji@redhat.com> 2196 2197 * directives.c (struct if_stack): Use source_location as type 2198 here. 2199 * include/cpplib.h (struct cpp_callbacks)<include, define, undef, 2200 indent, def_pragma, used_define, used_undef>: Properly use 2201 source_location as parameter type, rather than unsigned int. 2202 22032011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2204 2205 PR target/39150 2206 * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9] 2207 like i[34567]86-*-solaris2.1[0-9]*. 2208 * configure: Regenerate. 2209 22102011-06-16 Jason Merrill <jason@redhat.com> 2211 2212 PR c++/45399 2213 * lex.c (lex_raw_string): Don't check for embedded NUL. 2214 22152011-06-06 Dodji Seketeli <dodji@redhat.com> 2216 2217 PR preprocessor/48532 2218 * directives.c (do_pragma): Don't forget the invocation location 2219 when parsing the pragma name of a namespaced pragma directive. 2220 22212011-05-29 John Tytgat <John.Tytgat@aaug.net> 2222 2223 * files.c (read_file_guts): Add test on non-zero value of S_ISREG. 2224 22252011-05-22 Uros Bizjak <ubizjak@gmail.com> 2226 2227 PR target/49104 2228 * lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__ 2229 is defined. Check bit_MMXEXT and bit_CMOV to use search_line_mmx. 2230 22312011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com> 2232 2233 * system.h (ENUM_BITFIELD): Remove. 2234 22352011-04-24 Jakub Jelinek <jakub@redhat.com> 2236 2237 PR preprocessor/48740 2238 * lex.c (lex_raw_string): When raw string ends with 2239 ??) followed by raw prefix and ", ensure it is preprocessed 2240 with ??) rather than ??]. 2241 22422011-04-20 Jim Meyering <meyering@redhat.com> 2243 2244 * files.c (destroy_cpp_file): Remove useless if-before-free. 2245 * init.c (cpp_destroy): Likewise. 2246 * macro.c (replace_args): Likewise. 2247 * pch.c (cpp_valid_state): Likewise. 2248 22492011-03-25 Kai Tietz <ktietz@redhat.com> 2250 2251 * files.c (file_hash_eq): Use filename_cmp 2252 instead of strcmp. 2253 (nonexistent_file_hash_eq): Likewise. 2254 (remap_filename): Likewise. 2255 Handle absolute DOS-path, 2256 (append_file_to_dir): Check for IS_DIR_SEPARATOR 2257 instead of slash. 2258 (read_name_map): Likewise. 2259 * linemap.c (linemap_add): Use filename_cmp 2260 instead of strcmp. 2261 * mkdeps.c (apply_vpath): Use filename_ncmp 2262 instead of strncmp. 2263 (deps_restore): Use filename_cmp instead of 2264 strcmp. 2265 * init.c (read_original_directory): Use 2266 IS_DIR_SEPARATOR instead of checking for slash. 2267 22682011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com> 2269 2270 PR preprocessor/48192 2271 * directives.c (do_ifdef): Do not consider conditional macros as 2272 being defined. 2273 (do_ifndef): Ditto. 2274 * expr.c (parse_defined): Ditto. 2275 22762011-03-18 Richard Henderson <rth@redhat.com> 2277 2278 PR bootstrap/45381 2279 * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5. 2280 22812011-11-04 Eric Botcazou <ebotcazou@adacore.com> 2282 Jakub Jelinek <jakub@redhat.com> 2283 2284 PR preprocessor/39213 2285 * directives.c (end_directive): Call _cpp_remove_overlay for deferred 2286 pragmas as well in traditional mode. 2287 22882010-11-17 Ian Lance Taylor <iant@google.com> 2289 2290 PR bootstrap/45538 2291 * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS. Remove switch of 2292 AC_LANG based on ENABLE_BUILD_WITH_CXX. 2293 22942010-11-16 Kai Tietz <kai.tietz@onevision.com> 2295 2296 PR preprocessor/17349 2297 * lex.c (save_comment): Handle in argument passing c++ 2298 comments special. 2299 23002010-11-02 Ian Lance Taylor <iant@google.com> 2301 2302 * configure.ac: Use AC_SYS_LARGEFILE. 2303 * configure: Rebuild. 2304 * config.in: Rebuild. 2305 23062010-10-19 Basile Starynkevitch <basile@starynkevitch.net> 2307 2308 * line-map.h (source_location): Remove obsolete comment 2309 mentioning location_s. 2310 23112010-09-29 Kai Tietz <kai.tietz@onevision.com> 2312 2313 PR preprocessor/45362 2314 * directives.c (cpp_pop_definition): Make static. 2315 (do_pragma_push_macro): Reworked to store text 2316 definition. 2317 (do_pragma_pop_macro): Add free text definition. 2318 (cpp_push_definition): Removed. 2319 * include/cpplib.h (cpp_push_definition): Removed. 2320 (cpp_pop_definition): Likewise. 2321 * internal.h (def_pragma_macro): Remove member 'value' 2322 and add new members 'definition', 'line', 2323 'syshdr', 'sued' and 'is_undef'. 2324 * pch.c (_cpp_restore_pushed_macros): Rework to work 2325 on text definition and store additional macro flags. 2326 (_cpp_save_pushed_macros): Likewise. 2327 23282010-09-29 Joseph Myers <joseph@codesourcery.com> 2329 2330 * include/cpplib.h (cpp_options): Rename warn_deprecated, 2331 warn_traditional, warn_long_long and pedantic. 2332 * directives.c (directive_diagnostics, _cpp_handle_directive): 2333 Update names of cpp_options members. 2334 * expr.c (cpp_classify_number, eval_token): Update names of 2335 cpp_options members. 2336 * init.c (cpp_create_reader, post_options): Update names of 2337 cpp_options members. 2338 * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of 2339 cpp_options members. 2340 * macro.c (parse_params): Update names of cpp_options members. 2341 23422010-09-15 Ian Lance Taylor <iant@google.com> 2343 2344 * init.c: Fix type name in comment. 2345 23462010-08-31 Jakub Jelinek <jakub@redhat.com> 2347 2348 PR preprocessor/45457 2349 * expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if 2350 needed. 2351 * directives.c (do_ifdef, do_ifndef): Likewise. 2352 23532010-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2354 2355 * system.h [HAVE_INTTYPES_H]: Include inttypes.h. 2356 23572010-08-24 Richard Henderson <rth@redhat.com> 2358 2359 PR bootstrap/45376 2360 * configure.ac (HAVE_SSE4): New check. 2361 * configure, config.in: Rebuild. 2362 * lex.c (search_line_sse42): Omit if !HAVE_SSE4. 2363 23642010-08-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2365 2366 * lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer 2367 etc. on Solaris 2/x86. 2368 23692010-08-21 Richard Henderson <rth@redhat.com> 2370 Andi Kleen <ak@linux.intel.com> 2371 David S. Miller <davem@davemloft.net> 2372 2373 * configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests. 2374 (ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE. 2375 (ptrdiff_t): Check via AC_CHECK_TYPE. 2376 * config.in, configure: Rebuild. 2377 * system.h: Include stdint.h, if available. 2378 * lex.c (WORDS_BIGENDIAN): Provide default. 2379 (acc_char_mask_misalign, acc_char_replicate, acc_char_cmp, 2380 acc_char_index, search_line_acc_char, repl_chars, search_line_mmx, 2381 search_line_sse2, search_line_sse42, init_vectorized_lexer, 2382 search_line_fast): New. 2383 (_cpp_clean_line): Use search_line_fast. Restructure the fast 2384 loop to make it clear when we're leaving the loop. Stay in the 2385 fast loop for non-trigraph '?'. 2386 23872010-06-11 Jakub Jelinek <jakub@redhat.com> 2388 2389 * include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro 2390 callback. 2391 (enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER. 2392 (cpp_macro_definition): Remove const qual from second argument. 2393 * macro.c (enter_macro_context): Call user_builtin_macro callback for 2394 NODE_BUILTIN !NODE_USED macros. 2395 (warn_of_redefinition): Likewise. Remove const qual from second 2396 argument. 2397 (cpp_macro_definition): Likewise. 2398 * pch.c (write_macdef, save_macros): Call user_builtin_macro callback 2399 for NODE_BUILTIN !NODE_USED macros. 2400 24012010-06-10 Joseph Myers <joseph@codesourcery.com> 2402 2403 * include/cpplib.h (struct cpp_options): Remove show_column. 2404 * init.c (cpp_create_reader, post_options): Don't set show_column. 2405 24062010-06-09 Joern Rennecke <joern.rennecke@embecosm.com> 2407 2408 PR bootstrap/44432 2409 * configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++, 2410 check that C++ compiler works. 2411 * configure: Regenerate. 2412 24132010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com> 2414 2415 * include/symtab.h (ht_identifier_ptr): New. 2416 24172010-06-03 Joern Rennecke <joern.rennecke@embecosm.com> 2418 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2419 2420 PR bootstrap/42798 2421 * configure.ac: Check for declaration of 'basename(char *)'. 2422 * configure: Regenerate. 2423 * config.in: Regenerate. 2424 24252010-04-25 Joseph Myers <joseph@codesourcery.com> 2426 2427 * include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X. 2428 * init.c (lang_defaults): Add entries for new language variants. 2429 (cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X 2430 variants. 2431 24322010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org> 2433 2434 PR cpp/43195 2435 * files.c (report_missing_guard): Test for #pragma once. 2436 24372010-04-07 Simon Baldwin <simonb@google.com> 2438 2439 * directives.c (do_diagnostic): Add warning reason argument, 2440 call appropriate error reporting function for code. 2441 (directive_diagnostics): Call specific warning functions with 2442 warning reason where appropriate. 2443 (do_error, do_warning, do_pragma_dependency): Add warning reason 2444 argument to do_diagnostic calls. 2445 * macro.c (_cpp_warn_if_unused_macro, enter_macro_context, 2446 _cpp_create_definition): Call specific warning functions with 2447 warning reason where appropriate. 2448 * Makefile.in: Add new diagnostic functions to gettext translations. 2449 * include/cpplib.h (struct cpp_callbacks): Add warning reason code 2450 to error callback. 2451 (CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR, 2452 CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums. 2453 (CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS, 2454 CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR, 2455 CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS, 2456 CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS, 2457 CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF, 2458 CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE, 2459 CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp 2460 warning reason codes. 2461 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr, 2462 cpp_warning_with_line, cpp_pedwarning_with_line, 2463 cpp_warning_with_line_syshdr): New specific error reporting functions. 2464 * pch.c (cpp_valid_state): Call specific warning functions with 2465 warning reason where appropriate. 2466 * errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central 2467 diagnostic handlers. 2468 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr, 2469 cpp_warning_with_line, cpp_pedwarning_with_line, 2470 cpp_warning_with_line_syshdr): New specific error reporting functions. 2471 * expr.c (cpp_classify_number, eval_token, num_unary_op): Call 2472 specific warning functions with warning reason where appropriate. 2473 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment, 2474 warn_about_normalization, lex_identifier_intern, lex_identifier, 2475 _cpp_lex_direct): Ditto. 2476 * charset.c (_cpp_valid_ucn, convert_hex, convert_escape, 2477 narrow_str_to_charconst): Ditto. 2478 24792010-04-06 Jakub Jelinek <jakub@redhat.com> 2480 2481 PR preprocessor/43642 2482 * lex.c (lex_raw_string): Change type of TYPE variable to 2483 unsigned char. 2484 24852010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2486 2487 * aclocal.m4: Regenerate. 2488 24892010-03-29 Jason Merrill <jason@redhat.com> 2490 2491 More N3077 raw string changes 2492 * charset.c (cpp_interpret_string): Don't transform UCNs in raw 2493 strings. 2494 * lex.c (bufring_append): Split out from... 2495 (lex_raw_string): ...here. Undo trigraph and line splicing 2496 transformations. Do process line notes in multi-line literals. 2497 (_cpp_process_line_notes): Ignore notes that were already handled. 2498 2499 Some raw string changes from N3077 2500 * charset.c (cpp_interpret_string): Change inner delimiters to (). 2501 * lex.c (lex_raw_string): Likewise. Also disallow '\' in delimiter. 2502 25032010-02-11 Jakub Jelinek <jakub@redhat.com> 2504 2505 * init.c (read_original_filename): Don't call read_original_directory 2506 if _cpp_handle_directive returns 0. 2507 25082010-01-01 Joseph Myers <joseph@codesourcery.com> 2509 2510 PR preprocessor/41947 2511 * expr.c (cpp_classify_number): Give error for hexadecimal 2512 floating-point constant with no digits before or after point. 2513 25142009-11-20 Arnaud Charlet <charlet@adacore.com> 2515 2516 * macro.c (enter_macro_context): Call cb.used callback if defined. 2517 * directives.c (do_idef, do_ifndef): Ditto. 2518 * include/cpplib.h (struct cpp_callbacks): Add used callback. 2519 25202009-11-11 Kai Tietz <kai.tietz@onevision.com> 2521 2522 * directives.c (do_pragma_push_macro): New pragma handler. 2523 (do_pragma_pop_macro): Likewise. 2524 (_cpp_init_internal_pragmas): Add push_macro and 2525 pop_macro handler to internal pragmas. 2526 (lex_macro_node_from_str): Removed. 2527 (cpp_push_definition): Replace lex_macro_node_from_str 2528 by _cpp_lex_identifier. 2529 (cpp_pop_definition): Likewise. 2530 * internal.h (_cpp_lex_identifier): New prototype. 2531 (def_pragma_macro): New structure. 2532 (cpp_reader): New member pushed_macros. 2533 * lex.c (_cpp_lex_identifier): New function. 2534 (lex_identifier_intern): New function. 2535 * init.c (cpp_create_reader): Initialize pushed_macros 2536 member. 2537 (cpp_destroy): Free elements in pushed_macros member. 2538 * pch.c (_cpp_save_pushed_macros): New function. 2539 (_cpp_restore_pushed_macros): Likewise. 2540 (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros. 2541 (cpp_read_state): Use _cpp_restore_pushed_macros. 2542 25432009-10-19 Jakub Jelinek <jakub@redhat.com> 2544 2545 * charset.c (cpp_init_iconv): Initialize utf8_cset_desc. 2546 (_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc 2547 and char32_cset_desc. 2548 (converter_for_type): Handle CPP_UTF8STRING. 2549 (cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings. 2550 * directives.c (get__Pragma_string): Handle CPP_UTF8STRING. 2551 (parse_include): Reject raw strings. 2552 * include/cpplib.h (CPP_UTF8STRING): New token type. 2553 * internal.h (struct cpp_reader): Add utf8_cset_desc field. 2554 * lex.c (lex_raw_string): New function. 2555 (lex_string): Handle u8 string literals, call lex_raw_string 2556 for raw string literals. 2557 (_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R" 2558 sequences. 2559 * macro.c (stringify_arg): Handle CPP_UTF8STRING. 2560 25612009-10-14 Jakub Jelinek <jakub@redhat.com> 2562 2563 PR preprocessor/41543 2564 * include/line-map.h (RESERVED_LOCATION_COUNT): Define. 2565 * line-map.c (linemap_init): Initialize highest_location and 2566 highest_line to RESERVED_LOCATION_COUNT-1 instead of 0. 2567 25682009-10-09 Jason Merrill <jason@redhat.com> 2569 2570 * charset.c (_cpp_valid_ucn): Update C++0x restrictions. 2571 25722009-10-09 Neil Vachharajani <nvachhar@google.com> 2573 2574 * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and 2575 sccs. 2576 25772009-09-23 Loren J. Rittle <ljrittle@acm.org> 2578 2579 * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h. 2580 * configure: Rebuilt. 2581 25822009-09-22 Richard Guenther <rguenther@suse.de> 2583 2584 PR pch/38987 2585 * files.c (pch_open_file): Disallow non-toplevel PCH inclusion. 2586 25872009-09-18 Chris Demetriou <cgd@google.com> 2588 2589 PR preprocessor/28435: 2590 * include/cpplib.h (struct cpp_options): Add new member 2591 deps.need_preprocessor_output. 2592 * files.c (open_file_failed): If preprocessor output is needed 2593 always report an error. 2594 25952009-09-13 Kai Tietz <kai.tietz@onevision.com> 2596 2597 * configure.ac: Set for i?86-w64-mingw* 2598 need_64bit_hwint to yes. 2599 * configure: Regenerated. 2600 26012009-09-10 Jason Merrill <jason@redhat.com> 2602 2603 * directives.c (cpp_define): constify. 2604 26052009-09-02 Ian Lance Taylor <iant@google.com> 2606 2607 * macro.c (stringify_arg): Escape CPP_WCHAR tokens. 2608 26092009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2610 2611 * configure.ac (AC_PREREQ): Bump to 2.64. 2612 26132009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2614 2615 * aclocal.m4: Regenerate. 2616 * config.in: Regenerate. 2617 * configure: Regenerate. 2618 26192009-08-17 Tom Tromey <tromey@redhat.com> 2620 2621 PR preprocessor/41067: 2622 * charset.c (convert_escape): Add missing ":" to error text. 2623 26242009-07-27 Douglas B Rupp <rupp@gnat.com> 2625 2626 * include/cpplib.h (INO_T_CPP): New macro. 2627 (struct cpp_dir): Use it. 2628 26292009-07-20 Jerry Quinn <jlquinn@optonline.net> 2630 2631 PR regression/40800 2632 * configure.ac: Use = instead of == for testing 2633 ENABLE_BUILD_WITH_CXX. 2634 * configure: Rebuild. 2635 26362009-07-17 Jerry Quinn <jlquinn@optonline.net> 2637 2638 * directives.c (do_linemarker, do_line): Use CPP_STRING for 2639 ignored enum value. 2640 * files.c (find_file_in_dir): Add cast from void* to char*. 2641 * symtab.c (ht_lookup_with_hash): Add cast from void* to char*. 2642 * Makefile.in: (WARN_CFLAGS): Use general and C-specific 2643 warnings. 2644 (CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS, 2645 ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER, 2646 COMPILER_FLAGS): New. 2647 (DEPMODE): Set from CCDEPMODE or CXXDEPMODE. 2648 (COMPILE.base): Use COMPILER instead of CC. Use COMPILER_FLAGS 2649 instead of ALL_CFLAGS. 2650 * configure.ac: Invoke AC_PROG_CXX. Separate C-specific warnings 2651 from other warnings. Add -Wc++-compat to C-specific warnings. 2652 Check for --enable-build-with-cxx. Set and substitute 2653 ENABLE_BUILD_WITH_CXX. Invoke ZW_PROG_COMPILER_DEPENDENCIES 2654 according to ENABLE_BUILD_WITH_CXX. Invoke AC_LANG before 2655 AC_CHECK_HEADERS. 2656 * configure: Rebuild. 2657 * include/cpp-id-data.h: Remove extern "C". 2658 * include/line-map.h: Likewise. 2659 * include/mkdeps.h: Likewise. 2660 * include/symtab.h: Likewise. 2661 * internal.h: Likewise. 2662 26632009-06-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2664 2665 * directives.c (parse_include): Add location argument. Update all 2666 calls. 2667 (parse_answer): Likewise. 2668 (do_include_common): Error with exact location. 2669 (parse_assertion): Likewise. 2670 26712009-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org> 2672 2673 * expr.c (num_div_op): Take explicit location. 2674 26752009-06-17 Ian Lance Taylor <iant@google.com> 2676 2677 * include/cpplib.h (progname): Don't declare. 2678 26792009-06-12 Ian Lance Taylor <iant@google.com> 2680 2681 * include/cpplib.h (struct cpp_options): Add 2682 warn_cxx_operator_names field. 2683 (NODE_WARN_OPERATOR): Define. 2684 (struct cpp_hashnode): Increase flags field to 10 bits, decrease 2685 type to 6 bits. 2686 * init.c (mark_named_operators): Add flags parameter. 2687 (cpp_post_options): Pick flags value to pass to 2688 mark_named_operators. 2689 * lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that 2690 identifier is an operator name in C++. 2691 26922009-06-01 Aldy Hernandez <aldyh@redhat.com> 2693 2694 * include/line-map.h (LAST_SOURCE_COLUMN): New. 2695 26962009-06-01 Ian Lance Taylor <iant@google.com> 2697 2698 * include/cpp-id-data.h: Add extern "C". 2699 * include/line-map.h: Likewise. 2700 * include/mkdeps.h: Likewise. 2701 * include/symtab.h: Likewise. 2702 * internal.h: Likewise. 2703 27042009-05-15 Ian Lance Taylor <iant@google.com> 2705 2706 * include/cpplib.h (enum cpp_builtin_type): Rename from enum 2707 builtin_type. Change all uses. 2708 27092009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2710 2711 PR cpp/36674 2712 * directives (do_linemarker): Compensate for the increment in 2713 location that occurs when we reach the end of line. 2714 * files (_cpp_stack_include): Mention _cpp_find_file in the 2715 comment. 2716 27172009-05-10 Joseph Myers <joseph@codesourcery.com> 2718 2719 * include/cpplib.h (enum cpp_token_fld_kind): Add 2720 CPP_TOKEN_FLD_TOKEN_NO. 2721 (struct cpp_macro_arg, struct cpp_identifier): Define. 2722 (union cpp_token_u): Use struct cpp_identifier for identifiers. 2723 Use struct cpp_macro_arg for macro arguments. Add token_no for 2724 CPP_PASTE token numbers. 2725 * directives.c (_cpp_handle_directive, lex_macro_node, do_pragma, 2726 do_pragma_poison, parse_assertion): Use val.node.node in place of 2727 val.node. 2728 * expr.c (parse_defined, eval_token): Use val.node.node in place 2729 of val.node. 2730 * lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len, 2731 cpp_spell_token, cpp_output_token, _cpp_equiv_tokens, 2732 cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in 2733 place of val.arg_no. Use val.node.node in place of val.node. 2734 * macro.c (replace_args, cpp_get_token, parse_params, 2735 lex_expansion_token, create_iso_definition, cpp_macro_definition): 2736 Use val.macro_arg.arg_no or val.token_no in place of val.arg_no. 2737 Use val.node.node in place of val.node. 2738 27392009-05-03 Joseph Myers <joseph@codesourcery.com> 2740 2741 * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte 2742 UTF-8 sequences. 2743 27442009-04-25 Joseph Myers <joseph@codesourcery.com> 2745 2746 PR preprocessor/39559 2747 * expr.c (cpp_interpret_integer): Use a pedwarn for decimal 2748 constants larger than intmax_t in C99 mode. 2749 27502009-04-21 Taras Glek <tglek@mozilla.com> 2751 2752 * include/cpp-id-data.h: Update GTY annotations to new syntax. 2753 * include/cpplib.h: Likewise. 2754 * include/line-map.h: Likewise. 2755 * include/symtab.h: Likewise. 2756 27572009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2758 2759 PR c++/14875 2760 * lex.c (cpp_type2name): Take a flags parameter. Call 2761 cpp_named_operator2name for named operators and cpp_digraph2name 2762 for digraphs. 2763 (cpp_digraph2name): New. 2764 (cpp_spell_token): Use it. 2765 (cpp_output_token): Likewise. 2766 * include/cpplib.h (cpp_type2name): Update declaration. 2767 * init.c (cpp_named_operator2name): New. 2768 * internal.h (cpp_named_operator2name): Declare. 2769 27702009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2771 2772 PR c++/13358 2773 * init.c (cpp_create_reader): Wlong_long is disabled by default. 2774 * expr.c (cpp_classify_number): Give different messages for C and 2775 C++ front-ends. 2776 27772009-04-19 Joseph Myers <joseph@codesourcery.com> 2778 2779 PR preprocessor/20078 2780 * include/cpp-id-data.h (struct cpp_macro): Add extra_tokens 2781 field. 2782 * include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define. 2783 (struct cpp_token): Change flags to unsigned short. 2784 * lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens. 2785 (_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens. 2786 (cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE 2787 tokens. 2788 * macro.c (macro_real_token_count): New. 2789 (enter_macro_context, replace_args): Use macro_real_token_count. 2790 (create_iso_definition): Record whitespace surrounding and digraph 2791 spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH. 2792 Set extra_tokens and save CPP_PASTE tokens with arg_no set for 2793 multiple consecutive ## tokens. 2794 (_cpp_create_definition): Initialize extra_tokens. 2795 (cpp_macro_definition): Use macro_real_token_count. 2796 27972009-04-18 Joseph Myers <joseph@codesourcery.com> 2798 2799 * directives.c (parse_include): Pass true to check_eol. 2800 28012009-04-18 Joseph Myers <joseph@codesourcery.com> 2802 2803 PR preprocessor/39646 2804 * include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM. 2805 * line-map.c (linemap_add): Handle LC_RENAME_VERBATIM. 2806 * directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in 2807 place of LC_RENAME. 2808 28092009-04-18 Joseph Myers <joseph@codesourcery.com> 2810 2811 PR preprocessor/39647 2812 * directives.c (check_eol): Add parameter expand. 2813 (do_undef, parse_include, do_line, do_linemarker, do_ident, 2814 do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef, 2815 do_else, do_endif, do_assert, do_unassert): All callers changed. 2816 Pass true from do_line, false elsewhere. 2817 28182009-04-12 Joseph Myers <joseph@codesourcery.com> 2819 2820 PR preprocessor/31869 2821 * macro.c (stringify_arg): Handle NULL source token in padding 2822 token where previous padding token did not have source token with 2823 preceding whitespace. 2824 28252009-04-09 Jakub Jelinek <jakub@redhat.com> 2826 2827 * Makefile.in: Change copyright header to refer to version 2828 3 of the GNU General Public License and to point readers at the 2829 COPYING3 file and the FSF's license web page. 2830 * charset.c: Likewise. 2831 * directives-only.c: Likewise. 2832 * directives.c: Likewise. 2833 * errors.c: Likewise. 2834 * expr.c: Likewise. 2835 * files.c: Likewise. 2836 * identifiers.c: Likewise. 2837 * include/cpp-id-data.h: Likewise. 2838 * include/cpplib.h: Likewise. 2839 * include/line-map.h: Likewise. 2840 * include/mkdeps.h: Likewise. 2841 * include/symtab.h: Likewise. 2842 * init.c: Likewise. 2843 * internal.h: Likewise. 2844 * lex.c: Likewise. 2845 * line-map.c: Likewise. 2846 * macro.c: Likewise. 2847 * makeucnid.c: Likewise. 2848 * mkdeps.c: Likewise. 2849 * pch.c: Likewise. 2850 * symtab.c: Likewise. 2851 * system.h: Likewise. 2852 * traditional.c: Likewise. 2853 * ucnid.tab: Likewise. 2854 * ucnid.h: Regenerate. 2855 28562009-04-01 Janis Johnson <janis187@us.ibm.com> 2857 2858 PR c/39027 2859 * include/cpplib.h (CPP_N_DEFAULT): Define. 2860 * expr.c (interpret_float_suffix): Recognize d or D for double, 2861 return new value for default. 2862 (cpp_classify_number): Issue pedwarn for use of d or D in suffix. 2863 2864 PR c/33466 2865 * expr.c (interpret_float_suffix): Reject invalid suffix that uses 2866 letters from decimal float and fixed-point suffixes. 2867 28682009-03-31 Joseph Myers <joseph@codesourcery.com> 2869 2870 PR preprocessor/15638 2871 * files.c (_cpp_find_file): Call open_file_failed after diagnosing 2872 invalid PCH. 2873 (open_file_failed): Make error for missing file fatal. 2874 * include/cpplib.h (CPP_DL_FATAL): Define. 2875 28762009-03-30 Sergiy Vyshnevetskiy <serg@vostok.net> 2877 2878 PR preprocessor/31932: 2879 * internal.h: Don't mention HAVE_ICONV_H. 2880 * configure, config.in: Rebuild. 2881 * configure.ac: Don't check for iconv.h. 2882 28832009-03-30 Tom Tromey <tromey@redhat.com> 2884 2885 PR preprocessor/39512: 2886 * line-map.c (linemap_init): Initialize 'reallocator' field. 2887 28882009-03-30 Jakub Jelinek <jakub@redhat.com> 2889 2890 PR target/39558 2891 * macro.c (cpp_get_token): If macro_to_expand returns NULL 2892 and used some tokens, add CPP_PADDING before next token. 2893 28942009-03-29 Joseph Myers <joseph@codesourcery.com> 2895 2896 PR preprocessor/34695 2897 * makedepend.c: Remove. 2898 * Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove. 2899 (all, clean, TAGS_SOURCES, include): Remove makedepend handling. 2900 * directives.c (cpp_errors): Remove. 2901 * errors.c (print_location, _cpp_begin_message, v_message): 2902 Remove. 2903 (cpp_error, cpp_error_with_line): Always use error callback. 2904 (cpp_error, cpp_error_with_line, cpp_errno): Return bool. 2905 * include/cpplib.h (cpp_options): Remove pedantic_errors, 2906 inhibit_warnings, warn_system_headers, inhibit_errors, 2907 warnings_are_errors, client_diagnostic. 2908 (cpp_callbacks): Add extra arguments to error callback; make it 2909 return bool. 2910 (cpp_finish): Return void. 2911 (cpp_destroy): Remove inaccurate comment about return value. 2912 (cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove. 2913 (CPP_DL_NOTE): Define. 2914 * include/line-map.h (linemap_print_containing_files): Remove. 2915 * init.c (cpp_finish): Do not check for or return number of 2916 errors. 2917 * internal.h (cpp_reader): Remove errors field. 2918 * line-map.c (linemap_print_containing_files): Remove. 2919 * macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message 2920 about previous definition. Only emit it if previous diagnostic 2921 was emitted. 2922 29232009-03-28 Joseph Myers <joseph@codesourcery.com> 2924 2925 * Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not 2926 mkinstalldirs. 2927 29282009-03-18 Jakub Jelinek <jakub@redhat.com> 2929 2930 * include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts. 2931 29322009-02-21 Joseph Myers <joseph@codesourcery.com> 2933 2934 * lex.c (lex_string): Return a CPP_LESS token for missing '>' in a 2935 header name. 2936 (_cpp_lex_direct): Handle this. 2937 29382009-02-15 Richard Guenther <rguenther@suse.de> 2939 2940 Revert last change. 2941 29422009-02-13 Richard Guenther <rguenther@suse.de> 2943 2944 * configure.ac: Enable LFS. 2945 * configure: Re-generate. 2946 * config.in: Likewise. 2947 29482009-01-05 Ben Elliston <bje@au.ibm.com> 2949 2950 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir. 2951 (.po.pox): Likewise. 2952 (po/$(PACKAGE).pot): Likewise. 2953 29542008-12-10 Alexandre Oliva <aoliva@redhat.com> 2955 2956 PR target/37033 2957 * pch.c (cpp_valid_state): Improve message for poisoned symbols. 2958 Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM. 2959 29602008-11-29 Joseph Myers <joseph@codesourcery.com> 2961 2962 * lex.c (cpp_token_len): Use 6 as default length. 2963 29642008-10-31 Manuel López-Ibáñez <manu@gcc.gnu.org> 2965 2966 * expr.c (struct op): Add location. 2967 (_cpp_parse_expr): Propagate locations throught the stack 2968 of expressions. 2969 (reduce): Likewise. 2970 (check_promotion): Use explicit location in errors. 2971 29722008-10-05 Matthew Gingell <gingell@adacore.com> 2973 Arnaud Charlet <charlet@adacore.com> 2974 2975 * include/cpplib.h (cpp_comments, cpp_comment_table): New structs. 2976 (cpp_get_comments): New function. 2977 * internal.h (struct cpp_reader): Add comments field. 2978 * init.c (cpp_destroy): Free comments. 2979 * lex.c (store_comment, cpp_get_comments): New functions. 2980 (comments): New struct. 2981 (save_comment): Store comments in comments struct. 2982 29832008-09-18 Simon Baldwin <simonb@google.com> 2984 2985 * include/cpplib.h (struct cpp_options): Add new boolean flag 2986 warn_builtin_macro_redefined. 2987 * init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined. 2988 * (struct builtin_operator): Split out from previous struct builtin, 2989 enhance extra const correctness. 2990 * (struct builtin_macro): Split out from previous struct builtin, add 2991 new always_warn_if_redefined flag, enhance const correctness. 2992 * (mark_named_operators): Use struct builtin_operator. 2993 * (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN 2994 to builtins selectively. 2995 * macro.c (warn_of_redefinition): Return false if a builtin macro 2996 is not flagged with NODE_WARN. 2997 29982008-07-31 Jakub Jelinek <jakub@redhat.com> 2999 3000 PR preprocessor/36649 3001 * files.c (struct report_missing_guard_data): New type. 3002 (report_missing_guard): Put paths into an array instead of printing 3003 them right away. Return 1 rather than 0. 3004 (report_missing_guard_cmp): New function. 3005 (_cpp_report_missing_guards): Sort and print paths gathered by 3006 report_missing_guard callback. 3007 30082008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 3009 3010 PR 28079 3011 * directives.c (strtolinenum): Handle overflow. 3012 (do_line): Give a warning if line number overflowed. 3013 (do_linemarker): Update call to strtolinenum. 3014 30152008-07-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 3016 3017 * include/line-map.h (linenum_type): New typedef. 3018 (struct line_map): Use it. 3019 (SOURCE_LINE): Second arguments is a LOCATION not a LINE. 3020 (SOURCE_COLUMN): Likewise. 3021 * macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store 3022 source_location values in a variable of type linenum_type. 3023 * directives.c (struct if_stack): Use linenum_type. 3024 (strtoul_for_line): Rename as strtolinenum. 3025 (do_line): Use linenum_type. 3026 (do_linemarker): Use linenum_type and strtolinenum. 3027 (_cpp_do_file_change): Use linenum_t. 3028 * line-map.c (linemap_add): Likewise. 3029 (linemap_line_start): Likewise. 3030 * traditional.c (struct fun_macro): 'line' is a source_location. 3031 * errors.c (print_location): Use linenum_type. 3032 * directives-only.c (_cpp_preprocess_dir_only): Likewise. 3033 * internal.h (CPP_INCREMENT_LINE): Likewise. 3034 * lex.c (_cpp_skip_block_comment): Use source_location. 3035 30362008-07-14 Ben Elliston <bje@au.ibm.com> 3037 3038 * include/cpplib.h (NODE_CONDITIONAL): New. 3039 (struct cpp_callbacks): New macro_to_expand field. 3040 (struct cpp_hashnode): Adjust size of flags and type fields. 3041 (cpp_peek_token): Prototype. 3042 * lex.c (cpp_peek_token): New function. 3043 (_cpp_temp_token): Protect pre-existing lookaheads. 3044 * macro.c (cpp_get_token): Expand any conditional macros. 3045 (_cpp_backup_tokens_direct): New. 3046 (_cpp_backup_tokens): Call _cpp_backup_tokens_direct. 3047 (warn_of_redefinition): Silently allow redefined conditional 3048 macros. 3049 (_cpp_create_definition): Remove the conditional flag when a user 3050 defines one of the conditional macros. 3051 * internal.h (_cpp_backup_tokens_direct): New prototype. 3052 30532008-06-13 Andrew Haley <aph@redhat.com> 3054 3055 PR preprocessor/33305 3056 * macro.c (replace_args): Print a warning for empty macro 3057 arguments in C89 and C++. 3058 30592008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3060 3061 * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies. 3062 * configure: Regenerate. 3063 30642008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3065 3066 * Makefile.in (datarootdir): New variable. 3067 30682008-06-12 H.J. Lu <hongjiu.lu@intel.com> 3069 3070 PR preprocessor/36479 3071 * charset.c (cpp_interpret_string_notranslate): Also set 3072 narrow_cset_desc.width. 3073 30742008-06-07 Joseph Myers <joseph@codesourcery.com> 3075 3076 * configure.ac (parisc*64*-*-*): Remove. 3077 * configure: Regenerate. 3078 30792008-05-30 Tom Tromey <tromey@redhat.com> 3080 3081 PR preprocessor/36320: 3082 * internal.h (_cpp_parse_expr): Update. 3083 * expr.c (_cpp_parse_expr): Add 'is_if' argument. Update error 3084 messages. 3085 * directives.c (do_if): Update. 3086 (do_elif): Require expression if processing group. 3087 30882008-05-30 Danny Smith <dannysmith@users.sourceforge.net> 3089 3090 * include/cpplib.h (struct cpp_dir): Add new field, canonical_name. 3091 30922008-05-21 Tom Tromey <tromey@redhat.com> 3093 3094 PR preprocessor/27777: 3095 * lex.c (cpp_output_line_to_string): New function. 3096 * internal.h (_cpp_begin_message): Don't declare. 3097 * errors.c (_cpp_begin_message): Now static. 3098 * include/cpplib.h (cpp_output_line_to_string): Declare. 3099 * directives.c (do_diagnostic): Rewrote. Use 3100 cpp_output_line_to_string. Don't use _cpp_begin_message. 3101 31022008-05-21 Tom Tromey <tromey@redhat.com> 3103 3104 * include/symtab.h (HT_ALLOCED): Remove. 3105 (ht_purge): Declare. 3106 * symtab.c (DELETED): New define. 3107 (ht_lookup): Update comment. 3108 (ht_lookup_with_hash): Handle deleted entries. Remove HT_ALLOCED 3109 code. Use subobject allocator for strings, if it exists. 3110 (ht_expand): Handle deleted entries. 3111 (ht_forall): Likewise. 3112 (ht_purge): New function. 3113 (ht_dump_statistics): Print deletion statistics. 3114 31152008-05-13 Tom Tromey <tromey@redhat.com> 3116 3117 PR preprocessor/22168: 3118 * include/cpplib.h (struct cpp_options) <objc>: Update 3119 documentation. 3120 * expr.c (eval_token): Warn for use of assertions. 3121 * directives.c (directive_diagnostics): Warn about extensions. 3122 (DEPRECATED): New define. 3123 (DIRECTIVE_TABLE): Use it. 3124 31252008-05-06 Tom Tromey <tromey@redhat.com> 3126 3127 PR preprocessor/35313, PR preprocessor/36088: 3128 * expr.c (optab) <QUERY, COMMA>: Set precedence to 4. 3129 (reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON. 3130 31312008-05-04 David S. Miller <davem@davemloft.net> 3132 3133 * configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes. 3134 * configure: Regenerate. 3135 31362008-04-22 Daniel Franke <franke.daniel@gmail.com> 3137 3138 * include/cpplib.h (cpp_define_formatted): New. 3139 * directives.c (cpp_define_formatted): New. 3140 31412008-04-21 Tom Tromey <tromey@redhat.com> 3142 3143 PR libcpp/33415: 3144 * charset.c (_cpp_convert_input): Add buffer_start argument. 3145 Ignore UTF-8 BOM if seen. 3146 * internal.h (_cpp_convert_input): Add argument. 3147 * files.c (struct _cpp_file) <buffer_start>: New field. 3148 (destroy_cpp_file): Free buffer_start, not buffer. 3149 (_cpp_pop_file_buffer): Likewise. 3150 (read_file_guts): Update. 3151 31522008-04-18 Kris Van Hees <kris.van.hees@oracle.com> 3153 3154 * include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal. 3155 * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens. 3156 (struct cpp_options): Added uliterals. 3157 (cpp_interpret_string): Update prototype. 3158 (cpp_interpret_string_notranslate): Idem. 3159 * charset.c (init_iconv_desc): New width member in cset_converter. 3160 (cpp_init_iconv): Add support for char{16,32}_cset_desc. 3161 (convert_ucn): Idem. 3162 (emit_numeric_escape): Idem. 3163 (convert_hex): Idem. 3164 (convert_oct): Idem. 3165 (convert_escape): Idem. 3166 (converter_for_type): New function. 3167 (cpp_interpret_string): Use converter_for_type, support u and U prefix. 3168 (cpp_interpret_string_notranslate): Match changed prototype. 3169 (wide_str_to_charconst): Use converter_for_type. 3170 (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}. 3171 * directives.c (linemarker_dir): Macro U changed to UC. 3172 (parse_include): Idem. 3173 (register_pragma_1): Idem. 3174 (restore_registered_pragmas): Idem. 3175 (get__Pragma_string): Support CPP_STRING{16,32}. 3176 * expr.c (eval_token): Support CPP_CHAR{16,32}. 3177 * init.c (struct lang_flags): Added uliterals. 3178 (lang_defaults): Idem. 3179 * internal.h (struct cset_converter) <width>: New field. 3180 (struct cpp_reader) <char16_cset_desc>: Idem. 3181 (struct cpp_reader) <char32_cset_desc>: Idem. 3182 * lex.c (digraph_spellings): Macro U changed to UC. 3183 (OP, TK): Idem. 3184 (lex_string): Add support for u'...', U'...', u"..." and U"...". 3185 (_cpp_lex_direct): Idem. 3186 * macro.c (_cpp_builtin_macro_text): Macro U changed to UC. 3187 (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}. 3188 31892008-04-18 Paolo Bonzini <bonzini@gnu.org> 3190 3191 PR bootstrap/35457 3192 * aclocal.m4: Regenerate. 3193 * configure: Regenerate. 3194 31952008-04-17 Tom Tromey <tromey@redhat.com> 3196 3197 PR libcpp/34866: 3198 * errors.c (cpp_error): Don't reference a token before the start 3199 of the current run. 3200 32012008-04-16 Tom Tromey <tromey@redhat.com> 3202 3203 * Makefile.in (TAGS_SOURCES): New variable. 3204 (TAGS): New target. 3205 32062008-04-11 Kaz Kojima <kkojima@gcc.gnu.org> 3207 3208 * configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-* 3209 and shbe-*-*. 3210 * configure: Rebuilt. 3211 32122008-04-02 Joseph Myers <joseph@codesourcery.com> 3213 3214 * include/cpplib.h (struct cpp_callbacks): Add used_define, 3215 used_undef and before_define. 3216 (NODE_USED): Define. 3217 * directives.c (do_define, do_undef, undefine_macros, do_ifdef, 3218 do_ifndef, cpp_pop_definition): Handle new flag and use new 3219 callbacks. 3220 * expr.c (parse_defined): Handle new flag and use new callbacks. 3221 * macro.c (enter_macro_context, _cpp_free_definition): Handle new 3222 flag and use new callbacks. 3223 32242008-04-01 Jakub Jelinek <jakub@redhat.com> 3225 3226 PR pch/13675 3227 * files.c (struct _cpp_file): Remove pch field. 3228 (pch_open_file): Don't set file->pch, just file->pchname. 3229 (should_stack_file): After pfile->cb.read_pch call 3230 free pchname and clear pchname, don't close file->fd. 3231 Test file->pchname instead of file->pch. Don't close fd after cb. 3232 (_cpp_stack_include): Test file->pchname instead of file->pch. 3233 32342008-03-28 Tom Tromey <tromey@redhat.com> 3235 3236 * Makefile.in (POSTCOMPILE): New variable. 3237 (.c.o): Use it. 3238 32392008-03-13 Tom Tromey <tromey@redhat.com> 3240 3241 PR libcpp/35322: 3242 * directives.c (destringize_and_run): Set pfile->directive. 3243 32442008-03-06 Markus Milleder <markus.milleder@generali.at> 3245 3246 PR preprocessor/35458 3247 * mkdeps.c (munge): Quote '#' with a '\'. 3248 32492008-02-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 3250 3251 PR preprocessor/35379 3252 * mkdeps.c (deps_write): Ensure the first target always appears 3253 in the first column, without leading backslash newline. Avoid 3254 some more extra whitespace. 3255 32562008-02-25 Thiemo Seufer <ths@mips.com> 3257 3258 * Makefile.in ($(srcdir)/config.in): Depend on configure.ac. 3259 32602008-02-19 Tom Tromey <tromey@redhat.com> 3261 3262 * traditional.c (lex_identifier): Use CPP_HASHNODE. 3263 * lex.c (lex_identifier): Use CPP_HASHNODE. 3264 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in 3265 do-while. 3266 * identifiers.c (alloc_node): Change return type. 3267 (_cpp_init_hashtable): Don't cast 'alloc_node'. 3268 (proxy_assertion_broken): New declaration. 3269 (cpp_forall_identifiers): Move comment. 3270 * line-map.c (linemap_add): Comment fix. 3271 (linemap_line_start): Indentation fix. 3272 32732008-01-25 Jakub Jelinek <jakub@redhat.com> 3274 3275 PR preprocessor/34692 3276 * macro.c (collect_args): Add pragma_buff argument. Push 3277 CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather 3278 than into arguments. Reset prevent_expansion and parsing_args 3279 state at CPP_PRAGMA_EOL/CPP_EOF. 3280 (funlike_invocation_p): Add pragma_buff argument, pass it through 3281 to collect_args. 3282 (enter_macro_context): Add result argument. Adjust 3283 funlike_invocation_p caller. Emit all deferred pragma tokens 3284 gathered during collect_args before the expansion, add a padding 3285 token. Return 2 instead of 1 if any pragma tokens were prepended. 3286 (cpp_get_token): If enter_macro_context returns 2, don't return 3287 a padding token, instead cycle to grab CPP_PRAGMA token. 3288 * directives.c (_cpp_handle_directive): If was_parsing_args 3289 in deferred pragma, leave parsing_args and prevent_expansion as is. 3290 32912008-01-22 Tom Tromey <tromey@redhat.com> 3292 3293 PR c++/34859 3294 * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and 3295 __STDC_CONSTANT_MACROS. 3296 32972008-01-07 Fred Fish <fnf@specifix.com> 3298 3299 PR preprocessor/30363 3300 * traditional.c (replace_args_and_push): Add local variable 3301 cxtquote, calculate the replacement text size assuming a 3302 worst case of every input character quoted with backslash, 3303 and properly handle output quoting of quote characters in 3304 actual arguments used in function-like macros. 3305 33062008-01-03 Tom Tromey <tromey@redhat.com> 3307 3308 PR preprocessor/34602 3309 * directives.c (do_line): Don't try to spell EOF token. 3310 (do_linemarker): Add comment. 3311 33122007-12-11 DJ Delorie <dj@redhat.com> 3313 3314 * charset.c (convert_using_iconv): Close out any shift states, 3315 returning to the initial state. 3316 33172007-12-06 Tom Tromey <tromey@redhat.com> 3318 3319 PR c/29172 3320 * internal.h (struct cpp_reader) <file_hash_entries>: Changed 3321 type. 3322 <file_hash_entries_allocated, file_hash_entries_used>: Removed. 3323 * files.c (FILE_HASH_POOL_SIZE): New macro. 3324 (struct file_hash_entry_pool): New. 3325 (destroy_all_cpp_files): New function. 3326 (allocate_file_hash_entries): Allocate a file_hash_entry_pool. 3327 (new_file_hash_entry): Update. 3328 (free_file_hash_entries): New function. 3329 (_cpp_cleanup_files): Call free_file_hash_entries and 3330 destroy_all_cpp_files. 3331 (cpp_clear_file_cache): New function. 3332 * include/cpplib.h (cpp_clear_file_cache): Declare. 3333 33342007-12-03 Tom Tromey <tromey@redhat.com> 3335 3336 PR preprocessor/34288 3337 * configure.ac, config.in: Rebuilt. 3338 * configure.ac: Check for ssize_t. 3339 33402007-11-30 Tom Tromey <tromey@redhat.com> 3341 3342 PR preprocessor/32868 3343 * macro.c (_cpp_create_definition): Special case 3344 __STDC_FORMAT_MACROS. 3345 33462007-11-16 Michael Matz <matz@suse.de> 3347 3348 * files.c (search_path_head): Fix check for absolute paths. 3349 33502007-11-11 Tom Tromey <tromey@redhat.com> 3351 3352 PR c++/17557 3353 * include/cpplib.h (cpp_included_before): Declare. 3354 * files.c (struct file_hash_entry) <location>: New field. 3355 (_cpp_find_file): Initialize new field. 3356 (make_cpp_dir): Likewise. 3357 (cpp_included_before): New function. 3358 33592007-11-01 Tom Tromey <tromey@redhat.com> 3360 3361 PR preprocessor/30805 3362 * macro.c (paste_tokens): Handle padding token. 3363 (paste_tokens): Don't abort unless padding has PASTE_LEFT flag. 3364 33652007-10-31 Tom Tromey <tromey@redhat.com> 3366 3367 PR preprocessor/30786 3368 * macro.c (builtin_macro): Return result of _cpp_do__Pragma. 3369 * directives.c (_cpp_do__Pragma): Return error status. 3370 * internal.h (_cpp_do__Pragma): Update. 3371 * directives.c (get__Pragma_string): Back up if EOF seen. 3372 33732007-09-06 Tom Tromey <tromey@redhat.com> 3374 3375 * internal.h (struct cpp_reader) <invocation_location>: New 3376 field. 3377 (struct cpp_reader) <set_invocation_location>: Likewise. 3378 * init.c (cpp_set_line_map): New function. 3379 * line-map.c (linemap_add): Use linemap's allocator. 3380 * include/line-map.h (GTY): Define. 3381 (line_map_realloc): New typedef. 3382 (struct line_map): Mark with GTY. 3383 (struct line_maps): Likewise. 3384 (struct line_maps) <maps>: Likewise. 3385 (struct line_maps) <reallocator>: New field. 3386 * include/symtab.h (GTY): Conditionally define. 3387 * include/cpplib.h (cpp_set_line_map): Declare. 3388 (cpp_get_token_with_location): Declare. 3389 * macro.c (cpp_get_token): Set invocation_location on the reader. 3390 (cpp_get_token_with_location): New function. 3391 33922007-08-30 Chao-ying Fu <fu@mips.com> 3393 3394 * expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur, 3395 ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk. 3396 (cpp_classify_number): Support decimal fixed-point constants without 3397 exponents. 3398 Warn about fixed-point constants when -pedantic. 3399 * include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change 3400 comments to support fixed-point values. 3401 (CPP_N_FRACT, CPP_N_ACCUM): Define. 3402 34032007-08-18 Tom Tromey <tromey@redhat.com> 3404 3405 PR preprocessor/32974 3406 * directives.c (parse_include): Don't check for EOL when 3407 processing #pragma dependency. 3408 34092007-07-30 Ollie Wild <aaw@google.com> 3410 3411 * directives-only.c: New file. 3412 * internal.h (struct _cpp_dir_only_callbacks): New. 3413 (_cpp_preprocess_dir_only): New function. 3414 * directives.c (_cpp_handle_directive): Check directives_only before 3415 disabling execution of indented directives. 3416 * files.c (_cpp_stack_file): Add directives_only check. 3417 * include/cpplib.h (struct cpp_options): Add directives_only. 3418 (cpp_init_special_builtins): New function. 3419 * init.c (cpp_init_special_builtins): New function. 3420 (cpp_init_builtins): Move builtin_array initialization to 3421 cpp_init_special_builtins. 3422 (post_options): Check directives_only before setting 3423 pfile->state.prevent_expansion = 1. 3424 * macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__ 3425 is expanded inside a directive while -fdirectives-only is enabled. 3426 * Makefile.in (libcpp_a_OBJS): Add directives-only.o. 3427 (libcpp_a_SOURCES): Add directives-only.c. 3428 34292007-07-04 Uros Bizjak <ubizjak@gmail.com> 3430 3431 * traditional.c (_cpp_scan_out_logical_line): Initialize 3432 fmacro.args, fmacro.node, fmacro.offset, fmacro.line and 3433 fmacro.args to prevent 'may be used uninitialized' warning. 3434 34352007-07-03 Uros Bizjak <ubizjak@gmail.com> 3436 3437 * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q): 3438 Add new constants. 3439 * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q' 3440 suffixes. Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q 3441 for 'q' or 'Q' suffixes. 3442 34432007-06-17 Danny Smith <dannysmith@users.sourceforge.net 3444 3445 * files.c (open_file): Correct typo. 3446 34472007-06-16 Vladimir Prus <vladimir@codesourcery.com> 3448 3449 * files.c (open_file): Prevent the call 3450 for stat from overwriting errno. 3451 34522007-06-09 Vladimir Prus <vladimir@codesourcery.com> 3453 3454 * files.c (open_file): Account for the 3455 fact that on windows, opening a directory gives 3456 EACCES. 3457 34582007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de> 3459 3460 PR preprocessor/23479 3461 * expr.c (cpp_classify_number): Implement 0b-prefixed binary 3462 integer constants. 3463 (append_digit): Likewise. 3464 * include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed 3465 binary integer constants. 3466 34672007-05-31 Dave Korn <dave.korn@artimi.com> 3468 3469 PR preprocessor/14331 3470 * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF. 3471 34722007-05-24 Ollie Wild <aaw@google.com> 3473 3474 * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER. 3475 * pch.c (cpp_write_pch_deps): Save __COUNTER__ state. 3476 (cpp_write_pch_state): Save __COUNTER__ state. 3477 (cpp_valid_state): Check valid __COUNTER__ state. 3478 (cpp_read_state): Read new __COUNTER__ state. 3479 * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator. 3480 * init.c (builtin_array): Add __COUNTER__/BT_COUNTER. 3481 * internal.h (struct cpp_reader): Add counter member. 3482 34832007-05-23 Simon Martin <simartin@users.sourceforge.net> 3484 3485 PR preprocessor/20077 3486 * macro.c (create_iso_definition): Fixed the method to determine 3487 whether the token-pasting operator appears at the beginning or the end 3488 of a macro. 3489 34902007-05-21 Ian Lance Taylor <iant@google.com> 3491 3492 * internal.h (struct cpp_reader): Add new fields: 3493 nonexistent_file_hash and nonexistent_file_ob. 3494 * files.c: Include "obstack.h". 3495 (find_file_in_dir): Before trying to open the file, look up the 3496 path name in the hash table of nonexistent files. After failing 3497 to open the file, add the path name to the hash table. 3498 (_cpp_find_file): Cache the results of looking up the file name 3499 starting with the quote and bracket chain heads, if we can. 3500 (nonexistent_file_hash_eq): New static function. 3501 (_cpp_init_files): Initialize pfile->nonexistent_file_hash and 3502 pfile->nonexistent_file_ob. 3503 (_cpp_cleanup_files): Free pfile->nonexistent_file_hash and 3504 pfile->nonexistent_file_ob. 3505 35062007-05-14 Janis Johnson <janis187@us.ibm.com> 3507 3508 * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic. 3509 3510 PR c/31924 3511 * expr.c (interpret_float_suffix): Check for invalid suffix. 3512 35132007-05-02 Eric Christopher <echristo@apple.com> 3514 3515 * expr.c (num_div_op): Don't overflow if the result is 3516 zero. 3517 35182007-05-02 Tom Tromey <tromey@redhat.com> 3519 3520 PR preprocessor/28709 3521 * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs. 3522 35232007-03-30 Michael Meissner <michael.meissner@amd.com> 3524 3525 * directives.c (lex_macro_node_from_str): Fix alloca call to be 3526 type correct. 3527 35282007-03-30 Richard Henderson <rth@redhat.com> 3529 3530 * directives.c (lex_macro_node_from_str): New. 3531 (cpp_push_definition, cpp_pop_definition): New. 3532 * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare. 3533 35342007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 3535 3536 * Makefile.in: Add dummy install-pdf target. 3537 35382007-01-30 Tom Tromey <tromey@redhat.com> 3539 3540 PR preprocessor/30468 3541 * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped 3542 './'. 3543 35442007-01-30 Tom Tromey <tromey@redhat.com> 3545 3546 PR preprocessor/29966 3547 * macro.c (lex_expansion_token): Save and restore cpp_reader's 3548 cur_token. 3549 (_cpp_create_definition): Don't restore cur_token here. 3550 * lex.c (_cpp_lex_token): Added assertion. 3551 35522007-01-27 Tom Tromey <tromey@redhat.com> 3553 3554 * configure: Rebuilt. 3555 35562007-01-12 Tom Tromey <tromey@redhat.com> 3557 3558 PR preprocessor/28227 3559 * directives.c (lex_macro_node): Added 'is_def_or_undef' 3560 argument. 3561 (do_define): Update. 3562 (do_undef): Update. 3563 (do_ifdef): Update. 3564 (do_ifndef): Update. 3565 35662007-01-11 Paolo Bonzini <bonzini@gnu.org> 3567 3568 * configure: Regenerate. 3569 35702007-01-11 Paolo Bonzini <bonzini@gnu.org> 3571 3572 * configure: Regenerate. 3573 35742007-01-04 Tom Tromey <tromey@redhat.com> 3575 3576 PR preprocessor/28165 3577 * internal.h (cpp_in_primary_file): New function. 3578 * directives.c (do_include_next): Use cpp_in_primary_file. 3579 (do_pragma_once): Likewise. 3580 (do_pragma_system_header): Likewise. 3581 35822006-12-29 Ian Lance Taylor <iant@google.com> 3583 3584 * lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't 3585 look backward at the end of the line unless we saw a backslash. 3586 35872006-12-29 Jakub Jelinek <jakub@redhat.com> 3588 3589 PR preprocessor/29612 3590 * directives.c (do_linemarker): Set pfile->buffer->sysp always, not 3591 only when new_sysp is non-zero. 3592 35932006-12-28 Tom Tromey <tromey@redhat.com> 3594 3595 PR preprocessor/30001 3596 * charset.c (_cpp_convert_input): Check that to.len is greater 3597 than zero. 3598 35992006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> 3600 3601 * configure.ac (need_64bit_hwint): Need 64bit hwint for SPU. 3602 * configure: Rebuilt. 3603 36042006-11-01 Douglas Gregor <doug.gregor@gmail.com> 3605 3606 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X 3607 for experimental C++0x mode. 3608 * init.c (lang_defaults): Add defaults for C++0x modes. C++0x has 3609 adopted the preprocessor changes introduced in C99. 3610 36112006-10-29 Joseph Myers <joseph@codesourcery.com> 3612 3613 * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux* 3614 depending on --enable-targets=all. 3615 * configure: Regenerate. 3616 36172006-10-12 Jakub Jelinek <jakub@redhat.com> 3618 3619 PR preprocessor/28709 3620 * macro.c (paste_tokens): Do error reporting here, use BUF with the 3621 spelled LHS token as opposed to spelling it again. 3622 (paste_all_tokens): Don't report errors here, just break on failure. 3623 36242006-10-10 Brooks Moses <bmoses@stanford.edu> 3625 3626 * Makefile.in: Added empty "pdf" target. 3627 36282006-09-22 Geoffrey Keating <geoffk@apple.com> 3629 3630 * configure.ac: Make need_64_bit_hwint case for x86-darwin 3631 match exactly the glob in gcc/config.gcc. 3632 * configure: Regenerate. 3633 36342006-09-13 Joseph S. Myers <joseph@codesourcery.com> 3635 3636 PR c/28768 3637 PR preprocessor/14634 3638 * lex.c (lex_string): Pedwarn for unterminated literals. 3639 36402006-09-08 Eric Christopher <echristo@apple.com> 3641 3642 * configure.ac: Add 64-bit HWI support for i?86-darwin. 3643 36442006-08-14 Steve Ellcey <sje@cup.hp.com> 3645 3646 PR c++/28288 3647 PR c++/14556 3648 * include/cpplib.h: Remove <?, >?, <?=, and >?= tokens. 3649 (CPP_LAST_EQ): Change. 3650 (CPP_LAST_PUNCTUATOR): Change. 3651 * expr.c (cpp_operator): Remove MIN and MAX. 3652 (reduce): Remove CPP_MIN and CPP_MAX. 3653 (num_binary_op): Ditto. 3654 * lex.c (_cpp_lex_direct): Ditto. 3655 (cpp_avoid_paste): Remove ? as legal symbol after > or <. 3656 36572006-06-09 Jakub Jelinek <jakub@redhat.com> 3658 3659 PR preprocessor/27746 3660 * directives.c (do_pragma): Handle pragma with valid namespace 3661 and invalid name coming from macro expansion. 3662 * directives.c (destringize_and_run): Initialize next field in 3663 context. 3664 3665 PR c/27747 3666 PR c++/27748 3667 * directives.c (destringize_and_run): Set NO_EXPAND on the 3668 tokens. 3669 3670 * macro.c (_cpp_backup_tokens): Fix comment typo. 3671 36722006-05-31 Daniel Jacobowitz <dan@codesourcery.com> 3673 3674 * Makefile.in (CATALOGS): Add po/ prefix. 3675 * configure: Regenerated. 3676 36772006-05-23 Carlos O'Donell <carlos@codesourcery.com> 3678 3679 * Makefile.in: Add install-html target. Add install-html to .PHONY 3680 36812006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com> 3682 3683 * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP. 3684 * files.c (_cpp_get_file_stat): New function. 3685 * include/cpplib.h (builtin_type): Add BT_TIMESTAMP. 3686 * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP. 3687 * internal.h (_cpp_get_file_stat): Prototype. 3688 (struct cpp_buffer): Add timestamp. 3689 36902006-01-23 Jakub Jelinek <jakub@redhat.com> 3691 3692 PR preprocessor/25717 3693 * init.c (cpp_init_builtins): If __STDC__ will not change value 3694 between system headers and other sources, define it as a normal 3695 macro rather than a builtin. 3696 * macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check 3697 cpp_in_system_header condition. 3698 36992006-01-05 Paolo Bonzini <bonzini@gnu.org> 3700 3701 * Makefile.in: Use -MMD instead of -MD. 3702 37032006-01-04 Dmitry Kurochkin <dmitry.kurochkin@gmail.com> 3704 Richard Henderson <rth@redhat.com> 3705 3706 Merge from gomp branch: 3707 * directives.c (struct pragma_entry): Add is_deferred. Add ident 3708 entry to value union. 3709 (end_directive): Don't eat the line if in_deferred_pragma. 3710 (run_directive): Remove pragma hacks. 3711 (insert_pragma_entry): Remove. 3712 (new_pragma_entry): New. 3713 (register_pragma_1): Split out of register_pragma. Only handle 3714 the lookup tree and return the new entry. 3715 (cpp_register_pragma): Fill in the pragma entry here. 3716 (cpp_register_deferred_pragma): New. 3717 (register_pragma_internal): New. 3718 (_cpp_init_internal_pragmas): Use register_pragma_internal. 3719 (do_pragma): Allow pragma expansion after namespace. For deferred 3720 pragmas, don't slurp the line into a string. 3721 (destringize_and_run): Save tokens for deferred pragmas. 3722 (cpp_handle_deferred_pragma): Remove. 3723 * macro.c (builtin_macro): Remove pragma token hack. 3724 (_cpp_push_token_context): Rename from push_token_context and export. 3725 * internal.h (struct lexer_state): Add pragma_allow_expansion. 3726 (_cpp_push_token_context): Declare. 3727 * lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return 3728 a token. Update the line number correctly if so. 3729 (_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens. 3730 (cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas. 3731 * include/cpplib.h (PRAGMA_EOL): New. 3732 (CPP_TOKEN_FLD_PRAGMA): New. 3733 (struct cpp_token): Add val.pragma. 3734 (struct cpp_options): Remove defer_pragmas. 3735 (cpp_handle_deferred_pragma): Remove. 3736 (cpp_register_deferred_pragma): Declare. 3737 37382006-01-01 Jakub Jelinek <jakub@redhat.com> 3739 3740 PR c++/25294 3741 * directives.c (do_pragma): If pragma line ends with multi-line 3742 block comment, end the saved deferred pragma string before that 3743 comment. Handle embedded '\0' chars on the pragma line. 3744 37452005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3746 3747 PR c++/23333 3748 * include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure. 3749 37502005-12-07 Jon Grimm <jgrimm2@us.ibm.com> 3751 Ben Elliston <bje@au.ibm.com> 3752 3753 * include/cpplib.h (CPP_N_DFLOAT): New. 3754 * expr.c (interpret_float_suffix): Identify df, dd, and dl 3755 suffixes as decimal floating point constants. 3756 (cpp_classify_number): Disallow hexadecimal DFP constants. 3757 37582005-11-14 Gerald Pfeifer <gerald@pfeifer.com> 3759 Ian Lance Taylor <ian@airs.com> 3760 3761 * include/cpplib.h (struct cpp_callbacks): Annotate error with 3762 ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0). 3763 37642005-11-09 Per Bothner <per@bothner.com> 3765 Uros Bizjak <uros@kss-loka.si> 3766 3767 PR c/24101 3768 * init.c (read_original_filename): Temporarily set 3769 state.in_directive before calling _cpp_lex_direct for 3770 CPP_HASH tokens. 3771 37722005-11-03 James E Wilson <wilson@specifix.com> 3773 3774 PR preprocessor/24202 3775 * files.c (_cpp_pop_file_buffer): Set buffer_valid to false. 3776 37772005-11-04 Joseph S. Myers <joseph@codesourcery.com> 3778 3779 * include/cpplib.h (struct cpp_callbacks): Make error take 3780 va_list* parameter. 3781 * errors.c (cpp_error): Update call to callback. 3782 37832005-11-03 Andrew Pinski <pinskia@physics.uc.edu> 3784 3785 PR preprocessor/22042 3786 * macro.c (_cpp_builtin_macro_text): Lower the needed max 3787 buffer size. 3788 (cpp_quote_string): Don't octalify non printable 3789 charactors. 3790 37912005-11-03 Joseph S. Myers <joseph@codesourcery.com> 3792 3793 PR c++/17964 3794 * include/cpplib.h (struct cpp_options): Add client_diagnostic. 3795 (struct cpp_callbacks): Add error. 3796 * errors.c (cpp_error): If client_diagnostic, use error callback. 3797 * charset.c (convert_escape): Don't use %03o in diagnostic. 3798 37992005-10-21 James E Wilson <wilson@specifix.com> 3800 3801 PR preprocessor/15220 3802 * files.c (_cpp_find_file): New parameter angle_brackets. Fix all 3803 callers. Pass to open_file_failed. 3804 (open_file_failed): New parameter angle_brackets. Fix all callers. 3805 Use in print_dep assignment. 3806 * init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file. 3807 * internal.h (_cpp_find_file): Add new parm to declaration. 3808 38092005-10-08 Kazu Hirata <kazu@codesourcery.com> 3810 3811 * configure.ac: Require 64-bit int for arm*-*-*eabi*. 3812 * configure: Regenerate. 3813 38142005-10-04 Ian Lance Taylor <ian@airs.com> 3815 3816 PR preprocessor/13726 3817 * directives.c (check_eol_return_comments): New static function. 3818 (parse_include): Add buf parameter. Change all callers. 3819 (do_include_common): If not discard comments, turn on 3820 save_comments. Pass collected comments to include callback. 3821 * include/cpplib.h (struct cpp_callbacks): Add new parameter to 3822 include callback: cpp_token list. 3823 38242005-09-20 Joseph S. Myers <joseph@codesourcery.com> 3825 3826 * include/cpplib.h (struct cpp_options): Add extended_identifiers. 3827 * init.c (struct lang_flags, lang_defaults): Add 3828 extended_identifiers. 3829 (cpp_set_lang): Use it. 3830 * lex.c (forms_identifier_p): Check extended_identifiers. 3831 38322005-08-30 Jakub Jelinek <jakub@redhat.com> 3833 3834 PR preprocessor/20348 3835 PR preprocessor/20356 3836 * files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and 3837 2004-06-05 changes. 3838 38392005-07-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3840 3841 * configure.ac (ACX_PROG_CC_WARNING_OPTS): add 3842 -Wmissing-format-attribute. 3843 3844 * configure: Regenerate. 3845 38462005-06-29 Kelley Cook <kcook@gcc.gnu.org> 3847 3848 * all files: Update FSF address in copyright headers. 3849 * makeucnid.c (write_copyright): Update outputted FSF address. 3850 38512005-06-13 Zack Weinberg <zack@codesourcery.com> 3852 3853 * configure.ac: Invoke ZW_CREATE_DEPDIR and 3854 ZW_PROG_COMPILER_DEPENDENCIES. 3855 * aclocal.m4, configure: Regenerate. 3856 * Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE): 3857 New variables. 3858 (distclean): Clean up $(DEPDIR) and its contents. 3859 (.c.o): Use $(COMPILE). 3860 Include $(DEPDIR)/*.Po for most object->header dependencies. 3861 38622005-05-28 Gabriel Dos Reis <gdr@integrable-solutions.net> 3863 3864 * configure.ac: Check declarations for asprintf and vasprintf. 3865 * config.in: Regenerate. 3866 * configure: Likewise. 3867 3868 * charset.c (conversion_loop): Use XRESIZEVEC. 3869 (convert_no_conversion): Likewise. 3870 (convert_using_iconv): Likewise. 3871 (init_iconv_desc): Cast return value of alloca. 3872 (cpp_host_to_exec_charset): Use XNEWVEC. 3873 (emit_numeric_escape): Use XRESIZEVEC. 3874 (cpp_interpret_string): Use XNEWVEC. 3875 (cpp_interpret_string): Use XRESIZEVEC. 3876 (_cpp_interpret_identifier): Cast return value of alloca. 3877 (_cpp_convert_input): Use XNEWVEC and XRESIZEVEC. 3878 * directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC. 3879 (parse_include): Use XNEWVEC. 3880 (insert_pragma_entry): Rename local variable "new" to 3881 "new_entry". 3882 (save_registered_pragmas): Cast return value of xmemdup. 3883 (destringize_and_run): Same for alloca. 3884 (parse_assertion): Likewise. 3885 (do_assert): Cast allocated storage to proper type. 3886 (cpp_define): Likewise. 3887 (_cpp_define_builtin): Likewise. 3888 (cpp_undef): Likewise. 3889 (handle_assertion): Likewise. 3890 (cpp_push_buffer): Rename local variable "new" to "new_buffer". 3891 * expr.c (CPP_UPLUS): Cast value to type cpp_ttype. 3892 (CPP_UMINUS): Likewise. 3893 (struct cpp_operator): Rename from struct operator. 3894 (_cpp_expand_op_stack): Use XRESIZEVEC. 3895 * files.c (pch_open_file): Use XNEWVEC. 3896 (pch_open_file): Use XRESIZEVEC. 3897 (read_file_guts): Use XNEWVEC and XRESIZEVEC. 3898 (dir_name_of_file): Use XNEWVEC. 3899 (make_cpp_file): Use XCNEW. 3900 (make_cpp_dir): Likewise. 3901 (allocate_file_hash_entries): USE XNEWVEC. 3902 (cpp_included): Cast return value of htab_find_with_hash. 3903 (append_file_to_dir): Use XNEWVEC. 3904 (read_filename_string): Likewise. Use XRESIZEVEC too. 3905 (read_name_map): Cast return value of alloca. Use XRESIZEVEC. 3906 (remap_filename): Use XNEWVEC. 3907 (struct pchf_entry): Move definition out of struct pchf_data. 3908 (_cpp_save_file_entries): Use XCNEWVAR. 3909 (_cpp_read_file_entries): Use XNEWVAR. 3910 * identifiers.c (alloc_node): Use XOBNEW. 3911 * init.c (cpp_create_reader): Use XCNEW. 3912 (cpp_init_builtins): Cast of b->value to enum builtin_type. 3913 (read_original_directory): Cast return value of alloca. 3914 * lex.c (add_line_note): Use XRESIZEVEC. 3915 (warn_about_normalization): Use XNEWVEC. 3916 (_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype). 3917 (new_buff): Use XNEWVEC. 3918 * line-map.c (linemap_add): Use XRESIZEVEC. 3919 * macro.c (builtin_macro): Cast return value of alloca. 3920 (paste_tokens): Likewise. 3921 (expand_arg): Use XNEWVEC and XRESIZEVEC. 3922 (_cpp_save_parameter): Use XRESIZEVEC. 3923 (create_iso_definition): Cast allocated storage to proper type. 3924 (_cpp_create_definition): Likewise. 3925 (cpp_macro_definition): Use XRESIZEVEC. 3926 * makedepend.c (add_clm): Use XNEW. 3927 (add_dir): Likewise. 3928 * mkdeps.c (munge): Use XNEWVEC. 3929 (deps_init): Use XCNEW. 3930 (deps_add_target): Use XRESIZEVEC. 3931 (deps_add_default_target): Cast return value of alloca. 3932 (deps_add_dep): Use XRESIZEVEC. 3933 (deps_add_vpath): Likewise. Use XNEWVEC too. 3934 (deps_restore): Likewise. 3935 * pch.c (save_idents): Use XNEW and XNEWVEC. 3936 (cpp_save_state): Use XNEW. 3937 (count_defs): Cast return value of htab_find. 3938 (write_defs): Likewise. 3939 (cpp_write_pch_deps): Use XNEWVEC. 3940 (collect_ht_nodes): Use XRESIZEVEC. 3941 (cpp_valid_state): Use XNEWVEC. 3942 (save_macros): Use XRESIZEVEC. Cast return value of xmemdup. 3943 * symtab.c (ht_create): Use XCNEW. 3944 (ht_lookup_with_hash): Cast return value of obstack_copy0. 3945 (ht_expand): Use XCNEWVEC. 3946 * system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus. 3947 (bool): Do not define if __cplusplus. 3948 39492005-05-12 Zack Weinberg <zack@codesourcery.com> 3950 3951 * directives.c (#sccs table entry): Mark IN_I, consistent with #ident. 3952 (do_sccs): Delete function definition, #define to do_ident. 3953 (do_ident): Don't hardwire directive name. 3954 39552005-05-12 Ryota Kunisawa <kunisawa@access.co.jp> 3956 3957 PR bootstrap/21230 3958 * configure: Regenerate. 3959 39602005-04-27 Andris Pavenis <pavenis@latnet.lv> 3961 3962 * files.c: Include io.h for DJGPP to get prototype of setmode. 3963 39642005-04-19 Per Bothner <per@bothner.com> 3965 3966 PR preprocessor/20907 3967 * line-map.c (linemap_line_start): Fix bug when we need to increse 3968 column_bits but can re-use the current line_map. 3969 39702005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3971 3972 * system.h (fopen, fdopen, freopen): Define these to the unlocked 3973 libiberty functions. 3974 39752005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3976 3977 * configure.ac (libcpp_UNLOCKED_FUNCS): New. 3978 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS. 3979 * system.h (putchar, getc, getchar, clearerr, feof, fileno, 3980 fflush, fgetc, fgets, ferror, fread): Redefine to the associated 3981 _unlocked function. 3982 (fwrite_unlocked): Fix prototype. 3983 3984 * configure, config.in: Regenerate. 3985 39862005-04-05 Jakub Jelinek <jakub@redhat.com> 3987 3988 PR preprocessor/19475 3989 * macro.c (create_iso_definition): For < ISO C99, don't 3990 pedwarn if there is no whitespace between macro name and its 3991 replacement, but the replacement starts with a basic character 3992 set character. 3993 39942005-03-28 Andreas Jaeger <aj@suse.de> 3995 3996 * lex.c (warn_about_normalization): Cast field width to int to 3997 avoid warning. 3998 39992005-03-19 Joseph S. Myers <joseph@codesourcery.com> 4000 4001 * configure.ac: Consistently use solaris2.1[0-9]* instead of 4002 solaris2.1[0-9]. 4003 * configure: Regenerate. 4004 40052005-03-15 Geoffrey Keating <geoffk@apple.com> 4006 4007 * charset.c (_cpp_valid_ucn): In identifiers, reject a partial 4008 UCN rather than printing an error. 4009 40102005-03-14 Geoffrey Keating <geoffk@apple.com> 4011 4012 * lex.c (forms_identifier_p): Disable UCNs in C89 mode. 4013 40142005-03-14 Geoffrey Keating <geoffk@apple.com> 4015 4016 * init.c (cpp_create_reader): Default warn_normalize to normalized_C. 4017 * charset.c: Update for new format of ucnid.h. 4018 (ucn_valid_in_identifier): Update for new format of ucnid.h. 4019 Add NST parameter, and update it; update callers. 4020 (cpp_valid_ucn): Add NST parameter, update callers. Replace abort 4021 with cpp_error. 4022 (convert_ucn): Pass normalize_state to cpp_valid_ucn. 4023 * internal.h (struct normalize_state): New. 4024 (INITIAL_NORMALIZE_STATE): New. 4025 (NORMALIZE_STATE_RESULT): New. 4026 (NORMALIZE_STATE_UPDATE_IDNUM): New. 4027 (_cpp_valid_ucn): New. 4028 * lex.c (warn_about_normalization): New. 4029 (forms_identifier_p): Add normalize_state parameter, update callers. 4030 (lex_identifier): Add normalize_state parameter, update callers. Keep 4031 the state current. 4032 (lex_number): Likewise. 4033 (_cpp_lex_direct): Pass normalize_state to subroutines. Check 4034 it with warn_about_normalization. 4035 * makeucnid.c: New. 4036 * ucnid.h: Replace. 4037 * ucnid.pl: Remove. 4038 * ucnid.tab: Make appropriate for input to makeucnid.c. Remove 4039 comments about obsolete version of C++. 4040 * include/cpplib.h (enum cpp_normalize_level): New. 4041 (struct cpp_options): Add warn_normalize field. 4042 40432005-03-11 Geoffrey Keating <geoffk@apple.com> 4044 4045 * directives.c (glue_header_name): Update call to cpp_spell_token. 4046 * internal.h (_cpp_interpret_identifier): New. 4047 * charset.c (_cpp_interpret_identifier): New. 4048 (_cpp_valid_ucn): Allow UCN version of '$'. 4049 * lex.c (lex_identifier): Add extra parameter to indicate if initial 4050 character was '$' or '\'. Support identifiers with UCNs. 4051 (forms_identifier_p): Allow UCNs. 4052 (_cpp_lex_direct): Pass extra parameter to lex_identifier. 4053 (utf8_to_ucn): New. 4054 (cpp_spell_token): Add FORSTRING parameter. Use it. 4055 (cpp_token_as_text): Update call to cpp_spell_token. 4056 (cpp_output_token): Write UCNs back out. 4057 (stringify_arg): Update call to cpp_spell_token. 4058 (paste_tokens): Likewise. 4059 (cpp_macro_definition): Likewise. 4060 * macro.c (stringify_arg): Likewise. 4061 (paste_tokens): Likewise. 4062 (cpp_macro_definition): Likewise. 4063 * include/cpplib.h: Add parameter to cpp_spell_token. 4064 40652005-03-04 Jakub Jelinek <jakub@redhat.com> 4066 4067 PR bootstrap/20282 4068 PR bootstrap/20305 4069 * macro.c (replace_args, cpp_get_token): Copy whole 4070 cpp_token_u instead of just cpp_string field from it. 4071 40722005-02-28 Devang Patel <dpatel@apple.com> 4073 4074 * directives.c (do_line): Save sysp early before line table is 4075 realloc'ed. 4076 40772005-02-20 Zack Weinberg <zack@codesourcery.com> 4078 4079 PR 18785 4080 * charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro. 4081 (cpp_host_to_exec_charset): New function. 4082 * include/cpplib.h: Declare cpp_host_to_exec_charset. 4083 40842005-02-19 Devang Patel <dpatel@apple.com> 4085 4086 * charset.c (_cpp_convert_input): Check '\r' before inserting 4087 '\n' at the end. 4088 40892005-02-15 Eric Christopher <echristo@redhat.com> 4090 4091 PR preprocessor/19077 4092 * macro.c (cpp_macro_definition): Move handling of whitespace 4093 to PREV_WHITE conditional. Remove overloading of len 4094 variable. 4095 40962005-02-14 Kazu Hirata <kazu@cs.umass.edu> 4097 4098 * directives.c, files.c, init.c, internal.h, macro.c, pch.c, 4099 traditional.c: Update copyright. 4100 41012005-02-14 Paolo Bonzini <bonzini@gnu.org> 4102 4103 PR bootstrap/19818 4104 * configure.ac: Check for declaration of basename and getopt. 4105 * config.in: Regenerate. 4106 * configure: Regenerate. 4107 * internal.h (ustrcspn): New. 4108 * macro.c (create_iso_definition): Fix allocation of memory. 4109 (padding_token): Add cast to remove const-ness. 4110 * pch.c (cpp_read_state): Use ustrcspn. 4111 41122005-02-08 Mike Stump <mrs@apple.com> 4113 4114 * files.c (pchf_adder): Remove. 4115 (struct pchf_adder_info): Likewise. 4116 (_cpp_save_file_entries): Write out all files so that #import works. 4117 41182005-01-23 Joseph S. Myers <joseph@codesourcery.com> 4119 4120 * configure: Regenerate. 4121 41222005-01-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> 4123 4124 * include/cpplib.h (c_lang): Fix comment to say cpp_create_reader. 4125 4126 * include/cpplib.h: Also update copyright years. 4127 41282005-01-03 Geoffrey Keating <geoffk@apple.com> 4129 4130 * files.c (_cpp_find_file): Add files found by search_path_exhausted 4131 to the list of all files. 4132 41332005-01-01 Gabriel Dos Reis <gdr@integrable-solutions.net> 4134 4135 * internal.h: Update references to Cpp lib filenames. 4136 * directives.c: Likewise. 4137 * init.c: Likewise. 4138 * macro.c: Likewise. 4139 * traditional.c: Likewise. 4140 41412004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr> 4142 4143 PR preprocessor/15167 4144 * files.c (destroy_cpp_file): New function. 4145 (should_stack_file): Make a new file if the 4146 compared file is still stacked. 4147 41482004-11-28 Nathanael Nerode <neroden@gcc.gnu.org> 4149 4150 PR preprocessor/17610 4151 * directives.c (do_include_common): Error out if an empty filename 4152 is given for #include (or #include_next or #import). 4153 41542004-11-27 Roger Sayle <roger@eyesopen.com> 4155 Zack Weinberg <zack@codesourcery.com> 4156 4157 * internal.h: Replace all uses of uchar with unsigned char. 4158 * include/cpp-id-data.h: Likewise. Guard typedef of uchar 4159 with !IN_GCC, so uchar is only defined whilst building libcpp. 4160 41612004-11-24 Kelley Cook <kcook@gcc.gnu.org> 4162 4163 * aclocal.m4: Regenerate. 4164 41652004-11-24 Roger Sayle <roger@eyesopen.com> 4166 4167 PR preprocessor/15824 4168 * configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h> 4169 directly, instead of the non-existant "system.h" and "ansidecl.h". 4170 * configure: Regenerate. 4171 41722004-11-23 Daniel Jacobowitz <dan@codesourcery.com> 4173 Joseph Myers <joseph@codesourcery.com> 4174 4175 * internal.h (struct lexer_state): Add in_deferred_pragma. 4176 * directives.c (struct pragma_entry): Add allow_expansion. 4177 (insert_pragma_entry): Take allow_expansion flag. 4178 (register_pragma): Likewise. 4179 (cpp_register_pragma): Likewise. 4180 (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma. 4181 (do_pragma): Honor allow_expansion. 4182 (cpp_handle_deferred_pragma): Set in_deferred_pragma. 4183 * include/cpplib.h (cpp_register_pragma): Update prototype. 4184 41852004-11-18 Daniel Jacobowitz <dan@codesourcery.com> 4186 Mark Mitchell <mark@codesourcery.com> 4187 4188 * configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set 4189 need_64bit_hwint=yes. 4190 * configure: Regenerate. 4191 41922004-11-09 Joseph S. Myers <joseph@codesourcery.com> 4193 4194 * Makefile.in ($(PACKAGE).pot): New rule. Depend on 4195 po/$(PACKAGE).pot. 4196 (po/$(PACKAGE).pot): Use ":" instead of "," in --keyword 4197 arguments. Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2. 4198 Remove local srcdir path from generated file. 4199 42002004-11-04 Zack Weinberg <zack@codesourcery.com> 4201 Gerald Pfeifer <gerald@pfeifer.com> 4202 4203 * internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H 4204 as well. 4205 42062004-10-27 Zack Weinberg <zack@codesourcery.com> 4207 4208 PR 18075 4209 * directives.c (do_pragma): Do not defer pragmas which are unknown. 4210 (cpp_handle_deferred_pragma): Add cast to silence warning. 4211 42122004-10-14 Joseph S. Myers <jsm@polyomino.org.uk> 4213 4214 * errors.c (_cpp_begin_message): Print "error: " for errors. 4215 42162004-10-10 Andreas Jaeger <aj@suse.de> 4217 4218 * makedepend.c: Include mkdeps.h for prototype of deps_add_vpath. 4219 * Makefile.in (makedepend.o): Add dependency on mkdeps.h. 4220 42212004-10-08 Andrew Pinski <pinskia@physics.uc.edu> 4222 4223 * pch.c (cpp_write_pch_state): Remove variable z as it is not 4224 used. 4225 (cpp_read_state): Remove unused variables, m, d and mac_count. 4226 42272004-09-29 Per Bothner <per@bothner.com> 4228 4229 * directives.c (cpp_handle_deferred_pragma): Save, clear and restore 4230 cb.line_change. Otherwise do_pragma will call the line_change 4231 call-back with a meaningless line number. 4232 42332004-09-24 Zack Weinberg <zack@codesourcery.com> 4234 4235 * configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to 4236 programs cluster. Use ACX_PROG_CC_WARNING_OPTS, 4237 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS. 4238 * aclocal.m4, configure: Regenerate. 4239 * init.c: Include localedir.h. 4240 * Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables. 4241 (DEFS): Delete. 4242 (.c.o): Use $(ALL_CFLAGS). 4243 (localedir.h, localedir.hs): New rules. 4244 (clean): Use rm -rf to remove directories. 4245 (distclean): Also delete localedir.h and localedir.hs. 4246 (init.o): Update dependencies. 4247 42482004-09-22 Kelley Cook <kcook@gcc.gnu.org> 4249 4250 * Makefile.in (aclocal.m4): Update dependencies. 4251 * configure.ac (AC_CONFIG_MACRO_DIR): New. 4252 * aclocal.m4, configure: Regenerate. 4253 42542004-09-17 Zack Weinberg <zack@codesourcery.com> 4255 4256 * charset.c (_cpp_destroy_iconv, emit_numeric_escape) 4257 (_cpp_convert_input, _cpp_default_encoding): Add comments. 4258 Some other comments in this file also tweaked. 4259 4260 * directives.c (do_pragma): Save current buffer position 4261 before lexing the pragma keywords; don't call 4262 _cpp_backup_tokens in the defer_pragmas case. 4263 42642004-09-15 Per Bothner <per@bothner.com> 4265 4266 * include/line-map.h (line_map_start): Add parameter names so 4267 preceding comment makes sense. 4268 (linemap_add): Remove from comment mention of non-existing parameter. 4269 42702004-09-09 Matt Austern <austern@apple.com> 4271 Zack Weinberg <zack@codesourcery.com> 4272 4273 * include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_ 4274 prefixes throughout. Add entry for PRAGMA. Remove 4275 unnecessary "= 0" from EQ. 4276 (enum cpp_ttype): Adjust OP and TK definitions to restore 4277 prefixes, via token-paste. 4278 (CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP): 4279 Change from #defines to additional cpp_ttype enumerators. 4280 (struct cpp_options): Add defer_pragmas. 4281 (cpp_handle_deferred_pragma): Prototype new interface. 4282 4283 * internal.h (struct cpp_reader): Add directive_result. 4284 * directives.c (struct pragma_entry): Add is_internal field; 4285 give boolean fields type bool. 4286 (start_directive): Initialize pfile->directive_result.type. 4287 (_cpp_do__Pragma): Likewise. 4288 (run_directive): Do not crash if pfile->buffer->prev is NULL. 4289 (insert_pragma_entry): Add 'internal' argument; set new->is_internal 4290 from it. 4291 (register_pragma): New static function, bulk of former 4292 cpp_register_pragma here; add 'internal' argument, pass along 4293 to insert_pragma_entry. 4294 (cpp_register_pragma): Now a wrapper around register_pragma which 4295 always passes false for 'internal' argument. 4296 (_cpp_init_internal_pragmas): Call register_pragma directly, passing 4297 true for 'internal'. 4298 (do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't 4299 an internal pragma, save text till the end of the line as a CPP_PRAGMA 4300 token instead of executing the pragma. 4301 (cpp_handle_deferred_pragma): New interface. 4302 * lex.c (token_spellings): Adjust OP and TK definitions to 4303 match changes to cpplib.h. 4304 (_cpp_lex_token): Check for a directive-result token and 4305 return it if present. 4306 (cpp_token_val_index): Handle CPP_PRAGMA. 4307 * macro.c (cpp_builtin_macro_text): Correct comment. 4308 (builtin_macro): Handle directive-result tokens from _cpp_do__Pragma. 4309 43102004-09-06 Serge Belyshev <belyshev@lubercy.com> 4311 4312 PR preprocessor/14699 4313 * symtab.c (ht_dump_statistics): Change type of sum_of_squares 4314 from size_t to double. 4315 43162004-08-28 Andreas Schwab <schwab@suse.de> 4317 Andreas Jaeger <aj@suse.de> 4318 4319 * configure.ac: Set PACKAGE correctly. 4320 * configure: Regenerated. 4321 43222004-08-25 Paolo Bonzini <bonzini@gnu.org> 4323 4324 * Makefile.in: Add back top_builddir. 4325 43262004-08-25 Paolo Bonzini <bonzini@gnu.org> 4327 4328 * configure.ac: Replace Automake macro invocations 4329 with manual Autoconf checks and substitutions. 4330 * configure: Regenerate. 4331 * aclocal.m4: Regenerate. 4332 * config.in: Regenerate. 4333 * Makefile.am: Removed. 4334 * Makefile.in: Heavy simplification and reorganization. 4335 43362004-08-09 Mark Mitchell <mark@codesourcery.com> 4337 4338 * configure.ac (arm*-*-eabi*): New target. 4339 (arm*-*-symbianelf*): Likewise. 4340 * configure: Regenerated. 4341 43422004-07-24 Bernardo Innocenti <bernie@develer.com> 4343 4344 * internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove. 4345 * directives.c: Use XNEW-family macros from libiberty. 4346 * lex.c: Likewise. 4347 * macro.c: Likewise. 4348 * cpplib.h (cpp_deps_style): Export enum with name. 4349 43502004-07-23 Matthias Klose <doko@debian.org> 4351 4352 * init.c (init_library): Use PACKAGE for the text domain. 4353 43542004-07-16 Andris Pavenis <pavenis@latnet.lv> 4355 4356 PR preprocessor/16366 4357 * internal.h (struct cpp_reader): New field dir_hash. 4358 * files.c (make_cpp_dir): Use dir_hash, not file_hash. 4359 (_cpp_init_files, _cpp_cleanup_files): Update for new field. 4360 43612004-07-04 Neil Booth <neil@duron.akihabara.co.uk> 4362 4363 PR preprocessor/16192 4364 PR preprocessor/15913 4365 PR preprocessor/15572 4366 * expr.c (_cpp_parse_expr): Handle remaining cases where an 4367 expression is missing. 4368 * init.c (post_options): Traditional cpp doesn't do // comments. 4369 43702004-06-30 Per Bothner <per@bothner.com> 4371 4372 * include/line-map.h (fileline): Remove old typedef. 4373 * internal.h (struct cpp_reader): Use source_location typedef instead. 4374 43752004-06-26 Zack Weinberg <zack@codesourcery.com> 4376 4377 Partially revert patch of 2004-06-05. 4378 * files.c (search_cache): Remove pfile argument. Don't check 4379 for file that would be found by "" or <> search here... 4380 (_cpp_find_file): ...do it here, before calling find_file_in_dir. 4381 Do not apply directory-of-current-file correction to files 4382 found by this check. Rearrange code slightly. 4383 43842004-06-21 Geoffrey Keating <geoffk@apple.com> 4385 4386 * files.c (should_stack_file): Correct swapped parameters to call 4387 to cb.read_pch. 4388 * pch.c (cpp_valid_state): Handle -fpreprocessed. 4389 43902004-06-15 Paolo Bonzini <bonzini@gnu.org> 4391 4392 * Makefile.in: Regenerate with automake 1.8.5. 4393 * aclocal.m4: Likewise. 4394 * configure: Regenerate. 4395 43962004-06-11 Zack Weinberg <zack@codesourcery.com> 4397 4398 * configure.ac: Don't invoke ACX_HEADER_STDBOOL. 4399 * configure, config.in: Regenerate. 4400 * system.h: Unconditionally define bool as unsigned char, 4401 BOOL_BITFIELD as unsigned int. 4402 * .cvsignore: New file. 4403 44042004-06-09 Geoffrey Keating <geoffk@apple.com> 4405 4406 * traditional.c (push_replacement_text): Set macro->traditional. 4407 (save_replacement_text): Likewise. 4408 * pch.c (cpp_write_pch_state): Don't write list of defined macros. 4409 (struct save_macro_item): Delete. 4410 (struct save_macro_data): Use a character array not the previous 4411 structured format. 4412 (save_macros): Save macro as text not as internal structures. 4413 (cpp_prepare_state): Update for changes to save_macro_data. 4414 (cpp_read_state): Don't read macros defined in PCH. Restore 4415 -D macros as text. 4416 * macro.c (create_iso_definition): Honour alloc_subobject. 4417 Clear traditional flag. 4418 (_cpp_create_definition): Honour alloc_subobject. 4419 * lex.c (cpp_token_val_index): New. 4420 * internal.h: Include cpp-id-data.h. 4421 (uchar): Move definition to cpp-id-data.h. 4422 (U): Likewise. 4423 (cpp_macro): Likewise. 4424 * directives.c (struct answer): Move to cpp-id-data.h. 4425 (do_assert): Honour alloc_subobject. 4426 4427 * include/symtab.h (struct ht): Add field 'alloc_subobject'. 4428 * include/cpplib.h (struct cpp_string): Add GTY marker. 4429 (enum cpp_token_fld_kind): New. 4430 (struct cpp_token): Add GTY markers. 4431 (cpp_token_val_index): Prototype. 4432 (CPP_HASHNODE_VALUE_IDX): New. 4433 (struct cpp_hashnode): Don't skip fields of 'value' when marking. 4434 * include/cpp-id-data.h: New file. 4435 44362004-06-09 Paolo Bonzini <bonzini@gnu.org> 4437 4438 * Makefile.am (all-local): New. 4439 * Makefile.in: Regenerate. 4440 44412004-06-06 Roger Sayle <roger@eyesopen.com> 4442 4443 * Makefile.am (LIBICONV): Declare. 4444 (makedepend_LDADD): Use LIBICONV. 4445 * Makefile.in: Regenerate. 4446 44472004-06-05 Andrew Pinski <pinskia@physics.uc.edu> 4448 4449 * Makefile.am (LIBINTL): Declare 4450 (makedepend_LDADD): Use LIBINTL. 4451 * Makefile.in: Regenerate. 4452 44532004-06-05 Zack Weinberg <zack@codesourcery.com> 4454 4455 * Makefile.am: Add makedepend. 4456 * Makefile.in, aclocal.m4: Regenerate. 4457 * charset.c: Insert a space to avoid a warning. 4458 * directives.c: Include mkdeps.h. 4459 (_cpp_handle_directive): Reenable macro expander if appropriate. 4460 (undefine_macros): Inline body of _cpp_free_definition for speed. 4461 Do not call undef callback or _cpp_warn_if_unused_macro. 4462 (cpp_get_deps): New interface. 4463 * files.c (search_cache): Add pfile argument. Check for file 4464 that would be found by "" or <> search here... 4465 (_cpp_find_file): ...not here. Correct recorded start_dir of 4466 files found by directory-of-current-file search that would be 4467 found by "" or <> search. 4468 * init.c (cpp_add_dependency_target): Delete. 4469 * internal.h (struct lexer_state): Add discarding_output flag. 4470 * lex.c (lex_identifier): Compute hash function while scanning. 4471 * macro.c (cpp_scan_nooutput): Disable macro expansion outside 4472 directives. 4473 * makedepend.c: New file. 4474 * mkdeps.c (struct deps): Add vpath vector. 4475 (apply_vpath, deps_add_vpath): New function. 4476 (deps_free): Free vpath vector. 4477 (deps_add_dep, deps_add_target): Use apply_vpath. 4478 * symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH. 4479 (ht_lookup_with_hash): New function. 4480 * cpplib.h, mkdeps.h: Update prototypes. 4481 * symtab.h: Update prototypes. 4482 (HT_HASHSTEP, HT_FINISH): New macros. 4483 44842004-05-29 Geoffrey Keating <geoffk@apple.com> 4485 4486 * symtab.c (ht_create): Set entries_owned. 4487 (ht_destroy): Honour entries_owned. 4488 (ht_expand): Likewise. 4489 (ht_load): New. 4490 * include/symtab.h (struct ht): New field 'entries_owned' 4491 (ht_load): New prototype. 4492 44932004-05-26 Paolo Bonzini <bonzini@gnu.org> 4494 4495 PR bootstrap/15651 4496 * configure.ac: Fix m4 quoting when picking 4497 the size of HOST_WIDE_INT. 4498 * configure: Regenerate. 4499 45002004-05-25 Paolo Bonzini <bonzini@gnu.org> 4501 4502 * Makefile.am: the correct directory for 4503 gettext include files is given by @INCINTL@. 4504 * Makefile.in: Regenerate. 4505 45062004-05-24 Paolo Bonzini <bonzini@gnu.org> 4507 4508 * system.h [!ENABLE_NLS]: dgettext takes two 4509 parameters. 4510 45112004-05-23 Paolo Bonzini <bonzini@gnu.org> 4512 4513 Moved libcpp from the gcc subdirectory to the toplevel. 4514 * Makefile.am: New file. 4515 * Makefile.in: Regenerate. 4516 * configure.ac: New file. 4517 * configure: Regenerate. 4518 * config.in: Regenerate. 4519 * charset.c: Moved from gcc/cppcharset.c. Add note about 4520 brokenness of input charset detection. Adjust for change 4521 in name of cppucnid.h. 4522 * errors.c: Moved from gcc/cpperror.c. Do not include intl.h. 4523 * expr.c: Moved from gcc/cppexp.c. 4524 * files.c: Moved from gcc/cppfiles.c. Do not include intl.h. 4525 Remove #define of O_BINARY, it is in system.h. 4526 * identifiers.c: Moved from gcc/cpphash.c. 4527 * internal.h: Moved from gcc/cpphash.h. Change header 4528 guard name. All other files adjusted to match name change. 4529 * init.c: Moved from gcc/cppinit.c. 4530 (init_library) [ENABLE_NLS]: Call bindtextdomain. 4531 * lex.c: Moved from gcc/cpplex.c. 4532 * directives.c: Moved from gcc/cpplib.c. 4533 * macro.c: Moved from gcc/cppmacro.c. 4534 * pch.c: Moved from gcc/cpppch.c. Do not include intl.h. 4535 * traditional.c: Moved from gcc/cpptrad.c. 4536 * ucnid.h: Moved from gcc/cppucnid.h. Change header 4537 guard name. 4538 * ucnid.pl: Moved from gcc/cppucnid.pl. 4539 * ucnid.tab: Moved from gcc/cppucnid.tab. Change header 4540 guard name. 4541 * symtab.c: Moved from gcc/hashtable.c. 4542 * line-map.c: Moved from gcc. Do not include intl.h. 4543 * mkdeps.c: Moved from gcc. 4544 * system.h: New file. 4545 * include/cpplib.h: Moved from gcc. Change header guard name. 4546 * include/line-map.h: Moved from gcc. Change header guard name. 4547 * include/mkdeps.h: Moved from gcc. Change header guard name. 4548 * include/symtab.h: Moved from gcc/hashtable.h. Change header 4549 guard name. 4550 4551Copyright (C) 2004-2016 Free Software Foundation, Inc. 4552 4553Copying and distribution of this file, with or without modification, 4554are permitted in any medium without royalty provided the copyright 4555notice and this notice are preserved. 4556