12011-04-28 Release Manager 2 3 * GCC 4.5.3 released. 4 52011-04-26 Jakub Jelinek <jakub@redhat.com> 6 7 Backported from mainline 8 2011-04-24 Jakub Jelinek <jakub@redhat.com> 9 10 PR preprocessor/48740 11 * lex.c (lex_raw_string): When raw string ends with 12 ??) followed by raw prefix and ", ensure it is preprocessed 13 with ??) rather than ??]. 14 152011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com> 16 17 PR preprocessor/48192 18 Backport from trunk 19 * directives.c (do_ifdef): Do not consider conditional macros as 20 being defined. 21 (do_ifndef): Ditto. 22 * expr.c (parse_defined): Ditto. 23 242011-01-04 Eric Botcazou <ebotcazou@adacore.com> 25 Jakub Jelinek <jakub@redhat.com> 26 27 PR preprocessor/39213 28 * directives.c (end_directive): Call _cpp_remove_overlay for deferred 29 pragmas as well in traditional mode. 30 312010-12-16 Release Manager 32 33 * GCC 4.5.2 released. 34 352010-07-31 Release Manager 36 37 * GCC 4.5.1 released. 38 392010-04-14 Release Manager 40 41 * GCC 4.5.0 released. 42 432010-04-06 Jakub Jelinek <jakub@redhat.com> 44 45 PR preprocessor/43642 46 * lex.c (lex_raw_string): Change type of TYPE variable to 47 unsigned char. 48 492010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 50 51 * aclocal.m4: Regenerate. 52 532010-03-29 Jason Merrill <jason@redhat.com> 54 55 More N3077 raw string changes 56 * charset.c (cpp_interpret_string): Don't transform UCNs in raw 57 strings. 58 * lex.c (bufring_append): Split out from... 59 (lex_raw_string): ...here. Undo trigraph and line splicing 60 transformations. Do process line notes in multi-line literals. 61 (_cpp_process_line_notes): Ignore notes that were already handled. 62 63 Some raw string changes from N3077 64 * charset.c (cpp_interpret_string): Change inner delimiters to (). 65 * lex.c (lex_raw_string): Likewise. Also disallow '\' in delimiter. 66 672010-02-11 Jakub Jelinek <jakub@redhat.com> 68 69 * init.c (read_original_filename): Don't call read_original_directory 70 if _cpp_handle_directive returns 0. 71 722010-01-01 Joseph Myers <joseph@codesourcery.com> 73 74 PR preprocessor/41947 75 * expr.c (cpp_classify_number): Give error for hexadecimal 76 floating-point constant with no digits before or after point. 77 782009-11-20 Arnaud Charlet <charlet@adacore.com> 79 80 * macro.c (enter_macro_context): Call cb.used callback if defined. 81 * directives.c (do_idef, do_ifndef): Ditto. 82 * include/cpplib.h (struct cpp_callbacks): Add used callback. 83 842009-11-11 Kai Tietz <kai.tietz@onevision.com> 85 86 * directives.c (do_pragma_push_macro): New pragma handler. 87 (do_pragma_pop_macro): Likewise. 88 (_cpp_init_internal_pragmas): Add push_macro and 89 pop_macro handler to internal pragmas. 90 (lex_macro_node_from_str): Removed. 91 (cpp_push_definition): Replace lex_macro_node_from_str 92 by _cpp_lex_identifier. 93 (cpp_pop_definition): Likewise. 94 * internal.h (_cpp_lex_identifier): New prototype. 95 (def_pragma_macro): New structure. 96 (cpp_reader): New member pushed_macros. 97 * lex.c (_cpp_lex_identifier): New function. 98 (lex_identifier_intern): New function. 99 * init.c (cpp_create_reader): Initialize pushed_macros 100 member. 101 (cpp_destroy): Free elements in pushed_macros member. 102 * pch.c (_cpp_save_pushed_macros): New function. 103 (_cpp_restore_pushed_macros): Likewise. 104 (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros. 105 (cpp_read_state): Use _cpp_restore_pushed_macros. 106 1072009-10-19 Jakub Jelinek <jakub@redhat.com> 108 109 * charset.c (cpp_init_iconv): Initialize utf8_cset_desc. 110 (_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc 111 and char32_cset_desc. 112 (converter_for_type): Handle CPP_UTF8STRING. 113 (cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings. 114 * directives.c (get__Pragma_string): Handle CPP_UTF8STRING. 115 (parse_include): Reject raw strings. 116 * include/cpplib.h (CPP_UTF8STRING): New token type. 117 * internal.h (struct cpp_reader): Add utf8_cset_desc field. 118 * lex.c (lex_raw_string): New function. 119 (lex_string): Handle u8 string literals, call lex_raw_string 120 for raw string literals. 121 (_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R" 122 sequences. 123 * macro.c (stringify_arg): Handle CPP_UTF8STRING. 124 1252009-10-14 Jakub Jelinek <jakub@redhat.com> 126 127 PR preprocessor/41543 128 * include/line-map.h (RESERVED_LOCATION_COUNT): Define. 129 * line-map.c (linemap_init): Initialize highest_location and 130 highest_line to RESERVED_LOCATION_COUNT-1 instead of 0. 131 1322009-10-09 Jason Merrill <jason@redhat.com> 133 134 * charset.c (_cpp_valid_ucn): Update C++0x restrictions. 135 1362009-10-09 Neil Vachharajani <nvachhar@google.com> 137 138 * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and 139 sccs. 140 1412009-09-23 Loren J. Rittle <ljrittle@acm.org> 142 143 * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h. 144 * configure: Rebuilt. 145 1462009-09-22 Richard Guenther <rguenther@suse.de> 147 148 PR pch/38987 149 * files.c (pch_open_file): Disallow non-toplevel PCH inclusion. 150 1512009-09-18 Chris Demetriou <cgd@google.com> 152 153 PR preprocessor/28435: 154 * include/cpplib.h (struct cpp_options): Add new member 155 deps.need_preprocessor_output. 156 * files.c (open_file_failed): If preprocessor output is needed 157 always report an error. 158 1592009-09-13 Kai Tietz <kai.tietz@onevision.com> 160 161 * configure.ac: Set for i?86-w64-mingw* 162 need_64bit_hwint to yes. 163 * configure: Regenerated. 164 1652009-09-10 Jason Merrill <jason@redhat.com> 166 167 * directives.c (cpp_define): constify. 168 1692009-09-02 Ian Lance Taylor <iant@google.com> 170 171 * macro.c (stringify_arg): Escape CPP_WCHAR tokens. 172 1732009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 174 175 * configure.ac (AC_PREREQ): Bump to 2.64. 176 1772009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 178 179 * aclocal.m4: Regenerate. 180 * config.in: Regenerate. 181 * configure: Regenerate. 182 1832009-08-17 Tom Tromey <tromey@redhat.com> 184 185 PR preprocessor/41067: 186 * charset.c (convert_escape): Add missing ":" to error text. 187 1882009-07-27 Douglas B Rupp <rupp@gnat.com> 189 190 * include/cpplib.h (INO_T_CPP): New macro. 191 (struct cpp_dir): Use it. 192 1932009-07-20 Jerry Quinn <jlquinn@optonline.net> 194 195 PR regression/40800 196 * configure.ac: Use = instead of == for testing 197 ENABLE_BUILD_WITH_CXX. 198 * configure: Rebuild. 199 2002009-07-17 Jerry Quinn <jlquinn@optonline.net> 201 202 * directives.c (do_linemarker, do_line): Use CPP_STRING for 203 ignored enum value. 204 * files.c (find_file_in_dir): Add cast from void* to char*. 205 * symtab.c (ht_lookup_with_hash): Add cast from void* to char*. 206 * Makefile.in: (WARN_CFLAGS): Use general and C-specific 207 warnings. 208 (CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS, 209 ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER, 210 COMPILER_FLAGS): New. 211 (DEPMODE): Set from CCDEPMODE or CXXDEPMODE. 212 (COMPILE.base): Use COMPILER instead of CC. Use COMPILER_FLAGS 213 instead of ALL_CFLAGS. 214 * configure.ac: Invoke AC_PROG_CXX. Separate C-specific warnings 215 from other warnings. Add -Wc++-compat to C-specific warnings. 216 Check for --enable-build-with-cxx. Set and substitute 217 ENABLE_BUILD_WITH_CXX. Invoke ZW_PROG_COMPILER_DEPENDENCIES 218 according to ENABLE_BUILD_WITH_CXX. Invoke AC_LANG before 219 AC_CHECK_HEADERS. 220 * configure: Rebuild. 221 * include/cpp-id-data.h: Remove extern "C". 222 * include/line-map.h: Likewise. 223 * include/mkdeps.h: Likewise. 224 * include/symtab.h: Likewise. 225 * internal.h: Likewise. 226 2272009-06-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 228 229 * directives.c (parse_include): Add location argument. Update all 230 calls. 231 (parse_answer): Likewise. 232 (do_include_common): Error with exact location. 233 (parse_assertion): Likewise. 234 2352009-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org> 236 237 * expr.c (num_div_op): Take explicit location. 238 2392009-06-17 Ian Lance Taylor <iant@google.com> 240 241 * include/cpplib.h (progname): Don't declare. 242 2432009-06-12 Ian Lance Taylor <iant@google.com> 244 245 * include/cpplib.h (struct cpp_options): Add 246 warn_cxx_operator_names field. 247 (NODE_WARN_OPERATOR): Define. 248 (struct cpp_hashnode): Increase flags field to 10 bits, decrease 249 type to 6 bits. 250 * init.c (mark_named_operators): Add flags parameter. 251 (cpp_post_options): Pick flags value to pass to 252 mark_named_operators. 253 * lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that 254 identifier is an operator name in C++. 255 2562009-06-01 Aldy Hernandez <aldyh@redhat.com> 257 258 * include/line-map.h (LAST_SOURCE_COLUMN): New. 259 2602009-06-01 Ian Lance Taylor <iant@google.com> 261 262 * include/cpp-id-data.h: Add extern "C". 263 * include/line-map.h: Likewise. 264 * include/mkdeps.h: Likewise. 265 * include/symtab.h: Likewise. 266 * internal.h: Likewise. 267 2682009-05-15 Ian Lance Taylor <iant@google.com> 269 270 * include/cpplib.h (enum cpp_builtin_type): Rename from enum 271 builtin_type. Change all uses. 272 2732009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 274 275 PR cpp/36674 276 * directives (do_linemarker): Compensate for the increment in 277 location that occurs when we reach the end of line. 278 * files (_cpp_stack_include): Mention _cpp_find_file in the 279 comment. 280 2812009-05-10 Joseph Myers <joseph@codesourcery.com> 282 283 * include/cpplib.h (enum cpp_token_fld_kind): Add 284 CPP_TOKEN_FLD_TOKEN_NO. 285 (struct cpp_macro_arg, struct cpp_identifier): Define. 286 (union cpp_token_u): Use struct cpp_identifier for identifiers. 287 Use struct cpp_macro_arg for macro arguments. Add token_no for 288 CPP_PASTE token numbers. 289 * directives.c (_cpp_handle_directive, lex_macro_node, do_pragma, 290 do_pragma_poison, parse_assertion): Use val.node.node in place of 291 val.node. 292 * expr.c (parse_defined, eval_token): Use val.node.node in place 293 of val.node. 294 * lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len, 295 cpp_spell_token, cpp_output_token, _cpp_equiv_tokens, 296 cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in 297 place of val.arg_no. Use val.node.node in place of val.node. 298 * macro.c (replace_args, cpp_get_token, parse_params, 299 lex_expansion_token, create_iso_definition, cpp_macro_definition): 300 Use val.macro_arg.arg_no or val.token_no in place of val.arg_no. 301 Use val.node.node in place of val.node. 302 3032009-05-03 Joseph Myers <joseph@codesourcery.com> 304 305 * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte 306 UTF-8 sequences. 307 3082009-04-25 Joseph Myers <joseph@codesourcery.com> 309 310 PR preprocessor/39559 311 * expr.c (cpp_interpret_integer): Use a pedwarn for decimal 312 constants larger than intmax_t in C99 mode. 313 3142009-04-21 Taras Glek <tglek@mozilla.com> 315 316 * include/cpp-id-data.h: Update GTY annotations to new syntax. 317 * include/cpplib.h: Likewise. 318 * include/line-map.h: Likewise. 319 * include/symtab.h: Likewise. 320 3212009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 322 323 PR c++/14875 324 * lex.c (cpp_type2name): Take a flags parameter. Call 325 cpp_named_operator2name for named operators and cpp_digraph2name 326 for digraphs. 327 (cpp_digraph2name): New. 328 (cpp_spell_token): Use it. 329 (cpp_output_token): Likewise. 330 * include/cpplib.h (cpp_type2name): Update declaration. 331 * init.c (cpp_named_operator2name): New. 332 * internal.h (cpp_named_operator2name): Declare. 333 3342009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 335 336 PR c++/13358 337 * init.c (cpp_create_reader): Wlong_long is disabled by default. 338 * expr.c (cpp_classify_number): Give different messages for C and 339 C++ front-ends. 340 3412009-04-19 Joseph Myers <joseph@codesourcery.com> 342 343 PR preprocessor/20078 344 * include/cpp-id-data.h (struct cpp_macro): Add extra_tokens 345 field. 346 * include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define. 347 (struct cpp_token): Change flags to unsigned short. 348 * lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens. 349 (_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens. 350 (cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE 351 tokens. 352 * macro.c (macro_real_token_count): New. 353 (enter_macro_context, replace_args): Use macro_real_token_count. 354 (create_iso_definition): Record whitespace surrounding and digraph 355 spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH. 356 Set extra_tokens and save CPP_PASTE tokens with arg_no set for 357 multiple consecutive ## tokens. 358 (_cpp_create_definition): Initialize extra_tokens. 359 (cpp_macro_definition): Use macro_real_token_count. 360 3612009-04-18 Joseph Myers <joseph@codesourcery.com> 362 363 * directives.c (parse_include): Pass true to check_eol. 364 3652009-04-18 Joseph Myers <joseph@codesourcery.com> 366 367 PR preprocessor/39646 368 * include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM. 369 * line-map.c (linemap_add): Handle LC_RENAME_VERBATIM. 370 * directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in 371 place of LC_RENAME. 372 3732009-04-18 Joseph Myers <joseph@codesourcery.com> 374 375 PR preprocessor/39647 376 * directives.c (check_eol): Add parameter expand. 377 (do_undef, parse_include, do_line, do_linemarker, do_ident, 378 do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef, 379 do_else, do_endif, do_assert, do_unassert): All callers changed. 380 Pass true from do_line, false elsewhere. 381 3822009-04-12 Joseph Myers <joseph@codesourcery.com> 383 384 PR preprocessor/31869 385 * macro.c (stringify_arg): Handle NULL source token in padding 386 token where previous padding token did not have source token with 387 preceding whitespace. 388 3892009-04-09 Jakub Jelinek <jakub@redhat.com> 390 391 * Makefile.in: Change copyright header to refer to version 392 3 of the GNU General Public License and to point readers at the 393 COPYING3 file and the FSF's license web page. 394 * charset.c: Likewise. 395 * directives-only.c: Likewise. 396 * directives.c: Likewise. 397 * errors.c: Likewise. 398 * expr.c: Likewise. 399 * files.c: Likewise. 400 * identifiers.c: Likewise. 401 * include/cpp-id-data.h: Likewise. 402 * include/cpplib.h: Likewise. 403 * include/line-map.h: Likewise. 404 * include/mkdeps.h: Likewise. 405 * include/symtab.h: Likewise. 406 * init.c: Likewise. 407 * internal.h: Likewise. 408 * lex.c: Likewise. 409 * line-map.c: Likewise. 410 * macro.c: Likewise. 411 * makeucnid.c: Likewise. 412 * mkdeps.c: Likewise. 413 * pch.c: Likewise. 414 * symtab.c: Likewise. 415 * system.h: Likewise. 416 * traditional.c: Likewise. 417 * ucnid.tab: Likewise. 418 * ucnid.h: Regenerate. 419 4202009-04-01 Janis Johnson <janis187@us.ibm.com> 421 422 PR c/39027 423 * include/cpplib.h (CPP_N_DEFAULT): Define. 424 * expr.c (interpret_float_suffix): Recognize d or D for double, 425 return new value for default. 426 (cpp_classify_number): Issue pedwarn for use of d or D in suffix. 427 428 PR c/33466 429 * expr.c (interpret_float_suffix): Reject invalid suffix that uses 430 letters from decimal float and fixed-point suffixes. 431 4322009-03-31 Joseph Myers <joseph@codesourcery.com> 433 434 PR preprocessor/15638 435 * files.c (_cpp_find_file): Call open_file_failed after diagnosing 436 invalid PCH. 437 (open_file_failed): Make error for missing file fatal. 438 * include/cpplib.h (CPP_DL_FATAL): Define. 439 4402009-03-30 Sergiy Vyshnevetskiy <serg@vostok.net> 441 442 PR preprocessor/31932: 443 * internal.h: Don't mention HAVE_ICONV_H. 444 * configure, config.in: Rebuild. 445 * configure.ac: Don't check for iconv.h. 446 4472009-03-30 Tom Tromey <tromey@redhat.com> 448 449 PR preprocessor/39512: 450 * line-map.c (linemap_init): Initialize 'reallocator' field. 451 4522009-03-30 Jakub Jelinek <jakub@redhat.com> 453 454 PR target/39558 455 * macro.c (cpp_get_token): If macro_to_expand returns NULL 456 and used some tokens, add CPP_PADDING before next token. 457 4582009-03-29 Joseph Myers <joseph@codesourcery.com> 459 460 PR preprocessor/34695 461 * makedepend.c: Remove. 462 * Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove. 463 (all, clean, TAGS_SOURCES, include): Remove makedepend handling. 464 * directives.c (cpp_errors): Remove. 465 * errors.c (print_location, _cpp_begin_message, v_message): 466 Remove. 467 (cpp_error, cpp_error_with_line): Always use error callback. 468 (cpp_error, cpp_error_with_line, cpp_errno): Return bool. 469 * include/cpplib.h (cpp_options): Remove pedantic_errors, 470 inhibit_warnings, warn_system_headers, inhibit_errors, 471 warnings_are_errors, client_diagnostic. 472 (cpp_callbacks): Add extra arguments to error callback; make it 473 return bool. 474 (cpp_finish): Return void. 475 (cpp_destroy): Remove inaccurate comment about return value. 476 (cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove. 477 (CPP_DL_NOTE): Define. 478 * include/line-map.h (linemap_print_containing_files): Remove. 479 * init.c (cpp_finish): Do not check for or return number of 480 errors. 481 * internal.h (cpp_reader): Remove errors field. 482 * line-map.c (linemap_print_containing_files): Remove. 483 * macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message 484 about previous definition. Only emit it if previous diagnostic 485 was emitted. 486 4872009-03-28 Joseph Myers <joseph@codesourcery.com> 488 489 * Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not 490 mkinstalldirs. 491 4922009-03-18 Jakub Jelinek <jakub@redhat.com> 493 494 * include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts. 495 4962009-02-21 Joseph Myers <joseph@codesourcery.com> 497 498 * lex.c (lex_string): Return a CPP_LESS token for missing '>' in a 499 header name. 500 (_cpp_lex_direct): Handle this. 501 5022009-02-15 Richard Guenther <rguenther@suse.de> 503 504 Revert last change. 505 5062009-02-13 Richard Guenther <rguenther@suse.de> 507 508 * configure.ac: Enable LFS. 509 * configure: Re-generate. 510 * config.in: Likewise. 511 5122009-01-05 Ben Elliston <bje@au.ibm.com> 513 514 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir. 515 (.po.pox): Likewise. 516 (po/$(PACKAGE).pot): Likewise. 517 5182008-12-10 Alexandre Oliva <aoliva@redhat.com> 519 520 PR target/37033 521 * pch.c (cpp_valid_state): Improve message for poisoned symbols. 522 Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM. 523 5242008-11-29 Joseph Myers <joseph@codesourcery.com> 525 526 * lex.c (cpp_token_len): Use 6 as default length. 527 5282008-10-31 Manuel López-Ibáñez <manu@gcc.gnu.org> 529 530 * expr.c (struct op): Add location. 531 (_cpp_parse_expr): Propagate locations throught the stack 532 of expressions. 533 (reduce): Likewise. 534 (check_promotion): Use explicit location in errors. 535 5362008-10-05 Matthew Gingell <gingell@adacore.com> 537 Arnaud Charlet <charlet@adacore.com> 538 539 * include/cpplib.h (cpp_comments, cpp_comment_table): New structs. 540 (cpp_get_comments): New function. 541 * internal.h (struct cpp_reader): Add comments field. 542 * init.c (cpp_destroy): Free comments. 543 * lex.c (store_comment, cpp_get_comments): New functions. 544 (comments): New struct. 545 (save_comment): Store comments in comments struct. 546 5472008-09-18 Simon Baldwin <simonb@google.com> 548 549 * include/cpplib.h (struct cpp_options): Add new boolean flag 550 warn_builtin_macro_redefined. 551 * init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined. 552 * (struct builtin_operator): Split out from previous struct builtin, 553 enhance extra const correctness. 554 * (struct builtin_macro): Split out from previous struct builtin, add 555 new always_warn_if_redefined flag, enhance const correctness. 556 * (mark_named_operators): Use struct builtin_operator. 557 * (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN 558 to builtins selectively. 559 * macro.c (warn_of_redefinition): Return false if a builtin macro 560 is not flagged with NODE_WARN. 561 5622008-07-31 Jakub Jelinek <jakub@redhat.com> 563 564 PR preprocessor/36649 565 * files.c (struct report_missing_guard_data): New type. 566 (report_missing_guard): Put paths into an array instead of printing 567 them right away. Return 1 rather than 0. 568 (report_missing_guard_cmp): New function. 569 (_cpp_report_missing_guards): Sort and print paths gathered by 570 report_missing_guard callback. 571 5722008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 573 574 PR 28079 575 * directives.c (strtolinenum): Handle overflow. 576 (do_line): Give a warning if line number overflowed. 577 (do_linemarker): Update call to strtolinenum. 578 5792008-07-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 580 581 * include/line-map.h (linenum_type): New typedef. 582 (struct line_map): Use it. 583 (SOURCE_LINE): Second arguments is a LOCATION not a LINE. 584 (SOURCE_COLUMN): Likewise. 585 * macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store 586 source_location values in a variable of type linenum_type. 587 * directives.c (struct if_stack): Use linenum_type. 588 (strtoul_for_line): Rename as strtolinenum. 589 (do_line): Use linenum_type. 590 (do_linemarker): Use linenum_type and strtolinenum. 591 (_cpp_do_file_change): Use linenum_t. 592 * line-map.c (linemap_add): Likewise. 593 (linemap_line_start): Likewise. 594 * traditional.c (struct fun_macro): 'line' is a source_location. 595 * errors.c (print_location): Use linenum_type. 596 * directives-only.c (_cpp_preprocess_dir_only): Likewise. 597 * internal.h (CPP_INCREMENT_LINE): Likewise. 598 * lex.c (_cpp_skip_block_comment): Use source_location. 599 6002008-07-14 Ben Elliston <bje@au.ibm.com> 601 602 * include/cpplib.h (NODE_CONDITIONAL): New. 603 (struct cpp_callbacks): New macro_to_expand field. 604 (struct cpp_hashnode): Adjust size of flags and type fields. 605 (cpp_peek_token): Prototype. 606 * lex.c (cpp_peek_token): New function. 607 (_cpp_temp_token): Protect pre-existing lookaheads. 608 * macro.c (cpp_get_token): Expand any conditional macros. 609 (_cpp_backup_tokens_direct): New. 610 (_cpp_backup_tokens): Call _cpp_backup_tokens_direct. 611 (warn_of_redefinition): Silently allow redefined conditional 612 macros. 613 (_cpp_create_definition): Remove the conditional flag when a user 614 defines one of the conditional macros. 615 * internal.h (_cpp_backup_tokens_direct): New prototype. 616 6172008-06-13 Andrew Haley <aph@redhat.com> 618 619 PR preprocessor/33305 620 * macro.c (replace_args): Print a warning for empty macro 621 arguments in C89 and C++. 622 6232008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 624 625 * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies. 626 * configure: Regenerate. 627 6282008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 629 630 * Makefile.in (datarootdir): New variable. 631 6322008-06-12 H.J. Lu <hongjiu.lu@intel.com> 633 634 PR preprocessor/36479 635 * charset.c (cpp_interpret_string_notranslate): Also set 636 narrow_cset_desc.width. 637 6382008-06-07 Joseph Myers <joseph@codesourcery.com> 639 640 * configure.ac (parisc*64*-*-*): Remove. 641 * configure: Regenerate. 642 6432008-05-30 Tom Tromey <tromey@redhat.com> 644 645 PR preprocessor/36320: 646 * internal.h (_cpp_parse_expr): Update. 647 * expr.c (_cpp_parse_expr): Add 'is_if' argument. Update error 648 messages. 649 * directives.c (do_if): Update. 650 (do_elif): Require expression if processing group. 651 6522008-05-30 Danny Smith <dannysmith@users.sourceforge.net> 653 654 * include/cpplib.h (struct cpp_dir): Add new field, canonical_name. 655 6562008-05-21 Tom Tromey <tromey@redhat.com> 657 658 PR preprocessor/27777: 659 * lex.c (cpp_output_line_to_string): New function. 660 * internal.h (_cpp_begin_message): Don't declare. 661 * errors.c (_cpp_begin_message): Now static. 662 * include/cpplib.h (cpp_output_line_to_string): Declare. 663 * directives.c (do_diagnostic): Rewrote. Use 664 cpp_output_line_to_string. Don't use _cpp_begin_message. 665 6662008-05-21 Tom Tromey <tromey@redhat.com> 667 668 * include/symtab.h (HT_ALLOCED): Remove. 669 (ht_purge): Declare. 670 * symtab.c (DELETED): New define. 671 (ht_lookup): Update comment. 672 (ht_lookup_with_hash): Handle deleted entries. Remove HT_ALLOCED 673 code. Use subobject allocator for strings, if it exists. 674 (ht_expand): Handle deleted entries. 675 (ht_forall): Likewise. 676 (ht_purge): New function. 677 (ht_dump_statistics): Print deletion statistics. 678 6792008-05-13 Tom Tromey <tromey@redhat.com> 680 681 PR preprocessor/22168: 682 * include/cpplib.h (struct cpp_options) <objc>: Update 683 documentation. 684 * expr.c (eval_token): Warn for use of assertions. 685 * directives.c (directive_diagnostics): Warn about extensions. 686 (DEPRECATED): New define. 687 (DIRECTIVE_TABLE): Use it. 688 6892008-05-06 Tom Tromey <tromey@redhat.com> 690 691 PR preprocessor/35313, PR preprocessor/36088: 692 * expr.c (optab) <QUERY, COMMA>: Set precedence to 4. 693 (reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON. 694 6952008-05-04 David S. Miller <davem@davemloft.net> 696 697 * configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes. 698 * configure: Regenerate. 699 7002008-04-22 Daniel Franke <franke.daniel@gmail.com> 701 702 * include/cpplib.h (cpp_define_formatted): New. 703 * directives.c (cpp_define_formatted): New. 704 7052008-04-21 Tom Tromey <tromey@redhat.com> 706 707 PR libcpp/33415: 708 * charset.c (_cpp_convert_input): Add buffer_start argument. 709 Ignore UTF-8 BOM if seen. 710 * internal.h (_cpp_convert_input): Add argument. 711 * files.c (struct _cpp_file) <buffer_start>: New field. 712 (destroy_cpp_file): Free buffer_start, not buffer. 713 (_cpp_pop_file_buffer): Likewise. 714 (read_file_guts): Update. 715 7162008-04-18 Kris Van Hees <kris.van.hees@oracle.com> 717 718 * include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal. 719 * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens. 720 (struct cpp_options): Added uliterals. 721 (cpp_interpret_string): Update prototype. 722 (cpp_interpret_string_notranslate): Idem. 723 * charset.c (init_iconv_desc): New width member in cset_converter. 724 (cpp_init_iconv): Add support for char{16,32}_cset_desc. 725 (convert_ucn): Idem. 726 (emit_numeric_escape): Idem. 727 (convert_hex): Idem. 728 (convert_oct): Idem. 729 (convert_escape): Idem. 730 (converter_for_type): New function. 731 (cpp_interpret_string): Use converter_for_type, support u and U prefix. 732 (cpp_interpret_string_notranslate): Match changed prototype. 733 (wide_str_to_charconst): Use converter_for_type. 734 (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}. 735 * directives.c (linemarker_dir): Macro U changed to UC. 736 (parse_include): Idem. 737 (register_pragma_1): Idem. 738 (restore_registered_pragmas): Idem. 739 (get__Pragma_string): Support CPP_STRING{16,32}. 740 * expr.c (eval_token): Support CPP_CHAR{16,32}. 741 * init.c (struct lang_flags): Added uliterals. 742 (lang_defaults): Idem. 743 * internal.h (struct cset_converter) <width>: New field. 744 (struct cpp_reader) <char16_cset_desc>: Idem. 745 (struct cpp_reader) <char32_cset_desc>: Idem. 746 * lex.c (digraph_spellings): Macro U changed to UC. 747 (OP, TK): Idem. 748 (lex_string): Add support for u'...', U'...', u"..." and U"...". 749 (_cpp_lex_direct): Idem. 750 * macro.c (_cpp_builtin_macro_text): Macro U changed to UC. 751 (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}. 752 7532008-04-18 Paolo Bonzini <bonzini@gnu.org> 754 755 PR bootstrap/35457 756 * aclocal.m4: Regenerate. 757 * configure: Regenerate. 758 7592008-04-17 Tom Tromey <tromey@redhat.com> 760 761 PR libcpp/34866: 762 * errors.c (cpp_error): Don't reference a token before the start 763 of the current run. 764 7652008-04-16 Tom Tromey <tromey@redhat.com> 766 767 * Makefile.in (TAGS_SOURCES): New variable. 768 (TAGS): New target. 769 7702008-04-11 Kaz Kojima <kkojima@gcc.gnu.org> 771 772 * configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-* 773 and shbe-*-*. 774 * configure: Rebuilt. 775 7762008-04-02 Joseph Myers <joseph@codesourcery.com> 777 778 * include/cpplib.h (struct cpp_callbacks): Add used_define, 779 used_undef and before_define. 780 (NODE_USED): Define. 781 * directives.c (do_define, do_undef, undefine_macros, do_ifdef, 782 do_ifndef, cpp_pop_definition): Handle new flag and use new 783 callbacks. 784 * expr.c (parse_defined): Handle new flag and use new callbacks. 785 * macro.c (enter_macro_context, _cpp_free_definition): Handle new 786 flag and use new callbacks. 787 7882008-04-01 Jakub Jelinek <jakub@redhat.com> 789 790 PR pch/13675 791 * files.c (struct _cpp_file): Remove pch field. 792 (pch_open_file): Don't set file->pch, just file->pchname. 793 (should_stack_file): After pfile->cb.read_pch call 794 free pchname and clear pchname, don't close file->fd. 795 Test file->pchname instead of file->pch. Don't close fd after cb. 796 (_cpp_stack_include): Test file->pchname instead of file->pch. 797 7982008-03-28 Tom Tromey <tromey@redhat.com> 799 800 * Makefile.in (POSTCOMPILE): New variable. 801 (.c.o): Use it. 802 8032008-03-13 Tom Tromey <tromey@redhat.com> 804 805 PR libcpp/35322: 806 * directives.c (destringize_and_run): Set pfile->directive. 807 8082008-03-06 Markus Milleder <markus.milleder@generali.at> 809 810 PR preprocessor/35458 811 * mkdeps.c (munge): Quote '#' with a '\'. 812 8132008-02-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 814 815 PR preprocessor/35379 816 * mkdeps.c (deps_write): Ensure the first target always appears 817 in the first column, without leading backslash newline. Avoid 818 some more extra whitespace. 819 8202008-02-25 Thiemo Seufer <ths@mips.com> 821 822 * Makefile.in ($(srcdir)/config.in): Depend on configure.ac. 823 8242008-02-19 Tom Tromey <tromey@redhat.com> 825 826 * traditional.c (lex_identifier): Use CPP_HASHNODE. 827 * lex.c (lex_identifier): Use CPP_HASHNODE. 828 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in 829 do-while. 830 * identifiers.c (alloc_node): Change return type. 831 (_cpp_init_hashtable): Don't cast 'alloc_node'. 832 (proxy_assertion_broken): New declaration. 833 (cpp_forall_identifiers): Move comment. 834 * line-map.c (linemap_add): Comment fix. 835 (linemap_line_start): Indentation fix. 836 8372008-01-25 Jakub Jelinek <jakub@redhat.com> 838 839 PR preprocessor/34692 840 * macro.c (collect_args): Add pragma_buff argument. Push 841 CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather 842 than into arguments. Reset prevent_expansion and parsing_args 843 state at CPP_PRAGMA_EOL/CPP_EOF. 844 (funlike_invocation_p): Add pragma_buff argument, pass it through 845 to collect_args. 846 (enter_macro_context): Add result argument. Adjust 847 funlike_invocation_p caller. Emit all deferred pragma tokens 848 gathered during collect_args before the expansion, add a padding 849 token. Return 2 instead of 1 if any pragma tokens were prepended. 850 (cpp_get_token): If enter_macro_context returns 2, don't return 851 a padding token, instead cycle to grab CPP_PRAGMA token. 852 * directives.c (_cpp_handle_directive): If was_parsing_args 853 in deferred pragma, leave parsing_args and prevent_expansion as is. 854 8552008-01-22 Tom Tromey <tromey@redhat.com> 856 857 PR c++/34859 858 * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and 859 __STDC_CONSTANT_MACROS. 860 8612008-01-07 Fred Fish <fnf@specifix.com> 862 863 PR preprocessor/30363 864 * traditional.c (replace_args_and_push): Add local variable 865 cxtquote, calculate the replacement text size assuming a 866 worst case of every input character quoted with backslash, 867 and properly handle output quoting of quote characters in 868 actual arguments used in function-like macros. 869 8702008-01-03 Tom Tromey <tromey@redhat.com> 871 872 PR preprocessor/34602 873 * directives.c (do_line): Don't try to spell EOF token. 874 (do_linemarker): Add comment. 875 8762007-12-11 DJ Delorie <dj@redhat.com> 877 878 * charset.c (convert_using_iconv): Close out any shift states, 879 returning to the initial state. 880 8812007-12-06 Tom Tromey <tromey@redhat.com> 882 883 PR c/29172 884 * internal.h (struct cpp_reader) <file_hash_entries>: Changed 885 type. 886 <file_hash_entries_allocated, file_hash_entries_used>: Removed. 887 * files.c (FILE_HASH_POOL_SIZE): New macro. 888 (struct file_hash_entry_pool): New. 889 (destroy_all_cpp_files): New function. 890 (allocate_file_hash_entries): Allocate a file_hash_entry_pool. 891 (new_file_hash_entry): Update. 892 (free_file_hash_entries): New function. 893 (_cpp_cleanup_files): Call free_file_hash_entries and 894 destroy_all_cpp_files. 895 (cpp_clear_file_cache): New function. 896 * include/cpplib.h (cpp_clear_file_cache): Declare. 897 8982007-12-03 Tom Tromey <tromey@redhat.com> 899 900 PR preprocessor/34288 901 * configure.ac, config.in: Rebuilt. 902 * configure.ac: Check for ssize_t. 903 9042007-11-30 Tom Tromey <tromey@redhat.com> 905 906 PR preprocessor/32868 907 * macro.c (_cpp_create_definition): Special case 908 __STDC_FORMAT_MACROS. 909 9102007-11-16 Michael Matz <matz@suse.de> 911 912 * files.c (search_path_head): Fix check for absolute paths. 913 9142007-11-11 Tom Tromey <tromey@redhat.com> 915 916 PR c++/17557 917 * include/cpplib.h (cpp_included_before): Declare. 918 * files.c (struct file_hash_entry) <location>: New field. 919 (_cpp_find_file): Initialize new field. 920 (make_cpp_dir): Likewise. 921 (cpp_included_before): New function. 922 9232007-11-01 Tom Tromey <tromey@redhat.com> 924 925 PR preprocessor/30805 926 * macro.c (paste_tokens): Handle padding token. 927 (paste_tokens): Don't abort unless padding has PASTE_LEFT flag. 928 9292007-10-31 Tom Tromey <tromey@redhat.com> 930 931 PR preprocessor/30786 932 * macro.c (builtin_macro): Return result of _cpp_do__Pragma. 933 * directives.c (_cpp_do__Pragma): Return error status. 934 * internal.h (_cpp_do__Pragma): Update. 935 * directives.c (get__Pragma_string): Back up if EOF seen. 936 9372007-09-06 Tom Tromey <tromey@redhat.com> 938 939 * internal.h (struct cpp_reader) <invocation_location>: New 940 field. 941 (struct cpp_reader) <set_invocation_location>: Likewise. 942 * init.c (cpp_set_line_map): New function. 943 * line-map.c (linemap_add): Use linemap's allocator. 944 * include/line-map.h (GTY): Define. 945 (line_map_realloc): New typedef. 946 (struct line_map): Mark with GTY. 947 (struct line_maps): Likewise. 948 (struct line_maps) <maps>: Likewise. 949 (struct line_maps) <reallocator>: New field. 950 * include/symtab.h (GTY): Conditionally define. 951 * include/cpplib.h (cpp_set_line_map): Declare. 952 (cpp_get_token_with_location): Declare. 953 * macro.c (cpp_get_token): Set invocation_location on the reader. 954 (cpp_get_token_with_location): New function. 955 9562007-08-30 Chao-ying Fu <fu@mips.com> 957 958 * expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur, 959 ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk. 960 (cpp_classify_number): Support decimal fixed-point constants without 961 exponents. 962 Warn about fixed-point constants when -pedantic. 963 * include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change 964 comments to support fixed-point values. 965 (CPP_N_FRACT, CPP_N_ACCUM): Define. 966 9672007-08-18 Tom Tromey <tromey@redhat.com> 968 969 PR preprocessor/32974 970 * directives.c (parse_include): Don't check for EOL when 971 processing #pragma dependency. 972 9732007-07-30 Ollie Wild <aaw@google.com> 974 975 * directives-only.c: New file. 976 * internal.h (struct _cpp_dir_only_callbacks): New. 977 (_cpp_preprocess_dir_only): New function. 978 * directives.c (_cpp_handle_directive): Check directives_only before 979 disabling execution of indented directives. 980 * files.c (_cpp_stack_file): Add directives_only check. 981 * include/cpplib.h (struct cpp_options): Add directives_only. 982 (cpp_init_special_builtins): New function. 983 * init.c (cpp_init_special_builtins): New function. 984 (cpp_init_builtins): Move builtin_array initialization to 985 cpp_init_special_builtins. 986 (post_options): Check directives_only before setting 987 pfile->state.prevent_expansion = 1. 988 * macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__ 989 is expanded inside a directive while -fdirectives-only is enabled. 990 * Makefile.in (libcpp_a_OBJS): Add directives-only.o. 991 (libcpp_a_SOURCES): Add directives-only.c. 992 9932007-07-04 Uros Bizjak <ubizjak@gmail.com> 994 995 * traditional.c (_cpp_scan_out_logical_line): Initialize 996 fmacro.args, fmacro.node, fmacro.offset, fmacro.line and 997 fmacro.args to prevent 'may be used uninitialized' warning. 998 9992007-07-03 Uros Bizjak <ubizjak@gmail.com> 1000 1001 * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q): 1002 Add new constants. 1003 * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q' 1004 suffixes. Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q 1005 for 'q' or 'Q' suffixes. 1006 10072007-06-17 Danny Smith <dannysmith@users.sourceforge.net 1008 1009 * files.c (open_file): Correct typo. 1010 10112007-06-16 Vladimir Prus <vladimir@codesourcery.com> 1012 1013 * files.c (open_file): Prevent the call 1014 for stat from overwriting errno. 1015 10162007-06-09 Vladimir Prus <vladimir@codesourcery.com> 1017 1018 * files.c (open_file): Account for the 1019 fact that on windows, opening a directory gives 1020 EACCES. 1021 10222007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de> 1023 1024 PR preprocessor/23479 1025 * expr.c (cpp_classify_number): Implement 0b-prefixed binary 1026 integer constants. 1027 (append_digit): Likewise. 1028 * include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed 1029 binary integer constants. 1030 10312007-05-31 Dave Korn <dave.korn@artimi.com> 1032 1033 PR preprocessor/14331 1034 * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF. 1035 10362007-05-24 Ollie Wild <aaw@google.com> 1037 1038 * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER. 1039 * pch.c (cpp_write_pch_deps): Save __COUNTER__ state. 1040 (cpp_write_pch_state): Save __COUNTER__ state. 1041 (cpp_valid_state): Check valid __COUNTER__ state. 1042 (cpp_read_state): Read new __COUNTER__ state. 1043 * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator. 1044 * init.c (builtin_array): Add __COUNTER__/BT_COUNTER. 1045 * internal.h (struct cpp_reader): Add counter member. 1046 10472007-05-23 Simon Martin <simartin@users.sourceforge.net> 1048 1049 PR preprocessor/20077 1050 * macro.c (create_iso_definition): Fixed the method to determine 1051 whether the token-pasting operator appears at the beginning or the end 1052 of a macro. 1053 10542007-05-21 Ian Lance Taylor <iant@google.com> 1055 1056 * internal.h (struct cpp_reader): Add new fields: 1057 nonexistent_file_hash and nonexistent_file_ob. 1058 * files.c: Include "obstack.h". 1059 (find_file_in_dir): Before trying to open the file, look up the 1060 path name in the hash table of nonexistent files. After failing 1061 to open the file, add the path name to the hash table. 1062 (_cpp_find_file): Cache the results of looking up the file name 1063 starting with the quote and bracket chain heads, if we can. 1064 (nonexistent_file_hash_eq): New static function. 1065 (_cpp_init_files): Initialize pfile->nonexistent_file_hash and 1066 pfile->nonexistent_file_ob. 1067 (_cpp_cleanup_files): Free pfile->nonexistent_file_hash and 1068 pfile->nonexistent_file_ob. 1069 10702007-05-14 Janis Johnson <janis187@us.ibm.com> 1071 1072 * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic. 1073 1074 PR c/31924 1075 * expr.c (interpret_float_suffix): Check for invalid suffix. 1076 10772007-05-02 Eric Christopher <echristo@apple.com> 1078 1079 * expr.c (num_div_op): Don't overflow if the result is 1080 zero. 1081 10822007-05-02 Tom Tromey <tromey@redhat.com> 1083 1084 PR preprocessor/28709 1085 * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs. 1086 10872007-03-30 Michael Meissner <michael.meissner@amd.com> 1088 1089 * directives.c (lex_macro_node_from_str): Fix alloca call to be 1090 type correct. 1091 10922007-03-30 Richard Henderson <rth@redhat.com> 1093 1094 * directives.c (lex_macro_node_from_str): New. 1095 (cpp_push_definition, cpp_pop_definition): New. 1096 * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare. 1097 10982007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 1099 1100 * Makefile.in: Add dummy install-pdf target. 1101 11022007-01-30 Tom Tromey <tromey@redhat.com> 1103 1104 PR preprocessor/30468 1105 * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped 1106 './'. 1107 11082007-01-30 Tom Tromey <tromey@redhat.com> 1109 1110 PR preprocessor/29966 1111 * macro.c (lex_expansion_token): Save and restore cpp_reader's 1112 cur_token. 1113 (_cpp_create_definition): Don't restore cur_token here. 1114 * lex.c (_cpp_lex_token): Added assertion. 1115 11162007-01-27 Tom Tromey <tromey@redhat.com> 1117 1118 * configure: Rebuilt. 1119 11202007-01-12 Tom Tromey <tromey@redhat.com> 1121 1122 PR preprocessor/28227 1123 * directives.c (lex_macro_node): Added 'is_def_or_undef' 1124 argument. 1125 (do_define): Update. 1126 (do_undef): Update. 1127 (do_ifdef): Update. 1128 (do_ifndef): Update. 1129 11302007-01-11 Paolo Bonzini <bonzini@gnu.org> 1131 1132 * configure: Regenerate. 1133 11342007-01-11 Paolo Bonzini <bonzini@gnu.org> 1135 1136 * configure: Regenerate. 1137 11382007-01-04 Tom Tromey <tromey@redhat.com> 1139 1140 PR preprocessor/28165 1141 * internal.h (cpp_in_primary_file): New function. 1142 * directives.c (do_include_next): Use cpp_in_primary_file. 1143 (do_pragma_once): Likewise. 1144 (do_pragma_system_header): Likewise. 1145 11462006-12-29 Ian Lance Taylor <iant@google.com> 1147 1148 * lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't 1149 look backward at the end of the line unless we saw a backslash. 1150 11512006-12-29 Jakub Jelinek <jakub@redhat.com> 1152 1153 PR preprocessor/29612 1154 * directives.c (do_linemarker): Set pfile->buffer->sysp always, not 1155 only when new_sysp is non-zero. 1156 11572006-12-28 Tom Tromey <tromey@redhat.com> 1158 1159 PR preprocessor/30001 1160 * charset.c (_cpp_convert_input): Check that to.len is greater 1161 than zero. 1162 11632006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> 1164 1165 * configure.ac (need_64bit_hwint): Need 64bit hwint for SPU. 1166 * configure: Rebuilt. 1167 11682006-11-01 Douglas Gregor <doug.gregor@gmail.com> 1169 1170 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X 1171 for experimental C++0x mode. 1172 * init.c (lang_defaults): Add defaults for C++0x modes. C++0x has 1173 adopted the preprocessor changes introduced in C99. 1174 11752006-10-29 Joseph Myers <joseph@codesourcery.com> 1176 1177 * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux* 1178 depending on --enable-targets=all. 1179 * configure: Regenerate. 1180 11812006-10-12 Jakub Jelinek <jakub@redhat.com> 1182 1183 PR preprocessor/28709 1184 * macro.c (paste_tokens): Do error reporting here, use BUF with the 1185 spelled LHS token as opposed to spelling it again. 1186 (paste_all_tokens): Don't report errors here, just break on failure. 1187 11882006-10-10 Brooks Moses <bmoses@stanford.edu> 1189 1190 * Makefile.in: Added empty "pdf" target. 1191 11922006-09-22 Geoffrey Keating <geoffk@apple.com> 1193 1194 * configure.ac: Make need_64_bit_hwint case for x86-darwin 1195 match exactly the glob in gcc/config.gcc. 1196 * configure: Regenerate. 1197 11982006-09-13 Joseph S. Myers <joseph@codesourcery.com> 1199 1200 PR c/28768 1201 PR preprocessor/14634 1202 * lex.c (lex_string): Pedwarn for unterminated literals. 1203 12042006-09-08 Eric Christopher <echristo@apple.com> 1205 1206 * configure.ac: Add 64-bit HWI support for i?86-darwin. 1207 12082006-08-14 Steve Ellcey <sje@cup.hp.com> 1209 1210 PR c++/28288 1211 PR c++/14556 1212 * include/cpplib.h: Remove <?, >?, <?=, and >?= tokens. 1213 (CPP_LAST_EQ): Change. 1214 (CPP_LAST_PUNCTUATOR): Change. 1215 * expr.c (cpp_operator): Remove MIN and MAX. 1216 (reduce): Remove CPP_MIN and CPP_MAX. 1217 (num_binary_op): Ditto. 1218 * lex.c (_cpp_lex_direct): Ditto. 1219 (cpp_avoid_paste): Remove ? as legal symbol after > or <. 1220 12212006-06-09 Jakub Jelinek <jakub@redhat.com> 1222 1223 PR preprocessor/27746 1224 * directives.c (do_pragma): Handle pragma with valid namespace 1225 and invalid name coming from macro expansion. 1226 * directives.c (destringize_and_run): Initialize next field in 1227 context. 1228 1229 PR c/27747 1230 PR c++/27748 1231 * directives.c (destringize_and_run): Set NO_EXPAND on the 1232 tokens. 1233 1234 * macro.c (_cpp_backup_tokens): Fix comment typo. 1235 12362006-05-31 Daniel Jacobowitz <dan@codesourcery.com> 1237 1238 * Makefile.in (CATALOGS): Add po/ prefix. 1239 * configure: Regenerated. 1240 12412006-05-23 Carlos O'Donell <carlos@codesourcery.com> 1242 1243 * Makefile.in: Add install-html target. Add install-html to .PHONY 1244 12452006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com> 1246 1247 * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP. 1248 * files.c (_cpp_get_file_stat): New function. 1249 * include/cpplib.h (builtin_type): Add BT_TIMESTAMP. 1250 * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP. 1251 * internal.h (_cpp_get_file_stat): Prototype. 1252 (struct cpp_buffer): Add timestamp. 1253 12542006-01-23 Jakub Jelinek <jakub@redhat.com> 1255 1256 PR preprocessor/25717 1257 * init.c (cpp_init_builtins): If __STDC__ will not change value 1258 between system headers and other sources, define it as a normal 1259 macro rather than a builtin. 1260 * macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check 1261 cpp_in_system_header condition. 1262 12632006-01-05 Paolo Bonzini <bonzini@gnu.org> 1264 1265 * Makefile.in: Use -MMD instead of -MD. 1266 12672006-01-04 Dmitry Kurochkin <dmitry.kurochkin@gmail.com> 1268 Richard Henderson <rth@redhat.com> 1269 1270 Merge from gomp branch: 1271 * directives.c (struct pragma_entry): Add is_deferred. Add ident 1272 entry to value union. 1273 (end_directive): Don't eat the line if in_deferred_pragma. 1274 (run_directive): Remove pragma hacks. 1275 (insert_pragma_entry): Remove. 1276 (new_pragma_entry): New. 1277 (register_pragma_1): Split out of register_pragma. Only handle 1278 the lookup tree and return the new entry. 1279 (cpp_register_pragma): Fill in the pragma entry here. 1280 (cpp_register_deferred_pragma): New. 1281 (register_pragma_internal): New. 1282 (_cpp_init_internal_pragmas): Use register_pragma_internal. 1283 (do_pragma): Allow pragma expansion after namespace. For deferred 1284 pragmas, don't slurp the line into a string. 1285 (destringize_and_run): Save tokens for deferred pragmas. 1286 (cpp_handle_deferred_pragma): Remove. 1287 * macro.c (builtin_macro): Remove pragma token hack. 1288 (_cpp_push_token_context): Rename from push_token_context and export. 1289 * internal.h (struct lexer_state): Add pragma_allow_expansion. 1290 (_cpp_push_token_context): Declare. 1291 * lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return 1292 a token. Update the line number correctly if so. 1293 (_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens. 1294 (cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas. 1295 * include/cpplib.h (PRAGMA_EOL): New. 1296 (CPP_TOKEN_FLD_PRAGMA): New. 1297 (struct cpp_token): Add val.pragma. 1298 (struct cpp_options): Remove defer_pragmas. 1299 (cpp_handle_deferred_pragma): Remove. 1300 (cpp_register_deferred_pragma): Declare. 1301 13022006-01-01 Jakub Jelinek <jakub@redhat.com> 1303 1304 PR c++/25294 1305 * directives.c (do_pragma): If pragma line ends with multi-line 1306 block comment, end the saved deferred pragma string before that 1307 comment. Handle embedded '\0' chars on the pragma line. 1308 13092005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1310 1311 PR c++/23333 1312 * include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure. 1313 13142005-12-07 Jon Grimm <jgrimm2@us.ibm.com> 1315 Ben Elliston <bje@au.ibm.com> 1316 1317 * include/cpplib.h (CPP_N_DFLOAT): New. 1318 * expr.c (interpret_float_suffix): Identify df, dd, and dl 1319 suffixes as decimal floating point constants. 1320 (cpp_classify_number): Disallow hexadecimal DFP constants. 1321 13222005-11-14 Gerald Pfeifer <gerald@pfeifer.com> 1323 Ian Lance Taylor <ian@airs.com> 1324 1325 * include/cpplib.h (struct cpp_callbacks): Annotate error with 1326 ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0). 1327 13282005-11-09 Per Bothner <per@bothner.com> 1329 Uros Bizjak <uros@kss-loka.si> 1330 1331 PR c/24101 1332 * init.c (read_original_filename): Temporarily set 1333 state.in_directive before calling _cpp_lex_direct for 1334 CPP_HASH tokens. 1335 13362005-11-03 James E Wilson <wilson@specifix.com> 1337 1338 PR preprocessor/24202 1339 * files.c (_cpp_pop_file_buffer): Set buffer_valid to false. 1340 13412005-11-04 Joseph S. Myers <joseph@codesourcery.com> 1342 1343 * include/cpplib.h (struct cpp_callbacks): Make error take 1344 va_list* parameter. 1345 * errors.c (cpp_error): Update call to callback. 1346 13472005-11-03 Andrew Pinski <pinskia@physics.uc.edu> 1348 1349 PR preprocessor/22042 1350 * macro.c (_cpp_builtin_macro_text): Lower the needed max 1351 buffer size. 1352 (cpp_quote_string): Don't octalify non printable 1353 charactors. 1354 13552005-11-03 Joseph S. Myers <joseph@codesourcery.com> 1356 1357 PR c++/17964 1358 * include/cpplib.h (struct cpp_options): Add client_diagnostic. 1359 (struct cpp_callbacks): Add error. 1360 * errors.c (cpp_error): If client_diagnostic, use error callback. 1361 * charset.c (convert_escape): Don't use %03o in diagnostic. 1362 13632005-10-21 James E Wilson <wilson@specifix.com> 1364 1365 PR preprocessor/15220 1366 * files.c (_cpp_find_file): New parameter angle_brackets. Fix all 1367 callers. Pass to open_file_failed. 1368 (open_file_failed): New parameter angle_brackets. Fix all callers. 1369 Use in print_dep assignment. 1370 * init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file. 1371 * internal.h (_cpp_find_file): Add new parm to declaration. 1372 13732005-10-08 Kazu Hirata <kazu@codesourcery.com> 1374 1375 * configure.ac: Require 64-bit int for arm*-*-*eabi*. 1376 * configure: Regenerate. 1377 13782005-10-04 Ian Lance Taylor <ian@airs.com> 1379 1380 PR preprocessor/13726 1381 * directives.c (check_eol_return_comments): New static function. 1382 (parse_include): Add buf parameter. Change all callers. 1383 (do_include_common): If not discard comments, turn on 1384 save_comments. Pass collected comments to include callback. 1385 * include/cpplib.h (struct cpp_callbacks): Add new parameter to 1386 include callback: cpp_token list. 1387 13882005-09-20 Joseph S. Myers <joseph@codesourcery.com> 1389 1390 * include/cpplib.h (struct cpp_options): Add extended_identifiers. 1391 * init.c (struct lang_flags, lang_defaults): Add 1392 extended_identifiers. 1393 (cpp_set_lang): Use it. 1394 * lex.c (forms_identifier_p): Check extended_identifiers. 1395 13962005-08-30 Jakub Jelinek <jakub@redhat.com> 1397 1398 PR preprocessor/20348 1399 PR preprocessor/20356 1400 * files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and 1401 2004-06-05 changes. 1402 14032005-07-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1404 1405 * configure.ac (ACX_PROG_CC_WARNING_OPTS): add 1406 -Wmissing-format-attribute. 1407 1408 * configure: Regenerate. 1409 14102005-06-29 Kelley Cook <kcook@gcc.gnu.org> 1411 1412 * all files: Update FSF address in copyright headers. 1413 * makeucnid.c (write_copyright): Update outputted FSF address. 1414 14152005-06-13 Zack Weinberg <zack@codesourcery.com> 1416 1417 * configure.ac: Invoke ZW_CREATE_DEPDIR and 1418 ZW_PROG_COMPILER_DEPENDENCIES. 1419 * aclocal.m4, configure: Regenerate. 1420 * Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE): 1421 New variables. 1422 (distclean): Clean up $(DEPDIR) and its contents. 1423 (.c.o): Use $(COMPILE). 1424 Include $(DEPDIR)/*.Po for most object->header dependencies. 1425 14262005-05-28 Gabriel Dos Reis <gdr@integrable-solutions.net> 1427 1428 * configure.ac: Check declarations for asprintf and vasprintf. 1429 * config.in: Regenerate. 1430 * configure: Likewise. 1431 1432 * charset.c (conversion_loop): Use XRESIZEVEC. 1433 (convert_no_conversion): Likewise. 1434 (convert_using_iconv): Likewise. 1435 (init_iconv_desc): Cast return value of alloca. 1436 (cpp_host_to_exec_charset): Use XNEWVEC. 1437 (emit_numeric_escape): Use XRESIZEVEC. 1438 (cpp_interpret_string): Use XNEWVEC. 1439 (cpp_interpret_string): Use XRESIZEVEC. 1440 (_cpp_interpret_identifier): Cast return value of alloca. 1441 (_cpp_convert_input): Use XNEWVEC and XRESIZEVEC. 1442 * directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC. 1443 (parse_include): Use XNEWVEC. 1444 (insert_pragma_entry): Rename local variable "new" to 1445 "new_entry". 1446 (save_registered_pragmas): Cast return value of xmemdup. 1447 (destringize_and_run): Same for alloca. 1448 (parse_assertion): Likewise. 1449 (do_assert): Cast allocated storage to proper type. 1450 (cpp_define): Likewise. 1451 (_cpp_define_builtin): Likewise. 1452 (cpp_undef): Likewise. 1453 (handle_assertion): Likewise. 1454 (cpp_push_buffer): Rename local variable "new" to "new_buffer". 1455 * expr.c (CPP_UPLUS): Cast value to type cpp_ttype. 1456 (CPP_UMINUS): Likewise. 1457 (struct cpp_operator): Rename from struct operator. 1458 (_cpp_expand_op_stack): Use XRESIZEVEC. 1459 * files.c (pch_open_file): Use XNEWVEC. 1460 (pch_open_file): Use XRESIZEVEC. 1461 (read_file_guts): Use XNEWVEC and XRESIZEVEC. 1462 (dir_name_of_file): Use XNEWVEC. 1463 (make_cpp_file): Use XCNEW. 1464 (make_cpp_dir): Likewise. 1465 (allocate_file_hash_entries): USE XNEWVEC. 1466 (cpp_included): Cast return value of htab_find_with_hash. 1467 (append_file_to_dir): Use XNEWVEC. 1468 (read_filename_string): Likewise. Use XRESIZEVEC too. 1469 (read_name_map): Cast return value of alloca. Use XRESIZEVEC. 1470 (remap_filename): Use XNEWVEC. 1471 (struct pchf_entry): Move definition out of struct pchf_data. 1472 (_cpp_save_file_entries): Use XCNEWVAR. 1473 (_cpp_read_file_entries): Use XNEWVAR. 1474 * identifiers.c (alloc_node): Use XOBNEW. 1475 * init.c (cpp_create_reader): Use XCNEW. 1476 (cpp_init_builtins): Cast of b->value to enum builtin_type. 1477 (read_original_directory): Cast return value of alloca. 1478 * lex.c (add_line_note): Use XRESIZEVEC. 1479 (warn_about_normalization): Use XNEWVEC. 1480 (_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype). 1481 (new_buff): Use XNEWVEC. 1482 * line-map.c (linemap_add): Use XRESIZEVEC. 1483 * macro.c (builtin_macro): Cast return value of alloca. 1484 (paste_tokens): Likewise. 1485 (expand_arg): Use XNEWVEC and XRESIZEVEC. 1486 (_cpp_save_parameter): Use XRESIZEVEC. 1487 (create_iso_definition): Cast allocated storage to proper type. 1488 (_cpp_create_definition): Likewise. 1489 (cpp_macro_definition): Use XRESIZEVEC. 1490 * makedepend.c (add_clm): Use XNEW. 1491 (add_dir): Likewise. 1492 * mkdeps.c (munge): Use XNEWVEC. 1493 (deps_init): Use XCNEW. 1494 (deps_add_target): Use XRESIZEVEC. 1495 (deps_add_default_target): Cast return value of alloca. 1496 (deps_add_dep): Use XRESIZEVEC. 1497 (deps_add_vpath): Likewise. Use XNEWVEC too. 1498 (deps_restore): Likewise. 1499 * pch.c (save_idents): Use XNEW and XNEWVEC. 1500 (cpp_save_state): Use XNEW. 1501 (count_defs): Cast return value of htab_find. 1502 (write_defs): Likewise. 1503 (cpp_write_pch_deps): Use XNEWVEC. 1504 (collect_ht_nodes): Use XRESIZEVEC. 1505 (cpp_valid_state): Use XNEWVEC. 1506 (save_macros): Use XRESIZEVEC. Cast return value of xmemdup. 1507 * symtab.c (ht_create): Use XCNEW. 1508 (ht_lookup_with_hash): Cast return value of obstack_copy0. 1509 (ht_expand): Use XCNEWVEC. 1510 * system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus. 1511 (bool): Do not define if __cplusplus. 1512 15132005-05-12 Zack Weinberg <zack@codesourcery.com> 1514 1515 * directives.c (#sccs table entry): Mark IN_I, consistent with #ident. 1516 (do_sccs): Delete function definition, #define to do_ident. 1517 (do_ident): Don't hardwire directive name. 1518 15192005-05-12 Ryota Kunisawa <kunisawa@access.co.jp> 1520 1521 PR bootstrap/21230 1522 * configure: Regenerate. 1523 15242005-04-27 Andris Pavenis <pavenis@latnet.lv> 1525 1526 * files.c: Include io.h for DJGPP to get prototype of setmode. 1527 15282005-04-19 Per Bothner <per@bothner.com> 1529 1530 PR preprocessor/20907 1531 * line-map.c (linemap_line_start): Fix bug when we need to increse 1532 column_bits but can re-use the current line_map. 1533 15342005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1535 1536 * system.h (fopen, fdopen, freopen): Define these to the unlocked 1537 libiberty functions. 1538 15392005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1540 1541 * configure.ac (libcpp_UNLOCKED_FUNCS): New. 1542 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS. 1543 * system.h (putchar, getc, getchar, clearerr, feof, fileno, 1544 fflush, fgetc, fgets, ferror, fread): Redefine to the associated 1545 _unlocked function. 1546 (fwrite_unlocked): Fix prototype. 1547 1548 * configure, config.in: Regenerate. 1549 15502005-04-05 Jakub Jelinek <jakub@redhat.com> 1551 1552 PR preprocessor/19475 1553 * macro.c (create_iso_definition): For < ISO C99, don't 1554 pedwarn if there is no whitespace between macro name and its 1555 replacement, but the replacement starts with a basic character 1556 set character. 1557 15582005-03-28 Andreas Jaeger <aj@suse.de> 1559 1560 * lex.c (warn_about_normalization): Cast field width to int to 1561 avoid warning. 1562 15632005-03-19 Joseph S. Myers <joseph@codesourcery.com> 1564 1565 * configure.ac: Consistently use solaris2.1[0-9]* instead of 1566 solaris2.1[0-9]. 1567 * configure: Regenerate. 1568 15692005-03-15 Geoffrey Keating <geoffk@apple.com> 1570 1571 * charset.c (_cpp_valid_ucn): In identifiers, reject a partial 1572 UCN rather than printing an error. 1573 15742005-03-14 Geoffrey Keating <geoffk@apple.com> 1575 1576 * lex.c (forms_identifier_p): Disable UCNs in C89 mode. 1577 15782005-03-14 Geoffrey Keating <geoffk@apple.com> 1579 1580 * init.c (cpp_create_reader): Default warn_normalize to normalized_C. 1581 * charset.c: Update for new format of ucnid.h. 1582 (ucn_valid_in_identifier): Update for new format of ucnid.h. 1583 Add NST parameter, and update it; update callers. 1584 (cpp_valid_ucn): Add NST parameter, update callers. Replace abort 1585 with cpp_error. 1586 (convert_ucn): Pass normalize_state to cpp_valid_ucn. 1587 * internal.h (struct normalize_state): New. 1588 (INITIAL_NORMALIZE_STATE): New. 1589 (NORMALIZE_STATE_RESULT): New. 1590 (NORMALIZE_STATE_UPDATE_IDNUM): New. 1591 (_cpp_valid_ucn): New. 1592 * lex.c (warn_about_normalization): New. 1593 (forms_identifier_p): Add normalize_state parameter, update callers. 1594 (lex_identifier): Add normalize_state parameter, update callers. Keep 1595 the state current. 1596 (lex_number): Likewise. 1597 (_cpp_lex_direct): Pass normalize_state to subroutines. Check 1598 it with warn_about_normalization. 1599 * makeucnid.c: New. 1600 * ucnid.h: Replace. 1601 * ucnid.pl: Remove. 1602 * ucnid.tab: Make appropriate for input to makeucnid.c. Remove 1603 comments about obsolete version of C++. 1604 * include/cpplib.h (enum cpp_normalize_level): New. 1605 (struct cpp_options): Add warn_normalize field. 1606 16072005-03-11 Geoffrey Keating <geoffk@apple.com> 1608 1609 * directives.c (glue_header_name): Update call to cpp_spell_token. 1610 * internal.h (_cpp_interpret_identifier): New. 1611 * charset.c (_cpp_interpret_identifier): New. 1612 (_cpp_valid_ucn): Allow UCN version of '$'. 1613 * lex.c (lex_identifier): Add extra parameter to indicate if initial 1614 character was '$' or '\'. Support identifiers with UCNs. 1615 (forms_identifier_p): Allow UCNs. 1616 (_cpp_lex_direct): Pass extra parameter to lex_identifier. 1617 (utf8_to_ucn): New. 1618 (cpp_spell_token): Add FORSTRING parameter. Use it. 1619 (cpp_token_as_text): Update call to cpp_spell_token. 1620 (cpp_output_token): Write UCNs back out. 1621 (stringify_arg): Update call to cpp_spell_token. 1622 (paste_tokens): Likewise. 1623 (cpp_macro_definition): Likewise. 1624 * macro.c (stringify_arg): Likewise. 1625 (paste_tokens): Likewise. 1626 (cpp_macro_definition): Likewise. 1627 * include/cpplib.h: Add parameter to cpp_spell_token. 1628 16292005-03-04 Jakub Jelinek <jakub@redhat.com> 1630 1631 PR bootstrap/20282 1632 PR bootstrap/20305 1633 * macro.c (replace_args, cpp_get_token): Copy whole 1634 cpp_token_u instead of just cpp_string field from it. 1635 16362005-02-28 Devang Patel <dpatel@apple.com> 1637 1638 * directives.c (do_line): Save sysp early before line table is 1639 realloc'ed. 1640 16412005-02-20 Zack Weinberg <zack@codesourcery.com> 1642 1643 PR 18785 1644 * charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro. 1645 (cpp_host_to_exec_charset): New function. 1646 * include/cpplib.h: Declare cpp_host_to_exec_charset. 1647 16482005-02-19 Devang Patel <dpatel@apple.com> 1649 1650 * charset.c (_cpp_convert_input): Check '\r' before inserting 1651 '\n' at the end. 1652 16532005-02-15 Eric Christopher <echristo@redhat.com> 1654 1655 PR preprocessor/19077 1656 * macro.c (cpp_macro_definition): Move handling of whitespace 1657 to PREV_WHITE conditional. Remove overloading of len 1658 variable. 1659 16602005-02-14 Kazu Hirata <kazu@cs.umass.edu> 1661 1662 * directives.c, files.c, init.c, internal.h, macro.c, pch.c, 1663 traditional.c: Update copyright. 1664 16652005-02-14 Paolo Bonzini <bonzini@gnu.org> 1666 1667 PR bootstrap/19818 1668 * configure.ac: Check for declaration of basename and getopt. 1669 * config.in: Regenerate. 1670 * configure: Regenerate. 1671 * internal.h (ustrcspn): New. 1672 * macro.c (create_iso_definition): Fix allocation of memory. 1673 (padding_token): Add cast to remove const-ness. 1674 * pch.c (cpp_read_state): Use ustrcspn. 1675 16762005-02-08 Mike Stump <mrs@apple.com> 1677 1678 * files.c (pchf_adder): Remove. 1679 (struct pchf_adder_info): Likewise. 1680 (_cpp_save_file_entries): Write out all files so that #import works. 1681 16822005-01-23 Joseph S. Myers <joseph@codesourcery.com> 1683 1684 * configure: Regenerate. 1685 16862005-01-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> 1687 1688 * include/cpplib.h (c_lang): Fix comment to say cpp_create_reader. 1689 1690 * include/cpplib.h: Also update copyright years. 1691 16922005-01-03 Geoffrey Keating <geoffk@apple.com> 1693 1694 * files.c (_cpp_find_file): Add files found by search_path_exhausted 1695 to the list of all files. 1696 16972005-01-01 Gabriel Dos Reis <gdr@integrable-solutions.net> 1698 1699 * internal.h: Update references to Cpp lib filenames. 1700 * directives.c: Likewise. 1701 * init.c: Likewise. 1702 * macro.c: Likewise. 1703 * traditional.c: Likewise. 1704 17052004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr> 1706 1707 PR preprocessor/15167 1708 * files.c (destroy_cpp_file): New function. 1709 (should_stack_file): Make a new file if the 1710 compared file is still stacked. 1711 17122004-11-28 Nathanael Nerode <neroden@gcc.gnu.org> 1713 1714 PR preprocessor/17610 1715 * directives.c (do_include_common): Error out if an empty filename 1716 is given for #include (or #include_next or #import). 1717 17182004-11-27 Roger Sayle <roger@eyesopen.com> 1719 Zack Weinberg <zack@codesourcery.com> 1720 1721 * internal.h: Replace all uses of uchar with unsigned char. 1722 * include/cpp-id-data.h: Likewise. Guard typedef of uchar 1723 with !IN_GCC, so uchar is only defined whilst building libcpp. 1724 17252004-11-24 Kelley Cook <kcook@gcc.gnu.org> 1726 1727 * aclocal.m4: Regenerate. 1728 17292004-11-24 Roger Sayle <roger@eyesopen.com> 1730 1731 PR preprocessor/15824 1732 * configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h> 1733 directly, instead of the non-existant "system.h" and "ansidecl.h". 1734 * configure: Regenerate. 1735 17362004-11-23 Daniel Jacobowitz <dan@codesourcery.com> 1737 Joseph Myers <joseph@codesourcery.com> 1738 1739 * internal.h (struct lexer_state): Add in_deferred_pragma. 1740 * directives.c (struct pragma_entry): Add allow_expansion. 1741 (insert_pragma_entry): Take allow_expansion flag. 1742 (register_pragma): Likewise. 1743 (cpp_register_pragma): Likewise. 1744 (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma. 1745 (do_pragma): Honor allow_expansion. 1746 (cpp_handle_deferred_pragma): Set in_deferred_pragma. 1747 * include/cpplib.h (cpp_register_pragma): Update prototype. 1748 17492004-11-18 Daniel Jacobowitz <dan@codesourcery.com> 1750 Mark Mitchell <mark@codesourcery.com> 1751 1752 * configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set 1753 need_64bit_hwint=yes. 1754 * configure: Regenerate. 1755 17562004-11-09 Joseph S. Myers <joseph@codesourcery.com> 1757 1758 * Makefile.in ($(PACKAGE).pot): New rule. Depend on 1759 po/$(PACKAGE).pot. 1760 (po/$(PACKAGE).pot): Use ":" instead of "," in --keyword 1761 arguments. Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2. 1762 Remove local srcdir path from generated file. 1763 17642004-11-04 Zack Weinberg <zack@codesourcery.com> 1765 Gerald Pfeifer <gerald@pfeifer.com> 1766 1767 * internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H 1768 as well. 1769 17702004-10-27 Zack Weinberg <zack@codesourcery.com> 1771 1772 PR 18075 1773 * directives.c (do_pragma): Do not defer pragmas which are unknown. 1774 (cpp_handle_deferred_pragma): Add cast to silence warning. 1775 17762004-10-14 Joseph S. Myers <jsm@polyomino.org.uk> 1777 1778 * errors.c (_cpp_begin_message): Print "error: " for errors. 1779 17802004-10-10 Andreas Jaeger <aj@suse.de> 1781 1782 * makedepend.c: Include mkdeps.h for prototype of deps_add_vpath. 1783 * Makefile.in (makedepend.o): Add dependency on mkdeps.h. 1784 17852004-10-08 Andrew Pinski <pinskia@physics.uc.edu> 1786 1787 * pch.c (cpp_write_pch_state): Remove variable z as it is not 1788 used. 1789 (cpp_read_state): Remove unused variables, m, d and mac_count. 1790 17912004-09-29 Per Bothner <per@bothner.com> 1792 1793 * directives.c (cpp_handle_deferred_pragma): Save, clear and restore 1794 cb.line_change. Otherwise do_pragma will call the line_change 1795 call-back with a meaningless line number. 1796 17972004-09-24 Zack Weinberg <zack@codesourcery.com> 1798 1799 * configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to 1800 programs cluster. Use ACX_PROG_CC_WARNING_OPTS, 1801 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS. 1802 * aclocal.m4, configure: Regenerate. 1803 * init.c: Include localedir.h. 1804 * Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables. 1805 (DEFS): Delete. 1806 (.c.o): Use $(ALL_CFLAGS). 1807 (localedir.h, localedir.hs): New rules. 1808 (clean): Use rm -rf to remove directories. 1809 (distclean): Also delete localedir.h and localedir.hs. 1810 (init.o): Update dependencies. 1811 18122004-09-22 Kelley Cook <kcook@gcc.gnu.org> 1813 1814 * Makefile.in (aclocal.m4): Update dependencies. 1815 * configure.ac (AC_CONFIG_MACRO_DIR): New. 1816 * aclocal.m4, configure: Regenerate. 1817 18182004-09-17 Zack Weinberg <zack@codesourcery.com> 1819 1820 * charset.c (_cpp_destroy_iconv, emit_numeric_escape) 1821 (_cpp_convert_input, _cpp_default_encoding): Add comments. 1822 Some other comments in this file also tweaked. 1823 1824 * directives.c (do_pragma): Save current buffer position 1825 before lexing the pragma keywords; don't call 1826 _cpp_backup_tokens in the defer_pragmas case. 1827 18282004-09-15 Per Bothner <per@bothner.com> 1829 1830 * include/line-map.h (line_map_start): Add parameter names so 1831 preceding comment makes sense. 1832 (linemap_add): Remove from comment mention of non-existing parameter. 1833 18342004-09-09 Matt Austern <austern@apple.com> 1835 Zack Weinberg <zack@codesourcery.com> 1836 1837 * include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_ 1838 prefixes throughout. Add entry for PRAGMA. Remove 1839 unnecessary "= 0" from EQ. 1840 (enum cpp_ttype): Adjust OP and TK definitions to restore 1841 prefixes, via token-paste. 1842 (CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP): 1843 Change from #defines to additional cpp_ttype enumerators. 1844 (struct cpp_options): Add defer_pragmas. 1845 (cpp_handle_deferred_pragma): Prototype new interface. 1846 1847 * internal.h (struct cpp_reader): Add directive_result. 1848 * directives.c (struct pragma_entry): Add is_internal field; 1849 give boolean fields type bool. 1850 (start_directive): Initialize pfile->directive_result.type. 1851 (_cpp_do__Pragma): Likewise. 1852 (run_directive): Do not crash if pfile->buffer->prev is NULL. 1853 (insert_pragma_entry): Add 'internal' argument; set new->is_internal 1854 from it. 1855 (register_pragma): New static function, bulk of former 1856 cpp_register_pragma here; add 'internal' argument, pass along 1857 to insert_pragma_entry. 1858 (cpp_register_pragma): Now a wrapper around register_pragma which 1859 always passes false for 'internal' argument. 1860 (_cpp_init_internal_pragmas): Call register_pragma directly, passing 1861 true for 'internal'. 1862 (do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't 1863 an internal pragma, save text till the end of the line as a CPP_PRAGMA 1864 token instead of executing the pragma. 1865 (cpp_handle_deferred_pragma): New interface. 1866 * lex.c (token_spellings): Adjust OP and TK definitions to 1867 match changes to cpplib.h. 1868 (_cpp_lex_token): Check for a directive-result token and 1869 return it if present. 1870 (cpp_token_val_index): Handle CPP_PRAGMA. 1871 * macro.c (cpp_builtin_macro_text): Correct comment. 1872 (builtin_macro): Handle directive-result tokens from _cpp_do__Pragma. 1873 18742004-09-06 Serge Belyshev <belyshev@lubercy.com> 1875 1876 PR preprocessor/14699 1877 * symtab.c (ht_dump_statistics): Change type of sum_of_squares 1878 from size_t to double. 1879 18802004-08-28 Andreas Schwab <schwab@suse.de> 1881 Andreas Jaeger <aj@suse.de> 1882 1883 * configure.ac: Set PACKAGE correctly. 1884 * configure: Regenerated. 1885 18862004-08-25 Paolo Bonzini <bonzini@gnu.org> 1887 1888 * Makefile.in: Add back top_builddir. 1889 18902004-08-25 Paolo Bonzini <bonzini@gnu.org> 1891 1892 * configure.ac: Replace Automake macro invocations 1893 with manual Autoconf checks and substitutions. 1894 * configure: Regenerate. 1895 * aclocal.m4: Regenerate. 1896 * config.in: Regenerate. 1897 * Makefile.am: Removed. 1898 * Makefile.in: Heavy simplification and reorganization. 1899 19002004-08-09 Mark Mitchell <mark@codesourcery.com> 1901 1902 * configure.ac (arm*-*-eabi*): New target. 1903 (arm*-*-symbianelf*): Likewise. 1904 * configure: Regenerated. 1905 19062004-07-24 Bernardo Innocenti <bernie@develer.com> 1907 1908 * internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove. 1909 * directives.c: Use XNEW-family macros from libiberty. 1910 * lex.c: Likewise. 1911 * macro.c: Likewise. 1912 * cpplib.h (cpp_deps_style): Export enum with name. 1913 19142004-07-23 Matthias Klose <doko@debian.org> 1915 1916 * init.c (init_library): Use PACKAGE for the text domain. 1917 19182004-07-16 Andris Pavenis <pavenis@latnet.lv> 1919 1920 PR preprocessor/16366 1921 * internal.h (struct cpp_reader): New field dir_hash. 1922 * files.c (make_cpp_dir): Use dir_hash, not file_hash. 1923 (_cpp_init_files, _cpp_cleanup_files): Update for new field. 1924 19252004-07-04 Neil Booth <neil@duron.akihabara.co.uk> 1926 1927 PR preprocessor/16192 1928 PR preprocessor/15913 1929 PR preprocessor/15572 1930 * expr.c (_cpp_parse_expr): Handle remaining cases where an 1931 expression is missing. 1932 * init.c (post_options): Traditional cpp doesn't do // comments. 1933 19342004-06-30 Per Bothner <per@bothner.com> 1935 1936 * include/line-map.h (fileline): Remove old typedef. 1937 * internal.h (struct cpp_reader): Use source_location typedef instead. 1938 19392004-06-26 Zack Weinberg <zack@codesourcery.com> 1940 1941 Partially revert patch of 2004-06-05. 1942 * files.c (search_cache): Remove pfile argument. Don't check 1943 for file that would be found by "" or <> search here... 1944 (_cpp_find_file): ...do it here, before calling find_file_in_dir. 1945 Do not apply directory-of-current-file correction to files 1946 found by this check. Rearrange code slightly. 1947 19482004-06-21 Geoffrey Keating <geoffk@apple.com> 1949 1950 * files.c (should_stack_file): Correct swapped parameters to call 1951 to cb.read_pch. 1952 * pch.c (cpp_valid_state): Handle -fpreprocessed. 1953 19542004-06-15 Paolo Bonzini <bonzini@gnu.org> 1955 1956 * Makefile.in: Regenerate with automake 1.8.5. 1957 * aclocal.m4: Likewise. 1958 * configure: Regenerate. 1959 19602004-06-11 Zack Weinberg <zack@codesourcery.com> 1961 1962 * configure.ac: Don't invoke ACX_HEADER_STDBOOL. 1963 * configure, config.in: Regenerate. 1964 * system.h: Unconditionally define bool as unsigned char, 1965 BOOL_BITFIELD as unsigned int. 1966 * .cvsignore: New file. 1967 19682004-06-09 Geoffrey Keating <geoffk@apple.com> 1969 1970 * traditional.c (push_replacement_text): Set macro->traditional. 1971 (save_replacement_text): Likewise. 1972 * pch.c (cpp_write_pch_state): Don't write list of defined macros. 1973 (struct save_macro_item): Delete. 1974 (struct save_macro_data): Use a character array not the previous 1975 structured format. 1976 (save_macros): Save macro as text not as internal structures. 1977 (cpp_prepare_state): Update for changes to save_macro_data. 1978 (cpp_read_state): Don't read macros defined in PCH. Restore 1979 -D macros as text. 1980 * macro.c (create_iso_definition): Honour alloc_subobject. 1981 Clear traditional flag. 1982 (_cpp_create_definition): Honour alloc_subobject. 1983 * lex.c (cpp_token_val_index): New. 1984 * internal.h: Include cpp-id-data.h. 1985 (uchar): Move definition to cpp-id-data.h. 1986 (U): Likewise. 1987 (cpp_macro): Likewise. 1988 * directives.c (struct answer): Move to cpp-id-data.h. 1989 (do_assert): Honour alloc_subobject. 1990 1991 * include/symtab.h (struct ht): Add field 'alloc_subobject'. 1992 * include/cpplib.h (struct cpp_string): Add GTY marker. 1993 (enum cpp_token_fld_kind): New. 1994 (struct cpp_token): Add GTY markers. 1995 (cpp_token_val_index): Prototype. 1996 (CPP_HASHNODE_VALUE_IDX): New. 1997 (struct cpp_hashnode): Don't skip fields of 'value' when marking. 1998 * include/cpp-id-data.h: New file. 1999 20002004-06-09 Paolo Bonzini <bonzini@gnu.org> 2001 2002 * Makefile.am (all-local): New. 2003 * Makefile.in: Regenerate. 2004 20052004-06-06 Roger Sayle <roger@eyesopen.com> 2006 2007 * Makefile.am (LIBICONV): Declare. 2008 (makedepend_LDADD): Use LIBICONV. 2009 * Makefile.in: Regenerate. 2010 20112004-06-05 Andrew Pinski <pinskia@physics.uc.edu> 2012 2013 * Makefile.am (LIBINTL): Declare 2014 (makedepend_LDADD): Use LIBINTL. 2015 * Makefile.in: Regenerate. 2016 20172004-06-05 Zack Weinberg <zack@codesourcery.com> 2018 2019 * Makefile.am: Add makedepend. 2020 * Makefile.in, aclocal.m4: Regenerate. 2021 * charset.c: Insert a space to avoid a warning. 2022 * directives.c: Include mkdeps.h. 2023 (_cpp_handle_directive): Reenable macro expander if appropriate. 2024 (undefine_macros): Inline body of _cpp_free_definition for speed. 2025 Do not call undef callback or _cpp_warn_if_unused_macro. 2026 (cpp_get_deps): New interface. 2027 * files.c (search_cache): Add pfile argument. Check for file 2028 that would be found by "" or <> search here... 2029 (_cpp_find_file): ...not here. Correct recorded start_dir of 2030 files found by directory-of-current-file search that would be 2031 found by "" or <> search. 2032 * init.c (cpp_add_dependency_target): Delete. 2033 * internal.h (struct lexer_state): Add discarding_output flag. 2034 * lex.c (lex_identifier): Compute hash function while scanning. 2035 * macro.c (cpp_scan_nooutput): Disable macro expansion outside 2036 directives. 2037 * makedepend.c: New file. 2038 * mkdeps.c (struct deps): Add vpath vector. 2039 (apply_vpath, deps_add_vpath): New function. 2040 (deps_free): Free vpath vector. 2041 (deps_add_dep, deps_add_target): Use apply_vpath. 2042 * symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH. 2043 (ht_lookup_with_hash): New function. 2044 * cpplib.h, mkdeps.h: Update prototypes. 2045 * symtab.h: Update prototypes. 2046 (HT_HASHSTEP, HT_FINISH): New macros. 2047 20482004-05-29 Geoffrey Keating <geoffk@apple.com> 2049 2050 * symtab.c (ht_create): Set entries_owned. 2051 (ht_destroy): Honour entries_owned. 2052 (ht_expand): Likewise. 2053 (ht_load): New. 2054 * include/symtab.h (struct ht): New field 'entries_owned' 2055 (ht_load): New prototype. 2056 20572004-05-26 Paolo Bonzini <bonzini@gnu.org> 2058 2059 PR bootstrap/15651 2060 * configure.ac: Fix m4 quoting when picking 2061 the size of HOST_WIDE_INT. 2062 * configure: Regenerate. 2063 20642004-05-25 Paolo Bonzini <bonzini@gnu.org> 2065 2066 * Makefile.am: the correct directory for 2067 gettext include files is given by @INCINTL@. 2068 * Makefile.in: Regenerate. 2069 20702004-05-24 Paolo Bonzini <bonzini@gnu.org> 2071 2072 * system.h [!ENABLE_NLS]: dgettext takes two 2073 parameters. 2074 20752004-05-23 Paolo Bonzini <bonzini@gnu.org> 2076 2077 Moved libcpp from the gcc subdirectory to the toplevel. 2078 * Makefile.am: New file. 2079 * Makefile.in: Regenerate. 2080 * configure.ac: New file. 2081 * configure: Regenerate. 2082 * config.in: Regenerate. 2083 * charset.c: Moved from gcc/cppcharset.c. Add note about 2084 brokenness of input charset detection. Adjust for change 2085 in name of cppucnid.h. 2086 * errors.c: Moved from gcc/cpperror.c. Do not include intl.h. 2087 * expr.c: Moved from gcc/cppexp.c. 2088 * files.c: Moved from gcc/cppfiles.c. Do not include intl.h. 2089 Remove #define of O_BINARY, it is in system.h. 2090 * identifiers.c: Moved from gcc/cpphash.c. 2091 * internal.h: Moved from gcc/cpphash.h. Change header 2092 guard name. All other files adjusted to match name change. 2093 * init.c: Moved from gcc/cppinit.c. 2094 (init_library) [ENABLE_NLS]: Call bindtextdomain. 2095 * lex.c: Moved from gcc/cpplex.c. 2096 * directives.c: Moved from gcc/cpplib.c. 2097 * macro.c: Moved from gcc/cppmacro.c. 2098 * pch.c: Moved from gcc/cpppch.c. Do not include intl.h. 2099 * traditional.c: Moved from gcc/cpptrad.c. 2100 * ucnid.h: Moved from gcc/cppucnid.h. Change header 2101 guard name. 2102 * ucnid.pl: Moved from gcc/cppucnid.pl. 2103 * ucnid.tab: Moved from gcc/cppucnid.tab. Change header 2104 guard name. 2105 * symtab.c: Moved from gcc/hashtable.c. 2106 * line-map.c: Moved from gcc. Do not include intl.h. 2107 * mkdeps.c: Moved from gcc. 2108 * system.h: New file. 2109 * include/cpplib.h: Moved from gcc. Change header guard name. 2110 * include/line-map.h: Moved from gcc. Change header guard name. 2111 * include/mkdeps.h: Moved from gcc. Change header guard name. 2112 * include/symtab.h: Moved from gcc/hashtable.h. Change header 2113 guard name. 2114