+2014-09-17 Jan Hubicka <hubicka@ucw.cz>
+
+ * charset.c (conversion): Rename to ...
+ (cpp_conversion): ... this one; update.
+ * files.c (file_hash_entry): Rename to ...
+ (cpp_file_hash_entry): ... this one ; update.
+
+2014-09-17 Marek Polacek <polacek@redhat.com>
+
+ PR c/61854
+ * init.c (struct lang_flags): Remove cplusplus_comments.
+ (cpp_set_lang): Likewise.
+ (post_options): Likewise.
+ * lex.c (_cpp_lex_direct): Disallow C++ style comments in C90/C94.
+
+2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * include/cpplib.h (struct cpp_options): Declare warn_normalize as
+ int instead of enum.
+
+2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * macro.c (replace_args): Use cpp_pedwarning, cpp_warning and
+ CPP_W flags.
+ * include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
+ * init.c (cpp_create_reader): Do not init to -1 here.
+ * expr.c (num_binary_op): Use cpp_pedwarning.
+
+2014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * directives.c (check_eol_1): New.
+ (check_eol_endif_labels): New.
+ (check_eol): Call check_eol_1.
+ (do_else,do_endif): Call check_eol_endif_labels.
+
+2014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * macro.c (warn_of_redefinition): Suppress warnings for builtins
+ that lack the NODE_WARN flag, unless Wbuiltin-macro-redefined.
+ (_cpp_create_definition): Use Wbuiltin-macro-redefined for
+ builtins that lack the NODE_WARN flag.
+ * directives.c (do_undef): Likewise.
+ * init.c (cpp_init_special_builtins): Do not change flags
+ depending on Wbuiltin-macro-redefined.
+
+2014-08-28 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR cpp/23827 - standard C++ should not have hex float preprocessor
+ tokens
+ * libcpp/init.c (lang_flags): Change CXX98 flag for extended numbers
+ from 1 to 0.
+ * libcpp/expr.c (cpp_classify_number): Weite error message for improper
+ use of hex floating literal.
+
+2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z;
+ Rename CLK_GNUCXX1Y, CLK_CXX1Y to CLK_GNUCXX14, CLK_CXX14;
+ * init.c (struct lang_flags lang_defaults): Add column for trigraphs;
+ Add rows for CLK_GNUCXX1Z, CLK_CXX1Z; (cpp_set_lang): Set trigraphs;
+ (cpp_init_builtins): Set __cplusplus to 201402L for C++14;
+ Set __cplusplus to 201500L for C++17.
+ * expr.c (cpp_classify_number): Change C++1y to C++14 in binary
+ constants error message.
+
+2014-08-20 Marek Polacek <polacek@redhat.com>
+
+ * include/cpplib.h (cpp_options): Use signed char.
+ * lex.c (_cpp_lex_direct): Don't warn in C++ mode.
+
+2014-08-19 Marek Polacek <polacek@redhat.com>
+
+ * lex.c (_cpp_lex_direct): Fix a typo.
+
+2014-08-19 Marek Polacek <polacek@redhat.com>
+
+ * charset.c (_cpp_valid_ucn): Warn only if -Wc90-c99-compat.
+ * lex.c (_cpp_lex_direct): Likewise.
+ * macro.c (replace_args): Likewise.
+ (parse_params): Likewise.
+ * include/cpplib.h (cpp_options): Change cpp_warn_c90_c99_compat
+ to char.
+
+2014-08-10 Marek Polacek <polacek@redhat.com>
+
+ PR c/51849
+ * lex.c (_cpp_lex_direct): Warn when -Wc90-c99-compat is in effect.
+ * charset.c (_cpp_valid_ucn): Likewise.
+ * include/cpplib.h (cpp_options): Add cpp_warn_c90_c99_compat.
+ * macro.c (replace_args): Warn when -Wc90-c99-compat is in effect.
+ (parse_params): Likewise.
+
+2014-07-27 Marek Polacek <polacek@redhat.com>
+
+ PR c/61861
+ * macro.c (builtin_macro): Add location parameter. Set
+ location of builtin macro to the expansion point.
+ (enter_macro_context): Pass location to builtin_macro.
+
+2014-07-16 Dodji Seketeli <dodji@redhat.com>
+
+ Support location tracking for built-in macro tokens
+ * include/line-map.h (line_maps::builtin_location): New data
+ member.
+ (line_map_init): Add a new parameter to initialize the new
+ line_maps::builtin_location data member.
+ * line-map.c (linemap_init): Initialize the
+ line_maps::builtin_location data member.
+ * macro.c (builtin_macro): Create a macro map and track the token
+ resulting from the expansion of a built-in macro.
+
+2014-07-10 Edward Smith-Rowland <3dw4rd@verizon.net>
+ Jonathan Wakely <jwakely@redhat.com>
+
+ PR preprocessor/61389
+ * macro.c (_cpp_arguments_ok, parse_params, create_iso_definition):
+ Warning messages mention C++11 in c++ mode and C99 in c mode.
+ * lex.c (lex_identifier_intern, lex_identifier): Ditto
+
+2014-07-09 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped
+ by preprocessor
+ * lex.c (lex_raw_string ()): Do not warn about invalid suffix
+ if skipping. (lex_string ()): Ditto.
+
+2014-06-04 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/61038
+ * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
+ Combine user-defined escape logic with the other string and char logic.
+
+2014-05-26 Richard Biener <rguenther@suse.de>
+
+ * configure.ac: Remove long long and __int64 type checks,
+ add check for uint64_t and fail if that wasn't found.
+ * include/cpplib.h (cpp_num_part): Use uint64_t.
+ * config.in: Regenerate.
+ * configure: Likewise.
+
+2014-05-21 Marek Polacek <polacek@redhat.com>
+
+ PR c/61212
+ * files.c (find_file_in_dir): Add parens around &&.
+
+2014-05-20 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/61038
+ * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
+ Check for user-defined literal strings and user-defined literal chars
+ to escape necessary characters.
+
+2014-05-20 Richard Biener <rguenther@suse.de>
+
+ * configure.ac: Copy gcc logic of detecting a 64bit type.
+ Remove HOST_WIDE_INT define.
+ * include/cpplib.h: typedef cpp_num_part to a 64bit type,
+ similar to how hwint.h does it.
+ * config.in: Regenerate.
+ * configure: Likewise.
+
+2014-05-09 Joey Ye <joey.ye@arm.com>
+
+ * files.c (find_file_in_dir): Always try to shorten for DOS
+ non-system headers.
+ * init.c (ENABLE_CANONICAL_SYSTEM_HEADERS): Default enabled for DOS.
+
+2014-05-07 Richard Biener <rguenther@suse.de>
+
+ * configure.ac: Always set need_64bit_hwint to yes.
+ * configure: Regenerated.
+
+2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * lex.c: Remove Solaris 9 reference.
+
+2014-02-24 Walter Lee <walt@tilera.com>
+
+ * configure.ac: Change "tilepro" triplet to "tilepro*".
+ * configure: Regenerate.
+
+2014-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/58844
+ * macro.c (enter_macro_context): Only push
+ macro_real_token_count (macro) tokens rather than
+ macro->count tokens, regardless of
+ CPP_OPTION (pfile, track-macro-expansion).
+
+2014-02-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/56824
+ * line-map.c (get_combined_adhoc_loc, linemap_get_expansion_line,
+ linemap_get_expansion_filename, linemap_location_in_system_header_p,
+ linemap_location_from_macro_expansion_p,
+ linemap_macro_loc_to_spelling_point, linemap_macro_loc_to_def_point,
+ linemap_macro_loc_to_exp_point, linemap_expand_location): Fix
+ formatting.
+ (linemap_compare_locations): Look through adhoc locations for both
+ l0 and l1.
+
+2014-01-23 Dodji Seketeli <dodji@redhat.com>
+
+ PR PR preprocessor/58580
+ * include/line-map.h (linemap_get_file_highest_location): Declare
+ new function.
+ * line-map.c (linemap_get_file_highest_location): Define it.
+
+2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
+
+ Update copyright years
+
+2013-12-09 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/55715
+ * expr.c (num_binary_op): Implement subtraction directly rather
+ than with negation and falling through into addition case.
+
+2013-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * lex.c (search_line_fast): Correct for little endian.
+
+2013-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ * ucnid.tab: Add C11 and C11NOSTART data.
+ * makeucnid.c (digit): Rename enum value to N99.
+ (C11, N11, all_languages): New enum values.
+ (NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
+ (flags, decomp, combining_value): Use NUM_CODE_POINTS as array
+ size.
+ (decomp): Use unsigned int as element type.
+ (all_decomp): New array.
+ (read_ucnid): Handle C11 and C11NOSTART. Use MAX_CODE_POINT.
+ (read_table): Use MAX_CODE_POINT. Store all decompositions in
+ all_decomp.
+ (read_derived): Use MAX_CODE_POINT.
+ (write_table): Use NUM_CODE_POINTS. Print N99, C11 and N11
+ flags. Print whole array variable declaration rather than just
+ array contents.
+ (char_id_valid, write_context_switch): New functions.
+ (main): Call write_context_switch.
+ * ucnid.h: Regenerate.
+ * include/cpplib.h (struct cpp_options): Add c11_identifiers.
+ * init.c (struct lang_flags): Add c11_identifiers.
+ (cpp_set_lang): Set c11_identifiers option from selected language.
+ * internal.h (struct normalize_state): Document "previous" as
+ previous starter character.
+ (NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
+ * charset.c (DIG): Rename enum value to N99.
+ (C11, N11): New enum values.
+ (struct ucnrange): Give name to struct. Use short for flags and
+ unsigned int for end of range. Include ucnid.h for whole variable
+ declaration.
+ (ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
+ Allow for C11 in determining valid characters and valid start
+ characters. Use check_nfc for non-Hangul context-dependent
+ checks. Only store starter characters in nst->previous.
+ (_cpp_valid_ucn): Pass new argument to
+ NORMALIZE_STATE_UPDATE_IDNUM.
+ * lex.c (lex_identifier): Pass new argument to
+ NORMALIZE_STATE_UPDATE_IDNUM. Call NORMALIZE_STATE_UPDATE_IDNUM
+ after initial non-UCN part of identifier.
+ (lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.
+
+2013-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ * ucnid.tab: Mark C99 digits as [C99DIG].
+ * makeucnid.c (read_ucnid): Handle [C99DIG].
+ (read_table): Don't check for digit characters.
+ * ucnid.h: Regenerate.
+
+2013-11-06 Tobias Burnus <burnus@net-b.de>
+
+ * macro.c (_cpp_builtin_macro_text): Correct
+ wording of two warnings.
+
+2013-11-05 Tobias Burnus <burnus@net-b.de>
+
+ * include/cpplib.h (CPP_W_DATE_TIME): Added.
+ (cpp_options): Add warn_date_time.
+ * init.c (cpp_create_reader): Init it.
+ * macro.c (_cpp_builtin_macro_text): Warn when
+ __DATE__/__TIME__/__TIMESTAMP__ is used.
+
+2013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement C++14 digit separators.
+ * include/cpplib.h (cpp_options): Add digit_separators flag.
+ * internal.h (DIGIT_SEP(c)): New macro.
+ * expr.c (cpp_classify_number): Check improper placement of digit sep;
+ (cpp_interpret_integer): Skip over digit separators.
+ * init.c (lang_flags): Add digit_separators flag; (lang_defaults): Add
+ digit separator flags per language; (cpp_set_lang): Set
+ digit_separators
+ * lex.c (lex_number): Add digits separator to allowable characters for
+ C++14.
+
+2013-10-15 David Malcolm <dmalcolm@redhat.com>
+
+ * Makefile.in (PICFLAG): New.
+ (ALL_CFLAGS): Add PICFLAG.
+ (ALL_CXXFLAGS): Likewise.
+ * configure.ac: Add --enable-host-shared, setting up new
+ PICFLAG variable.
+ * configure: Regenerate.
+
+2013-08-07 Richard Earnshaw <rearnsha@arm.com>
+
+ * configure.ac: Set need_64bit_hwint for all arm targets.
+ * configure: Regenerated.
+
+2013-07-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/57620
+ * lex.c (lex_raw_string): Undo phase1 and phase2 transformations
+ between R" and final " rather than only in between R"del( and )del".
+
+2013-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/57824
+ * lex.c (lex_raw_string): Allow reading new-lines if
+ in_deferred_pragma or if parsing_args and there is still
+ data in the current buffer.
+
+ * include/cpplib.h (cpp_token_val_index): Change parameter type to
+ const cpp_token *.
+ * lex.c (cpp_token_val_index): Likewise.
+
+ PR preprocessor/57757
+ * lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING
+ or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that
+ starts if a-zA-Z_.
+
+2013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ * lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
+ as concatenated literal and macro to just the patterns found in
+ inttypes.h; (is_macro()): New.
+
+2013-06-24 Dehao Chen <dehao@google.com>
+
+ * files.c (_cpp_stack_include): Fix the highest_location when header
+ file is guarded by #ifndef and is included twice.
+
+2013-04-28 Jakub Jelinek <jakub@redhat.com>
+
+ N3472 binary constants
+ * include/cpplib.h (struct cpp_options): Fix a typo in user_literals
+ field comment. Add binary_constants field.
+ * init.c (struct lang_flags): Add binary_constants field.
+ (lang_defaults): Add bin_cst column to the table.
+ (cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
+ * expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
+ in diagnostics. Accept binary constants if
+ CPP_OPTION (pfile, binary_constants) even when pedantic. Adjust
+ pedwarn message.
+
+2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
+ * init.c (lang_defaults): Add defaults for the latter.
+ (cpp_init_builtins): Define __cplusplus as 201300L for the latter.
+ * lex.c (_cpp_lex_direct): Update.
+
+2013-04-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ PR target/56771
+ * configure.ac: Require 64-bit int for arm*-*-rtems*.
+ * configure: Regenerate.
+
+2013-03-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/56461
+ * internal.h (struct cpp_buffer): Add to_free field.
+ (_cpp_pop_file_buffer): Add third argument.
+ * files.c (_cpp_stack_file): Set buffer->to_free.
+ (_cpp_pop_file_buffer): Add to_free argument. Free to_free
+ if non-NULL, and if equal to file->buffer_start, also clear
+ file->buffer{,_start,_valid}.
+ * directives.c (_cpp_pop_buffer): Pass buffer->to_free
+ to _cpp_pop_file_buffer.
+
+2013-03-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/56461
+ * files.c (_cpp_save_file_entries): Free result at the end.
+ * pch.c (cpp_string_free): New function.
+ (cpp_save_state): Use it in htab_create call.
+ (cpp_write_pch_deps): Free ss->defs. Destroy ss->definedhash.
+
+2013-02-28 Jakub Jelinek <jakub@redhat.com>
+
+ * files.c (_cpp_find_file): If returning early, before storing
+ something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
+ on it. Access *hash_slot using void * type rather than
+ struct file_hash_entry * to avoid aliasing issues.
+
+ * configure.ac: Don't define ENABLE_CHECKING whenever
+ --enable-checking is seen, instead use similar --enable-checking=yes
+ vs. --enable-checking=release default as gcc/ subdir has and
+ define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
+ Define ENABLE_VALGRIND_CHECKING if requested.
+ * lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
+ struct first in the allocated buffer and result->base after it.
+ (_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
+ instead of buff->base.
+ * config.in: Regenerated.
+ * configure: Regenerated.
+