* cpplib.pot: Regenerate.
[gcc.git] / libcpp / ChangeLog
index bd86466f2560108caf0beb0fb7dfc97d02da8853..fb4bac63f7bfb6b9fc83c9acf605381ff0c58458 100644 (file)
@@ -1,3 +1,328 @@
+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>