+2012-10-23 Ian Bolton <ian.bolton@arm.com>
+ Jim MacArthur <jim.macarthur@arm.com>
+ Marcus Shawcroft <marcus.shawcroft@arm.com>
+ Nigel Stephens <nigel.stephens@arm.com>
+ Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+ Richard Earnshaw <rearnsha@arm.com>
+ Sofiane Naci <sofiane.naci@arm.com>
+ Stephen Thomas <stephen.thomas@arm.com>
+ Tejas Belagod <tejas.belagod@arm.com>
+ Yufeng Zhang <yufeng.zhang@arm.com>
+
+ * configure.ac: Enable AArch64.
+ * configure: Regenerate.
+
+2012-10-23 Joseph Myers <joseph@codesourcery.com>
+
+ * files.c (struct _cpp_file): Add implicit_preinclude.
+ (pch_open_file): Allow a previously opened implicitly included
+ file.
+ (_cpp_find_file): Add implicit_preinclude argument. Free file and
+ do not call open_file_failed if implicit_preinclude. Store
+ implicit_preinclude value.
+ (_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date):
+ Update calls to _cpp_find_file.
+ (_cpp_stack_include): Handle IT_DEFAULT.
+ (cpp_push_default_include): New.
+ * include/cpplib.h (cpp_push_default_include): Declare.
+ * init.c (cpp_read_main_file): Update call to _cpp_find_file.
+ * internal.h (enum include_type): Add IT_DEFAULT.
+ (_cpp_find_file): Update prototype.
+
+2012-10-15 Tobias Burnus <burnus@net-b.de>
+
+ * files.c (read_file_guts, _cpp_save_file_entries): Free memory
+ before returning.
+ * lex.c (warn_about_normalization): Ditto.
+ * mkdeps.c (deps_save): Ditto.
+ * pch.c (cpp_valid_state): Ditto.
+
+2012-10-04 Florian Weimer <fweimer@redhat.com>
+
+ * directives.c (do_pragma_warning_or_error): New.
+ (do_pragma_warning): New.
+ (do_pragma_error): New.
+ (_cpp_init_internal_pragmas): Register new pragmas.
+
+2012-09-25 Dehao Chen <dehao@google.com>
+
+ PR middle-end/54704
+ * line-map.c (location_adhoc_data_hash): Fix the hash function.
+
+2012-09-25 Dehao Chen <dehao@google.com>
+
+ PR middle-end/54645
+ * include/line-map.h (location_adhoc_data): Move location_adhoc_data
+ into GC.
+ (location_adhoc_data_map): Likewise.
+ (line_maps): Likewise.
+ (rebuild_location_adhoc_htab): New Function.
+ * line-map.c (+rebuild_location_adhoc_htab): new Funcion.
+ (get_combined_adhoc_loc): Move location_adhoc_data into GC.
+ (location_adhoc_data_fini): Likewise.
+ (linemap_init): Likewise.
+ (location_adhoc_data_init): Remove Function.
+
+2012-09-19 Dehao Chen <dehao@google.com>
+
+ * include/line-map.h (MAX_SOURCE_LOCATION): New value.
+ (location_adhoc_data_fini): New.
+ (get_combined_adhoc_loc): New.
+ (get_data_from_adhoc_loc): New.
+ (get_location_from_adhoc_loc): New.
+ (location_adhoc_data_map): New.
+ (COMBINE_LOCATION_DATA): New.
+ (IS_ADHOC_LOC): New.
+ (expanded_location): New field.
+ (line_maps): New field.
+ * line-map.c (location_adhoc_data): New.
+ (location_adhoc_data_hash): New.
+ (location_adhoc_data_eq): New.
+ (location_adhoc_data_update): New.
+ (get_combined_adhoc_loc): New.
+ (get_data_from_adhoc_loc): New.
+ (get_location_from_adhoc_loc): New.
+ (location_adhoc_data_init): New.
+ (location_adhoc_data_fini): New.
+ (linemap_init): Initialize location_adhoc_data.
+ (linemap_lookup): Change to use new location.
+ (linemap_ordinary_map_lookup): Likewise.
+ (linemap_macro_map_lookup): Likewise.
+ (linemap_macro_map_loc_to_def_point): Likewise.
+ (linemap_macro_map_loc_unwind_toward_spel): Likewise.
+ (linemap_get_expansion_line): Likewise.
+ (linemap_get_expansion_filename): Likewise.
+ (linemap_location_in_system_header_p): Likewise.
+ (linemap_location_from_macro_expansion_p): Likewise.
+ (linemap_macro_loc_to_spelling_point): Likewise.
+ (linemap_macro_loc_to_def_point): Likewise.
+ (linemap_macro_loc_to_exp_point): Likewise.
+ (linemap_resolve_location): Likewise.
+ (linemap_unwind_toward_expansion): Likewise.
+ (linemap_unwind_to_first_non_reserved_loc): Likewise.
+ (linemap_expand_location): Likewise.
+ (linemap_dump_location): Likewise.
+ (linemap_line_start): Likewise.
+
+2012-05-25 Dodji Seketeli <dodji@redhat.com>
+
+ PR preprocessor/53469
+ * directives.c (do_pragma): Use the virtual location for the
+ pragma token, instead of its spelling location.
+
+2012-08-14 Diego Novillo <dnovillo@google.com>
+
+ Merge from cxx-conversion branch. Configury.
+
+ * Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
+ * configure.ac: Likewise.
+ * configure: Regenerate.
+
+2012-08-14 Lawrence Crowl <crowl@google.com>
+
+ Merge from cxx-conversion branch. New C++ hash table.
+
+ * include/symtab.h (typedef struct ht hash_table): Change the typedef
+ name to cpp_hash_table. Update all users of the typedef.
+
+2012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * include/line-map.h (line_map_macro): Use the "atomic" GTY option
+ for the macro_locations field.
+
+2011-06-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
+ __builtin_ia32_pcmpestri128 instead of asm.
+
+2012-06-04 Dimitrios Apostolou <jimis@gmx.net>
+
+ * line-map.c (linemap_enter_macro): Don't zero max_column_hint in
+ every macro. This improves performance by reducing the number of
+ reallocations when track-macro-expansion is on.
+
+2012-06-04 Dodji Seketeli <dodji@redhat.com>
+
+ PR preprocessor/53463
+ * line-map.c (linemap_location_in_system_header_p): For built-in
+ macro tokens, check the first expansion point location that is not
+ for a token coming from a built-in macro.
+
+2012-05-29 Joseph Myers <joseph@codesourcery.com>
+
+ * directives.c: Fix typos.
+ * include/line-map.h: Fix typos.
+ * line-map.c: Fix typos.
+ * macro.c: Fix typos.
+
+2012-05-25 Dodji Seketeli <dodji@redhat.com>
+
+ PR bootstrap/53459
+ * lex.c (search_line_fast): Avoid unused local typedefs to simulate
+ a static assertion.
+
+2012-05-29 Dodji Seketeli <dodji@redhat.com>
+
+ PR preprocessor/53229
+ * internal.h (cpp_reader::set_invocation_location): Remove.
+ (cpp_reader::about_to_expand_macro_p): New member flag.
+ * directives.c (do_pragma): Remove Kludge as
+ pfile->set_invocation_location is no more.
+ * macro.c (cpp_get_token_1): Do away with the use of
+ cpp_reader::set_invocation_location. Just collect the macro
+ expansion point when we are about to expand the top-most macro.
+ Do not override cpp_reader::about_to_expand_macro_p.
+ This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
+ properly handle locations of expansion points.
+ (cpp_get_token_with_location): Adjust, as
+ cpp_reader::set_invocation_location is no more.
+ (paste_tokens): Take a virtual location parameter for
+ the LHS of the pasting operator. Use it in diagnostics. Update
+ comments.
+ (paste_all_tokens): Tighten the assert. Propagate the location of
+ the expansion point when no virtual locations are available.
+ Pass the virtual location to paste_tokens.
+ (in_macro_expansion_p): New static function.
+ (enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
+ flag until we really start expanding the macro.
+
+2012-05-16 Dodji Seketeli <dodji@redhat.com>
+
+ PR preprocessor/7263
+ * include/cpplib.h (cpp_classify_number): Take a location
+ parameter.
+ * expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic
+ macros that take a location parameter.
+ (cpp_classify_number): Take a (virtual) location parameter. Use
+ it for diagnostics. Adjust comments.
+ (eval_token): Take a location parameter. Pass it to
+ cpp_classify_number and to diagnostic routines.
+ (_cpp_parse_expr): Use virtual locations of tokens when parsing
+ expressions. Pass a virtual location to eval_token and to
+ diagnostic routines.
+
+2012-05-10 Tristan Gingold <gingold@adacore.com>
+
+ * expr.c (interpret_float_suffix): Add a guard.
+
+2012-05-02 Dodji Seketeli <dodji@redhat.com>
+
+ Properly initialize cpp_context in destringize_and_run
+ * directives.c (destringize_and_run): Properly initialize the new
+ context.
+ * macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
+ the initial base context, which has the same life time as the
+ current instance of cpp_file.
+
+2012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
+ Dodji Seketeli <dodji@seketeli.org>
+
+ PR c++/52974
+ * libcpp/files.c (maybe_shorter_path): New.
+ (find_file_in_dir): Use it.
+
+2012-04-30 Dodji Seketeli <dodji@redhat.com>
+
+ Switch -ftrack-macro-expansion=2 on by default.
+ * init.c (cpp_create_reader): Switch -ftrack-macro-expansion=2 on
+ by default. Add comments.
+
+ Strip "<built-in>" loc from displayed expansion context
+ * include/line-map.h (linemap_unwind_toward_expansion): Fix typo
+ in comment.
+ (linemap_unwind_to_first_non_reserved_loc): Declare new function.
+ * line-map.c (linemap_unwind_to_first_non_reserved_loc): Define
+ new function.
+
+ Fix expansion point loc for macro-like tokens
+ * macro.c (macro_of_context): New static function.
+ (_cpp_push_token_context, push_extended_tokens_context): If the
+ macro argument is NULL, it means we are continuing the expansion
+ of the current macro, if any. Update comments.
+ (_cpp_pop_context): Re-enable expansion of the macro only when we
+ are really out of the context of the current expansion.
+
+ Fix token pasting with -ftrack-macro-expansion
+ * macro.c (paste_all_tokens): Put the token resulting from pasting
+ into an extended token context with -ftrack-macro-location is in
+ effect.
+
+ Fix cpp_sys_macro_p with -ftrack-macro-expansion
+ * macro.c (cpp_sys_macro_p): Support -ftrack-macro-expansion.
+
+2012-04-29 Dodji Seketeli <dodji@redhat.com>
+
+ * lex.c (lex_raw_string): Change C++ style comments into C style
+ comments.
+ (lex_string): Likewise.
+
+2012-04-27 Ollie Wild <aaw@google.com>
+
+ * include/cpplib.h (struct cpp_options): Add new field,
+ warn_literal_suffix.
+ (CPP_W_LITERAL_SUFFIX): New enum.
+ * init.c (cpp_create_reader): Default initialization of
+ warn_literal_suffix.
+ * lex.c (lex_raw_string): Treat user-defined literals which don't
+ begin with '_' as separate tokens and produce a warning.
+ (lex_string): Ditto.
+
+2012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * line-map.c (linemap_resolve_location): Synchronize comments with
+ those in line-map.h.
+ * include/line-map.h (linemap_resolve_location): Fix spelling in
+ comment.
+
+2012-03-22 Richard Earnshaw <rearnsha@arm.com>
+
+ * lex.c (search_line_fast): Provide Neon-optimized version for ARM.
+
+2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * lex.c: Remove Solaris 8 reference.
+
+2012-02-14 Walter Lee <walt@tilera.com>
+
+ * configure.ac: Require 64-bit hwint for tilegx and tilepro.
+ * configure: Regenerate.
+
+2012-01-09 Richard Guenther <rguenther@suse.de>
+
+ * macro.c (_cpp_builtin_macro_text): Remove unused variable map.
+
+2012-01-09 Gary Funck <gary@intrepid.com>
+
+ PR preprocessor/33919
+ * files.c (_cpp_get_file_name): New. Implement file name
+ access function.
+ * internal.h (_cpp_get_file_name): New prototype.
+ * macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
+ to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
+
+2012-01-03 Olivier Hainque <hainque@adacore.com>
+
+ * system.h: Prior to #define, #undef fopen and freopen unconditionally.
+
+2011-12-20 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
+ (CLK_STDC1X): Change to CLK_STDC11.
+ * init.c (lang_defaults): Update comments.
+ (cpp_init_builtins): Update language tests. Use 201112L for C11
+ __STDC_VERSION__.
+
+2011-12-20 Andreas Schwab <schwab@linux-m68k.org>
+
+ * configure: Regenerate.
+
+2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
+
+ * configure: Regenerate.
+
+2011-12-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/50237
+ * internal.h (_cpp_init_lexer): New prototype.
+ * init.c (init_library): Call it.
+ * lex.c (init_vectorized_lexer): Remove constructor attribute,
+ add inline keyword.
+ (HAVE_init_vectorized_lexer): Define.
+ (_cpp_init_lexer): New function.
+
+2011-12-03 Dodji Seketeli <dodji@redhat.com>
+
+ * macro.c (tokens_buff_remove_last_token)
+ (tokens_buff_put_token_to): Add an 'inline' function specifier to
+ the prototype.
+
+2011-11-22 Diego Novillo <dnovillo@google.com>
+
+ * include/line-map.h (linemap_dump): Declare.
+ (line_table_dump): Declare.
+ * line-map.c (linemap_dump): New.
+ (line_table_dump): New.
+
+2011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/50958
+ * expr.c (cpp_userdef_char_remove_type): Fix typo.
+
+2011-11-03 Michael Matz <matz@suse.de>
+
+ PR bootstrap/50857
+ * configure.ac: Check for -fno-exceptions -fno-rtti.
+ * configure: Regenerate.
+ * Makefile.in (NOEXCEPTION_FLAGS): New flag.
+ (ALL_CXXFLAGS): Use it.
+
+2011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * internal.h (uxstrdup, ustrchr): Return const unsigned char *.
+
+2011-11-02 Jason Merrill <jason@redhat.com>
+
+ PR c++/50810
+ * configure.ac: Add -Wno-narrowing to warning options.
+
+2011-10-31 Jason Merrill <jason@redhat.com>
+
+ PR libstdc++/1773
+ * init.c (cpp_init_builtins): Set __cplusplus for C++11.
+
+ PR c++/50920
+ * include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
+ CLK_GNUCXX0X to CLK_GNUCXX11.
+
+2011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement C++11 user-defined literals.
+ * expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
+ cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
+ cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
+ cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
+ (cpp_classify_number): Classify unrecognized tokens as user-defined
+ literals.
+ * include/cpplib.h: Add new tokens for user-defined literals.
+ * init.c: Add new preprocessor flag (cxx11).
+ * lex.c: (lex_string, lex_raw_string): Handle user-defined literals
+ including concatenation and promotion with suffixes.
+
+2011-10-24 Dodji Seketeli <dodji@redhat.com>
+
+ * line-map.c (linemap_macro_map_lookup): Fix logic.
+
+2011-10-24 Dodji Seketeli <dodji@redhat.com>
+
+ * include/line-map.h (linemap_expand_location): Take a line table
+ parameter. Update comment.
+ (linemap_resolve_location): Update comment.
+ (linemap_expand_location_full): Remove.
+ * line-map.c (linemap_resolve_location): Handle reserved
+ locations; return a NULL map in those cases.
+ (linemap_expand_location): If location is reserved, return a
+ zeroed expanded location. Update comment. Take a line table to
+ assert that the function takes non-virtual locations only.
+ (linemap_expand_location_full): remove.
+ (linemap_dump_location): Handle the fact that
+ linemap_resolve_location can return NULL line maps when the
+ location resolves to a reserved location.
+
+ * line-map.c (linemap_macro_map_lookup): Fix logic.
+
+2011-10-22 Dodji Seketeli <dodji@redhat.com>
+
+ PR bootstrap/50778
+ * include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
+ context to act upon.
+ * lex.c (_cpp_remaining_tokens_num_in_context): Likewise. Update
+ comment.
+ (cpp_token_from_context_at): Likewise.
+ (cpp_peek_token): Use the context to peek tokens from.
+
+2011-10-20 Dodji Seketeli <dodji@redhat.com>
+
+ PR bootstrap/50801
+ * lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
+ number of tokens.
+
+2011-10-18 Dodji Seketeli <dodji@redhat.com>
+
+ PR bootstrap/50760
+ * include/line-map.h (struct linemap_stats): Change the type of
+ the members from size_t to long.
+ * macro.c (macro_arg_token_iter_init): Unconditionally initialize
+ iter->location_ptr.
+
+2011-10-17 Dodji Seketeli <dodji@redhat.com>
+
+ * line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
+ variable without using it if ENABLE_CHECKING is not defined. Mark
+ the LOCATION parameter as being unused.
+
+2011-10-15 Tom Tromey <tromey@redhat.com>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * include/line-map.h (struct line_maps::alloced_size_for_request):
+ New member.
+ * line-map.c (new_linemap): Use set->alloced_size_for_request to
+ get the actual allocated size of line maps.
+
+2011-10-15 Tom Tromey <tromey@redhat.com>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * line-map.h (struct linemap_stats): Declare new struct.
+ (linemap_get_statistics): Declare ...
+ * line-map.c (linemap_get_statistics): ... new function.
+ * macro.c (num_expanded_macros_counter, num_macro_tokens_counter):
+ Declare new counters.
+ (enter_macro_context, replace_args): Update
+ num_macro_tokens_counter.
+ (cpp_get_token_1): Update num_expanded_macros_counter.
+
+2011-10-15 Tom Tromey <tromey@redhat.com>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * include/cpplib.h (struct cpp_options)<debug>: New struct member.
+ * include/line-map.h (linemap_dump_location): Declare ...
+ * line-map.c (linemap_dump_location): ... new function.
+
+2011-10-15 Tom Tromey <tromey@redhat.com>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * include/cpplib.h (struct cpp_options)<track_macro_expansion>:
+ New option.
+ * internal.h (struct macro_context): New struct.
+ (enum context_tokens_kind): New enum.
+ (struct cpp_context)<tokens_kind>: New member of type enum
+ context_tokens_kind.
+ (struct cpp_context)<macro>: Remove this. Replace it with an enum
+ of macro and macro_context.
+ (struct cpp_context)<direct_p>: Remove.
+ (_cpp_remaining_tokens_num_in_context): Declare new function.
+ * directives.c (destringize_and_run): Adjust.
+ * lex.c (_cpp_remaining_tokens_num_in_context)
+ (_cpp_token_from_context_at): Define new functions
+ (cpp_peek_token): Use them.
+ * init.c (cpp_create_reader): Initialize the base context to zero.
+ (_cpp_token_from_context_at): Define new static function.
+ (cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and
+ _cpp_token_from_context_at.
+ * macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New
+ members.
+ (enum macro_arg_token_kind): New enum.
+ (struct macro_arg_token_iter): New struct.
+ (maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context)
+ (alloc_expanded_arg_mem, ensure_expanded_arg_room)
+ (delete_macro_args, set_arg_token, get_arg_token_location)
+ (arg_token_ptr_at, macro_arg_token_iter_init)
+ (macro_arg_token_iter_get_token)
+ (macro_arg_token_iter_get_location, macro_arg_token_iter_forward)
+ (expanded_token_index, tokens_buff_new, tokens_buff_count)
+ (tokens_buff_last_token_ptr, tokens_buff_put_token_to)
+ (tokens_buff_add_token, tokens_buff_remove_last_token)
+ (reached_end_of_context, consume_next_token_from_context): New
+ static functions.
+ (cpp_get_token_1): New static function. Split and extended from
+ cpp_get_token. Use reached_end_of_context and
+ consume_next_token_from_context. Unify its return point. Move
+ the location tweaking from cpp_get_token_with_location in here.
+ (cpp_get_token): Use cpp_get_token_1
+ (stringify_arg): Use the new arg_token_at.
+ (paste_all_tokens): Support tokens coming from extended tokens
+ contexts.
+ (collect_args): Return the number of collected arguments, by
+ parameter. Store virtual locations of tokens that constitute the
+ collected args.
+ (funlike_invocation_p): Return the number of collected arguments,
+ by parameter.
+ (enter_macro_context): Add a parameter for macro expansion point.
+ Pass it to replace_args and to the "used" cpp callback. Get the
+ number of function-like macro arguments from funlike_invocation_p,
+ pass it to the new delete_macro_args to free the memory used by
+ macro args. When -ftrack-macro-expansion is in effect, for macros
+ that have no arguments, create a macro map for the macro expansion
+ and use it to allocate proper virtual locations for tokens
+ resulting from the expansion. Push an extended tokens context
+ containing the tokens resulting from macro expansion and their
+ virtual locations.
+ (replace_args): Rename the different variables named 'count' into
+ variables with more meaningful names. Create a macro map;
+ allocate virtual locations of tokens resulting from this
+ expansion. Use macro_arg_token_iter to iterate over tokens of a
+ given macro. Handle the case of the argument of
+ -ftrack-macro-expansion being < 2. Don't free macro arguments
+ memory resulting from expand_arg here, as these are freed by the
+ caller of replace_arg using delete_macro_args now. Push extended
+ token context.
+ (next_context, push_ptoken_context, _cpp_push_token_context)
+ (_cpp_push_text_context): Properly initialize the context.
+ (expand_arg): Use the new alloc_expanded_arg_mem,
+ push_extended_tokens_context, cpp_get_token_1, and set_arg_token.
+ (_cpp_pop_context): Really free the memory held by the context.
+ Handle freeing memory used by extended tokens contexts.
+ (cpp_get_token_with_location): Use cpp_get_token_1.
+ (cpp_sys_macro_p): Adjust.
+ (_cpp_backup_tokens): Support the new kinds of token contexts.
+ * traditional.c (recursive_macro): Adjust.
+
+2011-10-15 Tom Tromey <tromey@redhat>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum
+ member.
+ (MAX_SOURCE_LOCATION): New constant.
+ (struct line_map_ordinary, struct line_map_macro): New structs.
+ (struct line_map): Turn this into a union of the two above. Add
+ comments.
+ (struct maps_info): New struct.
+ (struct line_maps)<info_ordinary, info_macro>: Two new fields.
+ These now carry the map information that was previously scattered
+ in struct line_maps.
+ (struct map_info::allocated): Fix comment.
+ (MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME)
+ (ORDINARY_MAP_STARTING_LINE_NUMBER)
+ (ORDINARY_MAP_INCLUDER_FILE_INDEX)
+ (ORDINARY_MAP_IN_SYSTEM_HEADER_P)
+ (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO)
+ (MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS)
+ (MACRO_MAP_EXPANSION_POINT_LOCATION)
+ (LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO)
+ (LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE)
+ (LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP)
+ (LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED)
+ (LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE)
+ (LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP)
+ (LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED)
+ (LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE)
+ (LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP)
+ (LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT)
+ (LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map
+ information.
+ (linemap_check_ordinary, linemap_assert)
+ (linemap_location_before_p): New macros.
+ (linemap_position_for_line_and_column)
+ (linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token)
+ (linemap_macro_expansion_map_p)
+ (linemap_macro_map_loc_to_def_point)
+ (linemap_macro_map_loc_unwind_once)
+ (linemap_macro_map_loc_to_exp_point, linemap_step_out_once)
+ (linemap_get_source_line linemap_get_source_column)
+ (linemap_map_get_macro_name, linemap_get_file_path)
+ (linemap_location_in_system_header_p)
+ (linemap_location_from_macro_expansion_p): Declare new functions.
+ (SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION)
+ (LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this
+ accessors act on ordinary maps only.
+ (INCLUDED_FROM): Return NULL for main files; use the new
+ accessors.
+ (LINEMAP_POSITION_FOR_COLUMN): Use the new accessors.
+ (struct expanded_location): Move here from gcc/input.h
+ (linemap_resolve_location, linemap_expand_location)
+ (linemap_expand_location_full): Declare new functions.
+ * line-map.c: Include cpplib.h, internal.h
+ (linemap_enter_macro, linemap_add_macro_token)
+ (linemap_get_expansion_line, linemap_get_expansion_filename): New
+ functions that are private to libcpp.
+ (linemap_assert): New macro.
+ (linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point)
+ (linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point)
+ (linemap_macro_map_loc_unwind_toward_spelling)
+ (linemap_macro_map_loc_to_exp_point)
+ (first_map_in_common_1, first_map_in_common): New static
+ functions.
+ (new_linemap): Define new static functions. Extracted and
+ enhanced from ...
+ (linemap_add): ... here. Use linemap_assert in lieu of abort
+ previously.
+ (linemap_tracks_macro_expansion_locs_p)
+ (linemap_add_macro_token, linemap_macro_expansion_map_p)
+ (linemap_check_ordinary, linemap_macro_map_loc_to_exp_point)
+ (linemap_macro_map_loc_to_def_point)
+ (linemap_macro_map_loc_unwind_once)
+ (linemap_step_out_once, linemap_map_get_index)
+ (linemap_get_source_line,linemap_get_source_column)
+ (linemap_get_file_path, linemap_map_get_macro_name)
+ (linemap_location_in_system_header_p)
+ (linemap_location_originated_from_system_header_p)
+ (linemap_location_from_macro_expansion_p)
+ (linemap_tracks_macro_expansion_locs_p)
+ (linemap_resolve_location, linemap_expand_location)
+ (linemap_expand_location_full)
+ (linemap_tracks_macro_expansion_locs_p)
+ (linemap_position_for_line_and_column, linemap_compare_locations):
+ Define new public functions.
+ (linemap_init): Initialize ordinary and macro maps information in
+ the map set.
+ (linemap_check_files_exited): Use the new accessors.
+ (linemap_free): Remove this dead code.
+ (linemap_line_start): Assert this uses an ordinary map. Adjust to
+ use the new ordinary map accessors and data structures. Don't
+ overflow past the lowest possible macro token's location.
+ (linemap_position_for_column): Assert the ordinary maps of the map
+ set are really ordinary. Use ordinary map accessors.
+ (linemap_lookup): Keep the same logic but generalize to allow
+ lookup of both ordinary and macro maps. Do not crash when called
+ with an empty line table.
+ * directives-only.c (_cpp_preprocess_dir_only): Adjust to use the
+ new API of line-map.h.
+ * directives.c (start_directive, do_line, do_linemarker)
+ (do_linemarker): Likewise.
+ * files.c (_cpp_find_file, _cpp_stack_include, open_file_failed)
+ (make_cpp_dir, cpp_make_system_header): Likewise.
+ * init.c (cpp_read_main_file): Likewise.
+ * internal.h (CPP_INCREMENT_LINE): Likewise.
+ (linemap_enter_macro, linemap_add_macro_token)
+ (linemap_get_expansion_line, linemap_get_expansion_filename): New
+ functions private to libcpp.
+ * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment)
+ (skip_line_comment, skip_whitespace, lex_raw_string)
+ (_cpp_lex_direct): Likewise.
+ * macro.c (_cpp_builtin_macro_text): Likewise.
+ (_cpp_aligned_alloc): Initialize the new name member of the macro.
+ * traditional.c (copy_comment, _cpp_scan_out_logical_line):
+ Likewise.
+ * errors.c (cpp_diagnostic): Adjust to new linemap API.
+
+2011-08-28 Dodji Seketeli <dodji@redhat.com>
+
+ * line-map.c (linemap_add): Assert that reason must not be
+ LC_RENAME when called for the first time on a "main input file".
+
+2011-08-22 Gabriel Charette <gchare@google.com>
+
+ * init.c (cpp_create_reader): Inititalize forced_token_location_p.
+ * internal.h (struct cpp_reader): Add field forced_token_location_p.
+ * lex.c (_cpp_lex_direct): Use forced_token_location_p.
+ (cpp_force_token_locations): New.
+ (cpp_stop_forcing_token_locations): New.
+
+2011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR libstdc++/1773
+ * init.c (cpp_init_builtins): Define __cplusplus 19971L.
+
+2011-08-18 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (struct cpp_options): Fix typo.
+
+2011-08-18 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (struct cpp_options): Add rliterals.
+ * init.c (struct lang_flags, lang_defaults): Add rliterals.
+ (cpp_set_lang): Set rliterals option.
+ (cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__.
+ * lex.c (_cpp_lex_direct): Only accept raw strings if rliterals.
+
+2011-08-15 Gabriel Charette <gchare@google.com>
+
+ * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove.
+ Update all users to use linemap_position_for_column instead.
+
+2011-07-28 Gabriel Charette <gchare@google.com>
+
+ * include/line-map.h (struct line_maps):
+ Remove unused field last_listed. Update all users.
+
+2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure.ac: Set need_64bit_hwint to yes for x86 targets.
+ * configure: Regenerated.
+
+2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * system.h [__cplusplus]: Wrap C function declarations in extern "C".
+
+2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR bootstrap/49794
+ * configure.ac: Test AM_ICONV with CXX.
+ * configure: Regenerate.
+ * system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++.
+
+2011-07-15 Dodji Seketeli <dodji@redhat.com>
+
+ * directives.c (struct if_stack): Use source_location as type
+ here.
+ * include/cpplib.h (struct cpp_callbacks)<include, define, undef,
+ indent, def_pragma, used_define, used_undef>: Properly use
+ source_location as parameter type, rather than unsigned int.
+
+2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/39150
+ * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
+ like i[34567]86-*-solaris2.1[0-9]*.
+ * configure: Regenerate.
+
+2011-06-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/45399
+ * lex.c (lex_raw_string): Don't check for embedded NUL.
+
+2011-06-06 Dodji Seketeli <dodji@redhat.com>
+
+ PR preprocessor/48532
+ * directives.c (do_pragma): Don't forget the invocation location
+ when parsing the pragma name of a namespaced pragma directive.
+
+2011-05-29 John Tytgat <John.Tytgat@aaug.net>
+
+ * files.c (read_file_guts): Add test on non-zero value of S_ISREG.
+
2011-05-22 Uros Bizjak <ubizjak@gmail.com>
PR target/49104