Home | History | Annotate | Line # | Download | only in libcpp
      1 2025-05-23  Release Manager
      2 
      3 	* GCC 14.3.0 released.
      4 
      5 2025-05-08  Jakub Jelinek  <jakub (a] redhat.com>
      6 
      7 	PR preprocessor/108900
      8 	PR preprocessor/116047
      9 	PR preprocessor/120061
     10 	* files.cc (_cpp_stack_file): Revert 2025-03-28 change.
     11 	* line-map.cc (linemap_add): Use
     12 	SOURCE_LINE (from, linemap_included_from (map - 1)) + 1; instead of
     13 	SOURCE_LINE (from, from[1].start_location); to compute to_line
     14 	for LC_LEAVE if from[1].reason is LC_RENAME.  For LC_ENTER
     15 	included_from computation, look at map[-2] or even lower if map[-1]
     16 	has the same start_location as map[0].
     17 
     18 2025-04-23  Jeremy Bettis  <jbettis (a] google.com>
     19 
     20 	Backported from master:
     21 	2025-03-28  Jeremy Bettis  <jbettis (a] google.com>
     22 
     23 	PR preprocessor/108900
     24 	* files.cc (_cpp_stack_file): Do not decrement highest_location
     25 	across distinct maps.
     26 
     27 2025-03-27  Roland McGrath  <mcgrathr (a] google.com>
     28 
     29 	* configure.ac: Check for setlocale.
     30 	* configure, config.in: Regenerated.
     31 
     32 2024-11-25  Lewis Hyatt  <lhyatt (a] gmail.com>
     33 
     34 	PR preprocessor/117118
     35 	* lex.cc (lex_raw_string): Treat an unterminated raw string the same
     36 	way for a deferred pragma as is done for other directives.
     37 
     38 2024-11-20  David Malcolm  <dmalcolm (a] redhat.com>
     39 
     40 	Backported from master:
     41 	2024-06-21  David Malcolm  <dmalcolm (a] redhat.com>
     42 
     43 	PR testsuite/109360
     44 	* include/rich-location.h (rich_location::get_column_override):
     45 	New accessor.
     46 
     47 2024-08-01  Release Manager
     48 
     49 	* GCC 14.2.0 released.
     50 
     51 2024-05-07  Release Manager
     52 
     53 	* GCC 14.1.0 released.
     54 
     55 2024-04-17  Christophe Lyon  <christophe.lyon (a] linaro.org>
     56 
     57 	PR preprocessor/114748
     58 	* aclocal.m4: Regenerate.
     59 	* configure: Regenerate.
     60 
     61 2024-03-14  Lewis Hyatt  <lhyatt (a] gmail.com>
     62 
     63 	PR preprocessor/110558
     64 	* macro.cc (builtin_has_include): Set
     65 	pfile->state.directive_wants_padding prior to lexing the
     66 	file name, in case it comes from macro expansion.
     67 
     68 2024-03-14  Lewis Hyatt  <lhyatt (a] gmail.com>
     69 
     70 	PR preprocessor/80755
     71 	* files.cc (search_path_head): Add SUPPRESS_DIAGNOSTIC argument
     72 	defaulting to false.
     73 	(_cpp_has_header): Silently return false if the search path has been
     74 	exhausted, rather than issuing a diagnostic and then hitting an
     75 	assert.
     76 
     77 2024-02-22  Jakub Jelinek  <jakub (a] redhat.com>
     78 
     79 	PR c/114007
     80 	* include/cpplib.h (COLON_SCOPE): Define to PURE_ZERO.
     81 	* lex.cc (_cpp_lex_direct): When lexing CPP_COLON with another
     82 	colon after it, if !CPP_OPTION (pfile, scope) set COLON_SCOPE
     83 	flag on the first CPP_COLON token.
     84 
     85 2024-02-01  Lewis Hyatt  <lhyatt (a] gmail.com>
     86 
     87 	PR preprocessor/105608
     88 	* pch.cc (cpp_read_state): Set a valid location for restored
     89 	macros.
     90 
     91 2024-01-04  Raiki Tamura  <tamaron1203 (a] gmail.com>
     92 
     93 	* charset.cc (cpp_check_xid_property): New.
     94 	* include/cpplib.h
     95 	(cpp_check_xid_property): New.
     96 	(enum cpp_xid_property): New.
     97 
     98 2023-12-13  Jakub Jelinek  <jakub (a] redhat.com>
     99 
    100 	PR preprocessor/112956
    101 	* lex.cc (_cpp_lex_direct): Initialize c to 0.
    102 	For CPP_PRAGMA_EOL tokens and if c == 0 also for CPP_EOF
    103 	set result->src_loc to highest locus.
    104 
    105 2023-11-28  Lewis Hyatt  <lhyatt (a] gmail.com>
    106 
    107 	PR preprocessor/112701
    108 	* expr.cc (num_div_op): Set unsignedp appropriately when returning a
    109 	stub value for divide by 0.
    110 
    111 2023-11-27  Alex Coplan  <alex.coplan (a] arm.com>
    112 	    Iain Sandoe  <iain (a] sandoe.co.uk>
    113 
    114 	PR c++/60512
    115 	* include/cpplib.h (struct cpp_callbacks): Add has_feature.
    116 	(enum cpp_builtin_type): Add BT_HAS_{FEATURE,EXTENSION}.
    117 	* init.cc: Add __has_{feature,extension}.
    118 	* macro.cc (_cpp_builtin_macro_text): Handle
    119 	BT_HAS_{FEATURE,EXTENSION}.
    120 
    121 2023-11-24  Alexander Monakov  <amonakov (a] ispras.ru>
    122 
    123 	* config.in: Regenerate.
    124 	* configure: Regenerate.
    125 	* configure.ac (ENABLE_VALGRIND_CHECKING): Delete.
    126 	(ENABLE_VALGRIND_ANNOTATIONS): Rename to
    127 	ENABLE_VALGRIND_WORKAROUNDS.  Delete Valgrind header checks.
    128 	* lex.cc (new_buff): Adjust for renaming.
    129 	(_cpp_free_buff): Ditto.
    130 
    131 2023-11-20  Marc Poulhis  <dkm (a] kataplop.net>
    132 
    133 	* macro.cc (parse_params): Fix typo in variadic.
    134 	(create_iso_definition): Likewise.
    135 
    136 2023-11-19  David Malcolm  <dmalcolm (a] redhat.com>
    137 
    138 	* Makefile.in (TAGS_SOURCES): Add "include/rich-location.h".
    139 	* include/cpplib.h (class rich_location): New forward decl.
    140 	* include/line-map.h (class range_label)
    141 	(enum range_display_kind, struct location_range)
    142 	(class semi_embedded_vec, class rich_location, class label_text)
    143 	(class range_label, class fixit_hint): Move to...
    144 	* include/rich-location.h: ...this new file.
    145 	* internal.h: Include "rich-location.h".
    146 
    147 2023-11-14  Jakub Jelinek  <jakub (a] redhat.com>
    148 
    149 	* makeucnid.cc (write_copyright): Update copyright year.
    150 	* makeuname2c.cc (write_copyright): Likewise.
    151 	(struct generated): Update latest Unicode version.
    152 	(generated_ranges): Add 2ebf0-2ee5d CJK UNIFIED IDEOGRAPH
    153 	range which was forgotten to be added to 4-8 table, but
    154 	clearly is expected to be there from the 15.1 additions.
    155 	* ucnid.h: Regenerated.
    156 	* uname2c.h: Regenerated.
    157 	* generated_cpp_wcwidth.h: Regenerated.
    158 
    159 2023-11-14  Jakub Jelinek  <jakub (a] redhat.com>
    160 
    161 	PR c++/110341
    162 	* charset.cc: Implement C++26 P1854R4 - Making non-encodable string
    163 	literals ill-formed.
    164 	(one_count_chars, convert_count_chars, count_source_chars): New
    165 	functions.
    166 	(narrow_str_to_charconst): Change last arg type from cpp_ttype to
    167 	const cpp_token *.  For C++ if pedantic and i > 1 in CPP_CHAR
    168 	interpret token also as CPP_STRING32 and if number of characters
    169 	in the CPP_STRING32 is larger than number of bytes in CPP_CHAR,
    170 	pedwarn on it.  Make the diagnostics more detailed.
    171 	(wide_str_to_charconst): Change last arg type from cpp_ttype to
    172 	const cpp_token *.  Make the diagnostics more detailed.
    173 	(cpp_interpret_charconst): Adjust narrow_str_to_charconst and
    174 	wide_str_to_charconst callers.
    175 
    176 2023-11-14  Arsen Arsenovi  <arsen (a] aarsen.me>
    177 
    178 	* config.in: Regenerate.
    179 
    180 2023-11-13  Arsen Arsenovi  <arsen (a] aarsen.me>
    181 
    182 	* configure: Regenerate.
    183 	* aclocal.m4: Regenerate.
    184 
    185 2023-11-09  David Malcolm  <dmalcolm (a] redhat.com>
    186 
    187 	* include/line-map.h (rich_location::get_expanded_location): Make
    188 	const.
    189 	(rich_location::get_line_table): New accessor.
    190 	(rich_location::m_line_table): Make the pointer be const.
    191 	(rich_location::m_have_expanded_location): Make mutable.
    192 	(rich_location::m_expanded_location): Likewise.
    193 	(fixit_hint::affects_line_p): Add const line_maps * param.
    194 	(linemap_client_expand_location_to_spelling_point): Likewise.
    195 	* line-map.cc (rich_location::get_expanded_location): Make const.
    196 	Pass m_line_table to
    197 	linemap_client_expand_location_to_spelling_point.
    198 	(rich_location::maybe_add_fixit): Likewise.
    199 	(fixit_hint::affects_line_p): Add set param and pass to
    200 	linemap_client_expand_location_to_spelling_point.
    201 
    202 2023-11-07  Joseph Myers  <joseph (a] codesourcery.com>
    203 
    204 	* directives.cc: Refer to C23 instead of C2X in diagnostics and
    205 	comments.
    206 	(STDC2X): Rename to STDC23.
    207 	* expr.cc: Use cpp_warn_c11_c23_compat instead of
    208 	cpp_warn_c11_c2x_compat and CPP_W_C11_C23_COMPAT instead of
    209 	CPP_W_C11_C2X_COMPAT.  Refer to C23 instead of C2X in diagnostics
    210 	and comments.
    211 	* include/cpplib.h: Refer to C23 instead of C2X in diagnostics and
    212 	comments.
    213 	(CLK_GNUC2X): Rename to CLK_GNUC23.
    214 	(CLK_STDC2X): Rename to CLK_STDC23.
    215 	(CPP_W_C11_C2X_COMPAT): Rename to CPP_W_C11_C23_COMPAT.
    216 	* init.cc: Use GNUC23 instead of GNUC2X, STDC23 instead of STDC2X
    217 	and cpp_warn_c11_c23_compat instead of cpp_warn_c11_c2x_compat.
    218 	* lex.cc (maybe_va_opt_error): Refer to C23 instead of C2X in
    219 	diagnostic.
    220 	* macro.cc (_cpp_arguments_ok): Refer to C23 instead of C2X in
    221 	comment.
    222 
    223 2023-11-02  Jakub Jelinek  <jakub (a] redhat.com>
    224 
    225 	PR c++/110342
    226 	* include/cpplib.h (TTYPE_TABLE): Add CPP_UNEVAL_STRING literal
    227 	entry.  Use C++11 instead of C++-0x in comments.
    228 	* charset.cc (convert_escape): Add UNEVAL argument, if true,
    229 	pedantically diagnose numeric escape sequences.
    230 	(cpp_interpret_string_1): Formatting fix.  Adjust convert_escape
    231 	caller.
    232 	(cpp_interpret_string): Formatting string.
    233 	(cpp_interpret_string_notranslate): Pass type through to
    234 	cpp_interpret_string if it is CPP_UNEVAL_STRING.
    235 
    236 2023-10-31  David Malcolm  <dmalcolm (a] redhat.com>
    237 
    238 	* include/line-map.h
    239 	(line_map_macro::get_expansion_point_location): New accessor.
    240 	(line_map_macro::expansion): Rename field to...
    241 	(line_map_macro::mexpansion): Rename field to...
    242 	(MACRO_MAP_EXPANSION_POINT_LOCATION): Delete this function.
    243 	* line-map.cc (linemap_enter_macro): Update for renaming of field.
    244 	(linemap_macro_map_loc_to_exp_point): Update for removal of
    245 	MACRO_MAP_EXPANSION_POINT_LOCATION.
    246 
    247 2023-10-23  Lewis Hyatt  <lhyatt (a] gmail.com>
    248 
    249 	PR preprocessor/36887
    250 	* directives.cc (do_pragma_poison): Store in the extra hash map the
    251 	location from which an identifier has been poisoned.
    252 	* lex.cc (identifier_diagnostics_on_lex): When issuing a diagnostic
    253 	for the use of a poisoned identifier, also add a note indicating the
    254 	location from which it was poisoned.
    255 	* identifiers.cc (alloc_node): Convert to template function.
    256 	(_cpp_init_hashtable): Handle the new extra hash map.
    257 	(_cpp_destroy_hashtable): Likewise.
    258 	* include/cpplib.h (struct cpp_hashnode_extra): New struct.
    259 	(cpp_create_reader): Update prototype to...
    260 	* init.cc (cpp_create_reader): ...accept an argument for the extra
    261 	hash table and pass it to _cpp_init_hashtable.
    262 	* include/symtab.h (ht_lookup): New overload for convenience.
    263 	* internal.h (struct cpp_reader): Add EXTRA_HASH_TABLE member.
    264 	(_cpp_init_hashtable): Adjust prototype.
    265 
    266 2023-10-08  David Malcolm  <dmalcolm (a] redhat.com>
    267 
    268 	* include/line-map.h (LINEMAPS_ORDINARY_MAPS): Delete.
    269 	(LINEMAPS_MACRO_MAPS): Delete.
    270 	* line-map.cc (linemap_tracks_macro_expansion_locs_p): Update for
    271 	deletion of LINEMAPS_MACRO_MAPS.
    272 	(linemap_get_statistics): Likewise.
    273 
    274 2023-10-08  David Malcolm  <dmalcolm (a] redhat.com>
    275 
    276 	* include/line-map.h (maps_info_ordinary::cache): Rename to...
    277 	(maps_info_ordinary::m_cache): ...this.
    278 	(maps_info_macro::cache): Rename to...
    279 	(maps_info_macro::m_cache): ...this.
    280 	(LINEMAPS_CACHE): Delete.
    281 	(LINEMAPS_ORDINARY_CACHE): Delete.
    282 	(LINEMAPS_MACRO_CACHE): Delete.
    283 	* init.cc (read_original_filename): Update for adding "m_" prefix.
    284 	* line-map.cc (linemap_add): Eliminate LINEMAPS_ORDINARY_CACHE in
    285 	favor of a simple field access.
    286 	(linemap_enter_macro): Likewise for LINEMAPS_MACRO_CACHE.
    287 	(linemap_ordinary_map_lookup): Likewise for
    288 	LINEMAPS_ORDINARY_CACHE, twice.
    289 	(linemap_lookup_macro_index): Likewise for LINEMAPS_MACRO_CACHE.
    290 
    291 2023-10-08  David Malcolm  <dmalcolm (a] redhat.com>
    292 
    293 	* include/line-map.h (LINEMAPS_LAST_ALLOCATED_MAP): Delete.
    294 	(LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Delete.
    295 	(LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Delete.
    296 
    297 2023-10-08  David Malcolm  <dmalcolm (a] redhat.com>
    298 
    299 	* include/line-map.h (line_maps::reallocator): Rename to...
    300 	(line_maps::m_reallocator): ...this.
    301 	(line_maps::round_alloc_size): Rename to...
    302 	(line_maps::m_round_alloc_size): ...this.
    303 	(line_maps::location_adhoc_data_map): Rename to...
    304 	(line_maps::m_location_adhoc_data_map): ...this.
    305 	(line_maps::num_optimized_ranges): Rename to...
    306 	(line_maps::m_num_optimized_ranges): ..this.
    307 	(line_maps::num_unoptimized_ranges): Rename to...
    308 	(line_maps::m_num_unoptimized_ranges): ...this.
    309 	(get_combined_adhoc_loc): Delete decl.
    310 	(COMBINE_LOCATION_DATA): Delete.
    311 	* lex.cc (get_location_for_byte_range_in_cur_line): Update for
    312 	removal of COMBINE_LOCATION_DATA.
    313 	(warn_about_normalization): Likewise.
    314 	(_cpp_lex_direct): Likewise.
    315 	* line-map.cc (line_maps::~line_maps): Update for "m_" prefix of
    316 	some fields of line_maps.
    317 	(rebuild_location_adhoc_htab): Likewise.
    318 	(can_be_stored_compactly_p): Convert to...
    319 	(line_maps::can_be_stored_compactly_p): ...this private member
    320 	function.
    321 	(get_combined_adhoc_loc): Convert to...
    322 	(line_maps::get_or_create_combined_loc): ...this public member
    323 	function.
    324 	(line_maps::make_location): Update for removal of
    325 	COMBINE_LOCATION_DATA.
    326 	(get_data_from_adhoc_loc): Update for "m_" prefix of some fields
    327 	of line_maps.
    328 	(get_discriminator_from_adhoc_loc): Likewise.
    329 	(get_location_from_adhoc_loc): Likewise.
    330 	(get_range_from_adhoc_loc): Convert to...
    331 	(line_maps::get_range_from_adhoc_loc): ...this private member
    332 	function.
    333 	(line_maps::get_range_from_loc): Update for conversion of
    334 	get_range_from_adhoc_loc to a member function.
    335 	(linemap_init): Update for "m_" prefix of some fields of
    336 	line_maps.
    337 	(line_map_new_raw): Likewise.
    338 	(linemap_enter_macro): Likewise.
    339 	(linemap_get_statistics): Likewise.
    340 
    341 2023-10-08  David Malcolm  <dmalcolm (a] redhat.com>
    342 
    343 	* include/line-map.h (line_maps::pure_location_p): New decl.
    344 	(line_maps::get_pure_location): New decl.
    345 	(line_maps::get_range_from_loc): New decl.
    346 	(line_maps::get_start): New.
    347 	(line_maps::get_finish): New.
    348 	(line_maps::make_location): New decl.
    349 	(get_range_from_loc): Make line_maps param const.
    350 	(get_discriminator_from_loc): Likewise.
    351 	(pure_location_p): Likewise.
    352 	(get_pure_location): Likewise.
    353 	(linemap_check_files_exited): Likewise.
    354 	(linemap_tracks_macro_expansion_locs_p): Likewise.
    355 	(linemap_location_in_system_header_p): Likewise.
    356 	(linemap_location_from_macro_definition_p): Likewise.
    357 	(linemap_macro_map_loc_unwind_toward_spelling): Likewise.
    358 	(linemap_included_from_linemap): Likewise.
    359 	(first_map_in_common): Likewise.
    360 	(linemap_compare_locations): Likewise.
    361 	(linemap_location_before_p): Likewise.
    362 	(linemap_resolve_location): Likewise.
    363 	(linemap_unwind_toward_expansion): Likewise.
    364 	(linemap_unwind_to_first_non_reserved_loc): Likewise.
    365 	(linemap_expand_location): Likewise.
    366 	(linemap_get_file_highest_location): Likewise.
    367 	(linemap_get_statistics): Likewise.
    368 	(linemap_dump_location): Likewise.
    369 	(linemap_dump): Likewise.
    370 	(line_table_dump): Likewise.
    371 	* internal.h (linemap_get_expansion_line): Likewise.
    372 	(linemap_get_expansion_filename): Likewise.
    373 	* line-map.cc (can_be_stored_compactly_p): Likewise.
    374 	(get_data_from_adhoc_loc): Drop redundant "class".
    375 	(get_discriminator_from_adhoc_loc): Likewise.
    376 	(get_location_from_adhoc_loc): Likewise.
    377 	(get_range_from_adhoc_loc): Likewise.
    378 	(get_range_from_loc): Make const and move implementation to...
    379 	(line_maps::get_range_from_loc): ...this new function.
    380 	(get_discriminator_from_loc): Make line_maps param const.
    381 	(pure_location_p): Make const and move implementation to...
    382 	(line_maps::pure_location_p): ...this new function.
    383 	(get_pure_location): Make const and move implementation to...
    384 	(line_maps::get_pure_location): ...this new function.
    385 	(linemap_included_from_linemap): Make line_maps param const.
    386 	(linemap_check_files_exited): Likewise.
    387 	(linemap_tracks_macro_expansion_locs_p): Likewise.
    388 	(linemap_macro_map_loc_unwind_toward_spelling): Likewise.
    389 	(linemap_get_expansion_line): Likewise.
    390 	(linemap_get_expansion_filename): Likewise.
    391 	(linemap_location_in_system_header_p): Likewise.
    392 	(first_map_in_common_1): Likewise.
    393 	(linemap_compare_locations): Likewise.
    394 	(linemap_macro_loc_to_spelling_point): Likewise.
    395 	(linemap_macro_loc_to_def_point): Likewise.
    396 	(linemap_macro_loc_to_exp_point): Likewise.
    397 	(linemap_resolve_location): Likewise.
    398 	(linemap_location_from_macro_definition_p): Likewise.
    399 	(linemap_unwind_toward_expansion): Likewise.
    400 	(linemap_unwind_to_first_non_reserved_loc): Likewise.
    401 	(linemap_expand_location): Likewise.
    402 	(linemap_dump): Likewise.
    403 	(linemap_dump_location): Likewise.
    404 	(linemap_get_file_highest_location): Likewise.
    405 	(linemap_get_statistics): Likewise.
    406 	(line_table_dump): Likewise.
    407 
    408 2023-09-20  Lewis Hyatt  <lhyatt (a] gmail.com>
    409 
    410 	PR preprocessor/61474
    411 	* files.cc (_cpp_find_file): Set DONT_READ to TRUE for fake
    412 	include files.
    413 	(_cpp_fake_include): Pass a unique cpp_dir* address so
    414 	the fake file will not be found when looked up for real.
    415 
    416 2023-09-19  Ben Boeckel  <ben.boeckel (a] kitware.com>
    417 
    418 	* include/cpplib.h: Add cpp_fdeps_format enum.
    419 	(cpp_options): Add fdeps_format field
    420 	(cpp_finish): Add structured dependency fdeps_stream parameter.
    421 	* include/mkdeps.h (deps_add_module_target): Add flag for
    422 	whether a module is exported or not.
    423 	(fdeps_add_target): Add function.
    424 	(deps_write_p1689r5): Add function.
    425 	* init.cc (cpp_finish): Add new preprocessor parameter used for C++
    426 	module tracking.
    427 	* mkdeps.cc (mkdeps): Implement P1689R5 output.
    428 
    429 2023-09-06  Jakub Jelinek  <jakub (a] redhat.com>
    430 
    431 	PR c/102989
    432 	* expr.cc (cpp_classify_number): Diagnose wb literal suffixes
    433 	for -pedantic* before C2X or -Wc11-c2x-compat.
    434 
    435 2023-09-06  Jakub Jelinek  <jakub (a] redhat.com>
    436 
    437 	PR c/102989
    438 	* expr.cc (interpret_int_suffix): Handle wb and WB suffixes.
    439 	* include/cpplib.h (CPP_N_BITINT): Define.
    440 
    441 2023-08-07  Alan Modra  <amodra (a] gmail.com>
    442 
    443 	* configure: Regenerate.
    444 
    445 2023-07-19  Lewis Hyatt  <lhyatt (a] gmail.com>
    446 
    447 	PR preprocessor/103902
    448 	* lex.cc (identifier_diagnostics_on_lex): New function refactoring
    449 	some common code.
    450 	(lex_identifier_intern): Use the new function.
    451 	(lex_identifier): Don't run identifier diagnostics here, rather let
    452 	the call site do it when needed.
    453 	(_cpp_lex_direct): Adjust the call sites of lex_identifier ()
    454 	acccordingly.
    455 	(struct scan_id_result): New struct.
    456 	(scan_cur_identifier): New function.
    457 	(create_literal2): New function.
    458 	(lit_accum::create_literal2): New function.
    459 	(is_macro): Folded into new function...
    460 	(maybe_ignore_udl_macro_suffix): ...here.
    461 	(is_macro_not_literal_suffix): Folded likewise.
    462 	(lex_raw_string): Handle UTF-8 in UDL suffix via
    463 	scan_cur_identifier ().
    464 	(lex_string): Likewise.
    465 
    466 2023-07-06  Thomas Schwinge  <thomas (a] codesourcery.com>
    467 
    468 	* include/symtab.h (struct ht_identifier): Document different
    469 	rationale.
    470 
    471 2023-06-23  Marek Polacek  <polacek (a] redhat.com>
    472 
    473 	* include/cpplib.h (c_lang): Add CXX26 and GNUCXX26.
    474 	* init.cc (lang_defaults): Add rows for CXX26 and GNUCXX26.
    475 	(cpp_init_builtins): Set __cplusplus to 202400L for C++26.
    476 	Set __cplusplus to 202302L for C++23.
    477 
    478 2023-06-23  Ben Boeckel  <me (a] benboeckel.net>
    479 
    480 	* charset.cc: Allow `UCS_LIMIT` in UTF-8 strings.
    481 
    482 2023-06-22  David Malcolm  <dmalcolm (a] redhat.com>
    483 
    484 	* charset.cc (get_cppchar_property): New function template, based
    485 	on...
    486 	(cpp_wcwidth): ...this function.  Rework to use the above.
    487 	Include "combining-chars.inc".
    488 	(cpp_is_combining_char): New function
    489 	Include "printable-chars.inc".
    490 	(cpp_is_printable_char): New function
    491 	* combining-chars.inc: New file, generated by
    492 	contrib/unicode/gen-combining-chars.py.
    493 	* include/cpplib.h (cpp_is_combining_char): New function decl.
    494 	(cpp_is_printable_char): New function decl.
    495 	* printable-chars.inc: New file, generated by
    496 	contrib/unicode/gen-printable-chars.py.
    497 
    498 2023-06-20  Lewis Hyatt  <lhyatt (a] gmail.com>
    499 
    500 	PR c++/66290
    501 	* macro.cc (_cpp_create_definition): Add location argument.
    502 	* internal.h (_cpp_create_definition): Adjust prototype.
    503 	* directives.cc (do_define): Pass new location argument to
    504 	_cpp_create_definition.
    505 	(do_undef): Stop passing inferior location to cpp_warning_with_line;
    506 	the default from cpp_warning is better.
    507 	(cpp_pop_definition): Pass new location argument to
    508 	_cpp_create_definition.
    509 	* pch.cc (cpp_read_state): Likewise.
    510 
    511 2023-06-19  Ben Boeckel  <ben.boeckel (a] kitware.com>
    512 
    513 	* charset.cc: Reject encodings of codepoints above 0x10FFFF.
    514 	UTF-16 does not support such codepoints and therefore all
    515 	Unicode rejects such values.
    516 
    517 2023-06-15  Marek Polacek  <polacek (a] redhat.com>
    518 
    519 	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
    520 	(--enable-host-pie): New check.  Set PICFLAG after this check.
    521 	* configure: Regenerate.
    522 
    523 2023-06-15  Jakub Jelinek  <jakub (a] redhat.com>
    524 
    525 	PR preprocessor/80753
    526 	* files.cc (struct _cpp_file): Add deferred_error bitfield.
    527 	(_cpp_find_file): When finding a file in cache with deferred_error
    528 	set in _cpp_FFK_NORMAL mode, call open_file_failed and clear the flag.
    529 	Set deferred_error in _cpp_FFK_HAS_INCLUDE mode if open_file_failed
    530 	hasn't been called.
    531 
    532 2023-04-30  Jeff Law  <jlaw@ventanamicro>
    533 
    534 	Revert:
    535 	2023-04-30  Longjun Luo  <luolongjuna (a] gmail.com>
    536 
    537 	* init.cc (builtin_array): Do not always warn for a redefinition
    538 	of __LINE__.
    539 
    540 2023-04-30  Longjun Luo  <luolongjuna (a] gmail.com>
    541 
    542 	* init.cc (builtin_array): Do not always warn for a redefinition
    543 	of __LINE__.
    544 
    545 2023-03-25  David Malcolm  <dmalcolm (a] redhat.com>
    546 
    547 	PR analyzer/109098
    548 	* charset.cc (cpp_valid_utf8_p): New function.
    549 	* include/cpplib.h (cpp_valid_utf8_p): New prototype.
    550 
    551 2023-03-16  Jakub Jelinek  <jakub (a] redhat.com>
    552 
    553 	* makeucnid.cc (write_copyright): Update Unicode copyright years
    554 	up to 2022.
    555 	* makeuname2c.cc (write_copyright): Likewise.
    556 	* ucnid.h: Regenerated.
    557 	* uname2c.h: Regenerated.
    558 
    559 2023-03-13  Lewis Hyatt  <lhyatt (a] gmail.com>
    560 
    561 	PR preprocessor/67046
    562 	* directives.cc (_cpp_do__Pragma): Increment pfile->keep_tokens to
    563 	ensure the returned string token is valid.
    564 
    565 2023-03-13  Lewis Hyatt  <lhyatt (a] gmail.com>
    566 
    567 	* generated_cpp_wcwidth.h: Regenerated for Unicode 15.
    568 
    569 2022-12-07  Joseph Myers  <joseph (a] codesourcery.com>
    570 
    571 	* init.cc (lang_defaults): Enable va_opt for STDC2X.
    572 	* lex.cc (maybe_va_opt_error): Adjust diagnostic message for C.
    573 	* macro.cc (_cpp_arguments_ok): Update comment.
    574 
    575 2022-11-23  Marek Polacek  <polacek (a] redhat.com>
    576 
    577 	Revert:
    578 	2022-11-23  Marek Polacek  <polacek (a] redhat.com>
    579 
    580 	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
    581 	(--enable-host-pie): New check.  Set PICFLAG after this check.
    582 	* configure: Regenerate.
    583 
    584 2022-11-23  Marek Polacek  <polacek (a] redhat.com>
    585 
    586 	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
    587 	(--enable-host-pie): New check.  Set PICFLAG after this check.
    588 	* configure: Regenerate.
    589 
    590 2022-11-21  Lewis Hyatt  <lhyatt (a] gmail.com>
    591 
    592 	* directives.cc (do_pragma): Fix memory leak in token buffer.  Fix
    593 	unwanted paste between two tokens.
    594 
    595 2022-11-21  Torbjrn SVENSSON  <torbjorn.svensson (a] foss.st.com>
    596 
    597 	* files.cc: Ensure pattern matches before use.
    598 
    599 2022-11-21  Martin Liska  <mliska (a] suse.cz>
    600 
    601 	* config.in: Re-configure.
    602 
    603 2022-11-19  Bernhard Reutner-Fischer  <aldot (a] gcc.gnu.org>
    604 
    605 	PR preprocessor/107691
    606 	* configure.ac: Add valgrind header checks.
    607 	* configure: Regenerate.
    608 
    609 2022-11-18  Richard Purdie  <richard.purdie (a] linuxfoundation.org>
    610 
    611 	* macro.cc (_cpp_builtin_macro_text): Don't remap filenames within
    612 	directives.
    613 
    614 2022-11-05  Lewis Hyatt  <lhyatt (a] gmail.com>
    615 
    616 	PR preprocessor/55971
    617 	* lex.cc (get_fresh_line_impl): New function refactoring the code
    618 	from...
    619 	(_cpp_get_fresh_line): ...here.
    620 	(lex_raw_string): Use the new version of get_fresh_line_impl() to
    621 	support raw strings containing new lines when processing a directive.
    622 
    623 2022-11-04  Jakub Jelinek  <jakub (a] redhat.com>
    624 
    625 	* makeuname2c.cc (struct generated): Update from Unicode 15.0.0
    626 	table 4-8.
    627 	* ucnid.h: Regenerated for Unicode 15.0.0.
    628 	* uname2c.h: Likewise.
    629 
    630 2022-10-19  Lewis Hyatt  <lhyatt (a] gmail.com>
    631 
    632 	* include/cpplib.h (struct cpp_string): Use new "string_length" GTY.
    633 	* include/symtab.h (struct ht_identifier): Likewise.
    634 
    635 2022-10-14  Joseph Myers  <joseph (a] codesourcery.com>
    636 
    637 	* charset.cc (ucn_valid_in_identifier): Check xid_identifiers not
    638 	cplusplus to determine whether to use CXX23 and NXX23 flags.
    639 	* include/cpplib.h (struct cpp_options): Add xid_identifiers.
    640 	* init.cc (struct lang_flags, lang_defaults): Add xid_identifiers.
    641 	(cpp_set_lang): Set xid_identifiers.
    642 	* lex.cc (warn_about_normalization): Add parameter identifier.
    643 	Only pedwarn about non-NFC for identifiers, not pp-numbers.
    644 	(_cpp_lex_direct): Update calls to warn_about_normalization.
    645 
    646 2022-10-14  Jakub Jelinek  <jakub (a] redhat.com>
    647 
    648 	* include/cpplib.h (CPP_N_BFLOAT16): Define.
    649 	* expr.cc (interpret_float_suffix): Handle bf16 and BF16 suffixes for
    650 	C++.
    651 
    652 2022-09-28  Eugene Rozenfeld  <erozen (a] microsoft.com>
    653 
    654 	* include/line-map.h: Add discriminator to location_adhoc_data.
    655 	(get_combined_adhoc_loc): Add discriminator parameter.
    656 	(get_discriminator_from_adhoc_loc): Add external declaration.
    657 	(get_discriminator_from_loc): Add external declaration.
    658 	(COMBINE_LOCATION_DATA): Add discriminator parameter.
    659 	* lex.cc (get_location_for_byte_range_in_cur_line) Pass 0 discriminator
    660 	in a call to COMBINE_LOCATION_DATA.
    661 	(warn_about_normalization): Pass 0 discriminator in a call to
    662 	COMBINE_LOCATION_DATA.
    663 	(_cpp_lex_direct): Pass 0 discriminator in a call to
    664 	COMBINE_LOCATION_DATA.
    665 	* line-map.cc (location_adhoc_data_hash): Use discriminator compute
    666 	location_adhoc_data hash.
    667 	(location_adhoc_data_eq): Use discriminator when comparing
    668 	location_adhoc_data.
    669 	(can_be_stored_compactly_p): Check discriminator to determine
    670 	compact storage.
    671 	(get_combined_adhoc_loc): Add discriminator parameter.
    672 	(get_discriminator_from_adhoc_loc): New function to get the discriminator
    673 	from an ad-hoc location.
    674 	(get_discriminator_from_loc): New function to get the discriminator
    675 	from a location.
    676 
    677 2022-09-27  Jakub Jelinek  <jakub (a] redhat.com>
    678 
    679 	PR c++/106652
    680 	PR c++/85518
    681 	* expr.cc (interpret_float_suffix): Allow {f,F}{16,32,64,128} and
    682 	{f,F}{32,64,128}x suffixes for C++.
    683 
    684 2022-09-08  Lewis Hyatt  <lhyatt (a] gmail.com>
    685 
    686 	* line-map.cc (location_adhoc_data_update): Remove reliance on
    687 	undefined behavior.
    688 	(get_combined_adhoc_loc): Likewise.
    689 	(rebuild_location_adhoc_htab): Fix issue where the htab was not
    690 	properly updated.
    691 
    692 2022-09-07  Joseph Myers  <joseph (a] codesourcery.com>
    693 
    694 	* include/cpplib.h (struct cpp_options): Add true_false.
    695 	* expr.cc (eval_token): Check true_false not cplusplus to
    696 	determine whether to handle true and false keywords.
    697 	* init.cc (struct lang_flags): Add true_false.
    698 	(lang_defaults): Update.
    699 	(cpp_set_lang): Set true_false.
    700 
    701 2022-09-07  Jakub Jelinek  <jakub (a] redhat.com>
    702 
    703 	* include/cpplib.h (struct cpp_options): Add cpp_warn_unicode member.
    704 	(enum cpp_warning_reason): Add CPP_W_UNICODE.
    705 	* init.cc (cpp_create_reader): Initialize cpp_warn_unicode.
    706 	* charset.cc (_cpp_valid_ucn): In possible identifier contexts, don't
    707 	handle \u{ or \N{ specially in -std=c* modes except -std=c++2{3,b}.
    708 	In possible identifier contexts, don't emit an error and punt
    709 	if \N isn't followed by {, or if \N{} surrounds some lower case
    710 	letters or _.  In possible identifier contexts when not C++23, don't
    711 	emit an error but warning about unknown character names and treat as
    712 	separate tokens.  When treating as separate tokens \u{ or \N{, emit
    713 	warnings.
    714 
    715 2022-09-05  Joseph Myers  <joseph (a] codesourcery.com>
    716 
    717 	* init.cc (lang_defaults): Disable trigraphs for C2x.
    718 
    719 2022-09-02  David Malcolm  <dmalcolm (a] redhat.com>
    720 
    721 	PR c/90885
    722 	* include/cpplib.h (BOL): Move macro to 1 << 12 since it is
    723 	not used by C/C++'s unsigned char token flags.
    724 	(DECIMAL_INT): New, using 1 << 6, so that it is visible as
    725 	part of C/C++'s 8 bits of token flags.
    726 
    727 2022-09-01  Jakub Jelinek  <jakub (a] redhat.com>
    728 
    729 	PR c++/106655
    730 	* include/cpplib.h (struct cpp_options): Implement C++23
    731 	P2295R6 - Support for UTF-8 as a portable source file encoding.
    732 	Add cpp_warn_invalid_utf8 and cpp_input_charset_explicit fields.
    733 	(enum cpp_warning_reason): Add CPP_W_INVALID_UTF8 enumerator.
    734 	* init.cc (cpp_create_reader): Initialize cpp_warn_invalid_utf8
    735 	and cpp_input_charset_explicit.
    736 	* charset.cc (_cpp_valid_utf8): Adjust function comment.
    737 	* lex.cc (UCS_LIMIT): Define.
    738 	(utf8_continuation): New const variable.
    739 	(utf8_signifier): Move earlier in the file.
    740 	(_cpp_warn_invalid_utf8, _cpp_handle_multibyte_utf8): New functions.
    741 	(_cpp_skip_block_comment): Handle -Winvalid-utf8 warning.
    742 	(skip_line_comment): Likewise.
    743 	(lex_raw_string, lex_string): Likewise.
    744 	(_cpp_lex_direct): Likewise.
    745 
    746 2022-08-31  Jakub Jelinek  <jakub (a] redhat.com>
    747 
    748 	PR preprocessor/106778
    749 	* makeuname2c.cc (write_nodes): Reverse order of && operands in
    750 	assert.
    751 
    752 2022-08-26  Jakub Jelinek  <jakub (a] redhat.com>
    753 
    754 	PR c++/106647
    755 	* charset.cc (wide_str_to_charconst): Implement P2362R3 - Remove
    756 	non-encodable wide character literals and multicharacter.  For
    757 	C++23 use CPP_DL_ERROR instead of CPP_DL_WARNING for
    758 	"character constant too long for its type" diagnostics on CPP_WCHAR
    759 	literals.
    760 
    761 2022-08-26  Jakub Jelinek  <jakub (a] redhat.com>
    762 
    763 	PR c++/106648
    764 	* charset.cc: Implement C++23 P2071R2 - Named universal character
    765 	escapes.  Include uname2c.h.
    766 	(hangul_syllables, hangul_count): New variables.
    767 	(struct uname2c_data): New type.
    768 	(_cpp_uname2c, _cpp_uname2c_uax44_lm2): New functions.
    769 	(_cpp_valid_ucn): Use them.  Handle named universal character escapes.
    770 	(convert_ucn): Adjust comment.
    771 	(convert_escape): Call convert_ucn even for \N.
    772 	(_cpp_interpret_identifier): Handle named universal character escapes.
    773 	* lex.cc (get_bidi_ucn): Fix up function comment formatting.
    774 	(get_bidi_named): New function.
    775 	(forms_identifier_p, lex_string): Handle named universal character
    776 	escapes.
    777 	* makeuname2c.cc: New file.  Small parts copied from makeucnid.cc.
    778 	* uname2c.h: New generated file.
    779 
    780 2022-08-24  Jakub Jelinek  <jakub (a] redhat.com>
    781 
    782 	PR c++/106646
    783 	* init.cc: Implement C++23 P2437R1 - Support for #warning.
    784 	(lang_defaults): Set warning_directive for GNUCXX23 and CXX23.
    785 	* directives.cc (directive_diagnostics): Use different wording of
    786 	#warning pedwarn for C++.
    787 
    788 2022-08-20  Jakub Jelinek  <jakub (a] redhat.com>
    789 
    790 	PR c++/106645
    791 	* include/cpplib.h (struct cpp_options): Implement
    792 	P2290R3 - Delimited escape sequences.  Add delimite_escape_seqs
    793 	member.
    794 	* init.cc (struct lang_flags): Likewise.
    795 	(lang_defaults): Add delim column.
    796 	(cpp_set_lang): Copy over delimite_escape_seqs.
    797 	* charset.cc (extend_char_range): New function.
    798 	(_cpp_valid_ucn): Use it.  Handle delimited escape sequences.
    799 	(convert_hex): Likewise.
    800 	(convert_oct): Likewise.
    801 	(convert_ucn): Use extend_char_range.
    802 	(convert_escape): Call convert_oct even for \o.
    803 	(_cpp_interpret_identifier): Handle delimited escape sequences.
    804 	* lex.cc (get_bidi_ucn_1): Likewise.  Add end argument, fill it in.
    805 	(get_bidi_ucn): Adjust get_bidi_ucn_1 caller.  Use end argument to
    806 	compute num_bytes.
    807 
    808 2022-08-18  Joseph Myers  <joseph (a] codesourcery.com>
    809 
    810 	* include/cpplib.h (struct cpp_options): Add warning_directive.
    811 	* init.cc (struct lang_flags, lang_defaults): Add
    812 	warning_directive.
    813 	* directives.cc (DIRECTIVE_TABLE): Mark #warning as STDC2X not
    814 	EXTENSION.
    815 	(directive_diagnostics): Diagnose #warning with -Wc11-c2x-compat,
    816 	or with -pedantic for a standard not supporting #warning.
    817 
    818 2022-08-16  Tom Honermann  <tom (a] honermann.net>
    819 
    820 	PR c++/106423
    821 	* include/cpplib.h (cpp_warning_reason): Add CPP_W_CXX20_COMPAT.
    822 	* init.cc (cpp_create_reader): Add cpp_warn_cxx20_compat.
    823 
    824 2022-08-08  Tom Honermann  <tom (a] honermann.net>
    825 
    826 	PR preprocessor/106426
    827 	* charset.cc (narrow_str_to_charconst): Set signedness of CPP_UTF8CHAR
    828 	literals based on unsigned_utf8char.
    829 	* include/cpplib.h (cpp_options): Add unsigned_utf8char.
    830 	* init.cc (cpp_create_reader): Initialize unsigned_utf8char.
    831 
    832 2022-07-15  Jonathan Wakely  <jwakely (a] redhat.com>
    833 
    834 	* include/line-map.h (label_text::take_or_copy): Remove.
    835 	(label_text::moved_from): Rename to release.
    836 	(label_text::m_buffer, label_text::m_owned): Make private.
    837 	(label_text::get, label_text::is_owned): New accessors.
    838 
    839 2022-07-13  Marek Polacek  <polacek (a] redhat.com>
    840 
    841 	PR preprocessor/106272
    842 	* include/line-map.h (class label_text): Don't std::move in a return
    843 	statement.
    844 
    845 2022-07-10  Lewis Hyatt  <lhyatt (a] gmail.com>
    846 
    847 	PR preprocessor/97498
    848 	* directives.cc (destringize_and_run): Override the location of
    849 	the CPP_PRAGMA token from a _Pragma directive to the location of
    850 	the expansion point, as is done for the tokens lexed from it.
    851 
    852 2022-07-07  David Malcolm  <dmalcolm (a] redhat.com>
    853 
    854 	* include/line-map.h: Include <utility>.
    855 	(class label_text): Delete maybe_free method in favor of a
    856 	destructor.  Add move ctor and assignment operator.  Add deletion
    857 	of the copy ctor and copy-assignment operator.  Rename field
    858 	m_caller_owned to m_owned.  Add std::move where necessary; add
    859 	moved_from member function.
    860 
    861 2022-06-28  Lewis Hyatt  <lhyatt (a] gmail.com>
    862 
    863 	* ucnid.h: Regenerated for Unicode 14.0.
    864 
    865 2022-06-26  Lewis Hyatt  <lhyatt (a] gmail.com>
    866 
    867 	* generated_cpp_wcwidth.h: Generated from updated Unicode data files.
    868 
    869 2022-05-29  Jakub Jelinek  <jakub (a] redhat.com>
    870 
    871 	PR preprocessor/105732
    872 	* expr.cc (_cpp_parse_expr): Handle CPP_PADDING by just another
    873 	token.
    874 
    875 2022-05-20  David Malcolm  <dmalcolm (a] redhat.com>
    876 
    877 	* lex.cc: Replace uses of "FINAL" and "OVERRIDE" with "final" and
    878 	"override".
    879 
    880 2022-02-11  Joseph Myers  <joseph (a] codesourcery.com>
    881 
    882 	* Makefile.in (po/$(PACKAGE).pot): Also handle cpp_warning_at,
    883 	cpp_pedwarning_at and cpp_error_at.
    884 
    885 2022-02-01  Jakub Jelinek  <jakub (a] redhat.com>
    886 
    887 	PR preprocessor/104147
    888 	* macro.cc (funlike_invocation_p): For padding prefer a token
    889 	with val.source non-NULL especially if it has PREV_WHITE set
    890 	on val.source->flags.  Add gcc_assert that CPP_PADDING tokens
    891 	don't have PREV_WHITE set in flags.
    892 
    893 2022-02-01  Jakub Jelinek  <jakub (a] redhat.com>
    894 
    895 	* directives.cc (destringize_and_run): Push &pfile->avoid_paste
    896 	instead of a copy of pfile->directive_result for the CPP_PADDING
    897 	case.
    898 
    899 2022-01-24  Marek Polacek  <polacek (a] redhat.com>
    900 
    901 	PR preprocessor/104030
    902 	* include/cpplib.h (enum cpp_bidirectional_level): Add
    903 	bidirectional_ucn.  Set values explicitly.
    904 	* internal.h (cpp_reader): Adjust warn_bidi_p.
    905 	* lex.cc (maybe_warn_bidi_on_close): Don't warn about UCNs
    906 	unless UCN checking is on.
    907 	(maybe_warn_bidi_on_char): Likewise.
    908 
    909 2022-01-18  Richard Biener  <rguenther (a] suse.de>
    910 
    911 	* include/line-map.h (class line_maps): Re-arrange fields
    912 	to minimize padding.
    913 	(class rich_location): Likewise.
    914 	* line-map.cc (rich_location::rich_location): Adjust.
    915 
    916 2022-01-17  Martin Liska  <mliska (a] suse.cz>
    917 
    918 	* Makefile.in: Rename .c names to .cc.
    919 
    920 2022-01-17  Martin Liska  <mliska (a] suse.cz>
    921 
    922 	* Makefile.in: Rename .c names to .cc.
    923 	* charset.cc (convert_escape): Likewise.
    924 	* directives.cc (directive_diagnostics): Likewise.
    925 	(_cpp_handle_directive): Likewise.
    926 	(lex_macro_node): Likewise.
    927 	* include/cpplib.h (struct _cpp_file): Likewise.
    928 	(PURE_ZERO): Likewise.
    929 	(cpp_defined): Likewise.
    930 	(cpp_error_at): Likewise.
    931 	(cpp_forall_identifiers): Likewise.
    932 	(cpp_compare_macros): Likewise.
    933 	(cpp_get_converted_source): Likewise.
    934 	(cpp_read_state): Likewise.
    935 	(cpp_directive_only_process): Likewise.
    936 	(struct cpp_decoded_char): Likewise.
    937 	* include/line-map.h (enum lc_reason): Likewise.
    938 	(enum location_aspect): Likewise.
    939 	* include/mkdeps.h: Likewise.
    940 	* init.cc (cpp_destroy): Likewise.
    941 	(cpp_finish): Likewise.
    942 	* internal.h (struct cpp_reader): Likewise.
    943 	(_cpp_defined_macro_p): Likewise.
    944 	(_cpp_backup_tokens_direct): Likewise.
    945 	(_cpp_destroy_hashtable): Likewise.
    946 	(_cpp_has_header): Likewise.
    947 	(_cpp_expand_op_stack): Likewise.
    948 	(_cpp_commit_buff): Likewise.
    949 	(_cpp_restore_special_builtin): Likewise.
    950 	(_cpp_bracket_include): Likewise.
    951 	(_cpp_replacement_text_len): Likewise.
    952 	(ufputs): Likewise.
    953 	* line-map.cc (linemap_macro_loc_to_exp_point): Likewise.
    954 	(linemap_check_files_exited): Likewise.
    955 	(line_map_new_raw): Likewise.
    956 	* traditional.cc (enum ls): Likewise.
    957 
    958 2022-01-17  Martin Liska  <mliska (a] suse.cz>
    959 
    960 	* charset.c: Moved to...
    961 	* charset.cc: ...here.
    962 	* directives.c: Moved to...
    963 	* directives.cc: ...here.
    964 	* errors.c: Moved to...
    965 	* errors.cc: ...here.
    966 	* expr.c: Moved to...
    967 	* expr.cc: ...here.
    968 	* files.c: Moved to...
    969 	* files.cc: ...here.
    970 	* identifiers.c: Moved to...
    971 	* identifiers.cc: ...here.
    972 	* init.c: Moved to...
    973 	* init.cc: ...here.
    974 	* lex.c: Moved to...
    975 	* lex.cc: ...here.
    976 	* line-map.c: Moved to...
    977 	* line-map.cc: ...here.
    978 	* macro.c: Moved to...
    979 	* macro.cc: ...here.
    980 	* makeucnid.c: Moved to...
    981 	* makeucnid.cc: ...here.
    982 	* mkdeps.c: Moved to...
    983 	* mkdeps.cc: ...here.
    984 	* pch.c: Moved to...
    985 	* pch.cc: ...here.
    986 	* symtab.c: Moved to...
    987 	* symtab.cc: ...here.
    988 	* traditional.c: Moved to...
    989 	* traditional.cc: ...here.
    990 
    991 2022-01-15  Martin Sebor  <msebor (a] redhat.com>
    992 
    993 	* files.c (_cpp_find_file): Substitute a valid pointer for
    994 	an invalid one to avoid -Wuse-after-free.
    995 
    996 2022-01-12  Clment Chigot  <clement.chigot (a] atos.net>
    997 
    998 	* configure.ac: Check sizeof ino_t and dev_t.
    999 	* config.in: Regenerate.
   1000 	* configure: Regenerate.
   1001 	* include/cpplib.h (INO_T_CPP): Change for AIX.
   1002 	(DEV_T_CPP): New macro.
   1003 	(struct cpp_dir): Use it.
   1004 
   1005 2021-12-30  Jakub Jelinek  <jakub (a] redhat.com>
   1006 
   1007 	PR preprocessor/89971
   1008 	* macro.c (replace_args): For ##__VA_OPT__, if __VA_OPT__ expands
   1009 	to no tokens at all, drop PASTE_LEFT flag from the previous token.
   1010 
   1011 2021-12-04  Jakub Jelinek  <jakub (a] redhat.com>
   1012 
   1013 	PR preprocessor/102432
   1014 	* lex.c (_cpp_lex_direct): If buffer->need_line while
   1015 	pfile->state.in_deferred_pragma, return CPP_PRAGMA_EOL token instead
   1016 	of assertion failure.
   1017 
   1018 2021-12-03  Jakub Jelinek  <jakub (a] redhat.com>
   1019 
   1020 	PR pch/71934
   1021 	* include/line-map.h (class line_maps): Add GTY((callback)) to
   1022 	reallocator and round_alloc_size members.
   1023 
   1024 2021-12-01  Jakub Jelinek  <jakub (a] redhat.com>
   1025 
   1026 	PR c++/100977
   1027 	* init.c (struct lang_flags): Remove cxx23_identifiers.
   1028 	(lang_defaults): Remove cxx23_identifiers initializers.
   1029 	(cpp_set_lang): Don't copy cxx23_identifiers.
   1030 	* include/cpplib.h (struct cpp_options): Adjust comment about
   1031 	c11_identifiers.  Remove cxx23_identifiers field.
   1032 	* lex.c (warn_about_normalization): Use cplusplus instead of
   1033 	cxx23_identifiers.
   1034 	* charset.c (ucn_valid_in_identifier): Likewise.
   1035 
   1036 2021-12-01  Jakub Jelinek  <jakub (a] redhat.com>
   1037 
   1038 	PR preprocessor/103415
   1039 	* macro.c (stringify_arg): Remove va_opt argument and va_opt handling.
   1040 	(paste_tokens): On successful paste or in PREV_WHITE and
   1041 	PREV_FALLTHROUGH flags from the *plhs token to the new token.
   1042 	(replace_args): Adjust stringify_arg callers.  For #__VA_OPT__,
   1043 	perform token pasting in a separate loop before stringify_arg call.
   1044 
   1045 2021-11-30  Richard Biener  <rguenther (a] suse.de>
   1046 
   1047 	* charset.c (convert_escape): Remove unreachable break.
   1048 
   1049 2021-11-30  Jakub Jelinek  <jakub (a] redhat.com>
   1050 
   1051 	PR c++/100977
   1052 	* init.c (lang_defaults): Enable cxx23_identifiers for
   1053 	-std={gnu,c}++{11,14,17,20} too.
   1054 
   1055 2021-11-29  Eric Gallager  <egallager (a] gcc.gnu.org>
   1056 
   1057 	PR other/103021
   1058 	* Makefile.in: Use ETAGS variable in TAGS target.
   1059 	* configure: Regenerate.
   1060 	* configure.ac: Allow ETAGS variable to be overridden.
   1061 
   1062 2021-11-23  Christophe Lyon  <christophe.lyon (a] foss.st.com>
   1063 
   1064 	PR preprocessor/103355
   1065 	* system.h (ATTR_LIKELY): Fix definition.
   1066 
   1067 2021-11-23  Marek Polacek  <polacek (a] redhat.com>
   1068 	    Jonathan Wakely  <jwakely (a] redhat.com>
   1069 
   1070 	PR preprocessor/103355
   1071 	* lex.c: Use ATTR_LIKELY instead of [[likely]].
   1072 	* system.h (ATTR_LIKELY): Define.
   1073 
   1074 2021-11-22  Jakub Jelinek  <jakub (a] redhat.com>
   1075 	    Tobias Burnus  <tobias (a] codesourcery.com>
   1076 
   1077 	PR preprocessor/103165
   1078 	* internal.h (struct lexer_state): Add ignore__Pragma field.
   1079 	* macro.c (builtin_macro): Don't interpret _Pragma if
   1080 	pfile->state.ignore__Pragma.
   1081 	(expand_arg): Temporarily set pfile->state.ignore__Pragma to 1.
   1082 
   1083 2021-11-17  David Malcolm  <dmalcolm (a] redhat.com>
   1084 
   1085 	PR preprocessor/103026
   1086 	* lex.c (struct bidi::context): New.
   1087 	(bidi::vec): Convert to a vec of context rather than unsigned
   1088 	char.
   1089 	(bidi::ctx_at): Rename to...
   1090 	(bidi::pop_kind_at): ...this and reimplement for above change.
   1091 	(bidi::current_ctx): Update for change to vec.
   1092 	(bidi::current_ctx_ucn_p): Likewise.
   1093 	(bidi::current_ctx_loc): New.
   1094 	(bidi::on_char): Update for usage of context struct.  Add "loc"
   1095 	param and pass it when pushing contexts.
   1096 	(get_location_for_byte_range_in_cur_line): New.
   1097 	(get_bidi_utf8): Rename to...
   1098 	(get_bidi_utf8_1): ...this, reintroducing...
   1099 	(get_bidi_utf8): ...as a wrapper, setting *OUT when the result is
   1100 	not NONE.
   1101 	(get_bidi_ucn): Rename to...
   1102 	(get_bidi_ucn_1): ...this, reintroducing...
   1103 	(get_bidi_ucn): ...as a wrapper, setting *OUT when the result is
   1104 	not NONE.
   1105 	(class unpaired_bidi_rich_location): New.
   1106 	(maybe_warn_bidi_on_close): Use unpaired_bidi_rich_location when
   1107 	reporting on unpaired bidi chars.  Split into singular vs plural
   1108 	spellings.
   1109 	(maybe_warn_bidi_on_char): Pass in a location_t rather than a
   1110 	const uchar * and use it when emitting warnings, and when calling
   1111 	bidi::on_char.
   1112 	(_cpp_skip_block_comment): Capture location when kind is not NONE
   1113 	and pass it to maybe_warn_bidi_on_char.
   1114 	(skip_line_comment): Likewise.
   1115 	(forms_identifier_p): Likewise.
   1116 	(lex_raw_string): Likewise.
   1117 	(lex_string): Likewise.
   1118 
   1119 2021-11-17  David Malcolm  <dmalcolm (a] redhat.com>
   1120 
   1121 	PR preprocessor/103026
   1122 	* lex.c (maybe_warn_bidi_on_close): Use a rich_location
   1123 	and call set_escape_on_output (true) on it.
   1124 	(maybe_warn_bidi_on_char): Likewise.
   1125 
   1126 2021-11-17  Jakub Jelinek  <jakub (a] redhat.com>
   1127 
   1128 	PR preprocessor/103130
   1129 	* lex.c (cpp_directive_only_process): Treat even \*/ as end of block
   1130 	comment.
   1131 
   1132 2021-11-17  Marek Polacek  <polacek (a] redhat.com>
   1133 
   1134 	PR preprocessor/103026
   1135 	* include/cpplib.h (enum cpp_bidirectional_level): New.
   1136 	(struct cpp_options): Add cpp_warn_bidirectional.
   1137 	(enum cpp_warning_reason): Add CPP_W_BIDIRECTIONAL.
   1138 	* internal.h (struct cpp_reader): Add warn_bidi_p member
   1139 	function.
   1140 	* init.c (cpp_create_reader): Set cpp_warn_bidirectional.
   1141 	* lex.c (bidi): New namespace.
   1142 	(get_bidi_utf8): New function.
   1143 	(get_bidi_ucn): Likewise.
   1144 	(maybe_warn_bidi_on_close): Likewise.
   1145 	(maybe_warn_bidi_on_char): Likewise.
   1146 	(_cpp_skip_block_comment): Implement warning about bidirectional
   1147 	control characters.
   1148 	(skip_line_comment): Likewise.
   1149 	(forms_identifier_p): Likewise.
   1150 	(lex_identifier): Likewise.
   1151 	(lex_string): Likewise.
   1152 	(lex_raw_string): Likewise.
   1153 
   1154 2021-11-01  David Malcolm  <dmalcolm (a] redhat.com>
   1155 
   1156 	* charset.c (convert_escape): Use encoding_rich_location when
   1157 	complaining about nonprintable unknown escape sequences.
   1158 	(cpp_display_width_computation::::cpp_display_width_computation):
   1159 	Pass in policy rather than tabstop.
   1160 	(cpp_display_width_computation::process_next_codepoint): Add "out"
   1161 	param and populate *out if non-NULL.
   1162 	(cpp_display_width_computation::advance_display_cols): Pass NULL
   1163 	to process_next_codepoint.
   1164 	(cpp_byte_column_to_display_column): Pass in policy rather than
   1165 	tabstop.  Pass NULL to process_next_codepoint.
   1166 	(cpp_display_column_to_byte_column): Pass in policy rather than
   1167 	tabstop.
   1168 	* errors.c (cpp_diagnostic_get_current_location): New function,
   1169 	splitting out the logic from...
   1170 	(cpp_diagnostic): ...here.
   1171 	(cpp_warning_at): New function.
   1172 	(cpp_pedwarning_at): New function.
   1173 	* include/cpplib.h (cpp_warning_at): New decl for rich_location.
   1174 	(cpp_pedwarning_at): Likewise.
   1175 	(struct cpp_decoded_char): New.
   1176 	(struct cpp_char_column_policy): New.
   1177 	(cpp_display_width_computation::cpp_display_width_computation):
   1178 	Replace "tabstop" param with "policy".
   1179 	(cpp_display_width_computation::process_next_codepoint): Add "out"
   1180 	param.
   1181 	(cpp_display_width_computation::m_tabstop): Replace with...
   1182 	(cpp_display_width_computation::m_policy): ...this.
   1183 	(cpp_byte_column_to_display_column): Replace "tabstop" param with
   1184 	"policy".
   1185 	(cpp_display_width): Likewise.
   1186 	(cpp_display_column_to_byte_column): Likewise.
   1187 	* include/line-map.h (rich_location::escape_on_output_p): New.
   1188 	(rich_location::set_escape_on_output): New.
   1189 	(rich_location::m_escape_on_output): New.
   1190 	* internal.h (cpp_diagnostic_get_current_location): New decl.
   1191 	(class encoding_rich_location): New.
   1192 	* lex.c (skip_whitespace): Use encoding_rich_location when
   1193 	complaining about null characters.
   1194 	(warn_about_normalization): Generate a source range when
   1195 	complaining about improperly normalized tokens, rather than just a
   1196 	point, and use encoding_rich_location so that the source code
   1197 	is escaped on printing.
   1198 	* line-map.c (rich_location::rich_location): Initialize
   1199 	m_escape_on_output.
   1200 
   1201 2021-10-29  Tobias Burnus  <tobias (a] codesourcery.com>
   1202 
   1203 	PR c++/102409
   1204 	* directives.c (destringize_and_run): Add PRAGMA_OP to the
   1205 	CPP_PRAGMA token's flags to mark is as coming from _Pragma.
   1206 	* include/cpplib.h (PRAGMA_OP): #define, to be used with token flags.
   1207 	* macro.c (collect_args): Only handle CPP_PRAGMA special if PRAGMA_OP
   1208 	is set.
   1209 
   1210 2021-10-22  Eric Gallager  <egallager (a] gcc.gnu.org>
   1211 
   1212 	PR other/102663
   1213 	* Makefile.in: Add dummy install-dvi target.
   1214 
   1215 2021-10-18  Martin Liska  <mliska (a] suse.cz>
   1216 
   1217 	* charset.c (convert_oct): Remove unused but set variable.
   1218 
   1219 2021-10-06  Jakub Jelinek  <jakub (a] redhat.com>
   1220 
   1221 	* init.c (lang_defaults): Implement P2334R1, enable elifdef for
   1222 	-std=c++23 and -std=gnu++23.
   1223 	* directives.c (_cpp_handle_directive): Support elifdef/elifndef if
   1224 	either CPP_OPTION (pfile, elifdef) or !CPP_OPTION (pfile, std).
   1225 	(do_elif): For older non-std modes if pedantic pedwarn about
   1226 	#elifdef/#elifndef directives that change behavior.
   1227 
   1228 2021-09-01  Jakub Jelinek  <jakub (a] redhat.com>
   1229 
   1230 	PR c++/100977
   1231 	* include/cpplib.h (struct cpp_options): Add cxx23_identifiers.
   1232 	* charset.c (CXX23, NXX23): New enumerators.
   1233 	(CID, NFC, NKC, CTX): Renumber.
   1234 	(ucn_valid_in_identifier): Implement P1949R7 - use CXX23 and
   1235 	NXX23 flags for cxx23_identifiers.  For start character in
   1236 	non-pedantic mode, allow characters that are allowed as start
   1237 	characters in any of the supported language modes, rather than
   1238 	disallowing characters allowed only as non-start characters in
   1239 	current mode but for characters from other language modes allowing
   1240 	them even if they are never allowed at start.
   1241 	* init.c (struct lang_flags): Add cxx23_identifiers.
   1242 	(lang_defaults): Add cxx23_identifiers column.
   1243 	(cpp_set_lang): Initialize CPP_OPTION (pfile, cxx23_identifiers).
   1244 	* lex.c (warn_about_normalization): If cxx23_identifiers, use
   1245 	cpp_pedwarning_with_line instead of cpp_warning_with_line for
   1246 	"is not in NFC" diagnostics.
   1247 	* makeucnid.c: Adjust usage comment.
   1248 	(CXX23, NXX23): New enumerators.
   1249 	(all_languages): Add CXX23.
   1250 	(not_NFC, not_NFKC, maybe_not_NFC): Renumber.
   1251 	(read_derivedcore): New function.
   1252 	(write_table): Print also CXX23 and NXX23 columns.
   1253 	(main): Require 5 arguments instead of 4, call read_derivedcore.
   1254 	* ucnid.h: Regenerated using Unicode 13.0.0 files.
   1255 
   1256 2021-09-01  Jason Merrill  <jason (a] redhat.com>
   1257 
   1258 	* macro.c (replace_args): When __VA_OPT__ is on the LHS of ##,
   1259 	remove trailing avoid_paste tokens.
   1260 
   1261 2021-09-01  Jakub Jelinek  <jakub (a] redhat.com>
   1262 
   1263 	PR preprocessor/101488
   1264 	* macro.c (replace_args): Fix up handling of CPP_PADDING tokens at the
   1265 	start or end of __VA_OPT__ arguments when preceeded or followed by ##.
   1266 
   1267 2021-08-31  Martin Sebor  <msebor (a] redhat.com>
   1268 
   1269 	* include/line-map.h (class rich_location): Disable copying and
   1270 	assignment.
   1271 
   1272 2021-08-25  Lewis Hyatt  <lhyatt (a] gmail.com>
   1273 
   1274 	PR other/93067
   1275 	* charset.c (init_iconv_desc): Adapt to permit PFILE argument to
   1276 	be NULL.
   1277 	(_cpp_convert_input): Likewise. Also move UTF-8 BOM logic to...
   1278 	(cpp_check_utf8_bom): ...here.  New function.
   1279 	(cpp_input_conversion_is_trivial): New function.
   1280 	* files.c (read_file_guts): Allow PFILE argument to be NULL.  Add
   1281 	INPUT_CHARSET argument as an alternate source of this information.
   1282 	(read_file): Pass the new argument to read_file_guts.
   1283 	(cpp_get_converted_source): New function.
   1284 	* include/cpplib.h (struct cpp_converted_source): Declare.
   1285 	(cpp_get_converted_source): Declare.
   1286 	(cpp_input_conversion_is_trivial): Declare.
   1287 	(cpp_check_utf8_bom): Declare.
   1288 
   1289 2021-08-17  Jakub Jelinek  <jakub (a] redhat.com>
   1290 
   1291 	* macro.c (vaopt_state): Add m_stringify member.
   1292 	(vaopt_state::vaopt_state): Initialize it.
   1293 	(vaopt_state::update): Overwrite it.
   1294 	(vaopt_state::stringify): New method.
   1295 	(stringify_arg): Replace arg argument with first, count arguments
   1296 	and add va_opt argument.  Use first instead of arg->first and
   1297 	count instead of arg->count, for va_opt add paste_tokens handling.
   1298 	(paste_tokens): Fix up len calculation.  Don't spell rhs twice,
   1299 	instead use %.*s to supply lhs and rhs spelling lengths.  Don't call
   1300 	_cpp_backup_tokens here.
   1301 	(paste_all_tokens): Call it here instead.
   1302 	(replace_args): Adjust stringify_arg caller.  For vaopt_state::END
   1303 	if stringify is true handle __VA_OPT__ stringification.
   1304 	(create_iso_definition): Handle # __VA_OPT__ similarly to # macro_arg.
   1305 
   1306 2021-08-12  Jakub Jelinek  <jakub (a] redhat.com>
   1307 
   1308 	PR preprocessor/101638
   1309 	* macro.c (cpp_sys_macro_p): Return true instead of
   1310 	crashing on builtin macros.
   1311 
   1312 2021-08-05  Jakub Jelinek  <jakub (a] redhat.com>
   1313 
   1314 	PR c++/100977
   1315 	* ucnid.h: Regenerated using Unicode 13.0.0 files.
   1316 
   1317 2021-08-05  Jakub Jelinek  <jakub (a] redhat.com>
   1318 
   1319 	PR c++/100977
   1320 	* makeucnid.c (write_table): Fix computation of last_combine.
   1321 	* ucnid.h: Regenerated using Unicode 6.3.0 files.
   1322 
   1323 2021-06-16  Jason Merrill  <jason (a] redhat.com>
   1324 
   1325 	PR c++/100796
   1326 	PR preprocessor/96391
   1327 	* line-map.c (linemap_compare_locations): Only use comparison with
   1328 	LINE_MAP_MAX_LOCATION_WITH_COLS to avoid abort.
   1329 
   1330 2021-05-20  Christophe Lyon  <christophe.lyon (a] linaro.org>
   1331 	    Torbjrn Svensson  <torbjorn.svensson (a] st.com>
   1332 
   1333 	PR c/42579
   1334 	* include/cpplib.h (cpp_builtin_type): Add BT_FILE_NAME entry.
   1335 	* init.c (builtin_array): Likewise.
   1336 	* macro.c (_cpp_builtin_macro_text): Add support for BT_FILE_NAME.
   1337 
   1338 2021-05-20  Jakub Jelinek  <jakub (a] redhat.com>
   1339 
   1340 	PR preprocessor/100646
   1341 	* lex.c (cpp_directive_only_process): Treat end of file as termination
   1342 	for !is_block comments.
   1343 
   1344 2021-05-12  Jakub Jelinek  <jakub (a] redhat.com>
   1345 
   1346 	PR preprocessor/100392
   1347 	* lex.c (cpp_directive_only_process): If buffer doesn't end with '\n',
   1348 	add buffer->rlimit[0] character to the printed range and
   1349 	CPP_INCREMENT_LINE and increment line_count.
   1350 
   1351 2021-05-11  Joseph Myers  <joseph (a] codesourcery.com>
   1352 
   1353 	* include/cpplib.h (struct cpp_options): Add elifdef.
   1354 	* init.c (struct lang_flags): Add elifdef.
   1355 	(lang_defaults): Update to include elifdef initializers.
   1356 	(cpp_set_lang): Set elifdef for pfile based on language.
   1357 	* directives.c (STDC2X, ELIFDEF): New macros.
   1358 	(EXTENSION): Increase value to 3.
   1359 	(DIRECTIVE_TABLE): Add #elifdef and #elifndef.
   1360 	(_cpp_handle_directive): Do not treat ELIFDEF directives as
   1361 	directives for language versions without the #elifdef feature.
   1362 	(do_elif): Handle #elifdef and #elifndef.
   1363 	(do_elifdef, do_elifndef): New functions.
   1364 
   1365 2021-05-11  Joseph Myers  <joseph (a] codesourcery.com>
   1366 
   1367 	* lex.c (cpp_avoid_paste): Do not allow pasting CPP_NUMBER with
   1368 	CPP_CHAR.
   1369 
   1370 2021-05-11  Joseph Myers  <joseph (a] codesourcery.com>
   1371 
   1372 	* init.c (lang_defaults): Enable digit separators for GNUC2X and
   1373 	STDC2X.
   1374 
   1375 2021-05-07  Jakub Jelinek  <jakub (a] redhat.com>
   1376 
   1377 	PR c/100450
   1378 	* lex.c (cpp_avoid_paste): Handle token1 CPP_PRAGMA like CPP_NAME.
   1379 
   1380 2021-05-06  Joseph Myers  <joseph (a] codesourcery.com>
   1381 
   1382 	PR c++/83873
   1383 	PR preprocessor/97604
   1384 	* lex.c (lex_number): Reject adjacent digit separators here.  Do
   1385 	not allow digit separators before '.' or an exponent with sign.
   1386 	* expr.c (cpp_classify_number): Do not check for adjacent digit
   1387 	separators here.
   1388 
   1389 2021-05-03  H.J. Lu  <hjl.tools (a] gmail.com>
   1390 
   1391 	PR bootstrap/99703
   1392 	* configure: Regenerated.
   1393 
   1394 2021-04-29  Joseph Myers  <joseph (a] codesourcery.com>
   1395 
   1396 	PR preprocessor/82359
   1397 	* directives.c (strtolinenum): Handle digit separators.
   1398 
   1399 2021-04-19  Richard Biener  <rguenther (a] suse.de>
   1400 
   1401 	PR preprocessor/100142
   1402 	* line-map.c (linemap_position_for_loc_and_offset): Revert
   1403 	unintended s/column_offset/column/ change.
   1404 
   1405 2021-04-13  Nathan Sidwell  <nathan (a] acm.org>
   1406 
   1407 	PR preprocessor/99446
   1408 	* line-map.c (line-map.c): Do not advance to linemaps for
   1409 	different files.
   1410 
   1411 2021-04-13  Eric Botcazou  <ebotcazou (a] adacore.com>
   1412 
   1413 	* include/line-map.h (IS_MACRO_LOC): Delete.
   1414 	* line-map.c (linemap_location_from_macro_expansion_p): Test
   1415 	LINEMAPS_MACRO_LOWEST_LOCATION of the linemap.
   1416 
   1417 2021-03-02  David Malcolm  <dmalcolm (a] redhat.com>
   1418 
   1419 	PR c/99323
   1420 	* line-map.c (rich_location::maybe_add_fixit): Reject fix-it hints
   1421 	at column 0.
   1422 
   1423 2021-02-24  Nathan Sidwell  <nathan (a] acm.org>
   1424 
   1425 	PR c++/98718
   1426 	* include/line-map.h
   1427 	* line-map.c
   1428 
   1429 2021-02-24  Nathan Sidwell  <nathan (a] acm.org>
   1430 
   1431 	PR c++/99072
   1432 	* init.c (read_original_filename): Expunge all evidence of the
   1433 	original filename.
   1434 
   1435 2021-02-18  Nathan Sidwell  <nathan (a] acm.org>
   1436 
   1437 	PR c++/99023
   1438 	* include/cpplib.h (cpp_find_header_unit): Rename to ...
   1439 	(cpp_probe_header_unit): ... this.
   1440 	* internal.h (_cp_find_header_unit): Declare.
   1441 	* files.c (cpp_find_header_unit): Break apart to ..
   1442 	(test_header_unit): ... this, and ...
   1443 	(_cpp_find_header_unit): ... and, or and ...
   1444 	(cpp_probe_header_unit): ... this.
   1445 	* macro.c (cpp_get_token_1): Call _cpp_find_header_unit.
   1446 
   1447 2021-02-16  Nathan Sidwell  <nathan (a] acm.org>
   1448 
   1449 	* files.c (_cpp_stack_file): Make buffers end in unread \n.
   1450 
   1451 2021-02-10  David Malcolm  <dmalcolm (a] redhat.com>
   1452 
   1453 	PR preprocessor/96391
   1454 	* line-map.c (linemap_compare_locations): Require that
   1455 	the location be <= LINE_MAP_MAX_LOCATION_WITH_COLS when
   1456 	treating locations as coming from the same macro expansion.
   1457 
   1458 2021-02-04  Jakub Jelinek  <jakub (a] redhat.com>
   1459 
   1460 	* expr.c (cpp_classify_number): Use make_signed_t<size_t> instead of
   1461 	make_signed<size_t>::type in the diagnostics.
   1462 
   1463 2021-02-03  Jakub Jelinek  <jakub (a] redhat.com>
   1464 
   1465 	PR preprocessor/98882
   1466 	* lex.c (cpp_directive_only_process): Don't assert that rlimit[-1]
   1467 	is a newline, instead assert that rlimit[0] is either newline or
   1468 	carriage return.  When seeing '\\' followed by '\r', check limit
   1469 	before accessing pos[1].
   1470 
   1471 2021-02-03  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
   1472 
   1473 	* expr.c (interpret_int_suffix): Detect 'z' integer suffix.
   1474 	(cpp_classify_number): Compat warning for use of 'z' suffix.
   1475 	* include/cpplib.h (struct cpp_options): New flag.
   1476 	(enum cpp_warning_reason): New flag.
   1477 	(CPP_N_USERDEF): Comment C++0x -> C++11.
   1478 	(CPP_N_SIZE_T): New flag for cpp_classify_number.
   1479 	* init.c (cpp_set_lang): Initialize new flag.
   1480 
   1481 2021-01-27  liuhongt  <hongtao.liu (a] intel.com>
   1482 
   1483 	PR target/98833
   1484 	* lex.c (search_line_sse2): Replace builtins with == operator.
   1485 
   1486 2021-01-26  Paul Fee  <paul.f.fee (a] gmail.com>
   1487 
   1488 	* include/cpplib.h (c_lang): Add CXX23 and GNUCXX23.
   1489 	* init.c (lang_defaults): Add rows for CXX23 and GNUCXX23.
   1490 	(cpp_init_builtins): Set __cplusplus to 202100L for C++23.
   1491 
   1492 2021-01-15  Nathan Sidwell  <nathan (a] acm.org>
   1493 
   1494 	PR preprocessor/95253
   1495 	* mkdeps.c (munge): Do not escape ':'.
   1496 
   1497 2020-12-14  Nathan Sidwell  <nathan (a] acm.org>
   1498 
   1499 	* include/cpplib.h (struct cpp_macro): Add imported_p field.
   1500 	(struct cpp_hashnode): Tweak deferred field documentation.
   1501 	* macro.c (_cpp_new_macro): Clear new field.
   1502 	(cpp_get_deferred_macro, get_deferred_or_lazy_macro): Assert
   1503 	more.
   1504 
   1505 2020-12-10  Jason Merrill  <jason (a] redhat.com>
   1506 
   1507 	* init.c (cpp_init_builtins): Update __cplusplus for C++20.
   1508 
   1509 2020-12-01  JeanHeyd Meneide  <phdofthehouse (a] gmail.com>
   1510 
   1511 	* charset.c (init_iconv_desc): Initialize "to" and "from" fields.
   1512 	* directives.c (cpp_get_narrow_charset_name): New function.
   1513 	(cpp_get_wide_charset_name): Likewise.
   1514 	* include/cpplib.h (cpp_get_narrow_charset_name): Prototype.
   1515 	(cpp_get_wide_charset_name): Likewise.
   1516 	* internal.h (cset_converter): Add "to" and "from" fields.
   1517 
   1518 2020-11-27  Joseph Myers  <joseph (a] codesourcery.com>
   1519 
   1520 	PR preprocessor/97602
   1521 	* directives.c (strtolinenum): Check for overflow before it
   1522 	occurs.  Correct comment.
   1523 
   1524 2020-11-24  Nathan Sidwell  <nathan (a] acm.org>
   1525 
   1526 	* include/cpplib.h (struct cpp_hashnode): Add deferred field.
   1527 	(cpp_set_deferred_macro): Define.
   1528 	(cpp_get_deferred_macro): Declare.
   1529 	(cpp_macro_definition): Reformat, add overload.
   1530 	(cpp_macro_definition_location): Deal with deferred macro.
   1531 	(cpp_alloc_token_string, cpp_compare_macro): Declare.
   1532 	* internal.h (_cpp_notify_macro_use): Return bool
   1533 	(_cpp_maybe_notify_macro_use): Likewise.
   1534 	* directives.c (do_undef): Check macro is not undef before
   1535 	warning.
   1536 	(do_ifdef, do_ifndef): Deal with deferred macro.
   1537 	* expr.c (parse_defined): Likewise.
   1538 	* lex.c (cpp_allocate_token_string): Break out of ...
   1539 	(create_literal): ... here.  Call it.
   1540 	(cpp_maybe_module_directive): Deal with deferred macro.
   1541 	* macro.c (cpp_get_token_1): Deal with deferred macro.
   1542 	(warn_of_redefinition): Deal with deferred macro.
   1543 	(compare_macros): Rename to ...
   1544 	(cpp_compare_macro): ... here.  Make extern.
   1545 	(cpp_get_deferred_macro): New.
   1546 	(_cpp_notify_macro_use): Deal with deferred macro, return bool
   1547 	indicating definedness.
   1548 	(cpp_macro_definition): Deal with deferred macro.
   1549 
   1550 2020-11-19  Nathan Sidwell  <nathan (a] acm.org>
   1551 
   1552 	* include/cpplib.h (enum cpp_main_search): New.
   1553 	(struct cpp_options): Add main_search field.
   1554 	(cpp_main_loc): Declare.
   1555 	(cpp_retrofit_as_include): Declare.
   1556 	* internal.h (struct cpp_reader): Add main_loc field.
   1557 	(_cpp_in_main_source_file): Not main if main is a header.
   1558 	* init.c (cpp_read_main_file): Use main_search option to locate
   1559 	main file.  Set main_loc
   1560 	* files.c (cpp_retrofit_as_include): New.
   1561 
   1562 2020-11-19  Nathan Sidwell  <nathan (a] acm.org>
   1563 
   1564 	* internal.h (cpp_in_system_header): Rename to ...
   1565 	(_cpp_in_system_header): ... here.
   1566 	(cpp_in_primary_file): Rename to ...
   1567 	(_cpp_in_main_source_file): ... here.  Compare main_file equality
   1568 	and check main_search value.
   1569 	* lex.c (maybe_va_opt_error, _cpp_lex_direct): Adjust for rename.
   1570 	* macro.c (_cpp_builtin_macro_text): Likewise.
   1571 	(replace_args): Likewise.
   1572 	* directives.c (do_include_next): Likewise.
   1573 	(do_pragma_once, do_pragma_system_header): Likewise.
   1574 	* files.c (struct _cpp_file): Delete main_file field.
   1575 	(pch_open): Check pfile->main_file equality.
   1576 	(make_cpp_file): Drop cpp_reader parm, don't set main_file.
   1577 	(_cpp_find_file): Adjust.
   1578 	(_cpp_stack_file): Check pfile->main_file equality.
   1579 	(struct report_missing_guard_data): Add cpp_reader field.
   1580 	(report_missing_guard): Check pfile->main_file equality.
   1581 	(_cpp_report_missing_guards): Adjust.
   1582 
   1583 2020-11-18  Nathan Sidwell  <nathan (a] acm.org>
   1584 
   1585 	* include/cpplib.h (struct cpp_options): Add module_directives
   1586 	option.
   1587 	(NODE_MODULE): New node flag.
   1588 	(struct cpp_hashnode): Make rid-code a bitfield, increase bits in
   1589 	flags and swap with type field.
   1590 	* init.c (post_options): Create module-directive identifier nodes.
   1591 	* internal.h (struct lexer_state): Add directive_file_token &
   1592 	n_modules fields.  Add module node enumerator.
   1593 	* lex.c (cpp_maybe_module_directive): New.
   1594 	(_cpp_lex_token): Call it.
   1595 	(cpp_output_token): Add '"' around CPP_HEADER_NAME token.
   1596 	(do_peek_ident, do_peek_module): New.
   1597 	(cpp_directives_only): Detect module-directive lines.
   1598 	* macro.c (cpp_get_token_1): Deal with directive_file_token
   1599 	triggering.
   1600 
   1601 2020-11-18  Nathan Sidwell  <nathan (a] acm.org>
   1602 
   1603 	* files.c (struct _cpp_file): Add header_unit field.
   1604 	(_cpp_stack_file): Add header unit support.
   1605 	(cpp_find_header_unit): New.
   1606 	* include/cpplib.h (cpp_find_header_unit): Declare.
   1607 
   1608 2020-11-18  Nathan Sidwell  <nathan (a] acm.org>
   1609 
   1610 	* include/cpplib.h (struct cpp_options): Add modules to
   1611 	dep-options.
   1612 	* include/mkdeps.h (deps_add_module_target): Declare.
   1613 	(deps_add_module_dep): Declare.
   1614 	* mkdeps.c (class mkdeps): Add modules, module_name, cmi_name,
   1615 	is_header_unit fields.  Adjust cdtors.
   1616 	(deps_add_module_target, deps_add_module_dep): New.
   1617 	(make_write): Write module dependencies, if enabled.
   1618 
   1619 2020-11-17  Nathan Sidwell  <nathan (a] acm.org>
   1620 
   1621 	* include/cpplib.h (struct cpp_callbacks): Add
   1622 	user_deferred_macro & translate_include.
   1623 
   1624 2020-11-17  Nathan Sidwell  <nathan (a] acm.org>
   1625 
   1626 	* include/line-map.h (enum lc_reason): Add LC_MODULE.
   1627 	(MAP_MODULE_P): New.
   1628 	(line_map_new_raw): Declare.
   1629 	(linemap_enter_macro): Move declaration from internal.h
   1630 	(linemap_module_loc, linemap_module_reparent)
   1631 	(linemap_module_restore): Declare.
   1632 	(linemap_lookup_macro_indec): Declare.
   1633 	* internal.h (linemap_enter_macro): Moved to line-map.h.
   1634 	* line-map.c (linemap_new_raw): New, broken out of ...
   1635 	(new_linemap): ... here.  Call it.
   1636 	(LAST_SOURCE_LINE_LOCATION): New.
   1637 	(liemap_module_loc, linemap_module_reparent)
   1638 	(linemap_module_restore): New.
   1639 	(linemap_lookup_macro_index): New, broken out of ...
   1640 	(linemap_macro_map_lookup): ... here.  Call it.
   1641 	(linemap_dump): Add module dump.
   1642 
   1643 2020-11-17  Nathan Sidwell  <nathan (a] acm.org>
   1644 
   1645 	PR preprocessor/97858
   1646 	* mkdeps.c (munge): Drop varadic args, we only ever use one.
   1647 
   1648 2020-11-13  Joseph Myers  <joseph (a] codesourcery.com>
   1649 
   1650 	* expr.c (cpp_classify_number): Update diagnostic for binary
   1651 	constants for C.  Also diagnose binary constants for
   1652 	-Wc11-c2x-compat.
   1653 	* init.c (lang_defaults): Enable binary constants for GNUC2X and
   1654 	STDC2X.
   1655 
   1656 2020-11-13  Piotr H. Dabrowski  <phd (a] phd.re>
   1657 
   1658 	PR c++/91318
   1659 	* include/cpplib.h: Added cpp_define_unused(), cpp_define_formatted_unused()
   1660 	* directives.c: Likewise.
   1661 
   1662 2020-11-12  Joseph Myers  <joseph (a] codesourcery.com>
   1663 
   1664 	* include/cpplib.h (struct cpp_callbacks): Add bool argument to
   1665 	has_attribute.
   1666 	(enum cpp_builtin_type): Add BT_HAS_STD_ATTRIBUTE.
   1667 	* init.c (builtin_array): Add __has_c_attribute.
   1668 	(cpp_init_special_builtins): Handle BT_HAS_STD_ATTRIBUTE.
   1669 	* macro.c (_cpp_builtin_macro_text): Handle BT_HAS_STD_ATTRIBUTE.
   1670 	Update call to has_attribute for BT_HAS_ATTRIBUTE.
   1671 	* traditional.c (fun_like_macro): Handle BT_HAS_STD_ATTRIBUTE.
   1672 
   1673 2020-11-12  Nicholas Guriev  <guriev-ns (a] ya.ru>
   1674 
   1675 	PR pch/86674
   1676 	* files.c (_cpp_find_file): Use CPP_DL_NOTE not CPP_DL_ERROR in call to
   1677 	cpp_error.
   1678 
   1679 2020-11-07  Lewis Hyatt  <lhyatt (a] gmail.com>
   1680 
   1681 	* generated_cpp_wcwidth.h: Regenerated from Unicode 13.0.0 data.
   1682 
   1683 2020-11-06  Nathan Sidwell  <nathan (a] acm.org>
   1684 
   1685 	* include/cpplib.h (enum class CPP_time_kind): New.
   1686 	(cpp_get_date): Declare.
   1687 	* internal.h (struct cpp_reader): Replace source_date_epoch with
   1688 	time_stamp and time_stamp_kind.
   1689 	* init.c (cpp_create_reader): Initialize them.
   1690 	* macro.c (_cpp_builtin_macro_text): Use cpp_get_date.
   1691 	(cpp_get_date): Broken out from _cpp_builtin_macro_text and
   1692 	genericized.
   1693 
   1694 2020-11-03  Nathan Sidwell  <nathan (a] acm.org>
   1695 
   1696 	* lex.c (cpp_peek_token): Do not peek past CPP_PRAGMA.
   1697 	(_cpp_lex_direct): Handle EOF in pragma when setting need_line,
   1698 	not when needing a line.
   1699 
   1700 2020-11-03  Nathan Sidwell  <nathan (a] acm.org>
   1701 
   1702 	* lex.c (_cpp_clean_line): Fix DOS off-by-one error.
   1703 
   1704 2020-11-03  Nathan Sidwell  <nathan (a] acm.org>
   1705 
   1706 	* init.c (cpp_read_main_file): Use cpp_get_deps result.
   1707 
   1708 2020-11-03  Nathan Sidwell  <nathan (a] acm.org>
   1709 
   1710 	* include/mkdeps.h: Include cpplib.h
   1711 	(deps_write): Adjust first parm type.
   1712 	* mkdeps.c: Include internal.h
   1713 	(make_write): Adjust first parm type.  Check phony option
   1714 	directly.
   1715 	(deps_write): Adjust first parm type.
   1716 	* init.c (cpp_read_main_file): Use get_deps.
   1717 	* directives.c (cpp_get_deps): Check option before initializing.
   1718 
   1719 2020-11-02  Nathan Sidwell  <nathan (a] acm.org>
   1720 
   1721 	* internal.h (_cpp_notify_macro_use): Add location parm.
   1722 	(_cpp_maybe_notify_macro_use): Likewise.
   1723 	* directives.c (_cpp_do_file_change): Check we've not changed file
   1724 	when optimizing a rewind.
   1725 	(do_ifdef): Pass location to _cpp_maybe_notify_macro_use.
   1726 	(do_ifndef): Likewise.  Delete obsolete comment about powerpc.
   1727 	* expr.c (parse_defined): Pass location to
   1728 	_cpp_maybe_notify_macro_use.
   1729 	* macro.c (enter_macro_context): Likewise.
   1730 	(warn_of_redefinition): Break out helper function.  Call it.
   1731 	(compare_macros): New function broken out of warn_of_redefinition.
   1732 	(_cpp_new_macro): Zero all fields.
   1733 	(_cpp_notify_macro_use): Add location parameter.
   1734 
   1735 2020-10-20  Nathan Sidwell  <nathan (a] acm.org>
   1736 
   1737 	* lex.c (_cpp_lex_direct): Do not complete EOF processing when
   1738 	parsing_args.
   1739 	* macro.c (collect_args): Do not unwind fake EOF.
   1740 	(funlike_invocation_p): Do not unwind fake EOF.
   1741 	(cpp_context): Replace abort with gcc_assert.
   1742 
   1743 2020-10-19  Nathan Sidwell  <nathan (a] acm.org>
   1744 
   1745 	* internal.h (struct cpp_reader): Rename 'eof' field to 'endarg'.
   1746 	* init.c (cpp_create_reader): Adjust.
   1747 	* macro.c (collect_args): Use endarg for separator.  Always rewind
   1748 	in the not-fn case.
   1749 
   1750 2020-10-08  Nathan Sidwell  <nathan (a] acm.org>
   1751 
   1752 	* internal.h (enum include_type): Rename IT_MAIN_INJECT to
   1753 	IT_PRE_MAIN.
   1754 	* init.c (cpp_read_main_file): If there is no line marker, adjust
   1755 	the initial line marker.
   1756 	(read_original_filename): Return bool, peek the buffer directly
   1757 	before trying to tokenize.
   1758 	(read_original_directory): Likewise.  Directly prod the string
   1759 	literal.
   1760 	* files.c (_cpp_stack_file): Adjust for IT_PRE_MAIN change.
   1761 
   1762 2020-09-26  Jakub Jelinek  <jakub (a] redhat.com>
   1763 
   1764 	PR bootstrap/97163
   1765 	* lex.c (search_line_fast): Only use _ARCH_PWR8 Altivec version
   1766 	for GCC >= 4.5.
   1767 
   1768 2020-09-17  Patrick Palka  <ppalka (a] redhat.com>
   1769 
   1770 	PR c/80076
   1771 	* include/line-map.h (first_map_in_common): Declare.
   1772 	* line-map.c (first_map_in_common): Remove static.
   1773 
   1774 2020-09-07  Martin Storsj  <martin (a] martin.st>
   1775 
   1776 	* files.c (remap_filename): Make a strchr return value pointer
   1777 	to const.
   1778 
   1779 2020-07-30  H.J. Lu  <hjl.tools (a] gmail.com>
   1780 
   1781 	PR bootstrap/96202
   1782 	* configure: Regenerated.
   1783 
   1784 2020-07-29  Tiziano Mller  <tiziano.mueller (a] chem.uzh.ch>
   1785 
   1786 	* init.c (builtin_array): Add xref comment.
   1787 	* traditional.c (fun_like_macro): Add HAS_INCLUDE codes.
   1788 
   1789 2020-07-28  Jakub Jelinek  <jakub (a] redhat.com>
   1790 
   1791 	PR preprocessor/96323
   1792 	* lex.c (lex_raw_string): For c == '\n' don't continue after reporting
   1793 	an prefix delimiter error.
   1794 
   1795 2020-07-28  Nathan Sidwell  <nathan (a] acm.org>
   1796 
   1797 	* init.c (cpp_read_main_file): Always use the last map for
   1798 	the return value.
   1799 
   1800 2020-07-20  Nathan Sidwell  <nathan (a] acm.org>
   1801 
   1802 	* line-map.c (linemap_add): Simplify column overflow calculation.
   1803 	Add comment about range and column bit init.
   1804 	(linemap_ordinary_map_lookup): Refactor for RAII
   1805 	(linemap_macro_map_lookup): Likewise.
   1806 
   1807 2020-07-14  Lewis Hyatt  <lhyatt (a] gmail.com>
   1808 
   1809 	PR preprocessor/49973
   1810 	PR other/86904
   1811 	* include/cpplib.h (struct cpp_options):  Removed support for -ftabstop,
   1812 	which is now handled by diagnostic_context.
   1813 	(class cpp_display_width_computation): New class.
   1814 	(cpp_byte_column_to_display_column): Add optional tabstop argument.
   1815 	(cpp_display_width): Likewise.
   1816 	(cpp_display_column_to_byte_column): Likewise.
   1817 	* charset.c
   1818 	(cpp_display_width_computation::cpp_display_width_computation): New
   1819 	function.
   1820 	(cpp_display_width_computation::advance_display_cols): Likewise.
   1821 	(compute_next_display_width): Removed and implemented this
   1822 	functionality in a new function...
   1823 	(cpp_display_width_computation::process_next_codepoint): ...here.
   1824 	(cpp_byte_column_to_display_column): Added tabstop argument.
   1825 	Reimplemented in terms of class cpp_display_width_computation.
   1826 	(cpp_display_column_to_byte_column): Likewise.
   1827 	* init.c (cpp_create_reader): Remove handling of -ftabstop, which is now
   1828 	handled by diagnostic_context.
   1829 
   1830 2020-07-07  Nathan Sidwell  <nathan (a] acm.org>
   1831 
   1832 	* directives.c (do_linemarker): Optimize rewinding to line zero.
   1833 	* files.c (_cpp_stack_file): Start on line zero when about to inject
   1834 	headers.
   1835 	(cpp_push_include, cpp_push_default_include): Use highest_line as
   1836 	the location.
   1837 	* include/cpplib.h (cpp_read_main_file): Add injecting parm.
   1838 	* init.c (cpp_read_main_file): Likewise, inform _cpp_stack_file.
   1839 	* internal.h (enum include_type): Add IT_MAIN_INJECT.
   1840 
   1841 2020-05-29  H.J. Lu  <hjl.tools (a] gmail.com>
   1842 
   1843 	PR bootstrap/95413
   1844 	* configure: Regenerated.
   1845 
   1846 2020-05-23  David Edelsohn  <dje.gcc (a] gmail.com>
   1847 
   1848 	* Makefile.in (AR): Substitute @AR@.
   1849 	* configure.ac (CHECK_PROG AR): New.
   1850 	* configure: Regenerate.
   1851 
   1852 2020-05-20  Nathan Sidwell  <nathan (a] acm.org>
   1853 
   1854 	* internal.h (typedef _cpp_file): Delete, unnecessary in C++.
   1855 	(enum _cpp_find_file_kind): New.
   1856 	(_cpp_find_file): Use it, not 3 bools.
   1857 	* files.c (_cpp_find_file): Use _cpp_find_file_kind enum, not
   1858 	bools.
   1859 	(cpp_make_system_header): Break overly long line.
   1860 	(_cpp_stack_include, _cpp_fake_include)
   1861 	(_cpp_do_file_change, _cpp_compare_file_date, _cpp_has_header): Adjust.
   1862 	* init.c (cpp_read_main): Adjust _cpp_find_file call.
   1863 
   1864 2020-05-18  Nathan Sidwell  <nathan (a] acm.org>
   1865 
   1866 	* include/cpplib.h (cpp_get_otions, cpp_get_callbacks)
   1867 	(cpp_get_deps): Mark as PURE.
   1868 	* include/line-map.h (get_combined_adhoc_loc)
   1869 	(get_location_from_adhoc_loc, get_pure_location): Reformat decls.
   1870 	* internal.h (struct lexer_state): Clarify comment.
   1871 	* system.h: Remove now-unneeded bool hackery.
   1872 	* files.c (_cpp_find_file): Store LOC not highest_location.
   1873 
   1874 	PR preprocessor/95149
   1875 	* lex.c (struct lit_accum): New.
   1876 	(bufring_append): Replace by lit_accum::append.
   1877 	(lex_raw_string): Reimplement, using fragments of the old version.
   1878 	(lex_string): Adjust lex_raw_string call.
   1879 
   1880 	PR preprocessor/95182
   1881 	* macro.c (collect_args): Preserve EOFif we fell out of the main
   1882 	file.
   1883 	(cpp_get_token_1): Reformat a couple of short lines.
   1884 
   1885 2020-05-14  H.J. Lu  <hongjiu.lu (a] intel.com>
   1886 
   1887 	* configure: Regenerated.
   1888 
   1889 2020-05-13  Jason Merrill  <jason (a] redhat.com>
   1890 
   1891 	* include/cpplib.h (enum c_lang): Change CXX2A to CXX20.
   1892 	* init.c, lex.c: Adjust.
   1893 
   1894 2020-05-12  Nathan Sidwell  <nathan (a] acm.org>
   1895 
   1896 	EOF location is at end of file
   1897 	PR preprocessor/95013
   1898 	* lex.c (lex_raw_string): Process line notes before incrementing.
   1899 	Correct incrementing condition.  Adjust for new
   1900 	_cpp_get_fresh_line EOF behaviour.
   1901 	(_cpp_get_fresh_line): Do not pop buffer at EOF, increment line
   1902 	instead.
   1903 	(_cpp_lex_direct): Adjust for new _cpp_get_fresh_line behaviour.
   1904 	(cpp_directive_only_process): Assert we got a fresh line.
   1905 	* traditional.c (_cpp_read_logical_line_trad): Adjust for new
   1906 	_cpp_get_fresh_line behaviour.
   1907 
   1908 2020-05-12  H.J. Lu  <hongjiu.lu (a] intel.com>
   1909 
   1910 	* Makefile.in (CET_HOST_FLAGS): New.
   1911 	(COMPILER): Add $(CET_HOST_FLAGS).
   1912 	* configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
   1913 	AC_SUBST(CET_HOST_FLAGS).  Clear CET_HOST_FLAGS if jit isn't
   1914 	enabled.
   1915 	* aclocal.m4: Regenerated.
   1916 	* configure: Likewise.
   1917 
   1918 2020-05-08  Nathan Sidwell  <nathan (a] acm.org>
   1919 
   1920 	Reimplement directives only processing, support raw literals.
   1921 	* directives-only.c: Delete.
   1922 	* Makefile.in (libcpp_a_OBJS, libcpp_a_SOURCES): Remove it.
   1923 	* include/cpplib.h (enum CPP_DO_task): New enum.
   1924 	(cpp_directive_only_preprocess): Declare.
   1925 	* internal.h (_cpp_dir_only_callbacks): Delete.
   1926 	(_cpp_preprocess_dir_only): Delete.
   1927 	* lex.c (do_peek_backslask, do_peek_next, do_peek_prev): New.
   1928 	(cpp_directives_only_process): New implementation.
   1929 
   1930 2020-02-14  Jakub Jelinek  <jakub (a] redhat.com>
   1931 
   1932 	Partially implement P1042R1: __VA_OPT__ wording clarifications
   1933 	PR preprocessor/92319
   1934 	* macro.c (expand_arg): Move declarations before vaopt_state
   1935 	definition.
   1936 	(class vaopt_state): Move enum update_type definition earlier.  Remove
   1937 	m_allowed member, add m_arg and m_update members.
   1938 	(vaopt_state::vaopt_state): Change last argument from bool any_args
   1939 	to macro_arg *arg, initialize m_arg and m_update instead of m_allowed.
   1940 	(vaopt_state::update): When bumping m_state from 1 to 2 and m_update
   1941 	is ERROR, determine if __VA_ARGS__ expansion has any non-CPP_PADDING
   1942 	tokens and set m_update to INCLUDE if it has any, DROP otherwise.
   1943 	Return m_update instead of m_allowed ? INCLUDE : DROP in m_state >= 2.
   1944 	(replace_args, create_iso_definition): Adjust last argument to
   1945 	vaopt_state ctor.
   1946 
   1947 2020-02-05  Martin Sebor  <msebor (a] redhat.com>
   1948 
   1949 	* include/cpplib.h (cpp_builtin_type): Remove trailing comma to
   1950 	avoid pedantic warnings in C++ 98 mode.
   1951 
   1952 2020-02-04  Jakub Jelinek  <jakub (a] redhat.com>
   1953 
   1954 	* macro.c (builtin_has_include): Diagnose __has_include* use outside
   1955 	of preprocessing directives.
   1956 
   1957 	PR preprocessor/93545
   1958 	* macro.c (cpp_get_token_no_padding): New function.
   1959 	(builtin_has_include): Use it instead of cpp_get_token.  Don't check
   1960 	SEEN_EOL.
   1961 
   1962 2020-02-01  Andrew Burgess  <andrew.burgess (a] embecosm.com>
   1963 
   1964 	* configure: Regenerate.
   1965 
   1966 2020-01-28  Nathan Sidwell  <nathan (a] acm.org>
   1967 
   1968 	PR preprocessor/93452
   1969 	* internal.h (struct spec_nodes): Drop n__has_include{,_next}.
   1970 	* directives.c (lex_macro_node): Don't check __has_include redef.
   1971 	* expr.c (eval_token): Drop __has_include eval.
   1972 	(parse_has_include): Move to ...
   1973 	* macro.c (builtin_has_include): ... here.
   1974 	(_cpp_builtin_macro_text): Eval __has_include{,_next}.
   1975 	* include/cpplib.h (enum cpp_builtin_type): Add BT_HAS_INCLUDE{,_NEXT}.
   1976 	* init.c (builtin_array): Add them.
   1977 	(cpp_init_builtins): Drop __has_include{,_next} init here ...
   1978 	* pch.c (cpp_read_state): ... and here.
   1979 	* traditional.c (enum ls): Drop has_include states ...
   1980 	(_cpp_scan_out_logical_line): ... and here.
   1981 
   1982 2020-01-27  Andrew Burgess  <andrew.burgess (a] embecosm.com>
   1983 
   1984 	* configure: Regenerate.
   1985 
   1986 2020-01-24  Nathan Sidwell  <nathan (a] acm.org>
   1987 
   1988 	* expr.c (parse_has_include): Remove bogus controlling macro code.
   1989 
   1990 2020-01-20  Nathan Sidwell  <nathan (a] acm.org>
   1991 
   1992 	PR preprocessor/80005
   1993 	* include/cpplib.h (BT_HAS_ATTRIBUTE): Fix comment.
   1994 	* internal.h (struct lexer_state): Delete in__has_include field.
   1995 	(struct spec_nodes): Rename n__has_include{,_next}__ fields.
   1996 	(_cpp_defined_macro_p): New.
   1997 	(_cpp_find_file): Add has_include parm.
   1998 	* directives.c (lex_macro_node): Combine defined,
   1999 	__has_inline{,_next} checking.
   2000 	(do_ifdef, do_ifndef): Use _cpp_defined_macro_p.
   2001 	(_cpp_init_directives): Refactor.
   2002 	* expr.c (parse_defined): Use _cpp_defined_macro_p.
   2003 	(eval_token): Adjust parse_has_include calls.
   2004 	(parse_has_include): Add OP parameter.  Reimplement.
   2005 	* files.c (_cpp_find_file): Add HAS_INCLUDE parm.  Use it to
   2006 	inhibit error message.
   2007 	(_cpp_stack_include): Adjust _cpp_find_file call.
   2008 	(_cpp_fake_include, _cpp_compare_file_date): Likewise.
   2009 	(open_file_failed): Remove in__has_include check.
   2010 	(_cpp_has_header): Adjust _cpp_find_file call.
   2011 	* identifiers.c (_cpp_init_hashtable): Don't init
   2012 	__has_include{,_next} here ...
   2013 	* init.c (cpp_init_builtins): ... init them here.  Define as
   2014 	macros.
   2015 	(cpp_read_main_file): Adjust _cpp_find_file call.
   2016 	* pch.c (cpp_read_state): Adjust __has_include{,_next} access.
   2017 	* traditional.c (_cpp_scan_out_locgical_line): Likewise.
   2018 
   2019 	PR preprocessor/93306
   2020 	* expr.c (parse_has_include): Refactor.  Check skip_eval before
   2021 	looking.
   2022 
   2023 2020-01-10  David Malcolm  <dmalcolm (a] redhat.com>
   2024 
   2025 	* include/line-map.h (class diagnostic_path): New forward decl.
   2026 	(rich_location::get_path): New accessor.
   2027 	(rich_location::set_path): New function.
   2028 	(rich_location::m_path): New field.
   2029 	* line-map.c (rich_location::rich_location): Initialize m_path.
   2030 
   2031 2020-01-01  Jakub Jelinek  <jakub (a] redhat.com>
   2032 
   2033 	Update copyright years.
   2034 
   2035 2019-12-18  David Malcolm  <dmalcolm (a] redhat.com>
   2036 
   2037 	PR preprocessor/92982
   2038 	* charset.c
   2039 	(cpp_string_location_reader::cpp_string_location_reader): Delete
   2040 	initialization of m_line_table.
   2041 	* include/cpplib.h (cpp_string_location_reader::m_line_table):
   2042 	Delete unused member.
   2043 
   2044 2019-12-14  Jakub Jelinek  <jakub (a] redhat.com>
   2045 
   2046 	PR preprocessor/92919
   2047 	* charset.c (wide_str_to_charconst): If str contains just the
   2048 	NUL terminator, punt quietly.
   2049 
   2050 2019-12-09  David Malcolm  <dmalcolm (a] redhat.com>
   2051 
   2052 	* include/line-map.h (label_text::label_text): Make private.
   2053 	(label_text::borrow): New.
   2054 	(label_text::take): New.
   2055 	(label_text::take_or_copy): New.
   2056 
   2057 2019-12-09  Lewis Hyatt  <lhyatt (a] gmail.com>
   2058 
   2059 	PR preprocessor/49973
   2060 	* generated_cpp_wcwidth.h: New file generated by
   2061 	../contrib/unicode/gen_wcwidth.py, supports new cpp_wcwidth function.
   2062 	* charset.c (compute_next_display_width): New function to help
   2063 	implement display columns.
   2064 	(cpp_byte_column_to_display_column): Likewise.
   2065 	(cpp_display_column_to_byte_column): Likewise.
   2066 	(cpp_wcwidth): Likewise.
   2067 	* include/cpplib.h (cpp_byte_column_to_display_column): Declare.
   2068 	(cpp_display_column_to_byte_column): Declare.
   2069 	(cpp_wcwidth): Declare.
   2070 	(cpp_display_width): New function.
   2071 
   2072 2019-11-14  Joseph Myers  <joseph (a] codesourcery.com>
   2073 
   2074 	* charset.c (narrow_str_to_charconst): Make CPP_UTF8CHAR constants
   2075 	unsigned for C.
   2076 	* init.c (lang_defaults): Set utf8_char_literals for GNUC2X and
   2077 	STDC2X.
   2078 
   2079 2019-11-07  Jakub Jelinek  <jakub (a] redhat.com>
   2080 
   2081 	PR c++/91370 - Implement P1041R4 and P1139R2 - Stronger Unicode reqs
   2082 	* charset.c (narrow_str_to_charconst): Add TYPE argument.  For
   2083 	CPP_UTF8CHAR diagnose whenever number of chars is > 1, using
   2084 	CPP_DL_ERROR instead of CPP_DL_WARNING.
   2085 	(wide_str_to_charconst): For CPP_CHAR16 or CPP_CHAR32, use
   2086 	CPP_DL_ERROR instead of CPP_DL_WARNING when multiple char16_t
   2087 	or char32_t chars are needed.
   2088 	(cpp_interpret_charconst): Adjust narrow_str_to_charconst caller.
   2089 
   2090 2019-11-05  Tim van Deurzen  <tim (a] kompiler.org>
   2091 
   2092 	* cpplib.h: Add spaceship operator for C++.
   2093 	* lex.c: Implement conditional lexing of spaceship operator for C++20.
   2094 
   2095 2019-10-31  Jakub Jelinek  <jakub (a] redhat.com>
   2096 
   2097 	PR preprocessor/92296
   2098 	* internal.h (struct def_pragma_macro): Add is_builtin bitfield.
   2099 	(_cpp_restore_special_builtin): Declare.
   2100 	* init.c (_cpp_restore_special_builtin): New function.
   2101 	* directives.c (do_pragma_push_macro): For NT_BUILTIN_MACRO
   2102 	set is_builtin and don't try to grab definition.
   2103 	(cpp_pop_definition): Use _cpp_restore_special_builtin to restore
   2104 	builtin macros.
   2105 
   2106 2019-10-15  Nathan Sidwell  <nathan (a] acm.org>
   2107 
   2108 	* include/line-map.h (struct maps_info_ordinary): Make cache
   2109 	mutable.
   2110 	(struct maps_info_macro): Likewise.
   2111 	(LINEMAPS_CACHE): Remove non-ref accessor. Constify ref accessor.
   2112 	(LINEMAPS_ORDINARY_CACHE, LINEMAPS_MACRO_CACHE): Likewise.
   2113 	(LINEMAPS_ORDINARY_MAP_AT, LINEMAPS_MACRO_MAP_AT): Use
   2114 	LINEMAPS_USED and LINEMAPS_MAP_AT.
   2115 	(linemap_lookup): Constify line_map arg.
   2116 	linemap.c (linemap_ordinary_map_lookup, linemap_macro_map_lookup):
   2117 	Constify line_map arg.
   2118 
   2119 2019-10-11  Joseph Myers  <joseph (a] codesourcery.com>
   2120 
   2121 	* include/cpplib.h (struct cpp_options): Add dfp_constants and
   2122 	cpp_warn_c11_c2x_compat.
   2123 	(enum cpp_warning_reason): Add CPP_W_C11_C2X_COMPAT.
   2124 	* init.c (struct lang_flags): Add dfp_constants.
   2125 	(lang_defaults): Set dfp_constants to 1 for GNUC2X and STDC2X and
   2126 	0 for other languages.
   2127 	(cpp_set_lang): Set dfp_constants from language.
   2128 	(cpp_create_reader): Set cpp_warn_c11_c2x_compat to -1.
   2129 	* expr.c (interpret_float_suffix): Mention DFP constants as C2X in
   2130 	comment.
   2131 	(cpp_classify_number): Do not diagnose DFP constants for languages
   2132 	setting dfp_constants, unless cpp_warn_c11_c2x_compat.
   2133 
   2134 2019-10-04  Nathan Sidwell  <nathan (a] acm.org>
   2135 
   2136 	PR preprocessor/91991
   2137 	* line-map.c (linemap_line_start): Clear max_column_hint if we run
   2138 	out of locations.
   2139 
   2140 2019-10-02  Richard Biener  <rguenther (a] suse.de>
   2141 
   2142 	* internal.h (enum include_type): Remove trailing comma.
   2143 
   2144 2019-10-02  Joseph Myers  <joseph (a] codesourcery.com>
   2145 
   2146 	* include/cpplib.h (struct cpp_options): Add member scope.
   2147 	* init.c (struct lang_flags, lang_defaults): Likewise.
   2148 	(cpp_set_lang): Set scope member of pfile.
   2149 	* lex.c (_cpp_lex_direct): Test CPP_OPTION (pfile, scope) not
   2150 	CPP_OPTION (pfile, cplusplus) for creating CPP_SCOPE tokens.
   2151 
   2152 2019-09-26  Eric Botcazou  <ebotcazou (a] adacore.com>
   2153 
   2154 	* charset.c (UCS_LIMIT): New macro.
   2155 	(ucn_valid_in_identifier): Use it instead of a hardcoded constant.
   2156 	(_cpp_valid_ucn): Issue a pedantic warning for UCNs larger than
   2157 	UCS_LIMIT outside of identifiers in C and in C++2a or later.
   2158 
   2159 2019-09-19  Lewis Hyatt  <lhyatt (a] gmail.com>
   2160 
   2161 	PR c/67224
   2162 	* charset.c (_cpp_valid_utf8): New function to help lex UTF-8 tokens.
   2163 	* internal.h (_cpp_valid_utf8): Declare.
   2164 	* lex.c (forms_identifier_p): Use it to recognize UTF-8 identifiers.
   2165 	(_cpp_lex_direct): Handle UTF-8 in identifiers and CPP_OTHER tokens.
   2166 	Do all work in "default" case to avoid slowing down typical code paths.
   2167 	Also handle $ and UCN in the default case for consistency.
   2168 
   2169 2019-08-30  Nathan Sidwell  <nathan (a] acm.org>
   2170 
   2171 	New # semantics for popping to "" name.
   2172 	libcpp/
   2173 	* directives.c (do_linemarker): Popping to "" name means get the
   2174 	name from the include stack..
   2175 
   2176 2019-09-05  Nathan Sidwell  <nathan (a] acm.org>
   2177 
   2178 	PR preprocessor/91639
   2179 	* directives.c (do_include_common): Tell lexer we're a #include.
   2180 	* files.c (_cpp_stack_file): Lexer will have always incremented.
   2181 	* internal.h (struct cpp_context): Extend in_directive's
   2182 	semantics.
   2183 	* lex.c (_cpp_lex_direct): Increment line for final \n when lexing
   2184 	for an ISO #include.
   2185 	* line-map.c (linemap_line_start): Remember if we overflowed.
   2186 
   2187 2019-09-03  Ulrich Weigand  <uweigand (a] de.ibm.com>
   2188 
   2189 	* directives.c: Remove references to spu from comments.
   2190 	* expr.c: Likewise.
   2191 
   2192 2019-08-29  Nathan Sidwell  <nathan (a] acm.org>
   2193 
   2194 	* internal.h (enum include_type): Add IT_MAIN, IT_DIRECTIVE_HWM,
   2195 	IT_HEADER_HWM.
   2196 	(_cpp_stack_file): Take include_type, not a bool.
   2197 	* files.c (_cpp_find_file): Refactor to not hide an if inside a
   2198 	for conditional.
   2199 	(should_stack_file): Break apart to ...
   2200 	(is_known_idempotent_file, has_unique_contents): ... these.
   2201 	(_cpp_stack_file): Replace IMPORT boolean with include_type enum.
   2202 	Refactor to use new predicates.  Do linemap compensation here ...
   2203 	(_cpp_stack_include): ... not here.
   2204 	* init.c (cpp_read_main_file): Pass IT_MAIN to _cpp_stack_file.
   2205 
   2206 2019-08-28  Nathan Sidwell  <nathan (a] acm.org>
   2207 
   2208 	* directives-only.c (_cpp_preprocess_dir_only): Use false, not
   2209 	zero for _cpp_handle_directive call.
   2210 	* directives.c (_cpp_handle_directive): Indented is bool.
   2211 	* files.c (struct _cpp_file): Make bools 1 bit bitfields.
   2212 	* internal.h (enum include_type): Reformat and comment.
   2213 	(struct cpp_buffer): Make flags 1 bit bitfields.
   2214 	(_cpp_handle_directive): Indented is bool.
   2215 
   2216 2019-07-09  Martin Sebor  <msebor (a] redhat.com>
   2217 
   2218 	* include/line-map.h: Change class-key from class to struct and vice
   2219 	versa to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
   2220 	* mkdeps.c: Same.
   2221 
   2222 2019-07-03  Martin Liska  <mliska (a] suse.cz>
   2223 
   2224 	* line-map.c (linemap_get_expansion_filename): Remove
   2225 	dead assignemts.
   2226 	* mkdeps.c (make_write): Likewise.
   2227 
   2228 2019-07-02  qing zhao  <qing.zhao (a] oracle.com>
   2229 
   2230 	PR preprocessor/90581
   2231 	* directives.c (do_include_common): Replace CPP_STACK_MAX with
   2232 	CPP_OPTION (pfile, max_include_depth).
   2233 	* include/cpplib.h (struct cpp_options): Add new field
   2234 	max_include_depth.
   2235 	* init.c (cpp_create_reader): Initiate new field max_include_depth.
   2236 	* internal.h: Delete CPP_STACK_MAX.
   2237 
   2238 2019-06-26  Nathan Sidwell  <nathan (a] acm.org>
   2239 
   2240 	PR preprocessor/90927
   2241 	* mkdeps.c (mkdeps::vec::operator[]): Add non-const variant.
   2242 	(deps_add_target): Deal with out of order unquoted targets.
   2243 
   2244 2019-05-19  Andrew Pinski  <apinski (a] marvell.com>
   2245 
   2246 	PR pch/81721
   2247 	* lex.c (cpp_token_val_index <case SPELL_OPERATOR>): If tok->flags
   2248 	has NAMED_OP set, then return CPP_TOKEN_FLD_NODE.
   2249 
   2250 2019-05-14  Martin Liska  <mliska (a] suse.cz>
   2251 
   2252 	PR preprocessor/90382
   2253 	* line-map.c (first_map_in_common_1): Handle ADHOC
   2254 	locations.
   2255 
   2256 2019-05-14  Martin Liska  <mliska (a] suse.cz>
   2257 
   2258 	PR preprocessor/90382
   2259 	* include/line-map.h (get_data_from_adhoc_loc): Add const to
   2260 	the first argument.
   2261 	(get_location_from_adhoc_loc): Likewise.
   2262 	* line-map.c(get_data_from_adhoc_loc):  Add const to
   2263 	the first argument.
   2264 	(get_location_from_adhoc_loc): Likewise.
   2265 	(get_combined_adhoc_loc): Use get_location_from_adhoc_loc
   2266 	(or get_data_from_adhoc_loc).
   2267 	(get_range_from_adhoc_loc): Likewise.
   2268 	(get_pure_location): Likewise.
   2269 	(linemap_position_for_loc_and_offset): Likewise.
   2270 	(linemap_lookup): Likewise.
   2271 	(linemap_ordinary_map_lookup): Likewise.
   2272 	(linemap_macro_map_lookup): Likewise.
   2273 	(linemap_get_expansion_line): Likewise.
   2274 	(linemap_get_expansion_filename): Likewise.
   2275 	(linemap_location_in_system_header_p): Likewise.
   2276 	(linemap_location_from_macro_expansion_p): Likewise.
   2277 	(linemap_macro_loc_to_exp_point): Likewise.
   2278 	(linemap_resolve_location): Likewise.
   2279 	(linemap_unwind_toward_expansion): Likewise.
   2280 	(linemap_unwind_to_first_non_reserved_loc): Likewise.
   2281 	(linemap_expand_location): Likewise.
   2282 	(linemap_dump_location): Likewise.
   2283 
   2284 2019-05-07  Nathan Sidwell  <nathan (a] acm.org>
   2285 
   2286 	* files.c (_cpp_stack_file): Empty filenames aren't dependencies.
   2287 	* mkdeps.c (deps_add_dep): Assert not empty.
   2288 
   2289 	* include/mkdeps.h (deps_write): Add PHONY arg.
   2290 	(deps_phony_targets): Delete.
   2291 	* init.c (cpp_finish): Just call deps_write.
   2292 	* mkdeps.c (struct mkdeps): Add local vector class.  Reimplement
   2293 	vector handling.
   2294 	(munge): Munge to static buffer.
   2295 	(apply_vpath): Adjust vector handling.
   2296 	(deps_init, deps_free): Use new, delete.
   2297 	(deps_add_target): Do not munge here.  Record quoting low water mark.
   2298 	(deps_add_dep): Do not munge here.
   2299 	(deps_add_vpath): Adjust vector handling.
   2300 	(make_write_name): New.  Munge on demand here.
   2301 	(make_write_vec): New.
   2302 	(deps_phony_targets): Delete.
   2303 	(make_write): New.
   2304 	(deps_write): Forward to deps_Write.
   2305 	(deps_save, deps_restore): Adjust vector handling.
   2306 
   2307 2019-05-06  Nathan Sidwell  <nathan (a] acm.org>
   2308 
   2309 	* include/mkdeps.h: Rename struct deps to struct mkdeps.
   2310 	* mkdeps.c: Likewise.
   2311 	* include/cpplib.h (cpp_get_deps): Rename return type..
   2312 	* directives.c (cpp_get_deps): Likewise.
   2313 	* internal.h (struct cpp_reader): Rename deps field type.
   2314 
   2315 2019-04-03  Jonathan Wakely  <jwakely (a] redhat.com>
   2316 
   2317 	* files.c (search_path_exhausted): Fix typo in comment.
   2318 
   2319 2019-02-26  Martin Liska  <mliska (a] suse.cz>
   2320 
   2321 	* symtab.c (ht_dump_statistics): Make
   2322 	horizontal alignment for statistics.
   2323 
   2324 2019-02-20  David Malcolm  <dmalcolm (a] redhat.com>
   2325 
   2326 	PR c/89410
   2327 	* include/line-map.h (linenum_arith_t): New typedef.
   2328 	(compare): Use it.
   2329 
   2330 2019-02-18  Martin Liska  <mliska (a] suse.cz>
   2331 
   2332 	PR c++/89383
   2333 	* line-map.c (linemap_line_start): Use 1UL in order
   2334 	to not overflow.
   2335 
   2336 2019-02-11  Martin Liska  <mliska (a] suse.cz>
   2337 
   2338 	PR lto/88147
   2339 	* line-map.c (linemap_line_start): Don't reuse the existing line
   2340 	map if the line offset is sufficiently large to cause overflow
   2341 	when computing location_t values.
   2342 
   2343 2019-01-26  Jakub Jelinek  <jakub (a] redhat.com>
   2344 
   2345 	PR preprocessor/88974
   2346 	* directives.c (SEEN_EOL): Move macro to ...
   2347 	* internal.h (SEEN_EOL): ... here.
   2348 	* expr.c (parse_has_include): Don't cpp_get_token if SEEN_EOL ().
   2349 
   2350 2019-01-01  Jakub Jelinek  <jakub (a] redhat.com>
   2351 
   2352 	Update copyright years.
   2353 
   2354 2018-11-27  Mike Gulick  <mgulick (a] mathworks.com>
   2355 
   2356 	PR preprocessor/83173
   2357 	* location-example.txt: Update example -fdump-internal-locations
   2358 	output.
   2359 
   2360 2018-11-27  Mike Gulick  <mgulick (a] mathworks.com>
   2361 
   2362 	PR preprocessor/83173
   2363 	* files.c (_cpp_stack_include): Check if
   2364 	line_table->highest_location is past current line before
   2365 	decrementing.
   2366 
   2367 2018-11-13  David Malcolm  <dmalcolm (a] redhat.com>
   2368 
   2369 	* charset.c: Replace "source_location" with "location_t".
   2370 	* directives-only.c: Likewise.
   2371 	* directives.c: Likewise.
   2372 	* errors.c: Likewise.
   2373 	* expr.c: Likewise.
   2374 	* files.c: Likewise.
   2375 	* include/cpplib.h: Likewise.  Rename MAX_SOURCE_LOCATION to
   2376 	MAX_LOCATION_T.
   2377 	* include/line-map.h: Likewise.
   2378 	* init.c: Likewise.
   2379 	* internal.h: Likewise.
   2380 	* lex.c: Likewise.
   2381 	* line-map.c: Likewise.
   2382 	* location-example.txt: Likewise.
   2383 	* macro.c: Likewise.
   2384 	* pch.c: Likewise.
   2385 	* traditional.c: Likewise.
   2386 
   2387 2018-11-07  Hafiz Abid Qadeer  <abidh (a] codesourcery.com>
   2388 
   2389         * configure: Regenerated.
   2390 
   2391 2018-11-05  Martin Liska  <mliska (a] suse.cz>
   2392 
   2393 	* symtab.c (ht_dump_statistics): Replace %zu with %lu format.
   2394 
   2395 2018-11-05  Martin Liska  <mliska (a] suse.cz>
   2396 
   2397 	* symtab.c (ht_dump_statistics): Fix format and
   2398 	pass missing argument.
   2399 
   2400 2018-11-05  Martin Liska  <mliska (a] suse.cz>
   2401 
   2402 	* symtab.c (ht_dump_statistics): Make dump conditional
   2403 	based on alloc_subobject.
   2404 
   2405 2018-10-31  Joseph Myers  <joseph (a] codesourcery.com>
   2406 
   2407 	PR bootstrap/82856
   2408 	* configure.ac: Remove AC_PREREQ.  Use AC_LANG_SOURCE.
   2409 	* aclocal.m4, config.in, configure: Regenerate.
   2410 
   2411 2018-10-31  Nathan Sidwell  <nathan (a] acm.org>
   2412 
   2413 	* internal.h (struct cpp_reader): Rename forced_token_location_p
   2414 	to forced_token_location and drop its pointerness.
   2415 	* include/cpplib.h (cpp_force_token_locations): Take location, not
   2416 	pointer to one.
   2417 	* init.c (cpp_create_reader): Adjust.
   2418 	* lex.c (cpp_read_main_file): 
   2419 
   2420 	* directives.c (do_include_common): Commonize cleanup path.
   2421 	(_cpp_pop_buffer): Fix leak.
   2422 
   2423 	* include/line-map.h (IS_ORDINARY_LOC, IS_MACRO_LOC): New
   2424 	predicates.
   2425 	(IS_ADHOC_LOC): Move earlier.
   2426 	(MAP_ORDINARY_P): Use IS_ORDINARY_LOC.
   2427 	* line-map.c (linemap_location_from_macro_expansion_p): Use
   2428 	IS_MACRO_LOC.
   2429 
   2430 	* include/cpplib.h (cpp_macro_definition_location): Make inline.
   2431 	* macro.c (warn_of_redefinition): Fix comments, examine macro
   2432 	type, use C++ for.
   2433 	(cpp_macro_definition_location): Don't define here.
   2434 
   2435 	* include/cpplib.h (HT_NODE): Don't cast NODE.
   2436 	(NODE_LEN, NODE_NAME): Use HT_NODE.
   2437 
   2438 	* directives.c (DIRECTIVE_TABLE): Drop historical frequency
   2439 	comments.
   2440 	* files.c (_cpp_stack_file): Fix indentation.
   2441 
   2442 2018-10-17  Joseph Myers  <joseph (a] codesourcery.com>
   2443 
   2444 	* include/cpplib.h (enum c_lang): Add CLK_GNUC2X and CLK_STDC2X.
   2445 	* init.c (lang_defaults): Add GNUC2X and STDC2X entries.
   2446 	(cpp_init_builtins): Define __STDC_VERSION__ to 202000L for C2X.
   2447 
   2448 2018-10-11  David Malcolm  <dmalcolm (a] redhat.com>
   2449 
   2450 	* macro.c (_cpp_arguments_ok): If the argument count is wrong, add
   2451 	a note showing the definition of the macro.
   2452 
   2453 2018-10-11  Nathan Sidwell  <nathan (a] acm.org>
   2454 
   2455 	* include/line-map.h (LINEMAPS_MACRO_LOWEST_LOCATION): Fix
   2456 	off-by-one error.
   2457 	* line-map.c (linemap_enter_macro): Use RAII.  Clear all of the
   2458 	macro_locations.
   2459 
   2460 2018-10-09  David Malcolm  <dmalcolm (a] redhat.com>
   2461 
   2462 	* charset.c (noop_error_cb): Rename to...
   2463 	(noop_diagnostic_cb): ...this, converting params to enums.
   2464 	(cpp_interpret_string_ranges): Update for renaming and enums.
   2465 	* directives.c (check_eol_1): Convert reason to enum.
   2466 	(do_diagnostic): Convert code and reason to enum.
   2467 	(do_error): Use CPP_W_NONE rather than 0.
   2468 	(do_pragma_dependency): Likewise.
   2469 	* errors.c (cpp_diagnostic_at): Convert level and reason to enums.
   2470 	Update for renaming.
   2471 	(cpp_diagnostic): Convert level and reason to enums.
   2472 	(cpp_error): Convert level to enum.
   2473 	(cpp_warning): Convert reason to enums.
   2474 	(cpp_pedwarning): Likewise.
   2475 	(cpp_warning_syshdr): Likewise.
   2476 	(cpp_diagnostic_with_line): Convert level and reason to enums.
   2477 	Update for renaming.
   2478 	(cpp_error_with_line): Convert level to enum.
   2479 	(cpp_warning_with_line): Convert reason to enums.
   2480 	(cpp_pedwarning_with_line): Likewise.
   2481 	(cpp_warning_with_line_syshdr): Likewise.
   2482 	(cpp_error_at): Convert level to enum.
   2483 	(cpp_errno): Likewise.
   2484 	(cpp_errno_filename): Likewise.
   2485 	* include/cpplib.h (enum cpp_diagnostic_level): Name this enum,
   2486 	and move to before struct cpp_callbacks.
   2487 	(enum cpp_warning_reason): Likewise.
   2488 	(cpp_callbacks::diagnostic): Convert params from int to enums.
   2489 	(cpp_error): Convert int param to enum cpp_diagnostic_level.
   2490 	(cpp_warning): Convert int param to enum cpp_warning_reason.
   2491 	(cpp_pedwarning): Likewise.
   2492 	(cpp_warning_syshdr): Likewise.
   2493 	(cpp_errno): Convert int param to enum cpp_diagnostic_level.
   2494 	(cpp_errno_filename): Likewise.
   2495 	(cpp_error_with_line): Likewise.
   2496 	(cpp_warning_with_line): Convert int param to enum
   2497 	cpp_warning_reason.
   2498 	(cpp_pedwarning_with_line): Likewise.
   2499 	(cpp_warning_with_line_syshdr): Likewise.
   2500 	(cpp_error_at): Convert int param to enum cpp_diagnostic_level.
   2501 	* macro.c (create_iso_definition): Convert int to enum.
   2502 	(_cpp_create_definition): Likewise.
   2503 
   2504 2018-09-17  David Malcolm  <dmalcolm (a] redhat.com>
   2505 
   2506 	* include/line-map.h (range_label::get_text): Add param
   2507 	"range_idx".
   2508 
   2509 2018-08-30  Nathan Sidwell  <nathan (a] acm.org>
   2510 
   2511 	* include/line-map.h (enum lc_reason): Comment each member
   2512 	separately.
   2513 	(struct line_maps): Fix reallocator comment.
   2514 
   2515 2018-08-27  David Malcolm  <dmalcolm (a] redhat.com>
   2516 
   2517 	PR 87091
   2518 	* include/line-map.h (enum range_display_kind): New enum.
   2519 	(struct location_range): Replace field "m_show_caret_p" with
   2520 	"m_range_display_kind", converting from bool to the new enum.
   2521 	(class rich_location): Add example of line insertion fix-it hint.
   2522 	(rich_location::add_range): Convert param "show_caret_p" from bool
   2523 	to enum range_display_kind and rename to "range_display_kind",
   2524 	giving it a default of SHOW_RANGE_WITHOUT_CARET.
   2525 	(rich_location::set_range): Likewise, albeit without a default.
   2526 	* line-map.c (rich_location::rich_location): Update for conversion
   2527 	of show_caret_p to tri-state enum.
   2528 	(rich_location::add_range): Likewise.
   2529 	(rich_location::set_range): Likewise.
   2530 
   2531 2018-08-24  H.J. Lu  <hongjiu.lu (a] intel.com>
   2532 
   2533 	PR bootstrap/86872
   2534 	* line-map.c (pure_location_p): Return true if linemap_lookup
   2535 	returns NULL.
   2536 	(linemap_add): Set start_location to 0 if we run out of line map
   2537 	space.
   2538 
   2539 2018-08-20  Nathan Sidwell  <nathan (a] acm.org>
   2540 
   2541 	* include/cpplib.h: Fixup some whitespace.
   2542 	(cpp_hashnode): Reduce type to 2 bit & flags to 8.
   2543 
   2544 	* include/cpplib.h (NODE_BUILTIN, NODE_MACRO_ARG): Delete.
   2545 	Renumber others.
   2546 	(enum node_type): Replace NT_MACRO with NT_USER_MACRO,
   2547 	NT_BUILTIN_MACRO, NT_MACRO_ARG.  Delete NT_ASSERTION.
   2548 	(NTV_MACRO, NTV_ANSWER, NTV_BUILTIN, NTV_ARGUMENT, NTV_NONE):
   2549 	Delete.
   2550 	(CPP_HASHNODE_VALUE_IDX): Delete.
   2551 	(union _cpp_hashnode_value): GTY tag from enum node_type directly.
   2552 	(struct cpp_hashnode): Adjust GTY desc for value field.
   2553 	(cpp_user_macro_p, cpp_builtin_macro_p, cpp_macro_p): Adjust.
   2554 	* directives.c (undefine_macros): Clear value.anwers, adjust flag
   2555 	clearing.
   2556 	(_cpp_test_assertion): No need to check NT_ASSERTION.
   2557 	(do_assert, do_unassert): Likewise.
   2558 	* init.c (cpp_init_special_builtins): Set type not flags.
   2559 	* macro.c (struct macro_arg_saved_data): Add type field.
   2560 	(cpp_get_token_1): Check type not NT_VOID.
   2561 	(_cpp_free_definition): Adjust flag clearing.  Nullify
   2562 	value.answers.
   2563 	(_cpp_save_parameter, _cpp_unsave_parameters): Save and restore
   2564 	type.
   2565 	(lex_expansion_token): Check type not flags.
   2566 	(_cpp_create_definition): Set type to NT_USER_MACRO.
   2567 	(_cpp_notify_macro_use): Adjust type checking.
   2568 	* pch.c (write_macdef, count_defs, write_defs, cpp_valid_state)
   2569 	(save_macros): Adjust node type/flag handling.
   2570 	* traditional.c (_cpp_scan_out_logical_line): Check type not flags.
   2571 
   2572 	* directives.c (do_undef): Use cpp_macro_p & cpp_builtin_macro_p.
   2573 	* include/cpplib.h (enum cpp_macro_kind): Remove trailing comma.
   2574 	(cpp_fun_like_macro_p): Make inline, define.
   2575 	* macro.c (cpp_define_lazily): Use UCHAR_MAX.
   2576 	(cpp_fun_like_macro_p): Delete.
   2577 
   2578 	* Makefile.in (TAGS_SOURCES): Remove cpp-id-data.h.
   2579 	* include/cpp-id-data.h: Delete.
   2580 	* internal.h: Include cpplib.h not cpp-id-data.h.
   2581 
   2582 	* include/cpp-id-data.h (struct answer): Delete.
   2583 	* include/cpplib.h (struct answer): Don't forward-declare.
   2584 	(enum cpp_macro_kind): Add cmk_assert.
   2585 	(struct cpp_macro): Union parms and next assert chain.
   2586 	(union _cpp_hashnode_value): 'answer' field is cpp_macro.
   2587 	* directives.c (parse_answer): Convert to use cpp_macro. Return
   2588 	true on success. 
   2589 	(parse_assertion, find_answer, _cpp_test_assertion, cpp_do_assert)
   2590 	(cpp_do_unassert): Convert to use cpp_macro.
   2591 	* macro.c (warn_of_redefinition, _cpp_new_macro)
   2592 	(check_trad_stringification, cpp_macro_definition): Adjust macro
   2593 	parm access.
   2594 	* traditional.c (_cpp_replacement_text_len)
   2595 	(_cpp_copy_replacement_text, _cpp_create_trad_definition): Likewise.
   2596 
   2597 2018-08-17  Nathan Sidwell  <nathan (a] acm.org>
   2598 
   2599 	* include/cpplib.h (struct cpp_callbacks): Replace
   2600 	user_builtin_macro with user_lazy_macro.
   2601 	(struct cpp_macro): add lazy field.
   2602 	(enum cpp_builtin_type): Remove BT_FIRST_USER, BT_LAST_USER.
   2603 	(cpp_define_lazily): Declare.
   2604 	* macro.c (enter_macro_context) Use _cpp_maybe_notify_macro_use.
   2605 	(warn_of_redefinition): Use cpp_builtin_macro_p, directly call
   2606 	user_lazy_macro hook.
   2607 	(_cpp_new_macro): Clear lazy field.
   2608 	(cpp_define_lazily): Define.
   2609 	(_cpp_notify_macro_use): Adjust lazy definition code.
   2610 	(cpp_macro_definition): No need to do lazy definition here.
   2611 	* pch.c (write_macdef, save_macros): Likewise.
   2612 
   2613 	* include/cpplib.h (enum cpp_macro_kind): New.
   2614 	(struct cpp_macro): Make body trailing array.  Add kind field,
   2615 	delete traditional flag.
   2616 	* internal.h (_cpp_new_macro): Declare.
   2617 	(_cpp_reserve_room): New inline.
   2618 	(_cpp_commit_buf): Declare.
   2619 	(_cpp_create_trad_definition): Return new macro.
   2620 	* lex.c (_cpp_commit_buff): New.
   2621 	* macro.c (macro_real_token_count): Count backwards.
   2622 	(replace_args): Pointer equality not orderedness.
   2623 	(_cpp_save_parameter): Use _cpp_reserve_room.
   2624 	(alloc_expansion_token): Delete.
   2625 	(lex_expansion_token): Return macro pointer.  Use _cpp_reserve_room.
   2626 	(create_iso_definition): Allocate macro itself.  Adjust for
   2627 	different allocation ordering.
   2628 	(_cpp_new_macro): New.
   2629 	(_cpp_create_definition): Adjust for API changes.
   2630 	* traditional.c (push_replacement_text): Don't set traditional
   2631 	flag.
   2632 	(save_replacement_text): Likewise.
   2633 	(_cpp_create_trad_definition): Allocate macro itself, Adjust for
   2634 	different allocation ordering.
   2635 
   2636 	* cpp-id-data.h (uchar, UC): Move to internal.h
   2637 	(struct cpp_macro): Move to cpplib.h.
   2638 	* internal.h (uchar, UC): From cpp-id-data.h.
   2639 	* include/cpplib.h (struct cpp_macro): From cpp-id-data.h.
   2640 
   2641 2018-08-16  Nathan Sidwell  <nathan (a] acm.org>
   2642 
   2643 	* internal.h (_cpp_save_parameter): Take parmno, not macro.
   2644 	(_cpp_unsave_parameters): Declare.
   2645 	* macro.c (_cpp_save_parameter): Take parm number, not macro.
   2646 	Return true on success.
   2647 	(_cpp_unsave_parameters): New.
   2648 	(parse_params): Take parm_no and variadic pointers, not macro.
   2649 	Reimplement parsing logic.
   2650 	(create_iso_definition): Adjust parse_params changes.  Call
   2651 	_cpp_unsave_parameters here.
   2652 	(_cpp_create_definition): Don't unsave params here.
   2653 	* traditional.c (scan_parameters): Take n_param pointer, adjust.
   2654 	(_cpp_create_trad_definition): Ajust scan_parameters change.  Call
   2655 	_cpp_unsave_parameters.
   2656 
   2657 	* include/cpplib.h (cpp_user_macro_p, cpp_builtin_macro_p)
   2658 	(cpp_macro_p): New inlines.
   2659 	* directives.c (do_pragma_poison): Use cpp_macro_p.
   2660 	(do_ifdef, do_ifndef): Likewise.  Use _cpp_maybe_notify_macro_use.
   2661 	(cpp_pop_definition): Use cpp_macro_p.  Move _cpp_free_definition
   2662 	earlier.  Don't zap node directly.
   2663 	* expr.c (parse_defined): Use _cpp_maybe_notify_macro_use &
   2664 	cpp_macro_p.
   2665 	* files.c (should_stack_file): Use cpp_macro_p.
   2666 	* identifiers.c (cpp_defined): Likewise.
   2667 	* internal.h (_cpp_mark_macro): Use cpp_user_macro_p.
   2668 	(_cpp_notify_macro_use): Declare.
   2669 	(_cpp_maybe_notify_macro_use): New inline.
   2670 	* lex.c (is_macro): Use cpp_macro_p.
   2671 	* macro.c (_cpp_warn_if_unused_macro): Use cpp_user_macro_p.
   2672 	(enter_macro_context): Likewise.
   2673 	(_cpp_create_definition): Use cpp_builtin_macro_p,
   2674 	cpp_user_macro_p.  Move _cpp_free_definition earlier.
   2675 	(_cpp_notify_macro_use): New, broken out of multiple call sites.
   2676 	* traditional.c (fun_like_macro_p): Use cpp_builtin_macro_p.
   2677 	(maybe_start_funlike, _cpp_scan_out_logical_line)
   2678 	(push_replacement_text): Likewise.
   2679 
   2680 2018-08-15  David Malcolm  <dmalcolm (a] redhat.com>
   2681 
   2682 	* include/line-map.h (struct location_range): Add "m_label" field.
   2683 	(class rich_location): Add description of labels to leading
   2684 	comment.
   2685 	(rich_location::rich_location): Add "label" param, defaulting to
   2686 	NULL.
   2687 	(rich_location::add_range): Likewise.
   2688 	(struct label_text): New struct.
   2689 	(class range_label): New abstract base class.
   2690 	* line-map.c (rich_location::rich_location): Add "label" param;
   2691 	use it.
   2692 	(rich_location::add_range): Likewise.
   2693 
   2694 2018-08-08  Nathan Sidwell  <nathan (a] acm.org>
   2695 
   2696 	Make linemap::included_from a location
   2697 	libcpp/
   2698 	* include/line-map.h (struct line_map_ordinary): Replace
   2699 	included_from map index with included_at source_location.
   2700 	(ORDINARY_MAP_INCLUDER_FILE_INDEX): Delete.
   2701 	(LAST_SOURCE_LINE_LOCATION): Delete.
   2702 	(LAST_SOURCE_LINE, LAST_SOURCE_COLUMN): Delete.
   2703 	(linemap_included_from): New.
   2704 	(linemap_included_from_linemap): Declare.
   2705 	(MAIN_FILE_P): Adjust.
   2706 	* line-map.c (linemap_included_from_linemap): New.
   2707 	(lonemap_check_files_exited): Use linemap_included_at.
   2708 	(linemap_add): Adjust inclusion setting.
   2709 	(linemap_dump, linemap_dump_location): Adjust.
   2710 	* directives.c (do_linemarker): Use linemap_included_at.
   2711 
   2712 2018-08-07  Nathan Sidwell  <nathan (a] acm.org>
   2713 
   2714 	* line-map.c: (linemap_init): Set default allocator here.
   2715 	(new_linemap): Rather than here.  Refactor allocation logic.
   2716 
   2717 2018-07-20  David Malcolm  <dmalcolm (a] redhat.com>
   2718 
   2719 	* include/line-map.h (rich_location::set_range): Remove redundant
   2720 	line_maps * parameter.
   2721 	* line-map.c (rich_location::set_range): Likewise.
   2722 
   2723 2018-07-18  Bernd Edlinger  <bernd.edlinger (a] hotmail.de>
   2724 
   2725 	PR 69558
   2726 	* macro.c (enter_macro_context): Change the location info for builtin
   2727 	macros and _Pragma from location of the closing parenthesis to location
   2728 	of the macro expansion point.
   2729 
   2730 2018-07-17  Jason Franklin  <j_fra (a] fastmail.us>
   2731 	    Jakub Jelinek  <jakub (a] redhat.com>
   2732 
   2733 	* lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN,
   2734 	CPP_DL_WARNING or CPP_DL_ERROR for note that diagnostics for C++ style
   2735 	comments is reported only once per file and guard those calls on the
   2736 	preceding cpp_error returning true.
   2737 
   2738 2018-07-03  Nathan Sidwell  <nathan (a] acm.org>
   2739 
   2740 	Reorg line_map data structures for better packing.
   2741 	* include/line-map.h (enum lc_reason): Add LC_HWM.
   2742 	(LINE_MAP_MAX_LOCATION): Define here.
   2743 	(struct line_map): Move reason field to line_map_ordinary.  Adjust
   2744 	GTY tagging.
   2745 	(struct line_map_ordinary): Reorder fields for less padding.
   2746 	(struct line_map_macro): Likewise.
   2747 	(MAP_ORDINARY_P): New.
   2748 	(linemap_check_ordinary, linemap_check_macro): Adjust.
   2749 	* line-map.c (LINE_MAP_MAX_SOURCE_LOCATION): Delete.
   2750 	(new_linemap): Take start_location, not reason.  Adjust.
   2751 	(linemap_add, linemap_enter_macro): Adjust.
   2752 	(linemap_line_start): Likewise.
   2753 	(linemap_macro_expansion_map_p): Use MAP_ORDINARY_P.
   2754 	(linemap_macro_loc_to_spelling_point): Likewise.
   2755 	(linemap_macro_loc_to_def_point): Likewise.
   2756 	(linemap_dump): Likewise.
   2757 
   2758 2018-05-23  Jason Merrill  <jason (a] redhat.com>
   2759 
   2760 	* system.h: #include <new> earlier.
   2761 
   2762 2018-05-17  Jason Merrill  <jason (a] redhat.com>
   2763 
   2764 	* line-map.c (linemap_init): Use placement new.
   2765 	* system.h: #include <new>.
   2766 
   2767 2018-03-14  David Malcolm  <dmalcolm (a] redhat.com>
   2768 
   2769 	* include/line-map.h (compare): New function on linenum_type.
   2770 
   2771 2018-02-28  Jonathan Wakely  <jwakely (a] redhat.com>
   2772 
   2773 	PR preprocessor/84517
   2774 	* lex.c (is_macro_not_literal_suffix): New function.
   2775 	(lex_raw_string, lex_string): Use is_macro_not_literal_suffix to
   2776 	decide when to issue -Wliteral-suffix warnings.
   2777 
   2778 2018-02-16  Richard Biener  <rguenther (a] suse.de>
   2779 
   2780 	PR bootstrap/82939
   2781 	* line-map.c (linemap_init): Avoid broken value-init when compiling
   2782 	with GCC 4.2.
   2783 
   2784 2018-02-15  Jason Merrill  <jason (a] redhat.com>
   2785 	    Jakub Jelinek  <jakub (a] redhat.com>
   2786 
   2787 	PR preprocessor/83063 - __VA_OPT__ and ##
   2788 	PR preprocessor/83708
   2789 	* macro.c (vaopt_state): Reorder m_last_was_paste before m_state.
   2790 	(vaopt_state::vaopt_state): Adjust.
   2791 	(vaopt_state::update_flags): Add BEGIN and END.
   2792 	(vaopt_state::update): Return them.
   2793 	(copy_paste_flag): Factor out of replace_args.
   2794 	(last_token_is): New.
   2795 	(replace_args): Handle BEGIN and END.  Avoid padding there.
   2796 	(tokens_buff_last_token_ptr): Return NULL if no tokens.
   2797 
   2798 2018-01-31  Jakub Jelinek  <jakub (a] redhat.com>
   2799 
   2800 	PR preprocessor/69869
   2801 	* traditional.c (skip_macro_block_comment): Return bool, true if
   2802 	the macro block comment is unterminated.
   2803 	(copy_comment): Use return value from skip_macro_block_comment instead
   2804 	of always false.
   2805 
   2806 2018-01-27  Jakub Jelinek  <jakub (a] redhat.com>
   2807 
   2808 	* include/cpplib.h (enum cpp_builtin_type): Change BT_LAST_USER from
   2809 	BT_FIRST_USER + 31 to BT_FIRST_USER + 63.
   2810 
   2811 2018-01-18  Boris Kolpackov  <boris (a] codesynthesis.com>
   2812 
   2813 	PR other/70268
   2814 	* include/cpplib.h (cpp_callbacks::remap_filename): New callback.
   2815 	* macro.c (_cpp_builtin_macro_text): Call remap_filename for
   2816 	__FILE__ and __BASE_FILE__.
   2817 
   2818 2018-01-10  Kelvin Nilsen  <kelvin (a] gcc.gnu.org>
   2819 
   2820 	* lex.c (search_line_fast): Remove illegal coercion of an
   2821 	unaligned pointer value to vector pointer type and replace with
   2822 	use of __builtin_vec_vsx_ld () built-in function, which operates
   2823 	on unaligned pointer values.
   2824 
   2825 2018-01-03  Jakub Jelinek  <jakub (a] redhat.com>
   2826 
   2827 	Update copyright years.
   2828 
   2829 2017-12-20  Michael Weiser  <michael.weiser (a] gmx.de>
   2830 
   2831 	PR preprocessor/83492
   2832 	* lex.c (search_line_fast) [__ARM_NEON && __ARM_64BIT_STATE]:
   2833 	Fix selection of big-endian shift parameters by using
   2834 	__ARM_BIG_ENDIAN.
   2835 
   2836 2017-12-14  Bernd Edlinger  <bernd.edlinger (a] hotmail.de>
   2837 
   2838 	* internal.h (maybe_print_line): Change signature.
   2839 
   2840 2017-12-05  Jakub Jelinek  <jakub (a] redhat.com>
   2841 
   2842 	PR c++/79228
   2843 	* expr.c (interpret_float_suffix): Avoid memcmp.
   2844 	(interpret_int_suffix): Likewise.  Don't check for if.
   2845 
   2846 2017-12-01  Jason Merrill  <jason (a] redhat.com>
   2847 
   2848 	PR c++/79228 - extensions hide C++14 complex literal operators
   2849 	* expr.c (interpret_float_suffix): Ignore 'i' in C++14 and up.
   2850 	(interpret_int_suffix): Likewise.
   2851 
   2852 2017-11-28  David Malcolm  <dmalcolm (a] redhat.com>
   2853 
   2854 	PR c/82050
   2855 	* include/line-map.h (LINE_MAP_MAX_COLUMN_NUMBER): Move here.
   2856 	* line-map.c (LINE_MAP_MAX_COLUMN_NUMBER): ...from here.
   2857 	(rich_location::maybe_add_fixit): Reject fix-it hints in which
   2858 	the start column exceeds the next column.
   2859 
   2860 2017-11-20  Eric Gallager  <egall (a] gwmail.gwu.edu>
   2861 
   2862 	PR preprocessor/81794
   2863 	* macro.c (check_trad_stringification): Have warning be controlled
   2864 	by -Wtraditional.
   2865 
   2866 2017-11-20  David Malcolm  <dmalcolm (a] redhat.com>
   2867 
   2868 	PR c++/72786
   2869 	* include/cpplib.h (cpp_macro_definition_location): New decl.
   2870 	* macro.c (cpp_macro_definition): New function.
   2871 
   2872 2017-11-13  Tom Tromey  <tom (a] tromey.com>
   2873 
   2874 	* pch.c (cpp_read_state): Set n__VA_OPT__.
   2875 	* macro.c (vaopt_state): New class.
   2876 	(_cpp_arguments_ok): Check va_opt flag.
   2877 	(replace_args, create_iso_definition): Use vaopt_state.
   2878 	* lex.c (lex_identifier_intern): Possibly issue errors for
   2879 	__VA_OPT__.
   2880 	(lex_identifier): Likewise.
   2881 	(maybe_va_opt_error): New function.
   2882 	* internal.h (struct lexer_state) <va_args_ok>: Update comment.
   2883 	(struct spec_nodes) <n__VA_OPT__>: New field.
   2884 	* init.c (struct lang_flags) <va_opt>: New field.
   2885 	(lang_defaults): Add entries for C++2A.  Update all entries for
   2886 	va_opt.
   2887 	(cpp_set_lang): Initialize va_opt.
   2888 	* include/cpplib.h (struct cpp_options) <va_opt>: New field.
   2889 	* identifiers.c (_cpp_init_hashtable): Initialize n__VA_OPT__.
   2890 
   2891 2017-11-13  David Malcolm  <dmalcolm (a] redhat.com>
   2892 
   2893 	* include/line-map.h (linenum_type): Move this typedef and the
   2894 	comment describing column numbering to near the top of the file.
   2895 
   2896 2017-11-06  Mukesh Kapoor  <mukesh.kapoor (a] oracle.com>
   2897 
   2898 	PR c++/80955
   2899 	* lex.c (lex_string): When checking for a valid macro for the
   2900 	warning related to -Wliteral-suffix (CPP_W_LITERAL_SUFFIX),
   2901 	check that the macro name does not start with an underscore
   2902 	before calling is_macro().
   2903 
   2904 2017-11-05  Tom de Vries  <tom (a] codesourcery.com>
   2905 
   2906 	PR other/82784
   2907 	* lex.c (BUF_APPEND): Remove semicolon after
   2908 	"do {} while (0)".
   2909 
   2910 2017-10-31  David Malcolm  <dmalcolm (a] redhat.com>
   2911 
   2912 	* directives.c (_cpp_handle_directive): Update for renaming of
   2913 	cpp_error_at_richloc to cpp_error_at.
   2914 	* errors.c (cpp_diagnostic_at_richloc): Rename to...
   2915 	(cpp_diagnostic_at): ...this, dropping the location_t-based
   2916 	implementation.
   2917 	(cpp_diagnostic): Update for removal of location_t-based
   2918 	cpp_diagnostic_at.
   2919 	(cpp_error_at): Likewise.
   2920 	(cpp_error_at_richloc): Rename to...
   2921 	(cpp_error_at): ...this, and update for renaming of
   2922 	cpp_diagnostic_at_richloc.
   2923 	* include/cpplib.h (cpp_error_at_richloc): Rename to...
   2924 	(cpp_error_at): ...this.
   2925 
   2926 2017-10-30  Joseph Myers  <joseph (a] codesourcery.com>
   2927 
   2928 	* include/cpplib.h (enum c_lang): Add CLK_GNUC17 and CLK_STDC17.
   2929 	* init.c (lang_defaults): Add GNUC17 and STDC17 data.
   2930 	(cpp_init_builtins): Handle C17 value of __STDC_VERSION__.
   2931 
   2932 2017-10-10  Nathan Sidwell  <nathan (a] acm.org>
   2933 
   2934 	PR preprocessor/82506
   2935 	* macro.c (cpp_quote_string): Escape raw LFs.
   2936 
   2937 2017-09-15  Andrew Sutton  <andrew.n.sutton (a] gmail.com>
   2938 	    Jakub Jelinek  <jakub (a] redhat.com>
   2939 
   2940 	Add support for -std=c++2a.
   2941 	* include/cpplib.h (c_lang): Add CXX2A and GNUCXX2A.
   2942 	* init.c (lang_defaults): Add rows for CXX2A and GNUCXX2A.
   2943 	(cpp_init_builtins): Set __cplusplus to 201709L for C++2a.
   2944 
   2945 2017-09-15  Jakub Jelinek  <jakub (a] redhat.com>
   2946 
   2947 	* include/cpplib.h (enum c_lang): Rename CLK_GNUCXX1Z
   2948 	to CLK_GNUCXX17 and CLK_CXX1Z to CLK_CXX17.
   2949 	* init.c (lang_defaults, cpp_init_builtins): Likewise.
   2950 	* expr.c (cpp_classify_number): Use C++17 instead of C++1z
   2951 	in diagnostics.
   2952 
   2953 2017-07-07  David Malcolm  <dmalcolm (a] redhat.com>
   2954 
   2955 	PR c++/79300
   2956 	* line-map.c (linemap_macro_loc_to_def_point): Preserve range
   2957 	information for macro expansions by delaying resolving ad-hoc
   2958 	locations until within the loop.
   2959 
   2960 2017-07-06  David Malcolm  <dmalcolm (a] redhat.com>
   2961 
   2962 	PR c++/79300
   2963 	* include/line-map.h (enum location_aspect): New enum.
   2964 	(linemap_client_expand_location_to_spelling_point): Add
   2965 	enum location_aspect param.
   2966 	* line-map.c (rich_location::get_expanded_location): Update for
   2967 	new param of linemap_client_expand_location_to_spelling_point.
   2968 	(rich_location::maybe_add_fixit): Likewise.
   2969 	(fixit_hint::affects_line_p): Likewise.
   2970 
   2971 2017-06-21  Jakub Jelinek  <jakub (a] redhat.com>
   2972 
   2973 	* line-map.c (location_adhoc_data_update): Perform addition in
   2974 	uintptr_t type rather than char * type.  Read *data using
   2975 	ptrdiff_t type instead of int64_t.
   2976 	(get_combined_adhoc_loc): Change offset type to ptrdiff_t from
   2977 	int64_t.
   2978 
   2979 2017-06-20  David Malcolm  <dmalcolm (a] redhat.com>
   2980 
   2981 	* include/line-map.h (class rich_location): Document that attempts
   2982 	to delete or replace a range *affecting* multiple lines will fail.
   2983 	* line-map.c (rich_location::maybe_add_fixit): Implement this
   2984 	restriction.
   2985 
   2986 2017-06-09  David Malcolm  <dmalcolm (a] redhat.com>
   2987 
   2988 	* include/line-map.h
   2989 	(rich_location::fixits_cannot_be_auto_applied): New method.
   2990 	(rich_location::fixits_can_be_auto_applied_p): New accessor.
   2991 	(rich_location::m_fixits_cannot_be_auto_applied): New field.
   2992 	* line-map.c (rich_location::rich_location): Initialize new field.
   2993 
   2994 2017-06-05  David Malcolm  <dmalcolm (a] redhat.com>
   2995 
   2996 	* include/cpplib.h (struct cpp_callbacks): Add "comment"
   2997 	callback.
   2998 	* lex.c (_cpp_lex_direct): Call the comment callback if non-NULL.
   2999 
   3000 2017-05-02  David Malcolm  <dmalcolm (a] redhat.com>
   3001 
   3002 	* include/line-map.h (class rich_location): Update description of
   3003 	newline handling.
   3004 	(class fixit_hint): Likewise.
   3005 	(fixit_hint::ends_with_newline_p): New decl.
   3006 	* line-map.c (rich_location::maybe_add_fixit): Support newlines
   3007 	in fix-it hints that are insertions of single lines at the start
   3008 	of a line.  Don't consolidate into such fix-it hints.
   3009 	(fixit_hint::ends_with_newline_p): New method.
   3010 
   3011 2017-05-01  David Malcolm  <dmalcolm (a] redhat.com>
   3012 
   3013 	* include/line-map.h (source_range::intersects_line_p): Delete.
   3014 	(rich_location::add_fixit): Delete.
   3015 	(rich_location::maybe_add_fixit): New method.
   3016 	(class fixit_hint): Reimplement in terms of...
   3017 	(class fixit_replace): ...this.
   3018 	(class fixit_insert): Delete.
   3019 	* line-map.c (linemap_position_for_loc_and_offset): Drop overzealous
   3020 	linemap_assert_fails.
   3021 	(source_range::intersects_line_p): Rename to...
   3022 	(fixit_hint::affects_line_p): New function.
   3023 	(rich_location::add_fixit_insert_before): Reimplement in terms of
   3024 	maybe_add_fixit, moving validation there.
   3025 	(rich_location::add_fixit_insert_after): Likewise.
   3026 	(column_before_p): Delete.
   3027 	(rich_location::add_fixit_replace): Reimplement in terms of
   3028 	maybe_add_fixit, moving validation there.  Convert closed input range
   3029 	to half-open range.
   3030 	(rich_location::add_fixit): Delete.
   3031 	(rich_location::maybe_add_fixit): New function.
   3032 	(fixit_insert::fixit_insert): Delete.
   3033 	(fixit_insert::~fixit_insert): Delete.
   3034 	(fixit_insert::affects_line_p): Delete.
   3035 	(fixit_insert::maybe_append_replace): Delete.
   3036 	(fixit_replace::fixit_replace): Rename to...
   3037 	(fixit_hint::fixit_hint): ...this, rewriting as necessary.
   3038 	(fixit_replace::~fixit_replace): Delete.
   3039 	(fixit_replace::affects_line_p): Delete.
   3040 	(fixit_replace::maybe_append_replace): Rename to...
   3041 	(fixit_hint::maybe_append): ...this, rewriting as necessary.
   3042 
   3043 2017-04-03  Jonathan Wakely  <jwakely (a] redhat.com>
   3044 
   3045 	* include/line-map.h (LINEMAPS_MACRO_MAPS): Fix typo in comment.
   3046 	* lex.c (search_line_fast): Likewise.
   3047 	* pch.h (cpp_valid_state): Likewise.
   3048 
   3049 2017-03-21  Andreas Schwab  <schwab (a] suse.de>
   3050 
   3051 	* lex.c (search_line_fast) [__ARM_NEON && __ARM_64BIT_STATE]:
   3052 	Convert 64-bit value to boolean before passing to
   3053 	__builtin_expect.
   3054 
   3055 2017-03-16  Jason Merrill  <jason (a] redhat.com>
   3056 
   3057 	* init.c (cpp_init_builtins): Update __cplusplus for C++17.
   3058 
   3059 2017-02-09  Gerald Pfeifer  <gerald (a] pfeifer.com>
   3060 
   3061 	* Makefile.in (po/$(PACKAGE).pot): Adjust bug reporting URL.
   3062 
   3063 2017-01-10  David Malcolm  <dmalcolm (a] redhat.com>
   3064 
   3065 	PR c++/77949
   3066 	* line-map.c (linemap_position_for_column): When calling
   3067 	linemap_start_line, detect if a new linemap was created with
   3068 	0 column bits, and bail out early if this is the case.
   3069 	(linemap_position_for_loc_and_offset): Replace overzealous
   3070 	linemap_assert_fails with a simple conditional; use correct
   3071 	bit count.
   3072 
   3073 2017-01-07  David Malcolm  <dmalcolm (a] redhat.com>
   3074 
   3075 	PR c++/72803
   3076 	* line-map.c (linemap_line_start): When determining if the highest
   3077 	column given out so far will fit into a proposed change to the
   3078 	current map, use the effective number of column bits, rather than
   3079 	the total number of column + range bits.
   3080 
   3081 2017-01-01  Jakub Jelinek  <jakub (a] redhat.com>
   3082 
   3083 	Update copyright years.
   3084 
   3085 2016-12-15  David Malcolm  <dmalcolm (a] redhat.com>
   3086 
   3087 	PR preprocessor/78680
   3088 	PR preprocessor/78811
   3089 	* lex.c (_cpp_lex_direct): Only determine the end-location of
   3090 	the token and build a range for non-reserved start locations.
   3091 	Do not do it for EOF tokens.
   3092 
   3093 2016-12-12  David Malcolm  <dmalcolm (a] redhat.com>
   3094 
   3095 	PR preprocessor/78680
   3096 	* lex.c (_cpp_lex_direct): Ensure line notes are processed before
   3097 	computing the end-point of the token.
   3098 
   3099 2016-11-23  Paolo Bonzini  <bonzini (a] gnu.org>
   3100 
   3101 	* include/cpplib.h (struct cpp_options): Add new member
   3102 	warn_expansion_to_defined.
   3103 	(CPP_W_EXPANSION_TO_DEFINED): New enum member.
   3104 	* expr.c (parse_defined): Warn for all uses of "defined"
   3105 	in macros, and tie warning to CPP_W_EXPANSION_TO_DEFINED.
   3106 	Make it a pedwarning instead of a warning.
   3107 	* system.h (HAVE_DESIGNATED_INITIALIZERS): Do not use
   3108 	"defined" in macros.
   3109 
   3110 2016-11-17  David Malcolm  <dmalcolm (a] redhat.com>
   3111 
   3112 	* charset.c (cpp_interpret_string_1): Skip locations from
   3113 	loc_reader when advancing 'p' when handling raw strings.
   3114 
   3115 2016-11-16  Jakub Jelinek  <jakub (a] redhat.com>
   3116 
   3117 	PR bootstrap/72823
   3118 	* configure.ac (ENABLE_ASSERT_CHECKING): Define if gcc configure
   3119 	would define that macro.
   3120 	* configure: Regenerated.
   3121 	* config.in: Regenerated.
   3122 
   3123 2016-11-08  Richard Earnshaw  <rearnsha (a] arm.com>
   3124 
   3125 	* lex.c (search_line_fast): New implementation for AArch64.
   3126 
   3127 2016-10-25  David Malcolm  <dmalcolm (a] redhat.com>
   3128 
   3129 	* files.c (destroy_cpp_file): Free file->path.
   3130 
   3131 2016-10-25  David Malcolm  <dmalcolm (a] redhat.com>
   3132 
   3133 	* include/line-map.h (line_maps::~line_maps): New dtor.
   3134 	(location_adhoc_data_fini): Delete decl.
   3135 	* line-map.c (line_maps::~line_maps): New dtor.
   3136 	(location_adhoc_data_fini): Delete.
   3137 
   3138 2016-10-21  Andris Pavenis  <andris.pavenis (a] iki.fi>
   3139 
   3140 	PR preprocessor/71681
   3141 	* files.c (remap_filename): Fix handling -remap in subdirectories.
   3142 
   3143 2016-10-12  Jakub Jelinek  <jakub (a] redhat.com>
   3144 
   3145 	* include/cpplib.h (struct cpp_options): Add
   3146 	cpp_warn_implicit_fallthrough.
   3147 	* init.c (cpp_create_reader): Initialize it to 0.
   3148 	* lex.c (fallthrough_comment_p): Handle different
   3149 	cpp_warn_implicit_fallthrough levels.  Whitespace fixes.
   3150 
   3151 2016-10-08  Jakub Jelinek  <jakub (a] redhat.com>
   3152 
   3153 	* lex.c (fallthrough_comment_p): Accept Else, fallthrough.
   3154 
   3155 	* lex.c (fallthrough_comment_p): Extend to handle more common FALLTHRU
   3156 	comment styles.
   3157 
   3158 	* lex.c (fallthrough_comment_p): Fix off-by-one size comparison
   3159 	errors, cleanup.
   3160 	(_cpp_lex_direct): Allow arbitrary comments in between
   3161 	fallthrough_comment_p comment and following token.
   3162 
   3163 2016-10-04  Kelvin Nilsen  <kelvin (a] gcc.gnu.org>
   3164 
   3165 	PR target/77847
   3166 	* lex.c (search_line_fast): Add a FALLTHROUGH comment to correct
   3167 	compiler error in the version of this function that is
   3168 	conditionally compiled when GCC_VERSION >= 4005 and both
   3169 	__ALTIVEC__ and __BIG_ENDIAN__ symbols are defined.
   3170 
   3171 2016-09-26  Marek Polacek  <polacek (a] redhat.com>
   3172 	    Jakub Jelinek  <jakub (a] redhat.com>
   3173 
   3174 	PR c/7652
   3175 	* include/cpplib.h (PREV_FALLTHROUGH): Define.
   3176 	* internal.h (CPP_FALLTHRU): Define.
   3177 	* lex.c (fallthrough_comment_p): New function.
   3178 	(_cpp_lex_direct): Set PREV_FALLTHROUGH on tokens succeeding a falls
   3179 	through comment.
   3180 
   3181 2016-09-23  David Malcolm  <dmalcolm (a] redhat.com>
   3182 
   3183 	PR preprocessor/77672
   3184 	* charset.c (cpp_interpret_string_1): Add a source_range for the
   3185 	NUL-terminator, using the location of the trailing quote of the
   3186 	final string.
   3187 
   3188 2016-09-21  Jason Merrill  <jason (a] redhat.com>
   3189 
   3190 	* line-map.c (linemap_location_from_macro_definition_p): New.
   3191 	* line-map.h: Declare it.
   3192 
   3193 2016-09-15  David Malcolm  <dmalcolm (a] redhat.com>
   3194 
   3195 	* include/line-map.h (class rich_location): Note that newlines
   3196 	aren't supported in fix-it text.
   3197 	* line-map.c (rich_location::add_fixit_insert_before): Reject
   3198 	attempts to add fix-its containing newlines.
   3199 	(rich_location::add_fixit_replace): Likewise.
   3200 
   3201 2016-09-13  David Malcolm  <dmalcolm (a] redhat.com>
   3202 
   3203 	* include/line-map.h (class rich_location): Add description of
   3204 	fix-it hints to leading comment.
   3205 	(rich_location::add_fixit_insert): Rename both overloaded methods
   3206 	to..
   3207 	(rich_location::add_fixit_insert_before): ...this, updating their
   3208 	comments.
   3209 	(rich_location::add_fixit_insert_after): Two new overloaded
   3210 	methods.
   3211 	(rich_location::stop_supporting_fixits): New method.
   3212 	* line-map.c (rich_location::add_fixit_insert): Rename both
   3213 	overloaded methods to..
   3214 	(rich_location::add_fixit_insert_before): ...this, updating their
   3215 	comments.
   3216 	(rich_location::add_fixit_insert_after): Two new methods.
   3217 	(rich_location::reject_impossible_fixit): Split out
   3218 	failure-handling into...
   3219 	(rich_location::stop_supporting_fixits): New method.
   3220 
   3221 2016-09-02  David Malcolm  <dmalcolm (a] redhat.com>
   3222 
   3223 	* include/line-map.h (rich_location::seen_impossible_fixit_p): New
   3224 	accessor.
   3225 
   3226 2016-08-31  David Malcolm  <dmalcolm (a] redhat.com>
   3227 
   3228 	* include/line-map.h (class fixit_remove): Remove stray decl.
   3229 	(fixit_hint::affects_line_p): Make const.
   3230 	(fixit_insert::affects_line_p): Likewise.
   3231 	(fixit_replace::affects_line_p): Likewise.
   3232 	* line-map.c (fixit_insert::affects_line_p): Likewise.
   3233 	(fixit_replace::affects_line_p): Likewise.
   3234 
   3235 2016-08-30  David Malcolm  <dmalcolm (a] redhat.com>
   3236 
   3237 	* include/line-map.h (class semi_embedded_vec): New class.
   3238 	(semi_embedded_vec<T, NUM_EMBEDDED>::semi_embedded_vec): New ctor.
   3239 	(semi_embedded_vec<T, NUM_EMBEDDED>::~semi_embedded_vec): New
   3240 	dtor.
   3241 	(semi_embedded_vec<T, NUM_EMBEDDED>::operator[]): New methods.
   3242 	(semi_embedded_vec<T, NUM_EMBEDDED>::push): New method.
   3243 	(semi_embedded_vec<T, NUM_EMBEDDED>::truncate): New method.
   3244 	(rich_location::get_num_locations): Reimplement in terms of
   3245 	m_ranges.
   3246 	(rich_location::get_range): Make non-inline.
   3247 	(rich_location::get_num_fixit_hints): Reimplement in terms of
   3248 	m_fixit_hints.
   3249 	(rich_location::add_fixit): New function.
   3250 	(rich_location::MAX_RANGES): Rename to...
   3251 	(rich_location::STATICALLY_ALLOCATED_RANGES): ...this.
   3252 	(rich_location::MAX_FIXIT_HINTS): Rename to...
   3253 	(rich_location::STATICALLY_ALLOCATED_RANGES): ...this, and make
   3254 	private.
   3255 	(rich_location::m_num_ranges): Eliminate in favor of...
   3256 	(rich_location::m_ranges): ...this, converting from a fixed-size
   3257 	array to a semi_embedded_vec.
   3258 	(rich_location::m_num_fixit_hints): Eliminate in favor of...
   3259 	(rich_location::m_fixit_hints): ...this, converting from a
   3260 	fixed-size array to a semi_embedded_vec.
   3261 	* line-map.c (rich_location::rich_location): Update for above
   3262 	changes.
   3263 	(rich_location::~rich_location): Likewise.
   3264 	(rich_location::get_loc): Likewise.
   3265 	(rich_location::get_range): New methods.
   3266 	(rich_location::add_range): Update for above changes.
   3267 	(rich_location::set_range): Likewise.
   3268 	(rich_location::add_fixit_insert): Likewise.
   3269 	(rich_location::add_fixit_replace): Likewise.
   3270 	(rich_location::get_last_fixit_hint): Likewise.
   3271 	(rich_location::reject_impossible_fixit): Likewise.
   3272 	(rich_location::add_fixit): New method.
   3273 
   3274 2016-08-30  David Malcolm  <dmalcolm (a] redhat.com>
   3275 
   3276 	* include/line-map.h (rich_location::add_fixit_insert): Add
   3277 	comments.  Add overload omitting the source_location param.
   3278 	(rich_location::add_fixit_remove): Add comments.  Add overloads
   3279 	omitting the range, and accepting a source_location.
   3280 	(rich_location::add_fixit_replace): Likewise.
   3281 	* line-map.c (rich_location::add_fixit_insert): Add comments.  Add
   3282 	overload omitting the source_location param.
   3283 	(rich_location::add_fixit_remove): Add comments.  Add overloads
   3284 	omitting the range, and accepting a source_location.
   3285 	(rich_location::add_fixit_replace): Likewise.
   3286 
   3287 2016-08-26  David Malcolm  <dmalcolm (a] redhat.com>
   3288 
   3289 	* include/line-map.h (get_pure_location): New decl.
   3290 	* line-map.c (get_pure_location): Move here, from gcc/input.c, adding
   3291 	a line_maps * param.
   3292 	(rich_location::add_fixit_insert): Call get_pure_location on "where".
   3293 	(rich_location::add_fixit_replace): Call get_pure_location on the
   3294 	end-points.
   3295 
   3296 2016-08-26  David Malcolm  <dmalcolm (a] redhat.com>
   3297 
   3298 	* include/line-map.h (rich_location): Eliminate unimplemented
   3299 	constructor based on source_range.
   3300 	(rich_location::get_last_fixit_hint): New method.
   3301 	(rich_location::reject_impossible_fixit): New method.
   3302 	(rich_location): Add fields m_line_table and
   3303 	m_seen_impossible_fixit.
   3304 	(fixit_hint::maybe_append_replace): New pure virtual function.
   3305 	(fixit_insert::maybe_append_replace): New function.
   3306 	(fixit_replace::maybe_append_replace): New function.
   3307 	* line-map.c (rich_location::rich_location): Initialize
   3308 	m_line_table and m_seen_impossible_fixit.
   3309 	(rich_location::add_fixit_insert): Call
   3310 	reject_impossible_fixit and bail out if true.
   3311 	(column_before_p): New function.
   3312 	(rich_location::add_fixit_replace): Call reject_impossible_fixit
   3313 	and bail out if true.  Attempt to consolidate with neighboring
   3314 	fixits.
   3315 	(rich_location::get_last_fixit_hint): New method.
   3316 	(rich_location::reject_impossible_fixit): New method.
   3317 	(fixit_insert::maybe_append_replace): New method.
   3318 	(fixit_replace::maybe_append_replace): New method.
   3319 
   3320 2016-08-23  David Malcolm  <dmalcolm (a] redhat.com>
   3321 
   3322 	* include/line-map.h (source_range::from_locations): New method.
   3323 
   3324 2016-08-19  David Malcolm  <dmalcolm (a] redhat.com>
   3325 
   3326 	* include/line-map.h (fixit_hint::kind): Delete REPLACE.
   3327 	(class fixit_remove): Delete.
   3328 	* line-map.c (rich_location::add_fixit_remove): Reimplement
   3329 	by calling add_fixit_replace with an empty string.
   3330 	(fixit_remove::fixit_remove): Delete.
   3331 	(fixit_remove::affects_line_p): Delete.
   3332 
   3333 2016-08-19  Joseph Myers  <joseph (a] codesourcery.com>
   3334 
   3335 	PR c/32187
   3336 	* include/cpplib.h (CPP_N_FLOATN, CPP_N_FLOATNX)
   3337 	(CPP_N_WIDTH_FLOATN_NX, CPP_FLOATN_SHIFT, CPP_FLOATN_MAX): New
   3338 	macros.
   3339 	* expr.c (interpret_float_suffix): Handle fN, fNx, FN and FNx
   3340 	suffixes.
   3341 
   3342 2016-08-19  Prathamesh Kulkarni  <prathamesh.kulkarni (a] linaro.org>
   3343 
   3344 	* expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic.
   3345 
   3346 2016-08-18  David Malcolm  <dmalcolm (a] redhat.com>
   3347 
   3348 	* directives.c (directive_names): New array.
   3349 	(_cpp_handle_directive): Offer spelling suggestions for misspelled
   3350 	directives.
   3351 	* errors.c (cpp_diagnostic_at_richloc): New function.
   3352 	(cpp_error_at_richloc): New function.
   3353 	* include/cpplib.h (struct cpp_callbacks): Add field
   3354 	"get_suggestion".
   3355 	(cpp_error_at_richloc): New decl.
   3356 
   3357 2016-08-18  Marek Polacek  <polacek (a] redhat.com>
   3358 
   3359 	PR c/7652
   3360 	* pch.c (write_macdef): Add CPP_FALLTHRU.
   3361 
   3362 2016-08-12  Marek Polacek  <polacek (a] redhat.com>
   3363 
   3364 	PR c/7652
   3365 	* lex.c (search_line_fast): Add FALLTHRU.
   3366 	(_cpp_lex_direct): Likewise.
   3367 	(cpp_token_val_index): Adjust fall through comment.
   3368 	* macro.c (parse_params): Add FALLTHRU.
   3369 	* pch.c (count_defs): Adjust fall through comment.
   3370 	(write_defs): Likewise.
   3371 
   3372 2016-08-06  David Malcolm  <dmalcolm (a] redhat.com>
   3373 
   3374 	PR bootstrap/72823
   3375 	* charset.c (_cpp_valid_ucn): Replace overzealous assert with one
   3376 	that allows for char_range to be non-NULL when loc_reader is NULL.
   3377 
   3378 2016-08-05  David Malcolm  <dmalcolm (a] redhat.com>
   3379 
   3380 	* charset.c (cpp_substring_ranges::cpp_substring_ranges): New
   3381 	constructor.
   3382 	(cpp_substring_ranges::~cpp_substring_ranges): New destructor.
   3383 	(cpp_substring_ranges::add_range): New method.
   3384 	(cpp_substring_ranges::add_n_ranges): New method.
   3385 	(_cpp_valid_ucn): Add "char_range" and "loc_reader" params; if
   3386 	they are non-NULL, read position information from *loc_reader
   3387 	and update char_range->m_finish accordingly.
   3388 	(convert_ucn): Add "char_range", "loc_reader", and "ranges"
   3389 	params.  If loc_reader is non-NULL, read location information from
   3390 	it, and update *ranges accordingly, using char_range.
   3391 	Conditionalize the conversion into tbuf on tbuf being non-NULL.
   3392 	(convert_hex): Likewise, conditionalizing the call to
   3393 	emit_numeric_escape on tbuf.
   3394 	(convert_oct): Likewise.
   3395 	(convert_escape): Add params "loc_reader" and "ranges".  If
   3396 	loc_reader is non-NULL, read location information from it, and
   3397 	update *ranges accordingly.  Conditionalize the conversion into
   3398 	tbuf on tbuf being non-NULL.
   3399 	(cpp_interpret_string): Rename to...
   3400 	(cpp_interpret_string_1): ...this, adding params "loc_readers" and
   3401 	"out".  Use "to" to conditionalize the initialization and usage of
   3402 	"tbuf", such as running the converter.  If "loc_readers" is
   3403 	non-NULL, use the instances within it, reading location
   3404 	information from them, and passing them to convert_escape; likewise
   3405 	write to "out" if loc_readers is non-NULL.  Check for leading
   3406 	quote and issue an error if it is not present.  Update boundary
   3407 	check from "== limit" to ">= limit" to protect against erroneous
   3408 	location values to calls that are not parsing string literals.
   3409 	(cpp_interpret_string): Reimplement in terms to
   3410 	cpp_interpret_string_1.
   3411 	(noop_error_cb): New function.
   3412 	(cpp_interpret_string_ranges): New function.
   3413 	(cpp_string_location_reader::cpp_string_location_reader): New
   3414 	constructor.
   3415 	(cpp_string_location_reader::get_next): New method.
   3416 	* include/cpplib.h (class cpp_string_location_reader): New class.
   3417 	(class cpp_substring_ranges): New class.
   3418 	(cpp_interpret_string_ranges): New prototype.
   3419 	* internal.h (_cpp_valid_ucn): Add params "char_range" and
   3420 	"loc_reader".
   3421 	* lex.c (forms_identifier_p): Pass NULL for new params to
   3422 	_cpp_valid_ucn.
   3423 
   3424 2016-08-01  Andreas Schwab  <schwab (a] suse.de>
   3425 
   3426 	* include/cpplib.h: Fix comment typo.
   3427 
   3428 2016-07-27  David Malcolm  <dmalcolm (a] redhat.com>
   3429 
   3430 	* include/line-map.h (source_location): Fix line numbers in
   3431 	comment.
   3432 
   3433 2016-07-11  David Malcolm  <dmalcolm (a] redhat.com>
   3434 
   3435 	* include/line-map.h (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES):
   3436 	Move here from line-map.c.
   3437 	(LINE_MAP_MAX_LOCATION_WITH_COLS): Likewise.
   3438 	* line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): Move from
   3439 	here to line-map.h.
   3440 	(LINE_MAP_MAX_LOCATION_WITH_COLS): Likewise.
   3441 
   3442 2016-06-22  David Malcolm  <dmalcolm (a] redhat.com>
   3443 
   3444 	* directives.c (do_include_common): Pass on "location" to
   3445 	_cpp_stack_include.
   3446 	* errors.c (cpp_diagnostic): Reimplement in terms of...
   3447 	(cpp_diagnostic_at): New function.
   3448 	(cpp_error_at): New function.
   3449 	(cpp_errno_filename): Add "loc" param and use it by using
   3450 	cpp_error_at rather than cpp_error.
   3451 	* files.c (find_file_in_dir): Add "loc" param and pass it to
   3452 	open_file_failed.
   3453 	(_cpp_find_file): Add "loc" param.  Use it to convert calls to
   3454 	cpp_error to cpp_error_at, and pass it to find_file_in_dir and
   3455 	open_file_failed.
   3456 	(read_file_guts): Add "loc" param.  Use it to convert calls to
   3457 	cpp_error to cpp_error_at.  Pass it to cpp_errno_filename.
   3458 	(read_file): Add "loc" param.  Pass it to open_file_failed and
   3459 	read_file_guts.
   3460 	(should_stack_file): Add "loc" param.  Pass it to read_file.
   3461 	(_cpp_stack_file): Add "loc" param.  Pass it to should_stack_file.
   3462 	(_cpp_stack_include): Add "loc" param.  Pass it to
   3463 	_cpp_find_file and _cpp_stack_file.
   3464 	(open_file_failed): Add "loc" param.  Pass it to
   3465 	cpp_errno_filename.
   3466 	(_cpp_fake_include): Add 0 as a source_location in call to
   3467 	_cpp_find_file.
   3468 	(_cpp_compare_file_date): Likewise.
   3469 	(cpp_push_include): Likewise for call to _cpp_stack_include.
   3470 	(cpp_push_default_include): Likewise.
   3471 	(_cpp_save_file_entries): Likewise for call to open_file_failed.
   3472 	(_cpp_has_header): Likewise for call to _cpp_find_file.
   3473 	* include/cpplib.h (cpp_errno_filename): Add source_location
   3474 	param.
   3475 	(cpp_error_at): New declaration.
   3476 	* init.c (cpp_read_main_file): Add 0 as a source_location in calls
   3477 	to _cpp_find_file and _cpp_stack_file.
   3478 	* internal.h (_cpp_find_file): Add source_location param.
   3479 	(_cpp_stack_file): Likewise.
   3480 	(_cpp_stack_include): Likewise.
   3481 
   3482 2016-06-22  David Malcolm  <dmalcolm (a] redhat.com>
   3483 
   3484 	* include/line-map.h (fixit_hint::get_start_loc): New pure virtual
   3485 	function.
   3486 	(fixit_hint::maybe_get_end_loc): Likewise.
   3487 	(fixit_insert::get_start_loc): New function, implementing
   3488 	fixit_hint::get_start_loc.
   3489 	(fixit_insert::maybe_get_end_loc): New function, implementing
   3490 	fixit_hint::maybe_get_end_loc.
   3491 	(fixit_remove::get_start_loc): New function, implementing
   3492 	fixit_hint::get_start_loc.
   3493 	(fixit_remove::maybe_get_end_loc): New function, implementing
   3494 	fixit_hint::maybe_get_end_loc.
   3495 	(fixit_replace::get_start_loc): New function, implementing
   3496 	fixit_hint::get_start_loc.
   3497 	(fixit_replace::maybe_get_end_loc): New function, implementing
   3498 	fixit_hint::maybe_get_end_loc.
   3499 
   3500 2016-06-21  John David Anglin  <danglin (a] gcc.gnu.org>
   3501 
   3502 	* line-map.c (location_adhoc_data_update): Use int64_t instead of
   3503 	long long.
   3504 	(get_combined_adhoc_loc): Likewise.
   3505 
   3506 2016-06-01  Eduard Sanou  <dhole (a] openmailbox.org>
   3507 
   3508 	* include/cpplib.h (cpp_callbacks): Add get_source_date_epoch
   3509 	callback.
   3510 	* include/cpplib.h (cpp_init_source_date_epoch): Remove prototype.
   3511 	* init.c (cpp_init_source_date_epoch): Remove function.
   3512 	* init.c (cpp_create_reader): Initialize pfile->source_date_epoch.
   3513 	* internal.h (cpp_reader): Extend comment about source_date_epoch.
   3514 	* macro.c (_cpp_builtin_macro_text): Use get_source_date_epoch
   3515 	callback only once, read pfile->source_date_epoch on future passes.
   3516 	Check that get_source_date_epoch callback is not NULL.
   3517 
   3518 2016-05-20  Martin Liska  <mliska (a] suse.cz>
   3519 
   3520 	* config.in: Regenerated.
   3521 	* configure: Likewise.
   3522 	* configure.ac: Handle --enable-valgrind-annotations.
   3523 	* lex.c (new_buff): Use ENABLE_VALGRIND_ANNOTATIONS instead
   3524 	of ENABLE_VALGRIND_CHECKING.
   3525 	(_cpp_free_buff): Likewise.
   3526 
   3527 2016-04-28  Eduard Sanou  <dhole (a] openmailbox.org>
   3528 	    Matthias Klose  <doko (a] debian.org>
   3529 
   3530 	* include/cpplib.h (cpp_init_source_date_epoch): Prototype.
   3531 	* init.c (cpp_init_source_date_epoch): New function.
   3532 	* internal.h: Added source_date_epoch variable to struct
   3533 	cpp_reader to store a reproducible date.
   3534 	* macro.c (_cpp_builtin_macro_text): Set pfile->date timestamp from
   3535 	pfile->source_date_epoch instead of localtime if source_date_epoch is
   3536 	set, to be used for __DATE__ and __TIME__ macros to help reproducible
   3537 	builds.
   3538 
   3539 2016-04-13  Bernd Schmidt  <bschmidt (a] redhat.com>
   3540 
   3541 	Patch from Roger Orr <rogero (a] howzatt.demon.co.uk>
   3542 	PR preprocessor/69650
   3543 	* directives.c (do_linemarker): Reread map after calling
   3544 	cpp_get_token.
   3545 
   3546 2016-04-06  Richard Henderson  <rth (a] redhat.com>
   3547 
   3548 	PR preprocessor/61817
   3549 	PR preprocessor/69391
   3550 	* internal.h (_cpp_builtin_macro_text): Update decl.
   3551 	* macro.c (_cpp_builtin_macro_text): Accept location for __LINE__.
   3552 	(builtin_macro): Accept a second location for __LINE__.
   3553 	(enter_macro_context): Compute both virtual and real expansion
   3554 	locations for the macro.
   3555 
   3556 2016-03-25  Bernd Schmidt  <bschmidt (a] redhat.com>
   3557 
   3558 	PR lto/69650
   3559 	* directives.c (do_linemarker): Test for file left but not entered
   3560 	here.
   3561 	* line-map.c (linemap_add): Not here.
   3562 
   3563 2016-03-21  Jakub Jelinek  <jakub (a] redhat.com>
   3564 
   3565 	PR target/70296
   3566 	* include/cpplib.h (cpp_fun_like_macro_p): New prototype.
   3567 	* macro.c (cpp_fun_like_macro_p): New function.
   3568 
   3569 2016-03-15  Richard Henderson  <rth (a] redhat.com>
   3570 
   3571 	* line-map.c (new_linemap): Make alloc_size a size_t.
   3572 
   3573 2016-03-14  Jason Merrill  <jason (a] redhat.com>
   3574 
   3575 	* expr.c (cpp_classify_number): Hex floats are new in C++1z.
   3576 	* init.c (lang_defaults): Likewise.
   3577 
   3578 2016-03-09  David Malcolm  <dmalcolm (a] redhat.com>
   3579 
   3580 	PR c/68473
   3581 	PR c++/70105
   3582 	* line-map.c (linemap_macro_map_loc_unwind_toward_spelling): Move
   3583 	decl...
   3584 	* include/line-map.h
   3585 	(linemap_macro_map_loc_unwind_toward_spelling): ...here,
   3586 	converting from static to extern.
   3587 
   3588 2016-03-09  David Malcolm  <dmalcolm (a] redhat.com>
   3589 
   3590 	PR c/68473
   3591 	PR c++/70105
   3592 	* include/line-map.h (source_range::debug): Delete.
   3593 	(struct location_range): Update comment.  Replace
   3594 	expanded_location fields "m_start", "m_finish", and "m_caret" with
   3595 	a source_location field: "m_loc".
   3596 	(class rich_location): Reword comment.
   3597 	(rich_location::get_loc): Reimplement in terms of a new overloaded
   3598 	variant which takes an unsigned int.
   3599 	(rich_location::get_loc_addr): Delete.
   3600 	(rich_location::add_range): Drop params "start" and "finish" in
   3601 	favor of param "loc".  Drop overloaded variants taking a
   3602 	source_range or location_range *.
   3603 	(rich_location::lazily_expand_location): Delete in favor of...
   3604 	(rich_location::get_expanded_location): New decl.
   3605 	(rich_location::m_loc): Delete field.
   3606 	(rich_location::m_column_override): New field.
   3607 	* line-map.c (rich_location::rich_location):  Drop name of
   3608 	line_maps * param.  Update initializations for deletion of field
   3609 	"m_loc" and addition of field "m_column_override".  Reimplement
   3610 	body as a call to add_range.  Delete overloaded variant taking a
   3611 	source_range.
   3612 	(rich_location::get_loc): New function.
   3613 	(rich_location::lazily_expand_location): Delete in favor of...
   3614 	(rich_location::get_expanded_location): New function.
   3615 	(rich_location::override_column): Reimplement.
   3616 	(rich_location::add_range): Drop params "start" and "finish" in
   3617 	favor of param "loc".  Eliminate location expansion in favor of
   3618 	simply storing loc.  Drop overloaded variants taking a
   3619 	source_range or location_range *.
   3620 	(rich_location::set_range): Eliminate location expansion.
   3621 
   3622 2016-02-29  David Malcolm  <dmalcolm (a] redhat.com>
   3623 
   3624 	PR preprocessor/69985
   3625 	(linemap_position_for_loc_and_offset): Rename param from "offset"
   3626 	to "column_offset".  Right-shift the column_offset by m_range_bits
   3627 	of the pertinent ordinary map whenever offsetting a
   3628 	source_location.  For clarity, offset the column by the column
   3629 	offset, rather than the other way around.
   3630 
   3631 2016-02-23  David Malcolm  <dmalcolm (a] redhat.com>
   3632 
   3633 	PR preprocessor/69126
   3634 	PR preprocessor/69543
   3635 	* line-map.c (linemap_compare_locations): At the function top,
   3636 	replace inlined bodies of get_location_from_adhoc_loc with calls
   3637 	to get_location_from_adhoc_loc.  Add a pair of calls to
   3638 	get_location_from_adhoc_loc at the bottom of the function, to
   3639 	avoid meaningless comparisons of ad-hoc and non-ad-hoc locations.
   3640 
   3641 2016-02-08  David Malcolm  <dmalcolm (a] redhat.com>
   3642 
   3643 	PR preprocessor/69664
   3644 	* errors.c (cpp_diagnostic_with_line): Only call
   3645 	rich_location::override_column if the column is non-zero.
   3646 	* line-map.c (rich_location::override_column): Update columns
   3647 	within m_ranges[0].  Add assertions to verify that doing so is
   3648 	sane.
   3649 
   3650 2016-02-05  Jakub Jelinek  <jakub (a] redhat.com>
   3651 
   3652 	PR c++/69628
   3653 	* charset.c (cpp_interpret_charconst): Clear *PCHARS_SEEN
   3654 	and *UNSIGNEDP if bailing out early due to errors.
   3655 
   3656 2016-01-28  Jakub Jelinek  <jakub (a] redhat.com>
   3657 
   3658 	PR pch/68176
   3659 	* files.c (_cpp_find_file): Set file->implicit_preinclude even if
   3660 	included from file->implicit_preinclude header.
   3661 
   3662 	* directives.c (destringize_and_run): Adjust prototype.
   3663 
   3664 2016-01-27  David Malcolm  <dmalcolm (a] redhat.com>
   3665 
   3666 	PR preprocessor/69126
   3667 	* directives.c (destringize_and_run): Add expansion_loc param; use
   3668 	it when handling unexpanded pragmas to fixup the locations of the
   3669 	synthesized tokens.
   3670 	(_cpp_do__Pragma): Add expansion_loc param and use it when calling
   3671 	destringize_and_run.
   3672 	* internal.h (_cpp_do__Pragma): Add expansion_loc param.
   3673 	* macro.c (builtin_macro): Pass expansion location of _Pragma to
   3674 	_cpp_do__Pragma.
   3675 
   3676 2016-01-14  David Malcolm  <dmalcolm (a] redhat.com>
   3677 
   3678 	PR preprocessor/69177
   3679 	* line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): New
   3680 	constant.
   3681 	(LINE_MAP_MAX_LOCATION_WITH_COLS): Add note about unit tests
   3682 	to comment.
   3683 	(can_be_stored_compactly_p): Reduce threshold from
   3684 	LINE_MAP_MAX_LOCATION_WITH_COLS to
   3685 	LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES.
   3686 	(get_combined_adhoc_loc): Likewise.
   3687 	(get_range_from_loc): Likewise.
   3688 	(linemap_line_start): Ensure that a new ordinary map is created
   3689 	when transitioning from range-packing being enabled to disabled,
   3690 	at the LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES threshold.  Set
   3691 	range_bits to 0 for new ordinary maps when beyond this limit.
   3692 	Prevent the "increase the column bits of a freshly created map"
   3693 	optimization if the range bits has reduced.
   3694 
   3695 2016-01-08  Jakub Jelinek  <jakub (a] redhat.com>
   3696 
   3697 	PR c++/69145
   3698 	* files.c (cpp_included_before): If IS_ADHOC_LOC (location), lookup
   3699 	real location from the line_table.
   3700 
   3701 2016-01-04  Jakub Jelinek  <jakub (a] redhat.com>
   3702 
   3703 	Update copyright years.
   3704 
   3705 2015-12-22  David Malcolm  <dmalcolm (a] redhat.com>
   3706 
   3707 	* line-map.c (get_combined_adhoc_loc): Remove condition
   3708 	on locus < RESERVED_LOCATION_COUNT when considering
   3709 	whether a caret == start == finish location can be
   3710 	simply stored as the caret location.
   3711 
   3712 2015-12-07  David Malcolm  <dmalcolm (a] redhat.com>
   3713 
   3714 	* include/line-map.h (rich_location::set_range): Add line_maps *
   3715 	param; convert param from source_range to source_location.  Drop
   3716 	"overwrite_loc_p" param.
   3717 	* line-map.c (rich_location::set_range): Likewise, acting as if
   3718 	"overwrite_loc_p" were true, and getting range from the location.
   3719 
   3720 2015-11-20  David Malcolm  <dmalcolm (a] redhat.com>
   3721 
   3722 	PR 62314
   3723 	* include/line-map.h (source_range::intersects_line_p): New
   3724 	method.
   3725 	(rich_location::~rich_location): New.
   3726 	(rich_location::add_fixit_insert): New method.
   3727 	(rich_location::add_fixit_remove): New method.
   3728 	(rich_location::add_fixit_replace): New method.
   3729 	(rich_location::get_num_fixit_hints): New accessor.
   3730 	(rich_location::get_fixit_hint): New accessor.
   3731 	(rich_location::MAX_FIXIT_HINTS): New constant.
   3732 	(rich_location::m_num_fixit_hints): New field.
   3733 	(rich_location::m_fixit_hints): New field.
   3734 	(class fixit_hint): New class.
   3735 	(class fixit_insert): New class.
   3736 	(class fixit_remove): New class.
   3737 	(class fixit_replace): New class.
   3738 	* line-map.c (source_range::intersects_line_p): New method.
   3739 	(rich_location::rich_location): Add initialization of
   3740 	m_num_fixit_hints to both ctors.
   3741 	(rich_location::~rich_location): New.
   3742 	(rich_location::add_fixit_insert): New method.
   3743 	(rich_location::add_fixit_remove): New method.
   3744 	(rich_location::add_fixit_replace): New method.
   3745 	(fixit_insert::fixit_insert): New.
   3746 	(fixit_insert::~fixit_insert): New.
   3747 	(fixit_insert::affects_line_p): New.
   3748 	(fixit_remove::fixit_remove): New.
   3749 	(fixit_remove::affects_line_p): New.
   3750 	(fixit_replace::fixit_replace): New.
   3751 	(fixit_replace::~fixit_replace): New.
   3752 	(fixit_replace::affects_line_p): New.
   3753 
   3754 2015-11-19  Jakub Jelinek  <jakub (a] redhat.com>
   3755 
   3756 	PR preprocessor/60736
   3757 	* include/cpplib.h (cpp_errno_filename): New prototype.
   3758 	* errors.c (cpp_errno): Don't handle msgid "" specially, use
   3759 	_(msgid) instead of msgid as argument to cpp_error.
   3760 	(cpp_errno_filename): New function.
   3761 	* files.c (read_file_guts): Use cpp_errno_filename instead of
   3762 	cpp_errno.
   3763 	(open_file_failed): Likewise.  Use file->name if file->path is NULL
   3764 	in diagnostics.
   3765 
   3766 2015-11-13  David Malcolm  <dmalcolm (a] redhat.com>
   3767 
   3768 	* errors.c (cpp_diagnostic): Pass pfile->line_table to
   3769 	rich_location ctor.
   3770 	(cpp_diagnostic_with_line): Likewise.
   3771 	* include/cpplib.h (struct cpp_token): Update comment for src_loc
   3772 	to indicate that the range of the token is "baked into" the
   3773 	source_location.
   3774 	* include/line-map.h (source_location): Update the descriptive
   3775 	comment to reflect the packing scheme for short ranges, adding
   3776 	worked examples of location encoding.
   3777 	(struct line_map_ordinary): Drop field "column_bits" in favor
   3778 	of field "m_column_and_range_bits"; add field "m_range_bits".
   3779 	(ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete.
   3780 	(location_adhoc_data): Add source_range field.
   3781 	(struct line_maps): Add fields "default_range_bits",
   3782 	"num_optimized_ranges" and "num_unoptimized_ranges".
   3783 	(get_combined_adhoc_loc): Add source_range param.
   3784 	(get_range_from_loc): New declaration.
   3785 	(pure_location_p): New prototype.
   3786 	(COMBINE_LOCATION_DATA):  Add source_range param.
   3787 	(SOURCE_LINE): Update for renaming of column_bits.
   3788 	(SOURCE_COLUMN): Likewise.  Shift the column right by the map's
   3789 	range_bits.
   3790 	(LAST_SOURCE_LINE_LOCATION): Update for renaming of column_bits.
   3791 	(linemap_position_for_line_and_column): Add line_maps * params.
   3792 	(rich_location::rich_location): Likewise.
   3793 	* lex.c (_cpp_lex_direct): Capture the range of the token, baking
   3794 	it into token->src_loc via a call to COMBINE_LOCATION_DATA.
   3795 	* line-map.c (LINE_MAP_MAX_COLUMN_NUMBER): Reduce from 1U << 17 to
   3796 	1U << 12.
   3797 	(location_adhoc_data_hash): Add the src_range into
   3798 	the hash value.
   3799 	(location_adhoc_data_eq): Require equality of the src_range
   3800 	values.
   3801 	(can_be_stored_compactly_p): New function.
   3802 	(get_combined_adhoc_loc): Add src_range param, and store it,
   3803 	via a bit-packing scheme for short ranges, otherwise within the
   3804 	lookaside table.  Remove the requirement that data is non-NULL.
   3805 	(get_range_from_adhoc_loc): New function.
   3806 	(get_range_from_loc): New function.
   3807 	(pure_location_p): New function.
   3808 	(linemap_add): Ensure that start_location has zero for the
   3809 	range_bits, unless we're past LINE_MAP_MAX_LOCATION_WITH_COLS.
   3810 	Initialize range_bits to zero.  Assert that the start_location
   3811 	is "pure".
   3812 	(linemap_line_start): Assert that the
   3813 	column_and_range_bits >= range_bits.
   3814 	Update determinination of whether we need to start a new map
   3815 	using the effective column bits, without the range bits.
   3816 	Use the set's default_range_bits in new maps, apart from
   3817 	those with column_bits == 0, which should also have 0 range_bits.
   3818 	Increase the column bits for new maps by the range bits.
   3819 	When adding lines to an existing map, use set->highest_line
   3820 	directly rather than offsetting highest by SOURCE_COLUMN.
   3821 	Add assertions to sanity-check the return value.
   3822 	(linemap_position_for_column): Offset to_column by range_bits.
   3823 	Update set->highest_location if necessary.
   3824 	(linemap_position_for_line_and_column): Add line_maps * param.
   3825 	Update the calculation to offset the column by range_bits, and
   3826 	conditionalize it on being <= LINE_MAP_MAX_LOCATION_WITH_COLS.
   3827 	Bound it by LINEMAPS_MACRO_LOWEST_LOCATION.  Update
   3828 	set->highest_location if necessary.
   3829 	(linemap_position_for_loc_and_offset): Handle ad-hoc locations;
   3830 	pass "set" to linemap_position_for_line_and_column.
   3831 	(linemap_macro_map_loc_unwind_toward_spelling): Add line_maps
   3832 	param.  Handle ad-hoc locations.
   3833 	(linemap_location_in_system_header_p): Pass on "set" to call to
   3834 	linemap_macro_map_loc_unwind_toward_spelling.
   3835 	(linemap_macro_loc_to_spelling_point): Retain ad-hoc locations.
   3836 	Pass on "set" to call to
   3837 	linemap_macro_map_loc_unwind_toward_spelling.
   3838 	(linemap_resolve_location): Retain ad-hoc locations.  Pass on
   3839 	"set" to call to linemap_macro_map_loc_unwind_toward_spelling.
   3840 	(linemap_unwind_toward_expansion):  Pass on "set" to call to
   3841 	linemap_macro_map_loc_unwind_toward_spelling.
   3842 	(linemap_expand_location): Extract the data pointer before
   3843 	extracting the location.
   3844 	(rich_location::rich_location): Add line_maps param; use it to
   3845 	extract the range from the source_location.
   3846 	* location-example.txt: Regenerate, showing new representation.
   3847 
   3848 2015-11-06  David Malcolm  <dmalcolm (a] redhat.com>
   3849 
   3850 	* errors.c (cpp_diagnostic): Update for change in signature
   3851 	of "error" callback.
   3852 	(cpp_diagnostic_with_line): Likewise, calling override_column
   3853 	on the rich_location.
   3854 	* include/cpplib.h (struct cpp_callbacks): Within "error"
   3855 	callback, convert param from source_location to rich_location *,
   3856 	and drop column_override param.
   3857 	* include/line-map.h (struct source_range): New struct.
   3858 	(struct location_range): New struct.
   3859 	(class rich_location): New class.
   3860 	(linemap_client_expand_location_to_spelling_point): New declaration.
   3861 	* line-map.c (rich_location::rich_location): New ctors.
   3862 	(rich_location::lazily_expand_location): New method.
   3863 	(rich_location::override_column): New method.
   3864 	(rich_location::add_range): New methods.
   3865 	(rich_location::set_range): New method.
   3866 
   3867 2015-11-06  David Malcolm  <dmalcolm (a] redhat.com>
   3868 
   3869 	* include/line-map.h (struct linemap_stats): Add fields
   3870 	"adhoc_table_size" and "adhoc_table_entries_used".
   3871 	* line-map.c (linemap_get_statistics): Populate above fields.
   3872 
   3873 2015-11-04  Mikhail Maltsev  <maltsevm (a] gmail.com>
   3874 
   3875 	* config.in: Regenerate.
   3876 	* configure: Regenerate.
   3877 	* configure.ac: Remove ENABLE_CHECKING.
   3878 
   3879 2015-11-03  Uros Bizjak  <ubizjak (a] gmail.com>
   3880 
   3881 	* lex.c (search_line_sse42): Correctly advance the pointer to an
   3882 	aligned address.
   3883 
   3884 2015-11-02  David Malcolm  <dmalcolm (a] redhat.com>
   3885 
   3886 	* include/line-map.h (source_location): In the table in the
   3887 	descriptive comment, show UNKNOWN_LOCATION, BUILTINS_LOCATION,
   3888 	LINE_MAP_MAX_LOCATION_WITH_COLS, LINE_MAP_MAX_SOURCE_LOCATION.
   3889 	Add notes about ad-hoc values.
   3890 
   3891 2015-10-21  Mikhail Maltsev  <maltsevm (a] gmail.com>
   3892 
   3893 	* include/line-map.h: Use CHECKING_P instead of ENABLE_CHECKING.
   3894 	* init.c: Likewise.
   3895 	* macro.c (struct macro_arg_token_iter, set_arg_token,
   3896 	macro_arg_token_iter_init, macro_arg_token_iter_forward,
   3897 	macro_arg_token_iter_get_token, macro_arg_token_iter_get_location,
   3898 	alloc_expanded_arg_mem, _cpp_backup_tokens): Likewise.
   3899 
   3900 	* config.in: Regenerate.
   3901 	* configure: Regenerate.
   3902 	* configure.ac (CHECKING_P): Define.
   3903 	* system.h (fancy_abort): Declare.
   3904 	(abort): Define.
   3905 	(gcc_assert): Define. Use CHECKING_P.
   3906 
   3907 2015-10-13  Mikhail Maltsev  <maltsevm (a] gmail.com>
   3908 
   3909 	* system.h (CHECKING_P, gcc_checking_assert): Define.
   3910 
   3911 2015-09-21  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   3912 
   3913 	PR c/66415
   3914 	* line-map.c (linemap_position_for_loc_and_offset): Handle the
   3915 	case of long lines encoded in multiple maps.
   3916 
   3917 2015-09-07  Marek Polacek  <polacek (a] redhat.com>
   3918 
   3919 	* system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
   3920 
   3921 2015-08-06  Yaakov Selkowitz  <yselkowi (a] redhat.com>
   3922 
   3923 	* configure: Regenerate.
   3924 
   3925 2015-07-08  Thomas Schwinge  <thomas (a] codesourcery.com>
   3926 
   3927 	* include/line-map.h (RESERVED_LOCATION_COUNT): Change type to
   3928 	source_location.
   3929 
   3930 2015-07-02  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3931 
   3932 	PR preprocessor/53690
   3933 	* charset.c (_cpp_valid_ucn): Add cppchar_t * parameter and change
   3934 	return type to bool.  Fix encoding of \u0000 and \U00000000 in C++.
   3935 	(convert_ucn): Adjust call.
   3936 	* lex.c (forms_identifier_p): Likewise.
   3937 	* internal.h (_cpp_valid_ucn): Adjust declaration.
   3938 
   3939 2015-06-30  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   3940 
   3941 	Implement N4197 - Adding u8 character literals
   3942 	* include/cpplib.h (UTF8CHAR, UTF8CHAR_USERDEF): New cpp tokens;
   3943 	(struct cpp_options): Add utf8_char_literals.
   3944 	* init.c (struct lang_flags): Add utf8_char_literals;
   3945 	(struct lang_flags lang_defaults): Add column for utf8_char_literals.
   3946 	* macro.c (stringify_arg()): Treat CPP_UTF8CHAR token;
   3947 	* expr.c (cpp_userdef_char_remove_type(), cpp_userdef_char_add_type()):
   3948 	Treat CPP_UTF8CHAR_USERDEF, CPP_UTF8CHAR tokens;
   3949 	(cpp_userdef_char_p()): Treat CPP_UTF8CHAR_USERDEF token;
   3950 	(eval_token(), _cpp_parse_expr()): Treat CPP_UTF8CHAR token.
   3951 	* lex.c (lex_string(), _cpp_lex_direct()): Include CPP_UTF8CHAR tokens.
   3952 	* charset.c (converter_for_type(), cpp_interpret_charconst()):
   3953 	Treat CPP_UTF8CHAR token.
   3954 
   3955 2015-06-30  Uros Bizjak  <ubizjak (a] gmail.com>
   3956 
   3957 	* lex.c (search_line_sse42) [__GCC_ASM_FLAG_OUTPUTS__]: New main
   3958 	loop using asm flag outputs.
   3959 
   3960 2015-06-08  Marek Polacek  <polacek (a] redhat.com>
   3961 
   3962 	PR c/66415
   3963 	* line-map.c (linemap_position_for_loc_and_offset): Remove
   3964 	linemap_assert_fails; reverse conditions.
   3965 
   3966 2015-05-26  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   3967 
   3968 	* line-map.c (LINE_MAP_MAX_COLUMN_NUMBER
   3969 	LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_SOURCE_LOCATION):
   3970 	New constants.
   3971 	(linemap_line_start): Use them.
   3972 	(linemap_position_for_column): Use them.
   3973 
   3974 2015-05-20  David Malcolm  <dmalcolm (a] redhat.com>
   3975 
   3976 	* include/line-map.h (MAP_START_LOCATION): Eliminate the non-const
   3977 	variant, and tweak comment for the const variant.
   3978 	(ORDINARY_MAP_STARTING_LINE_NUMBER): Drop the non-const variant.
   3979 	(ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
   3980 	(ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
   3981 	(SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete.
   3982 	(ORDINARY_MAP_FILE_NAME): Drop the non-const variant.
   3983 	(MACRO_MAP_MACRO): Likewise.
   3984 	(MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
   3985 	(MACRO_MAP_LOCATIONS): Likewise.
   3986 	(MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
   3987 	* line-map.c (linemap_add): Replace writes through macros with
   3988 	direct field accesses.
   3989 	(linemap_enter_macro): Likewise.
   3990 	(linemap_line_start): Likewise.
   3991 
   3992 2015-05-19  David Malcolm  <dmalcolm (a] redhat.com>
   3993 
   3994 	* directives.c (do_line): Strengthen local "map" from
   3995 	const line_map * to const line_map_ordinary *.
   3996 	(do_linemarker): Likewise.
   3997 	(_cpp_do_file_change): Assert that we're not dealing with
   3998 	a macro map.  Introduce local "ord_map" via a call to
   3999 	linemap_check_ordinary, guarded within the check for
   4000 	non-NULL.  Use it for typesafety.
   4001 	* files.c (cpp_make_system_header): Strengthen local "map" from
   4002 	const line_map * to const line_map_ordinary *.
   4003 	* include/cpplib.h (struct cpp_callbacks): Likewise for second
   4004 	parameter of "file_change" callback.
   4005 	* include/line-map.h (struct line_map): Convert from a struct
   4006 	containing a union to a base class.
   4007 	(struct line_map_ordinary): Convert to a subclass of line_map.
   4008 	(struct line_map_macro): Likewise.
   4009 	(linemap_check_ordinary): Strengthen return type from line_map *
   4010 	to line_map_ordinary *, and add a const-variant.
   4011 	(linemap_check_macro): New pair of functions.
   4012 	(ORDINARY_MAP_STARTING_LINE_NUMBER): Strengthen param from
   4013 	const line_map * to const line_map_ordinary *, eliminating call
   4014 	to linemap_check_ordinary.  Likewise for the non-const variant.
   4015 	(ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
   4016 	(ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
   4017 	(ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Likewise.
   4018 	(ORDINARY_MAP_FILE_NAME): Likewise.
   4019 	(MACRO_MAP_MACRO): Strengthen param from const line_map * to
   4020 	const line_map_macro *.  Likewise for the non-const variant.
   4021 	(MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
   4022 	(MACRO_MAP_LOCATIONS): Likewise.
   4023 	(MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
   4024 	(struct maps_info): Replace with...
   4025 	(struct maps_info_ordinary):...this and...
   4026 	(struct maps_info_macro): ...this.
   4027 	(struct line_maps): Convert fields "info_ordinary" and
   4028 	"info_macro" to the above new structs.
   4029 	(LINEMAPS_MAP_INFO): Delete both functions.
   4030 	(LINEMAPS_MAPS): Likewise.
   4031 	(LINEMAPS_ALLOCATED): Rewrite both variants to avoid using
   4032 	LINEMAPS_MAP_INFO.
   4033 	(LINEMAPS_USED): Likewise.
   4034 	(LINEMAPS_CACHE): Likewise.
   4035 	(LINEMAPS_MAP_AT): Likewise.
   4036 	(LINEMAPS_ORDINARY_MAPS): Strengthen return type from line_map *
   4037 	to line_map_ordinary *.
   4038 	(LINEMAPS_ORDINARY_MAP_AT): Likewise.
   4039 	(LINEMAPS_LAST_ORDINARY_MAP): Likewise.
   4040 	(LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise.
   4041 	(LINEMAPS_MACRO_MAPS): Strengthen return type from line_map * to
   4042 	line_map_macro *.
   4043 	(LINEMAPS_MACRO_MAP_AT): Likewise.
   4044 	(LINEMAPS_LAST_MACRO_MAP): Likewise.
   4045 	(LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise.
   4046 	(linemap_map_get_macro_name): Strengthen param from
   4047 	const line_map * to const line_map_macro *.
   4048 	(SOURCE_LINE): Strengthen first param from const line_map * to
   4049 	const line_map_ordinary *, removing call to
   4050 	linemap_check_ordinary.
   4051 	(SOURCE_COLUMN): Likewise.
   4052 	(LAST_SOURCE_LINE_LOCATION): Likewise.
   4053 	(LAST_SOURCE_LINE): Strengthen first param from const line_map *
   4054 	to const line_map_ordinary *.
   4055 	(LAST_SOURCE_COLUMN): Likewise.
   4056 	(INCLUDED_FROM): Strengthen return type from line_map * to
   4057 	line_map_ordinary *., and second param from const line_map *
   4058 	to const line_map_ordinary *, removing call to
   4059 	linemap_check_ordinary.
   4060 	(MAIN_FILE_P): Strengthen param from const line_map * to
   4061 	const line_map_ordinary *, removing call to
   4062 	linemap_check_ordinary.
   4063 	(linemap_position_for_line_and_column): Strengthen param from
   4064 	const line_map * to const line_map_ordinary *.
   4065 	(LINEMAP_FILE): Strengthen param from const line_map * to
   4066 	const line_map_ordinary *, removing call to
   4067 	linemap_check_ordinary.
   4068 	(LINEMAP_LINE): Likewise.
   4069 	(LINEMAP_SYSP): Likewise.
   4070 	(linemap_resolve_location): Strengthen final param from
   4071 	const line_map ** to const line_map_ordinary **.
   4072 	* internal.h (CPP_INCREMENT_LINE): Likewise for local "map".
   4073 	(linemap_enter_macro): Strengthen return type from
   4074 	const line_map * to const line_map_macro *.
   4075 	(linemap_add_macro_token): Likewise for first param.
   4076 	* line-map.c (linemap_check_files_exited): Strengthen local "map"
   4077 	from const line_map * to const line_map_ordinary *.
   4078 	(new_linemap): Introduce local "map_size" and use it when
   4079 	calculating how large the buffer should be.  Rewrite based
   4080 	on change of info_macro and info_ordinary into distinct types.
   4081 	(linemap_add): Strengthen locals "map" and "from" from line_map *
   4082 	to line_map_ordinary *.
   4083 	(linemap_enter_macro): Strengthen return type from
   4084 	const line_map * to const line_map_macro *, and local "map" from
   4085 	line_map * to line_map_macro *.
   4086 	(linemap_add_macro_token): Strengthen param "map" from
   4087 	const line_map * to const line_map_macro *.
   4088 	(linemap_line_start): Strengthen local "map" from line_map * to
   4089 	line_map_ordinary *.
   4090 	(linemap_position_for_column): Likewise.
   4091 	(linemap_position_for_line_and_column): Strengthen first param
   4092 	from const line_map * to const line_map_ordinary *.
   4093 	(linemap_position_for_loc_and_offset): Strengthen local "map" from
   4094 	const line_map * to const line_map_ordinary *.
   4095 	(linemap_ordinary_map_lookup): Likewise for return type and locals
   4096 	"cached" and "result".
   4097 	(linemap_macro_map_lookup): Strengthen return type and locals
   4098 	"cached" and "result" from const line_map * to
   4099 	const line_map_macro *.
   4100 	(linemap_macro_map_loc_to_exp_point): Likewise for param "map".
   4101 	(linemap_macro_map_loc_to_def_point): Likewise.
   4102 	(linemap_macro_map_loc_unwind_toward_spelling): Likewise.
   4103 	(linemap_get_expansion_line): Strengthen local "map" from
   4104 	const line_map * to const line_map_ordinary *.
   4105 	(linemap_get_expansion_filename): Likewise.
   4106 	(linemap_map_get_macro_name): Strengthen param from
   4107 	const line_map * to const line_map_macro *.
   4108 	(linemap_location_in_system_header_p): Add call to
   4109 	linemap_check_ordinary in region guarded by
   4110 	!linemap_macro_expansion_map_p.  Introduce local "macro_map" via
   4111 	linemap_check_macro in other region, using it in place of "map"
   4112 	for typesafety.
   4113 	(first_map_in_common_1): Add calls to linemap_check_macro.
   4114 	(trace_include): Strengthen param "map" from const line_map * to
   4115 	const line_map_ordinary *.
   4116 	(linemap_macro_loc_to_spelling_point): Strengthen final param from
   4117 	const line_map ** to const line_map_ordinary **.  Replace a
   4118 	C-style cast with a const_cast, and add calls to
   4119 	linemap_check_macro and linemap_check_ordinary.
   4120 	(linemap_macro_loc_to_def_point): Likewise.
   4121 	(linemap_macro_loc_to_exp_point): Likewise.
   4122 	(linemap_resolve_location): Strengthen final param from
   4123 	const line_map ** to const line_map_ordinary **.
   4124 	(linemap_unwind_toward_expansion): Introduce local "macro_map" via
   4125 	a checked cast and use it in place of *map.
   4126 	(linemap_unwind_to_first_non_reserved_loc): Strengthen local
   4127 	"map1" from const line_map * to const line_map_ordinary *.
   4128 	(linemap_expand_location): Introduce local "ord_map" via a checked
   4129 	cast and use it in place of map.
   4130 	(linemap_dump): Make local "map" const.  Strengthen local
   4131 	"includer_map" from line_map * to const line_map_ordinary *.
   4132 	Introduce locals "ord_map" and "macro_map" via checked casts and
   4133 	use them in place of "map" for typesafety.
   4134 	(linemap_dump_location): Strengthen local "map" from
   4135 	const line_map * to const line_map_ordinary *.
   4136 	(linemap_get_file_highest_location): Update for elimination of
   4137 	union.
   4138 	(linemap_get_statistics): Strengthen local "cur_map" from
   4139 	line_map * to const line_map_macro *.  Update uses of sizeof to
   4140 	use the appropriate line_map subclasses.
   4141 	* macro.c (_cpp_warn_if_unused_macro): Add call to
   4142 	linemap_check_ordinary.
   4143 	(builtin_macro): Strengthen local "map" from const line_map * to
   4144 	const line_map_macro *.
   4145 	(enter_macro_context): Likewise.
   4146 	(replace_args): Likewise.
   4147 	(tokens_buff_put_token_to): Likewise for param "map".
   4148 	(tokens_buff_add_token): Likewise.
   4149 
   4150 2015-05-13  David Malcolm  <dmalcolm (a] redhat.com>
   4151 
   4152 	* include/line-map.h (source_location): Add a reference to
   4153 	location-example.txt to the descriptive comment.
   4154 	* location-example.txt: New file.
   4155 
   4156 2015-05-13  David Malcolm  <dmalcolm (a] redhat.com>
   4157 
   4158 	* include/line-map.h (MAX_SOURCE_LOCATION): Convert from a macro
   4159 	to a const source_location.
   4160 	(RESERVED_LOCATION_COUNT): Likewise.
   4161 	(linemap_check_ordinary): Convert from a macro to a pair of inline
   4162 	functions, for const/non-const arguments.
   4163 	(MAP_START_LOCATION): Likewise.
   4164 	(ORDINARY_MAP_STARTING_LINE_NUMBER): Likewise.
   4165 	(ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
   4166 	(ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
   4167 	(ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Convert from a macro to a
   4168 	pair of inline functions, for const/non-const arguments, where the
   4169 	latter is named...
   4170 	(SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): New function.
   4171 	(ORDINARY_MAP_FILE_NAME): Convert from a macro to a pair of inline
   4172 	functions, for const/non-const arguments.
   4173 	(MACRO_MAP_MACRO): Likewise.
   4174 	(MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
   4175 	(MACRO_MAP_LOCATIONS): Likewise.
   4176 	(MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
   4177 	(LINEMAPS_MAP_INFO): Likewise.
   4178 	(LINEMAPS_MAPS): Likewise.
   4179 	(LINEMAPS_ALLOCATED): Likewise.
   4180 	(LINEMAPS_USED): Likewise.
   4181 	(LINEMAPS_CACHE): Likewise.
   4182 	(LINEMAPS_ORDINARY_CACHE): Likewise.
   4183 	(LINEMAPS_MACRO_CACHE): Likewise.
   4184 	(LINEMAPS_MAP_AT): Convert from a macro to an inline function.
   4185 	(LINEMAPS_LAST_MAP): Likewise.
   4186 	(LINEMAPS_LAST_ALLOCATED_MAP): Likewise.
   4187 	(LINEMAPS_ORDINARY_MAPS): Likewise.
   4188 	(LINEMAPS_ORDINARY_MAP_AT): Likewise.
   4189 	(LINEMAPS_ORDINARY_ALLOCATED): Likewise.
   4190 	(LINEMAPS_ORDINARY_USED): Likewise.
   4191 	(LINEMAPS_LAST_ORDINARY_MAP): Likewise.
   4192 	(LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise.
   4193 	(LINEMAPS_MACRO_MAPS): Likewise.
   4194 	(LINEMAPS_MACRO_MAP_AT): Likewise.
   4195 	(LINEMAPS_MACRO_ALLOCATED): Likewise.
   4196 	(LINEMAPS_MACRO_USED): Likewise.
   4197 	(LINEMAPS_MACRO_LOWEST_LOCATION): Likewise.
   4198 	(LINEMAPS_LAST_MACRO_MAP): Likewise.
   4199 	(LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise.
   4200 	(IS_ADHOC_LOC): Likewise.
   4201 	(COMBINE_LOCATION_DATA): Likewise.
   4202 	(SOURCE_LINE): Likewise.
   4203 	(SOURCE_COLUMN): Likewise.
   4204 	(LAST_SOURCE_LINE_LOCATION): Likewise.
   4205 	(LAST_SOURCE_LINE): Likewise.
   4206 	(LAST_SOURCE_COLUMN): Likewise.
   4207 	(LAST_SOURCE_LINE_LOCATION)
   4208 	(INCLUDED_FROM): Likewise.
   4209 	(MAIN_FILE_P): Likewise.
   4210 	(LINEMAP_FILE): Likewise.
   4211 	(LINEMAP_LINE): Likewise.
   4212 	(LINEMAP_SYSP): Likewise.
   4213 	(linemap_location_before_p): Likewise.
   4214 	* line-map.c (linemap_check_files_exited): Make local "map" const.
   4215 	(linemap_add): Use SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
   4216 	(linemap_line_start): Likewise.
   4217 
   4218 2015-05-13  Michael Haubenwallner  <michael.haubenwallner (a] ssi-schaefer.com>
   4219 
   4220 	* aclocal.m4: Regenerated with automake-1.11.6.
   4221 
   4222 2015-05-13  David Malcolm  <dmalcolm (a] redhat.com>
   4223 
   4224 	* include/line-map.h (linemap_assert): Move up within the file to
   4225 	before all of the map accessor macros.
   4226 	(linemap_assert_fails): Likewise.
   4227 	(linemap_check_ordinary): Likewise.
   4228 	(linemap_macro_expansion_map_p): Likewise.
   4229 
   4230 2015-05-12  David Malcolm  <dmalcolm (a] redhat.com>
   4231 
   4232 	* directives.c (do_line): Set seen_line_directive on line_table.
   4233 	(do_linemarker): Likewise.
   4234 	* include/line-map.h (struct line_maps): Add new field
   4235 	"seen_line_directive".
   4236 
   4237 2015-05-08  Jason Merrill  <jason (a] redhat.com>
   4238 
   4239 	* include/cpplib.h: Add CPP_W_CXX11_COMPAT.
   4240 	(struct cpp_options): Add cpp_warn_cxx11_compat.
   4241 	* init.c (cpp_create_reader): Initialize it.
   4242 	* lex.c (lex_string): Add -Wc++11-compat warning.
   4243 
   4244 2015-05-05  David Malcolm  <dmalcolm (a] redhat.com>
   4245 
   4246 	* pch.c (cpp_valid_state): Fix indentation so that it reflects the
   4247 	block structure.
   4248 
   4249 2015-05-05  David Malcolm  <dmalcolm (a] redhat.com>
   4250 
   4251 	* include/line-map.h: Fix comment at the top of the file.
   4252 	(source_location): Rewrite and expand the comment for this
   4253 	typedef, adding an ascii-art table to clarify how source_location
   4254 	values are allocated.
   4255 	* line-map.c: Fix comment at the top of the file.
   4256 
   4257 2015-04-09  Richard Biener  <rguenther (a] suse.de>
   4258 
   4259 	PR pch/65550
   4260 	* files.c (pch_open_file): Allow main and pre-included files
   4261 	when trying to open a PCH.
   4262 
   4263 2015-04-06  Jakub Jelinek  <jakub (a] redhat.com>
   4264 
   4265 	PR preprocessor/61977
   4266 	* lex.c (cpp_peek_token): If peektok is CPP_EOF, back it up
   4267 	with all tokens peeked by the current function.
   4268 
   4269 2015-04-02  Jakub Jelinek  <jakub (a] redhat.com>
   4270 
   4271 	PR preprocessor/61977
   4272 	* lex.c (cpp_peek_token): Temporarily clear pfile->cb.line_change.
   4273 
   4274 2015-03-23  Jakub Jelinek  <jakub (a] redhat.com>
   4275 
   4276 	PR preprocessor/65238
   4277 	* internal.h (_cpp_scan_out_logical_line): Add third argument.
   4278 	* directives.c (prepare_directive_trad): Pass false to it.
   4279 	* traditional.c (_cpp_read_logical_line_trad,
   4280 	_cpp_create_trad_definition): Likewise.
   4281 	(struct fun_macro): Add paramc field.
   4282 	(fun_like_macro): New function.
   4283 	(maybe_start_funlike): Handle NODE_BUILTIN macros.  Initialize
   4284 	macro->paramc field.
   4285 	(save_argument): Use macro->paramc instead of
   4286 	macro->node->value.macro->paramc.
   4287 	(push_replacement_text): Formatting fix.
   4288 	(recursive_macro): Use fun_like_macro helper.
   4289 	(_cpp_scan_out_logical_line): Likewise.  Add BUILTIN_MACRO_ARG
   4290 	argument.  Initialize fmacro.paramc field.  Handle builtin
   4291 	function-like macros.
   4292 
   4293 2015-03-16  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   4294 
   4295 	PR c++/64626
   4296 	* lex.c (lex_number): If a number ends with digit-seps (') skip back
   4297 	and let lex_string take them.
   4298 
   4299 2015-03-02  Markus Trippelsdorf  <markus (a] trippelsdorf.de>
   4300 
   4301 	PR target/65261
   4302 	* lex.c (search_line_fast): Silence ubsan errors.
   4303 
   4304 2015-02-03    <dodji (a] redhat.com>
   4305 
   4306 	PR preprocessor/64803
   4307 	* internal.h (cpp_reader::top_most_macro_node): New data member.
   4308 	* macro.c (enter_macro_context): Pass the location of the end of
   4309 	the top-most invocation of the function-like macro, or the
   4310 	location of the expansion point of the top-most object-like macro.
   4311 	(cpp_get_token_1): Store the top-most macro node in the new
   4312 	pfile->top_most_macro_node data member.
   4313 	(_cpp_pop_context): Clear the new cpp_reader::top_most_macro_node
   4314 	data member.
   4315 
   4316 2015-01-30  Szabolcs Nagy  <szabolcs.nagy (a] arm.com>
   4317 
   4318 	* lex.c (search_line_fast): Change __ARM_NEON__ to __ARM_NEON.
   4319 
   4320 2015-01-23  Marek Polacek  <polacek (a] redhat.com>
   4321 
   4322 	DR#412
   4323 	PR preprocessor/60570
   4324 	* directives.c (do_elif): Don't evaluate #elif conditionals
   4325 	when they don't need to be.
   4326 
   4327 2015-01-16  Jakub Jelinek  <jakub (a] redhat.com>
   4328 
   4329 	* expr.c (cpp_classify_number): Add N_() around ?: string
   4330 	literals used in cpp_error_with_line call as format string.
   4331 
   4332 2015-01-05  Jakub Jelinek  <jakub (a] redhat.com>
   4333 
   4334 	Update copyright years.
   4335 
   4336 2014-12-19  Jakub Jelinek  <jakub (a] redhat.com>
   4337 
   4338 	PR preprocessor/63831
   4339 	* directives.c (lex_macro_node): Remove __has_attribute__ handling.
   4340 	* internal.h (struct spec_node): Remove n__has_attribute__ field.
   4341 	(struct lexer_state): Remove in__has_attribute__ field.
   4342 	* macro.c (_cpp_builtin_macro_text): Handle BT_HAS_ATTRIBUTE.
   4343 	* identifiers.c (_cpp_init_hashtable): Remove __has_attribute__
   4344 	handling.
   4345 	* init.c (builtin_array): Add __has_attribute and __has_cpp_attribute.
   4346 	(cpp_init_special_builtins): Don't initialize __has_attribute
   4347 	or __has_cpp_attribute if CLK_ASM or pfile->cb.has_attribute is NULL.
   4348 	* traditional.c (enum ls): Remove ls_has_attribute,
   4349 	ls_has_attribute_close.
   4350 	(_cpp_scan_out_logical_line): Remove __has_attribute__ handling.
   4351 	* include/cpplib.h (enum cpp_builtin_type): Add BT_HAS_ATTRIBUTE.
   4352 	* pch.c (cpp_read_state): Remove __has_attribute__ handling.
   4353 	* expr.c (eval_token): Likewise.
   4354 	(parse_has_attribute): Removed.
   4355 
   4356 2014-12-11  Uros Bizjak  <ubizjak (a] gmail.com>
   4357 
   4358 	* directives.c (cpp_define_formatted): Use xvasprintf.
   4359 
   4360 2014-12-05  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   4361 
   4362 	* line-map.c (linemap_position_for_loc_and_offset): Add new
   4363 	linemap_assert_fails.
   4364 
   4365 2014-12-02  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   4366 
   4367 	* include/line-map.h (linemap_assert_fails): Declare.
   4368 	* line-map.c (linemap_position_for_loc_and_offset): Use it.
   4369 
   4370 2014-12-02  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   4371 
   4372 	* line-map.c (linemap_add): Fix typo.
   4373 	(linemap_line_start): Fix whitespace.
   4374 
   4375 2014-11-29  John Schmerge  <jbschmerge (a] gmail.com>
   4376 
   4377 	PR preprocessor/41698
   4378 	* charset.c (one_utf8_to_utf16): Do not produce surrogate pairs
   4379 	for 0xffff.
   4380 
   4381 2014-11-25  Jakub Jelinek  <jakub (a] redhat.com>
   4382 
   4383 	PR preprocessor/60436
   4384 	* line-map.c (linemap_line_start): If highest is above 0x60000000
   4385 	and we are still tracking columns or highest is above 0x70000000,
   4386 	force add_map.
   4387 
   4388 2014-11-20  Uros Bizjak  <ubizjak (a] gmail.com>
   4389 
   4390 	PR target/63966
   4391 	* lex.c [__i386__ || __x86_64__]: Compile special SSE functions
   4392 	only for (__GNUC__ >= 5 || !defined(__PIC__)).
   4393 
   4394 2014-11-13  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   4395 
   4396 	* include/line-map.h: Include EXPR, so that unused variable warnings
   4397 	do not occur.
   4398 
   4399 2014-11-11  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   4400 
   4401 	PR fortran/44054
   4402 	* include/line-map.h (linemap_position_for_loc_and_offset):
   4403 	Declare.
   4404 	* line-map.c (linemap_position_for_loc_and_offset): New.
   4405 
   4406 2014-11-11  David Malcolm  <dmalcolm (a] redhat.com>
   4407 
   4408 	* ChangeLog.jit: New.
   4409 
   4410 2014-11-10  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   4411 
   4412 	* include/cpplib.h (cpp_callbacks): Add has_attribute.
   4413 	* internal.h (lexer_state): Add in__has_attribute__.
   4414 	* directives.c (lex_macro_node): Prevent use of __has_attribute__
   4415 	as a macro.
   4416 	* expr.c (parse_has_attribute): New function; (eval_token): Look for
   4417 	__has_attribute__ and route to parse_has_attribute.
   4418 	* identifiers.c (_cpp_init_hashtable): Initialize n__has_attribute__.
   4419 	* pch.c (cpp_read_state): Initialize n__has_attribute__.
   4420 	* traditional.c (enum ls): Add ls_has_attribute, ls_has_attribute_close;
   4421 	(_cpp_scan_out_logical_line): Attend to __has_attribute__.
   4422 
   4423 2014-11-06  Joseph Myers  <joseph (a] codesourcery.com>
   4424 
   4425 	* include/cpp-id-data.h (struct cpp_macro): Update comment
   4426 	regarding parameters.
   4427 	* include/cpplib.h (struct cpp_macro_arg, struct cpp_identifier):
   4428 	Add spelling fields.
   4429 	(struct cpp_token): Update comment on macro_arg.
   4430 	* internal.h (_cpp_save_parameter): Add extra argument.
   4431 	(_cpp_spell_ident_ucns): New declaration.
   4432 	* lex.c (lex_identifier): Add SPELLING argument.  Set *SPELLING to
   4433 	original spelling of identifier.
   4434 	(_cpp_lex_direct): Update calls to lex_identifier.
   4435 	(_cpp_spell_ident_ucns): New function, factored out of
   4436 	cpp_spell_token.
   4437 	(cpp_spell_token): Adjust FORSTRING argument semantics to return
   4438 	original spelling of identifiers.  Use _cpp_spell_ident_ucns in
   4439 	!FORSTRING case.
   4440 	(_cpp_equiv_tokens): Check spellings of identifiers and macro
   4441 	arguments are identical.
   4442 	* macro.c (macro_arg_saved_data): New structure.
   4443 	(paste_tokens): Use original spellings of identifiers from
   4444 	cpp_spell_token.
   4445 	(_cpp_save_parameter): Add argument SPELLING.  Save both canonical
   4446 	node and its value.
   4447 	(parse_params): Update calls to _cpp_save_parameter.
   4448 	(lex_expansion_token): Save spelling of macro argument tokens.
   4449 	(_cpp_create_definition): Extract canonical node from saved data.
   4450 	(cpp_macro_definition): Use UCNs in spelling of macro name.  Use
   4451 	original spellings of macro argument tokens and identifiers.
   4452 	* traditional.c (scan_parameters): Update call to
   4453 	_cpp_save_parameter.
   4454 
   4455 2014-11-05  Joseph Myers  <joseph (a] codesourcery.com>
   4456 
   4457 	PR preprocessor/9449
   4458 	* init.c (lang_defaults): Enable extended identifiers for C++ and
   4459 	C99-based standards.
   4460 
   4461 2014-10-22  Alan Modra  <amodra (a] gmail.com>
   4462 
   4463 	* symtab.c (ht_create): Use obstack_specify_allocation in place of
   4464 	_obstack_begin.
   4465 	* files.c (_cpp_init_files): Likewise.
   4466 	* init.c (cpp_create_reader): Likewise.
   4467 	* identifiers.c (_cpp_init_hashtable): Likewise.
   4468 
   4469 2014-10-14  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   4470 
   4471 	* include/line-map.h (linemap_location_from_macro_expansion_p):
   4472 	const struct line_maps * argument.
   4473 	(linemap_position_for_line_and_column): const struct line_map *
   4474 	argument.
   4475 	* line-map.c (linemap_add_macro_token): Use correct argument name
   4476 	in comment.
   4477 	(linemap_position_for_line_and_column): const struct line_map *
   4478 	argument.
   4479 	(linemap_macro_map_loc_to_def_point): Fix comment. Make static.
   4480 	(linemap_location_from_macro_expansion_p): const struct line_maps *
   4481 	argument.
   4482 	(linemap_resolve_location): Fix argument names in comment.
   4483 
   4484 2014-10-03  Bill Schmidt  <wschmidt (a] linux.vnet.ibm.com>
   4485 
   4486 	* lex.c (search_line_fast): Add new version to be used for Power8
   4487 	and later targets when Altivec is enabled.  Restrict the existing
   4488 	Altivec version to big-endian systems so that lvsr is not used on
   4489 	little endian, where it is deprecated.  Remove LE-specific code
   4490 	from the now-BE-only version.
   4491 
   4492 2014-10-02  Bernd Edlinger  <bernd.edlinger (a] hotmail.de>
   4493 	    Jeff Law  <law (a] redhat.com>
   4494 
   4495 	* charset.c (convert_no_conversion): Reallocate memory with 25%
   4496 	headroom.
   4497 
   4498 2014-10-01  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   4499 
   4500 	Implement SD-6: SG10 Feature Test Recommendations
   4501 	* internal.h (lexer_state, spec_nodes): Add in__has_include__.
   4502 	* directives.c: Support __has_include__ builtin.
   4503 	* expr.c (parse_has_include): New function to parse __has_include__
   4504 	builtin; (eval_token()): Use it.
   4505 	* files.c (_cpp_has_header()): New funtion to look for header;
   4506 	(open_file_failed()): Not an error to not find a header file for
   4507 	__has_include__.
   4508 	* identifiers.c (_cpp_init_hashtable()): Add entry for __has_include__.
   4509 	* pch.c (cpp_read_state): Lookup __has_include__.
   4510 	* traditional.c (enum ls, _cpp_scan_out_logical_line()): Walk through
   4511 	__has_include__ statements.
   4512 
   4513 2014-09-30  Bernd Edlinger  <bernd.edlinger (a] hotmail.de>
   4514 
   4515 	PR preprocessor/58893
   4516 	* errors.c (cpp_diagnostic): Fix possible out of bounds access.
   4517 	* files.c (_cpp_stack_include): Initialize src_loc for IT_CMDLINE.
   4518 
   4519 2014-09-24  Marek Polacek  <polacek (a] redhat.com>
   4520 
   4521 	PR c/61405
   4522 	PR c/53874
   4523 	* include/cpplib.h (enum cpp_ttype): Define CPP_KEYWORD.
   4524 
   4525 2014-09-17  Jan Hubicka  <hubicka (a] ucw.cz>
   4526 
   4527 	* charset.c (conversion): Rename to ...
   4528 	(cpp_conversion): ... this one; update.
   4529 	* files.c (file_hash_entry): Rename to ...
   4530 	(cpp_file_hash_entry): ... this one ; update.
   4531 
   4532 2014-09-17  Marek Polacek  <polacek (a] redhat.com>
   4533 
   4534 	PR c/61854
   4535 	* init.c (struct lang_flags): Remove cplusplus_comments.
   4536 	(cpp_set_lang): Likewise.
   4537 	(post_options): Likewise.
   4538 	* lex.c (_cpp_lex_direct): Disallow C++ style comments in C90/C94.
   4539 
   4540 2014-09-09  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   4541 
   4542 	* include/cpplib.h (struct cpp_options): Declare warn_normalize as
   4543 	int instead of enum.
   4544 
   4545 2014-09-04  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   4546 
   4547 	* macro.c (replace_args): Use cpp_pedwarning, cpp_warning and
   4548 	CPP_W flags.
   4549 	* include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
   4550 	* init.c (cpp_create_reader): Do not init to -1 here.
   4551 	* expr.c (num_binary_op): Use cpp_pedwarning.
   4552 
   4553 2014-08-29  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   4554 
   4555 	* directives.c (check_eol_1): New.
   4556 	(check_eol_endif_labels): New.
   4557 	(check_eol): Call check_eol_1.
   4558 	(do_else,do_endif): Call check_eol_endif_labels.
   4559 
   4560 2014-08-29  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   4561 
   4562 	* macro.c (warn_of_redefinition): Suppress warnings for builtins
   4563 	that lack the NODE_WARN flag, unless Wbuiltin-macro-redefined.
   4564 	(_cpp_create_definition): Use Wbuiltin-macro-redefined for
   4565 	builtins that lack the NODE_WARN flag.
   4566 	* directives.c (do_undef): Likewise.
   4567 	* init.c (cpp_init_special_builtins): Do not change flags
   4568 	depending on Wbuiltin-macro-redefined.
   4569 
   4570 2014-08-28  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   4571 
   4572 	PR cpp/23827 - standard C++ should not have hex float preprocessor
   4573 	tokens
   4574 	* libcpp/init.c (lang_flags): Change CXX98 flag for extended numbers
   4575 	from 1 to 0.
   4576 	* libcpp/expr.c (cpp_classify_number): Weite error message for improper
   4577 	use of hex floating literal.
   4578 
   4579 2014-08-23  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   4580 
   4581 	* include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z;
   4582 	Rename CLK_GNUCXX1Y, CLK_CXX1Y to CLK_GNUCXX14, CLK_CXX14;
   4583 	* init.c (struct lang_flags lang_defaults): Add column for trigraphs;
   4584 	Add rows for CLK_GNUCXX1Z, CLK_CXX1Z; (cpp_set_lang): Set trigraphs;
   4585 	(cpp_init_builtins): Set __cplusplus to 201402L for C++14;
   4586 	Set __cplusplus to 201500L for C++17.
   4587 	* expr.c (cpp_classify_number): Change C++1y to C++14 in binary
   4588 	constants error message.
   4589 
   4590 2014-08-20  Marek Polacek  <polacek (a] redhat.com>
   4591 
   4592 	* include/cpplib.h (cpp_options): Use signed char.
   4593 	* lex.c (_cpp_lex_direct): Don't warn in C++ mode.
   4594 
   4595 2014-08-19  Marek Polacek  <polacek (a] redhat.com>
   4596 
   4597 	* lex.c (_cpp_lex_direct): Fix a typo.
   4598 
   4599 2014-08-19  Marek Polacek  <polacek (a] redhat.com>
   4600 
   4601 	* charset.c (_cpp_valid_ucn): Warn only if -Wc90-c99-compat.
   4602 	* lex.c (_cpp_lex_direct): Likewise.
   4603 	* macro.c (replace_args): Likewise.
   4604 	(parse_params): Likewise.
   4605 	* include/cpplib.h (cpp_options): Change cpp_warn_c90_c99_compat
   4606 	to char.
   4607 
   4608 2014-08-10 Marek Polacek  <polacek (a] redhat.com>
   4609 
   4610 	PR c/51849
   4611 	* lex.c (_cpp_lex_direct): Warn when -Wc90-c99-compat is in effect.
   4612 	* charset.c (_cpp_valid_ucn): Likewise.
   4613 	* include/cpplib.h (cpp_options): Add cpp_warn_c90_c99_compat.
   4614 	* macro.c (replace_args): Warn when -Wc90-c99-compat is in effect.
   4615 	(parse_params): Likewise.
   4616 
   4617 2014-07-27  Marek Polacek  <polacek (a] redhat.com>
   4618 
   4619 	PR c/61861
   4620 	* macro.c (builtin_macro): Add location parameter.  Set
   4621 	location of builtin macro to the expansion point.
   4622 	(enter_macro_context): Pass location to builtin_macro.
   4623 
   4624 2014-07-16  Dodji Seketeli  <dodji (a] redhat.com>
   4625 
   4626 	Support location tracking for built-in macro tokens
   4627 	* include/line-map.h (line_maps::builtin_location): New data
   4628 	member.
   4629 	(line_map_init): Add a new parameter to initialize the new
   4630 	line_maps::builtin_location data member.
   4631 	* line-map.c (linemap_init): Initialize the
   4632 	line_maps::builtin_location data member.
   4633 	* macro.c (builtin_macro): Create a macro map and track the token
   4634 	resulting from the expansion of a built-in macro.
   4635 
   4636 2014-07-10  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   4637 	    Jonathan Wakely  <jwakely (a] redhat.com>
   4638 
   4639 	PR preprocessor/61389
   4640 	* macro.c (_cpp_arguments_ok, parse_params, create_iso_definition):
   4641 	Warning messages mention C++11 in c++ mode and C99 in c mode.
   4642 	* lex.c (lex_identifier_intern, lex_identifier): Ditto
   4643 
   4644 2014-07-09  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   4645 
   4646 	PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped
   4647 	by preprocessor
   4648 	* lex.c (lex_raw_string ()): Do not warn about invalid suffix
   4649 	if skipping. (lex_string ()): Ditto.
   4650 
   4651 2014-06-04  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   4652 
   4653 	PR c++/61038
   4654 	* macro.c (stringify_arg (cpp_reader *, macro_arg *)):
   4655 	Combine user-defined escape logic with the other string and char logic.
   4656 
   4657 2014-05-26  Richard Biener  <rguenther (a] suse.de>
   4658 
   4659 	* configure.ac: Remove long long and __int64 type checks,
   4660 	add check for uint64_t and fail if that wasn't found.
   4661 	* include/cpplib.h (cpp_num_part): Use uint64_t.
   4662 	* config.in: Regenerate.
   4663 	* configure: Likewise.
   4664 
   4665 2014-05-21  Marek Polacek  <polacek (a] redhat.com>
   4666 
   4667 	PR c/61212
   4668 	* files.c (find_file_in_dir): Add parens around &&.
   4669 
   4670 2014-05-20  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   4671 
   4672 	PR c++/61038
   4673 	* macro.c (stringify_arg (cpp_reader *, macro_arg *)):
   4674 	Check for user-defined literal strings and user-defined literal chars
   4675 	to escape necessary characters.
   4676 
   4677 2014-05-20  Richard Biener  <rguenther (a] suse.de>
   4678 
   4679 	* configure.ac: Copy gcc logic of detecting a 64bit type.
   4680 	Remove HOST_WIDE_INT define.
   4681 	* include/cpplib.h: typedef cpp_num_part to a 64bit type,
   4682 	similar to how hwint.h does it.
   4683 	* config.in: Regenerate.
   4684 	* configure: Likewise.
   4685 
   4686 2014-05-09  Joey Ye  <joey.ye (a] arm.com>
   4687 
   4688 	* files.c (find_file_in_dir): Always try to shorten for DOS
   4689 	non-system headers.
   4690 	* init.c (ENABLE_CANONICAL_SYSTEM_HEADERS): Default enabled for DOS.
   4691 
   4692 2014-05-07  Richard Biener  <rguenther (a] suse.de>
   4693 
   4694 	* configure.ac: Always set need_64bit_hwint to yes.
   4695 	* configure: Regenerated.
   4696 
   4697 2014-04-22  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   4698 
   4699 	* lex.c: Remove Solaris 9 reference.
   4700 
   4701 2014-02-24  Walter Lee  <walt (a] tilera.com>
   4702 
   4703 	* configure.ac: Change "tilepro" triplet to "tilepro*".
   4704 	* configure: Regenerate.
   4705 
   4706 2014-02-19  Jakub Jelinek  <jakub (a] redhat.com>
   4707 
   4708 	PR preprocessor/58844
   4709 	* macro.c (enter_macro_context): Only push
   4710 	macro_real_token_count (macro) tokens rather than
   4711 	macro->count tokens, regardless of
   4712 	CPP_OPTION (pfile, track-macro-expansion).
   4713 
   4714 2014-02-07  Jakub Jelinek  <jakub (a] redhat.com>
   4715 
   4716 	PR preprocessor/56824
   4717 	* line-map.c (get_combined_adhoc_loc, linemap_get_expansion_line,
   4718 	linemap_get_expansion_filename, linemap_location_in_system_header_p,
   4719 	linemap_location_from_macro_expansion_p,
   4720 	linemap_macro_loc_to_spelling_point, linemap_macro_loc_to_def_point,
   4721 	linemap_macro_loc_to_exp_point, linemap_expand_location): Fix
   4722 	formatting.
   4723 	(linemap_compare_locations): Look through adhoc locations for both
   4724 	l0 and l1.
   4725 
   4726 2014-01-23  Dodji Seketeli  <dodji (a] redhat.com>
   4727 
   4728 	PR PR preprocessor/58580
   4729 	* include/line-map.h (linemap_get_file_highest_location): Declare
   4730 	new function.
   4731 	* line-map.c (linemap_get_file_highest_location): Define it.
   4732 
   4733 2014-01-02  Richard Sandiford  <rdsandiford (a] googlemail.com>
   4734 
   4735 	Update copyright years
   4736 
   4737 2013-12-09  Joseph Myers  <joseph (a] codesourcery.com>
   4738 
   4739 	PR preprocessor/55715
   4740 	* expr.c (num_binary_op): Implement subtraction directly rather
   4741 	than with negation and falling through into addition case.
   4742 
   4743 2013-11-18  Bill Schmidt  <wschmidt (a] linux.vnet.ibm.com>
   4744 
   4745 	* lex.c (search_line_fast): Correct for little endian.
   4746 
   4747 2013-11-15  Joseph Myers  <joseph (a] codesourcery.com>
   4748 
   4749 	* ucnid.tab: Add C11 and C11NOSTART data.
   4750 	* makeucnid.c (digit): Rename enum value to N99.
   4751 	(C11, N11, all_languages): New enum values.
   4752 	(NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
   4753 	(flags, decomp, combining_value): Use NUM_CODE_POINTS as array
   4754 	size.
   4755 	(decomp): Use unsigned int as element type.
   4756 	(all_decomp): New array.
   4757 	(read_ucnid): Handle C11 and C11NOSTART.  Use MAX_CODE_POINT.
   4758 	(read_table): Use MAX_CODE_POINT.  Store all decompositions in
   4759 	all_decomp.
   4760 	(read_derived): Use MAX_CODE_POINT.
   4761 	(write_table): Use NUM_CODE_POINTS.  Print N99, C11 and N11
   4762 	flags.  Print whole array variable declaration rather than just
   4763 	array contents.
   4764 	(char_id_valid, write_context_switch): New functions.
   4765 	(main): Call write_context_switch.
   4766 	* ucnid.h: Regenerate.
   4767 	* include/cpplib.h (struct cpp_options): Add c11_identifiers.
   4768 	* init.c (struct lang_flags): Add c11_identifiers.
   4769 	(cpp_set_lang): Set c11_identifiers option from selected language.
   4770 	* internal.h (struct normalize_state): Document "previous" as
   4771 	previous starter character.
   4772 	(NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
   4773 	* charset.c (DIG): Rename enum value to N99.
   4774 	(C11, N11): New enum values.
   4775 	(struct ucnrange): Give name to struct.  Use short for flags and
   4776 	unsigned int for end of range.  Include ucnid.h for whole variable
   4777 	declaration.
   4778 	(ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
   4779 	Allow for C11 in determining valid characters and valid start
   4780 	characters.  Use check_nfc for non-Hangul context-dependent
   4781 	checks.  Only store starter characters in nst->previous.
   4782 	(_cpp_valid_ucn): Pass new argument to
   4783 	NORMALIZE_STATE_UPDATE_IDNUM.
   4784 	* lex.c (lex_identifier): Pass new argument to
   4785 	NORMALIZE_STATE_UPDATE_IDNUM.  Call NORMALIZE_STATE_UPDATE_IDNUM
   4786 	after initial non-UCN part of identifier.
   4787 	(lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.
   4788 
   4789 2013-11-15  Joseph Myers  <joseph (a] codesourcery.com>
   4790 
   4791 	* ucnid.tab: Mark C99 digits as [C99DIG].
   4792 	* makeucnid.c (read_ucnid): Handle [C99DIG].
   4793 	(read_table): Don't check for digit characters.
   4794 	* ucnid.h: Regenerate.
   4795 
   4796 2013-11-06  Tobias Burnus  <burnus (a] net-b.de>
   4797 
   4798 	* macro.c (_cpp_builtin_macro_text): Correct
   4799 	wording of two warnings.
   4800 
   4801 2013-11-05  Tobias Burnus  <burnus (a] net-b.de>
   4802 
   4803 	* include/cpplib.h (CPP_W_DATE_TIME): Added.
   4804 	(cpp_options): Add warn_date_time.
   4805 	* init.c (cpp_create_reader): Init it.
   4806 	* macro.c (_cpp_builtin_macro_text): Warn when
   4807 	__DATE__/__TIME__/__TIMESTAMP__ is used.
   4808 
   4809 2013-10-31  Edward Smith-Rowland  <3dw4rd (a] verizon.net>
   4810 
   4811 	Implement C++14 digit separators.
   4812 	* include/cpplib.h (cpp_options): Add digit_separators flag.
   4813 	* internal.h (DIGIT_SEP(c)): New macro.
   4814 	* expr.c (cpp_classify_number): Check improper placement of digit sep;
   4815 	(cpp_interpret_integer): Skip over digit separators.
   4816 	* init.c (lang_flags): Add digit_separators flag; (lang_defaults): Add
   4817 	digit separator flags per language; (cpp_set_lang): Set
   4818 	digit_separators
   4819 	* lex.c (lex_number): Add digits separator to allowable characters for
   4820 	C++14.
   4821 
   4822 2013-10-15  David Malcolm  <dmalcolm (a] redhat.com>
   4823 
   4824 	* Makefile.in (PICFLAG): New.
   4825 	(ALL_CFLAGS): Add PICFLAG.
   4826 	(ALL_CXXFLAGS): Likewise.
   4827 	* configure.ac: Add --enable-host-shared, setting up new
   4828 	PICFLAG variable.
   4829 	* configure: Regenerate.
   4830 
   4831 2013-08-07  Richard Earnshaw  <rearnsha (a] arm.com>
   4832 
   4833 	* configure.ac: Set need_64bit_hwint for all arm targets.
   4834 	* configure: Regenerated.
   4835 
   4836 2013-07-20  Jakub Jelinek  <jakub (a] redhat.com>
   4837 
   4838 	PR preprocessor/57620
   4839 	* lex.c (lex_raw_string): Undo phase1 and phase2 transformations
   4840 	between R" and final " rather than only in between R"del( and )del".
   4841 
   4842 2013-07-10  Jakub Jelinek  <jakub (a] redhat.com>
   4843 
   4844 	PR preprocessor/57824
   4845 	* lex.c (lex_raw_string): Allow reading new-lines if
   4846 	in_deferred_pragma or if parsing_args and there is still
   4847 	data in the current buffer.
   4848 
   4849 	* include/cpplib.h (cpp_token_val_index): Change parameter type to
   4850 	const cpp_token *.
   4851 	* lex.c (cpp_token_val_index): Likewise.
   4852 
   4853 	PR preprocessor/57757
   4854 	* lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING
   4855 	or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that
   4856 	starts if a-zA-Z_.
   4857 
   4858 2013-06-28  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
   4859 
   4860 	* lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
   4861 	as concatenated literal and macro to just the patterns found in
   4862 	inttypes.h; (is_macro()): New.
   4863 
   4864 2013-06-24  Dehao Chen  <dehao (a] google.com>
   4865 
   4866 	* files.c (_cpp_stack_include): Fix the highest_location when header
   4867 	file is guarded by #ifndef and is included twice.
   4868 
   4869 2013-04-28  Jakub Jelinek  <jakub (a] redhat.com>
   4870 
   4871 	N3472 binary constants
   4872 	* include/cpplib.h (struct cpp_options): Fix a typo in user_literals
   4873 	field comment.  Add binary_constants field.
   4874 	* init.c (struct lang_flags): Add binary_constants field.
   4875 	(lang_defaults): Add bin_cst column to the table.
   4876 	(cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
   4877 	* expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
   4878 	in diagnostics.  Accept binary constants if
   4879 	CPP_OPTION (pfile, binary_constants) even when pedantic.  Adjust
   4880 	pedwarn message.
   4881 
   4882 2013-04-24  Paolo Carlini  <paolo.carlini (a] oracle.com>
   4883 
   4884 	* include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
   4885 	* init.c (lang_defaults): Add defaults for the latter.
   4886 	(cpp_init_builtins): Define __cplusplus as 201300L for the latter.
   4887 	* lex.c (_cpp_lex_direct): Update.
   4888 
   4889 2013-04-03  Sebastian Huber  <sebastian.huber (a] embedded-brains.de>
   4890 
   4891 	PR target/56771
   4892 	* configure.ac: Require 64-bit int for arm*-*-rtems*.
   4893 	* configure: Regenerate.
   4894 
   4895 2013-03-06  Jakub Jelinek  <jakub (a] redhat.com>
   4896 
   4897 	PR middle-end/56461
   4898 	* internal.h (struct cpp_buffer): Add to_free field.
   4899 	(_cpp_pop_file_buffer): Add third argument.
   4900 	* files.c (_cpp_stack_file): Set buffer->to_free.
   4901 	(_cpp_pop_file_buffer): Add to_free argument.  Free to_free
   4902 	if non-NULL, and if equal to file->buffer_start, also clear
   4903 	file->buffer{,_start,_valid}.
   4904 	* directives.c (_cpp_pop_buffer): Pass buffer->to_free
   4905 	to _cpp_pop_file_buffer.
   4906 
   4907 2013-03-01  Jakub Jelinek  <jakub (a] redhat.com>
   4908 
   4909 	PR middle-end/56461
   4910 	* files.c (_cpp_save_file_entries): Free result at the end.
   4911 	* pch.c (cpp_string_free): New function.
   4912 	(cpp_save_state): Use it in htab_create call.
   4913 	(cpp_write_pch_deps): Free ss->defs.  Destroy ss->definedhash.
   4914 
   4915 2013-02-28  Jakub Jelinek  <jakub (a] redhat.com>
   4916 
   4917 	* files.c (_cpp_find_file): If returning early, before storing
   4918 	something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
   4919 	on it.  Access *hash_slot using void * type rather than
   4920 	struct file_hash_entry * to avoid aliasing issues.
   4921 
   4922 	* configure.ac: Don't define ENABLE_CHECKING whenever
   4923 	--enable-checking is seen, instead use similar --enable-checking=yes
   4924 	vs. --enable-checking=release default as gcc/ subdir has and
   4925 	define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
   4926 	Define ENABLE_VALGRIND_CHECKING if requested.
   4927 	* lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
   4928 	struct first in the allocated buffer and result->base after it.
   4929 	(_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
   4930 	instead of buff->base.
   4931 	* config.in: Regenerated.
   4932 	* configure: Regenerated.
   4933 
   4934 2013-02-13  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
   4935 
   4936 	PR c++/55582
   4937 	* lex.c (lex_raw_string): Allow string literal with suffix
   4938 	beginning with 's' to be parsed as a C++11 user-defined literal.
   4939 
   4940 2013-01-14  Richard Sandiford  <rdsandiford (a] googlemail.com>
   4941 
   4942 	Update copyright years.
   4943 
   4944 2013-01-04  Paolo Carlini  <paolo.carlini (a] oracle.com>
   4945 
   4946 	PR c++/54526 (again)
   4947 	* lex.c (_cpp_lex_direct): In C++11 mode, implement 2.5 p3, bullet 2.
   4948 
   4949 2013-01-03  Marc Glisse  <marc.glisse (a] inria.fr>
   4950 
   4951 	PR bootstrap/50177
   4952 	* line-map.c (get_combined_adhoc_loc): Cast from extern "C" type.
   4953 	(new_linemap): Likewise.
   4954 	(linemap_enter_macro): Likewise.
   4955 
   4956 2012-12-03  Jakub Jelinek  <jakub (a] redhat.com>
   4957 
   4958 	PR bootstrap/55380
   4959 	PR other/54691
   4960 	* files.c (read_file_guts): Allocate extra 16 bytes instead of
   4961 	1 byte at the end of buf.  Pass size + 16 instead of size
   4962 	to _cpp_convert_input.
   4963 	* charset.c (_cpp_convert_input): Reallocate if there aren't
   4964 	at least 16 bytes beyond to.len in the buffer.  Clear 16 bytes
   4965 	at to.text + to.len.
   4966 
   4967 2012-11-21  Steve Ellcey  <sellcey (a] mips.com>
   4968 
   4969 	PR pch/55399
   4970 	* files.c (pch_open_file): Fix check for implicit_preinclude.
   4971 
   4972 2012-11-16  Simon Baldwin  <simonb (a] google.com>
   4973 
   4974 	* include/cpplib.h (struct cpp_options): Add canonical_system_headers.
   4975 	* files.c (find_file_in_dir): Call maybe_shorter_path() only if
   4976 	canonical_system_headers is set.
   4977 	* init.c (cpp_create_reader): Initialize canonical_system_headers.
   4978 	* configure.ac: Add new --enable-canonical-system-headers.
   4979 	* configure: Regenerate.
   4980 	* config.in: Regenerate.
   4981 
   4982 2012-11-09  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
   4983 
   4984 	PR c++/54413
   4985 	* include/cpplib.h (cpp_interpret_float_suffix): Add cpp_reader* arg.
   4986 	(cpp_interpret_int_suffix): Add cpp_reader* arg.
   4987 	* init.c (cpp_create_reader): Iitialize new flags.
   4988 	* expr.c (interpret_float_suffix): Use new flags.
   4989 	(cpp_interpret_float_suffix): Add cpp_reader* arg.
   4990 	(interpret_int_suffix): Use new flags.
   4991 	(cpp_interpret_int_suffix): Add cpp_reader* arg.
   4992 	(cpp_classify_number): Adjust calls to interpret_x_suffix.
   4993 
   4994 2012-10-23  Ian Bolton  <ian.bolton (a] arm.com>
   4995 	    Jim MacArthur  <jim.macarthur (a] arm.com>
   4996 	    Marcus Shawcroft  <marcus.shawcroft (a] arm.com>
   4997 	    Nigel Stephens  <nigel.stephens (a] arm.com>
   4998 	    Ramana Radhakrishnan  <ramana.radhakrishnan (a] arm.com>
   4999 	    Richard Earnshaw  <rearnsha (a] arm.com>
   5000 	    Sofiane Naci  <sofiane.naci (a] arm.com>
   5001 	    Stephen Thomas  <stephen.thomas (a] arm.com>
   5002 	    Tejas Belagod  <tejas.belagod (a] arm.com>
   5003 	    Yufeng Zhang  <yufeng.zhang (a] arm.com>
   5004 
   5005 	* configure.ac: Enable AArch64.
   5006 	* configure: Regenerate.
   5007 
   5008 2012-10-23  Joseph Myers  <joseph (a] codesourcery.com>
   5009 
   5010 	* files.c (struct _cpp_file): Add implicit_preinclude.
   5011 	(pch_open_file): Allow a previously opened implicitly included
   5012 	file.
   5013 	(_cpp_find_file): Add implicit_preinclude argument.  Free file and
   5014 	do not call open_file_failed if implicit_preinclude.  Store
   5015 	implicit_preinclude value.
   5016 	(_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date):
   5017 	Update calls to _cpp_find_file.
   5018 	(_cpp_stack_include): Handle IT_DEFAULT.
   5019 	(cpp_push_default_include): New.
   5020 	* include/cpplib.h (cpp_push_default_include): Declare.
   5021 	* init.c (cpp_read_main_file): Update call to _cpp_find_file.
   5022 	* internal.h (enum include_type): Add IT_DEFAULT.
   5023 	(_cpp_find_file): Update prototype.
   5024 
   5025 2012-10-15  Tobias Burnus  <burnus (a] net-b.de>
   5026 
   5027 	* files.c (read_file_guts, _cpp_save_file_entries): Free memory
   5028 	before returning.
   5029 	* lex.c (warn_about_normalization): Ditto.
   5030 	* mkdeps.c (deps_save): Ditto.
   5031 	* pch.c (cpp_valid_state): Ditto.
   5032 
   5033 2012-10-04  Florian Weimer  <fweimer (a] redhat.com>
   5034 
   5035 	* directives.c (do_pragma_warning_or_error): New.
   5036 	(do_pragma_warning): New.
   5037 	(do_pragma_error): New.
   5038 	(_cpp_init_internal_pragmas): Register new pragmas.
   5039 
   5040 2012-09-25  Dehao Chen  <dehao (a] google.com>
   5041 
   5042 	PR middle-end/54704
   5043 	* line-map.c (location_adhoc_data_hash): Fix the hash function.
   5044 
   5045 2012-09-25  Dehao Chen  <dehao (a] google.com>
   5046 
   5047 	PR middle-end/54645
   5048 	* include/line-map.h (location_adhoc_data): Move location_adhoc_data
   5049 	into GC.
   5050 	(location_adhoc_data_map): Likewise.
   5051 	(line_maps): Likewise.
   5052 	(rebuild_location_adhoc_htab): New Function.
   5053 	* line-map.c (+rebuild_location_adhoc_htab): new Funcion.
   5054 	(get_combined_adhoc_loc): Move location_adhoc_data into GC.
   5055 	(location_adhoc_data_fini): Likewise.
   5056 	(linemap_init): Likewise.
   5057 	(location_adhoc_data_init): Remove Function.
   5058 
   5059 2012-09-19  Dehao Chen  <dehao (a] google.com>
   5060 
   5061 	* include/line-map.h (MAX_SOURCE_LOCATION): New value.
   5062 	(location_adhoc_data_fini): New.
   5063 	(get_combined_adhoc_loc): New.
   5064 	(get_data_from_adhoc_loc): New.
   5065 	(get_location_from_adhoc_loc): New.
   5066 	(location_adhoc_data_map): New.
   5067 	(COMBINE_LOCATION_DATA): New.
   5068 	(IS_ADHOC_LOC): New.
   5069 	(expanded_location): New field.
   5070 	(line_maps): New field.
   5071 	* line-map.c (location_adhoc_data): New.
   5072 	(location_adhoc_data_hash): New.
   5073 	(location_adhoc_data_eq): New.
   5074 	(location_adhoc_data_update): New.
   5075 	(get_combined_adhoc_loc): New.
   5076 	(get_data_from_adhoc_loc): New.
   5077 	(get_location_from_adhoc_loc): New.
   5078 	(location_adhoc_data_init): New.
   5079 	(location_adhoc_data_fini): New.
   5080 	(linemap_init): Initialize location_adhoc_data.
   5081 	(linemap_lookup): Change to use new location.
   5082 	(linemap_ordinary_map_lookup): Likewise.
   5083 	(linemap_macro_map_lookup): Likewise.
   5084 	(linemap_macro_map_loc_to_def_point): Likewise.
   5085 	(linemap_macro_map_loc_unwind_toward_spel): Likewise.
   5086 	(linemap_get_expansion_line): Likewise.
   5087 	(linemap_get_expansion_filename): Likewise.
   5088 	(linemap_location_in_system_header_p): Likewise.
   5089 	(linemap_location_from_macro_expansion_p): Likewise.
   5090 	(linemap_macro_loc_to_spelling_point): Likewise.
   5091 	(linemap_macro_loc_to_def_point): Likewise.
   5092 	(linemap_macro_loc_to_exp_point): Likewise.
   5093 	(linemap_resolve_location): Likewise.
   5094 	(linemap_unwind_toward_expansion): Likewise.
   5095 	(linemap_unwind_to_first_non_reserved_loc): Likewise.
   5096 	(linemap_expand_location): Likewise.
   5097 	(linemap_dump_location): Likewise.
   5098 	(linemap_line_start): Likewise.
   5099 
   5100 2012-05-25  Dodji Seketeli  <dodji (a] redhat.com>
   5101 
   5102 	PR preprocessor/53469
   5103 	* directives.c (do_pragma): Use the virtual location for the
   5104 	pragma token, instead of its spelling location.
   5105 
   5106 2012-08-14   Diego Novillo  <dnovillo (a] google.com>
   5107 
   5108 	Merge from cxx-conversion branch.  Configury.
   5109 
   5110 	* Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
   5111 	* configure.ac: Likewise.
   5112 	* configure: Regenerate.
   5113 
   5114 2012-08-14   Lawrence Crowl  <crowl (a] google.com>
   5115 
   5116 	Merge from cxx-conversion branch.  New C++ hash table.
   5117 
   5118 	* include/symtab.h (typedef struct ht hash_table): Change the typedef
   5119 	name to cpp_hash_table.  Update all users of the typedef.
   5120 
   5121 2012-07-30  Laurynas Biveinis  <laurynas.biveinis (a] gmail.com>
   5122 
   5123 	* include/line-map.h (line_map_macro): Use the "atomic" GTY option
   5124 	for the macro_locations field.
   5125 
   5126 2011-06-19  Uros Bizjak  <ubizjak (a] gmail.com>
   5127 
   5128 	* lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
   5129 	__builtin_ia32_pcmpestri128 instead of asm.
   5130 
   5131 2012-06-04  Dimitrios Apostolou <jimis (a] gmx.net>
   5132 
   5133 	* line-map.c (linemap_enter_macro): Don't zero max_column_hint in
   5134 	every macro. This improves performance by reducing the number of
   5135 	reallocations when track-macro-expansion is on.
   5136 
   5137 2012-06-04  Dodji Seketeli  <dodji (a] redhat.com>
   5138 
   5139 	PR preprocessor/53463
   5140 	* line-map.c (linemap_location_in_system_header_p): For built-in
   5141 	macro tokens, check the first expansion point location that is not
   5142 	for a token coming from a built-in macro.
   5143 
   5144 2012-05-29  Joseph Myers  <joseph (a] codesourcery.com>
   5145 
   5146 	* directives.c: Fix typos.
   5147 	* include/line-map.h: Fix typos.
   5148 	* line-map.c: Fix typos.
   5149 	* macro.c: Fix typos.
   5150 
   5151 2012-05-25  Dodji Seketeli  <dodji (a] redhat.com>
   5152 
   5153 	PR bootstrap/53459
   5154 	* lex.c (search_line_fast): Avoid unused local typedefs to simulate
   5155 	a static assertion.
   5156 
   5157 2012-05-29  Dodji Seketeli  <dodji (a] redhat.com>
   5158 
   5159 	PR preprocessor/53229
   5160 	* internal.h (cpp_reader::set_invocation_location): Remove.
   5161 	(cpp_reader::about_to_expand_macro_p): New member flag.
   5162 	* directives.c (do_pragma):  Remove Kludge as
   5163 	pfile->set_invocation_location is no more.
   5164 	* macro.c (cpp_get_token_1): Do away with the use of
   5165 	cpp_reader::set_invocation_location.  Just collect the macro
   5166 	expansion point when we are about to expand the top-most macro.
   5167 	Do not override cpp_reader::about_to_expand_macro_p.
   5168 	This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
   5169 	properly handle locations of expansion points.
   5170 	(cpp_get_token_with_location): Adjust, as
   5171 	cpp_reader::set_invocation_location is no more.
   5172 	(paste_tokens): Take a virtual location parameter for
   5173 	the LHS of the pasting operator.  Use it in diagnostics.  Update
   5174 	comments.
   5175 	(paste_all_tokens): Tighten the assert.  Propagate the location of
   5176 	the expansion point when no virtual locations are available.
   5177 	Pass the virtual location to paste_tokens.
   5178 	(in_macro_expansion_p): New static function.
   5179 	(enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
   5180 	flag until we really start expanding the macro.
   5181 
   5182 2012-05-16  Dodji Seketeli  <dodji (a] redhat.com>
   5183 
   5184 	PR preprocessor/7263
   5185 	* include/cpplib.h (cpp_classify_number): Take a location
   5186 	parameter.
   5187 	* expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic
   5188 	macros that take a location parameter.
   5189 	(cpp_classify_number): Take a (virtual) location parameter.  Use
   5190 	it for diagnostics.  Adjust comments.
   5191 	(eval_token): Take a location parameter.  Pass it to
   5192 	cpp_classify_number and to diagnostic routines.
   5193 	(_cpp_parse_expr): Use virtual locations of tokens when parsing
   5194 	expressions.  Pass a virtual location to eval_token and to
   5195 	diagnostic routines.
   5196 
   5197 2012-05-10  Tristan Gingold  <gingold (a] adacore.com>
   5198 
   5199 	* expr.c (interpret_float_suffix): Add a guard.
   5200 
   5201 2012-05-02  Dodji Seketeli  <dodji (a] redhat.com>
   5202 
   5203 	Properly initialize cpp_context in destringize_and_run
   5204 	* directives.c (destringize_and_run): Properly initialize the new
   5205 	context.
   5206 	* macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
   5207 	the initial base context, which has the same life time as the
   5208 	current instance of cpp_file.
   5209 
   5210 2012-04-30  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   5211 	    Dodji Seketeli  <dodji (a] seketeli.org>
   5212 
   5213 	PR c++/52974
   5214 	* libcpp/files.c (maybe_shorter_path): New.
   5215 	(find_file_in_dir): Use it.
   5216 
   5217 2012-04-30  Dodji Seketeli  <dodji (a] redhat.com>
   5218 
   5219 	Switch -ftrack-macro-expansion=2 on by default.
   5220 	* init.c (cpp_create_reader): Switch -ftrack-macro-expansion=2 on
   5221 	by default.  Add comments.
   5222 
   5223 	Strip "<built-in>" loc from displayed expansion context
   5224 	* include/line-map.h (linemap_unwind_toward_expansion): Fix typo
   5225 	in comment.
   5226 	(linemap_unwind_to_first_non_reserved_loc): Declare new function.
   5227 	* line-map.c (linemap_unwind_to_first_non_reserved_loc): Define
   5228 	new function.
   5229 
   5230 	Fix expansion point loc for macro-like tokens
   5231 	* macro.c (macro_of_context): New static function.
   5232 	(_cpp_push_token_context, push_extended_tokens_context): If the
   5233 	macro argument is NULL, it means we are continuing the expansion
   5234 	of the current macro, if any.  Update comments.
   5235 	(_cpp_pop_context): Re-enable expansion of the macro only when we
   5236 	are really out of the context of the current expansion.
   5237 
   5238 	Fix token pasting with -ftrack-macro-expansion
   5239 	* macro.c (paste_all_tokens): Put the token resulting from pasting
   5240 	into an extended token context with -ftrack-macro-location is in
   5241 	effect.
   5242 
   5243 	Fix cpp_sys_macro_p with -ftrack-macro-expansion
   5244 	* macro.c (cpp_sys_macro_p):  Support -ftrack-macro-expansion.
   5245 
   5246 2012-04-29  Dodji Seketeli  <dodji (a] redhat.com>
   5247 
   5248 	* lex.c (lex_raw_string): Change C++ style comments into C style
   5249 	comments.
   5250 	(lex_string): Likewise.
   5251 
   5252 2012-04-27   Ollie Wild  <aaw (a] google.com>
   5253 
   5254 	* include/cpplib.h (struct cpp_options): Add new field,
   5255 	warn_literal_suffix.
   5256 	(CPP_W_LITERAL_SUFFIX): New enum.
   5257 	* init.c (cpp_create_reader): Default initialization of
   5258 	warn_literal_suffix.
   5259 	* lex.c (lex_raw_string): Treat user-defined literals which don't
   5260 	begin with '_' as separate tokens and produce a warning.
   5261 	(lex_string): Ditto.
   5262 
   5263 2012-04-26  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   5264 
   5265 	* line-map.c (linemap_resolve_location): Synchronize comments with
   5266 	those in line-map.h.
   5267 	* include/line-map.h (linemap_resolve_location): Fix spelling in
   5268 	comment.
   5269 
   5270 2012-03-22  Richard Earnshaw  <rearnsha (a] arm.com>
   5271 
   5272 	* lex.c (search_line_fast): Provide Neon-optimized version for ARM.
   5273 
   5274 2012-03-14  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   5275 
   5276 	* lex.c: Remove Solaris 8 reference.
   5277 
   5278 2012-02-14  Walter Lee  <walt (a] tilera.com>
   5279 
   5280 	* configure.ac: Require 64-bit hwint for tilegx and tilepro.
   5281 	* configure: Regenerate.
   5282 
   5283 2012-01-09  Richard Guenther  <rguenther (a] suse.de>
   5284 
   5285 	* macro.c (_cpp_builtin_macro_text): Remove unused variable map.
   5286 
   5287 2012-01-09  Gary Funck  <gary (a] intrepid.com>
   5288 
   5289 	PR preprocessor/33919
   5290 	* files.c (_cpp_get_file_name): New. Implement file name
   5291 	access function.
   5292 	* internal.h (_cpp_get_file_name): New prototype.
   5293 	* macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
   5294 	to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
   5295 
   5296 2012-01-03  Olivier Hainque  <hainque (a] adacore.com>
   5297 
   5298 	* system.h: Prior to #define, #undef fopen and freopen unconditionally.
   5299 
   5300 2011-12-20  Joseph Myers  <joseph (a] codesourcery.com>
   5301 
   5302 	* include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
   5303 	(CLK_STDC1X): Change to CLK_STDC11.
   5304 	* init.c (lang_defaults): Update comments.
   5305 	(cpp_init_builtins): Update language tests.  Use 201112L for C11
   5306 	__STDC_VERSION__.
   5307 
   5308 2011-12-20  Andreas Schwab  <schwab (a] linux-m68k.org>
   5309 
   5310 	* configure: Regenerate.
   5311 
   5312 2011-12-19  Andreas Schwab  <schwab (a] linux-m68k.org>
   5313 
   5314 	* configure: Regenerate.
   5315 
   5316 2011-12-07  Jakub Jelinek  <jakub (a] redhat.com>
   5317 
   5318 	PR bootstrap/50237
   5319 	* internal.h (_cpp_init_lexer): New prototype.
   5320 	* init.c (init_library): Call it.
   5321 	* lex.c (init_vectorized_lexer): Remove constructor attribute,
   5322 	add inline keyword.
   5323 	(HAVE_init_vectorized_lexer): Define.
   5324 	(_cpp_init_lexer): New function.
   5325 
   5326 2011-12-03  Dodji Seketeli  <dodji (a] redhat.com>
   5327 
   5328 	* macro.c (tokens_buff_remove_last_token)
   5329 	(tokens_buff_put_token_to): Add an 'inline' function specifier to
   5330 	the prototype.
   5331 
   5332 2011-11-22   Diego Novillo  <dnovillo (a] google.com>
   5333 
   5334 	* include/line-map.h (linemap_dump): Declare.
   5335 	(line_table_dump): Declare.
   5336 	* line-map.c (linemap_dump): New.
   5337 	(line_table_dump): New.
   5338 
   5339 2011-11-21  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
   5340 
   5341 	PR c++/50958
   5342 	* expr.c (cpp_userdef_char_remove_type): Fix typo.
   5343 
   5344 2011-11-03  Michael Matz  <matz (a] suse.de>
   5345 
   5346 	PR bootstrap/50857
   5347 	* configure.ac: Check for -fno-exceptions -fno-rtti.
   5348 	* configure: Regenerate.
   5349 	* Makefile.in (NOEXCEPTION_FLAGS): New flag.
   5350 	(ALL_CXXFLAGS): Use it.
   5351 
   5352 2011-11-02  Paolo Carlini  <paolo.carlini (a] oracle.com>
   5353 
   5354 	* internal.h (uxstrdup, ustrchr): Return const unsigned char *.
   5355 
   5356 2011-11-02  Jason Merrill  <jason (a] redhat.com>
   5357 
   5358 	PR c++/50810
   5359 	* configure.ac: Add -Wno-narrowing to warning options.
   5360 
   5361 2011-10-31  Jason Merrill  <jason (a] redhat.com>
   5362 
   5363 	PR libstdc++/1773
   5364 	* init.c (cpp_init_builtins): Set __cplusplus for C++11.
   5365 
   5366 	PR c++/50920
   5367 	* include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
   5368 	CLK_GNUCXX0X to CLK_GNUCXX11.
   5369 
   5370 2011-10-26  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
   5371 
   5372 	Implement C++11 user-defined literals.
   5373 	* expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
   5374 	cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
   5375 	cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
   5376 	cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
   5377 	(cpp_classify_number): Classify unrecognized tokens as user-defined
   5378 	literals.
   5379 	* include/cpplib.h: Add new tokens for user-defined literals.
   5380 	* init.c: Add new preprocessor flag (cxx11).
   5381 	* lex.c: (lex_string, lex_raw_string): Handle user-defined literals
   5382 	including concatenation and promotion with suffixes.
   5383 
   5384 2011-10-24  Dodji Seketeli  <dodji (a] redhat.com>
   5385 
   5386 	* line-map.c (linemap_macro_map_lookup): Fix logic.
   5387 
   5388 2011-10-24  Dodji Seketeli  <dodji (a] redhat.com>
   5389 
   5390 	* include/line-map.h (linemap_expand_location): Take a line table
   5391 	parameter.  Update comment.
   5392 	(linemap_resolve_location): Update comment.
   5393 	(linemap_expand_location_full): Remove.
   5394 	* line-map.c (linemap_resolve_location):  Handle reserved
   5395 	locations; return a NULL map in those cases.
   5396 	(linemap_expand_location): If location is reserved, return a
   5397 	zeroed expanded location.  Update comment.  Take a line table to
   5398 	assert that the function takes non-virtual locations only.
   5399 	(linemap_expand_location_full): remove.
   5400 	(linemap_dump_location): Handle the fact that
   5401 	linemap_resolve_location can return NULL line maps when the
   5402 	location resolves to a reserved location.
   5403 
   5404 	* line-map.c (linemap_macro_map_lookup): Fix logic.
   5405 
   5406 2011-10-22  Dodji Seketeli  <dodji (a] redhat.com>
   5407 
   5408 	PR bootstrap/50778
   5409 	* include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
   5410 	context to act upon.
   5411 	* lex.c (_cpp_remaining_tokens_num_in_context): Likewise.  Update
   5412 	comment.
   5413 	(cpp_token_from_context_at): Likewise.
   5414 	(cpp_peek_token): Use the context to peek tokens from.
   5415 
   5416 2011-10-20  Dodji Seketeli  <dodji (a] redhat.com>
   5417 
   5418 	PR bootstrap/50801
   5419 	* lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
   5420 	number of tokens.
   5421 
   5422 2011-10-18  Dodji Seketeli  <dodji (a] redhat.com>
   5423 
   5424 	PR bootstrap/50760
   5425 	* include/line-map.h (struct linemap_stats): Change the type of
   5426 	the members from size_t to long.
   5427 	* macro.c (macro_arg_token_iter_init): Unconditionally initialize
   5428 	iter->location_ptr.
   5429 
   5430 2011-10-17  Dodji Seketeli  <dodji (a] redhat.com>
   5431 
   5432 	* line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
   5433 	variable without using it if ENABLE_CHECKING is not defined.  Mark
   5434 	the LOCATION parameter as being unused.
   5435 
   5436 2011-10-15  Tom Tromey  <tromey (a] redhat.com>
   5437 	    Dodji Seketeli  <dodji (a] redhat.com>
   5438 
   5439 	* include/line-map.h (struct line_maps::alloced_size_for_request):
   5440 	New member.
   5441 	* line-map.c (new_linemap): Use set->alloced_size_for_request to
   5442 	get the actual allocated size of line maps.
   5443 
   5444 2011-10-15  Tom Tromey  <tromey (a] redhat.com>
   5445 	    Dodji Seketeli  <dodji (a] redhat.com>
   5446 
   5447 	* line-map.h (struct linemap_stats): Declare new struct.
   5448 	(linemap_get_statistics): Declare ...
   5449 	* line-map.c (linemap_get_statistics):  ... new function.
   5450 	* macro.c (num_expanded_macros_counter, num_macro_tokens_counter):
   5451 	Declare new counters.
   5452 	(enter_macro_context, replace_args): Update
   5453 	num_macro_tokens_counter.
   5454 	(cpp_get_token_1): Update num_expanded_macros_counter.
   5455 
   5456 2011-10-15  Tom Tromey  <tromey (a] redhat.com>
   5457 	    Dodji Seketeli  <dodji (a] redhat.com>
   5458 
   5459 	* include/cpplib.h (struct cpp_options)<debug>: New struct member.
   5460 	* include/line-map.h (linemap_dump_location): Declare ...
   5461 	* line-map.c (linemap_dump_location): ... new function.
   5462 
   5463 2011-10-15  Tom Tromey  <tromey (a] redhat.com>
   5464 	    Dodji Seketeli  <dodji (a] redhat.com>
   5465 
   5466 	* include/cpplib.h (struct cpp_options)<track_macro_expansion>:
   5467 	New option.
   5468 	* internal.h (struct macro_context): New struct.
   5469 	(enum context_tokens_kind): New enum.
   5470 	(struct cpp_context)<tokens_kind>: New member of type enum
   5471 	context_tokens_kind.
   5472 	(struct cpp_context)<macro>: Remove this.  Replace it with an enum
   5473 	of macro and  macro_context.
   5474 	(struct cpp_context)<direct_p>: Remove.
   5475 	(_cpp_remaining_tokens_num_in_context): Declare new function.
   5476 	* directives.c (destringize_and_run): Adjust.
   5477 	* lex.c (_cpp_remaining_tokens_num_in_context)
   5478 	(_cpp_token_from_context_at): Define new functions
   5479 	(cpp_peek_token): Use them.
   5480 	* init.c (cpp_create_reader): Initialize the base context to zero.
   5481 	(_cpp_token_from_context_at): Define new static function.
   5482 	(cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and
   5483 	_cpp_token_from_context_at.
   5484 	* macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New
   5485 	members.
   5486 	(enum macro_arg_token_kind): New enum.
   5487 	(struct macro_arg_token_iter): New struct.
   5488 	(maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context)
   5489 	(alloc_expanded_arg_mem, ensure_expanded_arg_room)
   5490 	(delete_macro_args, set_arg_token, get_arg_token_location)
   5491 	(arg_token_ptr_at, macro_arg_token_iter_init)
   5492 	(macro_arg_token_iter_get_token)
   5493 	(macro_arg_token_iter_get_location, macro_arg_token_iter_forward)
   5494 	(expanded_token_index, tokens_buff_new, tokens_buff_count)
   5495 	(tokens_buff_last_token_ptr, tokens_buff_put_token_to)
   5496 	(tokens_buff_add_token, tokens_buff_remove_last_token)
   5497 	(reached_end_of_context, consume_next_token_from_context): New
   5498 	static functions.
   5499 	(cpp_get_token_1): New static function. Split and extended from
   5500 	cpp_get_token.  Use reached_end_of_context and
   5501 	consume_next_token_from_context.  Unify its return point.  Move
   5502 	the location tweaking from cpp_get_token_with_location in here.
   5503 	(cpp_get_token): Use cpp_get_token_1
   5504 	(stringify_arg): Use the new arg_token_at.
   5505 	(paste_all_tokens): Support tokens coming from extended tokens
   5506 	contexts.
   5507 	(collect_args): Return the number of collected arguments, by
   5508 	parameter.  Store virtual locations of tokens that constitute the
   5509 	collected args.
   5510 	(funlike_invocation_p): Return the number of collected arguments,
   5511 	by parameter.
   5512 	(enter_macro_context): Add a parameter for macro expansion point.
   5513 	Pass it to replace_args and to the "used" cpp callback.  Get the
   5514 	number of function-like macro arguments from funlike_invocation_p,
   5515 	pass it to the new delete_macro_args to free the memory used by
   5516 	macro args.  When -ftrack-macro-expansion is in effect, for macros
   5517 	that have no arguments, create a macro map for the macro expansion
   5518 	and use it to allocate proper virtual locations for tokens
   5519 	resulting from the expansion.  Push an extended tokens context
   5520 	containing the tokens resulting from macro expansion and their
   5521 	virtual locations.
   5522 	(replace_args): Rename the different variables named 'count' into
   5523 	variables with more meaningful names.  Create a macro map;
   5524 	allocate virtual locations of tokens resulting from this
   5525 	expansion.  Use macro_arg_token_iter to iterate over tokens of a
   5526 	given macro.  Handle the case of the argument of
   5527 	-ftrack-macro-expansion being < 2.  Don't free macro arguments
   5528 	memory resulting from expand_arg here, as these are freed by the
   5529 	caller of replace_arg using delete_macro_args now.  Push extended
   5530 	token context.
   5531 	(next_context, push_ptoken_context, _cpp_push_token_context)
   5532 	(_cpp_push_text_context): Properly initialize the context.
   5533 	(expand_arg): Use the new alloc_expanded_arg_mem,
   5534 	push_extended_tokens_context, cpp_get_token_1, and set_arg_token.
   5535 	(_cpp_pop_context): Really free the memory held by the context.
   5536 	Handle freeing memory used by extended tokens contexts.
   5537 	(cpp_get_token_with_location): Use cpp_get_token_1.
   5538 	(cpp_sys_macro_p): Adjust.
   5539 	(_cpp_backup_tokens): Support the new kinds of token contexts.
   5540 	* traditional.c (recursive_macro): Adjust.
   5541 
   5542 2011-10-15  Tom Tromey  <tromey@redhat>
   5543 	    Dodji Seketeli  <dodji (a] redhat.com>
   5544 
   5545 	* include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum
   5546 	member.
   5547 	(MAX_SOURCE_LOCATION): New constant.
   5548 	(struct line_map_ordinary, struct line_map_macro): New structs.
   5549 	(struct line_map): Turn this into a union of the two above.  Add
   5550 	comments.
   5551 	(struct maps_info): New struct.
   5552 	(struct line_maps)<info_ordinary, info_macro>: Two new fields.
   5553 	These now carry the map information that was previously scattered
   5554 	in struct line_maps.
   5555 	(struct map_info::allocated): Fix comment.
   5556 	(MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME)
   5557 	(ORDINARY_MAP_STARTING_LINE_NUMBER)
   5558 	(ORDINARY_MAP_INCLUDER_FILE_INDEX)
   5559 	(ORDINARY_MAP_IN_SYSTEM_HEADER_P)
   5560 	(ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO)
   5561 	(MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS)
   5562 	(MACRO_MAP_EXPANSION_POINT_LOCATION)
   5563 	(LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO)
   5564 	(LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE)
   5565 	(LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP)
   5566 	(LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED)
   5567 	(LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE)
   5568 	(LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP)
   5569 	(LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED)
   5570 	(LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE)
   5571 	(LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP)
   5572 	(LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT)
   5573 	(LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map
   5574 	information.
   5575 	(linemap_check_ordinary, linemap_assert)
   5576 	(linemap_location_before_p): New macros.
   5577 	(linemap_position_for_line_and_column)
   5578 	(linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token)
   5579 	(linemap_macro_expansion_map_p)
   5580 	(linemap_macro_map_loc_to_def_point)
   5581 	(linemap_macro_map_loc_unwind_once)
   5582 	(linemap_macro_map_loc_to_exp_point, linemap_step_out_once)
   5583 	(linemap_get_source_line linemap_get_source_column)
   5584 	(linemap_map_get_macro_name, linemap_get_file_path)
   5585 	(linemap_location_in_system_header_p)
   5586 	(linemap_location_from_macro_expansion_p): Declare new functions.
   5587 	(SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION)
   5588 	(LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this
   5589 	accessors act on ordinary maps only.
   5590 	(INCLUDED_FROM): Return NULL for main files; use the new
   5591 	accessors.
   5592 	(LINEMAP_POSITION_FOR_COLUMN): Use the new accessors.
   5593 	(struct expanded_location): Move here from gcc/input.h
   5594 	(linemap_resolve_location, linemap_expand_location)
   5595 	(linemap_expand_location_full): Declare new functions.
   5596 	* line-map.c: Include cpplib.h, internal.h
   5597 	(linemap_enter_macro, linemap_add_macro_token)
   5598 	(linemap_get_expansion_line, linemap_get_expansion_filename): New
   5599 	functions that are private to libcpp.
   5600 	(linemap_assert): New macro.
   5601 	(linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point)
   5602 	(linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point)
   5603 	(linemap_macro_map_loc_unwind_toward_spelling)
   5604 	(linemap_macro_map_loc_to_exp_point)
   5605 	(first_map_in_common_1, first_map_in_common): New static
   5606 	functions.
   5607 	(new_linemap): Define new static functions.  Extracted and
   5608 	enhanced from ...
   5609 	(linemap_add): ... here.  Use linemap_assert in lieu of abort
   5610 	previously.
   5611 	(linemap_tracks_macro_expansion_locs_p)
   5612 	(linemap_add_macro_token, linemap_macro_expansion_map_p)
   5613 	(linemap_check_ordinary, linemap_macro_map_loc_to_exp_point)
   5614 	(linemap_macro_map_loc_to_def_point)
   5615 	(linemap_macro_map_loc_unwind_once)
   5616 	(linemap_step_out_once, linemap_map_get_index)
   5617 	(linemap_get_source_line,linemap_get_source_column)
   5618 	(linemap_get_file_path, linemap_map_get_macro_name)
   5619 	(linemap_location_in_system_header_p)
   5620 	(linemap_location_originated_from_system_header_p)
   5621 	(linemap_location_from_macro_expansion_p)
   5622 	(linemap_tracks_macro_expansion_locs_p)
   5623 	(linemap_resolve_location, linemap_expand_location)
   5624 	(linemap_expand_location_full)
   5625 	(linemap_tracks_macro_expansion_locs_p)
   5626 	(linemap_position_for_line_and_column, linemap_compare_locations):
   5627 	Define new public functions.
   5628 	(linemap_init): Initialize ordinary and macro maps information in
   5629 	the map set.
   5630 	(linemap_check_files_exited): Use the new accessors.
   5631 	(linemap_free): Remove this dead code.
   5632 	(linemap_line_start): Assert this uses an ordinary map.  Adjust to
   5633 	use the new ordinary map accessors and data structures.  Don't
   5634 	overflow past the lowest possible macro token's location.
   5635 	(linemap_position_for_column): Assert the ordinary maps of the map
   5636 	set are really ordinary.  Use ordinary map accessors.
   5637 	(linemap_lookup): Keep the same logic but generalize to allow
   5638 	lookup of both ordinary and macro maps.  Do not crash when called
   5639 	with an empty line table.
   5640 	* directives-only.c (_cpp_preprocess_dir_only): Adjust to use the
   5641 	new API of line-map.h.
   5642 	* directives.c (start_directive, do_line, do_linemarker)
   5643 	(do_linemarker): Likewise.
   5644 	* files.c (_cpp_find_file, _cpp_stack_include, open_file_failed)
   5645 	(make_cpp_dir, cpp_make_system_header): Likewise.
   5646 	* init.c (cpp_read_main_file): Likewise.
   5647 	* internal.h (CPP_INCREMENT_LINE): Likewise.
   5648 	(linemap_enter_macro, linemap_add_macro_token)
   5649 	(linemap_get_expansion_line, linemap_get_expansion_filename): New
   5650 	functions private to libcpp.
   5651 	* lex.c (_cpp_process_line_notes, _cpp_skip_block_comment)
   5652 	(skip_line_comment, skip_whitespace, lex_raw_string)
   5653 	(_cpp_lex_direct): Likewise.
   5654 	* macro.c (_cpp_builtin_macro_text): Likewise.
   5655 	(_cpp_aligned_alloc): Initialize the new name member of the macro.
   5656 	* traditional.c (copy_comment, _cpp_scan_out_logical_line):
   5657 	Likewise.
   5658 	* errors.c (cpp_diagnostic): Adjust to new linemap API.
   5659 
   5660 2011-08-28  Dodji Seketeli  <dodji (a] redhat.com>
   5661 
   5662 	* line-map.c (linemap_add): Assert that reason must not be
   5663 	LC_RENAME when called for the first time on a "main input file".
   5664 
   5665 2011-08-22  Gabriel Charette  <gchare (a] google.com>
   5666 
   5667 	* init.c (cpp_create_reader): Inititalize forced_token_location_p.
   5668 	* internal.h (struct cpp_reader): Add field forced_token_location_p.
   5669 	* lex.c (_cpp_lex_direct): Use forced_token_location_p.
   5670 	(cpp_force_token_locations): New.
   5671 	(cpp_stop_forcing_token_locations): New.
   5672 
   5673 2011-08-18  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   5674 
   5675 	PR libstdc++/1773
   5676 	* init.c (cpp_init_builtins): Define __cplusplus 19971L.
   5677 
   5678 2011-08-18  Joseph Myers  <joseph (a] codesourcery.com>
   5679 
   5680 	* include/cpplib.h (struct cpp_options): Fix typo.
   5681 
   5682 2011-08-18  Joseph Myers  <joseph (a] codesourcery.com>
   5683 
   5684 	* include/cpplib.h (struct cpp_options): Add rliterals.
   5685 	* init.c  (struct lang_flags, lang_defaults): Add rliterals.
   5686 	(cpp_set_lang): Set rliterals option.
   5687 	(cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__.
   5688 	* lex.c (_cpp_lex_direct): Only accept raw strings if rliterals.
   5689 
   5690 2011-08-15  Gabriel Charette  <gchare (a] google.com>
   5691 
   5692 	* include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove.
   5693 	Update all users to use linemap_position_for_column instead.
   5694 
   5695 2011-07-28  Gabriel Charette  <gchare (a] google.com>
   5696 
   5697 	* include/line-map.h (struct line_maps):
   5698 	Remove unused field last_listed. Update all users.
   5699 
   5700 2011-07-28  H.J. Lu  <hongjiu.lu (a] intel.com>
   5701 
   5702 	* configure.ac: Set need_64bit_hwint to yes for x86 targets.
   5703 	* configure: Regenerated.
   5704 
   5705 2011-07-25  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   5706 
   5707 	* system.h [__cplusplus]: Wrap C function declarations in extern "C".
   5708 
   5709 2011-07-22  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   5710 	    Ralf Wildenhues  <Ralf.Wildenhues (a] gmx.de>
   5711 
   5712 	PR bootstrap/49794
   5713 	* configure.ac: Test AM_ICONV with CXX.
   5714 	* configure: Regenerate.
   5715 	* system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++.
   5716 
   5717 2011-07-15  Dodji Seketeli  <dodji (a] redhat.com>
   5718 
   5719 	* directives.c (struct if_stack): Use source_location as type
   5720 	here.
   5721 	* include/cpplib.h (struct cpp_callbacks)<include, define, undef,
   5722 	indent, def_pragma, used_define, used_undef>: Properly use
   5723 	source_location as parameter type, rather than unsigned int.
   5724 
   5725 2011-07-07  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   5726 
   5727 	PR target/39150
   5728 	* configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
   5729 	like i[34567]86-*-solaris2.1[0-9]*.
   5730 	* configure: Regenerate.
   5731 
   5732 2011-06-16  Jason Merrill  <jason (a] redhat.com>
   5733 
   5734 	PR c++/45399
   5735 	* lex.c (lex_raw_string): Don't check for embedded NUL.
   5736 
   5737 2011-06-06  Dodji Seketeli  <dodji (a] redhat.com>
   5738 
   5739 	PR preprocessor/48532
   5740 	* directives.c (do_pragma): Don't forget the invocation location
   5741 	when parsing the pragma name of a namespaced pragma directive.
   5742 
   5743 2011-05-29  John Tytgat  <John.Tytgat (a] aaug.net>
   5744 
   5745 	* files.c (read_file_guts): Add test on non-zero value of S_ISREG.
   5746 
   5747 2011-05-22  Uros Bizjak  <ubizjak (a] gmail.com>
   5748 
   5749 	PR target/49104
   5750 	* lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
   5751 	is defined.  Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
   5752 
   5753 2011-04-25  Jan Kratochvil  <jan.kratochvil (a] redhat.com>
   5754 
   5755 	* system.h (ENUM_BITFIELD): Remove.
   5756 
   5757 2011-04-24  Jakub Jelinek  <jakub (a] redhat.com>
   5758 
   5759 	PR preprocessor/48740
   5760 	* lex.c (lex_raw_string): When raw string ends with
   5761 	??) followed by raw prefix and ", ensure it is preprocessed
   5762 	with ??) rather than ??].
   5763 
   5764 2011-04-20  Jim Meyering  <meyering (a] redhat.com>
   5765 
   5766 	* files.c (destroy_cpp_file): Remove useless if-before-free.
   5767 	* init.c (cpp_destroy): Likewise.
   5768 	* macro.c (replace_args): Likewise.
   5769 	* pch.c (cpp_valid_state): Likewise.
   5770 
   5771 2011-03-25  Kai Tietz  <ktietz (a] redhat.com>
   5772 
   5773 	* files.c (file_hash_eq): Use filename_cmp
   5774 	instead of strcmp.
   5775 	(nonexistent_file_hash_eq): Likewise.
   5776 	(remap_filename): Likewise.
   5777 	Handle absolute DOS-path,
   5778 	(append_file_to_dir): Check for IS_DIR_SEPARATOR
   5779 	instead of slash.
   5780 	(read_name_map): Likewise.
   5781 	* linemap.c (linemap_add): Use filename_cmp
   5782 	instead of strcmp.
   5783 	* mkdeps.c (apply_vpath): Use filename_ncmp
   5784 	instead of strncmp.
   5785 	(deps_restore): Use filename_cmp instead of
   5786 	strcmp.
   5787 	* init.c (read_original_directory): Use
   5788 	IS_DIR_SEPARATOR instead of checking for slash.
   5789 
   5790 2011-03-21  Michael Meissner  <meissner (a] linux.vnet.ibm.com>
   5791 
   5792 	PR preprocessor/48192
   5793 	* directives.c (do_ifdef): Do not consider conditional macros as
   5794 	being defined.
   5795 	(do_ifndef): Ditto.
   5796 	* expr.c (parse_defined): Ditto.
   5797 
   5798 2011-03-18  Richard Henderson  <rth (a] redhat.com>
   5799 
   5800 	PR bootstrap/45381
   5801 	* lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5.
   5802 
   5803 2011-11-04  Eric Botcazou  <ebotcazou (a] adacore.com>
   5804 	    Jakub Jelinek  <jakub (a] redhat.com>
   5805 
   5806 	PR preprocessor/39213
   5807 	* directives.c (end_directive): Call _cpp_remove_overlay for deferred
   5808 	pragmas as well in traditional mode.
   5809 
   5810 2010-11-17  Ian Lance Taylor  <iant (a] google.com>
   5811 
   5812 	PR bootstrap/45538
   5813 	* configure.ac: Use AC_USE_SYSTEM_EXTENSIONS.  Remove switch of
   5814 	AC_LANG based on ENABLE_BUILD_WITH_CXX.
   5815 
   5816 2010-11-16  Kai Tietz  <kai.tietz (a] onevision.com>
   5817 
   5818 	PR preprocessor/17349
   5819 	* lex.c (save_comment): Handle in argument passing c++
   5820 	comments special.
   5821 
   5822 2010-11-02  Ian Lance Taylor  <iant (a] google.com>
   5823 
   5824 	* configure.ac: Use AC_SYS_LARGEFILE.
   5825 	* configure: Rebuild.
   5826 	* config.in: Rebuild.
   5827 
   5828 2010-10-19  Basile Starynkevitch  <basile (a] starynkevitch.net>
   5829 
   5830 	* line-map.h (source_location): Remove obsolete comment
   5831 	mentioning location_s.
   5832 
   5833 2010-09-29  Kai Tietz  <kai.tietz (a] onevision.com>
   5834 
   5835 	PR preprocessor/45362
   5836 	* directives.c (cpp_pop_definition): Make static.
   5837 	(do_pragma_push_macro): Reworked to store text
   5838 	definition.
   5839 	(do_pragma_pop_macro): Add free text definition.
   5840 	(cpp_push_definition): Removed.
   5841 	* include/cpplib.h (cpp_push_definition): Removed.
   5842 	(cpp_pop_definition): Likewise.
   5843 	* internal.h (def_pragma_macro): Remove member 'value'
   5844 	and add new members 'definition', 'line',
   5845 	'syshdr', 'sued' and 'is_undef'.
   5846 	* pch.c (_cpp_restore_pushed_macros): Rework to work
   5847 	on text definition and store additional macro flags.
   5848 	(_cpp_save_pushed_macros): Likewise.
   5849 
   5850 2010-09-29  Joseph Myers  <joseph (a] codesourcery.com>
   5851 
   5852 	* include/cpplib.h (cpp_options): Rename warn_deprecated,
   5853 	warn_traditional, warn_long_long and pedantic.
   5854 	* directives.c (directive_diagnostics, _cpp_handle_directive):
   5855 	Update names of cpp_options members.
   5856 	* expr.c (cpp_classify_number, eval_token): Update names of
   5857 	cpp_options members.
   5858 	* init.c (cpp_create_reader, post_options): Update names of
   5859 	cpp_options members.
   5860 	* internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
   5861 	cpp_options members.
   5862 	* macro.c (parse_params): Update names of cpp_options members.
   5863 
   5864 2010-09-15  Ian Lance Taylor  <iant (a] google.com>
   5865 
   5866 	* init.c: Fix type name in comment.
   5867 
   5868 2010-08-31  Jakub Jelinek  <jakub (a] redhat.com>
   5869 
   5870 	PR preprocessor/45457
   5871 	* expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if
   5872 	needed.
   5873 	* directives.c (do_ifdef, do_ifndef): Likewise.
   5874 
   5875 2010-08-26  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   5876 
   5877 	* system.h [HAVE_INTTYPES_H]: Include inttypes.h.
   5878 
   5879 2010-08-24  Richard Henderson  <rth (a] redhat.com>
   5880 
   5881 	PR bootstrap/45376
   5882 	* configure.ac (HAVE_SSE4): New check.
   5883 	* configure, config.in: Rebuild.
   5884 	* lex.c (search_line_sse42): Omit if !HAVE_SSE4.
   5885 
   5886 2010-08-24  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   5887 
   5888 	* lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
   5889 	etc. on Solaris 2/x86.
   5890 
   5891 2010-08-21  Richard Henderson  <rth (a] redhat.com>
   5892 	    Andi Kleen <ak (a] linux.intel.com>
   5893 	    David S. Miller  <davem (a] davemloft.net>
   5894 
   5895 	* configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
   5896 	(ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
   5897 	(ptrdiff_t): Check via AC_CHECK_TYPE.
   5898 	* config.in, configure: Rebuild.
   5899 	* system.h: Include stdint.h, if available.
   5900 	* lex.c (WORDS_BIGENDIAN): Provide default.
   5901 	(acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
   5902 	acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
   5903 	search_line_sse2, search_line_sse42, init_vectorized_lexer,
   5904 	search_line_fast): New.
   5905 	(_cpp_clean_line): Use search_line_fast.  Restructure the fast
   5906 	loop to make it clear when we're leaving the loop.  Stay in the
   5907 	fast loop for non-trigraph '?'.
   5908 
   5909 2010-06-11  Jakub Jelinek  <jakub (a] redhat.com>
   5910 
   5911 	* include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro
   5912 	callback.
   5913 	(enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER.
   5914 	(cpp_macro_definition): Remove const qual from second argument.
   5915 	* macro.c (enter_macro_context): Call user_builtin_macro callback for
   5916 	NODE_BUILTIN !NODE_USED macros.
   5917 	(warn_of_redefinition): Likewise.  Remove const qual from second
   5918 	argument.
   5919 	(cpp_macro_definition): Likewise.
   5920 	* pch.c (write_macdef, save_macros): Call user_builtin_macro callback
   5921 	for NODE_BUILTIN !NODE_USED macros.
   5922 
   5923 2010-06-10  Joseph Myers  <joseph (a] codesourcery.com>
   5924 
   5925 	* include/cpplib.h (struct cpp_options): Remove show_column.
   5926 	* init.c (cpp_create_reader, post_options): Don't set show_column.
   5927 
   5928 2010-06-09  Joern Rennecke  <joern.rennecke (a] embecosm.com>
   5929 
   5930 	PR bootstrap/44432
   5931 	* configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++,
   5932 	check that C++ compiler works.
   5933 	* configure: Regenerate.
   5934 
   5935 2010-06-08  Laurynas Biveinis  <laurynas.biveinis (a] gmail.com>
   5936 
   5937 	* include/symtab.h (ht_identifier_ptr): New.
   5938 
   5939 2010-06-03  Joern Rennecke <joern.rennecke (a] embecosm.com>
   5940 	    Ralf Wildenhues  <Ralf.Wildenhues (a] gmx.de>
   5941 
   5942 	PR bootstrap/42798
   5943 	* configure.ac: Check for declaration of 'basename(char *)'.
   5944 	* configure: Regenerate.
   5945 	* config.in: Regenerate.
   5946 
   5947 2010-04-25  Joseph Myers  <joseph (a] codesourcery.com>
   5948 
   5949 	* include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X.
   5950 	* init.c (lang_defaults): Add entries for new language variants.
   5951 	(cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X
   5952 	variants.
   5953 
   5954 2010-04-09  Manuel Lpez-Ibez <manu (a] gcc.gnu.org>
   5955 
   5956 	PR cpp/43195
   5957 	* files.c (report_missing_guard): Test for #pragma once.
   5958 
   5959 2010-04-07  Simon Baldwin  <simonb (a] google.com>
   5960 
   5961 	* directives.c (do_diagnostic): Add warning reason argument,
   5962 	call appropriate error reporting function for code.
   5963 	(directive_diagnostics): Call specific warning functions with
   5964 	warning reason where appropriate.
   5965 	(do_error, do_warning, do_pragma_dependency): Add warning reason
   5966 	argument to do_diagnostic calls.
   5967 	* macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
   5968 	_cpp_create_definition): Call specific warning functions with
   5969 	warning reason where appropriate.
   5970 	* Makefile.in: Add new diagnostic functions to gettext translations.
   5971 	* include/cpplib.h (struct cpp_callbacks): Add warning reason code
   5972 	to error callback.
   5973 	(CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
   5974 	CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
   5975 	(CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
   5976 	CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
   5977 	CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
   5978 	CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
   5979 	CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
   5980 	CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
   5981 	CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
   5982 	warning reason codes.
   5983 	(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
   5984 	cpp_warning_with_line, cpp_pedwarning_with_line,
   5985 	cpp_warning_with_line_syshdr): New specific error reporting functions.
   5986 	* pch.c (cpp_valid_state): Call specific warning functions with
   5987 	warning reason where appropriate.
   5988 	* errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
   5989 	diagnostic handlers.
   5990 	(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
   5991 	cpp_warning_with_line, cpp_pedwarning_with_line,
   5992 	cpp_warning_with_line_syshdr): New specific error reporting functions.
   5993 	* expr.c (cpp_classify_number, eval_token, num_unary_op): Call
   5994 	specific warning functions with warning reason where appropriate.
   5995 	* lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
   5996 	warn_about_normalization, lex_identifier_intern, lex_identifier,
   5997 	_cpp_lex_direct): Ditto.
   5998 	* charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
   5999 	narrow_str_to_charconst): Ditto.
   6000 
   6001 2010-04-06  Jakub Jelinek  <jakub (a] redhat.com>
   6002 
   6003 	PR preprocessor/43642
   6004 	* lex.c (lex_raw_string): Change type of TYPE variable to
   6005 	unsigned char.
   6006 
   6007 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues (a] gmx.de>
   6008 
   6009 	* aclocal.m4: Regenerate.
   6010 
   6011 2010-03-29  Jason Merrill  <jason (a] redhat.com>
   6012 
   6013 	More N3077 raw string changes
   6014 	* charset.c (cpp_interpret_string): Don't transform UCNs in raw
   6015 	strings.
   6016 	* lex.c (bufring_append): Split out from...
   6017 	(lex_raw_string): ...here.  Undo trigraph and line splicing
   6018 	transformations.  Do process line notes in multi-line literals.
   6019 	(_cpp_process_line_notes): Ignore notes that were already handled.
   6020 
   6021 	Some raw string changes from N3077
   6022 	* charset.c (cpp_interpret_string): Change inner delimiters to ().
   6023 	* lex.c (lex_raw_string): Likewise.  Also disallow '\' in delimiter.
   6024 
   6025 2010-02-11  Jakub Jelinek  <jakub (a] redhat.com>
   6026 
   6027 	* init.c (read_original_filename): Don't call read_original_directory
   6028 	if _cpp_handle_directive returns 0.
   6029 
   6030 2010-01-01  Joseph Myers  <joseph (a] codesourcery.com>
   6031 
   6032 	PR preprocessor/41947
   6033 	* expr.c (cpp_classify_number): Give error for hexadecimal
   6034 	floating-point constant with no digits before or after point.
   6035 
   6036 2009-11-20  Arnaud Charlet  <charlet (a] adacore.com>
   6037 
   6038 	* macro.c (enter_macro_context): Call cb.used callback if defined.
   6039 	* directives.c (do_idef, do_ifndef): Ditto.
   6040 	* include/cpplib.h (struct cpp_callbacks): Add used callback.
   6041 
   6042 2009-11-11  Kai Tietz  <kai.tietz (a] onevision.com>
   6043 
   6044 	* directives.c (do_pragma_push_macro): New pragma handler.
   6045 	(do_pragma_pop_macro): Likewise.
   6046 	(_cpp_init_internal_pragmas): Add push_macro and
   6047 	pop_macro handler to internal pragmas.
   6048 	(lex_macro_node_from_str): Removed.
   6049 	(cpp_push_definition): Replace lex_macro_node_from_str
   6050 	by _cpp_lex_identifier.
   6051 	(cpp_pop_definition): Likewise.
   6052 	* internal.h (_cpp_lex_identifier): New prototype.
   6053 	(def_pragma_macro): New structure.
   6054 	(cpp_reader): New member pushed_macros.
   6055 	* lex.c (_cpp_lex_identifier): New function.
   6056 	(lex_identifier_intern): New function.
   6057 	* init.c (cpp_create_reader): Initialize pushed_macros
   6058 	member.
   6059 	(cpp_destroy): Free elements in pushed_macros member.
   6060 	* pch.c (_cpp_save_pushed_macros): New function.
   6061 	(_cpp_restore_pushed_macros): Likewise.
   6062 	(_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
   6063 	(cpp_read_state): Use _cpp_restore_pushed_macros.
   6064 
   6065 2009-10-19  Jakub Jelinek  <jakub (a] redhat.com>
   6066 
   6067 	* charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
   6068 	(_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
   6069 	and char32_cset_desc.
   6070 	(converter_for_type): Handle CPP_UTF8STRING.
   6071 	(cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
   6072 	* directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
   6073 	(parse_include): Reject raw strings.
   6074 	* include/cpplib.h (CPP_UTF8STRING): New token type.
   6075 	* internal.h (struct cpp_reader): Add utf8_cset_desc field.
   6076 	* lex.c (lex_raw_string): New function.
   6077 	(lex_string): Handle u8 string literals, call lex_raw_string
   6078 	for raw string literals.
   6079 	(_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
   6080 	sequences.
   6081 	* macro.c (stringify_arg): Handle CPP_UTF8STRING.
   6082 
   6083 2009-10-14  Jakub Jelinek  <jakub (a] redhat.com>
   6084 
   6085 	PR preprocessor/41543
   6086 	* include/line-map.h (RESERVED_LOCATION_COUNT): Define.
   6087 	* line-map.c (linemap_init): Initialize highest_location and
   6088 	highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
   6089 
   6090 2009-10-09  Jason Merrill  <jason (a] redhat.com>
   6091 
   6092 	* charset.c (_cpp_valid_ucn): Update C++0x restrictions.
   6093 
   6094 2009-10-09  Neil Vachharajani <nvachhar (a] google.com>
   6095 
   6096 	* directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and
   6097 	sccs.
   6098 
   6099 2009-09-23  Loren J. Rittle  <ljrittle (a] acm.org>
   6100 
   6101 	* configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h.
   6102 	* configure: Rebuilt.
   6103 
   6104 2009-09-22  Richard Guenther  <rguenther (a] suse.de>
   6105 
   6106 	PR pch/38987
   6107 	* files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
   6108 
   6109 2009-09-18  Chris Demetriou  <cgd (a] google.com>
   6110 
   6111 	PR preprocessor/28435:
   6112 	* include/cpplib.h (struct cpp_options): Add new member
   6113 	deps.need_preprocessor_output.
   6114 	* files.c (open_file_failed): If preprocessor output is needed
   6115 	always report an error.
   6116 
   6117 2009-09-13  Kai Tietz  <kai.tietz (a] onevision.com>
   6118 
   6119 	* configure.ac: Set for i?86-w64-mingw*
   6120 	need_64bit_hwint to yes.
   6121 	* configure: Regenerated.
   6122 
   6123 2009-09-10  Jason Merrill  <jason (a] redhat.com>
   6124 
   6125 	* directives.c (cpp_define): constify.
   6126 
   6127 2009-09-02  Ian Lance Taylor  <iant (a] google.com>
   6128 
   6129 	* macro.c (stringify_arg): Escape CPP_WCHAR tokens.
   6130 
   6131 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues (a] gmx.de>
   6132 
   6133 	* configure.ac (AC_PREREQ): Bump to 2.64.
   6134 
   6135 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues (a] gmx.de>
   6136 
   6137 	* aclocal.m4: Regenerate.
   6138 	* config.in: Regenerate.
   6139 	* configure: Regenerate.
   6140 
   6141 2009-08-17  Tom Tromey  <tromey (a] redhat.com>
   6142 
   6143 	PR preprocessor/41067:
   6144 	* charset.c (convert_escape): Add missing ":" to error text.
   6145 
   6146 2009-07-27  Douglas B Rupp  <rupp (a] gnat.com>
   6147 
   6148 	* include/cpplib.h (INO_T_CPP): New macro.
   6149 	(struct cpp_dir): Use it.
   6150 
   6151 2009-07-20  Jerry Quinn  <jlquinn (a] optonline.net>
   6152 
   6153 	PR regression/40800
   6154 	* configure.ac: Use = instead of == for testing
   6155 	ENABLE_BUILD_WITH_CXX.
   6156 	* configure: Rebuild.
   6157 
   6158 2009-07-17  Jerry Quinn  <jlquinn (a] optonline.net>
   6159 
   6160 	* directives.c (do_linemarker, do_line): Use CPP_STRING for
   6161 	ignored enum value.
   6162 	* files.c (find_file_in_dir): Add cast from void* to char*.
   6163 	* symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
   6164 	* Makefile.in: (WARN_CFLAGS): Use general and C-specific
   6165 	warnings.
   6166 	(CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
   6167 	ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
   6168 	COMPILER_FLAGS): New.
   6169 	(DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
   6170 	(COMPILE.base): Use COMPILER instead of CC.  Use COMPILER_FLAGS
   6171 	instead of ALL_CFLAGS.
   6172 	* configure.ac: Invoke AC_PROG_CXX.  Separate C-specific warnings
   6173 	from other warnings.  Add -Wc++-compat to C-specific warnings.
   6174 	Check for --enable-build-with-cxx.  Set and substitute
   6175 	ENABLE_BUILD_WITH_CXX.  Invoke ZW_PROG_COMPILER_DEPENDENCIES
   6176 	according to ENABLE_BUILD_WITH_CXX.  Invoke AC_LANG before
   6177 	AC_CHECK_HEADERS.
   6178 	* configure: Rebuild.
   6179 	* include/cpp-id-data.h: Remove extern "C".
   6180 	* include/line-map.h: Likewise.
   6181 	* include/mkdeps.h: Likewise.
   6182 	* include/symtab.h: Likewise.
   6183 	* internal.h: Likewise.
   6184 
   6185 2009-06-23  Manuel Lopez-Ibanez  <manu (a] gcc.gnu.org>
   6186 
   6187 	* directives.c (parse_include): Add location argument. Update all
   6188 	calls.
   6189 	(parse_answer): Likewise.
   6190 	(do_include_common): Error with exact location.
   6191 	(parse_assertion): Likewise.
   6192 
   6193 2009-06-18  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   6194 
   6195 	* expr.c (num_div_op): Take explicit location.
   6196 
   6197 2009-06-17  Ian Lance Taylor  <iant (a] google.com>
   6198 
   6199 	* include/cpplib.h (progname): Don't declare.
   6200 
   6201 2009-06-12  Ian Lance Taylor  <iant (a] google.com>
   6202 
   6203 	* include/cpplib.h (struct cpp_options): Add
   6204 	warn_cxx_operator_names field.
   6205 	(NODE_WARN_OPERATOR): Define.
   6206 	(struct cpp_hashnode): Increase flags field to 10 bits, decrease
   6207 	type to 6 bits.
   6208 	* init.c (mark_named_operators): Add flags parameter.
   6209 	(cpp_post_options): Pick flags value to pass to
   6210 	mark_named_operators.
   6211 	* lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that
   6212 	identifier is an operator name in C++.
   6213 
   6214 2009-06-01  Aldy Hernandez  <aldyh (a] redhat.com>
   6215 
   6216 	* include/line-map.h (LAST_SOURCE_COLUMN): New.
   6217 
   6218 2009-06-01  Ian Lance Taylor  <iant (a] google.com>
   6219 
   6220 	* include/cpp-id-data.h: Add extern "C".
   6221 	* include/line-map.h: Likewise.
   6222 	* include/mkdeps.h: Likewise.
   6223 	* include/symtab.h: Likewise.
   6224 	* internal.h: Likewise.
   6225 
   6226 2009-05-15  Ian Lance Taylor  <iant (a] google.com>
   6227 
   6228 	* include/cpplib.h (enum cpp_builtin_type): Rename from enum
   6229 	builtin_type.  Change all uses.
   6230 
   6231 2009-05-14  Manuel Lopez-Ibanez  <manu (a] gcc.gnu.org>
   6232 
   6233 	PR cpp/36674
   6234 	* directives (do_linemarker): Compensate for the increment in
   6235 	location that occurs when we reach the end of line.
   6236 	* files (_cpp_stack_include): Mention _cpp_find_file in the
   6237 	comment.
   6238 
   6239 2009-05-10  Joseph Myers  <joseph (a] codesourcery.com>
   6240 
   6241 	* include/cpplib.h (enum cpp_token_fld_kind): Add
   6242 	CPP_TOKEN_FLD_TOKEN_NO.
   6243 	(struct cpp_macro_arg, struct cpp_identifier): Define.
   6244 	(union cpp_token_u): Use struct cpp_identifier for identifiers.
   6245 	Use struct cpp_macro_arg for macro arguments.  Add token_no for
   6246 	CPP_PASTE token numbers.
   6247 	* directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
   6248 	do_pragma_poison, parse_assertion): Use val.node.node in place of
   6249 	val.node.
   6250 	* expr.c (parse_defined, eval_token): Use val.node.node in place
   6251 	of val.node.
   6252 	* lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
   6253 	cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
   6254 	cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
   6255 	place of val.arg_no.  Use val.node.node in place of val.node.
   6256 	* macro.c (replace_args, cpp_get_token, parse_params,
   6257 	lex_expansion_token, create_iso_definition, cpp_macro_definition):
   6258 	Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
   6259 	Use val.node.node in place of val.node.
   6260 
   6261 2009-05-03  Joseph Myers  <joseph (a] codesourcery.com>
   6262 
   6263 	* charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte
   6264 	UTF-8 sequences.
   6265 
   6266 2009-04-25  Joseph Myers  <joseph (a] codesourcery.com>
   6267 
   6268 	PR preprocessor/39559
   6269 	* expr.c (cpp_interpret_integer): Use a pedwarn for decimal
   6270 	constants larger than intmax_t in C99 mode.
   6271 
   6272 2009-04-21  Taras Glek <tglek (a] mozilla.com>
   6273 
   6274 	* include/cpp-id-data.h: Update GTY annotations to new syntax.
   6275 	* include/cpplib.h: Likewise.
   6276 	* include/line-map.h: Likewise.
   6277 	* include/symtab.h: Likewise.
   6278 
   6279 2009-04-22  Manuel Lopez-Ibanez  <manu (a] gcc.gnu.org>
   6280 
   6281 	PR c++/14875
   6282 	* lex.c (cpp_type2name): Take a flags parameter. Call
   6283 	cpp_named_operator2name for named operators and cpp_digraph2name
   6284 	for digraphs.
   6285 	(cpp_digraph2name): New.
   6286 	(cpp_spell_token): Use it.
   6287 	(cpp_output_token): Likewise.
   6288 	* include/cpplib.h (cpp_type2name): Update declaration.
   6289 	* init.c (cpp_named_operator2name): New.
   6290 	* internal.h (cpp_named_operator2name): Declare.
   6291 
   6292 2009-04-21  Manuel Lopez-Ibanez  <manu (a] gcc.gnu.org>
   6293 
   6294 	PR c++/13358
   6295 	* init.c (cpp_create_reader): Wlong_long is disabled by default.
   6296 	* expr.c (cpp_classify_number): Give different messages for C and
   6297 	C++ front-ends.
   6298 
   6299 2009-04-19  Joseph Myers  <joseph (a] codesourcery.com>
   6300 
   6301 	PR preprocessor/20078
   6302 	* include/cpp-id-data.h (struct cpp_macro): Add extra_tokens
   6303 	field.
   6304 	* include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define.
   6305 	(struct cpp_token): Change flags to unsigned short.
   6306 	* lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens.
   6307 	(_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens.
   6308 	(cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE
   6309 	tokens.
   6310 	* macro.c (macro_real_token_count): New.
   6311 	(enter_macro_context, replace_args): Use macro_real_token_count.
   6312 	(create_iso_definition): Record whitespace surrounding and digraph
   6313 	spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH.
   6314 	Set extra_tokens and save CPP_PASTE tokens with arg_no set for
   6315 	multiple consecutive ## tokens.
   6316 	(_cpp_create_definition): Initialize extra_tokens.
   6317 	(cpp_macro_definition): Use macro_real_token_count.
   6318 
   6319 2009-04-18  Joseph Myers  <joseph (a] codesourcery.com>
   6320 
   6321 	* directives.c (parse_include): Pass true to check_eol.
   6322 
   6323 2009-04-18  Joseph Myers  <joseph (a] codesourcery.com>
   6324 
   6325 	PR preprocessor/39646
   6326 	* include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM.
   6327 	* line-map.c (linemap_add): Handle LC_RENAME_VERBATIM.
   6328 	* directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in
   6329 	place of LC_RENAME.
   6330 
   6331 2009-04-18  Joseph Myers  <joseph (a] codesourcery.com>
   6332 
   6333 	PR preprocessor/39647
   6334 	* directives.c (check_eol): Add parameter expand.
   6335 	(do_undef, parse_include, do_line, do_linemarker, do_ident,
   6336 	do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef,
   6337 	do_else, do_endif, do_assert, do_unassert): All callers changed.
   6338 	Pass true from do_line, false elsewhere.
   6339 
   6340 2009-04-12  Joseph Myers  <joseph (a] codesourcery.com>
   6341 
   6342 	PR preprocessor/31869
   6343 	* macro.c (stringify_arg): Handle NULL source token in padding
   6344 	token where previous padding token did not have source token with
   6345 	preceding whitespace.
   6346 
   6347 2009-04-09  Jakub Jelinek  <jakub (a] redhat.com>
   6348 
   6349 	* Makefile.in: Change copyright header to refer to version
   6350 	3 of the GNU General Public License and to point readers at the
   6351 	COPYING3 file and the FSF's license web page.
   6352 	* charset.c: Likewise.
   6353 	* directives-only.c: Likewise.
   6354 	* directives.c: Likewise.
   6355 	* errors.c: Likewise.
   6356 	* expr.c: Likewise.
   6357 	* files.c: Likewise.
   6358 	* identifiers.c: Likewise.
   6359 	* include/cpp-id-data.h: Likewise.
   6360 	* include/cpplib.h: Likewise.
   6361 	* include/line-map.h: Likewise.
   6362 	* include/mkdeps.h: Likewise.
   6363 	* include/symtab.h: Likewise.
   6364 	* init.c: Likewise.
   6365 	* internal.h: Likewise.
   6366 	* lex.c: Likewise.
   6367 	* line-map.c: Likewise.
   6368 	* macro.c: Likewise.
   6369 	* makeucnid.c: Likewise.
   6370 	* mkdeps.c: Likewise.
   6371 	* pch.c: Likewise.
   6372 	* symtab.c: Likewise.
   6373 	* system.h: Likewise.
   6374 	* traditional.c: Likewise.
   6375 	* ucnid.tab: Likewise.
   6376 	* ucnid.h: Regenerate.
   6377 
   6378 2009-04-01  Janis Johnson  <janis187 (a] us.ibm.com>
   6379 
   6380 	PR c/39027
   6381 	* include/cpplib.h (CPP_N_DEFAULT): Define.
   6382 	* expr.c (interpret_float_suffix): Recognize d or D for double,
   6383 	return new value for default.
   6384 	(cpp_classify_number): Issue pedwarn for use of d or D in suffix.
   6385 
   6386 	PR c/33466
   6387 	* expr.c (interpret_float_suffix): Reject invalid suffix that uses
   6388 	letters from decimal float and fixed-point suffixes.
   6389 
   6390 2009-03-31  Joseph Myers  <joseph (a] codesourcery.com>
   6391 
   6392 	PR preprocessor/15638
   6393 	* files.c (_cpp_find_file): Call open_file_failed after diagnosing
   6394 	invalid PCH.
   6395 	(open_file_failed): Make error for missing file fatal.
   6396 	* include/cpplib.h (CPP_DL_FATAL): Define.
   6397 
   6398 2009-03-30  Sergiy Vyshnevetskiy  <serg (a] vostok.net>
   6399 
   6400 	PR preprocessor/31932:
   6401 	* internal.h: Don't mention HAVE_ICONV_H.
   6402 	* configure, config.in: Rebuild.
   6403 	* configure.ac: Don't check for iconv.h.
   6404 
   6405 2009-03-30  Tom Tromey  <tromey (a] redhat.com>
   6406 
   6407 	PR preprocessor/39512:
   6408 	* line-map.c (linemap_init): Initialize 'reallocator' field.
   6409 
   6410 2009-03-30  Jakub Jelinek  <jakub (a] redhat.com>
   6411 
   6412 	PR target/39558
   6413 	* macro.c (cpp_get_token): If macro_to_expand returns NULL
   6414 	and used some tokens, add CPP_PADDING before next token.
   6415 
   6416 2009-03-29  Joseph Myers  <joseph (a] codesourcery.com>
   6417 
   6418 	PR preprocessor/34695
   6419 	* makedepend.c: Remove.
   6420 	* Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove.
   6421 	(all, clean, TAGS_SOURCES, include): Remove makedepend handling.
   6422 	* directives.c (cpp_errors): Remove.
   6423 	* errors.c (print_location, _cpp_begin_message, v_message):
   6424 	Remove.
   6425 	(cpp_error, cpp_error_with_line): Always use error callback.
   6426 	(cpp_error, cpp_error_with_line, cpp_errno): Return bool.
   6427 	* include/cpplib.h (cpp_options): Remove pedantic_errors,
   6428 	inhibit_warnings, warn_system_headers, inhibit_errors,
   6429 	warnings_are_errors, client_diagnostic.
   6430 	(cpp_callbacks): Add extra arguments to error callback; make it
   6431 	return bool.
   6432 	(cpp_finish): Return void.
   6433 	(cpp_destroy): Remove inaccurate comment about return value.
   6434 	(cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove.
   6435 	(CPP_DL_NOTE): Define.
   6436 	* include/line-map.h (linemap_print_containing_files): Remove.
   6437 	* init.c (cpp_finish): Do not check for or return number of
   6438 	errors.
   6439 	* internal.h (cpp_reader): Remove errors field.
   6440 	* line-map.c (linemap_print_containing_files): Remove.
   6441 	* macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message
   6442 	about previous definition.  Only emit it if previous diagnostic
   6443 	was emitted.
   6444 
   6445 2009-03-28  Joseph Myers  <joseph (a] codesourcery.com>
   6446 
   6447 	* Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not
   6448 	mkinstalldirs.
   6449 
   6450 2009-03-18  Jakub Jelinek  <jakub (a] redhat.com>
   6451 
   6452 	* include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
   6453 
   6454 2009-02-21  Joseph Myers  <joseph (a] codesourcery.com>
   6455 
   6456 	* lex.c (lex_string): Return a CPP_LESS token for missing '>' in a
   6457 	header name.
   6458 	(_cpp_lex_direct): Handle this.
   6459 
   6460 2009-02-15  Richard Guenther  <rguenther (a] suse.de>
   6461 
   6462 	Revert last change.
   6463 
   6464 2009-02-13  Richard Guenther  <rguenther (a] suse.de>
   6465 
   6466 	* configure.ac: Enable LFS.
   6467 	* configure: Re-generate.
   6468 	* config.in: Likewise.
   6469 
   6470 2009-01-05  Ben Elliston  <bje (a] au.ibm.com>
   6471 
   6472 	* Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
   6473 	(.po.pox): Likewise.
   6474 	(po/$(PACKAGE).pot): Likewise.
   6475 
   6476 2008-12-10  Alexandre Oliva  <aoliva (a] redhat.com>
   6477 
   6478 	PR target/37033
   6479 	* pch.c (cpp_valid_state): Improve message for poisoned symbols.
   6480 	Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.
   6481 
   6482 2008-11-29  Joseph Myers  <joseph (a] codesourcery.com>
   6483 
   6484 	* lex.c (cpp_token_len): Use 6 as default length.
   6485 
   6486 2008-10-31  Manuel Lpez-Ibez  <manu (a] gcc.gnu.org>
   6487 
   6488 	* expr.c (struct op): Add location.
   6489 	(_cpp_parse_expr): Propagate locations throught the stack
   6490 	of expressions.
   6491 	(reduce): Likewise.
   6492 	(check_promotion): Use explicit location in errors.
   6493 
   6494 2008-10-05  Matthew Gingell  <gingell (a] adacore.com>
   6495 	    Arnaud Charlet  <charlet (a] adacore.com>
   6496 
   6497 	* include/cpplib.h (cpp_comments, cpp_comment_table): New structs.
   6498 	(cpp_get_comments): New function.
   6499 	* internal.h (struct cpp_reader): Add comments field.
   6500 	* init.c (cpp_destroy): Free comments.
   6501 	* lex.c (store_comment, cpp_get_comments): New functions.
   6502 	(comments): New struct.
   6503 	(save_comment): Store comments in comments struct.
   6504 
   6505 2008-09-18  Simon Baldwin  <simonb (a] google.com>
   6506 
   6507 	* include/cpplib.h (struct cpp_options): Add new boolean flag
   6508 	warn_builtin_macro_redefined.
   6509 	* init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
   6510 	* (struct builtin_operator): Split out from previous struct builtin,
   6511 	enhance extra const correctness.
   6512 	* (struct builtin_macro): Split out from previous struct builtin, add
   6513 	new always_warn_if_redefined flag, enhance const correctness.
   6514 	* (mark_named_operators): Use struct builtin_operator.
   6515 	* (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
   6516 	to builtins selectively.
   6517 	* macro.c (warn_of_redefinition): Return false if a builtin macro
   6518 	is not flagged with NODE_WARN.
   6519 
   6520 2008-07-31  Jakub Jelinek  <jakub (a] redhat.com>
   6521 
   6522 	PR preprocessor/36649
   6523 	* files.c (struct report_missing_guard_data): New type.
   6524 	(report_missing_guard): Put paths into an array instead of printing
   6525 	them right away.  Return 1 rather than 0.
   6526 	(report_missing_guard_cmp): New function.
   6527 	(_cpp_report_missing_guards): Sort and print paths gathered by
   6528 	report_missing_guard callback.
   6529 
   6530 2008-07-22  Manuel Lopez-Ibanez  <manu (a] gcc.gnu.org>
   6531 
   6532 	PR 28079
   6533 	* directives.c (strtolinenum): Handle overflow.
   6534 	(do_line): Give a warning if line number overflowed.
   6535 	(do_linemarker): Update call to strtolinenum.
   6536 
   6537 2008-07-21  Manuel Lopez-Ibanez  <manu (a] gcc.gnu.org>
   6538 
   6539 	* include/line-map.h (linenum_type): New typedef.
   6540 	(struct line_map): Use it.
   6541 	(SOURCE_LINE): Second arguments is a LOCATION not a LINE.
   6542 	(SOURCE_COLUMN): Likewise.
   6543 	* macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store
   6544 	source_location values in a variable of type linenum_type.
   6545 	* directives.c (struct if_stack): Use linenum_type.
   6546 	(strtoul_for_line): Rename as strtolinenum.
   6547 	(do_line): Use linenum_type.
   6548 	(do_linemarker): Use linenum_type and strtolinenum.
   6549 	(_cpp_do_file_change): Use linenum_t.
   6550 	* line-map.c (linemap_add): Likewise.
   6551 	(linemap_line_start): Likewise.
   6552 	* traditional.c (struct fun_macro): 'line' is a source_location.
   6553 	* errors.c (print_location): Use linenum_type.
   6554 	* directives-only.c (_cpp_preprocess_dir_only): Likewise.
   6555 	* internal.h (CPP_INCREMENT_LINE): Likewise.
   6556 	* lex.c (_cpp_skip_block_comment): Use source_location.
   6557 
   6558 2008-07-14  Ben Elliston  <bje (a] au.ibm.com>
   6559 
   6560 	* include/cpplib.h (NODE_CONDITIONAL): New.
   6561 	(struct cpp_callbacks): New macro_to_expand field.
   6562 	(struct cpp_hashnode): Adjust size of flags and type fields.
   6563 	(cpp_peek_token): Prototype.
   6564 	* lex.c (cpp_peek_token): New function.
   6565 	(_cpp_temp_token): Protect pre-existing lookaheads.
   6566 	* macro.c (cpp_get_token): Expand any conditional macros.
   6567 	(_cpp_backup_tokens_direct): New.
   6568 	(_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
   6569 	(warn_of_redefinition): Silently allow redefined conditional
   6570 	macros.
   6571 	(_cpp_create_definition): Remove the conditional flag when a user
   6572 	defines one of the conditional macros.
   6573 	* internal.h (_cpp_backup_tokens_direct): New prototype.
   6574 
   6575 2008-06-13  Andrew Haley  <aph (a] redhat.com>
   6576 
   6577 	PR preprocessor/33305
   6578 	* macro.c (replace_args): Print a warning for empty macro
   6579 	arguments in C89 and C++.
   6580 
   6581 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues (a] gmx.de>
   6582 
   6583 	* Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.
   6584 	* configure: Regenerate.
   6585 
   6586 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues (a] gmx.de>
   6587 
   6588 	* Makefile.in (datarootdir): New variable.
   6589 
   6590 2008-06-12  H.J. Lu  <hongjiu.lu (a] intel.com>
   6591 
   6592 	PR preprocessor/36479
   6593 	* charset.c (cpp_interpret_string_notranslate): Also set
   6594 	narrow_cset_desc.width.
   6595 
   6596 2008-06-07  Joseph Myers  <joseph (a] codesourcery.com>
   6597 
   6598 	* configure.ac (parisc*64*-*-*): Remove.
   6599 	* configure: Regenerate.
   6600 
   6601 2008-05-30  Tom Tromey  <tromey (a] redhat.com>
   6602 
   6603 	PR preprocessor/36320:
   6604 	* internal.h (_cpp_parse_expr): Update.
   6605 	* expr.c (_cpp_parse_expr): Add 'is_if' argument.  Update error
   6606 	messages.
   6607 	* directives.c (do_if): Update.
   6608 	(do_elif): Require expression if processing group.
   6609 
   6610 2008-05-30  Danny Smith  <dannysmith (a] users.sourceforge.net>
   6611 
   6612 	* include/cpplib.h (struct cpp_dir): Add new field, canonical_name.
   6613 
   6614 2008-05-21  Tom Tromey  <tromey (a] redhat.com>
   6615 
   6616 	PR preprocessor/27777:
   6617 	* lex.c (cpp_output_line_to_string): New function.
   6618 	* internal.h (_cpp_begin_message): Don't declare.
   6619 	* errors.c (_cpp_begin_message): Now static.
   6620 	* include/cpplib.h (cpp_output_line_to_string): Declare.
   6621 	* directives.c (do_diagnostic): Rewrote.  Use
   6622 	cpp_output_line_to_string.  Don't use _cpp_begin_message.
   6623 
   6624 2008-05-21  Tom Tromey  <tromey (a] redhat.com>
   6625 
   6626 	* include/symtab.h (HT_ALLOCED): Remove.
   6627 	(ht_purge): Declare.
   6628 	* symtab.c (DELETED): New define.
   6629 	(ht_lookup): Update comment.
   6630 	(ht_lookup_with_hash): Handle deleted entries.  Remove HT_ALLOCED
   6631 	code.  Use subobject allocator for strings, if it exists.
   6632 	(ht_expand): Handle deleted entries.
   6633 	(ht_forall): Likewise.
   6634 	(ht_purge): New function.
   6635 	(ht_dump_statistics): Print deletion statistics.
   6636 
   6637 2008-05-13  Tom Tromey  <tromey (a] redhat.com>
   6638 
   6639 	PR preprocessor/22168:
   6640 	* include/cpplib.h (struct cpp_options) <objc>: Update
   6641 	documentation.
   6642 	* expr.c (eval_token): Warn for use of assertions.
   6643 	* directives.c (directive_diagnostics): Warn about extensions.
   6644 	(DEPRECATED): New define.
   6645 	(DIRECTIVE_TABLE): Use it.
   6646 
   6647 2008-05-06  Tom Tromey  <tromey (a] redhat.com>
   6648 
   6649 	PR preprocessor/35313, PR preprocessor/36088:
   6650 	* expr.c (optab) <QUERY, COMMA>: Set precedence to 4.
   6651 	(reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON.
   6652 
   6653 2008-05-04  David S. Miller  <davem (a] davemloft.net>
   6654 
   6655 	* configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
   6656 	* configure: Regenerate.
   6657 
   6658 2008-04-22  Daniel Franke  <franke.daniel (a] gmail.com>
   6659 
   6660 	* include/cpplib.h (cpp_define_formatted): New.
   6661 	* directives.c (cpp_define_formatted): New.
   6662 
   6663 2008-04-21  Tom Tromey  <tromey (a] redhat.com>
   6664 
   6665 	PR libcpp/33415:
   6666 	* charset.c (_cpp_convert_input): Add buffer_start argument.
   6667 	Ignore UTF-8 BOM if seen.
   6668 	* internal.h (_cpp_convert_input): Add argument.
   6669 	* files.c (struct _cpp_file) <buffer_start>: New field.
   6670 	(destroy_cpp_file): Free buffer_start, not buffer.
   6671 	(_cpp_pop_file_buffer): Likewise.
   6672 	(read_file_guts): Update.
   6673 
   6674 2008-04-18  Kris Van Hees <kris.van.hees (a] oracle.com>
   6675 
   6676 	* include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal.
   6677 	* include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
   6678 	(struct cpp_options): Added uliterals.
   6679 	(cpp_interpret_string): Update prototype.
   6680 	(cpp_interpret_string_notranslate): Idem.
   6681 	* charset.c (init_iconv_desc): New width member in cset_converter.
   6682 	(cpp_init_iconv): Add support for char{16,32}_cset_desc.
   6683 	(convert_ucn): Idem.
   6684 	(emit_numeric_escape): Idem.
   6685 	(convert_hex): Idem.
   6686 	(convert_oct): Idem.
   6687 	(convert_escape): Idem.
   6688 	(converter_for_type): New function.
   6689 	(cpp_interpret_string): Use converter_for_type, support u and U prefix.
   6690 	(cpp_interpret_string_notranslate): Match changed prototype.
   6691 	(wide_str_to_charconst): Use converter_for_type.
   6692 	(cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
   6693 	* directives.c (linemarker_dir): Macro U changed to UC.
   6694 	(parse_include): Idem.
   6695 	(register_pragma_1): Idem.
   6696 	(restore_registered_pragmas): Idem.
   6697 	(get__Pragma_string): Support CPP_STRING{16,32}.
   6698 	* expr.c (eval_token): Support CPP_CHAR{16,32}.
   6699 	* init.c (struct lang_flags): Added uliterals.
   6700 	(lang_defaults): Idem.
   6701 	* internal.h (struct cset_converter) <width>: New field.
   6702 	(struct cpp_reader) <char16_cset_desc>: Idem.
   6703 	(struct cpp_reader) <char32_cset_desc>: Idem.
   6704 	* lex.c (digraph_spellings): Macro U changed to UC.
   6705 	(OP, TK): Idem.
   6706 	(lex_string): Add support for u'...', U'...', u"..." and U"...".
   6707 	(_cpp_lex_direct): Idem.
   6708 	* macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
   6709 	(stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
   6710 
   6711 2008-04-18  Paolo Bonzini  <bonzini (a] gnu.org>
   6712 
   6713 	PR bootstrap/35457
   6714 	* aclocal.m4: Regenerate.
   6715 	* configure: Regenerate.
   6716 
   6717 2008-04-17  Tom Tromey  <tromey (a] redhat.com>
   6718 
   6719 	PR libcpp/34866:
   6720 	* errors.c (cpp_error): Don't reference a token before the start
   6721 	of the current run.
   6722 
   6723 2008-04-16  Tom Tromey  <tromey (a] redhat.com>
   6724 
   6725 	* Makefile.in (TAGS_SOURCES): New variable.
   6726 	(TAGS): New target.
   6727 
   6728 2008-04-11  Kaz Kojima  <kkojima (a] gcc.gnu.org>
   6729 
   6730 	* configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-*
   6731 	and shbe-*-*.
   6732 	* configure: Rebuilt.
   6733 
   6734 2008-04-02  Joseph Myers  <joseph (a] codesourcery.com>
   6735 
   6736 	* include/cpplib.h (struct cpp_callbacks): Add used_define,
   6737 	used_undef and before_define.
   6738 	(NODE_USED): Define.
   6739 	* directives.c (do_define, do_undef, undefine_macros, do_ifdef,
   6740 	do_ifndef, cpp_pop_definition): Handle new flag and use new
   6741 	callbacks.
   6742 	* expr.c (parse_defined): Handle new flag and use new callbacks.
   6743 	* macro.c (enter_macro_context, _cpp_free_definition): Handle new
   6744 	flag and use new callbacks.
   6745 
   6746 2008-04-01  Jakub Jelinek  <jakub (a] redhat.com>
   6747 
   6748 	PR pch/13675
   6749 	* files.c (struct _cpp_file): Remove pch field.
   6750 	(pch_open_file): Don't set file->pch, just file->pchname.
   6751 	(should_stack_file): After pfile->cb.read_pch call
   6752 	free pchname and clear pchname, don't close file->fd.
   6753 	Test file->pchname instead of file->pch.  Don't close fd after cb.
   6754 	(_cpp_stack_include): Test file->pchname instead of file->pch.
   6755 
   6756 2008-03-28  Tom Tromey  <tromey (a] redhat.com>
   6757 
   6758 	* Makefile.in (POSTCOMPILE): New variable.
   6759 	(.c.o): Use it.
   6760 
   6761 2008-03-13  Tom Tromey  <tromey (a] redhat.com>
   6762 
   6763 	PR libcpp/35322:
   6764 	* directives.c (destringize_and_run): Set pfile->directive.
   6765 
   6766 2008-03-06  Markus Milleder  <markus.milleder (a] generali.at>
   6767 
   6768 	PR preprocessor/35458
   6769 	* mkdeps.c (munge): Quote '#' with a '\'.
   6770 
   6771 2008-02-27  Ralf Wildenhues  <Ralf.Wildenhues (a] gmx.de>
   6772 
   6773 	PR preprocessor/35379
   6774 	* mkdeps.c (deps_write): Ensure the first target always appears
   6775 	in the first column, without leading backslash newline.  Avoid
   6776 	some more extra whitespace.
   6777 
   6778 2008-02-25  Thiemo Seufer <ths (a] mips.com>
   6779 
   6780 	* Makefile.in ($(srcdir)/config.in): Depend on configure.ac.
   6781 
   6782 2008-02-19  Tom Tromey  <tromey (a] redhat.com>
   6783 
   6784 	* traditional.c (lex_identifier): Use CPP_HASHNODE.
   6785 	* lex.c (lex_identifier): Use CPP_HASHNODE.
   6786 	* include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in
   6787 	do-while.
   6788 	* identifiers.c (alloc_node): Change return type.
   6789 	(_cpp_init_hashtable): Don't cast 'alloc_node'.
   6790 	(proxy_assertion_broken): New declaration.
   6791 	(cpp_forall_identifiers): Move comment.
   6792 	* line-map.c (linemap_add): Comment fix.
   6793 	(linemap_line_start): Indentation fix.
   6794 
   6795 2008-01-25  Jakub Jelinek  <jakub (a] redhat.com>
   6796 
   6797 	PR preprocessor/34692
   6798 	* macro.c (collect_args): Add pragma_buff argument.  Push
   6799 	CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather
   6800 	than into arguments.  Reset prevent_expansion and parsing_args
   6801 	state at CPP_PRAGMA_EOL/CPP_EOF.
   6802 	(funlike_invocation_p): Add pragma_buff argument, pass it through
   6803 	to collect_args.
   6804 	(enter_macro_context): Add result argument.  Adjust
   6805 	funlike_invocation_p caller.  Emit all deferred pragma tokens
   6806 	gathered during collect_args before the expansion, add a padding
   6807 	token.  Return 2 instead of 1 if any pragma tokens were prepended.
   6808 	(cpp_get_token): If enter_macro_context returns 2, don't return
   6809 	a padding token, instead cycle to grab CPP_PRAGMA token.
   6810 	* directives.c (_cpp_handle_directive): If was_parsing_args
   6811 	in deferred pragma, leave parsing_args and prevent_expansion as is.
   6812 
   6813 2008-01-22  Tom Tromey  <tromey (a] redhat.com>
   6814 
   6815 	PR c++/34859
   6816 	* macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and
   6817 	__STDC_CONSTANT_MACROS.
   6818 
   6819 2008-01-07  Fred Fish  <fnf (a] specifix.com>
   6820 
   6821 	PR preprocessor/30363
   6822 	* traditional.c (replace_args_and_push): Add local variable
   6823 	cxtquote, calculate the replacement text size assuming a
   6824 	worst case of every input character quoted with backslash,
   6825 	and properly handle output quoting of quote characters in
   6826 	actual arguments used in function-like macros.
   6827 
   6828 2008-01-03  Tom Tromey  <tromey (a] redhat.com>
   6829 
   6830 	PR preprocessor/34602
   6831 	* directives.c (do_line): Don't try to spell EOF token.
   6832 	(do_linemarker): Add comment.
   6833 
   6834 2007-12-11  DJ Delorie  <dj (a] redhat.com>
   6835 
   6836 	* charset.c (convert_using_iconv): Close out any shift states,
   6837 	returning to the initial state.
   6838 
   6839 2007-12-06  Tom Tromey  <tromey (a] redhat.com>
   6840 
   6841 	PR c/29172
   6842 	* internal.h (struct cpp_reader) <file_hash_entries>: Changed
   6843 	type.
   6844 	<file_hash_entries_allocated, file_hash_entries_used>: Removed.
   6845 	* files.c (FILE_HASH_POOL_SIZE): New macro.
   6846 	(struct file_hash_entry_pool): New.
   6847 	(destroy_all_cpp_files): New function.
   6848 	(allocate_file_hash_entries): Allocate a file_hash_entry_pool.
   6849 	(new_file_hash_entry): Update.
   6850 	(free_file_hash_entries): New function.
   6851 	(_cpp_cleanup_files): Call free_file_hash_entries and
   6852 	destroy_all_cpp_files.
   6853 	(cpp_clear_file_cache): New function.
   6854 	* include/cpplib.h (cpp_clear_file_cache): Declare.
   6855 
   6856 2007-12-03  Tom Tromey  <tromey (a] redhat.com>
   6857 
   6858 	PR preprocessor/34288
   6859 	* configure.ac, config.in: Rebuilt.
   6860 	* configure.ac: Check for ssize_t.
   6861 
   6862 2007-11-30  Tom Tromey  <tromey (a] redhat.com>
   6863 
   6864 	PR preprocessor/32868
   6865 	* macro.c (_cpp_create_definition): Special case
   6866 	__STDC_FORMAT_MACROS.
   6867 
   6868 2007-11-16  Michael Matz  <matz (a] suse.de>
   6869 
   6870 	* files.c (search_path_head): Fix check for absolute paths.
   6871 
   6872 2007-11-11  Tom Tromey  <tromey (a] redhat.com>
   6873 
   6874 	PR c++/17557
   6875 	* include/cpplib.h (cpp_included_before): Declare.
   6876 	* files.c (struct file_hash_entry) <location>: New field.
   6877 	(_cpp_find_file): Initialize new field.
   6878 	(make_cpp_dir): Likewise.
   6879 	(cpp_included_before): New function.
   6880 
   6881 2007-11-01  Tom Tromey  <tromey (a] redhat.com>
   6882 
   6883 	PR preprocessor/30805
   6884 	* macro.c (paste_tokens): Handle padding token.
   6885 	(paste_tokens): Don't abort unless padding has PASTE_LEFT flag.
   6886 
   6887 2007-10-31  Tom Tromey  <tromey (a] redhat.com>
   6888 
   6889 	PR preprocessor/30786
   6890 	* macro.c (builtin_macro): Return result of _cpp_do__Pragma.
   6891 	* directives.c (_cpp_do__Pragma): Return error status.
   6892 	* internal.h (_cpp_do__Pragma): Update.
   6893 	* directives.c (get__Pragma_string): Back up if EOF seen.
   6894 
   6895 2007-09-06  Tom Tromey  <tromey (a] redhat.com>
   6896 
   6897 	* internal.h (struct cpp_reader) <invocation_location>: New
   6898 	field.
   6899 	(struct cpp_reader) <set_invocation_location>: Likewise.
   6900 	* init.c (cpp_set_line_map): New function.
   6901 	* line-map.c (linemap_add): Use linemap's allocator.
   6902 	* include/line-map.h (GTY): Define.
   6903 	(line_map_realloc): New typedef.
   6904 	(struct line_map): Mark with GTY.
   6905 	(struct line_maps): Likewise.
   6906 	(struct line_maps) <maps>: Likewise.
   6907 	(struct line_maps) <reallocator>: New field.
   6908 	* include/symtab.h (GTY): Conditionally define.
   6909 	* include/cpplib.h (cpp_set_line_map): Declare.
   6910 	(cpp_get_token_with_location): Declare.
   6911 	* macro.c (cpp_get_token): Set invocation_location on the reader.
   6912 	(cpp_get_token_with_location): New function.
   6913 
   6914 2007-08-30  Chao-ying Fu  <fu (a] mips.com>
   6915 
   6916 	* expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur,
   6917 	ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk.
   6918 	(cpp_classify_number): Support decimal fixed-point constants without
   6919 	exponents.
   6920 	Warn about fixed-point constants when -pedantic.
   6921 	* include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change
   6922 	comments to support fixed-point values.
   6923 	(CPP_N_FRACT, CPP_N_ACCUM): Define.
   6924 
   6925 2007-08-18  Tom Tromey  <tromey (a] redhat.com>
   6926 
   6927 	PR preprocessor/32974
   6928 	* directives.c (parse_include): Don't check for EOL when
   6929 	processing #pragma dependency.
   6930 
   6931 2007-07-30  Ollie Wild  <aaw (a] google.com>
   6932 
   6933 	* directives-only.c: New file.
   6934 	* internal.h (struct _cpp_dir_only_callbacks): New.
   6935 	(_cpp_preprocess_dir_only): New function.
   6936 	* directives.c (_cpp_handle_directive): Check directives_only before
   6937 	disabling execution of indented directives.
   6938 	* files.c (_cpp_stack_file): Add directives_only check.
   6939 	* include/cpplib.h (struct cpp_options): Add directives_only.
   6940 	(cpp_init_special_builtins): New function.
   6941 	* init.c (cpp_init_special_builtins): New function.
   6942 	(cpp_init_builtins): Move builtin_array initialization to
   6943 	cpp_init_special_builtins.
   6944 	(post_options): Check directives_only before setting
   6945 	pfile->state.prevent_expansion = 1.
   6946 	* macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
   6947 	is expanded inside a directive while -fdirectives-only is enabled.
   6948 	* Makefile.in (libcpp_a_OBJS): Add directives-only.o.
   6949 	(libcpp_a_SOURCES): Add directives-only.c.
   6950 
   6951 2007-07-04  Uros Bizjak  <ubizjak (a] gmail.com>
   6952 
   6953 	* traditional.c (_cpp_scan_out_logical_line): Initialize
   6954 	fmacro.args, fmacro.node, fmacro.offset, fmacro.line and
   6955 	fmacro.args to prevent 'may be used uninitialized' warning.
   6956 
   6957 2007-07-03  Uros Bizjak  <ubizjak (a] gmail.com>
   6958 
   6959 	* include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q):
   6960 	Add new constants.
   6961 	* expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q'
   6962 	suffixes.  Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q
   6963 	for 'q' or 'Q' suffixes.
   6964 
   6965 2007-06-17  Danny Smith  <dannysmith (a] users.sourceforge.net
   6966 
   6967 	* files.c (open_file): Correct typo.
   6968 
   6969 2007-06-16  Vladimir Prus  <vladimir (a] codesourcery.com>
   6970 
   6971 	* files.c (open_file): Prevent the call
   6972 	for stat from overwriting errno.
   6973 
   6974 2007-06-09  Vladimir Prus  <vladimir (a] codesourcery.com>
   6975 
   6976 	* files.c (open_file): Account for the
   6977 	fact that on windows, opening a directory gives
   6978 	EACCES.
   6979 
   6980 2007-06-05  Joerg Wunsch  <j.gnu (a] uriah.heep.sax.de>
   6981 
   6982 	PR preprocessor/23479
   6983 	* expr.c (cpp_classify_number): Implement 0b-prefixed binary
   6984 	integer constants.
   6985 	(append_digit): Likewise.
   6986 	* include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed
   6987 	binary integer constants.
   6988 
   6989 2007-05-31  Dave Korn  <dave.korn (a] artimi.com>
   6990 
   6991 	PR preprocessor/14331
   6992 	* lex.c (_cpp_get_fresh_line):  Don't warn if no newline at EOF.
   6993 
   6994 2007-05-24  Ollie Wild  <aaw (a] google.com>
   6995 
   6996 	* macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER.
   6997 	* pch.c (cpp_write_pch_deps): Save __COUNTER__ state.
   6998 	(cpp_write_pch_state): Save __COUNTER__ state.
   6999 	(cpp_valid_state): Check valid __COUNTER__ state.
   7000 	(cpp_read_state): Read new __COUNTER__ state.
   7001 	* include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator.
   7002 	* init.c (builtin_array): Add __COUNTER__/BT_COUNTER.
   7003 	* internal.h (struct cpp_reader): Add counter member.
   7004 
   7005 2007-05-23  Simon Martin  <simartin (a] users.sourceforge.net>
   7006 
   7007 	PR preprocessor/20077
   7008 	* macro.c (create_iso_definition): Fixed the method to determine
   7009 	whether the token-pasting operator appears at the beginning or the end
   7010 	of a macro.
   7011 
   7012 2007-05-21  Ian Lance Taylor  <iant (a] google.com>
   7013 
   7014 	* internal.h (struct cpp_reader): Add new fields:
   7015 	nonexistent_file_hash and nonexistent_file_ob.
   7016 	* files.c: Include "obstack.h".
   7017 	(find_file_in_dir): Before trying to open the file, look up the
   7018 	path name in the hash table of nonexistent files.  After failing
   7019 	to open the file, add the path name to the hash table.
   7020 	(_cpp_find_file): Cache the results of looking up the file name
   7021 	starting with the quote and bracket chain heads, if we can.
   7022 	(nonexistent_file_hash_eq): New static function.
   7023 	(_cpp_init_files): Initialize pfile->nonexistent_file_hash and
   7024 	pfile->nonexistent_file_ob.
   7025 	(_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
   7026 	pfile->nonexistent_file_ob.
   7027 
   7028 2007-05-14  Janis Johnson  <janis187 (a] us.ibm.com>
   7029 
   7030 	* expr.c (cpp_classify_number): Warn about dfp constant for -pedantic.
   7031 
   7032 	PR c/31924
   7033 	* expr.c (interpret_float_suffix): Check for invalid suffix.
   7034 
   7035 2007-05-02  Eric Christopher  <echristo (a] apple.com>
   7036 
   7037 	* expr.c (num_div_op): Don't overflow if the result is
   7038 	zero.
   7039 
   7040 2007-05-02  Tom Tromey  <tromey (a] redhat.com>
   7041 
   7042 	PR preprocessor/28709
   7043 	* macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
   7044 
   7045 2007-03-30  Michael Meissner  <michael.meissner (a] amd.com>
   7046 
   7047 	* directives.c (lex_macro_node_from_str): Fix alloca call to be
   7048 	type correct.
   7049 
   7050 2007-03-30  Richard Henderson  <rth (a] redhat.com>
   7051 
   7052 	* directives.c (lex_macro_node_from_str): New.
   7053 	(cpp_push_definition, cpp_pop_definition): New.
   7054 	* include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
   7055 
   7056 2007-03-01  Brooks Moses  <brooks.moses (a] codesourcery.com>
   7057 
   7058 	* Makefile.in: Add dummy install-pdf target.
   7059 
   7060 2007-01-30  Tom Tromey  <tromey (a] redhat.com>
   7061 
   7062 	PR preprocessor/30468
   7063 	* mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
   7064 	'./'.
   7065 
   7066 2007-01-30  Tom Tromey  <tromey (a] redhat.com>
   7067 
   7068 	PR preprocessor/29966
   7069 	* macro.c (lex_expansion_token): Save and restore cpp_reader's
   7070 	cur_token.
   7071 	(_cpp_create_definition): Don't restore cur_token here.
   7072 	* lex.c (_cpp_lex_token): Added assertion.
   7073 
   7074 2007-01-27  Tom Tromey  <tromey (a] redhat.com>
   7075 
   7076 	* configure: Rebuilt.
   7077 
   7078 2007-01-12  Tom Tromey  <tromey (a] redhat.com>
   7079 
   7080 	PR preprocessor/28227
   7081 	* directives.c (lex_macro_node): Added 'is_def_or_undef'
   7082 	argument.
   7083 	(do_define): Update.
   7084 	(do_undef): Update.
   7085 	(do_ifdef): Update.
   7086 	(do_ifndef): Update.
   7087 
   7088 2007-01-11  Paolo Bonzini  <bonzini (a] gnu.org>
   7089 
   7090 	* configure: Regenerate.
   7091 
   7092 2007-01-11  Paolo Bonzini  <bonzini (a] gnu.org>
   7093 
   7094 	* configure: Regenerate.
   7095 
   7096 2007-01-04  Tom Tromey  <tromey (a] redhat.com>
   7097 
   7098 	PR preprocessor/28165
   7099 	* internal.h (cpp_in_primary_file): New function.
   7100 	* directives.c (do_include_next): Use cpp_in_primary_file.
   7101 	(do_pragma_once): Likewise.
   7102 	(do_pragma_system_header): Likewise.
   7103 
   7104 2006-12-29  Ian Lance Taylor  <iant (a] google.com>
   7105 
   7106 	* lex.c (_cpp_clean_line): Add uses of __builtin_expect.  Don't
   7107 	look backward at the end of the line unless we saw a backslash.
   7108 
   7109 2006-12-29  Jakub Jelinek  <jakub (a] redhat.com>
   7110 
   7111 	PR preprocessor/29612
   7112 	* directives.c (do_linemarker): Set pfile->buffer->sysp always, not
   7113 	only when new_sysp is non-zero.
   7114 
   7115 2006-12-28  Tom Tromey  <tromey (a] redhat.com>
   7116 
   7117 	PR preprocessor/30001
   7118 	* charset.c (_cpp_convert_input): Check that to.len is greater
   7119 	than zero.
   7120 
   7121 2006-11-20  Trevor Smigiel <Trevor_Smigiel (a] playstation.sony.com>
   7122 
   7123 	* configure.ac (need_64bit_hwint): Need 64bit hwint for SPU.
   7124 	* configure: Rebuilt.
   7125 
   7126 2006-11-01	Douglas Gregor <doug.gregor (a] gmail.com>
   7127 
   7128 	* include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
   7129 	for experimental C++0x mode.
   7130 	* init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
   7131 	adopted the preprocessor changes introduced in C99.
   7132 
   7133 2006-10-29  Joseph Myers  <joseph (a] codesourcery.com>
   7134 
   7135 	* configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
   7136 	depending on --enable-targets=all.
   7137 	* configure: Regenerate.
   7138 
   7139 2006-10-12  Jakub Jelinek  <jakub (a] redhat.com>
   7140 
   7141 	PR preprocessor/28709
   7142 	* macro.c (paste_tokens): Do error reporting here, use BUF with the
   7143 	spelled LHS token as opposed to spelling it again.
   7144 	(paste_all_tokens): Don't report errors here, just break on failure.
   7145 
   7146 2006-10-10  Brooks Moses  <bmoses (a] stanford.edu>
   7147 
   7148 	* Makefile.in: Added empty "pdf" target.
   7149 
   7150 2006-09-22  Geoffrey Keating  <geoffk (a] apple.com>
   7151 
   7152 	* configure.ac: Make need_64_bit_hwint case for x86-darwin
   7153 	match exactly the glob in gcc/config.gcc.
   7154 	* configure: Regenerate.
   7155 
   7156 2006-09-13  Joseph S. Myers  <joseph (a] codesourcery.com>
   7157 
   7158 	PR c/28768
   7159 	PR preprocessor/14634
   7160 	* lex.c (lex_string): Pedwarn for unterminated literals.
   7161 
   7162 2006-09-08  Eric Christopher  <echristo (a] apple.com>
   7163 
   7164 	* configure.ac: Add 64-bit HWI support for i?86-darwin.
   7165 
   7166 2006-08-14  Steve Ellcey  <sje (a] cup.hp.com>
   7167 
   7168 	PR c++/28288
   7169 	PR c++/14556
   7170 	* include/cpplib.h: Remove <?, >?, <?=, and >?= tokens.
   7171 	(CPP_LAST_EQ): Change.
   7172 	(CPP_LAST_PUNCTUATOR): Change.
   7173 	* expr.c (cpp_operator): Remove MIN and MAX.
   7174 	(reduce): Remove CPP_MIN and CPP_MAX.
   7175 	(num_binary_op): Ditto.
   7176 	* lex.c (_cpp_lex_direct): Ditto.
   7177 	(cpp_avoid_paste): Remove ? as legal symbol after > or <.
   7178 
   7179 2006-06-09  Jakub Jelinek  <jakub (a] redhat.com>
   7180 
   7181 	PR preprocessor/27746
   7182 	* directives.c (do_pragma): Handle pragma with valid namespace
   7183 	and invalid name coming from macro expansion.
   7184 	* directives.c (destringize_and_run): Initialize next field in
   7185 	context.
   7186 
   7187 	PR c/27747
   7188 	PR c++/27748
   7189 	* directives.c (destringize_and_run): Set NO_EXPAND on the
   7190 	tokens.
   7191 
   7192 	* macro.c (_cpp_backup_tokens): Fix comment typo.
   7193 
   7194 2006-05-31  Daniel Jacobowitz  <dan (a] codesourcery.com>
   7195 
   7196 	* Makefile.in (CATALOGS): Add po/ prefix.
   7197 	* configure: Regenerated.
   7198 
   7199 2006-05-23  Carlos O'Donell  <carlos (a] codesourcery.com>
   7200 
   7201 	* Makefile.in: Add install-html target. Add install-html to .PHONY
   7202 
   7203 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev (a] linux.intel.com>
   7204 
   7205 	* macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
   7206 	* files.c (_cpp_get_file_stat): New function.
   7207 	* include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
   7208 	* init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
   7209 	* internal.h (_cpp_get_file_stat): Prototype.
   7210 	(struct cpp_buffer): Add timestamp.
   7211 
   7212 2006-01-23  Jakub Jelinek  <jakub (a] redhat.com>
   7213 
   7214 	PR preprocessor/25717
   7215 	* init.c (cpp_init_builtins): If __STDC__ will not change value
   7216 	between system headers and other sources, define it as a normal
   7217 	macro rather than a builtin.
   7218 	* macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
   7219 	cpp_in_system_header condition.
   7220 
   7221 2006-01-05  Paolo Bonzini  <bonzini (a] gnu.org>
   7222 
   7223 	* Makefile.in: Use -MMD instead of -MD.
   7224 
   7225 2006-01-04  Dmitry Kurochkin <dmitry.kurochkin (a] gmail.com>
   7226 	    Richard Henderson  <rth (a] redhat.com>
   7227 
   7228 	Merge from gomp branch:
   7229 	* directives.c (struct pragma_entry): Add is_deferred.  Add ident
   7230 	entry to value union.
   7231 	(end_directive): Don't eat the line if in_deferred_pragma.
   7232 	(run_directive): Remove pragma hacks.
   7233 	(insert_pragma_entry): Remove.
   7234 	(new_pragma_entry): New.
   7235 	(register_pragma_1): Split out of register_pragma.  Only handle
   7236 	the lookup tree and return the new entry.
   7237 	(cpp_register_pragma): Fill in the pragma entry here.
   7238 	(cpp_register_deferred_pragma): New.
   7239 	(register_pragma_internal): New.
   7240 	(_cpp_init_internal_pragmas): Use register_pragma_internal.
   7241 	(do_pragma): Allow pragma expansion after namespace.  For deferred
   7242 	pragmas, don't slurp the line into a string.
   7243 	(destringize_and_run): Save tokens for deferred pragmas.
   7244 	(cpp_handle_deferred_pragma): Remove.
   7245 	* macro.c (builtin_macro): Remove pragma token hack.
   7246 	(_cpp_push_token_context): Rename from push_token_context and export.
   7247 	* internal.h (struct lexer_state): Add pragma_allow_expansion.
   7248 	(_cpp_push_token_context): Declare.
   7249 	* lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
   7250 	a token.  Update the line number correctly if so.
   7251 	(_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
   7252 	(cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
   7253 	* include/cpplib.h (PRAGMA_EOL): New.
   7254 	(CPP_TOKEN_FLD_PRAGMA): New.
   7255 	(struct cpp_token): Add val.pragma.
   7256 	(struct cpp_options): Remove defer_pragmas.
   7257 	(cpp_handle_deferred_pragma): Remove.
   7258 	(cpp_register_deferred_pragma): Declare.
   7259 
   7260 2006-01-01  Jakub Jelinek  <jakub (a] redhat.com>
   7261 
   7262 	PR c++/25294
   7263 	* directives.c (do_pragma): If pragma line ends with multi-line
   7264 	block comment, end the saved deferred pragma string before that
   7265 	comment.  Handle embedded '\0' chars on the pragma line.
   7266 
   7267 2005-12-22  Volker Reichelt  <reichelt (a] igpm.rwth-aachen.de>
   7268 
   7269 	PR c++/23333
   7270 	* include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
   7271 
   7272 2005-12-07  Jon Grimm  <jgrimm2 (a] us.ibm.com>
   7273 	    Ben Elliston  <bje (a] au.ibm.com>
   7274 
   7275 	* include/cpplib.h (CPP_N_DFLOAT): New.
   7276 	* expr.c (interpret_float_suffix): Identify df, dd, and dl
   7277 	suffixes as decimal floating point constants.
   7278 	(cpp_classify_number): Disallow hexadecimal DFP constants.
   7279 
   7280 2005-11-14  Gerald Pfeifer  <gerald (a] pfeifer.com>
   7281 	    Ian Lance Taylor  <ian (a] airs.com>
   7282 
   7283 	* include/cpplib.h (struct cpp_callbacks): Annotate error with
   7284 	ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
   7285 
   7286 2005-11-09  Per Bothner  <per (a] bothner.com>
   7287 	    Uros Bizjak  <uros (a] kss-loka.si>
   7288 
   7289 	PR c/24101
   7290 	* init.c (read_original_filename): Temporarily set
   7291 	state.in_directive before calling _cpp_lex_direct for
   7292 	CPP_HASH tokens.
   7293 
   7294 2005-11-03  James E Wilson  <wilson (a] specifix.com>
   7295 
   7296 	PR preprocessor/24202
   7297 	* files.c (_cpp_pop_file_buffer): Set buffer_valid to false.
   7298 
   7299 2005-11-04  Joseph S. Myers  <joseph (a] codesourcery.com>
   7300 
   7301 	* include/cpplib.h (struct cpp_callbacks): Make error take
   7302 	va_list* parameter.
   7303 	* errors.c (cpp_error): Update call to callback.
   7304 
   7305 2005-11-03  Andrew Pinski  <pinskia (a] physics.uc.edu>
   7306 
   7307 	PR preprocessor/22042
   7308 	* macro.c (_cpp_builtin_macro_text): Lower the needed max
   7309 	buffer size.
   7310 	(cpp_quote_string): Don't octalify non printable
   7311 	charactors.
   7312 
   7313 2005-11-03  Joseph S. Myers  <joseph (a] codesourcery.com>
   7314 
   7315 	PR c++/17964
   7316 	* include/cpplib.h (struct cpp_options): Add client_diagnostic.
   7317 	(struct cpp_callbacks): Add error.
   7318 	* errors.c (cpp_error): If client_diagnostic, use error callback.
   7319 	* charset.c (convert_escape): Don't use %03o in diagnostic.
   7320 
   7321 2005-10-21  James E Wilson  <wilson (a] specifix.com>
   7322 
   7323 	PR preprocessor/15220
   7324 	* files.c (_cpp_find_file): New parameter angle_brackets.  Fix all
   7325 	callers.  Pass to open_file_failed.
   7326 	(open_file_failed): New parameter angle_brackets.  Fix all callers.
   7327 	Use in print_dep assignment.
   7328 	* init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
   7329 	* internal.h (_cpp_find_file): Add new parm to declaration.
   7330 
   7331 2005-10-08  Kazu Hirata  <kazu (a] codesourcery.com>
   7332 
   7333 	* configure.ac: Require 64-bit int for arm*-*-*eabi*.
   7334 	* configure: Regenerate.
   7335 
   7336 2005-10-04  Ian Lance Taylor  <ian (a] airs.com>
   7337 
   7338 	PR preprocessor/13726
   7339 	* directives.c (check_eol_return_comments): New static function.
   7340 	(parse_include): Add buf parameter.  Change all callers.
   7341 	(do_include_common): If not discard comments, turn on
   7342 	save_comments.  Pass collected comments to include callback.
   7343 	* include/cpplib.h (struct cpp_callbacks): Add new parameter to
   7344 	include callback: cpp_token list.
   7345 
   7346 2005-09-20  Joseph S. Myers  <joseph (a] codesourcery.com>
   7347 
   7348 	* include/cpplib.h (struct cpp_options): Add extended_identifiers.
   7349 	* init.c (struct lang_flags, lang_defaults): Add
   7350 	extended_identifiers.
   7351 	(cpp_set_lang): Use it.
   7352 	* lex.c (forms_identifier_p): Check extended_identifiers.
   7353 
   7354 2005-08-30  Jakub Jelinek  <jakub (a] redhat.com>
   7355 
   7356 	PR preprocessor/20348
   7357 	PR preprocessor/20356
   7358 	* files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and
   7359 	2004-06-05 changes.
   7360 
   7361 2005-07-23  Kaveh R. Ghazi  <ghazi (a] caip.rutgers.edu>
   7362 
   7363 	* configure.ac (ACX_PROG_CC_WARNING_OPTS): add
   7364 	-Wmissing-format-attribute.
   7365 
   7366 	* configure: Regenerate.
   7367 
   7368 2005-06-29  Kelley Cook  <kcook (a] gcc.gnu.org>
   7369 
   7370 	* all files: Update FSF address in copyright headers.
   7371 	* makeucnid.c (write_copyright): Update outputted FSF address.
   7372 
   7373 2005-06-13  Zack Weinberg  <zack (a] codesourcery.com>
   7374 
   7375 	* configure.ac: Invoke ZW_CREATE_DEPDIR and
   7376 	ZW_PROG_COMPILER_DEPENDENCIES.
   7377 	* aclocal.m4, configure: Regenerate.
   7378 	* Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE):
   7379 	New variables.
   7380 	(distclean): Clean up $(DEPDIR) and its contents.
   7381 	(.c.o): Use $(COMPILE).
   7382 	Include $(DEPDIR)/*.Po for most object->header dependencies.
   7383 
   7384 2005-05-28  Gabriel Dos Reis  <gdr (a] integrable-solutions.net>
   7385 
   7386 	* configure.ac: Check declarations for asprintf and vasprintf.
   7387 	* config.in: Regenerate.
   7388 	* configure: Likewise.
   7389 
   7390 	* charset.c (conversion_loop): Use XRESIZEVEC.
   7391 	(convert_no_conversion): Likewise.
   7392 	(convert_using_iconv): Likewise.
   7393 	(init_iconv_desc): Cast return value of alloca.
   7394 	(cpp_host_to_exec_charset): Use XNEWVEC.
   7395 	(emit_numeric_escape): Use XRESIZEVEC.
   7396 	(cpp_interpret_string): Use XNEWVEC.
   7397 	(cpp_interpret_string): Use XRESIZEVEC.
   7398 	(_cpp_interpret_identifier): Cast return value of alloca.
   7399 	(_cpp_convert_input): Use XNEWVEC and XRESIZEVEC.
   7400 	* directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC.
   7401 	(parse_include): Use XNEWVEC.
   7402 	(insert_pragma_entry): Rename local variable "new" to
   7403 	"new_entry".
   7404 	(save_registered_pragmas): Cast return value of xmemdup.
   7405 	(destringize_and_run): Same for alloca.
   7406 	(parse_assertion): Likewise.
   7407 	(do_assert): Cast allocated storage to proper type.
   7408 	(cpp_define): Likewise.
   7409 	(_cpp_define_builtin): Likewise.
   7410 	(cpp_undef): Likewise.
   7411 	(handle_assertion): Likewise.
   7412 	(cpp_push_buffer): Rename local variable "new" to "new_buffer".
   7413 	* expr.c (CPP_UPLUS): Cast value to type cpp_ttype.
   7414 	(CPP_UMINUS): Likewise.
   7415 	(struct cpp_operator): Rename from struct operator.
   7416 	(_cpp_expand_op_stack): Use XRESIZEVEC.
   7417 	* files.c (pch_open_file): Use XNEWVEC.
   7418 	(pch_open_file): Use XRESIZEVEC.
   7419 	(read_file_guts): Use XNEWVEC and XRESIZEVEC.
   7420 	(dir_name_of_file): Use XNEWVEC.
   7421 	(make_cpp_file): Use XCNEW.
   7422 	(make_cpp_dir): Likewise.
   7423 	(allocate_file_hash_entries): USE XNEWVEC.
   7424 	(cpp_included): Cast return value of htab_find_with_hash.
   7425 	(append_file_to_dir): Use XNEWVEC.
   7426 	(read_filename_string): Likewise. Use XRESIZEVEC too.
   7427 	(read_name_map): Cast return value of alloca.  Use XRESIZEVEC.
   7428 	(remap_filename): Use XNEWVEC.
   7429 	(struct pchf_entry): Move definition out of struct pchf_data.
   7430 	(_cpp_save_file_entries): Use XCNEWVAR.
   7431 	(_cpp_read_file_entries): Use XNEWVAR.
   7432 	* identifiers.c (alloc_node): Use XOBNEW.
   7433 	* init.c (cpp_create_reader): Use XCNEW.
   7434 	(cpp_init_builtins): Cast of b->value to enum builtin_type.
   7435 	(read_original_directory): Cast return value of alloca.
   7436 	* lex.c (add_line_note): Use XRESIZEVEC.
   7437 	(warn_about_normalization): Use XNEWVEC.
   7438 	(_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype).
   7439 	(new_buff): Use XNEWVEC.
   7440 	* line-map.c (linemap_add): Use XRESIZEVEC.
   7441 	* macro.c (builtin_macro): Cast return value of alloca.
   7442 	(paste_tokens): Likewise.
   7443 	(expand_arg): Use XNEWVEC and XRESIZEVEC.
   7444 	(_cpp_save_parameter): Use XRESIZEVEC.
   7445 	(create_iso_definition): Cast allocated storage to proper type.
   7446 	(_cpp_create_definition): Likewise.
   7447 	(cpp_macro_definition): Use XRESIZEVEC.
   7448 	* makedepend.c (add_clm): Use XNEW.
   7449 	(add_dir): Likewise.
   7450 	* mkdeps.c (munge): Use XNEWVEC.
   7451 	(deps_init): Use XCNEW.
   7452 	(deps_add_target): Use XRESIZEVEC.
   7453 	(deps_add_default_target): Cast return value of alloca.
   7454 	(deps_add_dep): Use XRESIZEVEC.
   7455 	(deps_add_vpath): Likewise.  Use XNEWVEC too.
   7456 	(deps_restore): Likewise.
   7457 	* pch.c (save_idents): Use XNEW and XNEWVEC.
   7458 	(cpp_save_state): Use XNEW.
   7459 	(count_defs): Cast return value of htab_find.
   7460 	(write_defs): Likewise.
   7461 	(cpp_write_pch_deps): Use XNEWVEC.
   7462 	(collect_ht_nodes): Use XRESIZEVEC.
   7463 	(cpp_valid_state): Use XNEWVEC.
   7464 	(save_macros): Use XRESIZEVEC.  Cast return value of xmemdup.
   7465 	* symtab.c (ht_create): Use XCNEW.
   7466 	(ht_lookup_with_hash): Cast return value of obstack_copy0.
   7467 	(ht_expand): Use XCNEWVEC.
   7468 	* system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus.
   7469 	(bool): Do not define if __cplusplus.
   7470 
   7471 2005-05-12  Zack Weinberg  <zack (a] codesourcery.com>
   7472 
   7473 	* directives.c (#sccs table entry): Mark IN_I, consistent with #ident.
   7474 	(do_sccs): Delete function definition, #define to do_ident.
   7475 	(do_ident): Don't hardwire directive name.
   7476 
   7477 2005-05-12  Ryota Kunisawa  <kunisawa (a] access.co.jp>
   7478 
   7479 	PR bootstrap/21230
   7480 	* configure: Regenerate.
   7481 
   7482 2005-04-27  Andris Pavenis  <pavenis (a] latnet.lv>
   7483 
   7484 	* files.c: Include io.h for DJGPP to get prototype of setmode.
   7485 
   7486 2005-04-19  Per Bothner  <per (a] bothner.com>
   7487 
   7488 	PR preprocessor/20907
   7489 	* line-map.c (linemap_line_start): Fix bug when we need to increse
   7490 	column_bits but can re-use the current line_map.
   7491 
   7492 2005-04-19  Kaveh R. Ghazi  <ghazi (a] caip.rutgers.edu>
   7493 
   7494 	* system.h (fopen, fdopen, freopen): Define these to the unlocked
   7495 	libiberty functions.
   7496 
   7497 2005-04-11  Kaveh R. Ghazi  <ghazi (a] caip.rutgers.edu>
   7498 
   7499 	* configure.ac (libcpp_UNLOCKED_FUNCS): New.
   7500 	(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
   7501 	* system.h (putchar, getc, getchar, clearerr, feof, fileno,
   7502 	fflush, fgetc, fgets, ferror, fread): Redefine to the associated
   7503 	_unlocked function.
   7504 	(fwrite_unlocked): Fix prototype.
   7505 
   7506 	* configure, config.in: Regenerate.
   7507 
   7508 2005-04-05  Jakub Jelinek  <jakub (a] redhat.com>
   7509 
   7510 	PR preprocessor/19475
   7511 	* macro.c (create_iso_definition): For < ISO C99, don't
   7512 	pedwarn if there is no whitespace between macro name and its
   7513 	replacement, but the replacement starts with a basic character
   7514 	set character.
   7515 
   7516 2005-03-28  Andreas Jaeger  <aj (a] suse.de>
   7517 
   7518 	* lex.c (warn_about_normalization): Cast field width to int to
   7519 	avoid warning.
   7520 
   7521 2005-03-19  Joseph S. Myers  <joseph (a] codesourcery.com>
   7522 
   7523 	* configure.ac: Consistently use solaris2.1[0-9]* instead of
   7524 	solaris2.1[0-9].
   7525 	* configure: Regenerate.
   7526 
   7527 2005-03-15  Geoffrey Keating  <geoffk (a] apple.com>
   7528 
   7529 	* charset.c (_cpp_valid_ucn): In identifiers, reject a partial
   7530 	UCN rather than printing an error.
   7531 
   7532 2005-03-14  Geoffrey Keating  <geoffk (a] apple.com>
   7533 
   7534 	* lex.c (forms_identifier_p): Disable UCNs in C89 mode.
   7535 
   7536 2005-03-14  Geoffrey Keating  <geoffk (a] apple.com>
   7537 
   7538 	* init.c (cpp_create_reader): Default warn_normalize to normalized_C.
   7539 	* charset.c: Update for new format of ucnid.h.
   7540 	(ucn_valid_in_identifier): Update for new format of ucnid.h.
   7541 	Add NST parameter, and update it; update callers.
   7542 	(cpp_valid_ucn): Add NST parameter, update callers.  Replace abort
   7543 	with cpp_error.
   7544 	(convert_ucn): Pass normalize_state to cpp_valid_ucn.
   7545 	* internal.h (struct normalize_state): New.
   7546 	(INITIAL_NORMALIZE_STATE): New.
   7547 	(NORMALIZE_STATE_RESULT): New.
   7548 	(NORMALIZE_STATE_UPDATE_IDNUM): New.
   7549 	(_cpp_valid_ucn): New.
   7550 	* lex.c (warn_about_normalization): New.
   7551 	(forms_identifier_p): Add normalize_state parameter, update callers.
   7552 	(lex_identifier): Add normalize_state parameter, update callers.  Keep
   7553 	the state current.
   7554 	(lex_number): Likewise.
   7555 	(_cpp_lex_direct): Pass normalize_state to subroutines.  Check
   7556 	it with warn_about_normalization.
   7557 	* makeucnid.c: New.
   7558 	* ucnid.h: Replace.
   7559 	* ucnid.pl: Remove.
   7560 	* ucnid.tab: Make appropriate for input to makeucnid.c.  Remove
   7561 	comments about obsolete version of C++.
   7562 	* include/cpplib.h (enum cpp_normalize_level): New.
   7563 	(struct cpp_options): Add warn_normalize field.
   7564 
   7565 2005-03-11  Geoffrey Keating  <geoffk (a] apple.com>
   7566 
   7567 	* directives.c (glue_header_name): Update call to cpp_spell_token.
   7568 	* internal.h (_cpp_interpret_identifier): New.
   7569 	* charset.c (_cpp_interpret_identifier): New.
   7570 	(_cpp_valid_ucn): Allow UCN version of '$'.
   7571 	* lex.c (lex_identifier): Add extra parameter to indicate if initial
   7572 	character was '$' or '\'.  Support identifiers with UCNs.
   7573 	(forms_identifier_p): Allow UCNs.
   7574 	(_cpp_lex_direct): Pass extra parameter to lex_identifier.
   7575 	(utf8_to_ucn): New.
   7576 	(cpp_spell_token): Add FORSTRING parameter.  Use it.
   7577 	(cpp_token_as_text): Update call to cpp_spell_token.
   7578 	(cpp_output_token): Write UCNs back out.
   7579 	(stringify_arg): Update call to cpp_spell_token.
   7580 	(paste_tokens): Likewise.
   7581 	(cpp_macro_definition): Likewise.
   7582 	* macro.c (stringify_arg): Likewise.
   7583 	(paste_tokens): Likewise.
   7584 	(cpp_macro_definition): Likewise.
   7585 	* include/cpplib.h: Add parameter to cpp_spell_token.
   7586 
   7587 2005-03-04  Jakub Jelinek  <jakub (a] redhat.com>
   7588 
   7589 	PR bootstrap/20282
   7590 	PR bootstrap/20305
   7591 	* macro.c (replace_args, cpp_get_token): Copy whole
   7592 	cpp_token_u instead of just cpp_string field from it.
   7593 
   7594 2005-02-28  Devang Patel  <dpatel (a] apple.com>
   7595 
   7596 	* directives.c (do_line): Save sysp early before line table is
   7597 	realloc'ed.
   7598 
   7599 2005-02-20  Zack Weinberg  <zack (a] codesourcery.com>
   7600 
   7601 	PR 18785
   7602 	* charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
   7603 	(cpp_host_to_exec_charset): New function.
   7604 	* include/cpplib.h: Declare cpp_host_to_exec_charset.
   7605 
   7606 2005-02-19  Devang Patel  <dpatel (a] apple.com>
   7607 
   7608 	* charset.c (_cpp_convert_input): Check '\r' before inserting
   7609 	'\n' at the end.
   7610 
   7611 2005-02-15  Eric Christopher  <echristo (a] redhat.com>
   7612 
   7613 	PR preprocessor/19077
   7614 	* macro.c (cpp_macro_definition): Move handling of whitespace
   7615 	to PREV_WHITE conditional. Remove overloading of len
   7616 	variable.
   7617 
   7618 2005-02-14  Kazu Hirata  <kazu (a] cs.umass.edu>
   7619 
   7620 	* directives.c, files.c, init.c, internal.h, macro.c, pch.c,
   7621 	traditional.c: Update copyright.
   7622 
   7623 2005-02-14  Paolo Bonzini  <bonzini (a] gnu.org>
   7624 
   7625 	PR bootstrap/19818
   7626 	* configure.ac: Check for declaration of basename and getopt.
   7627 	* config.in: Regenerate.
   7628 	* configure: Regenerate.
   7629 	* internal.h (ustrcspn): New.
   7630 	* macro.c (create_iso_definition): Fix allocation of memory.
   7631 	(padding_token): Add cast to remove const-ness.
   7632 	* pch.c (cpp_read_state): Use ustrcspn.
   7633 
   7634 2005-02-08  Mike Stump  <mrs (a] apple.com>
   7635 
   7636 	* files.c (pchf_adder): Remove.
   7637 	(struct pchf_adder_info): Likewise.
   7638 	(_cpp_save_file_entries): Write out all files so that #import works.
   7639 
   7640 2005-01-23  Joseph S. Myers  <joseph (a] codesourcery.com>
   7641 
   7642 	* configure: Regenerate.
   7643 
   7644 2005-01-11  Tobias Schlueter  <tobias.schlueter (a] physik.uni-muenchen.de>
   7645 
   7646 	* include/cpplib.h (c_lang): Fix comment to say cpp_create_reader.
   7647 
   7648 	* include/cpplib.h: Also update copyright years.
   7649 
   7650 2005-01-03  Geoffrey Keating  <geoffk (a] apple.com>
   7651 
   7652 	* files.c (_cpp_find_file): Add files found by search_path_exhausted
   7653 	to the list of all files.
   7654 
   7655 2005-01-01  Gabriel Dos Reis  <gdr (a] integrable-solutions.net>
   7656 
   7657 	* internal.h: Update references to Cpp lib filenames.
   7658 	* directives.c: Likewise.
   7659 	* init.c: Likewise.
   7660 	* macro.c: Likewise.
   7661 	* traditional.c: Likewise.
   7662 
   7663 2004-12-15  Eric Botcazou  <ebotcazou (a] libertysurf.fr>
   7664 
   7665 	PR preprocessor/15167
   7666 	* files.c (destroy_cpp_file): New function.
   7667 	(should_stack_file): Make a new file if the
   7668 	compared file is still stacked.
   7669 
   7670 2004-11-28  Nathanael Nerode  <neroden (a] gcc.gnu.org>
   7671 
   7672 	PR preprocessor/17610
   7673 	* directives.c (do_include_common): Error out if an empty filename
   7674 	is given for #include (or #include_next or #import).
   7675 
   7676 2004-11-27  Roger Sayle  <roger (a] eyesopen.com>
   7677 	    Zack Weinberg  <zack (a] codesourcery.com>
   7678 
   7679 	* internal.h: Replace all uses of uchar with unsigned char.
   7680 	* include/cpp-id-data.h: Likewise.  Guard typedef of uchar
   7681 	with !IN_GCC, so uchar is only defined whilst building libcpp.
   7682 
   7683 2004-11-24  Kelley Cook  <kcook (a] gcc.gnu.org>
   7684 
   7685 	* aclocal.m4: Regenerate.
   7686 
   7687 2004-11-24  Roger Sayle  <roger (a] eyesopen.com>
   7688 
   7689 	PR preprocessor/15824
   7690 	* configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h>
   7691 	directly, instead of the non-existant "system.h" and "ansidecl.h".
   7692 	* configure: Regenerate.
   7693 
   7694 2004-11-23  Daniel Jacobowitz  <dan (a] codesourcery.com>
   7695 	    Joseph Myers  <joseph (a] codesourcery.com>
   7696 
   7697 	* internal.h (struct lexer_state): Add in_deferred_pragma.
   7698 	* directives.c (struct pragma_entry): Add allow_expansion.
   7699 	(insert_pragma_entry): Take allow_expansion flag.
   7700 	(register_pragma): Likewise.
   7701 	(cpp_register_pragma): Likewise.
   7702 	(_cpp_init_internal_pragmas): Update calls to cpp_register_pragma.
   7703 	(do_pragma): Honor allow_expansion.
   7704 	(cpp_handle_deferred_pragma): Set in_deferred_pragma.
   7705 	* include/cpplib.h (cpp_register_pragma): Update prototype.
   7706 
   7707 2004-11-18  Daniel Jacobowitz  <dan (a] codesourcery.com>
   7708 	    Mark Mitchell  <mark (a] codesourcery.com>
   7709 
   7710 	* configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set
   7711 	need_64bit_hwint=yes.
   7712 	* configure: Regenerate.
   7713 
   7714 2004-11-09  Joseph S. Myers  <joseph (a] codesourcery.com>
   7715 
   7716 	* Makefile.in ($(PACKAGE).pot): New rule.  Depend on
   7717 	po/$(PACKAGE).pot.
   7718 	(po/$(PACKAGE).pot): Use ":" instead of "," in --keyword
   7719 	arguments.  Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2.
   7720 	Remove local srcdir path from generated file.
   7721 
   7722 2004-11-04  Zack Weinberg  <zack (a] codesourcery.com>
   7723 	    Gerald Pfeifer  <gerald (a] pfeifer.com>
   7724 
   7725 	* internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
   7726 	as well.
   7727 
   7728 2004-10-27  Zack Weinberg  <zack (a] codesourcery.com>
   7729 
   7730 	PR 18075
   7731 	* directives.c (do_pragma): Do not defer pragmas which are unknown.
   7732 	(cpp_handle_deferred_pragma): Add cast to silence warning.
   7733 
   7734 2004-10-14  Joseph S. Myers  <jsm (a] polyomino.org.uk>
   7735 
   7736 	* errors.c (_cpp_begin_message): Print "error: " for errors.
   7737 
   7738 2004-10-10  Andreas Jaeger  <aj (a] suse.de>
   7739 
   7740 	* makedepend.c: Include mkdeps.h for prototype of deps_add_vpath.
   7741 	* Makefile.in (makedepend.o): Add dependency on mkdeps.h.
   7742 
   7743 2004-10-08  Andrew Pinski  <pinskia (a] physics.uc.edu>
   7744 
   7745 	* pch.c (cpp_write_pch_state): Remove variable z as it is not
   7746 	used.
   7747 	(cpp_read_state): Remove unused variables, m, d and mac_count.
   7748 
   7749 2004-09-29  Per Bothner  <per (a] bothner.com>
   7750 
   7751 	* directives.c (cpp_handle_deferred_pragma):  Save, clear and restore
   7752 	cb.line_change.  Otherwise do_pragma will call the line_change
   7753 	call-back with a meaningless line number.
   7754 
   7755 2004-09-24  Zack Weinberg  <zack (a] codesourcery.com>
   7756 
   7757 	* configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to
   7758 	programs cluster. Use ACX_PROG_CC_WARNING_OPTS,
   7759 	ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS.
   7760 	* aclocal.m4, configure: Regenerate.
   7761 	* init.c: Include localedir.h.
   7762 	* Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables.
   7763 	(DEFS): Delete.
   7764 	(.c.o): Use $(ALL_CFLAGS).
   7765 	(localedir.h, localedir.hs): New rules.
   7766 	(clean): Use rm -rf to remove directories.
   7767 	(distclean): Also delete localedir.h and localedir.hs.
   7768 	(init.o): Update dependencies.
   7769 
   7770 2004-09-22  Kelley Cook  <kcook (a] gcc.gnu.org>
   7771 
   7772 	* Makefile.in (aclocal.m4): Update dependencies.
   7773 	* configure.ac (AC_CONFIG_MACRO_DIR): New.
   7774 	* aclocal.m4, configure: Regenerate.
   7775 
   7776 2004-09-17  Zack Weinberg  <zack (a] codesourcery.com>
   7777 
   7778 	* charset.c (_cpp_destroy_iconv, emit_numeric_escape)
   7779 	(_cpp_convert_input, _cpp_default_encoding): Add comments.
   7780 	Some other comments in this file also tweaked.
   7781 
   7782 	* directives.c (do_pragma): Save current buffer position
   7783 	before lexing the pragma keywords; don't call
   7784 	_cpp_backup_tokens in the defer_pragmas case.
   7785 
   7786 2004-09-15  Per Bothner  <per (a] bothner.com>
   7787 
   7788 	* include/line-map.h (line_map_start):  Add parameter names so
   7789 	preceding comment makes sense.
   7790 	(linemap_add):  Remove from comment mention of non-existing parameter.
   7791 
   7792 2004-09-09  Matt Austern  <austern (a] apple.com>
   7793 	    Zack Weinberg  <zack (a] codesourcery.com>
   7794 
   7795 	* include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
   7796 	prefixes throughout.  Add entry for PRAGMA.  Remove
   7797 	unnecessary "= 0" from EQ.
   7798 	(enum cpp_ttype): Adjust OP and TK definitions to restore
   7799 	prefixes, via token-paste.
   7800 	(CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
   7801 	Change from #defines to additional cpp_ttype enumerators.
   7802 	(struct cpp_options): Add defer_pragmas.
   7803 	(cpp_handle_deferred_pragma): Prototype new interface.
   7804 
   7805 	* internal.h (struct cpp_reader): Add directive_result.
   7806 	* directives.c (struct pragma_entry): Add is_internal field;
   7807 	give boolean fields type bool.
   7808 	(start_directive): Initialize pfile->directive_result.type.
   7809 	(_cpp_do__Pragma): Likewise.
   7810 	(run_directive): Do not crash if pfile->buffer->prev is NULL.
   7811 	(insert_pragma_entry): Add 'internal' argument; set new->is_internal
   7812 	from it.
   7813 	(register_pragma): New static function, bulk of former
   7814 	cpp_register_pragma here; add 'internal' argument, pass along
   7815 	to insert_pragma_entry.
   7816 	(cpp_register_pragma): Now a wrapper around register_pragma which
   7817 	always passes false for 'internal' argument.
   7818 	(_cpp_init_internal_pragmas): Call register_pragma directly, passing
   7819 	true for 'internal'.
   7820 	(do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
   7821 	an internal pragma, save text till the end of the line as a CPP_PRAGMA
   7822 	token instead of executing the pragma.
   7823 	(cpp_handle_deferred_pragma): New interface.
   7824 	* lex.c (token_spellings): Adjust OP and TK definitions to
   7825 	match changes to cpplib.h.
   7826 	(_cpp_lex_token): Check for a directive-result token and
   7827 	return it if present.
   7828 	(cpp_token_val_index): Handle CPP_PRAGMA.
   7829 	* macro.c (cpp_builtin_macro_text): Correct comment.
   7830 	(builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
   7831 
   7832 2004-09-06  Serge Belyshev  <belyshev (a] lubercy.com>
   7833 
   7834 	PR preprocessor/14699
   7835 	* symtab.c (ht_dump_statistics): Change type of sum_of_squares
   7836 	from size_t to double.
   7837 
   7838 2004-08-28  Andreas Schwab  <schwab (a] suse.de>
   7839 	    Andreas Jaeger <aj (a] suse.de>
   7840 
   7841 	* configure.ac: Set PACKAGE correctly.
   7842 	* configure: Regenerated.
   7843 
   7844 2004-08-25  Paolo Bonzini  <bonzini (a] gnu.org>
   7845 
   7846 	* Makefile.in: Add back top_builddir.
   7847 
   7848 2004-08-25  Paolo Bonzini  <bonzini (a] gnu.org>
   7849 
   7850 	* configure.ac: Replace Automake macro invocations
   7851 	with manual Autoconf checks and substitutions.
   7852 	* configure: Regenerate.
   7853 	* aclocal.m4: Regenerate.
   7854 	* config.in: Regenerate.
   7855 	* Makefile.am: Removed.
   7856 	* Makefile.in: Heavy simplification and reorganization.
   7857 
   7858 2004-08-09  Mark Mitchell  <mark (a] codesourcery.com>
   7859 
   7860 	* configure.ac (arm*-*-eabi*): New target.
   7861 	(arm*-*-symbianelf*): Likewise.
   7862 	* configure: Regenerated.
   7863 
   7864 2004-07-24  Bernardo Innocenti  <bernie (a] develer.com>
   7865 
   7866 	* internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove.
   7867 	* directives.c: Use XNEW-family macros from libiberty.
   7868 	* lex.c: Likewise.
   7869 	* macro.c: Likewise.
   7870 	* cpplib.h (cpp_deps_style): Export enum with name.
   7871 
   7872 2004-07-23  Matthias Klose  <doko (a] debian.org>
   7873 
   7874 	* init.c (init_library): Use PACKAGE for the text domain.
   7875 
   7876 2004-07-16  Andris Pavenis  <pavenis (a] latnet.lv>
   7877 
   7878 	PR preprocessor/16366
   7879 	* internal.h (struct cpp_reader): New field dir_hash.
   7880 	* files.c (make_cpp_dir): Use dir_hash, not file_hash.
   7881 	(_cpp_init_files, _cpp_cleanup_files): Update for new field.
   7882 
   7883 2004-07-04  Neil Booth  <neil (a] duron.akihabara.co.uk>
   7884 
   7885 	PR preprocessor/16192
   7886 	PR preprocessor/15913
   7887 	PR preprocessor/15572
   7888 	* expr.c (_cpp_parse_expr): Handle remaining cases where an
   7889 	expression is missing.
   7890 	* init.c (post_options): Traditional cpp doesn't do // comments.
   7891 
   7892 2004-06-30  Per Bothner  <per (a] bothner.com>
   7893 
   7894 	* include/line-map.h (fileline):  Remove old typedef.
   7895 	* internal.h (struct cpp_reader):  Use source_location typedef instead.
   7896 
   7897 2004-06-26  Zack Weinberg  <zack (a] codesourcery.com>
   7898 
   7899 	Partially revert patch of 2004-06-05.
   7900 	* files.c (search_cache): Remove pfile argument.  Don't check
   7901 	for file that would be found by "" or <> search here...
   7902 	(_cpp_find_file): ...do it here, before calling find_file_in_dir.
   7903 	Do not apply directory-of-current-file correction to files
   7904 	found by this check.  Rearrange code slightly.
   7905 
   7906 2004-06-21  Geoffrey Keating  <geoffk (a] apple.com>
   7907 
   7908 	* files.c (should_stack_file): Correct swapped parameters to call
   7909 	to cb.read_pch.
   7910 	* pch.c (cpp_valid_state): Handle -fpreprocessed.
   7911 
   7912 2004-06-15  Paolo Bonzini  <bonzini (a] gnu.org>
   7913 
   7914 	* Makefile.in: Regenerate with automake 1.8.5.
   7915 	* aclocal.m4: Likewise.
   7916 	* configure: Regenerate.
   7917 
   7918 2004-06-11  Zack Weinberg  <zack (a] codesourcery.com>
   7919 
   7920 	* configure.ac: Don't invoke ACX_HEADER_STDBOOL.
   7921 	* configure, config.in: Regenerate.
   7922 	* system.h: Unconditionally define bool as unsigned char,
   7923 	BOOL_BITFIELD as unsigned int.
   7924 	* .cvsignore: New file.
   7925 
   7926 2004-06-09  Geoffrey Keating  <geoffk (a] apple.com>
   7927 
   7928 	* traditional.c (push_replacement_text): Set macro->traditional.
   7929 	(save_replacement_text): Likewise.
   7930 	* pch.c (cpp_write_pch_state): Don't write list of defined macros.
   7931 	(struct save_macro_item): Delete.
   7932 	(struct save_macro_data): Use a character array not the previous
   7933 	structured format.
   7934 	(save_macros): Save macro as text not as internal structures.
   7935 	(cpp_prepare_state): Update for changes to save_macro_data.
   7936 	(cpp_read_state): Don't read macros defined in PCH.  Restore
   7937 	-D macros as text.
   7938 	* macro.c (create_iso_definition): Honour alloc_subobject.
   7939 	Clear traditional flag.
   7940 	(_cpp_create_definition): Honour alloc_subobject.
   7941 	* lex.c (cpp_token_val_index): New.
   7942 	* internal.h: Include cpp-id-data.h.
   7943 	(uchar): Move definition to cpp-id-data.h.
   7944 	(U): Likewise.
   7945 	(cpp_macro): Likewise.
   7946 	* directives.c (struct answer): Move to cpp-id-data.h.
   7947 	(do_assert): Honour alloc_subobject.
   7948 
   7949 	* include/symtab.h (struct ht): Add field 'alloc_subobject'.
   7950 	* include/cpplib.h (struct cpp_string): Add GTY marker.
   7951 	(enum cpp_token_fld_kind): New.
   7952 	(struct cpp_token): Add GTY markers.
   7953 	(cpp_token_val_index): Prototype.
   7954 	(CPP_HASHNODE_VALUE_IDX): New.
   7955 	(struct cpp_hashnode): Don't skip fields of 'value' when marking.
   7956 	* include/cpp-id-data.h: New file.
   7957 
   7958 2004-06-09  Paolo Bonzini  <bonzini (a] gnu.org>
   7959 
   7960 	* Makefile.am (all-local): New.
   7961 	* Makefile.in: Regenerate.
   7962 
   7963 2004-06-06  Roger Sayle  <roger (a] eyesopen.com>
   7964 
   7965 	* Makefile.am (LIBICONV): Declare.
   7966 	(makedepend_LDADD): Use LIBICONV.
   7967 	* Makefile.in: Regenerate.
   7968 
   7969 2004-06-05  Andrew Pinski  <pinskia (a] physics.uc.edu>
   7970 
   7971 	* Makefile.am (LIBINTL): Declare
   7972 	(makedepend_LDADD): Use LIBINTL.
   7973 	* Makefile.in: Regenerate.
   7974 
   7975 2004-06-05  Zack Weinberg  <zack (a] codesourcery.com>
   7976 
   7977 	* Makefile.am: Add makedepend.
   7978 	* Makefile.in, aclocal.m4: Regenerate.
   7979 	* charset.c: Insert a space to avoid a warning.
   7980 	* directives.c: Include mkdeps.h.
   7981 	(_cpp_handle_directive): Reenable macro expander if appropriate.
   7982 	(undefine_macros): Inline body of _cpp_free_definition for speed.
   7983 	Do not call undef callback or _cpp_warn_if_unused_macro.
   7984 	(cpp_get_deps): New interface.
   7985 	* files.c (search_cache): Add pfile argument.  Check for file
   7986 	that would be found by "" or <> search here...
   7987 	(_cpp_find_file): ...not here.  Correct recorded start_dir of
   7988 	files found by directory-of-current-file search that would be
   7989 	found by "" or <> search.
   7990 	* init.c (cpp_add_dependency_target): Delete.
   7991 	* internal.h (struct lexer_state): Add discarding_output flag.
   7992 	* lex.c (lex_identifier): Compute hash function while scanning.
   7993 	* macro.c (cpp_scan_nooutput): Disable macro expansion outside
   7994 	directives.
   7995 	* makedepend.c: New file.
   7996 	* mkdeps.c (struct deps): Add vpath vector.
   7997 	(apply_vpath, deps_add_vpath): New function.
   7998 	(deps_free): Free vpath vector.
   7999 	(deps_add_dep, deps_add_target): Use apply_vpath.
   8000 	* symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH.
   8001 	(ht_lookup_with_hash): New function.
   8002 	* cpplib.h, mkdeps.h: Update prototypes.
   8003 	* symtab.h: Update prototypes.
   8004 	(HT_HASHSTEP, HT_FINISH): New macros.
   8005 
   8006 2004-05-29  Geoffrey Keating  <geoffk (a] apple.com>
   8007 
   8008 	* symtab.c (ht_create): Set entries_owned.
   8009 	(ht_destroy): Honour entries_owned.
   8010 	(ht_expand): Likewise.
   8011 	(ht_load): New.
   8012 	* include/symtab.h (struct ht): New field 'entries_owned'
   8013 	(ht_load): New prototype.
   8014 
   8015 2004-05-26  Paolo Bonzini  <bonzini (a] gnu.org>
   8016 
   8017 	PR bootstrap/15651
   8018 	* configure.ac: Fix m4 quoting when picking
   8019 	the size of HOST_WIDE_INT.
   8020 	* configure: Regenerate.
   8021 
   8022 2004-05-25  Paolo Bonzini  <bonzini (a] gnu.org>
   8023 
   8024 	* Makefile.am: the correct directory for
   8025 	gettext include files is given by @INCINTL@.
   8026 	* Makefile.in: Regenerate.
   8027 
   8028 2004-05-24  Paolo Bonzini  <bonzini (a] gnu.org>
   8029 
   8030 	* system.h [!ENABLE_NLS]: dgettext takes two
   8031 	parameters.
   8032 
   8033 2004-05-23  Paolo Bonzini  <bonzini (a] gnu.org>
   8034 
   8035 	Moved libcpp from the gcc subdirectory to the toplevel.
   8036 	* Makefile.am: New file.
   8037 	* Makefile.in: Regenerate.
   8038 	* configure.ac: New file.
   8039 	* configure: Regenerate.
   8040 	* config.in: Regenerate.
   8041 	* charset.c: Moved from gcc/cppcharset.c.  Add note about
   8042 	brokenness of input charset detection.  Adjust for change
   8043 	in name of cppucnid.h.
   8044 	* errors.c: Moved from gcc/cpperror.c.  Do not include intl.h.
   8045 	* expr.c: Moved from gcc/cppexp.c.
   8046 	* files.c: Moved from gcc/cppfiles.c.  Do not include intl.h.
   8047 	Remove #define of O_BINARY, it is in system.h.
   8048 	* identifiers.c: Moved from gcc/cpphash.c.
   8049 	* internal.h: Moved from gcc/cpphash.h.  Change header
   8050 	guard name.  All other files adjusted to match name change.
   8051 	* init.c: Moved from gcc/cppinit.c.
   8052 	(init_library) [ENABLE_NLS]: Call bindtextdomain.
   8053 	* lex.c: Moved from gcc/cpplex.c.
   8054 	* directives.c: Moved from gcc/cpplib.c.
   8055 	* macro.c: Moved from gcc/cppmacro.c.
   8056 	* pch.c: Moved from gcc/cpppch.c.  Do not include intl.h.
   8057 	* traditional.c: Moved from gcc/cpptrad.c.
   8058 	* ucnid.h: Moved from gcc/cppucnid.h.  Change header
   8059 	guard name.
   8060 	* ucnid.pl: Moved from gcc/cppucnid.pl.
   8061 	* ucnid.tab: Moved from gcc/cppucnid.tab.  Change header
   8062 	guard name.
   8063 	* symtab.c: Moved from gcc/hashtable.c.
   8064 	* line-map.c: Moved from gcc.  Do not include intl.h.
   8065 	* mkdeps.c: Moved from gcc.
   8066 	* system.h: New file.
   8067 	* include/cpplib.h: Moved from gcc.  Change header guard name.
   8068 	* include/line-map.h: Moved from gcc.  Change header guard name.
   8069 	* include/mkdeps.h: Moved from gcc.  Change header guard name.
   8070 	* include/symtab.h: Moved from gcc/hashtable.h.  Change header
   8071 	guard name.
   8072 
   8074 Copyright (C) 2004-2024 Free Software Foundation, Inc.
   8075 
   8076 Copying and distribution of this file, with or without modification,
   8077 are permitted in any medium without royalty provided the copyright
   8078 notice and this notice are preserved.
   8079