+2012-06-14 Release Manager
+
+ * GCC 4.7.1 released.
+
+2012-03-22 Release Manager
+
+ * GCC 4.7.0 released.
+
+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
+ * lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
+ is defined. Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
+
+2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * system.h (ENUM_BITFIELD): Remove.
+
+2011-04-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/48740
+ * lex.c (lex_raw_string): When raw string ends with
+ ??) followed by raw prefix and ", ensure it is preprocessed
+ with ??) rather than ??].
+
+2011-04-20 Jim Meyering <meyering@redhat.com>
+
+ * files.c (destroy_cpp_file): Remove useless if-before-free.
+ * init.c (cpp_destroy): Likewise.
+ * macro.c (replace_args): Likewise.
+ * pch.c (cpp_valid_state): Likewise.
+
+2011-03-25 Kai Tietz <ktietz@redhat.com>
+
+ * files.c (file_hash_eq): Use filename_cmp
+ instead of strcmp.
+ (nonexistent_file_hash_eq): Likewise.
+ (remap_filename): Likewise.
+ Handle absolute DOS-path,
+ (append_file_to_dir): Check for IS_DIR_SEPARATOR
+ instead of slash.
+ (read_name_map): Likewise.
+ * linemap.c (linemap_add): Use filename_cmp
+ instead of strcmp.
+ * mkdeps.c (apply_vpath): Use filename_ncmp
+ instead of strncmp.
+ (deps_restore): Use filename_cmp instead of
+ strcmp.
+ * init.c (read_original_directory): Use
+ IS_DIR_SEPARATOR instead of checking for slash.
+
+2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR preprocessor/48192
+ * directives.c (do_ifdef): Do not consider conditional macros as
+ being defined.
+ (do_ifndef): Ditto.
+ * expr.c (parse_defined): Ditto.
+
+2011-03-18 Richard Henderson <rth@redhat.com>
+
+ PR bootstrap/45381
+ * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5.
+
+2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/39213
+ * directives.c (end_directive): Call _cpp_remove_overlay for deferred
+ pragmas as well in traditional mode.
+
+2010-11-17 Ian Lance Taylor <iant@google.com>
+
+ PR bootstrap/45538
+ * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS. Remove switch of
+ AC_LANG based on ENABLE_BUILD_WITH_CXX.
+
+2010-11-16 Kai Tietz <kai.tietz@onevision.com>
+
+ PR preprocessor/17349
+ * lex.c (save_comment): Handle in argument passing c++
+ comments special.
+
+2010-11-02 Ian Lance Taylor <iant@google.com>
+
+ * configure.ac: Use AC_SYS_LARGEFILE.
+ * configure: Rebuild.
+ * config.in: Rebuild.
+
+2010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
+
+ * line-map.h (source_location): Remove obsolete comment
+ mentioning location_s.
+
+2010-09-29 Kai Tietz <kai.tietz@onevision.com>
+
+ PR preprocessor/45362
+ * directives.c (cpp_pop_definition): Make static.
+ (do_pragma_push_macro): Reworked to store text
+ definition.
+ (do_pragma_pop_macro): Add free text definition.
+ (cpp_push_definition): Removed.
+ * include/cpplib.h (cpp_push_definition): Removed.
+ (cpp_pop_definition): Likewise.
+ * internal.h (def_pragma_macro): Remove member 'value'
+ and add new members 'definition', 'line',
+ 'syshdr', 'sued' and 'is_undef'.
+ * pch.c (_cpp_restore_pushed_macros): Rework to work
+ on text definition and store additional macro flags.
+ (_cpp_save_pushed_macros): Likewise.
+
+2010-09-29 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (cpp_options): Rename warn_deprecated,
+ warn_traditional, warn_long_long and pedantic.
+ * directives.c (directive_diagnostics, _cpp_handle_directive):
+ Update names of cpp_options members.
+ * expr.c (cpp_classify_number, eval_token): Update names of
+ cpp_options members.
+ * init.c (cpp_create_reader, post_options): Update names of
+ cpp_options members.
+ * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
+ cpp_options members.
+ * macro.c (parse_params): Update names of cpp_options members.
+
+2010-09-15 Ian Lance Taylor <iant@google.com>
+
+ * init.c: Fix type name in comment.
+
+2010-08-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/45457
+ * expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if
+ needed.
+ * directives.c (do_ifdef, do_ifndef): Likewise.
+
+2010-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * system.h [HAVE_INTTYPES_H]: Include inttypes.h.
+
+2010-08-24 Richard Henderson <rth@redhat.com>
+
+ PR bootstrap/45376
+ * configure.ac (HAVE_SSE4): New check.
+ * configure, config.in: Rebuild.
+ * lex.c (search_line_sse42): Omit if !HAVE_SSE4.
+
+2010-08-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
+ etc. on Solaris 2/x86.
+
+2010-08-21 Richard Henderson <rth@redhat.com>
+ Andi Kleen <ak@linux.intel.com>
+ David S. Miller <davem@davemloft.net>
+
+ * configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
+ (ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
+ (ptrdiff_t): Check via AC_CHECK_TYPE.
+ * config.in, configure: Rebuild.
+ * system.h: Include stdint.h, if available.
+ * lex.c (WORDS_BIGENDIAN): Provide default.
+ (acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
+ acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
+ search_line_sse2, search_line_sse42, init_vectorized_lexer,
+ search_line_fast): New.
+ (_cpp_clean_line): Use search_line_fast. Restructure the fast
+ loop to make it clear when we're leaving the loop. Stay in the
+ fast loop for non-trigraph '?'.
+
+2010-06-11 Jakub Jelinek <jakub@redhat.com>
+
+ * include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro
+ callback.
+ (enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER.
+ (cpp_macro_definition): Remove const qual from second argument.
+ * macro.c (enter_macro_context): Call user_builtin_macro callback for
+ NODE_BUILTIN !NODE_USED macros.
+ (warn_of_redefinition): Likewise. Remove const qual from second
+ argument.
+ (cpp_macro_definition): Likewise.
+ * pch.c (write_macdef, save_macros): Call user_builtin_macro callback
+ for NODE_BUILTIN !NODE_USED macros.
+
+2010-06-10 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (struct cpp_options): Remove show_column.
+ * init.c (cpp_create_reader, post_options): Don't set show_column.
+
+2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ PR bootstrap/44432
+ * configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++,
+ check that C++ compiler works.
+ * configure: Regenerate.
+
+2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * include/symtab.h (ht_identifier_ptr): New.
+
+2010-06-03 Joern Rennecke <joern.rennecke@embecosm.com>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR bootstrap/42798
+ * configure.ac: Check for declaration of 'basename(char *)'.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+2010-04-25 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X.
+ * init.c (lang_defaults): Add entries for new language variants.
+ (cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X
+ variants.
+
+2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR cpp/43195
+ * files.c (report_missing_guard): Test for #pragma once.
+
+2010-04-07 Simon Baldwin <simonb@google.com>
+
+ * directives.c (do_diagnostic): Add warning reason argument,
+ call appropriate error reporting function for code.
+ (directive_diagnostics): Call specific warning functions with
+ warning reason where appropriate.
+ (do_error, do_warning, do_pragma_dependency): Add warning reason
+ argument to do_diagnostic calls.
+ * macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
+ _cpp_create_definition): Call specific warning functions with
+ warning reason where appropriate.
+ * Makefile.in: Add new diagnostic functions to gettext translations.
+ * include/cpplib.h (struct cpp_callbacks): Add warning reason code
+ to error callback.
+ (CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
+ CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
+ (CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
+ CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
+ CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
+ CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
+ CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
+ CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
+ CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
+ warning reason codes.
+ (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
+ cpp_warning_with_line, cpp_pedwarning_with_line,
+ cpp_warning_with_line_syshdr): New specific error reporting functions.
+ * pch.c (cpp_valid_state): Call specific warning functions with
+ warning reason where appropriate.
+ * errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
+ diagnostic handlers.
+ (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
+ cpp_warning_with_line, cpp_pedwarning_with_line,
+ cpp_warning_with_line_syshdr): New specific error reporting functions.
+ * expr.c (cpp_classify_number, eval_token, num_unary_op): Call
+ specific warning functions with warning reason where appropriate.
+ * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
+ warn_about_normalization, lex_identifier_intern, lex_identifier,
+ _cpp_lex_direct): Ditto.
+ * charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
+ narrow_str_to_charconst): Ditto.
+
+2010-04-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/43642
+ * lex.c (lex_raw_string): Change type of TYPE variable to
+ unsigned char.
+
+2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * aclocal.m4: Regenerate.
+
+2010-03-29 Jason Merrill <jason@redhat.com>
+
+ More N3077 raw string changes
+ * charset.c (cpp_interpret_string): Don't transform UCNs in raw
+ strings.
+ * lex.c (bufring_append): Split out from...
+ (lex_raw_string): ...here. Undo trigraph and line splicing
+ transformations. Do process line notes in multi-line literals.
+ (_cpp_process_line_notes): Ignore notes that were already handled.
+
+ Some raw string changes from N3077
+ * charset.c (cpp_interpret_string): Change inner delimiters to ().
+ * lex.c (lex_raw_string): Likewise. Also disallow '\' in delimiter.
+
+2010-02-11 Jakub Jelinek <jakub@redhat.com>
+
+ * init.c (read_original_filename): Don't call read_original_directory
+ if _cpp_handle_directive returns 0.
+
+2010-01-01 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/41947
+ * expr.c (cpp_classify_number): Give error for hexadecimal
+ floating-point constant with no digits before or after point.
+
+2009-11-20 Arnaud Charlet <charlet@adacore.com>
+
+ * macro.c (enter_macro_context): Call cb.used callback if defined.
+ * directives.c (do_idef, do_ifndef): Ditto.
+ * include/cpplib.h (struct cpp_callbacks): Add used callback.
+
+2009-11-11 Kai Tietz <kai.tietz@onevision.com>
+
+ * directives.c (do_pragma_push_macro): New pragma handler.
+ (do_pragma_pop_macro): Likewise.
+ (_cpp_init_internal_pragmas): Add push_macro and
+ pop_macro handler to internal pragmas.
+ (lex_macro_node_from_str): Removed.
+ (cpp_push_definition): Replace lex_macro_node_from_str
+ by _cpp_lex_identifier.
+ (cpp_pop_definition): Likewise.
+ * internal.h (_cpp_lex_identifier): New prototype.
+ (def_pragma_macro): New structure.
+ (cpp_reader): New member pushed_macros.
+ * lex.c (_cpp_lex_identifier): New function.
+ (lex_identifier_intern): New function.
+ * init.c (cpp_create_reader): Initialize pushed_macros
+ member.
+ (cpp_destroy): Free elements in pushed_macros member.
+ * pch.c (_cpp_save_pushed_macros): New function.
+ (_cpp_restore_pushed_macros): Likewise.
+ (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
+ (cpp_read_state): Use _cpp_restore_pushed_macros.
+
+2009-10-19 Jakub Jelinek <jakub@redhat.com>
+
+ * charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
+ (_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
+ and char32_cset_desc.
+ (converter_for_type): Handle CPP_UTF8STRING.
+ (cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
+ * directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
+ (parse_include): Reject raw strings.
+ * include/cpplib.h (CPP_UTF8STRING): New token type.
+ * internal.h (struct cpp_reader): Add utf8_cset_desc field.
+ * lex.c (lex_raw_string): New function.
+ (lex_string): Handle u8 string literals, call lex_raw_string
+ for raw string literals.
+ (_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
+ sequences.
+ * macro.c (stringify_arg): Handle CPP_UTF8STRING.
+
+2009-10-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/41543
+ * include/line-map.h (RESERVED_LOCATION_COUNT): Define.
+ * line-map.c (linemap_init): Initialize highest_location and
+ highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
+
+2009-10-09 Jason Merrill <jason@redhat.com>
+
+ * charset.c (_cpp_valid_ucn): Update C++0x restrictions.
+
+2009-10-09 Neil Vachharajani <nvachhar@google.com>
+
+ * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and
+ sccs.
+
+2009-09-23 Loren J. Rittle <ljrittle@acm.org>
+
+ * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h.
+ * configure: Rebuilt.
+
+2009-09-22 Richard Guenther <rguenther@suse.de>
+
+ PR pch/38987
+ * files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
+
+2009-09-18 Chris Demetriou <cgd@google.com>
+
+ PR preprocessor/28435:
+ * include/cpplib.h (struct cpp_options): Add new member
+ deps.need_preprocessor_output.
+ * files.c (open_file_failed): If preprocessor output is needed
+ always report an error.
+
+2009-09-13 Kai Tietz <kai.tietz@onevision.com>
+
+ * configure.ac: Set for i?86-w64-mingw*
+ need_64bit_hwint to yes.
+ * configure: Regenerated.
+
+2009-09-10 Jason Merrill <jason@redhat.com>
+
+ * directives.c (cpp_define): constify.
+
+2009-09-02 Ian Lance Taylor <iant@google.com>
+
+ * macro.c (stringify_arg): Escape CPP_WCHAR tokens.
+
+2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac (AC_PREREQ): Bump to 2.64.
+
+2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * aclocal.m4: Regenerate.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+
+2009-08-17 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/41067:
+ * charset.c (convert_escape): Add missing ":" to error text.
+
+2009-07-27 Douglas B Rupp <rupp@gnat.com>
+
+ * include/cpplib.h (INO_T_CPP): New macro.
+ (struct cpp_dir): Use it.
+
+2009-07-20 Jerry Quinn <jlquinn@optonline.net>
+
+ PR regression/40800
+ * configure.ac: Use = instead of == for testing
+ ENABLE_BUILD_WITH_CXX.
+ * configure: Rebuild.
+
+2009-07-17 Jerry Quinn <jlquinn@optonline.net>
+
+ * directives.c (do_linemarker, do_line): Use CPP_STRING for
+ ignored enum value.
+ * files.c (find_file_in_dir): Add cast from void* to char*.
+ * symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
+ * Makefile.in: (WARN_CFLAGS): Use general and C-specific
+ warnings.
+ (CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
+ ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
+ COMPILER_FLAGS): New.
+ (DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
+ (COMPILE.base): Use COMPILER instead of CC. Use COMPILER_FLAGS
+ instead of ALL_CFLAGS.
+ * configure.ac: Invoke AC_PROG_CXX. Separate C-specific warnings
+ from other warnings. Add -Wc++-compat to C-specific warnings.
+ Check for --enable-build-with-cxx. Set and substitute
+ ENABLE_BUILD_WITH_CXX. Invoke ZW_PROG_COMPILER_DEPENDENCIES
+ according to ENABLE_BUILD_WITH_CXX. Invoke AC_LANG before
+ AC_CHECK_HEADERS.
+ * configure: Rebuild.
+ * include/cpp-id-data.h: Remove extern "C".
+ * include/line-map.h: Likewise.
+ * include/mkdeps.h: Likewise.
+ * include/symtab.h: Likewise.
+ * internal.h: Likewise.
+
+2009-06-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * directives.c (parse_include): Add location argument. Update all
+ calls.
+ (parse_answer): Likewise.
+ (do_include_common): Error with exact location.
+ (parse_assertion): Likewise.
+
+2009-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * expr.c (num_div_op): Take explicit location.
+
+2009-06-17 Ian Lance Taylor <iant@google.com>
+
+ * include/cpplib.h (progname): Don't declare.
+
+2009-06-12 Ian Lance Taylor <iant@google.com>
+
+ * include/cpplib.h (struct cpp_options): Add
+ warn_cxx_operator_names field.
+ (NODE_WARN_OPERATOR): Define.
+ (struct cpp_hashnode): Increase flags field to 10 bits, decrease
+ type to 6 bits.
+ * init.c (mark_named_operators): Add flags parameter.
+ (cpp_post_options): Pick flags value to pass to
+ mark_named_operators.
+ * lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that
+ identifier is an operator name in C++.
+
+2009-06-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * include/line-map.h (LAST_SOURCE_COLUMN): New.
+
+2009-06-01 Ian Lance Taylor <iant@google.com>
+
+ * include/cpp-id-data.h: Add extern "C".
+ * include/line-map.h: Likewise.
+ * include/mkdeps.h: Likewise.
+ * include/symtab.h: Likewise.
+ * internal.h: Likewise.
+
+2009-05-15 Ian Lance Taylor <iant@google.com>
+
+ * include/cpplib.h (enum cpp_builtin_type): Rename from enum
+ builtin_type. Change all uses.
+
+2009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR cpp/36674
+ * directives (do_linemarker): Compensate for the increment in
+ location that occurs when we reach the end of line.
+ * files (_cpp_stack_include): Mention _cpp_find_file in the
+ comment.
+
+2009-05-10 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (enum cpp_token_fld_kind): Add
+ CPP_TOKEN_FLD_TOKEN_NO.
+ (struct cpp_macro_arg, struct cpp_identifier): Define.
+ (union cpp_token_u): Use struct cpp_identifier for identifiers.
+ Use struct cpp_macro_arg for macro arguments. Add token_no for
+ CPP_PASTE token numbers.
+ * directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
+ do_pragma_poison, parse_assertion): Use val.node.node in place of
+ val.node.
+ * expr.c (parse_defined, eval_token): Use val.node.node in place
+ of val.node.
+ * lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
+ cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
+ cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
+ place of val.arg_no. Use val.node.node in place of val.node.
+ * macro.c (replace_args, cpp_get_token, parse_params,
+ lex_expansion_token, create_iso_definition, cpp_macro_definition):
+ Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
+ Use val.node.node in place of val.node.
+
+2009-05-03 Joseph Myers <joseph@codesourcery.com>
+
+ * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte
+ UTF-8 sequences.
+
+2009-04-25 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/39559
+ * expr.c (cpp_interpret_integer): Use a pedwarn for decimal
+ constants larger than intmax_t in C99 mode.
+
+2009-04-21 Taras Glek <tglek@mozilla.com>
+
+ * include/cpp-id-data.h: Update GTY annotations to new syntax.
+ * include/cpplib.h: Likewise.
+ * include/line-map.h: Likewise.
+ * include/symtab.h: Likewise.
+
+2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/14875
+ * lex.c (cpp_type2name): Take a flags parameter. Call
+ cpp_named_operator2name for named operators and cpp_digraph2name
+ for digraphs.
+ (cpp_digraph2name): New.
+ (cpp_spell_token): Use it.
+ (cpp_output_token): Likewise.
+ * include/cpplib.h (cpp_type2name): Update declaration.
+ * init.c (cpp_named_operator2name): New.
+ * internal.h (cpp_named_operator2name): Declare.
+
2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/13358