]> git.ipfire.org Git - thirdparty/gcc.git/blame - libcpp/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libcpp / ChangeLog
CommitLineData
bfc6d29f
GA
12023-06-20 Lewis Hyatt <lhyatt@gmail.com>
2
3 PR c++/66290
4 * macro.cc (_cpp_create_definition): Add location argument.
5 * internal.h (_cpp_create_definition): Adjust prototype.
6 * directives.cc (do_define): Pass new location argument to
7 _cpp_create_definition.
8 (do_undef): Stop passing inferior location to cpp_warning_with_line;
9 the default from cpp_warning is better.
10 (cpp_pop_definition): Pass new location argument to
11 _cpp_create_definition.
12 * pch.cc (cpp_read_state): Likewise.
13
e517d3f5
GA
142023-06-19 Ben Boeckel <ben.boeckel@kitware.com>
15
16 * charset.cc: Reject encodings of codepoints above 0x10FFFF.
17 UTF-16 does not support such codepoints and therefore all
18 Unicode rejects such values.
19
7ff79341
GA
202023-06-15 Marek Polacek <polacek@redhat.com>
21
22 * configure.ac (--enable-host-shared): Don't set PICFLAG here.
23 (--enable-host-pie): New check. Set PICFLAG after this check.
24 * configure: Regenerate.
25
262023-06-15 Jakub Jelinek <jakub@redhat.com>
27
28 PR preprocessor/80753
29 * files.cc (struct _cpp_file): Add deferred_error bitfield.
30 (_cpp_find_file): When finding a file in cache with deferred_error
31 set in _cpp_FFK_NORMAL mode, call open_file_failed and clear the flag.
32 Set deferred_error in _cpp_FFK_HAS_INCLUDE mode if open_file_failed
33 hasn't been called.
34
4d68c7f7
GA
352023-04-30 Jeff Law <jlaw@ventanamicro>
36
37 Revert:
38 2023-04-30 Longjun Luo <luolongjuna@gmail.com>
39
40 * init.cc (builtin_array): Do not always warn for a redefinition
41 of __LINE__.
42
432023-04-30 Longjun Luo <luolongjuna@gmail.com>
44
45 * init.cc (builtin_array): Do not always warn for a redefinition
46 of __LINE__.
47
810b924f
GA
482023-03-25 David Malcolm <dmalcolm@redhat.com>
49
50 PR analyzer/109098
51 * charset.cc (cpp_valid_utf8_p): New function.
52 * include/cpplib.h (cpp_valid_utf8_p): New prototype.
53
5c389a5c
GA
542023-03-16 Jakub Jelinek <jakub@redhat.com>
55
56 * makeucnid.cc (write_copyright): Update Unicode copyright years
57 up to 2022.
58 * makeuname2c.cc (write_copyright): Likewise.
59 * ucnid.h: Regenerated.
60 * uname2c.h: Regenerated.
61
a9835599
GA
622023-03-13 Lewis Hyatt <lhyatt@gmail.com>
63
64 PR preprocessor/67046
65 * directives.cc (_cpp_do__Pragma): Increment pfile->keep_tokens to
66 ensure the returned string token is valid.
67
682023-03-13 Lewis Hyatt <lhyatt@gmail.com>
69
70 * generated_cpp_wcwidth.h: Regenerated for Unicode 15.
71
4bc2d9f6
GA
722022-12-07 Joseph Myers <joseph@codesourcery.com>
73
74 * init.cc (lang_defaults): Enable va_opt for STDC2X.
75 * lex.cc (maybe_va_opt_error): Adjust diagnostic message for C.
76 * macro.cc (_cpp_arguments_ok): Update comment.
77
8761284f
GA
782022-11-23 Marek Polacek <polacek@redhat.com>
79
80 Revert:
81 2022-11-23 Marek Polacek <polacek@redhat.com>
82
83 * configure.ac (--enable-host-shared): Don't set PICFLAG here.
84 (--enable-host-pie): New check. Set PICFLAG after this check.
85 * configure: Regenerate.
86
872022-11-23 Marek Polacek <polacek@redhat.com>
88
89 * configure.ac (--enable-host-shared): Don't set PICFLAG here.
90 (--enable-host-pie): New check. Set PICFLAG after this check.
91 * configure: Regenerate.
92
8b7fee1d
GA
932022-11-21 Lewis Hyatt <lhyatt@gmail.com>
94
95 * directives.cc (do_pragma): Fix memory leak in token buffer. Fix
96 unwanted paste between two tokens.
97
982022-11-21 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
99
100 * files.cc: Ensure pattern matches before use.
101
1022022-11-21 Martin Liska <mliska@suse.cz>
103
104 * config.in: Re-configure.
105
fb98ede8
GA
1062022-11-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
107
108 PR preprocessor/107691
109 * configure.ac: Add valgrind header checks.
110 * configure: Regenerate.
111
1122022-11-18 Richard Purdie <richard.purdie@linuxfoundation.org>
113
114 * macro.cc (_cpp_builtin_macro_text): Don't remap filenames within
115 directives.
116
05788e9b
GA
1172022-11-05 Lewis Hyatt <lhyatt@gmail.com>
118
119 PR preprocessor/55971
120 * lex.cc (get_fresh_line_impl): New function refactoring the code
121 from...
122 (_cpp_get_fresh_line): ...here.
123 (lex_raw_string): Use the new version of get_fresh_line_impl() to
124 support raw strings containing new lines when processing a directive.
125
1262022-11-04 Jakub Jelinek <jakub@redhat.com>
127
128 * makeuname2c.cc (struct generated): Update from Unicode 15.0.0
129 table 4-8.
130 * ucnid.h: Regenerated for Unicode 15.0.0.
131 * uname2c.h: Likewise.
132
87f9c4a4
GA
1332022-10-19 Lewis Hyatt <lhyatt@gmail.com>
134
135 * include/cpplib.h (struct cpp_string): Use new "string_length" GTY.
136 * include/symtab.h (struct ht_identifier): Likewise.
137
baeec7cc
GA
1382022-10-14 Joseph Myers <joseph@codesourcery.com>
139
140 * charset.cc (ucn_valid_in_identifier): Check xid_identifiers not
141 cplusplus to determine whether to use CXX23 and NXX23 flags.
142 * include/cpplib.h (struct cpp_options): Add xid_identifiers.
143 * init.cc (struct lang_flags, lang_defaults): Add xid_identifiers.
144 (cpp_set_lang): Set xid_identifiers.
145 * lex.cc (warn_about_normalization): Add parameter identifier.
146 Only pedwarn about non-NFC for identifiers, not pp-numbers.
147 (_cpp_lex_direct): Update calls to warn_about_normalization.
148
1492022-10-14 Jakub Jelinek <jakub@redhat.com>
150
151 * include/cpplib.h (CPP_N_BFLOAT16): Define.
152 * expr.cc (interpret_float_suffix): Handle bf16 and BF16 suffixes for
153 C++.
154
9e79a25b
GA
1552022-09-28 Eugene Rozenfeld <erozen@microsoft.com>
156
157 * include/line-map.h: Add discriminator to location_adhoc_data.
158 (get_combined_adhoc_loc): Add discriminator parameter.
159 (get_discriminator_from_adhoc_loc): Add external declaration.
160 (get_discriminator_from_loc): Add external declaration.
161 (COMBINE_LOCATION_DATA): Add discriminator parameter.
162 * lex.cc (get_location_for_byte_range_in_cur_line) Pass 0 discriminator
163 in a call to COMBINE_LOCATION_DATA.
164 (warn_about_normalization): Pass 0 discriminator in a call to
165 COMBINE_LOCATION_DATA.
166 (_cpp_lex_direct): Pass 0 discriminator in a call to
167 COMBINE_LOCATION_DATA.
168 * line-map.cc (location_adhoc_data_hash): Use discriminator compute
169 location_adhoc_data hash.
170 (location_adhoc_data_eq): Use discriminator when comparing
171 location_adhoc_data.
172 (can_be_stored_compactly_p): Check discriminator to determine
173 compact storage.
174 (get_combined_adhoc_loc): Add discriminator parameter.
175 (get_discriminator_from_adhoc_loc): New function to get the discriminator
176 from an ad-hoc location.
177 (get_discriminator_from_loc): New function to get the discriminator
178 from a location.
179
1f16a020
GA
1802022-09-27 Jakub Jelinek <jakub@redhat.com>
181
182 PR c++/106652
183 PR c++/85518
184 * expr.cc (interpret_float_suffix): Allow {f,F}{16,32,64,128} and
185 {f,F}{32,64,128}x suffixes for C++.
186
2e7ad70c
GA
1872022-09-08 Lewis Hyatt <lhyatt@gmail.com>
188
189 * line-map.cc (location_adhoc_data_update): Remove reliance on
190 undefined behavior.
191 (get_combined_adhoc_loc): Likewise.
192 (rebuild_location_adhoc_htab): Fix issue where the htab was not
193 properly updated.
194
fe2a8ce9
GA
1952022-09-07 Joseph Myers <joseph@codesourcery.com>
196
197 * include/cpplib.h (struct cpp_options): Add true_false.
198 * expr.cc (eval_token): Check true_false not cplusplus to
199 determine whether to handle true and false keywords.
200 * init.cc (struct lang_flags): Add true_false.
201 (lang_defaults): Update.
202 (cpp_set_lang): Set true_false.
203
2042022-09-07 Jakub Jelinek <jakub@redhat.com>
205
206 * include/cpplib.h (struct cpp_options): Add cpp_warn_unicode member.
207 (enum cpp_warning_reason): Add CPP_W_UNICODE.
208 * init.cc (cpp_create_reader): Initialize cpp_warn_unicode.
209 * charset.cc (_cpp_valid_ucn): In possible identifier contexts, don't
210 handle \u{ or \N{ specially in -std=c* modes except -std=c++2{3,b}.
211 In possible identifier contexts, don't emit an error and punt
212 if \N isn't followed by {, or if \N{} surrounds some lower case
213 letters or _. In possible identifier contexts when not C++23, don't
214 emit an error but warning about unknown character names and treat as
215 separate tokens. When treating as separate tokens \u{ or \N{, emit
216 warnings.
217
47d2dcd1
GA
2182022-09-05 Joseph Myers <joseph@codesourcery.com>
219
220 * init.cc (lang_defaults): Disable trigraphs for C2x.
221
c64b0947
GA
2222022-09-02 David Malcolm <dmalcolm@redhat.com>
223
224 PR c/90885
225 * include/cpplib.h (BOL): Move macro to 1 << 12 since it is
226 not used by C/C++'s unsigned char token flags.
227 (DECIMAL_INT): New, using 1 << 6, so that it is visible as
228 part of C/C++'s 8 bits of token flags.
229
bb0a1556
GA
2302022-09-01 Jakub Jelinek <jakub@redhat.com>
231
232 PR c++/106655
233 * include/cpplib.h (struct cpp_options): Implement C++23
234 P2295R6 - Support for UTF-8 as a portable source file encoding.
235 Add cpp_warn_invalid_utf8 and cpp_input_charset_explicit fields.
236 (enum cpp_warning_reason): Add CPP_W_INVALID_UTF8 enumerator.
237 * init.cc (cpp_create_reader): Initialize cpp_warn_invalid_utf8
238 and cpp_input_charset_explicit.
239 * charset.cc (_cpp_valid_utf8): Adjust function comment.
240 * lex.cc (UCS_LIMIT): Define.
241 (utf8_continuation): New const variable.
242 (utf8_signifier): Move earlier in the file.
243 (_cpp_warn_invalid_utf8, _cpp_handle_multibyte_utf8): New functions.
244 (_cpp_skip_block_comment): Handle -Winvalid-utf8 warning.
245 (skip_line_comment): Likewise.
246 (lex_raw_string, lex_string): Likewise.
247 (_cpp_lex_direct): Likewise.
248
542c60c4
GA
2492022-08-31 Jakub Jelinek <jakub@redhat.com>
250
251 PR preprocessor/106778
252 * makeuname2c.cc (write_nodes): Reverse order of && operands in
253 assert.
254
16f542d6
GA
2552022-08-26 Jakub Jelinek <jakub@redhat.com>
256
257 PR c++/106647
258 * charset.cc (wide_str_to_charconst): Implement P2362R3 - Remove
259 non-encodable wide character literals and multicharacter. For
260 C++23 use CPP_DL_ERROR instead of CPP_DL_WARNING for
261 "character constant too long for its type" diagnostics on CPP_WCHAR
262 literals.
263
2642022-08-26 Jakub Jelinek <jakub@redhat.com>
265
266 PR c++/106648
267 * charset.cc: Implement C++23 P2071R2 - Named universal character
268 escapes. Include uname2c.h.
269 (hangul_syllables, hangul_count): New variables.
270 (struct uname2c_data): New type.
271 (_cpp_uname2c, _cpp_uname2c_uax44_lm2): New functions.
272 (_cpp_valid_ucn): Use them. Handle named universal character escapes.
273 (convert_ucn): Adjust comment.
274 (convert_escape): Call convert_ucn even for \N.
275 (_cpp_interpret_identifier): Handle named universal character escapes.
276 * lex.cc (get_bidi_ucn): Fix up function comment formatting.
277 (get_bidi_named): New function.
278 (forms_identifier_p, lex_string): Handle named universal character
279 escapes.
280 * makeuname2c.cc: New file. Small parts copied from makeucnid.cc.
281 * uname2c.h: New generated file.
282
e8fc33aa
GA
2832022-08-24 Jakub Jelinek <jakub@redhat.com>
284
285 PR c++/106646
286 * init.cc: Implement C++23 P2437R1 - Support for #warning.
287 (lang_defaults): Set warning_directive for GNUCXX23 and CXX23.
288 * directives.cc (directive_diagnostics): Use different wording of
289 #warning pedwarn for C++.
290
d6a39c25
GA
2912022-08-20 Jakub Jelinek <jakub@redhat.com>
292
293 PR c++/106645
294 * include/cpplib.h (struct cpp_options): Implement
295 P2290R3 - Delimited escape sequences. Add delimite_escape_seqs
296 member.
297 * init.cc (struct lang_flags): Likewise.
298 (lang_defaults): Add delim column.
299 (cpp_set_lang): Copy over delimite_escape_seqs.
300 * charset.cc (extend_char_range): New function.
301 (_cpp_valid_ucn): Use it. Handle delimited escape sequences.
302 (convert_hex): Likewise.
303 (convert_oct): Likewise.
304 (convert_ucn): Use extend_char_range.
305 (convert_escape): Call convert_oct even for \o.
306 (_cpp_interpret_identifier): Handle delimited escape sequences.
307 * lex.cc (get_bidi_ucn_1): Likewise. Add end argument, fill it in.
308 (get_bidi_ucn): Adjust get_bidi_ucn_1 caller. Use end argument to
309 compute num_bytes.
310
30afe5e7
GA
3112022-08-18 Joseph Myers <joseph@codesourcery.com>
312
313 * include/cpplib.h (struct cpp_options): Add warning_directive.
314 * init.cc (struct lang_flags, lang_defaults): Add
315 warning_directive.
316 * directives.cc (DIRECTIVE_TABLE): Mark #warning as STDC2X not
317 EXTENSION.
318 (directive_diagnostics): Diagnose #warning with -Wc11-c2x-compat,
319 or with -pedantic for a standard not supporting #warning.
320
47a61e65
GA
3212022-08-16 Tom Honermann <tom@honermann.net>
322
323 PR c++/106423
324 * include/cpplib.h (cpp_warning_reason): Add CPP_W_CXX20_COMPAT.
325 * init.cc (cpp_create_reader): Add cpp_warn_cxx20_compat.
326
5f17badb
GA
3272022-08-08 Tom Honermann <tom@honermann.net>
328
329 PR preprocessor/106426
330 * charset.cc (narrow_str_to_charconst): Set signedness of CPP_UTF8CHAR
331 literals based on unsigned_utf8char.
332 * include/cpplib.h (cpp_options): Add unsigned_utf8char.
333 * init.cc (cpp_create_reader): Initialize unsigned_utf8char.
334
bdc7b765
GA
3352022-07-15 Jonathan Wakely <jwakely@redhat.com>
336
337 * include/line-map.h (label_text::take_or_copy): Remove.
338 (label_text::moved_from): Rename to release.
339 (label_text::m_buffer, label_text::m_owned): Make private.
340 (label_text::get, label_text::is_owned): New accessors.
341
cff72485
GA
3422022-07-13 Marek Polacek <polacek@redhat.com>
343
344 PR preprocessor/106272
345 * include/line-map.h (class label_text): Don't std::move in a return
346 statement.
347
b53ebbc5
GA
3482022-07-10 Lewis Hyatt <lhyatt@gmail.com>
349
350 PR preprocessor/97498
351 * directives.cc (destringize_and_run): Override the location of
352 the CPP_PRAGMA token from a _Pragma directive to the location of
353 the expansion point, as is done for the tokens lexed from it.
354
6345c414
GA
3552022-07-07 David Malcolm <dmalcolm@redhat.com>
356
357 * include/line-map.h: Include <utility>.
358 (class label_text): Delete maybe_free method in favor of a
359 destructor. Add move ctor and assignment operator. Add deletion
360 of the copy ctor and copy-assignment operator. Rename field
361 m_caller_owned to m_owned. Add std::move where necessary; add
362 moved_from member function.
363
fb29fdea
GA
3642022-06-28 Lewis Hyatt <lhyatt@gmail.com>
365
366 * ucnid.h: Regenerated for Unicode 14.0.
367
b2b72757
GA
3682022-06-26 Lewis Hyatt <lhyatt@gmail.com>
369
370 * generated_cpp_wcwidth.h: Generated from updated Unicode data files.
371
05f220c2
GA
3722022-05-29 Jakub Jelinek <jakub@redhat.com>
373
374 PR preprocessor/105732
375 * expr.cc (_cpp_parse_expr): Handle CPP_PADDING by just another
376 token.
377
57f2ce6a
GA
3782022-05-20 David Malcolm <dmalcolm@redhat.com>
379
380 * lex.cc: Replace uses of "FINAL" and "OVERRIDE" with "final" and
381 "override".
382
e8d68f0a
GA
3832022-02-11 Joseph Myers <joseph@codesourcery.com>
384
385 * Makefile.in (po/$(PACKAGE).pot): Also handle cpp_warning_at,
386 cpp_pedwarning_at and cpp_error_at.
387
ae7e4af9
GA
3882022-02-01 Jakub Jelinek <jakub@redhat.com>
389
390 PR preprocessor/104147
391 * macro.cc (funlike_invocation_p): For padding prefer a token
392 with val.source non-NULL especially if it has PREV_WHITE set
393 on val.source->flags. Add gcc_assert that CPP_PADDING tokens
394 don't have PREV_WHITE set in flags.
395
3962022-02-01 Jakub Jelinek <jakub@redhat.com>
397
398 * directives.cc (destringize_and_run): Push &pfile->avoid_paste
399 instead of a copy of pfile->directive_result for the CPP_PADDING
400 case.
401
bb99171b
GA
4022022-01-24 Marek Polacek <polacek@redhat.com>
403
404 PR preprocessor/104030
405 * include/cpplib.h (enum cpp_bidirectional_level): Add
406 bidirectional_ucn. Set values explicitly.
407 * internal.h (cpp_reader): Adjust warn_bidi_p.
408 * lex.cc (maybe_warn_bidi_on_close): Don't warn about UCNs
409 unless UCN checking is on.
410 (maybe_warn_bidi_on_char): Likewise.
411
7a761ae6
GA
4122022-01-18 Richard Biener <rguenther@suse.de>
413
414 * include/line-map.h (class line_maps): Re-arrange fields
415 to minimize padding.
416 (class rich_location): Likewise.
417 * line-map.cc (rich_location::rich_location): Adjust.
418
fc829782
GA
4192022-01-17 Martin Liska <mliska@suse.cz>
420
421 * Makefile.in: Rename .c names to .cc.
422
4232022-01-17 Martin Liska <mliska@suse.cz>
424
425 * Makefile.in: Rename .c names to .cc.
426 * charset.cc (convert_escape): Likewise.
427 * directives.cc (directive_diagnostics): Likewise.
428 (_cpp_handle_directive): Likewise.
429 (lex_macro_node): Likewise.
430 * include/cpplib.h (struct _cpp_file): Likewise.
431 (PURE_ZERO): Likewise.
432 (cpp_defined): Likewise.
433 (cpp_error_at): Likewise.
434 (cpp_forall_identifiers): Likewise.
435 (cpp_compare_macros): Likewise.
436 (cpp_get_converted_source): Likewise.
437 (cpp_read_state): Likewise.
438 (cpp_directive_only_process): Likewise.
439 (struct cpp_decoded_char): Likewise.
440 * include/line-map.h (enum lc_reason): Likewise.
441 (enum location_aspect): Likewise.
442 * include/mkdeps.h: Likewise.
443 * init.cc (cpp_destroy): Likewise.
444 (cpp_finish): Likewise.
445 * internal.h (struct cpp_reader): Likewise.
446 (_cpp_defined_macro_p): Likewise.
447 (_cpp_backup_tokens_direct): Likewise.
448 (_cpp_destroy_hashtable): Likewise.
449 (_cpp_has_header): Likewise.
450 (_cpp_expand_op_stack): Likewise.
451 (_cpp_commit_buff): Likewise.
452 (_cpp_restore_special_builtin): Likewise.
453 (_cpp_bracket_include): Likewise.
454 (_cpp_replacement_text_len): Likewise.
455 (ufputs): Likewise.
456 * line-map.cc (linemap_macro_loc_to_exp_point): Likewise.
457 (linemap_check_files_exited): Likewise.
458 (line_map_new_raw): Likewise.
459 * traditional.cc (enum ls): Likewise.
460
4612022-01-17 Martin Liska <mliska@suse.cz>
462
463 * charset.c: Moved to...
464 * charset.cc: ...here.
465 * directives.c: Moved to...
466 * directives.cc: ...here.
467 * errors.c: Moved to...
468 * errors.cc: ...here.
469 * expr.c: Moved to...
470 * expr.cc: ...here.
471 * files.c: Moved to...
472 * files.cc: ...here.
473 * identifiers.c: Moved to...
474 * identifiers.cc: ...here.
475 * init.c: Moved to...
476 * init.cc: ...here.
477 * lex.c: Moved to...
478 * lex.cc: ...here.
479 * line-map.c: Moved to...
480 * line-map.cc: ...here.
481 * macro.c: Moved to...
482 * macro.cc: ...here.
483 * makeucnid.c: Moved to...
484 * makeucnid.cc: ...here.
485 * mkdeps.c: Moved to...
486 * mkdeps.cc: ...here.
487 * pch.c: Moved to...
488 * pch.cc: ...here.
489 * symtab.c: Moved to...
490 * symtab.cc: ...here.
491 * traditional.c: Moved to...
492 * traditional.cc: ...here.
493
9248ee41
GA
4942022-01-15 Martin Sebor <msebor@redhat.com>
495
496 * files.c (_cpp_find_file): Substitute a valid pointer for
497 an invalid one to avoid -Wuse-after-free.
498
02a8a01b
GA
4992022-01-12 Clément Chigot <clement.chigot@atos.net>
500
501 * configure.ac: Check sizeof ino_t and dev_t.
502 * config.in: Regenerate.
503 * configure: Regenerate.
504 * include/cpplib.h (INO_T_CPP): Change for AIX.
505 (DEV_T_CPP): New macro.
506 (struct cpp_dir): Use it.
507
84790a9d
GA
5082021-12-30 Jakub Jelinek <jakub@redhat.com>
509
510 PR preprocessor/89971
511 * macro.c (replace_args): For ##__VA_OPT__, if __VA_OPT__ expands
512 to no tokens at all, drop PASTE_LEFT flag from the previous token.
513
70e4cb66
GA
5142021-12-04 Jakub Jelinek <jakub@redhat.com>
515
516 PR preprocessor/102432
517 * lex.c (_cpp_lex_direct): If buffer->need_line while
518 pfile->state.in_deferred_pragma, return CPP_PRAGMA_EOL token instead
519 of assertion failure.
520
03a9bd05
GA
5212021-12-03 Jakub Jelinek <jakub@redhat.com>
522
523 PR pch/71934
524 * include/line-map.h (class line_maps): Add GTY((callback)) to
525 reallocator and round_alloc_size members.
526
40fa651e
GA
5272021-12-01 Jakub Jelinek <jakub@redhat.com>
528
529 PR c++/100977
530 * init.c (struct lang_flags): Remove cxx23_identifiers.
531 (lang_defaults): Remove cxx23_identifiers initializers.
532 (cpp_set_lang): Don't copy cxx23_identifiers.
533 * include/cpplib.h (struct cpp_options): Adjust comment about
534 c11_identifiers. Remove cxx23_identifiers field.
535 * lex.c (warn_about_normalization): Use cplusplus instead of
536 cxx23_identifiers.
537 * charset.c (ucn_valid_in_identifier): Likewise.
538
5392021-12-01 Jakub Jelinek <jakub@redhat.com>
540
541 PR preprocessor/103415
542 * macro.c (stringify_arg): Remove va_opt argument and va_opt handling.
543 (paste_tokens): On successful paste or in PREV_WHITE and
544 PREV_FALLTHROUGH flags from the *plhs token to the new token.
545 (replace_args): Adjust stringify_arg callers. For #__VA_OPT__,
546 perform token pasting in a separate loop before stringify_arg call.
547
c177e806
GA
5482021-11-30 Richard Biener <rguenther@suse.de>
549
550 * charset.c (convert_escape): Remove unreachable break.
551
5522021-11-30 Jakub Jelinek <jakub@redhat.com>
553
554 PR c++/100977
555 * init.c (lang_defaults): Enable cxx23_identifiers for
556 -std={gnu,c}++{11,14,17,20} too.
557
87cd82c8
GA
5582021-11-29 Eric Gallager <egallager@gcc.gnu.org>
559
560 PR other/103021
561 * Makefile.in: Use ETAGS variable in TAGS target.
562 * configure: Regenerate.
563 * configure.ac: Allow ETAGS variable to be overridden.
564
e1d43592
GA
5652021-11-23 Christophe Lyon <christophe.lyon@foss.st.com>
566
567 PR preprocessor/103355
568 * system.h (ATTR_LIKELY): Fix definition.
569
5702021-11-23 Marek Polacek <polacek@redhat.com>
571 Jonathan Wakely <jwakely@redhat.com>
572
573 PR preprocessor/103355
574 * lex.c: Use ATTR_LIKELY instead of [[likely]].
575 * system.h (ATTR_LIKELY): Define.
576
06be28f6
GA
5772021-11-22 Jakub Jelinek <jakub@redhat.com>
578 Tobias Burnus <tobias@codesourcery.com>
579
580 PR preprocessor/103165
581 * internal.h (struct lexer_state): Add ignore__Pragma field.
582 * macro.c (builtin_macro): Don't interpret _Pragma if
583 pfile->state.ignore__Pragma.
584 (expand_arg): Temporarily set pfile->state.ignore__Pragma to 1.
585
280d2838
GA
5862021-11-17 David Malcolm <dmalcolm@redhat.com>
587
588 PR preprocessor/103026
589 * lex.c (struct bidi::context): New.
590 (bidi::vec): Convert to a vec of context rather than unsigned
591 char.
592 (bidi::ctx_at): Rename to...
593 (bidi::pop_kind_at): ...this and reimplement for above change.
594 (bidi::current_ctx): Update for change to vec.
595 (bidi::current_ctx_ucn_p): Likewise.
596 (bidi::current_ctx_loc): New.
597 (bidi::on_char): Update for usage of context struct. Add "loc"
598 param and pass it when pushing contexts.
599 (get_location_for_byte_range_in_cur_line): New.
600 (get_bidi_utf8): Rename to...
601 (get_bidi_utf8_1): ...this, reintroducing...
602 (get_bidi_utf8): ...as a wrapper, setting *OUT when the result is
603 not NONE.
604 (get_bidi_ucn): Rename to...
605 (get_bidi_ucn_1): ...this, reintroducing...
606 (get_bidi_ucn): ...as a wrapper, setting *OUT when the result is
607 not NONE.
608 (class unpaired_bidi_rich_location): New.
609 (maybe_warn_bidi_on_close): Use unpaired_bidi_rich_location when
610 reporting on unpaired bidi chars. Split into singular vs plural
611 spellings.
612 (maybe_warn_bidi_on_char): Pass in a location_t rather than a
613 const uchar * and use it when emitting warnings, and when calling
614 bidi::on_char.
615 (_cpp_skip_block_comment): Capture location when kind is not NONE
616 and pass it to maybe_warn_bidi_on_char.
617 (skip_line_comment): Likewise.
618 (forms_identifier_p): Likewise.
619 (lex_raw_string): Likewise.
620 (lex_string): Likewise.
621
6222021-11-17 David Malcolm <dmalcolm@redhat.com>
623
624 PR preprocessor/103026
625 * lex.c (maybe_warn_bidi_on_close): Use a rich_location
626 and call set_escape_on_output (true) on it.
627 (maybe_warn_bidi_on_char): Likewise.
628
6292021-11-17 Jakub Jelinek <jakub@redhat.com>
630
631 PR preprocessor/103130
632 * lex.c (cpp_directive_only_process): Treat even \*/ as end of block
633 comment.
634
6352021-11-17 Marek Polacek <polacek@redhat.com>
636
637 PR preprocessor/103026
638 * include/cpplib.h (enum cpp_bidirectional_level): New.
639 (struct cpp_options): Add cpp_warn_bidirectional.
640 (enum cpp_warning_reason): Add CPP_W_BIDIRECTIONAL.
641 * internal.h (struct cpp_reader): Add warn_bidi_p member
642 function.
643 * init.c (cpp_create_reader): Set cpp_warn_bidirectional.
644 * lex.c (bidi): New namespace.
645 (get_bidi_utf8): New function.
646 (get_bidi_ucn): Likewise.
647 (maybe_warn_bidi_on_close): Likewise.
648 (maybe_warn_bidi_on_char): Likewise.
649 (_cpp_skip_block_comment): Implement warning about bidirectional
650 control characters.
651 (skip_line_comment): Likewise.
652 (forms_identifier_p): Likewise.
653 (lex_identifier): Likewise.
654 (lex_string): Likewise.
655 (lex_raw_string): Likewise.
656
cf82e8d9
GA
6572021-11-01 David Malcolm <dmalcolm@redhat.com>
658
659 * charset.c (convert_escape): Use encoding_rich_location when
660 complaining about nonprintable unknown escape sequences.
661 (cpp_display_width_computation::::cpp_display_width_computation):
662 Pass in policy rather than tabstop.
663 (cpp_display_width_computation::process_next_codepoint): Add "out"
664 param and populate *out if non-NULL.
665 (cpp_display_width_computation::advance_display_cols): Pass NULL
666 to process_next_codepoint.
667 (cpp_byte_column_to_display_column): Pass in policy rather than
668 tabstop. Pass NULL to process_next_codepoint.
669 (cpp_display_column_to_byte_column): Pass in policy rather than
670 tabstop.
671 * errors.c (cpp_diagnostic_get_current_location): New function,
672 splitting out the logic from...
673 (cpp_diagnostic): ...here.
674 (cpp_warning_at): New function.
675 (cpp_pedwarning_at): New function.
676 * include/cpplib.h (cpp_warning_at): New decl for rich_location.
677 (cpp_pedwarning_at): Likewise.
678 (struct cpp_decoded_char): New.
679 (struct cpp_char_column_policy): New.
680 (cpp_display_width_computation::cpp_display_width_computation):
681 Replace "tabstop" param with "policy".
682 (cpp_display_width_computation::process_next_codepoint): Add "out"
683 param.
684 (cpp_display_width_computation::m_tabstop): Replace with...
685 (cpp_display_width_computation::m_policy): ...this.
686 (cpp_byte_column_to_display_column): Replace "tabstop" param with
687 "policy".
688 (cpp_display_width): Likewise.
689 (cpp_display_column_to_byte_column): Likewise.
690 * include/line-map.h (rich_location::escape_on_output_p): New.
691 (rich_location::set_escape_on_output): New.
692 (rich_location::m_escape_on_output): New.
693 * internal.h (cpp_diagnostic_get_current_location): New decl.
694 (class encoding_rich_location): New.
695 * lex.c (skip_whitespace): Use encoding_rich_location when
696 complaining about null characters.
697 (warn_about_normalization): Generate a source range when
698 complaining about improperly normalized tokens, rather than just a
699 point, and use encoding_rich_location so that the source code
700 is escaped on printing.
701 * line-map.c (rich_location::rich_location): Initialize
702 m_escape_on_output.
703
4c61300f
GA
7042021-10-29 Tobias Burnus <tobias@codesourcery.com>
705
706 PR c++/102409
707 * directives.c (destringize_and_run): Add PRAGMA_OP to the
708 CPP_PRAGMA token's flags to mark is as coming from _Pragma.
709 * include/cpplib.h (PRAGMA_OP): #define, to be used with token flags.
710 * macro.c (collect_args): Only handle CPP_PRAGMA special if PRAGMA_OP
711 is set.
712
c2bd5d8a
GA
7132021-10-22 Eric Gallager <egallager@gcc.gnu.org>
714
715 PR other/102663
716 * Makefile.in: Add dummy install-dvi target.
717
ce4d1f63
GA
7182021-10-18 Martin Liska <mliska@suse.cz>
719
720 * charset.c (convert_oct): Remove unused but set variable.
721
57c7ec62
GA
7222021-10-06 Jakub Jelinek <jakub@redhat.com>
723
724 * init.c (lang_defaults): Implement P2334R1, enable elifdef for
725 -std=c++23 and -std=gnu++23.
726 * directives.c (_cpp_handle_directive): Support elifdef/elifndef if
727 either CPP_OPTION (pfile, elifdef) or !CPP_OPTION (pfile, std).
728 (do_elif): For older non-std modes if pedantic pedwarn about
729 #elifdef/#elifndef directives that change behavior.
730
e11c6046
GA
7312021-09-01 Jakub Jelinek <jakub@redhat.com>
732
733 PR c++/100977
734 * include/cpplib.h (struct cpp_options): Add cxx23_identifiers.
735 * charset.c (CXX23, NXX23): New enumerators.
736 (CID, NFC, NKC, CTX): Renumber.
737 (ucn_valid_in_identifier): Implement P1949R7 - use CXX23 and
738 NXX23 flags for cxx23_identifiers. For start character in
739 non-pedantic mode, allow characters that are allowed as start
740 characters in any of the supported language modes, rather than
741 disallowing characters allowed only as non-start characters in
742 current mode but for characters from other language modes allowing
743 them even if they are never allowed at start.
744 * init.c (struct lang_flags): Add cxx23_identifiers.
745 (lang_defaults): Add cxx23_identifiers column.
746 (cpp_set_lang): Initialize CPP_OPTION (pfile, cxx23_identifiers).
747 * lex.c (warn_about_normalization): If cxx23_identifiers, use
748 cpp_pedwarning_with_line instead of cpp_warning_with_line for
749 "is not in NFC" diagnostics.
750 * makeucnid.c: Adjust usage comment.
751 (CXX23, NXX23): New enumerators.
752 (all_languages): Add CXX23.
753 (not_NFC, not_NFKC, maybe_not_NFC): Renumber.
754 (read_derivedcore): New function.
755 (write_table): Print also CXX23 and NXX23 columns.
756 (main): Require 5 arguments instead of 4, call read_derivedcore.
757 * ucnid.h: Regenerated using Unicode 13.0.0 files.
758
7592021-09-01 Jason Merrill <jason@redhat.com>
760
761 * macro.c (replace_args): When __VA_OPT__ is on the LHS of ##,
762 remove trailing avoid_paste tokens.
763
7642021-09-01 Jakub Jelinek <jakub@redhat.com>
765
766 PR preprocessor/101488
767 * macro.c (replace_args): Fix up handling of CPP_PADDING tokens at the
768 start or end of __VA_OPT__ arguments when preceeded or followed by ##.
769
6d51ee43
GA
7702021-08-31 Martin Sebor <msebor@redhat.com>
771
772 * include/line-map.h (class rich_location): Disable copying and
773 assignment.
774
85d77ac4
GA
7752021-08-25 Lewis Hyatt <lhyatt@gmail.com>
776
777 PR other/93067
778 * charset.c (init_iconv_desc): Adapt to permit PFILE argument to
779 be NULL.
780 (_cpp_convert_input): Likewise. Also move UTF-8 BOM logic to...
781 (cpp_check_utf8_bom): ...here. New function.
782 (cpp_input_conversion_is_trivial): New function.
783 * files.c (read_file_guts): Allow PFILE argument to be NULL. Add
784 INPUT_CHARSET argument as an alternate source of this information.
785 (read_file): Pass the new argument to read_file_guts.
786 (cpp_get_converted_source): New function.
787 * include/cpplib.h (struct cpp_converted_source): Declare.
788 (cpp_get_converted_source): Declare.
789 (cpp_input_conversion_is_trivial): Declare.
790 (cpp_check_utf8_bom): Declare.
791
2d14d64b
GA
7922021-08-17 Jakub Jelinek <jakub@redhat.com>
793
794 * macro.c (vaopt_state): Add m_stringify member.
795 (vaopt_state::vaopt_state): Initialize it.
796 (vaopt_state::update): Overwrite it.
797 (vaopt_state::stringify): New method.
798 (stringify_arg): Replace arg argument with first, count arguments
799 and add va_opt argument. Use first instead of arg->first and
800 count instead of arg->count, for va_opt add paste_tokens handling.
801 (paste_tokens): Fix up len calculation. Don't spell rhs twice,
802 instead use %.*s to supply lhs and rhs spelling lengths. Don't call
803 _cpp_backup_tokens here.
804 (paste_all_tokens): Call it here instead.
805 (replace_args): Adjust stringify_arg caller. For vaopt_state::END
806 if stringify is true handle __VA_OPT__ stringification.
807 (create_iso_definition): Handle # __VA_OPT__ similarly to # macro_arg.
808
72be20e2
GA
8092021-08-12 Jakub Jelinek <jakub@redhat.com>
810
811 PR preprocessor/101638
812 * macro.c (cpp_sys_macro_p): Return true instead of
813 crashing on builtin macros.
814
8ebf4fb5
GA
8152021-08-05 Jakub Jelinek <jakub@redhat.com>
816
817 PR c++/100977
818 * ucnid.h: Regenerated using Unicode 13.0.0 files.
819
8202021-08-05 Jakub Jelinek <jakub@redhat.com>
821
822 PR c++/100977
823 * makeucnid.c (write_table): Fix computation of last_combine.
824 * ucnid.h: Regenerated using Unicode 6.3.0 files.
825
9a61dfdb
GA
8262021-06-16 Jason Merrill <jason@redhat.com>
827
828 PR c++/100796
829 PR preprocessor/96391
830 * line-map.c (linemap_compare_locations): Only use comparison with
831 LINE_MAP_MAX_LOCATION_WITH_COLS to avoid abort.
832
ea34e2ed
GA
8332021-05-20 Christophe Lyon <christophe.lyon@linaro.org>
834 Torbjörn Svensson <torbjorn.svensson@st.com>
835
836 PR c/42579
837 * include/cpplib.h (cpp_builtin_type): Add BT_FILE_NAME entry.
838 * init.c (builtin_array): Likewise.
839 * macro.c (_cpp_builtin_macro_text): Add support for BT_FILE_NAME.
840
8412021-05-20 Jakub Jelinek <jakub@redhat.com>
842
843 PR preprocessor/100646
844 * lex.c (cpp_directive_only_process): Treat end of file as termination
845 for !is_block comments.
846
0ff3a0f2
GA
8472021-05-12 Jakub Jelinek <jakub@redhat.com>
848
849 PR preprocessor/100392
850 * lex.c (cpp_directive_only_process): If buffer doesn't end with '\n',
851 add buffer->rlimit[0] character to the printed range and
852 CPP_INCREMENT_LINE and increment line_count.
853
037e3661
GA
8542021-05-11 Joseph Myers <joseph@codesourcery.com>
855
856 * include/cpplib.h (struct cpp_options): Add elifdef.
857 * init.c (struct lang_flags): Add elifdef.
858 (lang_defaults): Update to include elifdef initializers.
859 (cpp_set_lang): Set elifdef for pfile based on language.
860 * directives.c (STDC2X, ELIFDEF): New macros.
861 (EXTENSION): Increase value to 3.
862 (DIRECTIVE_TABLE): Add #elifdef and #elifndef.
863 (_cpp_handle_directive): Do not treat ELIFDEF directives as
864 directives for language versions without the #elifdef feature.
865 (do_elif): Handle #elifdef and #elifndef.
866 (do_elifdef, do_elifndef): New functions.
867
8682021-05-11 Joseph Myers <joseph@codesourcery.com>
869
870 * lex.c (cpp_avoid_paste): Do not allow pasting CPP_NUMBER with
871 CPP_CHAR.
872
8732021-05-11 Joseph Myers <joseph@codesourcery.com>
874
875 * init.c (lang_defaults): Enable digit separators for GNUC2X and
876 STDC2X.
877
62d87a32
GA
8782021-05-07 Jakub Jelinek <jakub@redhat.com>
879
880 PR c/100450
881 * lex.c (cpp_avoid_paste): Handle token1 CPP_PRAGMA like CPP_NAME.
882
cfe82a0c
GA
8832021-05-06 Joseph Myers <joseph@codesourcery.com>
884
885 PR c++/83873
886 PR preprocessor/97604
887 * lex.c (lex_number): Reject adjacent digit separators here. Do
888 not allow digit separators before '.' or an exponent with sign.
889 * expr.c (cpp_classify_number): Do not check for adjacent digit
890 separators here.
891
e690396d
GA
8922021-05-03 H.J. Lu <hjl.tools@gmail.com>
893
894 PR bootstrap/99703
895 * configure: Regenerated.
896
3c8e539d
GA
8972021-04-29 Joseph Myers <joseph@codesourcery.com>
898
899 PR preprocessor/82359
900 * directives.c (strtolinenum): Handle digit separators.
901
6e81e015
GA
9022021-04-19 Richard Biener <rguenther@suse.de>
903
904 PR preprocessor/100142
905 * line-map.c (linemap_position_for_loc_and_offset): Revert
906 unintended s/column_offset/column/ change.
907
6d0d35d5
GA
9082021-04-13 Nathan Sidwell <nathan@acm.org>
909
910 PR preprocessor/99446
911 * line-map.c (line-map.c): Do not advance to linemaps for
912 different files.
913
9142021-04-13 Eric Botcazou <ebotcazou@adacore.com>
915
916 * include/line-map.h (IS_MACRO_LOC): Delete.
917 * line-map.c (linemap_location_from_macro_expansion_p): Test
918 LINEMAPS_MACRO_LOWEST_LOCATION of the linemap.
919
d97a92dc
GA
9202021-03-02 David Malcolm <dmalcolm@redhat.com>
921
922 PR c/99323
923 * line-map.c (rich_location::maybe_add_fixit): Reject fix-it hints
924 at column 0.
925
4028d01a
GA
9262021-02-24 Nathan Sidwell <nathan@acm.org>
927
928 PR c++/98718
929 * include/line-map.h
930 * line-map.c
931
9322021-02-24 Nathan Sidwell <nathan@acm.org>
933
934 PR c++/99072
935 * init.c (read_original_filename): Expunge all evidence of the
936 original filename.
937
bf81237e
GA
9382021-02-18 Nathan Sidwell <nathan@acm.org>
939
940 PR c++/99023
941 * include/cpplib.h (cpp_find_header_unit): Rename to ...
942 (cpp_probe_header_unit): ... this.
943 * internal.h (_cp_find_header_unit): Declare.
944 * files.c (cpp_find_header_unit): Break apart to ..
945 (test_header_unit): ... this, and ...
946 (_cpp_find_header_unit): ... and, or and ...
947 (cpp_probe_header_unit): ... this.
948 * macro.c (cpp_get_token_1): Call _cpp_find_header_unit.
949
0e804ce3
GA
9502021-02-16 Nathan Sidwell <nathan@acm.org>
951
952 * files.c (_cpp_stack_file): Make buffers end in unread \n.
953
4b37c3ea
GA
9542021-02-10 David Malcolm <dmalcolm@redhat.com>
955
956 PR preprocessor/96391
957 * line-map.c (linemap_compare_locations): Require that
958 the location be <= LINE_MAP_MAX_LOCATION_WITH_COLS when
959 treating locations as coming from the same macro expansion.
960
a19dd5e6
GA
9612021-02-04 Jakub Jelinek <jakub@redhat.com>
962
963 * expr.c (cpp_classify_number): Use make_signed_t<size_t> instead of
964 make_signed<size_t>::type in the diagnostics.
965
9faaa807
GA
9662021-02-03 Jakub Jelinek <jakub@redhat.com>
967
968 PR preprocessor/98882
969 * lex.c (cpp_directive_only_process): Don't assert that rlimit[-1]
970 is a newline, instead assert that rlimit[0] is either newline or
971 carriage return. When seeing '\\' followed by '\r', check limit
972 before accessing pos[1].
973
9742021-02-03 Ed Smith-Rowland <3dw4rd@verizon.net>
975
976 * expr.c (interpret_int_suffix): Detect 'z' integer suffix.
977 (cpp_classify_number): Compat warning for use of 'z' suffix.
978 * include/cpplib.h (struct cpp_options): New flag.
979 (enum cpp_warning_reason): New flag.
980 (CPP_N_USERDEF): Comment C++0x -> C++11.
981 (CPP_N_SIZE_T): New flag for cpp_classify_number.
982 * init.c (cpp_set_lang): Initialize new flag.
983
aa69f0a8
GA
9842021-01-27 liuhongt <hongtao.liu@intel.com>
985
986 PR target/98833
987 * lex.c (search_line_sse2): Replace builtins with == operator.
988
e62bb7f0
GA
9892021-01-26 Paul Fee <paul.f.fee@gmail.com>
990
991 * include/cpplib.h (c_lang): Add CXX23 and GNUCXX23.
992 * init.c (lang_defaults): Add rows for CXX23 and GNUCXX23.
993 (cpp_init_builtins): Set __cplusplus to 202100L for C++23.
994
2f7f0d32
GA
9952021-01-15 Nathan Sidwell <nathan@acm.org>
996
997 PR preprocessor/95253
998 * mkdeps.c (munge): Do not escape ':'.
999
d52945ce
GA
10002020-12-14 Nathan Sidwell <nathan@acm.org>
1001
1002 * include/cpplib.h (struct cpp_macro): Add imported_p field.
1003 (struct cpp_hashnode): Tweak deferred field documentation.
1004 * macro.c (_cpp_new_macro): Clear new field.
1005 (cpp_get_deferred_macro, get_deferred_or_lazy_macro): Assert
1006 more.
1007
35af8778
GA
10082020-12-10 Jason Merrill <jason@redhat.com>
1009
1010 * init.c (cpp_init_builtins): Update __cplusplus for C++20.
1011
e0f5e792
GA
10122020-12-01 JeanHeyd Meneide <phdofthehouse@gmail.com>
1013
1014 * charset.c (init_iconv_desc): Initialize "to" and "from" fields.
1015 * directives.c (cpp_get_narrow_charset_name): New function.
1016 (cpp_get_wide_charset_name): Likewise.
1017 * include/cpplib.h (cpp_get_narrow_charset_name): Prototype.
1018 (cpp_get_wide_charset_name): Likewise.
1019 * internal.h (cset_converter): Add "to" and "from" fields.
1020
e87559d2
GA
10212020-11-27 Joseph Myers <joseph@codesourcery.com>
1022
1023 PR preprocessor/97602
1024 * directives.c (strtolinenum): Check for overflow before it
1025 occurs. Correct comment.
1026
1e2c9a27
GA
10272020-11-24 Nathan Sidwell <nathan@acm.org>
1028
1029 * include/cpplib.h (struct cpp_hashnode): Add deferred field.
1030 (cpp_set_deferred_macro): Define.
1031 (cpp_get_deferred_macro): Declare.
1032 (cpp_macro_definition): Reformat, add overload.
1033 (cpp_macro_definition_location): Deal with deferred macro.
1034 (cpp_alloc_token_string, cpp_compare_macro): Declare.
1035 * internal.h (_cpp_notify_macro_use): Return bool
1036 (_cpp_maybe_notify_macro_use): Likewise.
1037 * directives.c (do_undef): Check macro is not undef before
1038 warning.
1039 (do_ifdef, do_ifndef): Deal with deferred macro.
1040 * expr.c (parse_defined): Likewise.
1041 * lex.c (cpp_allocate_token_string): Break out of ...
1042 (create_literal): ... here. Call it.
1043 (cpp_maybe_module_directive): Deal with deferred macro.
1044 * macro.c (cpp_get_token_1): Deal with deferred macro.
1045 (warn_of_redefinition): Deal with deferred macro.
1046 (compare_macros): Rename to ...
1047 (cpp_compare_macro): ... here. Make extern.
1048 (cpp_get_deferred_macro): New.
1049 (_cpp_notify_macro_use): Deal with deferred macro, return bool
1050 indicating definedness.
1051 (cpp_macro_definition): Deal with deferred macro.
1052
d62586ee
GA
10532020-11-19 Nathan Sidwell <nathan@acm.org>
1054
1055 * include/cpplib.h (enum cpp_main_search): New.
1056 (struct cpp_options): Add main_search field.
1057 (cpp_main_loc): Declare.
1058 (cpp_retrofit_as_include): Declare.
1059 * internal.h (struct cpp_reader): Add main_loc field.
1060 (_cpp_in_main_source_file): Not main if main is a header.
1061 * init.c (cpp_read_main_file): Use main_search option to locate
1062 main file. Set main_loc
1063 * files.c (cpp_retrofit_as_include): New.
1064
10652020-11-19 Nathan Sidwell <nathan@acm.org>
1066
1067 * internal.h (cpp_in_system_header): Rename to ...
1068 (_cpp_in_system_header): ... here.
1069 (cpp_in_primary_file): Rename to ...
1070 (_cpp_in_main_source_file): ... here. Compare main_file equality
1071 and check main_search value.
1072 * lex.c (maybe_va_opt_error, _cpp_lex_direct): Adjust for rename.
1073 * macro.c (_cpp_builtin_macro_text): Likewise.
1074 (replace_args): Likewise.
1075 * directives.c (do_include_next): Likewise.
1076 (do_pragma_once, do_pragma_system_header): Likewise.
1077 * files.c (struct _cpp_file): Delete main_file field.
1078 (pch_open): Check pfile->main_file equality.
1079 (make_cpp_file): Drop cpp_reader parm, don't set main_file.
1080 (_cpp_find_file): Adjust.
1081 (_cpp_stack_file): Check pfile->main_file equality.
1082 (struct report_missing_guard_data): Add cpp_reader field.
1083 (report_missing_guard): Check pfile->main_file equality.
1084 (_cpp_report_missing_guards): Adjust.
1085
25bb75f8
GA
10862020-11-18 Nathan Sidwell <nathan@acm.org>
1087
1088 * include/cpplib.h (struct cpp_options): Add module_directives
1089 option.
1090 (NODE_MODULE): New node flag.
1091 (struct cpp_hashnode): Make rid-code a bitfield, increase bits in
1092 flags and swap with type field.
1093 * init.c (post_options): Create module-directive identifier nodes.
1094 * internal.h (struct lexer_state): Add directive_file_token &
1095 n_modules fields. Add module node enumerator.
1096 * lex.c (cpp_maybe_module_directive): New.
1097 (_cpp_lex_token): Call it.
1098 (cpp_output_token): Add '"' around CPP_HEADER_NAME token.
1099 (do_peek_ident, do_peek_module): New.
1100 (cpp_directives_only): Detect module-directive lines.
1101 * macro.c (cpp_get_token_1): Deal with directive_file_token
1102 triggering.
1103
11042020-11-18 Nathan Sidwell <nathan@acm.org>
1105
1106 * files.c (struct _cpp_file): Add header_unit field.
1107 (_cpp_stack_file): Add header unit support.
1108 (cpp_find_header_unit): New.
1109 * include/cpplib.h (cpp_find_header_unit): Declare.
1110
11112020-11-18 Nathan Sidwell <nathan@acm.org>
1112
1113 * include/cpplib.h (struct cpp_options): Add modules to
1114 dep-options.
1115 * include/mkdeps.h (deps_add_module_target): Declare.
1116 (deps_add_module_dep): Declare.
1117 * mkdeps.c (class mkdeps): Add modules, module_name, cmi_name,
1118 is_header_unit fields. Adjust cdtors.
1119 (deps_add_module_target, deps_add_module_dep): New.
1120 (make_write): Write module dependencies, if enabled.
1121
4dabb037
GA
11222020-11-17 Nathan Sidwell <nathan@acm.org>
1123
1124 * include/cpplib.h (struct cpp_callbacks): Add
1125 user_deferred_macro & translate_include.
1126
11272020-11-17 Nathan Sidwell <nathan@acm.org>
1128
1129 * include/line-map.h (enum lc_reason): Add LC_MODULE.
1130 (MAP_MODULE_P): New.
1131 (line_map_new_raw): Declare.
1132 (linemap_enter_macro): Move declaration from internal.h
1133 (linemap_module_loc, linemap_module_reparent)
1134 (linemap_module_restore): Declare.
1135 (linemap_lookup_macro_indec): Declare.
1136 * internal.h (linemap_enter_macro): Moved to line-map.h.
1137 * line-map.c (linemap_new_raw): New, broken out of ...
1138 (new_linemap): ... here. Call it.
1139 (LAST_SOURCE_LINE_LOCATION): New.
1140 (liemap_module_loc, linemap_module_reparent)
1141 (linemap_module_restore): New.
1142 (linemap_lookup_macro_index): New, broken out of ...
1143 (linemap_macro_map_lookup): ... here. Call it.
1144 (linemap_dump): Add module dump.
1145
11462020-11-17 Nathan Sidwell <nathan@acm.org>
1147
1148 PR preprocessor/97858
1149 * mkdeps.c (munge): Drop varadic args, we only ever use one.
1150
77f67db2
GA
11512020-11-13 Joseph Myers <joseph@codesourcery.com>
1152
1153 * expr.c (cpp_classify_number): Update diagnostic for binary
1154 constants for C. Also diagnose binary constants for
1155 -Wc11-c2x-compat.
1156 * init.c (lang_defaults): Enable binary constants for GNUC2X and
1157 STDC2X.
1158
11592020-11-13 Piotr H. Dabrowski <phd@phd.re>
1160
1161 PR c++/91318
1162 * include/cpplib.h: Added cpp_define_unused(), cpp_define_formatted_unused()
1163 * directives.c: Likewise.
1164
a5a11525
GA
11652020-11-12 Joseph Myers <joseph@codesourcery.com>
1166
1167 * include/cpplib.h (struct cpp_callbacks): Add bool argument to
1168 has_attribute.
1169 (enum cpp_builtin_type): Add BT_HAS_STD_ATTRIBUTE.
1170 * init.c (builtin_array): Add __has_c_attribute.
1171 (cpp_init_special_builtins): Handle BT_HAS_STD_ATTRIBUTE.
1172 * macro.c (_cpp_builtin_macro_text): Handle BT_HAS_STD_ATTRIBUTE.
1173 Update call to has_attribute for BT_HAS_ATTRIBUTE.
1174 * traditional.c (fun_like_macro): Handle BT_HAS_STD_ATTRIBUTE.
1175
11762020-11-12 Nicholas Guriev <guriev-ns@ya.ru>
1177
1178 PR pch/86674
1179 * files.c (_cpp_find_file): Use CPP_DL_NOTE not CPP_DL_ERROR in call to
1180 cpp_error.
1181
2da7ee05
GA
11822020-11-07 Lewis Hyatt <lhyatt@gmail.com>
1183
1184 * generated_cpp_wcwidth.h: Regenerated from Unicode 13.0.0 data.
1185
44cab2d8
GA
11862020-11-06 Nathan Sidwell <nathan@acm.org>
1187
1188 * include/cpplib.h (enum class CPP_time_kind): New.
1189 (cpp_get_date): Declare.
1190 * internal.h (struct cpp_reader): Replace source_date_epoch with
1191 time_stamp and time_stamp_kind.
1192 * init.c (cpp_create_reader): Initialize them.
1193 * macro.c (_cpp_builtin_macro_text): Use cpp_get_date.
1194 (cpp_get_date): Broken out from _cpp_builtin_macro_text and
1195 genericized.
1196
fd2325ea
GA
11972020-11-03 Nathan Sidwell <nathan@acm.org>
1198
1199 * lex.c (cpp_peek_token): Do not peek past CPP_PRAGMA.
1200 (_cpp_lex_direct): Handle EOF in pragma when setting need_line,
1201 not when needing a line.
1202
12032020-11-03 Nathan Sidwell <nathan@acm.org>
1204
1205 * lex.c (_cpp_clean_line): Fix DOS off-by-one error.
1206
12072020-11-03 Nathan Sidwell <nathan@acm.org>
1208
1209 * init.c (cpp_read_main_file): Use cpp_get_deps result.
1210
12112020-11-03 Nathan Sidwell <nathan@acm.org>
1212
1213 * include/mkdeps.h: Include cpplib.h
1214 (deps_write): Adjust first parm type.
1215 * mkdeps.c: Include internal.h
1216 (make_write): Adjust first parm type. Check phony option
1217 directly.
1218 (deps_write): Adjust first parm type.
1219 * init.c (cpp_read_main_file): Use get_deps.
1220 * directives.c (cpp_get_deps): Check option before initializing.
1221
88ce3d5f
GA
12222020-11-02 Nathan Sidwell <nathan@acm.org>
1223
1224 * internal.h (_cpp_notify_macro_use): Add location parm.
1225 (_cpp_maybe_notify_macro_use): Likewise.
1226 * directives.c (_cpp_do_file_change): Check we've not changed file
1227 when optimizing a rewind.
1228 (do_ifdef): Pass location to _cpp_maybe_notify_macro_use.
1229 (do_ifndef): Likewise. Delete obsolete comment about powerpc.
1230 * expr.c (parse_defined): Pass location to
1231 _cpp_maybe_notify_macro_use.
1232 * macro.c (enter_macro_context): Likewise.
1233 (warn_of_redefinition): Break out helper function. Call it.
1234 (compare_macros): New function broken out of warn_of_redefinition.
1235 (_cpp_new_macro): Zero all fields.
1236 (_cpp_notify_macro_use): Add location parameter.
1237
e2e04288
GA
12382020-10-20 Nathan Sidwell <nathan@acm.org>
1239
1240 * lex.c (_cpp_lex_direct): Do not complete EOF processing when
1241 parsing_args.
1242 * macro.c (collect_args): Do not unwind fake EOF.
1243 (funlike_invocation_p): Do not unwind fake EOF.
1244 (cpp_context): Replace abort with gcc_assert.
1245
970d683f
GA
12462020-10-19 Nathan Sidwell <nathan@acm.org>
1247
1248 * internal.h (struct cpp_reader): Rename 'eof' field to 'endarg'.
1249 * init.c (cpp_create_reader): Adjust.
1250 * macro.c (collect_args): Use endarg for separator. Always rewind
1251 in the not-fn case.
1252
da9df699
GA
12532020-10-08 Nathan Sidwell <nathan@acm.org>
1254
1255 * internal.h (enum include_type): Rename IT_MAIN_INJECT to
1256 IT_PRE_MAIN.
1257 * init.c (cpp_read_main_file): If there is no line marker, adjust
1258 the initial line marker.
1259 (read_original_filename): Return bool, peek the buffer directly
1260 before trying to tokenize.
1261 (read_original_directory): Likewise. Directly prod the string
1262 literal.
1263 * files.c (_cpp_stack_file): Adjust for IT_PRE_MAIN change.
1264
91dd4a38
GA
12652020-09-26 Jakub Jelinek <jakub@redhat.com>
1266
1267 PR bootstrap/97163
1268 * lex.c (search_line_fast): Only use _ARCH_PWR8 Altivec version
1269 for GCC >= 4.5.
1270
2aad20c0
GA
12712020-09-17 Patrick Palka <ppalka@redhat.com>
1272
1273 PR c/80076
1274 * include/line-map.h (first_map_in_common): Declare.
1275 * line-map.c (first_map_in_common): Remove static.
1276
a995c40d
GA
12772020-09-07 Martin Storsjö <martin@martin.st>
1278
1279 * files.c (remap_filename): Make a strchr return value pointer
1280 to const.
1281
d48cca8f
GA
12822020-07-30 H.J. Lu <hjl.tools@gmail.com>
1283
1284 PR bootstrap/96202
1285 * configure: Regenerated.
1286
bea7a391
GA
12872020-07-29 Tiziano Müller <tiziano.mueller@chem.uzh.ch>
1288
1289 * init.c (builtin_array): Add xref comment.
1290 * traditional.c (fun_like_macro): Add HAS_INCLUDE codes.
1291
7ebb7d0c
GA
12922020-07-28 Jakub Jelinek <jakub@redhat.com>
1293
1294 PR preprocessor/96323
1295 * lex.c (lex_raw_string): For c == '\n' don't continue after reporting
1296 an prefix delimiter error.
1297
12982020-07-28 Nathan Sidwell <nathan@acm.org>
1299
1300 * init.c (cpp_read_main_file): Always use the last map for
1301 the return value.
1302
0933f508
GA
13032020-07-20 Nathan Sidwell <nathan@acm.org>
1304
1305 * line-map.c (linemap_add): Simplify column overflow calculation.
1306 Add comment about range and column bit init.
1307 (linemap_ordinary_map_lookup): Refactor for RAII
1308 (linemap_macro_map_lookup): Likewise.
1309
8ca07a30
GA
13102020-07-14 Lewis Hyatt <lhyatt@gmail.com>
1311
1312 PR preprocessor/49973
1313 PR other/86904
1314 * include/cpplib.h (struct cpp_options): Removed support for -ftabstop,
1315 which is now handled by diagnostic_context.
1316 (class cpp_display_width_computation): New class.
1317 (cpp_byte_column_to_display_column): Add optional tabstop argument.
1318 (cpp_display_width): Likewise.
1319 (cpp_display_column_to_byte_column): Likewise.
1320 * charset.c
1321 (cpp_display_width_computation::cpp_display_width_computation): New
1322 function.
1323 (cpp_display_width_computation::advance_display_cols): Likewise.
1324 (compute_next_display_width): Removed and implemented this
1325 functionality in a new function...
1326 (cpp_display_width_computation::process_next_codepoint): ...here.
1327 (cpp_byte_column_to_display_column): Added tabstop argument.
1328 Reimplemented in terms of class cpp_display_width_computation.
1329 (cpp_display_column_to_byte_column): Likewise.
1330 * init.c (cpp_create_reader): Remove handling of -ftabstop, which is now
1331 handled by diagnostic_context.
1332
f60ee68d
GA
13332020-07-07 Nathan Sidwell <nathan@acm.org>
1334
1335 * directives.c (do_linemarker): Optimize rewinding to line zero.
1336 * files.c (_cpp_stack_file): Start on line zero when about to inject
1337 headers.
1338 (cpp_push_include, cpp_push_default_include): Use highest_line as
1339 the location.
1340 * include/cpplib.h (cpp_read_main_file): Add injecting parm.
1341 * init.c (cpp_read_main_file): Likewise, inform _cpp_stack_file.
1342 * internal.h (enum include_type): Add IT_MAIN_INJECT.
1343
885ef72f
GA
13442020-05-29 H.J. Lu <hjl.tools@gmail.com>
1345
1346 PR bootstrap/95413
1347 * configure: Regenerated.
1348
731c4ce0
DE
13492020-05-23 David Edelsohn <dje.gcc@gmail.com>
1350
1351 * Makefile.in (AR): Substitute @AR@.
1352 * configure.ac (CHECK_PROG AR): New.
1353 * configure: Regenerate.
1354
4623a6f2
NS
13552020-05-20 Nathan Sidwell <nathan@acm.org>
1356
1357 * internal.h (typedef _cpp_file): Delete, unnecessary in C++.
1358 (enum _cpp_find_file_kind): New.
1359 (_cpp_find_file): Use it, not 3 bools.
1360 * files.c (_cpp_find_file): Use _cpp_find_file_kind enum, not
1361 bools.
1362 (cpp_make_system_header): Break overly long line.
1363 (_cpp_stack_include, _cpp_fake_include)
1364 (_cpp_do_file_change, _cpp_compare_file_date, _cpp_has_header): Adjust.
1365 * init.c (cpp_read_main): Adjust _cpp_find_file call.
1366
a641d6d3
NS
13672020-05-18 Nathan Sidwell <nathan@acm.org>
1368
7cf3f604
NS
1369 * include/cpplib.h (cpp_get_otions, cpp_get_callbacks)
1370 (cpp_get_deps): Mark as PURE.
1371 * include/line-map.h (get_combined_adhoc_loc)
1372 (get_location_from_adhoc_loc, get_pure_location): Reformat decls.
1373 * internal.h (struct lexer_state): Clarify comment.
1374 * system.h: Remove now-unneeded bool hackery.
1375 * files.c (_cpp_find_file): Store LOC not highest_location.
1376
ed63c387
NS
1377 PR preprocessor/95149
1378 * lex.c (struct lit_accum): New.
1379 (bufring_append): Replace by lit_accum::append.
1380 (lex_raw_string): Reimplement, using fragments of the old version.
1381 (lex_string): Adjust lex_raw_string call.
1382
a641d6d3
NS
1383 PR preprocessor/95182
1384 * macro.c (collect_args): Preserve EOFif we fell out of the main
1385 file.
1386 (cpp_get_token_1): Reformat a couple of short lines.
1387
8d286dd1
L
13882020-05-14 H.J. Lu <hongjiu.lu@intel.com>
1389
1390 * configure: Regenerated.
1391
b04445d4
JM
13922020-05-13 Jason Merrill <jason@redhat.com>
1393
1394 * include/cpplib.h (enum c_lang): Change CXX2A to CXX20.
1395 * init.c, lex.c: Adjust.
1396
2a0225e4
NS
13972020-05-12 Nathan Sidwell <nathan@acm.org>
1398
1399 EOF location is at end of file
1400 PR preprocessor/95013
1401 * lex.c (lex_raw_string): Process line notes before incrementing.
1402 Correct incrementing condition. Adjust for new
1403 _cpp_get_fresh_line EOF behaviour.
1404 (_cpp_get_fresh_line): Do not pop buffer at EOF, increment line
1405 instead.
1406 (_cpp_lex_direct): Adjust for new _cpp_get_fresh_line behaviour.
1407 (cpp_directive_only_process): Assert we got a fresh line.
1408 * traditional.c (_cpp_read_logical_line_trad): Adjust for new
1409 _cpp_get_fresh_line behaviour.
1410
051da742
L
14112020-05-12 H.J. Lu <hongjiu.lu@intel.com>
1412
1413 * Makefile.in (CET_HOST_FLAGS): New.
1414 (COMPILER): Add $(CET_HOST_FLAGS).
1415 * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
1416 AC_SUBST(CET_HOST_FLAGS). Clear CET_HOST_FLAGS if jit isn't
1417 enabled.
1418 * aclocal.m4: Regenerated.
1419 * configure: Likewise.
1420
b224c376
NS
14212020-05-08 Nathan Sidwell <nathan@acm.org>
1422
1423 Reimplement directives only processing, support raw literals.
1424 * directives-only.c: Delete.
1425 * Makefile.in (libcpp_a_OBJS, libcpp_a_SOURCES): Remove it.
1426 * include/cpplib.h (enum CPP_DO_task): New enum.
1427 (cpp_directive_only_preprocess): Declare.
1428 * internal.h (_cpp_dir_only_callbacks): Delete.
1429 (_cpp_preprocess_dir_only): Delete.
1430 * lex.c (do_peek_backslask, do_peek_next, do_peek_prev): New.
1431 (cpp_directives_only_process): New implementation.
1432
e235031d
JJ
14332020-02-14 Jakub Jelinek <jakub@redhat.com>
1434
1435 Partially implement P1042R1: __VA_OPT__ wording clarifications
1436 PR preprocessor/92319
1437 * macro.c (expand_arg): Move declarations before vaopt_state
1438 definition.
1439 (class vaopt_state): Move enum update_type definition earlier. Remove
1440 m_allowed member, add m_arg and m_update members.
1441 (vaopt_state::vaopt_state): Change last argument from bool any_args
1442 to macro_arg *arg, initialize m_arg and m_update instead of m_allowed.
1443 (vaopt_state::update): When bumping m_state from 1 to 2 and m_update
1444 is ERROR, determine if __VA_ARGS__ expansion has any non-CPP_PADDING
1445 tokens and set m_update to INCLUDE if it has any, DROP otherwise.
1446 Return m_update instead of m_allowed ? INCLUDE : DROP in m_state >= 2.
1447 (replace_args, create_iso_definition): Adjust last argument to
1448 vaopt_state ctor.
1449
297aa668
MS
14502020-02-05 Martin Sebor <msebor@redhat.com>
1451
1452 * include/cpplib.h (cpp_builtin_type): Remove trailing comma to
1453 avoid pedantic warnings in C++ 98 mode.
1454
c04babd9
JJ
14552020-02-04 Jakub Jelinek <jakub@redhat.com>
1456
f8d6e448
JJ
1457 * macro.c (builtin_has_include): Diagnose __has_include* use outside
1458 of preprocessing directives.
1459
c04babd9
JJ
1460 PR preprocessor/93545
1461 * macro.c (cpp_get_token_no_padding): New function.
1462 (builtin_has_include): Use it instead of cpp_get_token. Don't check
1463 SEEN_EOL.
1464
20fa702b
AB
14652020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
1466
1467 * configure: Regenerate.
1468
3d056cbf
NS
14692020-01-28 Nathan Sidwell <nathan@acm.org>
1470
1471 PR preprocessor/93452
1472 * internal.h (struct spec_nodes): Drop n__has_include{,_next}.
1473 * directives.c (lex_macro_node): Don't check __has_include redef.
1474 * expr.c (eval_token): Drop __has_include eval.
1475 (parse_has_include): Move to ...
1476 * macro.c (builtin_has_include): ... here.
1477 (_cpp_builtin_macro_text): Eval __has_include{,_next}.
1478 * include/cpplib.h (enum cpp_builtin_type): Add BT_HAS_INCLUDE{,_NEXT}.
1479 * init.c (builtin_array): Add them.
1480 (cpp_init_builtins): Drop __has_include{,_next} init here ...
1481 * pch.c (cpp_read_state): ... and here.
1482 * traditional.c (enum ls): Drop has_include states ...
1483 (_cpp_scan_out_logical_line): ... and here.
1484
e7c26e04
AB
14852020-01-27 Andrew Burgess <andrew.burgess@embecosm.com>
1486
1487 * configure: Regenerate.
1488
a1f6eff2
NS
14892020-01-24 Nathan Sidwell <nathan@acm.org>
1490
1491 * expr.c (parse_has_include): Remove bogus controlling macro code.
1492
ad1a3914
NS
14932020-01-20 Nathan Sidwell <nathan@acm.org>
1494
1495 PR preprocessor/80005
1496 * include/cpplib.h (BT_HAS_ATTRIBUTE): Fix comment.
1497 * internal.h (struct lexer_state): Delete in__has_include field.
1498 (struct spec_nodes): Rename n__has_include{,_next}__ fields.
1499 (_cpp_defined_macro_p): New.
1500 (_cpp_find_file): Add has_include parm.
1501 * directives.c (lex_macro_node): Combine defined,
1502 __has_inline{,_next} checking.
1503 (do_ifdef, do_ifndef): Use _cpp_defined_macro_p.
1504 (_cpp_init_directives): Refactor.
1505 * expr.c (parse_defined): Use _cpp_defined_macro_p.
1506 (eval_token): Adjust parse_has_include calls.
1507 (parse_has_include): Add OP parameter. Reimplement.
1508 * files.c (_cpp_find_file): Add HAS_INCLUDE parm. Use it to
1509 inhibit error message.
1510 (_cpp_stack_include): Adjust _cpp_find_file call.
1511 (_cpp_fake_include, _cpp_compare_file_date): Likewise.
1512 (open_file_failed): Remove in__has_include check.
1513 (_cpp_has_header): Adjust _cpp_find_file call.
1514 * identifiers.c (_cpp_init_hashtable): Don't init
1515 __has_include{,_next} here ...
1516 * init.c (cpp_init_builtins): ... init them here. Define as
1517 macros.
1518 (cpp_read_main_file): Adjust _cpp_find_file call.
1519 * pch.c (cpp_read_state): Adjust __has_include{,_next} access.
1520 * traditional.c (_cpp_scan_out_locgical_line): Likewise.
bf09d886
NS
1521
1522 PR preprocessor/93306
1523 * expr.c (parse_has_include): Refactor. Check skip_eval before
1524 looking.
1525
4bc1899b
DM
15262020-01-10 David Malcolm <dmalcolm@redhat.com>
1527
1528 * include/line-map.h (class diagnostic_path): New forward decl.
1529 (rich_location::get_path): New accessor.
1530 (rich_location::set_path): New function.
1531 (rich_location::m_path): New field.
1532 * line-map.c (rich_location::rich_location): Initialize m_path.
1533
8d9254fc
JJ
15342020-01-01 Jakub Jelinek <jakub@redhat.com>
1535
1536 Update copyright years.
1537
6dd0c820
DM
15382019-12-18 David Malcolm <dmalcolm@redhat.com>
1539
1540 PR preprocessor/92982
1541 * charset.c
1542 (cpp_string_location_reader::cpp_string_location_reader): Delete
1543 initialization of m_line_table.
1544 * include/cpplib.h (cpp_string_location_reader::m_line_table):
1545 Delete unused member.
1546
937a778e
JJ
15472019-12-14 Jakub Jelinek <jakub@redhat.com>
1548
1549 PR preprocessor/92919
1550 * charset.c (wide_str_to_charconst): If str contains just the
1551 NUL terminator, punt quietly.
1552
d68f5d45
DM
15532019-12-09 David Malcolm <dmalcolm@redhat.com>
1554
1555 * include/line-map.h (label_text::label_text): Make private.
1556 (label_text::borrow): New.
1557 (label_text::take): New.
1558 (label_text::take_or_copy): New.
1559
ee925640
LH
15602019-12-09 Lewis Hyatt <lhyatt@gmail.com>
1561
1562 PR preprocessor/49973
1563 * generated_cpp_wcwidth.h: New file generated by
1564 ../contrib/unicode/gen_wcwidth.py, supports new cpp_wcwidth function.
1565 * charset.c (compute_next_display_width): New function to help
1566 implement display columns.
1567 (cpp_byte_column_to_display_column): Likewise.
1568 (cpp_display_column_to_byte_column): Likewise.
1569 (cpp_wcwidth): Likewise.
1570 * include/cpplib.h (cpp_byte_column_to_display_column): Declare.
1571 (cpp_display_column_to_byte_column): Declare.
1572 (cpp_wcwidth): Declare.
1573 (cpp_display_width): New function.
1574
7c5890cc
JM
15752019-11-14 Joseph Myers <joseph@codesourcery.com>
1576
1577 * charset.c (narrow_str_to_charconst): Make CPP_UTF8CHAR constants
1578 unsigned for C.
1579 * init.c (lang_defaults): Set utf8_char_literals for GNUC2X and
1580 STDC2X.
1581
2c03d736
JJ
15822019-11-07 Jakub Jelinek <jakub@redhat.com>
1583
1584 PR c++/91370 - Implement P1041R4 and P1139R2 - Stronger Unicode reqs
1585 * charset.c (narrow_str_to_charconst): Add TYPE argument. For
1586 CPP_UTF8CHAR diagnose whenever number of chars is > 1, using
1587 CPP_DL_ERROR instead of CPP_DL_WARNING.
1588 (wide_str_to_charconst): For CPP_CHAR16 or CPP_CHAR32, use
1589 CPP_DL_ERROR instead of CPP_DL_WARNING when multiple char16_t
1590 or char32_t chars are needed.
1591 (cpp_interpret_charconst): Adjust narrow_str_to_charconst caller.
1592
b7689b96
JM
15932019-11-05 Tim van Deurzen <tim@kompiler.org>
1594
1595 * cpplib.h: Add spaceship operator for C++.
1596 * lex.c: Implement conditional lexing of spaceship operator for C++20.
1597
aa23e73b
JJ
15982019-10-31 Jakub Jelinek <jakub@redhat.com>
1599
1600 PR preprocessor/92296
1601 * internal.h (struct def_pragma_macro): Add is_builtin bitfield.
1602 (_cpp_restore_special_builtin): Declare.
1603 * init.c (_cpp_restore_special_builtin): New function.
1604 * directives.c (do_pragma_push_macro): For NT_BUILTIN_MACRO
1605 set is_builtin and don't try to grab definition.
1606 (cpp_pop_definition): Use _cpp_restore_special_builtin to restore
1607 builtin macros.
1608
9158f0ba
NS
16092019-10-15 Nathan Sidwell <nathan@acm.org>
1610
1611 * include/line-map.h (struct maps_info_ordinary): Make cache
1612 mutable.
1613 (struct maps_info_macro): Likewise.
1614 (LINEMAPS_CACHE): Remove non-ref accessor. Constify ref accessor.
1615 (LINEMAPS_ORDINARY_CACHE, LINEMAPS_MACRO_CACHE): Likewise.
1616 (LINEMAPS_ORDINARY_MAP_AT, LINEMAPS_MACRO_MAP_AT): Use
1617 LINEMAPS_USED and LINEMAPS_MAP_AT.
1618 (linemap_lookup): Constify line_map arg.
1619 linemap.c (linemap_ordinary_map_lookup, linemap_macro_map_lookup):
1620 Constify line_map arg.
1621
175a85b2
JM
16222019-10-11 Joseph Myers <joseph@codesourcery.com>
1623
1624 * include/cpplib.h (struct cpp_options): Add dfp_constants and
1625 cpp_warn_c11_c2x_compat.
1626 (enum cpp_warning_reason): Add CPP_W_C11_C2X_COMPAT.
1627 * init.c (struct lang_flags): Add dfp_constants.
1628 (lang_defaults): Set dfp_constants to 1 for GNUC2X and STDC2X and
1629 0 for other languages.
1630 (cpp_set_lang): Set dfp_constants from language.
1631 (cpp_create_reader): Set cpp_warn_c11_c2x_compat to -1.
1632 * expr.c (interpret_float_suffix): Mention DFP constants as C2X in
1633 comment.
1634 (cpp_classify_number): Do not diagnose DFP constants for languages
1635 setting dfp_constants, unless cpp_warn_c11_c2x_compat.
1636
924b9276
NS
16372019-10-04 Nathan Sidwell <nathan@acm.org>
1638
1639 PR preprocessor/91991
1640 * line-map.c (linemap_line_start): Clear max_column_hint if we run
1641 out of locations.
1642
68710ac7
RB
16432019-10-02 Richard Biener <rguenther@suse.de>
1644
1645 * internal.h (enum include_type): Remove trailing comma.
1646
93313b94
JM
16472019-10-02 Joseph Myers <joseph@codesourcery.com>
1648
1649 * include/cpplib.h (struct cpp_options): Add member scope.
1650 * init.c (struct lang_flags, lang_defaults): Likewise.
1651 (cpp_set_lang): Set scope member of pfile.
1652 * lex.c (_cpp_lex_direct): Test CPP_OPTION (pfile, scope) not
1653 CPP_OPTION (pfile, cplusplus) for creating CPP_SCOPE tokens.
1654
0900e29c
EB
16552019-09-26 Eric Botcazou <ebotcazou@adacore.com>
1656
1657 * charset.c (UCS_LIMIT): New macro.
1658 (ucn_valid_in_identifier): Use it instead of a hardcoded constant.
1659 (_cpp_valid_ucn): Issue a pedantic warning for UCNs larger than
1660 UCS_LIMIT outside of identifiers in C and in C++2a or later.
1661
7d112d66
LH
16622019-09-19 Lewis Hyatt <lhyatt@gmail.com>
1663
1664 PR c/67224
1665 * charset.c (_cpp_valid_utf8): New function to help lex UTF-8 tokens.
1666 * internal.h (_cpp_valid_utf8): Declare.
1667 * lex.c (forms_identifier_p): Use it to recognize UTF-8 identifiers.
1668 (_cpp_lex_direct): Handle UTF-8 in identifiers and CPP_OTHER tokens.
1669 Do all work in "default" case to avoid slowing down typical code paths.
1670 Also handle $ and UCN in the default case for consistency.
1671
400b8274
NS
16722019-08-30 Nathan Sidwell <nathan@acm.org>
1673
1674 New # semantics for popping to "" name.
1675 libcpp/
1676 * directives.c (do_linemarker): Popping to "" name means get the
1677 name from the include stack..
1678
056f95ec
NS
16792019-09-05 Nathan Sidwell <nathan@acm.org>
1680
1681 PR preprocessor/91639
1682 * directives.c (do_include_common): Tell lexer we're a #include.
1683 * files.c (_cpp_stack_file): Lexer will have always incremented.
1684 * internal.h (struct cpp_context): Extend in_directive's
1685 semantics.
1686 * lex.c (_cpp_lex_direct): Increment line for final \n when lexing
1687 for an ISO #include.
1688 * line-map.c (linemap_line_start): Remember if we overflowed.
1689
2f2aeda9
UW
16902019-09-03 Ulrich Weigand <uweigand@de.ibm.com>
1691
1692 * directives.c: Remove references to spu from comments.
1693 * expr.c: Likewise.
1694
b0d11f1e
NS
16952019-08-29 Nathan Sidwell <nathan@acm.org>
1696
1697 * internal.h (enum include_type): Add IT_MAIN, IT_DIRECTIVE_HWM,
1698 IT_HEADER_HWM.
1699 (_cpp_stack_file): Take include_type, not a bool.
1700 * files.c (_cpp_find_file): Refactor to not hide an if inside a
1701 for conditional.
1702 (should_stack_file): Break apart to ...
1703 (is_known_idempotent_file, has_unique_contents): ... these.
1704 (_cpp_stack_file): Replace IMPORT boolean with include_type enum.
1705 Refactor to use new predicates. Do linemap compensation here ...
1706 (_cpp_stack_include): ... not here.
1707 * init.c (cpp_read_main_file): Pass IT_MAIN to _cpp_stack_file.
1708
a0be978a
NS
17092019-08-28 Nathan Sidwell <nathan@acm.org>
1710
1711 * directives-only.c (_cpp_preprocess_dir_only): Use false, not
1712 zero for _cpp_handle_directive call.
1713 * directives.c (_cpp_handle_directive): Indented is bool.
1714 * files.c (struct _cpp_file): Make bools 1 bit bitfields.
1715 * internal.h (enum include_type): Reformat and comment.
1716 (struct cpp_buffer): Make flags 1 bit bitfields.
1717 (_cpp_handle_directive): Indented is bool.
1718
6c1dae73
MS
17192019-07-09 Martin Sebor <msebor@redhat.com>
1720
1721 * include/line-map.h: Change class-key from class to struct and vice
1722 versa to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
1723 * mkdeps.c: Same.
1724
8ba6ea87
ML
17252019-07-03 Martin Liska <mliska@suse.cz>
1726
1727 * line-map.c (linemap_get_expansion_filename): Remove
1728 dead assignemts.
1729 * mkdeps.c (make_write): Likewise.
1730
1c6ffbab
QZ
17312019-07-02 qing zhao <qing.zhao@oracle.com>
1732
1733 PR preprocessor/90581
1734 * directives.c (do_include_common): Replace CPP_STACK_MAX with
1735 CPP_OPTION (pfile, max_include_depth).
1736 * include/cpplib.h (struct cpp_options): Add new field
1737 max_include_depth.
1738 * init.c (cpp_create_reader): Initiate new field max_include_depth.
1739 * internal.h: Delete CPP_STACK_MAX.
1740
66d7749b
NS
17412019-06-26 Nathan Sidwell <nathan@acm.org>
1742
1743 PR preprocessor/90927
1744 * mkdeps.c (mkdeps::vec::operator[]): Add non-const variant.
1745 (deps_add_target): Deal with out of order unquoted targets.
1746
3f23e487
AP
17472019-05-19 Andrew Pinski <apinski@marvell.com>
1748
1749 PR pch/81721
1750 * lex.c (cpp_token_val_index <case SPELL_OPERATOR>): If tok->flags
1751 has NAMED_OP set, then return CPP_TOKEN_FLD_NODE.
1752
19eda56d
ML
17532019-05-14 Martin Liska <mliska@suse.cz>
1754
1755 PR preprocessor/90382
1756 * line-map.c (first_map_in_common_1): Handle ADHOC
1757 locations.
1758
e6fc8353
ML
17592019-05-14 Martin Liska <mliska@suse.cz>
1760
1761 PR preprocessor/90382
1762 * include/line-map.h (get_data_from_adhoc_loc): Add const to
1763 the first argument.
1764 (get_location_from_adhoc_loc): Likewise.
1765 * line-map.c(get_data_from_adhoc_loc): Add const to
1766 the first argument.
1767 (get_location_from_adhoc_loc): Likewise.
1768 (get_combined_adhoc_loc): Use get_location_from_adhoc_loc
1769 (or get_data_from_adhoc_loc).
1770 (get_range_from_adhoc_loc): Likewise.
1771 (get_pure_location): Likewise.
1772 (linemap_position_for_loc_and_offset): Likewise.
1773 (linemap_lookup): Likewise.
1774 (linemap_ordinary_map_lookup): Likewise.
1775 (linemap_macro_map_lookup): Likewise.
1776 (linemap_get_expansion_line): Likewise.
1777 (linemap_get_expansion_filename): Likewise.
1778 (linemap_location_in_system_header_p): Likewise.
1779 (linemap_location_from_macro_expansion_p): Likewise.
1780 (linemap_macro_loc_to_exp_point): Likewise.
1781 (linemap_resolve_location): Likewise.
1782 (linemap_unwind_toward_expansion): Likewise.
1783 (linemap_unwind_to_first_non_reserved_loc): Likewise.
1784 (linemap_expand_location): Likewise.
1785 (linemap_dump_location): Likewise.
1786
d7b6aee8
NS
17872019-05-07 Nathan Sidwell <nathan@acm.org>
1788
61145d93
NS
1789 * files.c (_cpp_stack_file): Empty filenames aren't dependencies.
1790 * mkdeps.c (deps_add_dep): Assert not empty.
1791
d7b6aee8
NS
1792 * include/mkdeps.h (deps_write): Add PHONY arg.
1793 (deps_phony_targets): Delete.
1794 * init.c (cpp_finish): Just call deps_write.
1795 * mkdeps.c (struct mkdeps): Add local vector class. Reimplement
1796 vector handling.
1797 (munge): Munge to static buffer.
1798 (apply_vpath): Adjust vector handling.
1799 (deps_init, deps_free): Use new, delete.
1800 (deps_add_target): Do not munge here. Record quoting low water mark.
1801 (deps_add_dep): Do not munge here.
1802 (deps_add_vpath): Adjust vector handling.
1803 (make_write_name): New. Munge on demand here.
1804 (make_write_vec): New.
1805 (deps_phony_targets): Delete.
1806 (make_write): New.
1807 (deps_write): Forward to deps_Write.
1808 (deps_save, deps_restore): Adjust vector handling.
1809
b744fc85
NS
18102019-05-06 Nathan Sidwell <nathan@acm.org>
1811
1812 * include/mkdeps.h: Rename struct deps to struct mkdeps.
1813 * mkdeps.c: Likewise.
1814 * include/cpplib.h (cpp_get_deps): Rename return type..
1815 * directives.c (cpp_get_deps): Likewise.
1816 * internal.h (struct cpp_reader): Rename deps field type.
1817
0bf12a52
JW
18182019-04-03 Jonathan Wakely <jwakely@redhat.com>
1819
1820 * files.c (search_path_exhausted): Fix typo in comment.
1821
60448173
ML
18222019-02-26 Martin Liska <mliska@suse.cz>
1823
1824 * symtab.c (ht_dump_statistics): Make
1825 horizontal alignment for statistics.
1826
200a8e1a
DM
18272019-02-20 David Malcolm <dmalcolm@redhat.com>
1828
1829 PR c/89410
1830 * include/line-map.h (linenum_arith_t): New typedef.
1831 (compare): Use it.
1832
a5f87af7
ML
18332019-02-18 Martin Liska <mliska@suse.cz>
1834
1835 PR c++/89383
1836 * line-map.c (linemap_line_start): Use 1UL in order
1837 to not overflow.
1838
a4553534
DM
18392019-02-11 Martin Liska <mliska@suse.cz>
1840
1841 PR lto/88147
1842 * line-map.c (linemap_line_start): Don't reuse the existing line
1843 map if the line offset is sufficiently large to cause overflow
1844 when computing location_t values.
1845
18f5df94
JJ
18462019-01-26 Jakub Jelinek <jakub@redhat.com>
1847
1848 PR preprocessor/88974
1849 * directives.c (SEEN_EOL): Move macro to ...
1850 * internal.h (SEEN_EOL): ... here.
1851 * expr.c (parse_has_include): Don't cpp_get_token if SEEN_EOL ().
1852
a5544970
JJ
18532019-01-01 Jakub Jelinek <jakub@redhat.com>
1854
1855 Update copyright years.
1856
bc65bad2
MG
18572018-11-27 Mike Gulick <mgulick@mathworks.com>
1858
1859 PR preprocessor/83173
1860 * location-example.txt: Update example -fdump-internal-locations
1861 output.
1862
56c79e7f
MG
18632018-11-27 Mike Gulick <mgulick@mathworks.com>
1864
1865 PR preprocessor/83173
1866 * files.c (_cpp_stack_include): Check if
1867 line_table->highest_location is past current line before
1868 decrementing.
1869
620e594b
DM
18702018-11-13 David Malcolm <dmalcolm@redhat.com>
1871
1872 * charset.c: Replace "source_location" with "location_t".
1873 * directives-only.c: Likewise.
1874 * directives.c: Likewise.
1875 * errors.c: Likewise.
1876 * expr.c: Likewise.
1877 * files.c: Likewise.
1878 * include/cpplib.h: Likewise. Rename MAX_SOURCE_LOCATION to
1879 MAX_LOCATION_T.
1880 * include/line-map.h: Likewise.
1881 * init.c: Likewise.
1882 * internal.h: Likewise.
1883 * lex.c: Likewise.
1884 * line-map.c: Likewise.
1885 * location-example.txt: Likewise.
1886 * macro.c: Likewise.
1887 * pch.c: Likewise.
1888 * traditional.c: Likewise.
1889
e9f3803d
HAQ
18902018-11-07 Hafiz Abid Qadeer <abidh@codesourcery.com>
1891
1892 * configure: Regenerated.
1893
546f678c
ML
18942018-11-05 Martin Liska <mliska@suse.cz>
1895
1896 * symtab.c (ht_dump_statistics): Replace %zu with %lu format.
1897
037903cb
ML
18982018-11-05 Martin Liska <mliska@suse.cz>
1899
1900 * symtab.c (ht_dump_statistics): Fix format and
1901 pass missing argument.
1902
46aeb07f
ML
19032018-11-05 Martin Liska <mliska@suse.cz>
1904
1905 * symtab.c (ht_dump_statistics): Make dump conditional
1906 based on alloc_subobject.
1907
22e05272
JM
19082018-10-31 Joseph Myers <joseph@codesourcery.com>
1909
1910 PR bootstrap/82856
1911 * configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
1912 * aclocal.m4, config.in, configure: Regenerate.
1913
ff65e980
NS
19142018-10-31 Nathan Sidwell <nathan@acm.org>
1915
f3f6029d
NS
1916 * internal.h (struct cpp_reader): Rename forced_token_location_p
1917 to forced_token_location and drop its pointerness.
1918 * include/cpplib.h (cpp_force_token_locations): Take location, not
1919 pointer to one.
1920 * init.c (cpp_create_reader): Adjust.
1921 * lex.c (cpp_read_main_file):
1922
705b0c05
NS
1923 * directives.c (do_include_common): Commonize cleanup path.
1924 (_cpp_pop_buffer): Fix leak.
1925
87bacc2b
NS
1926 * include/line-map.h (IS_ORDINARY_LOC, IS_MACRO_LOC): New
1927 predicates.
1928 (IS_ADHOC_LOC): Move earlier.
1929 (MAP_ORDINARY_P): Use IS_ORDINARY_LOC.
1930 * line-map.c (linemap_location_from_macro_expansion_p): Use
1931 IS_MACRO_LOC.
1932
c9fb347e
NS
1933 * include/cpplib.h (cpp_macro_definition_location): Make inline.
1934 * macro.c (warn_of_redefinition): Fix comments, examine macro
1935 type, use C++ for.
1936 (cpp_macro_definition_location): Don't define here.
1937
43af5ef1
NS
1938 * include/cpplib.h (HT_NODE): Don't cast NODE.
1939 (NODE_LEN, NODE_NAME): Use HT_NODE.
1940
ff65e980
NS
1941 * directives.c (DIRECTIVE_TABLE): Drop historical frequency
1942 comments.
1943 * files.c (_cpp_stack_file): Fix indentation.
1944
9f936c86
JM
19452018-10-17 Joseph Myers <joseph@codesourcery.com>
1946
1947 * include/cpplib.h (enum c_lang): Add CLK_GNUC2X and CLK_STDC2X.
1948 * init.c (lang_defaults): Add GNUC2X and STDC2X entries.
1949 (cpp_init_builtins): Define __STDC_VERSION__ to 202000L for C2X.
1950
954ad112
DM
19512018-10-11 David Malcolm <dmalcolm@redhat.com>
1952
1953 * macro.c (_cpp_arguments_ok): If the argument count is wrong, add
1954 a note showing the definition of the macro.
1955
c1b48b29
NS
19562018-10-11 Nathan Sidwell <nathan@acm.org>
1957
1958 * include/line-map.h (LINEMAPS_MACRO_LOWEST_LOCATION): Fix
1959 off-by-one error.
1960 * line-map.c (linemap_enter_macro): Use RAII. Clear all of the
1961 macro_locations.
1962
c24300ba
DM
19632018-10-09 David Malcolm <dmalcolm@redhat.com>
1964
1965 * charset.c (noop_error_cb): Rename to...
1966 (noop_diagnostic_cb): ...this, converting params to enums.
1967 (cpp_interpret_string_ranges): Update for renaming and enums.
1968 * directives.c (check_eol_1): Convert reason to enum.
1969 (do_diagnostic): Convert code and reason to enum.
1970 (do_error): Use CPP_W_NONE rather than 0.
1971 (do_pragma_dependency): Likewise.
1972 * errors.c (cpp_diagnostic_at): Convert level and reason to enums.
1973 Update for renaming.
1974 (cpp_diagnostic): Convert level and reason to enums.
1975 (cpp_error): Convert level to enum.
1976 (cpp_warning): Convert reason to enums.
1977 (cpp_pedwarning): Likewise.
1978 (cpp_warning_syshdr): Likewise.
1979 (cpp_diagnostic_with_line): Convert level and reason to enums.
1980 Update for renaming.
1981 (cpp_error_with_line): Convert level to enum.
1982 (cpp_warning_with_line): Convert reason to enums.
1983 (cpp_pedwarning_with_line): Likewise.
1984 (cpp_warning_with_line_syshdr): Likewise.
1985 (cpp_error_at): Convert level to enum.
1986 (cpp_errno): Likewise.
1987 (cpp_errno_filename): Likewise.
1988 * include/cpplib.h (enum cpp_diagnostic_level): Name this enum,
1989 and move to before struct cpp_callbacks.
1990 (enum cpp_warning_reason): Likewise.
1991 (cpp_callbacks::diagnostic): Convert params from int to enums.
1992 (cpp_error): Convert int param to enum cpp_diagnostic_level.
1993 (cpp_warning): Convert int param to enum cpp_warning_reason.
1994 (cpp_pedwarning): Likewise.
1995 (cpp_warning_syshdr): Likewise.
1996 (cpp_errno): Convert int param to enum cpp_diagnostic_level.
1997 (cpp_errno_filename): Likewise.
1998 (cpp_error_with_line): Likewise.
1999 (cpp_warning_with_line): Convert int param to enum
2000 cpp_warning_reason.
2001 (cpp_pedwarning_with_line): Likewise.
2002 (cpp_warning_with_line_syshdr): Likewise.
2003 (cpp_error_at): Convert int param to enum cpp_diagnostic_level.
2004 * macro.c (create_iso_definition): Convert int to enum.
2005 (_cpp_create_definition): Likewise.
2006
9c4a4b3c
DM
20072018-09-17 David Malcolm <dmalcolm@redhat.com>
2008
2009 * include/line-map.h (range_label::get_text): Add param
2010 "range_idx".
2011
24c35f68
NS
20122018-08-30 Nathan Sidwell <nathan@acm.org>
2013
2014 * include/line-map.h (enum lc_reason): Comment each member
2015 separately.
2016 (struct line_maps): Fix reallocator comment.
2017
85204e23
DM
20182018-08-27 David Malcolm <dmalcolm@redhat.com>
2019
2020 PR 87091
2021 * include/line-map.h (enum range_display_kind): New enum.
2022 (struct location_range): Replace field "m_show_caret_p" with
2023 "m_range_display_kind", converting from bool to the new enum.
2024 (class rich_location): Add example of line insertion fix-it hint.
2025 (rich_location::add_range): Convert param "show_caret_p" from bool
2026 to enum range_display_kind and rename to "range_display_kind",
2027 giving it a default of SHOW_RANGE_WITHOUT_CARET.
2028 (rich_location::set_range): Likewise, albeit without a default.
2029 * line-map.c (rich_location::rich_location): Update for conversion
2030 of show_caret_p to tri-state enum.
2031 (rich_location::add_range): Likewise.
2032 (rich_location::set_range): Likewise.
2033
cf806c7d
L
20342018-08-24 H.J. Lu <hongjiu.lu@intel.com>
2035
2036 PR bootstrap/86872
2037 * line-map.c (pure_location_p): Return true if linemap_lookup
2038 returns NULL.
2039 (linemap_add): Set start_location to 0 if we run out of line map
2040 space.
2041
3fb558b1
NS
20422018-08-20 Nathan Sidwell <nathan@acm.org>
2043
a5a35247
NS
2044 * include/cpplib.h: Fixup some whitespace.
2045 (cpp_hashnode): Reduce type to 2 bit & flags to 8.
2046
a570d97f
NS
2047 * include/cpplib.h (NODE_BUILTIN, NODE_MACRO_ARG): Delete.
2048 Renumber others.
2049 (enum node_type): Replace NT_MACRO with NT_USER_MACRO,
2050 NT_BUILTIN_MACRO, NT_MACRO_ARG. Delete NT_ASSERTION.
2051 (NTV_MACRO, NTV_ANSWER, NTV_BUILTIN, NTV_ARGUMENT, NTV_NONE):
2052 Delete.
2053 (CPP_HASHNODE_VALUE_IDX): Delete.
2054 (union _cpp_hashnode_value): GTY tag from enum node_type directly.
2055 (struct cpp_hashnode): Adjust GTY desc for value field.
2056 (cpp_user_macro_p, cpp_builtin_macro_p, cpp_macro_p): Adjust.
2057 * directives.c (undefine_macros): Clear value.anwers, adjust flag
2058 clearing.
2059 (_cpp_test_assertion): No need to check NT_ASSERTION.
2060 (do_assert, do_unassert): Likewise.
2061 * init.c (cpp_init_special_builtins): Set type not flags.
2062 * macro.c (struct macro_arg_saved_data): Add type field.
2063 (cpp_get_token_1): Check type not NT_VOID.
2064 (_cpp_free_definition): Adjust flag clearing. Nullify
2065 value.answers.
2066 (_cpp_save_parameter, _cpp_unsave_parameters): Save and restore
2067 type.
2068 (lex_expansion_token): Check type not flags.
2069 (_cpp_create_definition): Set type to NT_USER_MACRO.
2070 (_cpp_notify_macro_use): Adjust type checking.
2071 * pch.c (write_macdef, count_defs, write_defs, cpp_valid_state)
2072 (save_macros): Adjust node type/flag handling.
2073 * traditional.c (_cpp_scan_out_logical_line): Check type not flags.
2074
7692e253
NS
2075 * directives.c (do_undef): Use cpp_macro_p & cpp_builtin_macro_p.
2076 * include/cpplib.h (enum cpp_macro_kind): Remove trailing comma.
2077 (cpp_fun_like_macro_p): Make inline, define.
2078 * macro.c (cpp_define_lazily): Use UCHAR_MAX.
2079 (cpp_fun_like_macro_p): Delete.
2080
abcd1775
NS
2081 * Makefile.in (TAGS_SOURCES): Remove cpp-id-data.h.
2082 * include/cpp-id-data.h: Delete.
2083 * internal.h: Include cpplib.h not cpp-id-data.h.
2084
3fb558b1
NS
2085 * include/cpp-id-data.h (struct answer): Delete.
2086 * include/cpplib.h (struct answer): Don't forward-declare.
2087 (enum cpp_macro_kind): Add cmk_assert.
2088 (struct cpp_macro): Union parms and next assert chain.
2089 (union _cpp_hashnode_value): 'answer' field is cpp_macro.
2090 * directives.c (parse_answer): Convert to use cpp_macro. Return
2091 true on success.
2092 (parse_assertion, find_answer, _cpp_test_assertion, cpp_do_assert)
2093 (cpp_do_unassert): Convert to use cpp_macro.
2094 * macro.c (warn_of_redefinition, _cpp_new_macro)
2095 (check_trad_stringification, cpp_macro_definition): Adjust macro
2096 parm access.
2097 * traditional.c (_cpp_replacement_text_len)
2098 (_cpp_copy_replacement_text, _cpp_create_trad_definition): Likewise.
2099
c5d725c0
NS
21002018-08-17 Nathan Sidwell <nathan@acm.org>
2101
800c0e98
NS
2102 * include/cpplib.h (struct cpp_callbacks): Replace
2103 user_builtin_macro with user_lazy_macro.
2104 (struct cpp_macro): add lazy field.
2105 (enum cpp_builtin_type): Remove BT_FIRST_USER, BT_LAST_USER.
2106 (cpp_define_lazily): Declare.
2107 * macro.c (enter_macro_context) Use _cpp_maybe_notify_macro_use.
2108 (warn_of_redefinition): Use cpp_builtin_macro_p, directly call
2109 user_lazy_macro hook.
2110 (_cpp_new_macro): Clear lazy field.
2111 (cpp_define_lazily): Define.
2112 (_cpp_notify_macro_use): Adjust lazy definition code.
2113 (cpp_macro_definition): No need to do lazy definition here.
2114 * pch.c (write_macdef, save_macros): Likewise.
2115
10f04917
NS
2116 * include/cpplib.h (enum cpp_macro_kind): New.
2117 (struct cpp_macro): Make body trailing array. Add kind field,
2118 delete traditional flag.
2119 * internal.h (_cpp_new_macro): Declare.
2120 (_cpp_reserve_room): New inline.
2121 (_cpp_commit_buf): Declare.
2122 (_cpp_create_trad_definition): Return new macro.
2123 * lex.c (_cpp_commit_buff): New.
2124 * macro.c (macro_real_token_count): Count backwards.
2125 (replace_args): Pointer equality not orderedness.
2126 (_cpp_save_parameter): Use _cpp_reserve_room.
2127 (alloc_expansion_token): Delete.
2128 (lex_expansion_token): Return macro pointer. Use _cpp_reserve_room.
2129 (create_iso_definition): Allocate macro itself. Adjust for
2130 different allocation ordering.
2131 (_cpp_new_macro): New.
2132 (_cpp_create_definition): Adjust for API changes.
2133 * traditional.c (push_replacement_text): Don't set traditional
2134 flag.
2135 (save_replacement_text): Likewise.
2136 (_cpp_create_trad_definition): Allocate macro itself, Adjust for
2137 different allocation ordering.
2138
c5d725c0
NS
2139 * cpp-id-data.h (uchar, UC): Move to internal.h
2140 (struct cpp_macro): Move to cpplib.h.
2141 * internal.h (uchar, UC): From cpp-id-data.h.
2142 * include/cpplib.h (struct cpp_macro): From cpp-id-data.h.
2143
3f6677f4
NS
21442018-08-16 Nathan Sidwell <nathan@acm.org>
2145
729a01f7
NS
2146 * internal.h (_cpp_save_parameter): Take parmno, not macro.
2147 (_cpp_unsave_parameters): Declare.
2148 * macro.c (_cpp_save_parameter): Take parm number, not macro.
2149 Return true on success.
2150 (_cpp_unsave_parameters): New.
2151 (parse_params): Take parm_no and variadic pointers, not macro.
2152 Reimplement parsing logic.
2153 (create_iso_definition): Adjust parse_params changes. Call
2154 _cpp_unsave_parameters here.
2155 (_cpp_create_definition): Don't unsave params here.
2156 * traditional.c (scan_parameters): Take n_param pointer, adjust.
2157 (_cpp_create_trad_definition): Ajust scan_parameters change. Call
2158 _cpp_unsave_parameters.
2159
3f6677f4
NS
2160 * include/cpplib.h (cpp_user_macro_p, cpp_builtin_macro_p)
2161 (cpp_macro_p): New inlines.
2162 * directives.c (do_pragma_poison): Use cpp_macro_p.
2163 (do_ifdef, do_ifndef): Likewise. Use _cpp_maybe_notify_macro_use.
2164 (cpp_pop_definition): Use cpp_macro_p. Move _cpp_free_definition
2165 earlier. Don't zap node directly.
2166 * expr.c (parse_defined): Use _cpp_maybe_notify_macro_use &
2167 cpp_macro_p.
2168 * files.c (should_stack_file): Use cpp_macro_p.
2169 * identifiers.c (cpp_defined): Likewise.
2170 * internal.h (_cpp_mark_macro): Use cpp_user_macro_p.
2171 (_cpp_notify_macro_use): Declare.
2172 (_cpp_maybe_notify_macro_use): New inline.
2173 * lex.c (is_macro): Use cpp_macro_p.
2174 * macro.c (_cpp_warn_if_unused_macro): Use cpp_user_macro_p.
2175 (enter_macro_context): Likewise.
2176 (_cpp_create_definition): Use cpp_builtin_macro_p,
2177 cpp_user_macro_p. Move _cpp_free_definition earlier.
2178 (_cpp_notify_macro_use): New, broken out of multiple call sites.
2179 * traditional.c (fun_like_macro_p): Use cpp_builtin_macro_p.
2180 (maybe_start_funlike, _cpp_scan_out_logical_line)
2181 (push_replacement_text): Likewise.
2182
96e6ae57
DM
21832018-08-15 David Malcolm <dmalcolm@redhat.com>
2184
2185 * include/line-map.h (struct location_range): Add "m_label" field.
2186 (class rich_location): Add description of labels to leading
2187 comment.
2188 (rich_location::rich_location): Add "label" param, defaulting to
2189 NULL.
2190 (rich_location::add_range): Likewise.
2191 (struct label_text): New struct.
2192 (class range_label): New abstract base class.
2193 * line-map.c (rich_location::rich_location): Add "label" param;
2194 use it.
2195 (rich_location::add_range): Likewise.
2196
f10a9135
NS
21972018-08-08 Nathan Sidwell <nathan@acm.org>
2198
2199 Make linemap::included_from a location
2200 libcpp/
2201 * include/line-map.h (struct line_map_ordinary): Replace
2202 included_from map index with included_at source_location.
2203 (ORDINARY_MAP_INCLUDER_FILE_INDEX): Delete.
2204 (LAST_SOURCE_LINE_LOCATION): Delete.
2205 (LAST_SOURCE_LINE, LAST_SOURCE_COLUMN): Delete.
2206 (linemap_included_from): New.
2207 (linemap_included_from_linemap): Declare.
2208 (MAIN_FILE_P): Adjust.
2209 * line-map.c (linemap_included_from_linemap): New.
2210 (lonemap_check_files_exited): Use linemap_included_at.
2211 (linemap_add): Adjust inclusion setting.
2212 (linemap_dump, linemap_dump_location): Adjust.
2213 * directives.c (do_linemarker): Use linemap_included_at.
2214
e81c3c4d
NS
22152018-08-07 Nathan Sidwell <nathan@acm.org>
2216
2217 * line-map.c: (linemap_init): Set default allocator here.
2218 (new_linemap): Rather than here. Refactor allocation logic.
2219
181463c2
DM
22202018-07-20 David Malcolm <dmalcolm@redhat.com>
2221
2222 * include/line-map.h (rich_location::set_range): Remove redundant
2223 line_maps * parameter.
2224 * line-map.c (rich_location::set_range): Likewise.
2225
6f41f92b
BE
22262018-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
2227
2228 PR 69558
2229 * macro.c (enter_macro_context): Change the location info for builtin
2230 macros and _Pragma from location of the closing parenthesis to location
2231 of the macro expansion point.
2232
0c86a39d
JJ
22332018-07-17 Jason Franklin <j_fra@fastmail.us>
2234 Jakub Jelinek <jakub@redhat.com>
2235
2236 * lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN,
2237 CPP_DL_WARNING or CPP_DL_ERROR for note that diagnostics for C++ style
2238 comments is reported only once per file and guard those calls on the
2239 preceding cpp_error returning true.
2240
42a98b43
NS
22412018-07-03 Nathan Sidwell <nathan@acm.org>
2242
2243 Reorg line_map data structures for better packing.
2244 * include/line-map.h (enum lc_reason): Add LC_HWM.
2245 (LINE_MAP_MAX_LOCATION): Define here.
2246 (struct line_map): Move reason field to line_map_ordinary. Adjust
2247 GTY tagging.
2248 (struct line_map_ordinary): Reorder fields for less padding.
2249 (struct line_map_macro): Likewise.
2250 (MAP_ORDINARY_P): New.
2251 (linemap_check_ordinary, linemap_check_macro): Adjust.
2252 * line-map.c (LINE_MAP_MAX_SOURCE_LOCATION): Delete.
2253 (new_linemap): Take start_location, not reason. Adjust.
2254 (linemap_add, linemap_enter_macro): Adjust.
2255 (linemap_line_start): Likewise.
2256 (linemap_macro_expansion_map_p): Use MAP_ORDINARY_P.
2257 (linemap_macro_loc_to_spelling_point): Likewise.
2258 (linemap_macro_loc_to_def_point): Likewise.
2259 (linemap_dump): Likewise.
2260
a6b29221
JM
22612018-05-23 Jason Merrill <jason@redhat.com>
2262
2263 * system.h: #include <new> earlier.
2264
b2ff7457
JM
22652018-05-17 Jason Merrill <jason@redhat.com>
2266
2267 * line-map.c (linemap_init): Use placement new.
2268 * system.h: #include <new>.
2269
082284da
DM
22702018-03-14 David Malcolm <dmalcolm@redhat.com>
2271
2272 * include/line-map.h (compare): New function on linenum_type.
2273
b44f8ad8
JW
22742018-02-28 Jonathan Wakely <jwakely@redhat.com>
2275
2276 PR preprocessor/84517
2277 * lex.c (is_macro_not_literal_suffix): New function.
2278 (lex_raw_string, lex_string): Use is_macro_not_literal_suffix to
2279 decide when to issue -Wliteral-suffix warnings.
2280
fe74f9b4
RB
22812018-02-16 Richard Biener <rguenther@suse.de>
2282
2283 PR bootstrap/82939
2284 * line-map.c (linemap_init): Avoid broken value-init when compiling
2285 with GCC 4.2.
2286
60887f8c
JM
22872018-02-15 Jason Merrill <jason@redhat.com>
2288 Jakub Jelinek <jakub@redhat.com>
2289
2290 PR preprocessor/83063 - __VA_OPT__ and ##
2291 PR preprocessor/83708
2292 * macro.c (vaopt_state): Reorder m_last_was_paste before m_state.
2293 (vaopt_state::vaopt_state): Adjust.
2294 (vaopt_state::update_flags): Add BEGIN and END.
2295 (vaopt_state::update): Return them.
2296 (copy_paste_flag): Factor out of replace_args.
2297 (last_token_is): New.
2298 (replace_args): Handle BEGIN and END. Avoid padding there.
2299 (tokens_buff_last_token_ptr): Return NULL if no tokens.
2300
1306a81d
JJ
23012018-01-31 Jakub Jelinek <jakub@redhat.com>
2302
2303 PR preprocessor/69869
2304 * traditional.c (skip_macro_block_comment): Return bool, true if
2305 the macro block comment is unterminated.
2306 (copy_comment): Use return value from skip_macro_block_comment instead
2307 of always false.
2308
53723269
JJ
23092018-01-27 Jakub Jelinek <jakub@redhat.com>
2310
2311 * include/cpplib.h (enum cpp_builtin_type): Change BT_LAST_USER from
2312 BT_FIRST_USER + 31 to BT_FIRST_USER + 63.
2313
7365279f
BK
23142018-01-18 Boris Kolpackov <boris@codesynthesis.com>
2315
92a285c1
ML
2316 PR other/70268
2317 * include/cpplib.h (cpp_callbacks::remap_filename): New callback.
2318 * macro.c (_cpp_builtin_macro_text): Call remap_filename for
2319 __FILE__ and __BASE_FILE__.
7365279f 2320
a3a821c9
KN
23212018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
2322
2323 * lex.c (search_line_fast): Remove illegal coercion of an
2324 unaligned pointer value to vector pointer type and replace with
2325 use of __builtin_vec_vsx_ld () built-in function, which operates
2326 on unaligned pointer values.
2327
85ec4feb
JJ
23282018-01-03 Jakub Jelinek <jakub@redhat.com>
2329
2330 Update copyright years.
2331
35c4515b
MW
23322017-12-20 Michael Weiser <michael.weiser@gmx.de>
2333
2334 PR preprocessor/83492
2335 * lex.c (search_line_fast) [__ARM_NEON && __ARM_64BIT_STATE]:
2336 Fix selection of big-endian shift parameters by using
2337 __ARM_BIG_ENDIAN.
2338
c65e18d3
BE
23392017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
2340
2341 * internal.h (maybe_print_line): Change signature.
7365279f 2342
a7b1ce04
JJ
23432017-12-05 Jakub Jelinek <jakub@redhat.com>
2344
2345 PR c++/79228
2346 * expr.c (interpret_float_suffix): Avoid memcmp.
2347 (interpret_int_suffix): Likewise. Don't check for if.
2348
f2b8b8ad
JM
23492017-12-01 Jason Merrill <jason@redhat.com>
2350
2351 PR c++/79228 - extensions hide C++14 complex literal operators
2352 * expr.c (interpret_float_suffix): Ignore 'i' in C++14 and up.
2353 (interpret_int_suffix): Likewise.
2354
6df8934f
DM
23552017-11-28 David Malcolm <dmalcolm@redhat.com>
2356
2357 PR c/82050
2358 * include/line-map.h (LINE_MAP_MAX_COLUMN_NUMBER): Move here.
2359 * line-map.c (LINE_MAP_MAX_COLUMN_NUMBER): ...from here.
2360 (rich_location::maybe_add_fixit): Reject fix-it hints in which
2361 the start column exceeds the next column.
2362
34b81eb9
EG
23632017-11-20 Eric Gallager <egall@gwmail.gwu.edu>
2364
2365 PR preprocessor/81794
2366 * macro.c (check_trad_stringification): Have warning be controlled
2367 by -Wtraditional.
2368
01ada121
DM
23692017-11-20 David Malcolm <dmalcolm@redhat.com>
2370
2371 PR c++/72786
2372 * include/cpplib.h (cpp_macro_definition_location): New decl.
2373 * macro.c (cpp_macro_definition): New function.
2374
fb771b9d
TT
23752017-11-13 Tom Tromey <tom@tromey.com>
2376
2377 * pch.c (cpp_read_state): Set n__VA_OPT__.
2378 * macro.c (vaopt_state): New class.
2379 (_cpp_arguments_ok): Check va_opt flag.
2380 (replace_args, create_iso_definition): Use vaopt_state.
2381 * lex.c (lex_identifier_intern): Possibly issue errors for
2382 __VA_OPT__.
2383 (lex_identifier): Likewise.
2384 (maybe_va_opt_error): New function.
2385 * internal.h (struct lexer_state) <va_args_ok>: Update comment.
2386 (struct spec_nodes) <n__VA_OPT__>: New field.
2387 * init.c (struct lang_flags) <va_opt>: New field.
2388 (lang_defaults): Add entries for C++2A. Update all entries for
2389 va_opt.
2390 (cpp_set_lang): Initialize va_opt.
2391 * include/cpplib.h (struct cpp_options) <va_opt>: New field.
2392 * identifiers.c (_cpp_init_hashtable): Initialize n__VA_OPT__.
2393
846b84fb
DM
23942017-11-13 David Malcolm <dmalcolm@redhat.com>
2395
2396 * include/line-map.h (linenum_type): Move this typedef and the
2397 comment describing column numbering to near the top of the file.
2398
7d19c460
MK
23992017-11-06 Mukesh Kapoor <mukesh.kapoor@oracle.com>
2400
2401 PR c++/80955
2402 * lex.c (lex_string): When checking for a valid macro for the
2403 warning related to -Wliteral-suffix (CPP_W_LITERAL_SUFFIX),
2404 check that the macro name does not start with an underscore
2405 before calling is_macro().
2406
c830c7d5
TV
24072017-11-05 Tom de Vries <tom@codesourcery.com>
2408
2409 PR other/82784
2410 * lex.c (BUF_APPEND): Remove semicolon after
2411 "do {} while (0)".
2412
64a5912c
DM
24132017-10-31 David Malcolm <dmalcolm@redhat.com>
2414
2415 * directives.c (_cpp_handle_directive): Update for renaming of
2416 cpp_error_at_richloc to cpp_error_at.
2417 * errors.c (cpp_diagnostic_at_richloc): Rename to...
2418 (cpp_diagnostic_at): ...this, dropping the location_t-based
2419 implementation.
2420 (cpp_diagnostic): Update for removal of location_t-based
2421 cpp_diagnostic_at.
2422 (cpp_error_at): Likewise.
2423 (cpp_error_at_richloc): Rename to...
2424 (cpp_error_at): ...this, and update for renaming of
2425 cpp_diagnostic_at_richloc.
2426 * include/cpplib.h (cpp_error_at_richloc): Rename to...
2427 (cpp_error_at): ...this.
2428
c76dc9c3
JM
24292017-10-30 Joseph Myers <joseph@codesourcery.com>
2430
2431 * include/cpplib.h (enum c_lang): Add CLK_GNUC17 and CLK_STDC17.
2432 * init.c (lang_defaults): Add GNUC17 and STDC17 data.
2433 (cpp_init_builtins): Handle C17 value of __STDC_VERSION__.
2434
35b82d26
NS
24352017-10-10 Nathan Sidwell <nathan@acm.org>
2436
2437 PR preprocessor/82506
2438 * macro.c (cpp_quote_string): Escape raw LFs.
2439
026a79f7
AS
24402017-09-15 Andrew Sutton <andrew.n.sutton@gmail.com>
2441 Jakub Jelinek <jakub@redhat.com>
2442
2443 Add support for -std=c++2a.
2444 * include/cpplib.h (c_lang): Add CXX2A and GNUCXX2A.
2445 * init.c (lang_defaults): Add rows for CXX2A and GNUCXX2A.
2446 (cpp_init_builtins): Set __cplusplus to 201709L for C++2a.
2447
7b936140
JJ
24482017-09-15 Jakub Jelinek <jakub@redhat.com>
2449
2450 * include/cpplib.h (enum c_lang): Rename CLK_GNUCXX1Z
2451 to CLK_GNUCXX17 and CLK_CXX1Z to CLK_CXX17.
2452 * init.c (lang_defaults, cpp_init_builtins): Likewise.
2453 * expr.c (cpp_classify_number): Use C++17 instead of C++1z
2454 in diagnostics.
2455
738f7c2e
DM
24562017-07-07 David Malcolm <dmalcolm@redhat.com>
2457
2458 PR c++/79300
2459 * line-map.c (linemap_macro_loc_to_def_point): Preserve range
2460 information for macro expansions by delaying resolving ad-hoc
2461 locations until within the loop.
2462
c471c6ed
DM
24632017-07-06 David Malcolm <dmalcolm@redhat.com>
2464
2465 PR c++/79300
2466 * include/line-map.h (enum location_aspect): New enum.
2467 (linemap_client_expand_location_to_spelling_point): Add
2468 enum location_aspect param.
2469 * line-map.c (rich_location::get_expanded_location): Update for
2470 new param of linemap_client_expand_location_to_spelling_point.
2471 (rich_location::maybe_add_fixit): Likewise.
2472 (fixit_hint::affects_line_p): Likewise.
2473
6d522731
JJ
24742017-06-21 Jakub Jelinek <jakub@redhat.com>
2475
2476 * line-map.c (location_adhoc_data_update): Perform addition in
2477 uintptr_t type rather than char * type. Read *data using
2478 ptrdiff_t type instead of int64_t.
2479 (get_combined_adhoc_loc): Change offset type to ptrdiff_t from
2480 int64_t.
2481
c7a980b8
DM
24822017-06-20 David Malcolm <dmalcolm@redhat.com>
2483
2484 * include/line-map.h (class rich_location): Document that attempts
2485 to delete or replace a range *affecting* multiple lines will fail.
2486 * line-map.c (rich_location::maybe_add_fixit): Implement this
2487 restriction.
2488
b09649fd
DM
24892017-06-09 David Malcolm <dmalcolm@redhat.com>
2490
2491 * include/line-map.h
2492 (rich_location::fixits_cannot_be_auto_applied): New method.
2493 (rich_location::fixits_can_be_auto_applied_p): New accessor.
2494 (rich_location::m_fixits_cannot_be_auto_applied): New field.
2495 * line-map.c (rich_location::rich_location): Initialize new field.
2496
05945a1b
DM
24972017-06-05 David Malcolm <dmalcolm@redhat.com>
2498
2499 * include/cpplib.h (struct cpp_callbacks): Add "comment"
2500 callback.
2501 * lex.c (_cpp_lex_direct): Call the comment callback if non-NULL.
2502
ad53f123
DM
25032017-05-02 David Malcolm <dmalcolm@redhat.com>
2504
2505 * include/line-map.h (class rich_location): Update description of
2506 newline handling.
2507 (class fixit_hint): Likewise.
2508 (fixit_hint::ends_with_newline_p): New decl.
2509 * line-map.c (rich_location::maybe_add_fixit): Support newlines
2510 in fix-it hints that are insertions of single lines at the start
2511 of a line. Don't consolidate into such fix-it hints.
2512 (fixit_hint::ends_with_newline_p): New method.
2513
338035aa
DM
25142017-05-01 David Malcolm <dmalcolm@redhat.com>
2515
2516 * include/line-map.h (source_range::intersects_line_p): Delete.
2517 (rich_location::add_fixit): Delete.
2518 (rich_location::maybe_add_fixit): New method.
2519 (class fixit_hint): Reimplement in terms of...
2520 (class fixit_replace): ...this.
2521 (class fixit_insert): Delete.
2522 * line-map.c (linemap_position_for_loc_and_offset): Drop overzealous
2523 linemap_assert_fails.
2524 (source_range::intersects_line_p): Rename to...
2525 (fixit_hint::affects_line_p): New function.
2526 (rich_location::add_fixit_insert_before): Reimplement in terms of
2527 maybe_add_fixit, moving validation there.
2528 (rich_location::add_fixit_insert_after): Likewise.
2529 (column_before_p): Delete.
2530 (rich_location::add_fixit_replace): Reimplement in terms of
2531 maybe_add_fixit, moving validation there. Convert closed input range
2532 to half-open range.
2533 (rich_location::add_fixit): Delete.
2534 (rich_location::maybe_add_fixit): New function.
2535 (fixit_insert::fixit_insert): Delete.
2536 (fixit_insert::~fixit_insert): Delete.
2537 (fixit_insert::affects_line_p): Delete.
2538 (fixit_insert::maybe_append_replace): Delete.
2539 (fixit_replace::fixit_replace): Rename to...
2540 (fixit_hint::fixit_hint): ...this, rewriting as necessary.
2541 (fixit_replace::~fixit_replace): Delete.
2542 (fixit_replace::affects_line_p): Delete.
2543 (fixit_replace::maybe_append_replace): Rename to...
2544 (fixit_hint::maybe_append): ...this, rewriting as necessary.
2545
5764ee3c
JW
25462017-04-03 Jonathan Wakely <jwakely@redhat.com>
2547
2548 * include/line-map.h (LINEMAPS_MACRO_MAPS): Fix typo in comment.
2549 * lex.c (search_line_fast): Likewise.
2550 * pch.h (cpp_valid_state): Likewise.
2551
8c00ae24
AS
25522017-03-21 Andreas Schwab <schwab@suse.de>
2553
2554 * lex.c (search_line_fast) [__ARM_NEON && __ARM_64BIT_STATE]:
2555 Convert 64-bit value to boolean before passing to
2556 __builtin_expect.
2557
85e653c9
JM
25582017-03-16 Jason Merrill <jason@redhat.com>
2559
2560 * init.c (cpp_init_builtins): Update __cplusplus for C++17.
2561
e228c50f
GP
25622017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
2563
2564 * Makefile.in (po/$(PACKAGE).pot): Adjust bug reporting URL.
2565
b9f4757f
DM
25662017-01-10 David Malcolm <dmalcolm@redhat.com>
2567
2568 PR c++/77949
2569 * line-map.c (linemap_position_for_column): When calling
2570 linemap_start_line, detect if a new linemap was created with
2571 0 column bits, and bail out early if this is the case.
2572 (linemap_position_for_loc_and_offset): Replace overzealous
2573 linemap_assert_fails with a simple conditional; use correct
2574 bit count.
2575
5ccf1d8d
DM
25762017-01-07 David Malcolm <dmalcolm@redhat.com>
2577
2578 PR c++/72803
2579 * line-map.c (linemap_line_start): When determining if the highest
2580 column given out so far will fit into a proposed change to the
2581 current map, use the effective number of column bits, rather than
2582 the total number of column + range bits.
2583
cbe34bb5
JJ
25842017-01-01 Jakub Jelinek <jakub@redhat.com>
2585
2586 Update copyright years.
2587
a3998c2f
DM
25882016-12-15 David Malcolm <dmalcolm@redhat.com>
2589
2590 PR preprocessor/78680
2591 PR preprocessor/78811
2592 * lex.c (_cpp_lex_direct): Only determine the end-location of
2593 the token and build a range for non-reserved start locations.
2594 Do not do it for EOF tokens.
2595
470a60b2
DM
25962016-12-12 David Malcolm <dmalcolm@redhat.com>
2597
2598 PR preprocessor/78680
2599 * lex.c (_cpp_lex_direct): Ensure line notes are processed before
2600 computing the end-point of the token.
2601
fb2675cb
PB
26022016-11-23 Paolo Bonzini <bonzini@gnu.org>
2603
2604 * include/cpplib.h (struct cpp_options): Add new member
2605 warn_expansion_to_defined.
2606 (CPP_W_EXPANSION_TO_DEFINED): New enum member.
2607 * expr.c (parse_defined): Warn for all uses of "defined"
2608 in macros, and tie warning to CPP_W_EXPANSION_TO_DEFINED.
2609 Make it a pedwarning instead of a warning.
2610 * system.h (HAVE_DESIGNATED_INITIALIZERS): Do not use
2611 "defined" in macros.
2612
b8f56412
DM
26132016-11-17 David Malcolm <dmalcolm@redhat.com>
2614
2615 * charset.c (cpp_interpret_string_1): Skip locations from
2616 loc_reader when advancing 'p' when handling raw strings.
2617
3549e181
JJ
26182016-11-16 Jakub Jelinek <jakub@redhat.com>
2619
2620 PR bootstrap/72823
2621 * configure.ac (ENABLE_ASSERT_CHECKING): Define if gcc configure
2622 would define that macro.
2623 * configure: Regenerated.
2624 * config.in: Regenerated.
2625
a6ac871c
RE
26262016-11-08 Richard Earnshaw <rearnsha@arm.com>
2627
2628 * lex.c (search_line_fast): New implementation for AArch64.
2629
f5ea989d
DM
26302016-10-25 David Malcolm <dmalcolm@redhat.com>
2631
2632 * files.c (destroy_cpp_file): Free file->path.
2633
2be1b796
DM
26342016-10-25 David Malcolm <dmalcolm@redhat.com>
2635
2636 * include/line-map.h (line_maps::~line_maps): New dtor.
2637 (location_adhoc_data_fini): Delete decl.
2638 * line-map.c (line_maps::~line_maps): New dtor.
2639 (location_adhoc_data_fini): Delete.
2640
58f30963
AP
26412016-10-21 Andris Pavenis <andris.pavenis@iki.fi>
2642
2643 PR preprocessor/71681
2644 * files.c (remap_filename): Fix handling -remap in subdirectories.
2645
70f6d5e1
JJ
26462016-10-12 Jakub Jelinek <jakub@redhat.com>
2647
2648 * include/cpplib.h (struct cpp_options): Add
2649 cpp_warn_implicit_fallthrough.
2650 * init.c (cpp_create_reader): Initialize it to 0.
2651 * lex.c (fallthrough_comment_p): Handle different
2652 cpp_warn_implicit_fallthrough levels. Whitespace fixes.
2653
7bad794a
JJ
26542016-10-08 Jakub Jelinek <jakub@redhat.com>
2655
ee19ef45
JJ
2656 * lex.c (fallthrough_comment_p): Accept Else, fallthrough.
2657
81b02905
JJ
2658 * lex.c (fallthrough_comment_p): Extend to handle more common FALLTHRU
2659 comment styles.
2660
7bad794a
JJ
2661 * lex.c (fallthrough_comment_p): Fix off-by-one size comparison
2662 errors, cleanup.
2663 (_cpp_lex_direct): Allow arbitrary comments in between
2664 fallthrough_comment_p comment and following token.
2665
67ef83c6
KN
26662016-10-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
2667
2668 PR target/77847
2669 * lex.c (search_line_fast): Add a FALLTHROUGH comment to correct
2670 compiler error in the version of this function that is
2671 conditionally compiled when GCC_VERSION >= 4005 and both
2672 __ALTIVEC__ and __BIG_ENDIAN__ symbols are defined.
2673
81fea426
MP
26742016-09-26 Marek Polacek <polacek@redhat.com>
2675 Jakub Jelinek <jakub@redhat.com>
2676
2677 PR c/7652
2678 * include/cpplib.h (PREV_FALLTHROUGH): Define.
2679 * internal.h (CPP_FALLTHRU): Define.
2680 * lex.c (fallthrough_comment_p): New function.
2681 (_cpp_lex_direct): Set PREV_FALLTHROUGH on tokens succeeding a falls
2682 through comment.
2683
bbd6fcf3
DM
26842016-09-23 David Malcolm <dmalcolm@redhat.com>
2685
2686 PR preprocessor/77672
2687 * charset.c (cpp_interpret_string_1): Add a source_range for the
2688 NUL-terminator, using the location of the trailing quote of the
2689 final string.
2690
63cb3926
JM
26912016-09-21 Jason Merrill <jason@redhat.com>
2692
2693 * line-map.c (linemap_location_from_macro_definition_p): New.
2694 * line-map.h: Declare it.
2695
31316208
DM
26962016-09-15 David Malcolm <dmalcolm@redhat.com>
2697
2698 * include/line-map.h (class rich_location): Note that newlines
2699 aren't supported in fix-it text.
2700 * line-map.c (rich_location::add_fixit_insert_before): Reject
2701 attempts to add fix-its containing newlines.
2702 (rich_location::add_fixit_replace): Likewise.
2703
254830ba
DM
27042016-09-13 David Malcolm <dmalcolm@redhat.com>
2705
2706 * include/line-map.h (class rich_location): Add description of
2707 fix-it hints to leading comment.
2708 (rich_location::add_fixit_insert): Rename both overloaded methods
2709 to..
2710 (rich_location::add_fixit_insert_before): ...this, updating their
2711 comments.
2712 (rich_location::add_fixit_insert_after): Two new overloaded
2713 methods.
2714 (rich_location::stop_supporting_fixits): New method.
2715 * line-map.c (rich_location::add_fixit_insert): Rename both
2716 overloaded methods to..
2717 (rich_location::add_fixit_insert_before): ...this, updating their
2718 comments.
2719 (rich_location::add_fixit_insert_after): Two new methods.
2720 (rich_location::reject_impossible_fixit): Split out
2721 failure-handling into...
2722 (rich_location::stop_supporting_fixits): New method.
2723
c65236d6
DM
27242016-09-02 David Malcolm <dmalcolm@redhat.com>
2725
2726 * include/line-map.h (rich_location::seen_impossible_fixit_p): New
2727 accessor.
2728
3d4f9f87
DM
27292016-08-31 David Malcolm <dmalcolm@redhat.com>
2730
2731 * include/line-map.h (class fixit_remove): Remove stray decl.
2732 (fixit_hint::affects_line_p): Make const.
2733 (fixit_insert::affects_line_p): Likewise.
2734 (fixit_replace::affects_line_p): Likewise.
2735 * line-map.c (fixit_insert::affects_line_p): Likewise.
2736 (fixit_replace::affects_line_p): Likewise.
2737
b816477a
DM
27382016-08-30 David Malcolm <dmalcolm@redhat.com>
2739
2740 * include/line-map.h (class semi_embedded_vec): New class.
2741 (semi_embedded_vec<T, NUM_EMBEDDED>::semi_embedded_vec): New ctor.
2742 (semi_embedded_vec<T, NUM_EMBEDDED>::~semi_embedded_vec): New
2743 dtor.
2744 (semi_embedded_vec<T, NUM_EMBEDDED>::operator[]): New methods.
2745 (semi_embedded_vec<T, NUM_EMBEDDED>::push): New method.
2746 (semi_embedded_vec<T, NUM_EMBEDDED>::truncate): New method.
2747 (rich_location::get_num_locations): Reimplement in terms of
2748 m_ranges.
2749 (rich_location::get_range): Make non-inline.
2750 (rich_location::get_num_fixit_hints): Reimplement in terms of
2751 m_fixit_hints.
2752 (rich_location::add_fixit): New function.
2753 (rich_location::MAX_RANGES): Rename to...
2754 (rich_location::STATICALLY_ALLOCATED_RANGES): ...this.
2755 (rich_location::MAX_FIXIT_HINTS): Rename to...
2756 (rich_location::STATICALLY_ALLOCATED_RANGES): ...this, and make
2757 private.
2758 (rich_location::m_num_ranges): Eliminate in favor of...
2759 (rich_location::m_ranges): ...this, converting from a fixed-size
2760 array to a semi_embedded_vec.
2761 (rich_location::m_num_fixit_hints): Eliminate in favor of...
2762 (rich_location::m_fixit_hints): ...this, converting from a
2763 fixed-size array to a semi_embedded_vec.
2764 * line-map.c (rich_location::rich_location): Update for above
2765 changes.
2766 (rich_location::~rich_location): Likewise.
2767 (rich_location::get_loc): Likewise.
2768 (rich_location::get_range): New methods.
2769 (rich_location::add_range): Update for above changes.
2770 (rich_location::set_range): Likewise.
2771 (rich_location::add_fixit_insert): Likewise.
2772 (rich_location::add_fixit_replace): Likewise.
2773 (rich_location::get_last_fixit_hint): Likewise.
2774 (rich_location::reject_impossible_fixit): Likewise.
2775 (rich_location::add_fixit): New method.
2776
f9087798
DM
27772016-08-30 David Malcolm <dmalcolm@redhat.com>
2778
2779 * include/line-map.h (rich_location::add_fixit_insert): Add
2780 comments. Add overload omitting the source_location param.
2781 (rich_location::add_fixit_remove): Add comments. Add overloads
2782 omitting the range, and accepting a source_location.
2783 (rich_location::add_fixit_replace): Likewise.
2784 * line-map.c (rich_location::add_fixit_insert): Add comments. Add
2785 overload omitting the source_location param.
2786 (rich_location::add_fixit_remove): Add comments. Add overloads
2787 omitting the range, and accepting a source_location.
2788 (rich_location::add_fixit_replace): Likewise.
2789
2aa51413
DM
27902016-08-26 David Malcolm <dmalcolm@redhat.com>
2791
2792 * include/line-map.h (get_pure_location): New decl.
2793 * line-map.c (get_pure_location): Move here, from gcc/input.c, adding
2794 a line_maps * param.
2795 (rich_location::add_fixit_insert): Call get_pure_location on "where".
2796 (rich_location::add_fixit_replace): Call get_pure_location on the
2797 end-points.
2798
ee908516
DM
27992016-08-26 David Malcolm <dmalcolm@redhat.com>
2800
2801 * include/line-map.h (rich_location): Eliminate unimplemented
2802 constructor based on source_range.
2803 (rich_location::get_last_fixit_hint): New method.
2804 (rich_location::reject_impossible_fixit): New method.
2805 (rich_location): Add fields m_line_table and
2806 m_seen_impossible_fixit.
2807 (fixit_hint::maybe_append_replace): New pure virtual function.
2808 (fixit_insert::maybe_append_replace): New function.
2809 (fixit_replace::maybe_append_replace): New function.
2810 * line-map.c (rich_location::rich_location): Initialize
2811 m_line_table and m_seen_impossible_fixit.
2812 (rich_location::add_fixit_insert): Call
2813 reject_impossible_fixit and bail out if true.
2814 (column_before_p): New function.
2815 (rich_location::add_fixit_replace): Call reject_impossible_fixit
2816 and bail out if true. Attempt to consolidate with neighboring
2817 fixits.
2818 (rich_location::get_last_fixit_hint): New method.
2819 (rich_location::reject_impossible_fixit): New method.
2820 (fixit_insert::maybe_append_replace): New method.
2821 (fixit_replace::maybe_append_replace): New method.
2822
d672cded
DM
28232016-08-23 David Malcolm <dmalcolm@redhat.com>
2824
2825 * include/line-map.h (source_range::from_locations): New method.
2826
2ffe0809
DM
28272016-08-19 David Malcolm <dmalcolm@redhat.com>
2828
2829 * include/line-map.h (fixit_hint::kind): Delete REPLACE.
2830 (class fixit_remove): Delete.
2831 * line-map.c (rich_location::add_fixit_remove): Reimplement
2832 by calling add_fixit_replace with an empty string.
2833 (fixit_remove::fixit_remove): Delete.
2834 (fixit_remove::affects_line_p): Delete.
2835
c65699ef
JM
28362016-08-19 Joseph Myers <joseph@codesourcery.com>
2837
2838 PR c/32187
2839 * include/cpplib.h (CPP_N_FLOATN, CPP_N_FLOATNX)
2840 (CPP_N_WIDTH_FLOATN_NX, CPP_FLOATN_SHIFT, CPP_FLOATN_MAX): New
2841 macros.
2842 * expr.c (interpret_float_suffix): Handle fN, fNx, FN and FNx
2843 suffixes.
2844
fcf830ab
PK
28452016-08-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2846
2847 * expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic.
2848
cb18fd07
DM
28492016-08-18 David Malcolm <dmalcolm@redhat.com>
2850
2851 * directives.c (directive_names): New array.
2852 (_cpp_handle_directive): Offer spelling suggestions for misspelled
2853 directives.
2854 * errors.c (cpp_diagnostic_at_richloc): New function.
2855 (cpp_error_at_richloc): New function.
2856 * include/cpplib.h (struct cpp_callbacks): Add field
2857 "get_suggestion".
2858 (cpp_error_at_richloc): New decl.
2859
9c62c873
MP
28602016-08-18 Marek Polacek <polacek@redhat.com>
2861
2862 PR c/7652
2863 * pch.c (write_macdef): Add CPP_FALLTHRU.
2864
191816a3
MP
28652016-08-12 Marek Polacek <polacek@redhat.com>
2866
2867 PR c/7652
2868 * lex.c (search_line_fast): Add FALLTHRU.
2869 (_cpp_lex_direct): Likewise.
2870 (cpp_token_val_index): Adjust fall through comment.
2871 * macro.c (parse_params): Add FALLTHRU.
2872 * pch.c (count_defs): Adjust fall through comment.
2873 (write_defs): Likewise.
2874
e7864d68
DM
28752016-08-06 David Malcolm <dmalcolm@redhat.com>
2876
2877 PR bootstrap/72823
2878 * charset.c (_cpp_valid_ucn): Replace overzealous assert with one
2879 that allows for char_range to be non-NULL when loc_reader is NULL.
2880
88fa5555
DM
28812016-08-05 David Malcolm <dmalcolm@redhat.com>
2882
2883 * charset.c (cpp_substring_ranges::cpp_substring_ranges): New
2884 constructor.
2885 (cpp_substring_ranges::~cpp_substring_ranges): New destructor.
2886 (cpp_substring_ranges::add_range): New method.
2887 (cpp_substring_ranges::add_n_ranges): New method.
2888 (_cpp_valid_ucn): Add "char_range" and "loc_reader" params; if
2889 they are non-NULL, read position information from *loc_reader
2890 and update char_range->m_finish accordingly.
2891 (convert_ucn): Add "char_range", "loc_reader", and "ranges"
2892 params. If loc_reader is non-NULL, read location information from
2893 it, and update *ranges accordingly, using char_range.
2894 Conditionalize the conversion into tbuf on tbuf being non-NULL.
2895 (convert_hex): Likewise, conditionalizing the call to
2896 emit_numeric_escape on tbuf.
2897 (convert_oct): Likewise.
2898 (convert_escape): Add params "loc_reader" and "ranges". If
2899 loc_reader is non-NULL, read location information from it, and
2900 update *ranges accordingly. Conditionalize the conversion into
2901 tbuf on tbuf being non-NULL.
2902 (cpp_interpret_string): Rename to...
2903 (cpp_interpret_string_1): ...this, adding params "loc_readers" and
2904 "out". Use "to" to conditionalize the initialization and usage of
2905 "tbuf", such as running the converter. If "loc_readers" is
2906 non-NULL, use the instances within it, reading location
2907 information from them, and passing them to convert_escape; likewise
2908 write to "out" if loc_readers is non-NULL. Check for leading
2909 quote and issue an error if it is not present. Update boundary
2910 check from "== limit" to ">= limit" to protect against erroneous
2911 location values to calls that are not parsing string literals.
2912 (cpp_interpret_string): Reimplement in terms to
2913 cpp_interpret_string_1.
2914 (noop_error_cb): New function.
2915 (cpp_interpret_string_ranges): New function.
2916 (cpp_string_location_reader::cpp_string_location_reader): New
2917 constructor.
2918 (cpp_string_location_reader::get_next): New method.
2919 * include/cpplib.h (class cpp_string_location_reader): New class.
2920 (class cpp_substring_ranges): New class.
2921 (cpp_interpret_string_ranges): New prototype.
2922 * internal.h (_cpp_valid_ucn): Add params "char_range" and
2923 "loc_reader".
2924 * lex.c (forms_identifier_p): Pass NULL for new params to
2925 _cpp_valid_ucn.
2926
8204be6c
AS
29272016-08-01 Andreas Schwab <schwab@suse.de>
2928
2929 * include/cpplib.h: Fix comment typo.
2930
a01fc549
DM
29312016-07-27 David Malcolm <dmalcolm@redhat.com>
2932
2933 * include/line-map.h (source_location): Fix line numbers in
2934 comment.
2935
741d3be5
DM
29362016-07-11 David Malcolm <dmalcolm@redhat.com>
2937
2938 * include/line-map.h (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES):
2939 Move here from line-map.c.
2940 (LINE_MAP_MAX_LOCATION_WITH_COLS): Likewise.
2941 * line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): Move from
2942 here to line-map.h.
2943 (LINE_MAP_MAX_LOCATION_WITH_COLS): Likewise.
2944
ac81cf0b
DM
29452016-06-22 David Malcolm <dmalcolm@redhat.com>
2946
2947 * directives.c (do_include_common): Pass on "location" to
2948 _cpp_stack_include.
2949 * errors.c (cpp_diagnostic): Reimplement in terms of...
2950 (cpp_diagnostic_at): New function.
2951 (cpp_error_at): New function.
2952 (cpp_errno_filename): Add "loc" param and use it by using
2953 cpp_error_at rather than cpp_error.
2954 * files.c (find_file_in_dir): Add "loc" param and pass it to
2955 open_file_failed.
2956 (_cpp_find_file): Add "loc" param. Use it to convert calls to
2957 cpp_error to cpp_error_at, and pass it to find_file_in_dir and
2958 open_file_failed.
2959 (read_file_guts): Add "loc" param. Use it to convert calls to
2960 cpp_error to cpp_error_at. Pass it to cpp_errno_filename.
2961 (read_file): Add "loc" param. Pass it to open_file_failed and
2962 read_file_guts.
2963 (should_stack_file): Add "loc" param. Pass it to read_file.
2964 (_cpp_stack_file): Add "loc" param. Pass it to should_stack_file.
2965 (_cpp_stack_include): Add "loc" param. Pass it to
2966 _cpp_find_file and _cpp_stack_file.
2967 (open_file_failed): Add "loc" param. Pass it to
2968 cpp_errno_filename.
2969 (_cpp_fake_include): Add 0 as a source_location in call to
2970 _cpp_find_file.
2971 (_cpp_compare_file_date): Likewise.
2972 (cpp_push_include): Likewise for call to _cpp_stack_include.
2973 (cpp_push_default_include): Likewise.
2974 (_cpp_save_file_entries): Likewise for call to open_file_failed.
2975 (_cpp_has_header): Likewise for call to _cpp_find_file.
2976 * include/cpplib.h (cpp_errno_filename): Add source_location
2977 param.
2978 (cpp_error_at): New declaration.
2979 * init.c (cpp_read_main_file): Add 0 as a source_location in calls
2980 to _cpp_find_file and _cpp_stack_file.
2981 * internal.h (_cpp_find_file): Add source_location param.
2982 (_cpp_stack_file): Likewise.
2983 (_cpp_stack_include): Likewise.
2984
a93eac6a
DM
29852016-06-22 David Malcolm <dmalcolm@redhat.com>
2986
2987 * include/line-map.h (fixit_hint::get_start_loc): New pure virtual
2988 function.
2989 (fixit_hint::maybe_get_end_loc): Likewise.
2990 (fixit_insert::get_start_loc): New function, implementing
2991 fixit_hint::get_start_loc.
2992 (fixit_insert::maybe_get_end_loc): New function, implementing
2993 fixit_hint::maybe_get_end_loc.
2994 (fixit_remove::get_start_loc): New function, implementing
2995 fixit_hint::get_start_loc.
2996 (fixit_remove::maybe_get_end_loc): New function, implementing
2997 fixit_hint::maybe_get_end_loc.
2998 (fixit_replace::get_start_loc): New function, implementing
2999 fixit_hint::get_start_loc.
3000 (fixit_replace::maybe_get_end_loc): New function, implementing
3001 fixit_hint::maybe_get_end_loc.
3002
fe55692c
JDA
30032016-06-21 John David Anglin <danglin@gcc.gnu.org>
3004
3005 * line-map.c (location_adhoc_data_update): Use int64_t instead of
3006 long long.
3007 (get_combined_adhoc_loc): Likewise.
3008
15c98b2e
ES
30092016-06-01 Eduard Sanou <dhole@openmailbox.org>
3010
3011 * include/cpplib.h (cpp_callbacks): Add get_source_date_epoch
3012 callback.
3013 * include/cpplib.h (cpp_init_source_date_epoch): Remove prototype.
3014 * init.c (cpp_init_source_date_epoch): Remove function.
3015 * init.c (cpp_create_reader): Initialize pfile->source_date_epoch.
3016 * internal.h (cpp_reader): Extend comment about source_date_epoch.
3017 * macro.c (_cpp_builtin_macro_text): Use get_source_date_epoch
3018 callback only once, read pfile->source_date_epoch on future passes.
3019 Check that get_source_date_epoch callback is not NULL.
3020
ceb17928
ML
30212016-05-20 Martin Liska <mliska@suse.cz>
3022
3023 * config.in: Regenerated.
3024 * configure: Likewise.
3025 * configure.ac: Handle --enable-valgrind-annotations.
3026 * lex.c (new_buff): Use ENABLE_VALGRIND_ANNOTATIONS instead
3027 of ENABLE_VALGRIND_CHECKING.
3028 (_cpp_free_buff): Likewise.
3029
174f6622
ES
30302016-04-28 Eduard Sanou <dhole@openmailbox.org>
3031 Matthias Klose <doko@debian.org>
3032
3033 * include/cpplib.h (cpp_init_source_date_epoch): Prototype.
3034 * init.c (cpp_init_source_date_epoch): New function.
3035 * internal.h: Added source_date_epoch variable to struct
3036 cpp_reader to store a reproducible date.
7365279f
BK
3037 * macro.c (_cpp_builtin_macro_text): Set pfile->date timestamp from
3038 pfile->source_date_epoch instead of localtime if source_date_epoch is
3039 set, to be used for __DATE__ and __TIME__ macros to help reproducible
174f6622
ES
3040 builds.
3041
12de2245
BS
30422016-04-13 Bernd Schmidt <bschmidt@redhat.com>
3043
3044 Patch from Roger Orr <rogero@howzatt.demon.co.uk>
3045 PR preprocessor/69650
3046 * directives.c (do_linemarker): Reread map after calling
3047 cpp_get_token.
3048
64824205
RH
30492016-04-06 Richard Henderson <rth@redhat.com>
3050
3051 PR preprocessor/61817
3052 PR preprocessor/69391
3053 * internal.h (_cpp_builtin_macro_text): Update decl.
3054 * macro.c (_cpp_builtin_macro_text): Accept location for __LINE__.
3055 (builtin_macro): Accept a second location for __LINE__.
3056 (enter_macro_context): Compute both virtual and real expansion
3057 locations for the macro.
3058
3caf0ca1
BS
30592016-03-25 Bernd Schmidt <bschmidt@redhat.com>
3060
3061 PR lto/69650
3062 * directives.c (do_linemarker): Test for file left but not entered
3063 here.
3064 * line-map.c (linemap_add): Not here.
3065
6b366948
JJ
30662016-03-21 Jakub Jelinek <jakub@redhat.com>
3067
3068 PR target/70296
3069 * include/cpplib.h (cpp_fun_like_macro_p): New prototype.
3070 * macro.c (cpp_fun_like_macro_p): New function.
3071
64567cfd
RH
30722016-03-15 Richard Henderson <rth@redhat.com>
3073
3074 * line-map.c (new_linemap): Make alloc_size a size_t.
3075
2aaeea19
JM
30762016-03-14 Jason Merrill <jason@redhat.com>
3077
3078 * expr.c (cpp_classify_number): Hex floats are new in C++1z.
3079 * init.c (lang_defaults): Likewise.
3080
b4f3232d
DM
30812016-03-09 David Malcolm <dmalcolm@redhat.com>
3082
3083 PR c/68473
3084 PR c++/70105
3085 * line-map.c (linemap_macro_map_loc_unwind_toward_spelling): Move
3086 decl...
3087 * include/line-map.h
3088 (linemap_macro_map_loc_unwind_toward_spelling): ...here,
3089 converting from static to extern.
3090
40499f81
DM
30912016-03-09 David Malcolm <dmalcolm@redhat.com>
3092
3093 PR c/68473
3094 PR c++/70105
3095 * include/line-map.h (source_range::debug): Delete.
3096 (struct location_range): Update comment. Replace
3097 expanded_location fields "m_start", "m_finish", and "m_caret" with
3098 a source_location field: "m_loc".
3099 (class rich_location): Reword comment.
3100 (rich_location::get_loc): Reimplement in terms of a new overloaded
3101 variant which takes an unsigned int.
3102 (rich_location::get_loc_addr): Delete.
3103 (rich_location::add_range): Drop params "start" and "finish" in
3104 favor of param "loc". Drop overloaded variants taking a
3105 source_range or location_range *.
3106 (rich_location::lazily_expand_location): Delete in favor of...
3107 (rich_location::get_expanded_location): New decl.
3108 (rich_location::m_loc): Delete field.
3109 (rich_location::m_column_override): New field.
3110 * line-map.c (rich_location::rich_location): Drop name of
3111 line_maps * param. Update initializations for deletion of field
3112 "m_loc" and addition of field "m_column_override". Reimplement
3113 body as a call to add_range. Delete overloaded variant taking a
3114 source_range.
3115 (rich_location::get_loc): New function.
3116 (rich_location::lazily_expand_location): Delete in favor of...
3117 (rich_location::get_expanded_location): New function.
3118 (rich_location::override_column): Reimplement.
3119 (rich_location::add_range): Drop params "start" and "finish" in
3120 favor of param "loc". Eliminate location expansion in favor of
3121 simply storing loc. Drop overloaded variants taking a
3122 source_range or location_range *.
3123 (rich_location::set_range): Eliminate location expansion.
3124
7168133a
DM
31252016-02-29 David Malcolm <dmalcolm@redhat.com>
3126
3127 PR preprocessor/69985
3128 (linemap_position_for_loc_and_offset): Rename param from "offset"
3129 to "column_offset". Right-shift the column_offset by m_range_bits
3130 of the pertinent ordinary map whenever offsetting a
3131 source_location. For clarity, offset the column by the column
3132 offset, rather than the other way around.
3133
196440f8
DM
31342016-02-23 David Malcolm <dmalcolm@redhat.com>
3135
3136 PR preprocessor/69126
3137 PR preprocessor/69543
3138 * line-map.c (linemap_compare_locations): At the function top,
3139 replace inlined bodies of get_location_from_adhoc_loc with calls
3140 to get_location_from_adhoc_loc. Add a pair of calls to
3141 get_location_from_adhoc_loc at the bottom of the function, to
3142 avoid meaningless comparisons of ad-hoc and non-ad-hoc locations.
3143
44714d8c
DM
31442016-02-08 David Malcolm <dmalcolm@redhat.com>
3145
3146 PR preprocessor/69664
3147 * errors.c (cpp_diagnostic_with_line): Only call
3148 rich_location::override_column if the column is non-zero.
3149 * line-map.c (rich_location::override_column): Update columns
3150 within m_ranges[0]. Add assertions to verify that doing so is
3151 sane.
3152
b5c1c988
JJ
31532016-02-05 Jakub Jelinek <jakub@redhat.com>
3154
3155 PR c++/69628
3156 * charset.c (cpp_interpret_charconst): Clear *PCHARS_SEEN
3157 and *UNSIGNEDP if bailing out early due to errors.
3158
e2eb5056
JJ
31592016-01-28 Jakub Jelinek <jakub@redhat.com>
3160
4bda5946
JJ
3161 PR pch/68176
3162 * files.c (_cpp_find_file): Set file->implicit_preinclude even if
3163 included from file->implicit_preinclude header.
3164
e2eb5056
JJ
3165 * directives.c (destringize_and_run): Adjust prototype.
3166
0afff540
DM
31672016-01-27 David Malcolm <dmalcolm@redhat.com>
3168
3169 PR preprocessor/69126
3170 * directives.c (destringize_and_run): Add expansion_loc param; use
3171 it when handling unexpanded pragmas to fixup the locations of the
3172 synthesized tokens.
3173 (_cpp_do__Pragma): Add expansion_loc param and use it when calling
3174 destringize_and_run.
3175 * internal.h (_cpp_do__Pragma): Add expansion_loc param.
3176 * macro.c (builtin_macro): Pass expansion location of _Pragma to
3177 _cpp_do__Pragma.
3178
c7df95d8
DM
31792016-01-14 David Malcolm <dmalcolm@redhat.com>
3180
3181 PR preprocessor/69177
3182 * line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): New
3183 constant.
3184 (LINE_MAP_MAX_LOCATION_WITH_COLS): Add note about unit tests
3185 to comment.
3186 (can_be_stored_compactly_p): Reduce threshold from
3187 LINE_MAP_MAX_LOCATION_WITH_COLS to
3188 LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES.
3189 (get_combined_adhoc_loc): Likewise.
3190 (get_range_from_loc): Likewise.
3191 (linemap_line_start): Ensure that a new ordinary map is created
3192 when transitioning from range-packing being enabled to disabled,
3193 at the LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES threshold. Set
3194 range_bits to 0 for new ordinary maps when beyond this limit.
3195 Prevent the "increase the column bits of a freshly created map"
3196 optimization if the range bits has reduced.
3197
53290e07
JJ
31982016-01-08 Jakub Jelinek <jakub@redhat.com>
3199
3200 PR c++/69145
3201 * files.c (cpp_included_before): If IS_ADHOC_LOC (location), lookup
3202 real location from the line_table.
3203
818ab71a
JJ
32042016-01-04 Jakub Jelinek <jakub@redhat.com>
3205
3206 Update copyright years.
3207
329590d7
DM
32082015-12-22 David Malcolm <dmalcolm@redhat.com>
3209
3210 * line-map.c (get_combined_adhoc_loc): Remove condition
3211 on locus < RESERVED_LOCATION_COUNT when considering
3212 whether a caret == start == finish location can be
3213 simply stored as the caret location.
3214
f79520bb
DM
32152015-12-07 David Malcolm <dmalcolm@redhat.com>
3216
3217 * include/line-map.h (rich_location::set_range): Add line_maps *
3218 param; convert param from source_range to source_location. Drop
3219 "overwrite_loc_p" param.
3220 * line-map.c (rich_location::set_range): Likewise, acting as if
3221 "overwrite_loc_p" were true, and getting range from the location.
3222
a87a86e1
DM
32232015-11-20 David Malcolm <dmalcolm@redhat.com>
3224
3225 PR 62314
3226 * include/line-map.h (source_range::intersects_line_p): New
3227 method.
3228 (rich_location::~rich_location): New.
3229 (rich_location::add_fixit_insert): New method.
3230 (rich_location::add_fixit_remove): New method.
3231 (rich_location::add_fixit_replace): New method.
3232 (rich_location::get_num_fixit_hints): New accessor.
3233 (rich_location::get_fixit_hint): New accessor.
3234 (rich_location::MAX_FIXIT_HINTS): New constant.
3235 (rich_location::m_num_fixit_hints): New field.
3236 (rich_location::m_fixit_hints): New field.
3237 (class fixit_hint): New class.
3238 (class fixit_insert): New class.
3239 (class fixit_remove): New class.
3240 (class fixit_replace): New class.
3241 * line-map.c (source_range::intersects_line_p): New method.
3242 (rich_location::rich_location): Add initialization of
3243 m_num_fixit_hints to both ctors.
3244 (rich_location::~rich_location): New.
3245 (rich_location::add_fixit_insert): New method.
3246 (rich_location::add_fixit_remove): New method.
3247 (rich_location::add_fixit_replace): New method.
3248 (fixit_insert::fixit_insert): New.
3249 (fixit_insert::~fixit_insert): New.
3250 (fixit_insert::affects_line_p): New.
3251 (fixit_remove::fixit_remove): New.
3252 (fixit_remove::affects_line_p): New.
3253 (fixit_replace::fixit_replace): New.
3254 (fixit_replace::~fixit_replace): New.
3255 (fixit_replace::affects_line_p): New.
3256
46ce03de
JJ
32572015-11-19 Jakub Jelinek <jakub@redhat.com>
3258
3259 PR preprocessor/60736
3260 * include/cpplib.h (cpp_errno_filename): New prototype.
3261 * errors.c (cpp_errno): Don't handle msgid "" specially, use
3262 _(msgid) instead of msgid as argument to cpp_error.
3263 (cpp_errno_filename): New function.
3264 * files.c (read_file_guts): Use cpp_errno_filename instead of
3265 cpp_errno.
3266 (open_file_failed): Likewise. Use file->name if file->path is NULL
3267 in diagnostics.
3268
ebedc9a3
DM
32692015-11-13 David Malcolm <dmalcolm@redhat.com>
3270
3271 * errors.c (cpp_diagnostic): Pass pfile->line_table to
3272 rich_location ctor.
3273 (cpp_diagnostic_with_line): Likewise.
3274 * include/cpplib.h (struct cpp_token): Update comment for src_loc
3275 to indicate that the range of the token is "baked into" the
3276 source_location.
3277 * include/line-map.h (source_location): Update the descriptive
3278 comment to reflect the packing scheme for short ranges, adding
3279 worked examples of location encoding.
3280 (struct line_map_ordinary): Drop field "column_bits" in favor
3281 of field "m_column_and_range_bits"; add field "m_range_bits".
3282 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete.
3283 (location_adhoc_data): Add source_range field.
3284 (struct line_maps): Add fields "default_range_bits",
3285 "num_optimized_ranges" and "num_unoptimized_ranges".
3286 (get_combined_adhoc_loc): Add source_range param.
3287 (get_range_from_loc): New declaration.
3288 (pure_location_p): New prototype.
3289 (COMBINE_LOCATION_DATA): Add source_range param.
3290 (SOURCE_LINE): Update for renaming of column_bits.
3291 (SOURCE_COLUMN): Likewise. Shift the column right by the map's
3292 range_bits.
3293 (LAST_SOURCE_LINE_LOCATION): Update for renaming of column_bits.
3294 (linemap_position_for_line_and_column): Add line_maps * params.
3295 (rich_location::rich_location): Likewise.
3296 * lex.c (_cpp_lex_direct): Capture the range of the token, baking
3297 it into token->src_loc via a call to COMBINE_LOCATION_DATA.
3298 * line-map.c (LINE_MAP_MAX_COLUMN_NUMBER): Reduce from 1U << 17 to
3299 1U << 12.
3300 (location_adhoc_data_hash): Add the src_range into
3301 the hash value.
3302 (location_adhoc_data_eq): Require equality of the src_range
3303 values.
3304 (can_be_stored_compactly_p): New function.
3305 (get_combined_adhoc_loc): Add src_range param, and store it,
3306 via a bit-packing scheme for short ranges, otherwise within the
3307 lookaside table. Remove the requirement that data is non-NULL.
3308 (get_range_from_adhoc_loc): New function.
3309 (get_range_from_loc): New function.
3310 (pure_location_p): New function.
3311 (linemap_add): Ensure that start_location has zero for the
3312 range_bits, unless we're past LINE_MAP_MAX_LOCATION_WITH_COLS.
3313 Initialize range_bits to zero. Assert that the start_location
3314 is "pure".
3315 (linemap_line_start): Assert that the
3316 column_and_range_bits >= range_bits.
3317 Update determinination of whether we need to start a new map
3318 using the effective column bits, without the range bits.
3319 Use the set's default_range_bits in new maps, apart from
3320 those with column_bits == 0, which should also have 0 range_bits.
3321 Increase the column bits for new maps by the range bits.
3322 When adding lines to an existing map, use set->highest_line
3323 directly rather than offsetting highest by SOURCE_COLUMN.
3324 Add assertions to sanity-check the return value.
3325 (linemap_position_for_column): Offset to_column by range_bits.
3326 Update set->highest_location if necessary.
3327 (linemap_position_for_line_and_column): Add line_maps * param.
3328 Update the calculation to offset the column by range_bits, and
3329 conditionalize it on being <= LINE_MAP_MAX_LOCATION_WITH_COLS.
3330 Bound it by LINEMAPS_MACRO_LOWEST_LOCATION. Update
3331 set->highest_location if necessary.
3332 (linemap_position_for_loc_and_offset): Handle ad-hoc locations;
3333 pass "set" to linemap_position_for_line_and_column.
3334 (linemap_macro_map_loc_unwind_toward_spelling): Add line_maps
3335 param. Handle ad-hoc locations.
3336 (linemap_location_in_system_header_p): Pass on "set" to call to
3337 linemap_macro_map_loc_unwind_toward_spelling.
3338 (linemap_macro_loc_to_spelling_point): Retain ad-hoc locations.
3339 Pass on "set" to call to
3340 linemap_macro_map_loc_unwind_toward_spelling.
3341 (linemap_resolve_location): Retain ad-hoc locations. Pass on
3342 "set" to call to linemap_macro_map_loc_unwind_toward_spelling.
3343 (linemap_unwind_toward_expansion): Pass on "set" to call to
3344 linemap_macro_map_loc_unwind_toward_spelling.
3345 (linemap_expand_location): Extract the data pointer before
3346 extracting the location.
3347 (rich_location::rich_location): Add line_maps param; use it to
3348 extract the range from the source_location.
3349 * location-example.txt: Regenerate, showing new representation.
3350
8a645150
DM
33512015-11-06 David Malcolm <dmalcolm@redhat.com>
3352
3353 * errors.c (cpp_diagnostic): Update for change in signature
3354 of "error" callback.
3355 (cpp_diagnostic_with_line): Likewise, calling override_column
3356 on the rich_location.
3357 * include/cpplib.h (struct cpp_callbacks): Within "error"
3358 callback, convert param from source_location to rich_location *,
3359 and drop column_override param.
3360 * include/line-map.h (struct source_range): New struct.
3361 (struct location_range): New struct.
3362 (class rich_location): New class.
3363 (linemap_client_expand_location_to_spelling_point): New declaration.
3364 * line-map.c (rich_location::rich_location): New ctors.
3365 (rich_location::lazily_expand_location): New method.
3366 (rich_location::override_column): New method.
3367 (rich_location::add_range): New methods.
3368 (rich_location::set_range): New method.
3369
ee015909
DM
33702015-11-06 David Malcolm <dmalcolm@redhat.com>
3371
3372 * include/line-map.h (struct linemap_stats): Add fields
3373 "adhoc_table_size" and "adhoc_table_entries_used".
3374 * line-map.c (linemap_get_statistics): Populate above fields.
3375
a6c764d0
MM
33762015-11-04 Mikhail Maltsev <maltsevm@gmail.com>
3377
3378 * config.in: Regenerate.
3379 * configure: Regenerate.
3380 * configure.ac: Remove ENABLE_CHECKING.
3381
49445904
UB
33822015-11-03 Uros Bizjak <ubizjak@gmail.com>
3383
3384 * lex.c (search_line_sse42): Correctly advance the pointer to an
3385 aligned address.
3386
525ce910
DM
33872015-11-02 David Malcolm <dmalcolm@redhat.com>
3388
3389 * include/line-map.h (source_location): In the table in the
3390 descriptive comment, show UNKNOWN_LOCATION, BUILTINS_LOCATION,
3391 LINE_MAP_MAX_LOCATION_WITH_COLS, LINE_MAP_MAX_SOURCE_LOCATION.
3392 Add notes about ad-hoc values.
3393
7ec491c0
MM
33942015-10-21 Mikhail Maltsev <maltsevm@gmail.com>
3395
22d66382
MM
3396 * include/line-map.h: Use CHECKING_P instead of ENABLE_CHECKING.
3397 * init.c: Likewise.
3398 * macro.c (struct macro_arg_token_iter, set_arg_token,
3399 macro_arg_token_iter_init, macro_arg_token_iter_forward,
3400 macro_arg_token_iter_get_token, macro_arg_token_iter_get_location,
3401 alloc_expanded_arg_mem, _cpp_backup_tokens): Likewise.
3402
7ec491c0
MM
3403 * config.in: Regenerate.
3404 * configure: Regenerate.
3405 * configure.ac (CHECKING_P): Define.
3406 * system.h (fancy_abort): Declare.
3407 (abort): Define.
3408 (gcc_assert): Define. Use CHECKING_P.
3409
179b8d05
MM
34102015-10-13 Mikhail Maltsev <maltsevm@gmail.com>
3411
3412 * system.h (CHECKING_P, gcc_checking_assert): Define.
3413
87b470b3
MLI
34142015-09-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
3415
3416 PR c/66415
3417 * line-map.c (linemap_position_for_loc_and_offset): Handle the
3418 case of long lines encoded in multiple maps.
3419
85bc8baa
MP
34202015-09-07 Marek Polacek <polacek@redhat.com>
3421
3422 * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
3423
bf5372e7
YS
34242015-08-06 Yaakov Selkowitz <yselkowi@redhat.com>
3425
3426 * configure: Regenerate.
3427
d17f7d59
TS
34282015-07-08 Thomas Schwinge <thomas@codesourcery.com>
3429
3430 * include/line-map.h (RESERVED_LOCATION_COUNT): Change type to
3431 source_location.
3432
fbb22910
PC
34332015-07-02 Paolo Carlini <paolo.carlini@oracle.com>
3434
d885793d 3435 PR preprocessor/53690
fbb22910
PC
3436 * charset.c (_cpp_valid_ucn): Add cppchar_t * parameter and change
3437 return type to bool. Fix encoding of \u0000 and \U00000000 in C++.
3438 (convert_ucn): Adjust call.
3439 * lex.c (forms_identifier_p): Likewise.
3440 * internal.h (_cpp_valid_ucn): Adjust declaration.
3441
fe95b036
ESR
34422015-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
3443
3444 Implement N4197 - Adding u8 character literals
3445 * include/cpplib.h (UTF8CHAR, UTF8CHAR_USERDEF): New cpp tokens;
3446 (struct cpp_options): Add utf8_char_literals.
3447 * init.c (struct lang_flags): Add utf8_char_literals;
3448 (struct lang_flags lang_defaults): Add column for utf8_char_literals.
fbb22910 3449 * macro.c (stringify_arg()): Treat CPP_UTF8CHAR token;
fe95b036
ESR
3450 * expr.c (cpp_userdef_char_remove_type(), cpp_userdef_char_add_type()):
3451 Treat CPP_UTF8CHAR_USERDEF, CPP_UTF8CHAR tokens;
3452 (cpp_userdef_char_p()): Treat CPP_UTF8CHAR_USERDEF token;
3453 (eval_token(), _cpp_parse_expr()): Treat CPP_UTF8CHAR token.
3454 * lex.c (lex_string(), _cpp_lex_direct()): Include CPP_UTF8CHAR tokens.
3455 * charset.c (converter_for_type(), cpp_interpret_charconst()):
3456 Treat CPP_UTF8CHAR token.
3457
dc6bcf52
UB
34582015-06-30 Uros Bizjak <ubizjak@gmail.com>
3459
3460 * lex.c (search_line_sse42) [__GCC_ASM_FLAG_OUTPUTS__]: New main
3461 loop using asm flag outputs.
3462
a1661b90
MP
34632015-06-08 Marek Polacek <polacek@redhat.com>
3464
3465 PR c/66415
3466 * line-map.c (linemap_position_for_loc_and_offset): Remove
3467 linemap_assert_fails; reverse conditions.
3468
815facd3
MLI
34692015-05-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
3470
3471 * line-map.c (LINE_MAP_MAX_COLUMN_NUMBER
3472 LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_SOURCE_LOCATION):
3473 New constants.
3474 (linemap_line_start): Use them.
3475 (linemap_position_for_column): Use them.
3476
c819ed29
DM
34772015-05-20 David Malcolm <dmalcolm@redhat.com>
3478
3479 * include/line-map.h (MAP_START_LOCATION): Eliminate the non-const
3480 variant, and tweak comment for the const variant.
3481 (ORDINARY_MAP_STARTING_LINE_NUMBER): Drop the non-const variant.
3482 (ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
3483 (ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
3484 (SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete.
3485 (ORDINARY_MAP_FILE_NAME): Drop the non-const variant.
3486 (MACRO_MAP_MACRO): Likewise.
3487 (MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
3488 (MACRO_MAP_LOCATIONS): Likewise.
3489 (MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
3490 * line-map.c (linemap_add): Replace writes through macros with
3491 direct field accesses.
3492 (linemap_enter_macro): Likewise.
3493 (linemap_line_start): Likewise.
3494
0e50b624
DM
34952015-05-19 David Malcolm <dmalcolm@redhat.com>
3496
3497 * directives.c (do_line): Strengthen local "map" from
3498 const line_map * to const line_map_ordinary *.
3499 (do_linemarker): Likewise.
3500 (_cpp_do_file_change): Assert that we're not dealing with
3501 a macro map. Introduce local "ord_map" via a call to
3502 linemap_check_ordinary, guarded within the check for
3503 non-NULL. Use it for typesafety.
3504 * files.c (cpp_make_system_header): Strengthen local "map" from
3505 const line_map * to const line_map_ordinary *.
3506 * include/cpplib.h (struct cpp_callbacks): Likewise for second
3507 parameter of "file_change" callback.
3508 * include/line-map.h (struct line_map): Convert from a struct
3509 containing a union to a base class.
3510 (struct line_map_ordinary): Convert to a subclass of line_map.
3511 (struct line_map_macro): Likewise.
3512 (linemap_check_ordinary): Strengthen return type from line_map *
3513 to line_map_ordinary *, and add a const-variant.
3514 (linemap_check_macro): New pair of functions.
3515 (ORDINARY_MAP_STARTING_LINE_NUMBER): Strengthen param from
3516 const line_map * to const line_map_ordinary *, eliminating call
3517 to linemap_check_ordinary. Likewise for the non-const variant.
3518 (ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
3519 (ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
3520 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Likewise.
3521 (ORDINARY_MAP_FILE_NAME): Likewise.
3522 (MACRO_MAP_MACRO): Strengthen param from const line_map * to
3523 const line_map_macro *. Likewise for the non-const variant.
3524 (MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
3525 (MACRO_MAP_LOCATIONS): Likewise.
3526 (MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
3527 (struct maps_info): Replace with...
3528 (struct maps_info_ordinary):...this and...
3529 (struct maps_info_macro): ...this.
3530 (struct line_maps): Convert fields "info_ordinary" and
3531 "info_macro" to the above new structs.
3532 (LINEMAPS_MAP_INFO): Delete both functions.
3533 (LINEMAPS_MAPS): Likewise.
3534 (LINEMAPS_ALLOCATED): Rewrite both variants to avoid using
3535 LINEMAPS_MAP_INFO.
3536 (LINEMAPS_USED): Likewise.
3537 (LINEMAPS_CACHE): Likewise.
3538 (LINEMAPS_MAP_AT): Likewise.
3539 (LINEMAPS_ORDINARY_MAPS): Strengthen return type from line_map *
3540 to line_map_ordinary *.
3541 (LINEMAPS_ORDINARY_MAP_AT): Likewise.
3542 (LINEMAPS_LAST_ORDINARY_MAP): Likewise.
3543 (LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise.
3544 (LINEMAPS_MACRO_MAPS): Strengthen return type from line_map * to
3545 line_map_macro *.
3546 (LINEMAPS_MACRO_MAP_AT): Likewise.
3547 (LINEMAPS_LAST_MACRO_MAP): Likewise.
3548 (LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise.
3549 (linemap_map_get_macro_name): Strengthen param from
3550 const line_map * to const line_map_macro *.
3551 (SOURCE_LINE): Strengthen first param from const line_map * to
3552 const line_map_ordinary *, removing call to
3553 linemap_check_ordinary.
3554 (SOURCE_COLUMN): Likewise.
3555 (LAST_SOURCE_LINE_LOCATION): Likewise.
3556 (LAST_SOURCE_LINE): Strengthen first param from const line_map *
3557 to const line_map_ordinary *.
3558 (LAST_SOURCE_COLUMN): Likewise.
3559 (INCLUDED_FROM): Strengthen return type from line_map * to
3560 line_map_ordinary *., and second param from const line_map *
3561 to const line_map_ordinary *, removing call to
3562 linemap_check_ordinary.
3563 (MAIN_FILE_P): Strengthen param from const line_map * to
3564 const line_map_ordinary *, removing call to
3565 linemap_check_ordinary.
3566 (linemap_position_for_line_and_column): Strengthen param from
3567 const line_map * to const line_map_ordinary *.
3568 (LINEMAP_FILE): Strengthen param from const line_map * to
3569 const line_map_ordinary *, removing call to
3570 linemap_check_ordinary.
3571 (LINEMAP_LINE): Likewise.
3572 (LINEMAP_SYSP): Likewise.
3573 (linemap_resolve_location): Strengthen final param from
3574 const line_map ** to const line_map_ordinary **.
3575 * internal.h (CPP_INCREMENT_LINE): Likewise for local "map".
3576 (linemap_enter_macro): Strengthen return type from
3577 const line_map * to const line_map_macro *.
3578 (linemap_add_macro_token): Likewise for first param.
3579 * line-map.c (linemap_check_files_exited): Strengthen local "map"
3580 from const line_map * to const line_map_ordinary *.
3581 (new_linemap): Introduce local "map_size" and use it when
3582 calculating how large the buffer should be. Rewrite based
3583 on change of info_macro and info_ordinary into distinct types.
3584 (linemap_add): Strengthen locals "map" and "from" from line_map *
3585 to line_map_ordinary *.
3586 (linemap_enter_macro): Strengthen return type from
3587 const line_map * to const line_map_macro *, and local "map" from
3588 line_map * to line_map_macro *.
3589 (linemap_add_macro_token): Strengthen param "map" from
3590 const line_map * to const line_map_macro *.
3591 (linemap_line_start): Strengthen local "map" from line_map * to
3592 line_map_ordinary *.
3593 (linemap_position_for_column): Likewise.
3594 (linemap_position_for_line_and_column): Strengthen first param
3595 from const line_map * to const line_map_ordinary *.
3596 (linemap_position_for_loc_and_offset): Strengthen local "map" from
3597 const line_map * to const line_map_ordinary *.
3598 (linemap_ordinary_map_lookup): Likewise for return type and locals
3599 "cached" and "result".
3600 (linemap_macro_map_lookup): Strengthen return type and locals
3601 "cached" and "result" from const line_map * to
3602 const line_map_macro *.
3603 (linemap_macro_map_loc_to_exp_point): Likewise for param "map".
3604 (linemap_macro_map_loc_to_def_point): Likewise.
3605 (linemap_macro_map_loc_unwind_toward_spelling): Likewise.
3606 (linemap_get_expansion_line): Strengthen local "map" from
3607 const line_map * to const line_map_ordinary *.
3608 (linemap_get_expansion_filename): Likewise.
3609 (linemap_map_get_macro_name): Strengthen param from
3610 const line_map * to const line_map_macro *.
3611 (linemap_location_in_system_header_p): Add call to
3612 linemap_check_ordinary in region guarded by
3613 !linemap_macro_expansion_map_p. Introduce local "macro_map" via
3614 linemap_check_macro in other region, using it in place of "map"
3615 for typesafety.
3616 (first_map_in_common_1): Add calls to linemap_check_macro.
3617 (trace_include): Strengthen param "map" from const line_map * to
3618 const line_map_ordinary *.
3619 (linemap_macro_loc_to_spelling_point): Strengthen final param from
3620 const line_map ** to const line_map_ordinary **. Replace a
3621 C-style cast with a const_cast, and add calls to
3622 linemap_check_macro and linemap_check_ordinary.
3623 (linemap_macro_loc_to_def_point): Likewise.
3624 (linemap_macro_loc_to_exp_point): Likewise.
3625 (linemap_resolve_location): Strengthen final param from
3626 const line_map ** to const line_map_ordinary **.
3627 (linemap_unwind_toward_expansion): Introduce local "macro_map" via
3628 a checked cast and use it in place of *map.
3629 (linemap_unwind_to_first_non_reserved_loc): Strengthen local
3630 "map1" from const line_map * to const line_map_ordinary *.
3631 (linemap_expand_location): Introduce local "ord_map" via a checked
3632 cast and use it in place of map.
3633 (linemap_dump): Make local "map" const. Strengthen local
3634 "includer_map" from line_map * to const line_map_ordinary *.
3635 Introduce locals "ord_map" and "macro_map" via checked casts and
3636 use them in place of "map" for typesafety.
3637 (linemap_dump_location): Strengthen local "map" from
3638 const line_map * to const line_map_ordinary *.
3639 (linemap_get_file_highest_location): Update for elimination of
3640 union.
3641 (linemap_get_statistics): Strengthen local "cur_map" from
3642 line_map * to const line_map_macro *. Update uses of sizeof to
3643 use the appropriate line_map subclasses.
3644 * macro.c (_cpp_warn_if_unused_macro): Add call to
3645 linemap_check_ordinary.
3646 (builtin_macro): Strengthen local "map" from const line_map * to
3647 const line_map_macro *.
3648 (enter_macro_context): Likewise.
3649 (replace_args): Likewise.
3650 (tokens_buff_put_token_to): Likewise for param "map".
3651 (tokens_buff_add_token): Likewise.
3652
ba4ad400
DM
36532015-05-13 David Malcolm <dmalcolm@redhat.com>
3654
3655 * include/line-map.h (source_location): Add a reference to
3656 location-example.txt to the descriptive comment.
3657 * location-example.txt: New file.
3658
0501dbd9
DM
36592015-05-13 David Malcolm <dmalcolm@redhat.com>
3660
3661 * include/line-map.h (MAX_SOURCE_LOCATION): Convert from a macro
3662 to a const source_location.
3663 (RESERVED_LOCATION_COUNT): Likewise.
3664 (linemap_check_ordinary): Convert from a macro to a pair of inline
3665 functions, for const/non-const arguments.
3666 (MAP_START_LOCATION): Likewise.
3667 (ORDINARY_MAP_STARTING_LINE_NUMBER): Likewise.
3668 (ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
3669 (ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
3670 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Convert from a macro to a
3671 pair of inline functions, for const/non-const arguments, where the
3672 latter is named...
3673 (SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): New function.
3674 (ORDINARY_MAP_FILE_NAME): Convert from a macro to a pair of inline
3675 functions, for const/non-const arguments.
3676 (MACRO_MAP_MACRO): Likewise.
3677 (MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
3678 (MACRO_MAP_LOCATIONS): Likewise.
3679 (MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
3680 (LINEMAPS_MAP_INFO): Likewise.
3681 (LINEMAPS_MAPS): Likewise.
3682 (LINEMAPS_ALLOCATED): Likewise.
3683 (LINEMAPS_USED): Likewise.
3684 (LINEMAPS_CACHE): Likewise.
3685 (LINEMAPS_ORDINARY_CACHE): Likewise.
3686 (LINEMAPS_MACRO_CACHE): Likewise.
3687 (LINEMAPS_MAP_AT): Convert from a macro to an inline function.
3688 (LINEMAPS_LAST_MAP): Likewise.
3689 (LINEMAPS_LAST_ALLOCATED_MAP): Likewise.
3690 (LINEMAPS_ORDINARY_MAPS): Likewise.
3691 (LINEMAPS_ORDINARY_MAP_AT): Likewise.
3692 (LINEMAPS_ORDINARY_ALLOCATED): Likewise.
3693 (LINEMAPS_ORDINARY_USED): Likewise.
3694 (LINEMAPS_LAST_ORDINARY_MAP): Likewise.
3695 (LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise.
3696 (LINEMAPS_MACRO_MAPS): Likewise.
3697 (LINEMAPS_MACRO_MAP_AT): Likewise.
3698 (LINEMAPS_MACRO_ALLOCATED): Likewise.
3699 (LINEMAPS_MACRO_USED): Likewise.
3700 (LINEMAPS_MACRO_LOWEST_LOCATION): Likewise.
3701 (LINEMAPS_LAST_MACRO_MAP): Likewise.
3702 (LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise.
3703 (IS_ADHOC_LOC): Likewise.
3704 (COMBINE_LOCATION_DATA): Likewise.
3705 (SOURCE_LINE): Likewise.
3706 (SOURCE_COLUMN): Likewise.
3707 (LAST_SOURCE_LINE_LOCATION): Likewise.
3708 (LAST_SOURCE_LINE): Likewise.
3709 (LAST_SOURCE_COLUMN): Likewise.
3710 (LAST_SOURCE_LINE_LOCATION)
3711 (INCLUDED_FROM): Likewise.
3712 (MAIN_FILE_P): Likewise.
3713 (LINEMAP_FILE): Likewise.
3714 (LINEMAP_LINE): Likewise.
3715 (LINEMAP_SYSP): Likewise.
3716 (linemap_location_before_p): Likewise.
3717 * line-map.c (linemap_check_files_exited): Make local "map" const.
3718 (linemap_add): Use SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
3719 (linemap_line_start): Likewise.
3720
eb70f327
MH
37212015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
3722
3723 * aclocal.m4: Regenerated with automake-1.11.6.
3724
60c12095
DM
37252015-05-13 David Malcolm <dmalcolm@redhat.com>
3726
3727 * include/line-map.h (linemap_assert): Move up within the file to
3728 before all of the map accessor macros.
3729 (linemap_assert_fails): Likewise.
3730 (linemap_check_ordinary): Likewise.
3731 (linemap_macro_expansion_map_p): Likewise.
3732
c3388e62
DM
37332015-05-12 David Malcolm <dmalcolm@redhat.com>
3734
3735 * directives.c (do_line): Set seen_line_directive on line_table.
3736 (do_linemarker): Likewise.
3737 * include/line-map.h (struct line_maps): Add new field
3738 "seen_line_directive".
3739
fe191308
JM
37402015-05-08 Jason Merrill <jason@redhat.com>
3741
3742 * include/cpplib.h: Add CPP_W_CXX11_COMPAT.
3743 (struct cpp_options): Add cpp_warn_cxx11_compat.
3744 * init.c (cpp_create_reader): Initialize it.
3745 * lex.c (lex_string): Add -Wc++11-compat warning.
3746
21c0a521
DM
37472015-05-05 David Malcolm <dmalcolm@redhat.com>
3748
3749 * pch.c (cpp_valid_state): Fix indentation so that it reflects the
3750 block structure.
3751
c87b25e6
DM
37522015-05-05 David Malcolm <dmalcolm@redhat.com>
3753
3754 * include/line-map.h: Fix comment at the top of the file.
3755 (source_location): Rewrite and expand the comment for this
3756 typedef, adding an ascii-art table to clarify how source_location
3757 values are allocated.
3758 * line-map.c: Fix comment at the top of the file.
3759
ca708025
RB
37602015-04-09 Richard Biener <rguenther@suse.de>
3761
3762 PR pch/65550
3763 * files.c (pch_open_file): Allow main and pre-included files
3764 when trying to open a PCH.
3765
e4b33ee5
JJ
37662015-04-06 Jakub Jelinek <jakub@redhat.com>
3767
3768 PR preprocessor/61977
3769 * lex.c (cpp_peek_token): If peektok is CPP_EOF, back it up
3770 with all tokens peeked by the current function.
3771
b8cd77f4
JJ
37722015-04-02 Jakub Jelinek <jakub@redhat.com>
3773
3774 PR preprocessor/61977
3775 * lex.c (cpp_peek_token): Temporarily clear pfile->cb.line_change.
3776
fb136e35
JJ
37772015-03-23 Jakub Jelinek <jakub@redhat.com>
3778
3779 PR preprocessor/65238
3780 * internal.h (_cpp_scan_out_logical_line): Add third argument.
3781 * directives.c (prepare_directive_trad): Pass false to it.
3782 * traditional.c (_cpp_read_logical_line_trad,
3783 _cpp_create_trad_definition): Likewise.
3784 (struct fun_macro): Add paramc field.
3785 (fun_like_macro): New function.
3786 (maybe_start_funlike): Handle NODE_BUILTIN macros. Initialize
3787 macro->paramc field.
3788 (save_argument): Use macro->paramc instead of
3789 macro->node->value.macro->paramc.
3790 (push_replacement_text): Formatting fix.
3791 (recursive_macro): Use fun_like_macro helper.
3792 (_cpp_scan_out_logical_line): Likewise. Add BUILTIN_MACRO_ARG
3793 argument. Initialize fmacro.paramc field. Handle builtin
3794 function-like macros.
3795
a5858a3d
ESR
37962015-03-16 Edward Smith-Rowland <3dw4rd@verizon.net>
3797
3798 PR c++/64626
3799 * lex.c (lex_number): If a number ends with digit-seps (') skip back
3800 and let lex_string take them.
3801
44d95244
MT
38022015-03-02 Markus Trippelsdorf <markus@trippelsdorf.de>
3803
3804 PR target/65261
3805 * lex.c (search_line_fast): Silence ubsan errors.
3806
f8abc9ba
DS
38072015-02-03 <dodji@redhat.com>
3808
3809 PR preprocessor/64803
3810 * internal.h (cpp_reader::top_most_macro_node): New data member.
3811 * macro.c (enter_macro_context): Pass the location of the end of
3812 the top-most invocation of the function-like macro, or the
3813 location of the expansion point of the top-most object-like macro.
3814 (cpp_get_token_1): Store the top-most macro node in the new
3815 pfile->top_most_macro_node data member.
3816 (_cpp_pop_context): Clear the new cpp_reader::top_most_macro_node
3817 data member.
3818
95d0610c
SN
38192015-01-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
3820
3821 * lex.c (search_line_fast): Change __ARM_NEON__ to __ARM_NEON.
3822
10ef8f28
MP
38232015-01-23 Marek Polacek <polacek@redhat.com>
3824
3825 DR#412
3826 PR preprocessor/60570
3827 * directives.c (do_elif): Don't evaluate #elif conditionals
3828 when they don't need to be.
3829
6e6cb471
JJ
38302015-01-16 Jakub Jelinek <jakub@redhat.com>
3831
3832 * expr.c (cpp_classify_number): Add N_() around ?: string
3833 literals used in cpp_error_with_line call as format string.
3834
5624e564
JJ
38352015-01-05 Jakub Jelinek <jakub@redhat.com>
3836
3837 Update copyright years.
3838
1f8d3e84
JJ
38392014-12-19 Jakub Jelinek <jakub@redhat.com>
3840
3841 PR preprocessor/63831
3842 * directives.c (lex_macro_node): Remove __has_attribute__ handling.
3843 * internal.h (struct spec_node): Remove n__has_attribute__ field.
3844 (struct lexer_state): Remove in__has_attribute__ field.
3845 * macro.c (_cpp_builtin_macro_text): Handle BT_HAS_ATTRIBUTE.
3846 * identifiers.c (_cpp_init_hashtable): Remove __has_attribute__
3847 handling.
3848 * init.c (builtin_array): Add __has_attribute and __has_cpp_attribute.
3849 (cpp_init_special_builtins): Don't initialize __has_attribute
3850 or __has_cpp_attribute if CLK_ASM or pfile->cb.has_attribute is NULL.
3851 * traditional.c (enum ls): Remove ls_has_attribute,
3852 ls_has_attribute_close.
3853 (_cpp_scan_out_logical_line): Remove __has_attribute__ handling.
3854 * include/cpplib.h (enum cpp_builtin_type): Add BT_HAS_ATTRIBUTE.
3855 * pch.c (cpp_read_state): Remove __has_attribute__ handling.
3856 * expr.c (eval_token): Likewise.
3857 (parse_has_attribute): Removed.
3858
01ca36af
UB
38592014-12-11 Uros Bizjak <ubizjak@gmail.com>
3860
3861 * directives.c (cpp_define_formatted): Use xvasprintf.
3862
b93c0722
MLI
38632014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
3864
3865 * line-map.c (linemap_position_for_loc_and_offset): Add new
3866 linemap_assert_fails.
3867
73bd8329
MLI
38682014-12-02 Manuel López-Ibáñez <manu@gcc.gnu.org>
3869
3870 * include/line-map.h (linemap_assert_fails): Declare.
3871 * line-map.c (linemap_position_for_loc_and_offset): Use it.
3872
9c320ab1
MLI
38732014-12-02 Manuel López-Ibáñez <manu@gcc.gnu.org>
3874
49445904
UB
3875 * line-map.c (linemap_add): Fix typo.
3876 (linemap_line_start): Fix whitespace.
9c320ab1 3877
81fee4a7
JM
38782014-11-29 John Schmerge <jbschmerge@gmail.com>
3879
3880 PR preprocessor/41698
3881 * charset.c (one_utf8_to_utf16): Do not produce surrogate pairs
3882 for 0xffff.
3883
43ba1c6c
JJ
38842014-11-25 Jakub Jelinek <jakub@redhat.com>
3885
3886 PR preprocessor/60436
3887 * line-map.c (linemap_line_start): If highest is above 0x60000000
3888 and we are still tracking columns or highest is above 0x70000000,
3889 force add_map.
3890
8a23b100
UB
38912014-11-20 Uros Bizjak <ubizjak@gmail.com>
3892
3893 PR target/63966
1b6b13f3
UB
3894 * lex.c [__i386__ || __x86_64__]: Compile special SSE functions
3895 only for (__GNUC__ >= 5 || !defined(__PIC__)).
8a23b100 3896
d82f1e13
MLI
38972014-11-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
3898
3899 * include/line-map.h: Include EXPR, so that unused variable warnings
3900 do not occur.
3901
3aa34c1d
MLI
39022014-11-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
3903
3904 PR fortran/44054
3905 * include/line-map.h (linemap_position_for_loc_and_offset):
3906 Declare.
3907 * line-map.c (linemap_position_for_loc_and_offset): New.
3908
35485da9
DM
39092014-11-11 David Malcolm <dmalcolm@redhat.com>
3910
3911 * ChangeLog.jit: New.
3912
42fd12b1
ESR
39132014-11-10 Edward Smith-Rowland <3dw4rd@verizon.net>
3914
3915 * include/cpplib.h (cpp_callbacks): Add has_attribute.
3916 * internal.h (lexer_state): Add in__has_attribute__.
3917 * directives.c (lex_macro_node): Prevent use of __has_attribute__
3918 as a macro.
3919 * expr.c (parse_has_attribute): New function; (eval_token): Look for
3920 __has_attribute__ and route to parse_has_attribute.
3921 * identifiers.c (_cpp_init_hashtable): Initialize n__has_attribute__.
3922 * pch.c (cpp_read_state): Initialize n__has_attribute__.
3923 * traditional.c (enum ls): Add ls_has_attribute, ls_has_attribute_close;
3924 (_cpp_scan_out_logical_line): Attend to __has_attribute__.
3925
be5ffc59
JM
39262014-11-06 Joseph Myers <joseph@codesourcery.com>
3927
3928 * include/cpp-id-data.h (struct cpp_macro): Update comment
3929 regarding parameters.
3930 * include/cpplib.h (struct cpp_macro_arg, struct cpp_identifier):
3931 Add spelling fields.
3932 (struct cpp_token): Update comment on macro_arg.
3933 * internal.h (_cpp_save_parameter): Add extra argument.
3934 (_cpp_spell_ident_ucns): New declaration.
3935 * lex.c (lex_identifier): Add SPELLING argument. Set *SPELLING to
3936 original spelling of identifier.
3937 (_cpp_lex_direct): Update calls to lex_identifier.
3938 (_cpp_spell_ident_ucns): New function, factored out of
3939 cpp_spell_token.
3940 (cpp_spell_token): Adjust FORSTRING argument semantics to return
3941 original spelling of identifiers. Use _cpp_spell_ident_ucns in
3942 !FORSTRING case.
3943 (_cpp_equiv_tokens): Check spellings of identifiers and macro
3944 arguments are identical.
3945 * macro.c (macro_arg_saved_data): New structure.
3946 (paste_tokens): Use original spellings of identifiers from
3947 cpp_spell_token.
3948 (_cpp_save_parameter): Add argument SPELLING. Save both canonical
3949 node and its value.
3950 (parse_params): Update calls to _cpp_save_parameter.
3951 (lex_expansion_token): Save spelling of macro argument tokens.
3952 (_cpp_create_definition): Extract canonical node from saved data.
3953 (cpp_macro_definition): Use UCNs in spelling of macro name. Use
3954 original spellings of macro argument tokens and identifiers.
3955 * traditional.c (scan_parameters): Update call to
3956 _cpp_save_parameter.
3957
701cade1
JM
39582014-11-05 Joseph Myers <joseph@codesourcery.com>
3959
3960 PR preprocessor/9449
3961 * init.c (lang_defaults): Enable extended identifiers for C++ and
3962 C99-based standards.
3963
19a9ba64
AM
39642014-10-22 Alan Modra <amodra@gmail.com>
3965
3966 * symtab.c (ht_create): Use obstack_specify_allocation in place of
3967 _obstack_begin.
3968 * files.c (_cpp_init_files): Likewise.
3969 * init.c (cpp_create_reader): Likewise.
3970 * identifiers.c (_cpp_init_hashtable): Likewise.
3971
3aac0952
MLI
39722014-10-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
3973
3974 * include/line-map.h (linemap_location_from_macro_expansion_p):
3975 const struct line_maps * argument.
3976 (linemap_position_for_line_and_column): const struct line_map *
3977 argument.
3978 * line-map.c (linemap_add_macro_token): Use correct argument name
3979 in comment.
3980 (linemap_position_for_line_and_column): const struct line_map *
3981 argument.
3982 (linemap_macro_map_loc_to_def_point): Fix comment. Make static.
3983 (linemap_location_from_macro_expansion_p): const struct line_maps *
3984 argument.
3985 (linemap_resolve_location): Fix argument names in comment.
3986
0ccaaab0
BS
39872014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3988
3989 * lex.c (search_line_fast): Add new version to be used for Power8
3990 and later targets when Altivec is enabled. Restrict the existing
3991 Altivec version to big-endian systems so that lvsr is not used on
3992 little endian, where it is deprecated. Remove LE-specific code
3993 from the now-BE-only version.
3994
dc257367
BE
39952014-10-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3996 Jeff Law <law@redhat.com>
3997
3998 * charset.c (convert_no_conversion): Reallocate memory with 25%
3999 headroom.
4000
a15f7cb8
ESR
40012014-10-01 Edward Smith-Rowland <3dw4rd@verizon.net>
4002
4003 Implement SD-6: SG10 Feature Test Recommendations
4004 * internal.h (lexer_state, spec_nodes): Add in__has_include__.
4005 * directives.c: Support __has_include__ builtin.
4006 * expr.c (parse_has_include): New function to parse __has_include__
4007 builtin; (eval_token()): Use it.
4008 * files.c (_cpp_has_header()): New funtion to look for header;
4009 (open_file_failed()): Not an error to not find a header file for
4010 __has_include__.
4011 * identifiers.c (_cpp_init_hashtable()): Add entry for __has_include__.
4012 * pch.c (cpp_read_state): Lookup __has_include__.
4013 * traditional.c (enum ls, _cpp_scan_out_logical_line()): Walk through
4014 __has_include__ statements.
4015
cc811a8a
BE
40162014-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
4017
4018 PR preprocessor/58893
4019 * errors.c (cpp_diagnostic): Fix possible out of bounds access.
4020 * files.c (_cpp_stack_include): Initialize src_loc for IT_CMDLINE.
4021
083e891e
MP
40222014-09-24 Marek Polacek <polacek@redhat.com>
4023
4024 PR c/61405
4025 PR c/53874
4026 * include/cpplib.h (enum cpp_ttype): Define CPP_KEYWORD.
4027
d87fc699
JH
40282014-09-17 Jan Hubicka <hubicka@ucw.cz>
4029
4030 * charset.c (conversion): Rename to ...
4031 (cpp_conversion): ... this one; update.
4032 * files.c (file_hash_entry): Rename to ...
4033 (cpp_file_hash_entry): ... this one ; update.
4034
909eb89c
MP
40352014-09-17 Marek Polacek <polacek@redhat.com>
4036
4037 PR c/61854
4038 * init.c (struct lang_flags): Remove cplusplus_comments.
4039 (cpp_set_lang): Likewise.
4040 (post_options): Likewise.
4041 * lex.c (_cpp_lex_direct): Disallow C++ style comments in C90/C94.
4042
1ef33fd4
MLI
40432014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
4044
4045 * include/cpplib.h (struct cpp_options): Declare warn_normalize as
4046 int instead of enum.
4047
2b71f4a4
MLI
40482014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
4049
4050 * macro.c (replace_args): Use cpp_pedwarning, cpp_warning and
4051 CPP_W flags.
4052 * include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
4053 * init.c (cpp_create_reader): Do not init to -1 here.
4054 * expr.c (num_binary_op): Use cpp_pedwarning.
4055
81b5d104
MLI
40562014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
4057
4058 * directives.c (check_eol_1): New.
4059 (check_eol_endif_labels): New.
4060 (check_eol): Call check_eol_1.
4061 (do_else,do_endif): Call check_eol_endif_labels.
4062
b753b37b
MLI
40632014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
4064
4065 * macro.c (warn_of_redefinition): Suppress warnings for builtins
4066 that lack the NODE_WARN flag, unless Wbuiltin-macro-redefined.
4067 (_cpp_create_definition): Use Wbuiltin-macro-redefined for
4068 builtins that lack the NODE_WARN flag.
4069 * directives.c (do_undef): Likewise.
4070 * init.c (cpp_init_special_builtins): Do not change flags
4071 depending on Wbuiltin-macro-redefined.
4072
7c05e50c
ESR
40732014-08-28 Edward Smith-Rowland <3dw4rd@verizon.net>
4074
4075 PR cpp/23827 - standard C++ should not have hex float preprocessor
4076 tokens
4077 * libcpp/init.c (lang_flags): Change CXX98 flag for extended numbers
4078 from 1 to 0.
4079 * libcpp/expr.c (cpp_classify_number): Weite error message for improper
4080 use of hex floating literal.
4081
e4276ba5
ESR
40822014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
4083
4084 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z;
4085 Rename CLK_GNUCXX1Y, CLK_CXX1Y to CLK_GNUCXX14, CLK_CXX14;
4086 * init.c (struct lang_flags lang_defaults): Add column for trigraphs;
4087 Add rows for CLK_GNUCXX1Z, CLK_CXX1Z; (cpp_set_lang): Set trigraphs;
4088 (cpp_init_builtins): Set __cplusplus to 201402L for C++14;
4089 Set __cplusplus to 201500L for C++17.
4090 * expr.c (cpp_classify_number): Change C++1y to C++14 in binary
4091 constants error message.
4092
dd3ff077
MP
40932014-08-20 Marek Polacek <polacek@redhat.com>
4094
4095 * include/cpplib.h (cpp_options): Use signed char.
4096 * lex.c (_cpp_lex_direct): Don't warn in C++ mode.
4097
3f4f5c9a
MP
40982014-08-19 Marek Polacek <polacek@redhat.com>
4099
4100 * lex.c (_cpp_lex_direct): Fix a typo.
4101
177cce46
MP
41022014-08-19 Marek Polacek <polacek@redhat.com>
4103
4104 * charset.c (_cpp_valid_ucn): Warn only if -Wc90-c99-compat.
4105 * lex.c (_cpp_lex_direct): Likewise.
4106 * macro.c (replace_args): Likewise.
4107 (parse_params): Likewise.
4108 * include/cpplib.h (cpp_options): Change cpp_warn_c90_c99_compat
4109 to char.
4110
f3bede71
MP
41112014-08-10 Marek Polacek <polacek@redhat.com>
4112
4113 PR c/51849
4114 * lex.c (_cpp_lex_direct): Warn when -Wc90-c99-compat is in effect.
4115 * charset.c (_cpp_valid_ucn): Likewise.
4116 * include/cpplib.h (cpp_options): Add cpp_warn_c90_c99_compat.
4117 * macro.c (replace_args): Warn when -Wc90-c99-compat is in effect.
4118 (parse_params): Likewise.
4119
61eb99f6
MP
41202014-07-27 Marek Polacek <polacek@redhat.com>
4121
4122 PR c/61861
4123 * macro.c (builtin_macro): Add location parameter. Set
4124 location of builtin macro to the expansion point.
4125 (enter_macro_context): Pass location to builtin_macro.
4126
c468587a
DS
41272014-07-16 Dodji Seketeli <dodji@redhat.com>
4128
4129 Support location tracking for built-in macro tokens
4130 * include/line-map.h (line_maps::builtin_location): New data
4131 member.
4132 (line_map_init): Add a new parameter to initialize the new
4133 line_maps::builtin_location data member.
4134 * line-map.c (linemap_init): Initialize the
4135 line_maps::builtin_location data member.
4136 * macro.c (builtin_macro): Create a macro map and track the token
4137 resulting from the expansion of a built-in macro.
4138
3976796b
ESR
41392014-07-10 Edward Smith-Rowland <3dw4rd@verizon.net>
4140 Jonathan Wakely <jwakely@redhat.com>
4141
c786fca6 4142 PR preprocessor/61389
3976796b
ESR
4143 * macro.c (_cpp_arguments_ok, parse_params, create_iso_definition):
4144 Warning messages mention C++11 in c++ mode and C99 in c mode.
4145 * lex.c (lex_identifier_intern, lex_identifier): Ditto
4146
7aee8646
ESR
41472014-07-09 Edward Smith-Rowland <3dw4rd@verizon.net>
4148
4149 PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped
4150 by preprocessor
4151 * lex.c (lex_raw_string ()): Do not warn about invalid suffix
4152 if skipping. (lex_string ()): Ditto.
4153
98ba7482
ESR
41542014-06-04 Edward Smith-Rowland <3dw4rd@verizon.net>
4155
4156 PR c++/61038
4157 * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
4158 Combine user-defined escape logic with the other string and char logic.
4159
edf6ddf6
RB
41602014-05-26 Richard Biener <rguenther@suse.de>
4161
4162 * configure.ac: Remove long long and __int64 type checks,
4163 add check for uint64_t and fail if that wasn't found.
4164 * include/cpplib.h (cpp_num_part): Use uint64_t.
4165 * config.in: Regenerate.
4166 * configure: Likewise.
4167
28939589
MP
41682014-05-21 Marek Polacek <polacek@redhat.com>
4169
4170 PR c/61212
4171 * files.c (find_file_in_dir): Add parens around &&.
4172
49039169
ESR
41732014-05-20 Edward Smith-Rowland <3dw4rd@verizon.net>
4174
28939589 4175 PR c++/61038
49039169
ESR
4176 * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
4177 Check for user-defined literal strings and user-defined literal chars
4178 to escape necessary characters.
4179
54da09ee
RB
41802014-05-20 Richard Biener <rguenther@suse.de>
4181
4182 * configure.ac: Copy gcc logic of detecting a 64bit type.
4183 Remove HOST_WIDE_INT define.
4184 * include/cpplib.h: typedef cpp_num_part to a 64bit type,
4185 similar to how hwint.h does it.
4186 * config.in: Regenerate.
4187 * configure: Likewise.
4188
eac3e079
JY
41892014-05-09 Joey Ye <joey.ye@arm.com>
4190
4191 * files.c (find_file_in_dir): Always try to shorten for DOS
4192 non-system headers.
4193 * init.c (ENABLE_CANONICAL_SYSTEM_HEADERS): Default enabled for DOS.
4194
f543058d
RB
41952014-05-07 Richard Biener <rguenther@suse.de>
4196
4197 * configure.ac: Always set need_64bit_hwint to yes.
4198 * configure: Regenerated.
4199
d9f069ab
RO
42002014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4201
4202 * lex.c: Remove Solaris 9 reference.
4203
341c653c
WL
42042014-02-24 Walter Lee <walt@tilera.com>
4205
4206 * configure.ac: Change "tilepro" triplet to "tilepro*".
4207 * configure: Regenerate.
4208
179652df
JJ
42092014-02-19 Jakub Jelinek <jakub@redhat.com>
4210
4211 PR preprocessor/58844
4212 * macro.c (enter_macro_context): Only push
4213 macro_real_token_count (macro) tokens rather than
4214 macro->count tokens, regardless of
4215 CPP_OPTION (pfile, track-macro-expansion).
4216
acf601ae
JJ
42172014-02-07 Jakub Jelinek <jakub@redhat.com>
4218
4219 PR preprocessor/56824
4220 * line-map.c (get_combined_adhoc_loc, linemap_get_expansion_line,
4221 linemap_get_expansion_filename, linemap_location_in_system_header_p,
4222 linemap_location_from_macro_expansion_p,
4223 linemap_macro_loc_to_spelling_point, linemap_macro_loc_to_def_point,
4224 linemap_macro_loc_to_exp_point, linemap_expand_location): Fix
4225 formatting.
4226 (linemap_compare_locations): Look through adhoc locations for both
4227 l0 and l1.
4228
7ecc3eb9
DS
42292014-01-23 Dodji Seketeli <dodji@redhat.com>
4230
4231 PR PR preprocessor/58580
4232 * include/line-map.h (linemap_get_file_highest_location): Declare
4233 new function.
4234 * line-map.c (linemap_get_file_highest_location): Define it.
4235
35c3d610
RS
42362014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
4237
4238 Update copyright years
4239
3a4efce7
JM
42402013-12-09 Joseph Myers <joseph@codesourcery.com>
4241
4242 PR preprocessor/55715
4243 * expr.c (num_binary_op): Implement subtraction directly rather
4244 than with negation and falling through into addition case.
4245
aadce585
BS
42462013-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4247
4248 * lex.c (search_line_fast): Correct for little endian.
4249
d3f4ff8b
JM
42502013-11-15 Joseph Myers <joseph@codesourcery.com>
4251
4252 * ucnid.tab: Add C11 and C11NOSTART data.
4253 * makeucnid.c (digit): Rename enum value to N99.
4254 (C11, N11, all_languages): New enum values.
4255 (NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
4256 (flags, decomp, combining_value): Use NUM_CODE_POINTS as array
4257 size.
4258 (decomp): Use unsigned int as element type.
4259 (all_decomp): New array.
4260 (read_ucnid): Handle C11 and C11NOSTART. Use MAX_CODE_POINT.
4261 (read_table): Use MAX_CODE_POINT. Store all decompositions in
4262 all_decomp.
4263 (read_derived): Use MAX_CODE_POINT.
4264 (write_table): Use NUM_CODE_POINTS. Print N99, C11 and N11
4265 flags. Print whole array variable declaration rather than just
4266 array contents.
4267 (char_id_valid, write_context_switch): New functions.
4268 (main): Call write_context_switch.
4269 * ucnid.h: Regenerate.
4270 * include/cpplib.h (struct cpp_options): Add c11_identifiers.
4271 * init.c (struct lang_flags): Add c11_identifiers.
4272 (cpp_set_lang): Set c11_identifiers option from selected language.
4273 * internal.h (struct normalize_state): Document "previous" as
4274 previous starter character.
4275 (NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
4276 * charset.c (DIG): Rename enum value to N99.
4277 (C11, N11): New enum values.
4278 (struct ucnrange): Give name to struct. Use short for flags and
4279 unsigned int for end of range. Include ucnid.h for whole variable
4280 declaration.
4281 (ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
4282 Allow for C11 in determining valid characters and valid start
4283 characters. Use check_nfc for non-Hangul context-dependent
4284 checks. Only store starter characters in nst->previous.
4285 (_cpp_valid_ucn): Pass new argument to
4286 NORMALIZE_STATE_UPDATE_IDNUM.
4287 * lex.c (lex_identifier): Pass new argument to
4288 NORMALIZE_STATE_UPDATE_IDNUM. Call NORMALIZE_STATE_UPDATE_IDNUM
4289 after initial non-UCN part of identifier.
4290 (lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.
4291
54848ff8
JM
42922013-11-15 Joseph Myers <joseph@codesourcery.com>
4293
4294 * ucnid.tab: Mark C99 digits as [C99DIG].
4295 * makeucnid.c (read_ucnid): Handle [C99DIG].
4296 (read_table): Don't check for digit characters.
4297 * ucnid.h: Regenerate.
4298
5157b91e
TB
42992013-11-06 Tobias Burnus <burnus@net-b.de>
4300
4301 * macro.c (_cpp_builtin_macro_text): Correct
4302 wording of two warnings.
4303
e8ff5196
TB
43042013-11-05 Tobias Burnus <burnus@net-b.de>
4305
4306 * include/cpplib.h (CPP_W_DATE_TIME): Added.
4307 (cpp_options): Add warn_date_time.
4308 * init.c (cpp_create_reader): Init it.
4309 * macro.c (_cpp_builtin_macro_text): Warn when
4310 __DATE__/__TIME__/__TIMESTAMP__ is used.
4311
7057e645
ESR
43122013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
4313
e8ff5196 4314 Implement C++14 digit separators.
7057e645
ESR
4315 * include/cpplib.h (cpp_options): Add digit_separators flag.
4316 * internal.h (DIGIT_SEP(c)): New macro.
4317 * expr.c (cpp_classify_number): Check improper placement of digit sep;
4318 (cpp_interpret_integer): Skip over digit separators.
4319 * init.c (lang_flags): Add digit_separators flag; (lang_defaults): Add
4320 digit separator flags per language; (cpp_set_lang): Set
4321 digit_separators
4322 * lex.c (lex_number): Add digits separator to allowable characters for
4323 C++14.
4324
459260ec
DM
43252013-10-15 David Malcolm <dmalcolm@redhat.com>
4326
4327 * Makefile.in (PICFLAG): New.
4328 (ALL_CFLAGS): Add PICFLAG.
4329 (ALL_CXXFLAGS): Likewise.
4330 * configure.ac: Add --enable-host-shared, setting up new
4331 PICFLAG variable.
4332 * configure: Regenerate.
4333
fd6eea0c
RE
43342013-08-07 Richard Earnshaw <rearnsha@arm.com>
4335
4336 * configure.ac: Set need_64bit_hwint for all arm targets.
4337 * configure: Regenerated.
4338
8cf88735
JJ
43392013-07-20 Jakub Jelinek <jakub@redhat.com>
4340
4341 PR preprocessor/57620
4342 * lex.c (lex_raw_string): Undo phase1 and phase2 transformations
4343 between R" and final " rather than only in between R"del( and )del".
4344
87e356ba
JJ
43452013-07-10 Jakub Jelinek <jakub@redhat.com>
4346
d5e48350
JJ
4347 PR preprocessor/57824
4348 * lex.c (lex_raw_string): Allow reading new-lines if
4349 in_deferred_pragma or if parsing_args and there is still
4350 data in the current buffer.
4351
c26302d5
JJ
4352 * include/cpplib.h (cpp_token_val_index): Change parameter type to
4353 const cpp_token *.
4354 * lex.c (cpp_token_val_index): Likewise.
4355
87e356ba
JJ
4356 PR preprocessor/57757
4357 * lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING
4358 or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that
4359 starts if a-zA-Z_.
4360
c865f923
ESR
43612013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net>
4362
4363 * lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
4364 as concatenated literal and macro to just the patterns found in
4365 inttypes.h; (is_macro()): New.
4366
39953c79
DC
43672013-06-24 Dehao Chen <dehao@google.com>
4368
4369 * files.c (_cpp_stack_include): Fix the highest_location when header
4370 file is guarded by #ifndef and is included twice.
4371
01187df0
JJ
43722013-04-28 Jakub Jelinek <jakub@redhat.com>
4373
4374 N3472 binary constants
4375 * include/cpplib.h (struct cpp_options): Fix a typo in user_literals
4376 field comment. Add binary_constants field.
4377 * init.c (struct lang_flags): Add binary_constants field.
4378 (lang_defaults): Add bin_cst column to the table.
4379 (cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
4380 * expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
4381 in diagnostics. Accept binary constants if
4382 CPP_OPTION (pfile, binary_constants) even when pedantic. Adjust
4383 pedwarn message.
4384
61949153
PC
43852013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
4386
4387 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
4388 * init.c (lang_defaults): Add defaults for the latter.
4389 (cpp_init_builtins): Define __cplusplus as 201300L for the latter.
4390 * lex.c (_cpp_lex_direct): Update.
4391
994a4cc0
SH
43922013-04-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
4393
4394 PR target/56771
4395 * configure.ac: Require 64-bit int for arm*-*-rtems*.
4396 * configure: Regenerate.
4397
28937f11
JJ
43982013-03-06 Jakub Jelinek <jakub@redhat.com>
4399
4400 PR middle-end/56461
4401 * internal.h (struct cpp_buffer): Add to_free field.
4402 (_cpp_pop_file_buffer): Add third argument.
4403 * files.c (_cpp_stack_file): Set buffer->to_free.
4404 (_cpp_pop_file_buffer): Add to_free argument. Free to_free
4405 if non-NULL, and if equal to file->buffer_start, also clear
4406 file->buffer{,_start,_valid}.
4407 * directives.c (_cpp_pop_buffer): Pass buffer->to_free
4408 to _cpp_pop_file_buffer.
4409
3b8af25b
JJ
44102013-03-01 Jakub Jelinek <jakub@redhat.com>
4411
4412 PR middle-end/56461
4413 * files.c (_cpp_save_file_entries): Free result at the end.
4414 * pch.c (cpp_string_free): New function.
4415 (cpp_save_state): Use it in htab_create call.
4416 (cpp_write_pch_deps): Free ss->defs. Destroy ss->definedhash.
4417
1a80db97
JJ
44182013-02-28 Jakub Jelinek <jakub@redhat.com>
4419
15fd8332
JJ
4420 * files.c (_cpp_find_file): If returning early, before storing
4421 something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
4422 on it. Access *hash_slot using void * type rather than
4423 struct file_hash_entry * to avoid aliasing issues.
4424
1a80db97
JJ
4425 * configure.ac: Don't define ENABLE_CHECKING whenever
4426 --enable-checking is seen, instead use similar --enable-checking=yes
4427 vs. --enable-checking=release default as gcc/ subdir has and
4428 define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
4429 Define ENABLE_VALGRIND_CHECKING if requested.
4430 * lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
4431 struct first in the allocated buffer and result->base after it.
4432 (_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
4433 instead of buff->base.
4434 * config.in: Regenerated.
4435 * configure: Regenerated.
4436
561f7fc7
ESR
44372013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net>
4438
4439 PR c++/55582
61949153 4440 * lex.c (lex_raw_string): Allow string literal with suffix
561f7fc7
ESR
4441 beginning with 's' to be parsed as a C++11 user-defined literal.
4442
500f3ed9
RS
44432013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
4444
4445 Update copyright years.
4446
1582c677
PC
44472013-01-04 Paolo Carlini <paolo.carlini@oracle.com>
4448
4449 PR c++/54526 (again)
4450 * lex.c (_cpp_lex_direct): In C++11 mode, implement 2.5 p3, bullet 2.
4451
8ac16127
MG
44522013-01-03 Marc Glisse <marc.glisse@inria.fr>
4453
4454 PR bootstrap/50177
4455 * line-map.c (get_combined_adhoc_loc): Cast from extern "C" type.
4456 (new_linemap): Likewise.
4457 (linemap_enter_macro): Likewise.
4458
f41e5bd1
JJ
44592012-12-03 Jakub Jelinek <jakub@redhat.com>
4460
4461 PR bootstrap/55380
4462 PR other/54691
4463 * files.c (read_file_guts): Allocate extra 16 bytes instead of
4464 1 byte at the end of buf. Pass size + 16 instead of size
4465 to _cpp_convert_input.
4466 * charset.c (_cpp_convert_input): Reallocate if there aren't
4467 at least 16 bytes beyond to.len in the buffer. Clear 16 bytes
4468 at to.text + to.len.
4469
31962032
SE
44702012-11-21 Steve Ellcey <sellcey@mips.com>
4471
4472 PR pch/55399
4473 * files.c (pch_open_file): Fix check for implicit_preinclude.
4474
5dc99c46
SB
44752012-11-16 Simon Baldwin <simonb@google.com>
4476
4477 * include/cpplib.h (struct cpp_options): Add canonical_system_headers.
4478 * files.c (find_file_in_dir): Call maybe_shorter_path() only if
4479 canonical_system_headers is set.
4480 * init.c (cpp_create_reader): Initialize canonical_system_headers.
4481 * configure.ac: Add new --enable-canonical-system-headers.
4482 * configure: Regenerate.
4483 * config.in: Regenerate.
4484
a4a0016d
ESR
44852012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net>
4486
4487 PR c++/54413
4488 * include/cpplib.h (cpp_interpret_float_suffix): Add cpp_reader* arg.
4489 (cpp_interpret_int_suffix): Add cpp_reader* arg.
4490 * init.c (cpp_create_reader): Iitialize new flags.
4491 * expr.c (interpret_float_suffix): Use new flags.
4492 (cpp_interpret_float_suffix): Add cpp_reader* arg.
4493 (interpret_int_suffix): Use new flags.
4494 (cpp_interpret_int_suffix): Add cpp_reader* arg.
4495 (cpp_classify_number): Adjust calls to interpret_x_suffix.
4496
04ce690f
IB
44972012-10-23 Ian Bolton <ian.bolton@arm.com>
4498 Jim MacArthur <jim.macarthur@arm.com>
4499 Marcus Shawcroft <marcus.shawcroft@arm.com>
4500 Nigel Stephens <nigel.stephens@arm.com>
4501 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4502 Richard Earnshaw <rearnsha@arm.com>
4503 Sofiane Naci <sofiane.naci@arm.com>
4504 Stephen Thomas <stephen.thomas@arm.com>
4505 Tejas Belagod <tejas.belagod@arm.com>
4506 Yufeng Zhang <yufeng.zhang@arm.com>
4507
4508 * configure.ac: Enable AArch64.
4509 * configure: Regenerate.
4510
1efcb8c6
JM
45112012-10-23 Joseph Myers <joseph@codesourcery.com>
4512
4513 * files.c (struct _cpp_file): Add implicit_preinclude.
4514 (pch_open_file): Allow a previously opened implicitly included
4515 file.
4516 (_cpp_find_file): Add implicit_preinclude argument. Free file and
4517 do not call open_file_failed if implicit_preinclude. Store
4518 implicit_preinclude value.
4519 (_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date):
4520 Update calls to _cpp_find_file.
4521 (_cpp_stack_include): Handle IT_DEFAULT.
4522 (cpp_push_default_include): New.
4523 * include/cpplib.h (cpp_push_default_include): Declare.
4524 * init.c (cpp_read_main_file): Update call to _cpp_find_file.
4525 * internal.h (enum include_type): Add IT_DEFAULT.
4526 (_cpp_find_file): Update prototype.
4527
55e7f907
TB
45282012-10-15 Tobias Burnus <burnus@net-b.de>
4529
4530 * files.c (read_file_guts, _cpp_save_file_entries): Free memory
4531 before returning.
4532 * lex.c (warn_about_normalization): Ditto.
4533 * mkdeps.c (deps_save): Ditto.
4534 * pch.c (cpp_valid_state): Ditto.
4535
f591bd8f
FW
45362012-10-04 Florian Weimer <fweimer@redhat.com>
4537
4538 * directives.c (do_pragma_warning_or_error): New.
4539 (do_pragma_warning): New.
4540 (do_pragma_error): New.
4541 (_cpp_init_internal_pragmas): Register new pragmas.
4542
ec6e0399
DC
45432012-09-25 Dehao Chen <dehao@google.com>
4544
4545 PR middle-end/54704
4546 * line-map.c (location_adhoc_data_hash): Fix the hash function.
4547
52187008
DC
45482012-09-25 Dehao Chen <dehao@google.com>
4549
4550 PR middle-end/54645
4551 * include/line-map.h (location_adhoc_data): Move location_adhoc_data
4552 into GC.
4553 (location_adhoc_data_map): Likewise.
4554 (line_maps): Likewise.
4555 (rebuild_location_adhoc_htab): New Function.
4556 * line-map.c (+rebuild_location_adhoc_htab): new Funcion.
4557 (get_combined_adhoc_loc): Move location_adhoc_data into GC.
4558 (location_adhoc_data_fini): Likewise.
4559 (linemap_init): Likewise.
4560 (location_adhoc_data_init): Remove Function.
4561
5368224f
DC
45622012-09-19 Dehao Chen <dehao@google.com>
4563
4564 * include/line-map.h (MAX_SOURCE_LOCATION): New value.
4565 (location_adhoc_data_fini): New.
4566 (get_combined_adhoc_loc): New.
4567 (get_data_from_adhoc_loc): New.
4568 (get_location_from_adhoc_loc): New.
4569 (location_adhoc_data_map): New.
4570 (COMBINE_LOCATION_DATA): New.
4571 (IS_ADHOC_LOC): New.
4572 (expanded_location): New field.
4573 (line_maps): New field.
4574 * line-map.c (location_adhoc_data): New.
4575 (location_adhoc_data_hash): New.
4576 (location_adhoc_data_eq): New.
4577 (location_adhoc_data_update): New.
4578 (get_combined_adhoc_loc): New.
4579 (get_data_from_adhoc_loc): New.
4580 (get_location_from_adhoc_loc): New.
4581 (location_adhoc_data_init): New.
4582 (location_adhoc_data_fini): New.
4583 (linemap_init): Initialize location_adhoc_data.
4584 (linemap_lookup): Change to use new location.
4585 (linemap_ordinary_map_lookup): Likewise.
4586 (linemap_macro_map_lookup): Likewise.
4587 (linemap_macro_map_loc_to_def_point): Likewise.
4588 (linemap_macro_map_loc_unwind_toward_spel): Likewise.
4589 (linemap_get_expansion_line): Likewise.
4590 (linemap_get_expansion_filename): Likewise.
4591 (linemap_location_in_system_header_p): Likewise.
4592 (linemap_location_from_macro_expansion_p): Likewise.
4593 (linemap_macro_loc_to_spelling_point): Likewise.
4594 (linemap_macro_loc_to_def_point): Likewise.
4595 (linemap_macro_loc_to_exp_point): Likewise.
4596 (linemap_resolve_location): Likewise.
4597 (linemap_unwind_toward_expansion): Likewise.
4598 (linemap_unwind_to_first_non_reserved_loc): Likewise.
4599 (linemap_expand_location): Likewise.
4600 (linemap_dump_location): Likewise.
4601 (linemap_line_start): Likewise.
4602
f3d25c65
DS
46032012-05-25 Dodji Seketeli <dodji@redhat.com>
4604
4605 PR preprocessor/53469
4606 * directives.c (do_pragma): Use the virtual location for the
4607 pragma token, instead of its spelling location.
4608
0823efed
DN
46092012-08-14 Diego Novillo <dnovillo@google.com>
4610
4611 Merge from cxx-conversion branch. Configury.
4612
4613 * Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
4614 * configure.ac: Likewise.
4615 * configure: Regenerate.
4616
46172012-08-14 Lawrence Crowl <crowl@google.com>
4618
4619 Merge from cxx-conversion branch. New C++ hash table.
4620
4621 * include/symtab.h (typedef struct ht hash_table): Change the typedef
4622 name to cpp_hash_table. Update all users of the typedef.
4623
c0fd3497
LB
46242012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4625
4626 * include/line-map.h (line_map_macro): Use the "atomic" GTY option
4627 for the macro_locations field.
4628
d35d1c0f
UB
46292011-06-19 Uros Bizjak <ubizjak@gmail.com>
4630
4631 * lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
4632 __builtin_ia32_pcmpestri128 instead of asm.
4633
d86d2119
DA
46342012-06-04 Dimitrios Apostolou <jimis@gmx.net>
4635
4636 * line-map.c (linemap_enter_macro): Don't zero max_column_hint in
4637 every macro. This improves performance by reducing the number of
4638 reallocations when track-macro-expansion is on.
4639
7ca643e1
DS
46402012-06-04 Dodji Seketeli <dodji@redhat.com>
4641
4642 PR preprocessor/53463
4643 * line-map.c (linemap_location_in_system_header_p): For built-in
4644 macro tokens, check the first expansion point location that is not
4645 for a token coming from a built-in macro.
4646
7d9641cc
JM
46472012-05-29 Joseph Myers <joseph@codesourcery.com>
4648
4649 * directives.c: Fix typos.
4650 * include/line-map.h: Fix typos.
4651 * line-map.c: Fix typos.
4652 * macro.c: Fix typos.
4653
53a103d3
DS
46542012-05-25 Dodji Seketeli <dodji@redhat.com>
4655
4656 PR bootstrap/53459
4657 * lex.c (search_line_fast): Avoid unused local typedefs to simulate
4658 a static assertion.
4659
828a7f76
DS
46602012-05-29 Dodji Seketeli <dodji@redhat.com>
4661
4662 PR preprocessor/53229
4663 * internal.h (cpp_reader::set_invocation_location): Remove.
4664 (cpp_reader::about_to_expand_macro_p): New member flag.
4665 * directives.c (do_pragma): Remove Kludge as
4666 pfile->set_invocation_location is no more.
4667 * macro.c (cpp_get_token_1): Do away with the use of
4668 cpp_reader::set_invocation_location. Just collect the macro
4669 expansion point when we are about to expand the top-most macro.
4670 Do not override cpp_reader::about_to_expand_macro_p.
4671 This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
4672 properly handle locations of expansion points.
4673 (cpp_get_token_with_location): Adjust, as
4674 cpp_reader::set_invocation_location is no more.
4675 (paste_tokens): Take a virtual location parameter for
4676 the LHS of the pasting operator. Use it in diagnostics. Update
4677 comments.
4678 (paste_all_tokens): Tighten the assert. Propagate the location of
4679 the expansion point when no virtual locations are available.
4680 Pass the virtual location to paste_tokens.
4681 (in_macro_expansion_p): New static function.
4682 (enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
4683 flag until we really start expanding the macro.
4684
0b2c4be5
DS
46852012-05-16 Dodji Seketeli <dodji@redhat.com>
4686
4687 PR preprocessor/7263
4688 * include/cpplib.h (cpp_classify_number): Take a location
4689 parameter.
4690 * expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic
4691 macros that take a location parameter.
4692 (cpp_classify_number): Take a (virtual) location parameter. Use
4693 it for diagnostics. Adjust comments.
4694 (eval_token): Take a location parameter. Pass it to
4695 cpp_classify_number and to diagnostic routines.
4696 (_cpp_parse_expr): Use virtual locations of tokens when parsing
4697 expressions. Pass a virtual location to eval_token and to
4698 diagnostic routines.
4699
638d2065
TG
47002012-05-10 Tristan Gingold <gingold@adacore.com>
4701
4702 * expr.c (interpret_float_suffix): Add a guard.
4703
3ad64f53
DS
47042012-05-02 Dodji Seketeli <dodji@redhat.com>
4705
4706 Properly initialize cpp_context in destringize_and_run
4707 * directives.c (destringize_and_run): Properly initialize the new
4708 context.
4709 * macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
4710 the initial base context, which has the same life time as the
4711 current instance of cpp_file.
4712
b193dfa8
MLI
47132012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
4714 Dodji Seketeli <dodji@seketeli.org>
4715
3efc2959 4716 PR c++/52974
b193dfa8
MLI
4717 * libcpp/files.c (maybe_shorter_path): New.
4718 (find_file_in_dir): Use it.
4719
4e65a470
DS
47202012-04-30 Dodji Seketeli <dodji@redhat.com>
4721
51fce2d3
DS
4722 Switch -ftrack-macro-expansion=2 on by default.
4723 * init.c (cpp_create_reader): Switch -ftrack-macro-expansion=2 on
4724 by default. Add comments.
4725
c4ca1a09
DS
4726 Strip "<built-in>" loc from displayed expansion context
4727 * include/line-map.h (linemap_unwind_toward_expansion): Fix typo
4728 in comment.
4729 (linemap_unwind_to_first_non_reserved_loc): Declare new function.
4730 * line-map.c (linemap_unwind_to_first_non_reserved_loc): Define
4731 new function.
4732
3600218c
DS
4733 Fix expansion point loc for macro-like tokens
4734 * macro.c (macro_of_context): New static function.
4735 (_cpp_push_token_context, push_extended_tokens_context): If the
4736 macro argument is NULL, it means we are continuing the expansion
4737 of the current macro, if any. Update comments.
4738 (_cpp_pop_context): Re-enable expansion of the macro only when we
4739 are really out of the context of the current expansion.
4740
0ff2b8a0
DS
4741 Fix token pasting with -ftrack-macro-expansion
4742 * macro.c (paste_all_tokens): Put the token resulting from pasting
4743 into an extended token context with -ftrack-macro-location is in
4744 effect.
4745
4e65a470
DS
4746 Fix cpp_sys_macro_p with -ftrack-macro-expansion
4747 * macro.c (cpp_sys_macro_p): Support -ftrack-macro-expansion.
4748
112448b4
DS
47492012-04-29 Dodji Seketeli <dodji@redhat.com>
4750
4751 * lex.c (lex_raw_string): Change C++ style comments into C style
4752 comments.
19a9ba64 4753 (lex_string): Likewise.
112448b4 4754
7f5f5f98
OW
47552012-04-27 Ollie Wild <aaw@google.com>
4756
4757 * include/cpplib.h (struct cpp_options): Add new field,
4758 warn_literal_suffix.
4759 (CPP_W_LITERAL_SUFFIX): New enum.
4760 * init.c (cpp_create_reader): Default initialization of
4761 warn_literal_suffix.
4762 * lex.c (lex_raw_string): Treat user-defined literals which don't
4763 begin with '_' as separate tokens and produce a warning.
4764 (lex_string): Ditto.
4765
1d72e96f
MLI
47662012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
4767
4768 * line-map.c (linemap_resolve_location): Synchronize comments with
4769 those in line-map.h.
4770 * include/line-map.h (linemap_resolve_location): Fix spelling in
4771 comment.
4772
e75b54a2
RE
47732012-03-22 Richard Earnshaw <rearnsha@arm.com>
4774
4775 * lex.c (search_line_fast): Provide Neon-optimized version for ARM.
4776
7888f266
RO
47772012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4778
4779 * lex.c: Remove Solaris 8 reference.
4780
dd552284
WL
47812012-02-14 Walter Lee <walt@tilera.com>
4782
4783 * configure.ac: Require 64-bit hwint for tilegx and tilepro.
4784 * configure: Regenerate.
4785
2c5cbc31
RG
47862012-01-09 Richard Guenther <rguenther@suse.de>
4787
4788 * macro.c (_cpp_builtin_macro_text): Remove unused variable map.
4789
b492b686
GF
47902012-01-09 Gary Funck <gary@intrepid.com>
4791
4792 PR preprocessor/33919
4793 * files.c (_cpp_get_file_name): New. Implement file name
4794 access function.
4795 * internal.h (_cpp_get_file_name): New prototype.
4796 * macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
4797 to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
4798
75291c57
OH
47992012-01-03 Olivier Hainque <hainque@adacore.com>
4800
4801 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
4802
48b0b196
JM
48032011-12-20 Joseph Myers <joseph@codesourcery.com>
4804
4805 * include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
4806 (CLK_STDC1X): Change to CLK_STDC11.
4807 * init.c (lang_defaults): Update comments.
4808 (cpp_init_builtins): Update language tests. Use 201112L for C11
4809 __STDC_VERSION__.
4810
4a5e00ca
AS
48112011-12-20 Andreas Schwab <schwab@linux-m68k.org>
4812
4813 * configure: Regenerate.
4814
095af58f
AS
48152011-12-19 Andreas Schwab <schwab@linux-m68k.org>
4816
4817 * configure: Regenerate.
4818
b0c084b7
JJ
48192011-12-07 Jakub Jelinek <jakub@redhat.com>
4820
4821 PR bootstrap/50237
4822 * internal.h (_cpp_init_lexer): New prototype.
4823 * init.c (init_library): Call it.
4824 * lex.c (init_vectorized_lexer): Remove constructor attribute,
4825 add inline keyword.
4826 (HAVE_init_vectorized_lexer): Define.
4827 (_cpp_init_lexer): New function.
4828
9b554be9
DS
48292011-12-03 Dodji Seketeli <dodji@redhat.com>
4830
4831 * macro.c (tokens_buff_remove_last_token)
4832 (tokens_buff_put_token_to): Add an 'inline' function specifier to
4833 the prototype.
4834
8dcf72a8
DN
48352011-11-22 Diego Novillo <dnovillo@google.com>
4836
4837 * include/line-map.h (linemap_dump): Declare.
4838 (line_table_dump): Declare.
4839 * line-map.c (linemap_dump): New.
4840 (line_table_dump): New.
4841
7e74ce3f
ESR
48422011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net>
4843
4844 PR c++/50958
4845 * expr.c (cpp_userdef_char_remove_type): Fix typo.
4846
e9411247
MM
48472011-11-03 Michael Matz <matz@suse.de>
4848
4849 PR bootstrap/50857
4850 * configure.ac: Check for -fno-exceptions -fno-rtti.
4851 * configure: Regenerate.
4852 * Makefile.in (NOEXCEPTION_FLAGS): New flag.
4853 (ALL_CXXFLAGS): Use it.
4854
0c1dace3
PC
48552011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
4856
4857 * internal.h (uxstrdup, ustrchr): Return const unsigned char *.
4858
25339f10
JM
48592011-11-02 Jason Merrill <jason@redhat.com>
4860
4861 PR c++/50810
4862 * configure.ac: Add -Wno-narrowing to warning options.
4863
97e3ad20
JM
48642011-10-31 Jason Merrill <jason@redhat.com>
4865
1fb80b0c
JM
4866 PR libstdc++/1773
4867 * init.c (cpp_init_builtins): Set __cplusplus for C++11.
4868
97e3ad20
JM
4869 PR c++/50920
4870 * include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
4871 CLK_GNUCXX0X to CLK_GNUCXX11.
4872
3ce4f9e4
ESR
48732011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net>
4874
4875 Implement C++11 user-defined literals.
4876 * expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
4877 cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
4878 cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
4879 cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
4880 (cpp_classify_number): Classify unrecognized tokens as user-defined
4881 literals.
4882 * include/cpplib.h: Add new tokens for user-defined literals.
4883 * init.c: Add new preprocessor flag (cxx11).
4884 * lex.c: (lex_string, lex_raw_string): Handle user-defined literals
4885 including concatenation and promotion with suffixes.
4886
3bb0c8db
DS
48872011-10-24 Dodji Seketeli <dodji@redhat.com>
4888
4889 * line-map.c (linemap_macro_map_lookup): Fix logic.
4890
84756fd4
DS
48912011-10-24 Dodji Seketeli <dodji@redhat.com>
4892
4893 * include/line-map.h (linemap_expand_location): Take a line table
4894 parameter. Update comment.
4895 (linemap_resolve_location): Update comment.
4896 (linemap_expand_location_full): Remove.
4897 * line-map.c (linemap_resolve_location): Handle reserved
4898 locations; return a NULL map in those cases.
4899 (linemap_expand_location): If location is reserved, return a
4900 zeroed expanded location. Update comment. Take a line table to
4901 assert that the function takes non-virtual locations only.
4902 (linemap_expand_location_full): remove.
4903 (linemap_dump_location): Handle the fact that
4904 linemap_resolve_location can return NULL line maps when the
4905 location resolves to a reserved location.
4906
4907 * line-map.c (linemap_macro_map_lookup): Fix logic.
4908
ad2305ad
DS
49092011-10-22 Dodji Seketeli <dodji@redhat.com>
4910
4911 PR bootstrap/50778
4912 * include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
4913 context to act upon.
4914 * lex.c (_cpp_remaining_tokens_num_in_context): Likewise. Update
4915 comment.
4916 (cpp_token_from_context_at): Likewise.
4917 (cpp_peek_token): Use the context to peek tokens from.
4918
cbbcf655
DS
49192011-10-20 Dodji Seketeli <dodji@redhat.com>
4920
4921 PR bootstrap/50801
4922 * lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
4923 number of tokens.
4924
d17687f6
DS
49252011-10-18 Dodji Seketeli <dodji@redhat.com>
4926
4927 PR bootstrap/50760
4928 * include/line-map.h (struct linemap_stats): Change the type of
19a9ba64 4929 the members from size_t to long.
d17687f6 4930 * macro.c (macro_arg_token_iter_init): Unconditionally initialize
19a9ba64 4931 iter->location_ptr.
d17687f6 4932
411f92de
DS
49332011-10-17 Dodji Seketeli <dodji@redhat.com>
4934
4935 * line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
19a9ba64
AM
4936 variable without using it if ENABLE_CHECKING is not defined. Mark
4937 the LOCATION parameter as being unused.
411f92de 4938
b9bd6f74
TT
49392011-10-15 Tom Tromey <tromey@redhat.com>
4940 Dodji Seketeli <dodji@redhat.com>
4941
4942 * include/line-map.h (struct line_maps::alloced_size_for_request):
4943 New member.
4944 * line-map.c (new_linemap): Use set->alloced_size_for_request to
4945 get the actual allocated size of line maps.
4946
64a1a422
TT
49472011-10-15 Tom Tromey <tromey@redhat.com>
4948 Dodji Seketeli <dodji@redhat.com>
4949
4950 * line-map.h (struct linemap_stats): Declare new struct.
4951 (linemap_get_statistics): Declare ...
4952 * line-map.c (linemap_get_statistics): ... new function.
4953 * macro.c (num_expanded_macros_counter, num_macro_tokens_counter):
4954 Declare new counters.
4955 (enter_macro_context, replace_args): Update
4956 num_macro_tokens_counter.
4957 (cpp_get_token_1): Update num_expanded_macros_counter.
4958
847e697a
TT
49592011-10-15 Tom Tromey <tromey@redhat.com>
4960 Dodji Seketeli <dodji@redhat.com>
4961
4962 * include/cpplib.h (struct cpp_options)<debug>: New struct member.
4963 * include/line-map.h (linemap_dump_location): Declare ...
4964 * line-map.c (linemap_dump_location): ... new function.
4965
92582b75
TT
49662011-10-15 Tom Tromey <tromey@redhat.com>
4967 Dodji Seketeli <dodji@redhat.com>
4968
4969 * include/cpplib.h (struct cpp_options)<track_macro_expansion>:
4970 New option.
4971 * internal.h (struct macro_context): New struct.
4972 (enum context_tokens_kind): New enum.
4973 (struct cpp_context)<tokens_kind>: New member of type enum
4974 context_tokens_kind.
4975 (struct cpp_context)<macro>: Remove this. Replace it with an enum
4976 of macro and macro_context.
4977 (struct cpp_context)<direct_p>: Remove.
4978 (_cpp_remaining_tokens_num_in_context): Declare new function.
4979 * directives.c (destringize_and_run): Adjust.
4980 * lex.c (_cpp_remaining_tokens_num_in_context)
4981 (_cpp_token_from_context_at): Define new functions
4982 (cpp_peek_token): Use them.
4983 * init.c (cpp_create_reader): Initialize the base context to zero.
4984 (_cpp_token_from_context_at): Define new static function.
4985 (cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and
4986 _cpp_token_from_context_at.
4987 * macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New
4988 members.
4989 (enum macro_arg_token_kind): New enum.
4990 (struct macro_arg_token_iter): New struct.
4991 (maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context)
4992 (alloc_expanded_arg_mem, ensure_expanded_arg_room)
4993 (delete_macro_args, set_arg_token, get_arg_token_location)
4994 (arg_token_ptr_at, macro_arg_token_iter_init)
4995 (macro_arg_token_iter_get_token)
4996 (macro_arg_token_iter_get_location, macro_arg_token_iter_forward)
4997 (expanded_token_index, tokens_buff_new, tokens_buff_count)
4998 (tokens_buff_last_token_ptr, tokens_buff_put_token_to)
4999 (tokens_buff_add_token, tokens_buff_remove_last_token)
5000 (reached_end_of_context, consume_next_token_from_context): New
5001 static functions.
5002 (cpp_get_token_1): New static function. Split and extended from
5003 cpp_get_token. Use reached_end_of_context and
5004 consume_next_token_from_context. Unify its return point. Move
5005 the location tweaking from cpp_get_token_with_location in here.
5006 (cpp_get_token): Use cpp_get_token_1
5007 (stringify_arg): Use the new arg_token_at.
5008 (paste_all_tokens): Support tokens coming from extended tokens
5009 contexts.
5010 (collect_args): Return the number of collected arguments, by
5011 parameter. Store virtual locations of tokens that constitute the
5012 collected args.
5013 (funlike_invocation_p): Return the number of collected arguments,
5014 by parameter.
5015 (enter_macro_context): Add a parameter for macro expansion point.
5016 Pass it to replace_args and to the "used" cpp callback. Get the
5017 number of function-like macro arguments from funlike_invocation_p,
5018 pass it to the new delete_macro_args to free the memory used by
5019 macro args. When -ftrack-macro-expansion is in effect, for macros
5020 that have no arguments, create a macro map for the macro expansion
5021 and use it to allocate proper virtual locations for tokens
5022 resulting from the expansion. Push an extended tokens context
5023 containing the tokens resulting from macro expansion and their
5024 virtual locations.
5025 (replace_args): Rename the different variables named 'count' into
5026 variables with more meaningful names. Create a macro map;
5027 allocate virtual locations of tokens resulting from this
5028 expansion. Use macro_arg_token_iter to iterate over tokens of a
5029 given macro. Handle the case of the argument of
5030 -ftrack-macro-expansion being < 2. Don't free macro arguments
5031 memory resulting from expand_arg here, as these are freed by the
5032 caller of replace_arg using delete_macro_args now. Push extended
5033 token context.
5034 (next_context, push_ptoken_context, _cpp_push_token_context)
5035 (_cpp_push_text_context): Properly initialize the context.
5036 (expand_arg): Use the new alloc_expanded_arg_mem,
5037 push_extended_tokens_context, cpp_get_token_1, and set_arg_token.
5038 (_cpp_pop_context): Really free the memory held by the context.
5039 Handle freeing memory used by extended tokens contexts.
5040 (cpp_get_token_with_location): Use cpp_get_token_1.
5041 (cpp_sys_macro_p): Adjust.
5042 (_cpp_backup_tokens): Support the new kinds of token contexts.
5043 * traditional.c (recursive_macro): Adjust.
5044
46427374
TT
50452011-10-15 Tom Tromey <tromey@redhat>
5046 Dodji Seketeli <dodji@redhat.com>
5047
5048 * include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum
5049 member.
5050 (MAX_SOURCE_LOCATION): New constant.
5051 (struct line_map_ordinary, struct line_map_macro): New structs.
19a9ba64 5052 (struct line_map): Turn this into a union of the two above. Add
46427374
TT
5053 comments.
5054 (struct maps_info): New struct.
5055 (struct line_maps)<info_ordinary, info_macro>: Two new fields.
5056 These now carry the map information that was previously scattered
5057 in struct line_maps.
5058 (struct map_info::allocated): Fix comment.
5059 (MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME)
5060 (ORDINARY_MAP_STARTING_LINE_NUMBER)
5061 (ORDINARY_MAP_INCLUDER_FILE_INDEX)
5062 (ORDINARY_MAP_IN_SYSTEM_HEADER_P)
5063 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO)
5064 (MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS)
5065 (MACRO_MAP_EXPANSION_POINT_LOCATION)
5066 (LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO)
5067 (LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE)
5068 (LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP)
5069 (LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED)
5070 (LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE)
5071 (LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP)
5072 (LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED)
5073 (LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE)
5074 (LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP)
5075 (LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT)
5076 (LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map
5077 information.
5078 (linemap_check_ordinary, linemap_assert)
5079 (linemap_location_before_p): New macros.
5080 (linemap_position_for_line_and_column)
5081 (linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token)
5082 (linemap_macro_expansion_map_p)
5083 (linemap_macro_map_loc_to_def_point)
5084 (linemap_macro_map_loc_unwind_once)
5085 (linemap_macro_map_loc_to_exp_point, linemap_step_out_once)
5086 (linemap_get_source_line linemap_get_source_column)
5087 (linemap_map_get_macro_name, linemap_get_file_path)
5088 (linemap_location_in_system_header_p)
5089 (linemap_location_from_macro_expansion_p): Declare new functions.
5090 (SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION)
5091 (LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this
5092 accessors act on ordinary maps only.
5093 (INCLUDED_FROM): Return NULL for main files; use the new
5094 accessors.
5095 (LINEMAP_POSITION_FOR_COLUMN): Use the new accessors.
5096 (struct expanded_location): Move here from gcc/input.h
5097 (linemap_resolve_location, linemap_expand_location)
5098 (linemap_expand_location_full): Declare new functions.
5099 * line-map.c: Include cpplib.h, internal.h
5100 (linemap_enter_macro, linemap_add_macro_token)
5101 (linemap_get_expansion_line, linemap_get_expansion_filename): New
5102 functions that are private to libcpp.
5103 (linemap_assert): New macro.
5104 (linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point)
5105 (linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point)
5106 (linemap_macro_map_loc_unwind_toward_spelling)
5107 (linemap_macro_map_loc_to_exp_point)
5108 (first_map_in_common_1, first_map_in_common): New static
5109 functions.
5110 (new_linemap): Define new static functions. Extracted and
5111 enhanced from ...
5112 (linemap_add): ... here. Use linemap_assert in lieu of abort
5113 previously.
5114 (linemap_tracks_macro_expansion_locs_p)
5115 (linemap_add_macro_token, linemap_macro_expansion_map_p)
5116 (linemap_check_ordinary, linemap_macro_map_loc_to_exp_point)
5117 (linemap_macro_map_loc_to_def_point)
5118 (linemap_macro_map_loc_unwind_once)
5119 (linemap_step_out_once, linemap_map_get_index)
5120 (linemap_get_source_line,linemap_get_source_column)
5121 (linemap_get_file_path, linemap_map_get_macro_name)
5122 (linemap_location_in_system_header_p)
5123 (linemap_location_originated_from_system_header_p)
5124 (linemap_location_from_macro_expansion_p)
5125 (linemap_tracks_macro_expansion_locs_p)
5126 (linemap_resolve_location, linemap_expand_location)
5127 (linemap_expand_location_full)
5128 (linemap_tracks_macro_expansion_locs_p)
5129 (linemap_position_for_line_and_column, linemap_compare_locations):
5130 Define new public functions.
5131 (linemap_init): Initialize ordinary and macro maps information in
5132 the map set.
5133 (linemap_check_files_exited): Use the new accessors.
5134 (linemap_free): Remove this dead code.
5135 (linemap_line_start): Assert this uses an ordinary map. Adjust to
5136 use the new ordinary map accessors and data structures. Don't
5137 overflow past the lowest possible macro token's location.
5138 (linemap_position_for_column): Assert the ordinary maps of the map
5139 set are really ordinary. Use ordinary map accessors.
5140 (linemap_lookup): Keep the same logic but generalize to allow
5141 lookup of both ordinary and macro maps. Do not crash when called
5142 with an empty line table.
5143 * directives-only.c (_cpp_preprocess_dir_only): Adjust to use the
5144 new API of line-map.h.
5145 * directives.c (start_directive, do_line, do_linemarker)
5146 (do_linemarker): Likewise.
5147 * files.c (_cpp_find_file, _cpp_stack_include, open_file_failed)
5148 (make_cpp_dir, cpp_make_system_header): Likewise.
5149 * init.c (cpp_read_main_file): Likewise.
5150 * internal.h (CPP_INCREMENT_LINE): Likewise.
5151 (linemap_enter_macro, linemap_add_macro_token)
5152 (linemap_get_expansion_line, linemap_get_expansion_filename): New
5153 functions private to libcpp.
5154 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment)
5155 (skip_line_comment, skip_whitespace, lex_raw_string)
5156 (_cpp_lex_direct): Likewise.
5157 * macro.c (_cpp_builtin_macro_text): Likewise.
5158 (_cpp_aligned_alloc): Initialize the new name member of the macro.
5159 * traditional.c (copy_comment, _cpp_scan_out_logical_line):
5160 Likewise.
5161 * errors.c (cpp_diagnostic): Adjust to new linemap API.
5162
892a371f
DS
51632011-08-28 Dodji Seketeli <dodji@redhat.com>
5164
5165 * line-map.c (linemap_add): Assert that reason must not be
5166 LC_RENAME when called for the first time on a "main input file".
5167
e3dfef44
GC
51682011-08-22 Gabriel Charette <gchare@google.com>
5169
5170 * init.c (cpp_create_reader): Inititalize forced_token_location_p.
5171 * internal.h (struct cpp_reader): Add field forced_token_location_p.
5172 * lex.c (_cpp_lex_direct): Use forced_token_location_p.
5173 (cpp_force_token_locations): New.
5174 (cpp_stop_forcing_token_locations): New.
5175
32fe396e
RO
51762011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5177
5178 PR libstdc++/1773
5179 * init.c (cpp_init_builtins): Define __cplusplus 19971L.
5180
7c1ffff9
JM
51812011-08-18 Joseph Myers <joseph@codesourcery.com>
5182
5183 * include/cpplib.h (struct cpp_options): Fix typo.
5184
a48e3dd1
JM
51852011-08-18 Joseph Myers <joseph@codesourcery.com>
5186
5187 * include/cpplib.h (struct cpp_options): Add rliterals.
5188 * init.c (struct lang_flags, lang_defaults): Add rliterals.
5189 (cpp_set_lang): Set rliterals option.
5190 (cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__.
5191 * lex.c (_cpp_lex_direct): Only accept raw strings if rliterals.
5192
3f6ced10
GC
51932011-08-15 Gabriel Charette <gchare@google.com>
5194
5195 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove.
5196 Update all users to use linemap_position_for_column instead.
5197
0681d04c
GC
51982011-07-28 Gabriel Charette <gchare@google.com>
5199
5200 * include/line-map.h (struct line_maps):
5201 Remove unused field last_listed. Update all users.
5202
5e9627ca
L
52032011-07-28 H.J. Lu <hongjiu.lu@intel.com>
5204
5205 * configure.ac: Set need_64bit_hwint to yes for x86 targets.
5206 * configure: Regenerated.
5207
a024b70f
RO
52082011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5209
5210 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
5211
5b6d595b
RO
52122011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5213 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5214
5215 PR bootstrap/49794
5216 * configure.ac: Test AM_ICONV with CXX.
5217 * configure: Regenerate.
5218 * system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++.
5219
d0a9fbe1
DS
52202011-07-15 Dodji Seketeli <dodji@redhat.com>
5221
5222 * directives.c (struct if_stack): Use source_location as type
5223 here.
5224 * include/cpplib.h (struct cpp_callbacks)<include, define, undef,
5225 indent, def_pragma, used_define, used_undef>: Properly use
5226 source_location as parameter type, rather than unsigned int.
5227
fbdd5d87
RO
52282011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5229
5230 PR target/39150
5231 * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
5232 like i[34567]86-*-solaris2.1[0-9]*.
5233 * configure: Regenerate.
5234
8787a05a
JM
52352011-06-16 Jason Merrill <jason@redhat.com>
5236
5237 PR c++/45399
5238 * lex.c (lex_raw_string): Don't check for embedded NUL.
5239
38fbfaf6
DS
52402011-06-06 Dodji Seketeli <dodji@redhat.com>
5241
5242 PR preprocessor/48532
5243 * directives.c (do_pragma): Don't forget the invocation location
5244 when parsing the pragma name of a namespaced pragma directive.
5245
fc0993ac
JT
52462011-05-29 John Tytgat <John.Tytgat@aaug.net>
5247
5248 * files.c (read_file_guts): Add test on non-zero value of S_ISREG.
5249
ef230b38
UB
52502011-05-22 Uros Bizjak <ubizjak@gmail.com>
5251
5252 PR target/49104
5253 * lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
5254 is defined. Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
5255
e5b0dad8
JK
52562011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
5257
5258 * system.h (ENUM_BITFIELD): Remove.
5259
6cfae070
JJ
52602011-04-24 Jakub Jelinek <jakub@redhat.com>
5261
5262 PR preprocessor/48740
5263 * lex.c (lex_raw_string): When raw string ends with
5264 ??) followed by raw prefix and ", ensure it is preprocessed
5265 with ??) rather than ??].
5266
04695783
JM
52672011-04-20 Jim Meyering <meyering@redhat.com>
5268
5269 * files.c (destroy_cpp_file): Remove useless if-before-free.
5270 * init.c (cpp_destroy): Likewise.
5271 * macro.c (replace_args): Likewise.
5272 * pch.c (cpp_valid_state): Likewise.
5273
4489800d
KT
52742011-03-25 Kai Tietz <ktietz@redhat.com>
5275
5276 * files.c (file_hash_eq): Use filename_cmp
5277 instead of strcmp.
5278 (nonexistent_file_hash_eq): Likewise.
5279 (remap_filename): Likewise.
5280 Handle absolute DOS-path,
5281 (append_file_to_dir): Check for IS_DIR_SEPARATOR
5282 instead of slash.
5283 (read_name_map): Likewise.
5284 * linemap.c (linemap_add): Use filename_cmp
5285 instead of strcmp.
5286 * mkdeps.c (apply_vpath): Use filename_ncmp
5287 instead of strncmp.
5288 (deps_restore): Use filename_cmp instead of
5289 strcmp.
5290 * init.c (read_original_directory): Use
5291 IS_DIR_SEPARATOR instead of checking for slash.
5292
f3c33d9d
MM
52932011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
5294
5295 PR preprocessor/48192
5296 * directives.c (do_ifdef): Do not consider conditional macros as
5297 being defined.
5298 (do_ifndef): Ditto.
5299 * expr.c (parse_defined): Ditto.
5300
01956319
RH
53012011-03-18 Richard Henderson <rth@redhat.com>
5302
5303 PR bootstrap/45381
5304 * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5.
5305
c5a62c6f 53062011-11-04 Eric Botcazou <ebotcazou@adacore.com>
19a9ba64 5307 Jakub Jelinek <jakub@redhat.com>
c5a62c6f
EB
5308
5309 PR preprocessor/39213
5310 * directives.c (end_directive): Call _cpp_remove_overlay for deferred
5311 pragmas as well in traditional mode.
5312
0e1a989c
ILT
53132010-11-17 Ian Lance Taylor <iant@google.com>
5314
5315 PR bootstrap/45538
5316 * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS. Remove switch of
5317 AC_LANG based on ENABLE_BUILD_WITH_CXX.
5318
651a20b5
KT
53192010-11-16 Kai Tietz <kai.tietz@onevision.com>
5320
5321 PR preprocessor/17349
5322 * lex.c (save_comment): Handle in argument passing c++
5323 comments special.
5324
480767a9
ILT
53252010-11-02 Ian Lance Taylor <iant@google.com>
5326
5327 * configure.ac: Use AC_SYS_LARGEFILE.
5328 * configure: Rebuild.
5329 * config.in: Rebuild.
5330
078419c9 53312010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
480767a9 5332
078419c9
BS
5333 * line-map.h (source_location): Remove obsolete comment
5334 mentioning location_s.
5335
d6874138
KT
53362010-09-29 Kai Tietz <kai.tietz@onevision.com>
5337
5338 PR preprocessor/45362
5339 * directives.c (cpp_pop_definition): Make static.
5340 (do_pragma_push_macro): Reworked to store text
5341 definition.
5342 (do_pragma_pop_macro): Add free text definition.
5343 (cpp_push_definition): Removed.
5344 * include/cpplib.h (cpp_push_definition): Removed.
5345 (cpp_pop_definition): Likewise.
5346 * internal.h (def_pragma_macro): Remove member 'value'
5347 and add new members 'definition', 'line',
5348 'syshdr', 'sued' and 'is_undef'.
5349 * pch.c (_cpp_restore_pushed_macros): Rework to work
5350 on text definition and store additional macro flags.
5351 (_cpp_save_pushed_macros): Likewise.
5352
e3339d0f
JM
53532010-09-29 Joseph Myers <joseph@codesourcery.com>
5354
5355 * include/cpplib.h (cpp_options): Rename warn_deprecated,
5356 warn_traditional, warn_long_long and pedantic.
5357 * directives.c (directive_diagnostics, _cpp_handle_directive):
5358 Update names of cpp_options members.
5359 * expr.c (cpp_classify_number, eval_token): Update names of
5360 cpp_options members.
5361 * init.c (cpp_create_reader, post_options): Update names of
5362 cpp_options members.
5363 * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
5364 cpp_options members.
5365 * macro.c (parse_params): Update names of cpp_options members.
5366
128465e6
ILT
53672010-09-15 Ian Lance Taylor <iant@google.com>
5368
5369 * init.c: Fix type name in comment.
5370
a69d2520
JJ
53712010-08-31 Jakub Jelinek <jakub@redhat.com>
5372
5373 PR preprocessor/45457
5374 * expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if
5375 needed.
5376 * directives.c (do_ifdef, do_ifndef): Likewise.
5377
707bcb7a
RO
53782010-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5379
5380 * system.h [HAVE_INTTYPES_H]: Include inttypes.h.
5381
6f173e52
RH
53822010-08-24 Richard Henderson <rth@redhat.com>
5383
5384 PR bootstrap/45376
5385 * configure.ac (HAVE_SSE4): New check.
5386 * configure, config.in: Rebuild.
5387 * lex.c (search_line_sse42): Omit if !HAVE_SSE4.
5388
789d73cb
RO
53892010-08-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5390
5391 * lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
5392 etc. on Solaris 2/x86.
5393
246a2fcb
RH
53942010-08-21 Richard Henderson <rth@redhat.com>
5395 Andi Kleen <ak@linux.intel.com>
5396 David S. Miller <davem@davemloft.net>
5397
5398 * configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
5399 (ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
5400 (ptrdiff_t): Check via AC_CHECK_TYPE.
5401 * config.in, configure: Rebuild.
5402 * system.h: Include stdint.h, if available.
5403 * lex.c (WORDS_BIGENDIAN): Provide default.
5404 (acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
5405 acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
5406 search_line_sse2, search_line_sse42, init_vectorized_lexer,
5407 search_line_fast): New.
5408 (_cpp_clean_line): Use search_line_fast. Restructure the fast
5409 loop to make it clear when we're leaving the loop. Stay in the
5410 fast loop for non-trigraph '?'.
5411
8e680db5
JJ
54122010-06-11 Jakub Jelinek <jakub@redhat.com>
5413
5414 * include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro
5415 callback.
5416 (enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER.
5417 (cpp_macro_definition): Remove const qual from second argument.
5418 * macro.c (enter_macro_context): Call user_builtin_macro callback for
5419 NODE_BUILTIN !NODE_USED macros.
5420 (warn_of_redefinition): Likewise. Remove const qual from second
5421 argument.
5422 (cpp_macro_definition): Likewise.
5423 * pch.c (write_macdef, save_macros): Call user_builtin_macro callback
5424 for NODE_BUILTIN !NODE_USED macros.
5425
1cb42611
JM
54262010-06-10 Joseph Myers <joseph@codesourcery.com>
5427
5428 * include/cpplib.h (struct cpp_options): Remove show_column.
5429 * init.c (cpp_create_reader, post_options): Don't set show_column.
5430
ff5dfc48
JR
54312010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
5432
5433 PR bootstrap/44432
5434 * configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++,
5435 check that C++ compiler works.
5436 * configure: Regenerate.
5437
a9429e29
LB
54382010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5439
5440 * include/symtab.h (ht_identifier_ptr): New.
5441
c3f247f4
RW
54422010-06-03 Joern Rennecke <joern.rennecke@embecosm.com>
5443 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5444
5445 PR bootstrap/42798
5446 * configure.ac: Check for declaration of 'basename(char *)'.
5447 * configure: Regenerate.
5448 * config.in: Regenerate.
5449
2778d766
JM
54502010-04-25 Joseph Myers <joseph@codesourcery.com>
5451
5452 * include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X.
5453 * init.c (lang_defaults): Add entries for new language variants.
5454 (cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X
5455 variants.
5456
d8a12e84
MLI
54572010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
5458
5459 PR cpp/43195
5460 * files.c (report_missing_guard): Test for #pragma once.
5461
87cf0651
SB
54622010-04-07 Simon Baldwin <simonb@google.com>
5463
5464 * directives.c (do_diagnostic): Add warning reason argument,
5465 call appropriate error reporting function for code.
5466 (directive_diagnostics): Call specific warning functions with
5467 warning reason where appropriate.
5468 (do_error, do_warning, do_pragma_dependency): Add warning reason
5469 argument to do_diagnostic calls.
5470 * macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
5471 _cpp_create_definition): Call specific warning functions with
5472 warning reason where appropriate.
5473 * Makefile.in: Add new diagnostic functions to gettext translations.
5474 * include/cpplib.h (struct cpp_callbacks): Add warning reason code
5475 to error callback.
5476 (CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
5477 CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
5478 (CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
5479 CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
5480 CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
5481 CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
5482 CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
5483 CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
5484 CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
5485 warning reason codes.
5486 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
5487 cpp_warning_with_line, cpp_pedwarning_with_line,
5488 cpp_warning_with_line_syshdr): New specific error reporting functions.
5489 * pch.c (cpp_valid_state): Call specific warning functions with
5490 warning reason where appropriate.
5491 * errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
5492 diagnostic handlers.
5493 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
5494 cpp_warning_with_line, cpp_pedwarning_with_line,
5495 cpp_warning_with_line_syshdr): New specific error reporting functions.
5496 * expr.c (cpp_classify_number, eval_token, num_unary_op): Call
5497 specific warning functions with warning reason where appropriate.
5498 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5499 warn_about_normalization, lex_identifier_intern, lex_identifier,
5500 _cpp_lex_direct): Ditto.
5501 * charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
5502 narrow_str_to_charconst): Ditto.
5503
d947ada0
JJ
55042010-04-06 Jakub Jelinek <jakub@redhat.com>
5505
5506 PR preprocessor/43642
5507 * lex.c (lex_raw_string): Change type of TYPE variable to
5508 unsigned char.
5509
4d9e8446
RW
55102010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5511
5512 * aclocal.m4: Regenerate.
5513
52150625
JM
55142010-03-29 Jason Merrill <jason@redhat.com>
5515
00a81b8b
JM
5516 More N3077 raw string changes
5517 * charset.c (cpp_interpret_string): Don't transform UCNs in raw
5518 strings.
5519 * lex.c (bufring_append): Split out from...
5520 (lex_raw_string): ...here. Undo trigraph and line splicing
5521 transformations. Do process line notes in multi-line literals.
5522 (_cpp_process_line_notes): Ignore notes that were already handled.
5523
52150625
JM
5524 Some raw string changes from N3077
5525 * charset.c (cpp_interpret_string): Change inner delimiters to ().
5526 * lex.c (lex_raw_string): Likewise. Also disallow '\' in delimiter.
5527
709d7160
JJ
55282010-02-11 Jakub Jelinek <jakub@redhat.com>
5529
5530 * init.c (read_original_filename): Don't call read_original_directory
5531 if _cpp_handle_directive returns 0.
5532
dadab4fd
JM
55332010-01-01 Joseph Myers <joseph@codesourcery.com>
5534
5535 PR preprocessor/41947
5536 * expr.c (cpp_classify_number): Give error for hexadecimal
5537 floating-point constant with no digits before or after point.
5538
3de8a540
AC
55392009-11-20 Arnaud Charlet <charlet@adacore.com>
5540
5541 * macro.c (enter_macro_context): Call cb.used callback if defined.
5542 * directives.c (do_idef, do_ifndef): Ditto.
5543 * include/cpplib.h (struct cpp_callbacks): Add used callback.
5544
17e7cb85
KT
55452009-11-11 Kai Tietz <kai.tietz@onevision.com>
5546
5547 * directives.c (do_pragma_push_macro): New pragma handler.
5548 (do_pragma_pop_macro): Likewise.
5549 (_cpp_init_internal_pragmas): Add push_macro and
5550 pop_macro handler to internal pragmas.
5551 (lex_macro_node_from_str): Removed.
5552 (cpp_push_definition): Replace lex_macro_node_from_str
5553 by _cpp_lex_identifier.
5554 (cpp_pop_definition): Likewise.
5555 * internal.h (_cpp_lex_identifier): New prototype.
5556 (def_pragma_macro): New structure.
5557 (cpp_reader): New member pushed_macros.
5558 * lex.c (_cpp_lex_identifier): New function.
5559 (lex_identifier_intern): New function.
5560 * init.c (cpp_create_reader): Initialize pushed_macros
5561 member.
5562 (cpp_destroy): Free elements in pushed_macros member.
5563 * pch.c (_cpp_save_pushed_macros): New function.
5564 (_cpp_restore_pushed_macros): Likewise.
5565 (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
5566 (cpp_read_state): Use _cpp_restore_pushed_macros.
5567
2c6e3f55
JJ
55682009-10-19 Jakub Jelinek <jakub@redhat.com>
5569
5570 * charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
5571 (_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
5572 and char32_cset_desc.
5573 (converter_for_type): Handle CPP_UTF8STRING.
5574 (cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
5575 * directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
5576 (parse_include): Reject raw strings.
5577 * include/cpplib.h (CPP_UTF8STRING): New token type.
5578 * internal.h (struct cpp_reader): Add utf8_cset_desc field.
5579 * lex.c (lex_raw_string): New function.
5580 (lex_string): Handle u8 string literals, call lex_raw_string
5581 for raw string literals.
5582 (_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
5583 sequences.
5584 * macro.c (stringify_arg): Handle CPP_UTF8STRING.
5585
96c169e1
JJ
55862009-10-14 Jakub Jelinek <jakub@redhat.com>
5587
5588 PR preprocessor/41543
5589 * include/line-map.h (RESERVED_LOCATION_COUNT): Define.
5590 * line-map.c (linemap_init): Initialize highest_location and
5591 highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
5592
30c99a9e
JM
55932009-10-09 Jason Merrill <jason@redhat.com>
5594
5595 * charset.c (_cpp_valid_ucn): Update C++0x restrictions.
5596
2214382c
NV
55972009-10-09 Neil Vachharajani <nvachhar@google.com>
5598
5599 * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and
5600 sccs.
5601
e02222d2
LR
56022009-09-23 Loren J. Rittle <ljrittle@acm.org>
5603
5604 * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h.
5605 * configure: Rebuilt.
5606
9a8a2b7a
RG
56072009-09-22 Richard Guenther <rguenther@suse.de>
5608
5609 PR pch/38987
5610 * files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
5611
74dc6a11
CD
56122009-09-18 Chris Demetriou <cgd@google.com>
5613
5614 PR preprocessor/28435:
5615 * include/cpplib.h (struct cpp_options): Add new member
5616 deps.need_preprocessor_output.
5617 * files.c (open_file_failed): If preprocessor output is needed
5618 always report an error.
5619
933608b7
KT
56202009-09-13 Kai Tietz <kai.tietz@onevision.com>
5621
5622 * configure.ac: Set for i?86-w64-mingw*
5623 need_64bit_hwint to yes.
5624 * configure: Regenerated.
5625
86373e7e
JM
56262009-09-10 Jason Merrill <jason@redhat.com>
5627
5628 * directives.c (cpp_define): constify.
5629
fd2ab214
ILT
56302009-09-02 Ian Lance Taylor <iant@google.com>
5631
5632 * macro.c (stringify_arg): Escape CPP_WCHAR tokens.
5633
df58e648
RW
56342009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5635
5636 * configure.ac (AC_PREREQ): Bump to 2.64.
5637
5213506e
RW
56382009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5639
5640 * aclocal.m4: Regenerate.
5641 * config.in: Regenerate.
5642 * configure: Regenerate.
5643
709a22df
TT
56442009-08-17 Tom Tromey <tromey@redhat.com>
5645
5646 PR preprocessor/41067:
5647 * charset.c (convert_escape): Add missing ":" to error text.
5648
0c539b47
DR
56492009-07-27 Douglas B Rupp <rupp@gnat.com>
5650
5651 * include/cpplib.h (INO_T_CPP): New macro.
5652 (struct cpp_dir): Use it.
5653
2b69c841
JQ
56542009-07-20 Jerry Quinn <jlquinn@optonline.net>
5655
5656 PR regression/40800
5657 * configure.ac: Use = instead of == for testing
5658 ENABLE_BUILD_WITH_CXX.
5659 * configure: Rebuild.
5660
f1bf410c
JQ
56612009-07-17 Jerry Quinn <jlquinn@optonline.net>
5662
5663 * directives.c (do_linemarker, do_line): Use CPP_STRING for
5664 ignored enum value.
5665 * files.c (find_file_in_dir): Add cast from void* to char*.
5666 * symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
5667 * Makefile.in: (WARN_CFLAGS): Use general and C-specific
5668 warnings.
5669 (CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
5670 ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
5671 COMPILER_FLAGS): New.
5672 (DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
5673 (COMPILE.base): Use COMPILER instead of CC. Use COMPILER_FLAGS
5674 instead of ALL_CFLAGS.
5675 * configure.ac: Invoke AC_PROG_CXX. Separate C-specific warnings
5676 from other warnings. Add -Wc++-compat to C-specific warnings.
5677 Check for --enable-build-with-cxx. Set and substitute
5678 ENABLE_BUILD_WITH_CXX. Invoke ZW_PROG_COMPILER_DEPENDENCIES
5679 according to ENABLE_BUILD_WITH_CXX. Invoke AC_LANG before
5680 AC_CHECK_HEADERS.
5681 * configure: Rebuild.
5682 * include/cpp-id-data.h: Remove extern "C".
5683 * include/line-map.h: Likewise.
5684 * include/mkdeps.h: Likewise.
5685 * include/symtab.h: Likewise.
5686 * internal.h: Likewise.
5687
a28fbdba
MLI
56882009-06-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5689
5690 * directives.c (parse_include): Add location argument. Update all
5691 calls.
5692 (parse_answer): Likewise.
5693 (do_include_common): Error with exact location.
5694 (parse_assertion): Likewise.
5695
b506a5a2
MLI
56962009-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
5697
5698 * expr.c (num_div_op): Take explicit location.
5699
7d8847a4
ILT
57002009-06-17 Ian Lance Taylor <iant@google.com>
5701
5702 * include/cpplib.h (progname): Don't declare.
5703
3d8b2a98
ILT
57042009-06-12 Ian Lance Taylor <iant@google.com>
5705
5706 * include/cpplib.h (struct cpp_options): Add
5707 warn_cxx_operator_names field.
5708 (NODE_WARN_OPERATOR): Define.
5709 (struct cpp_hashnode): Increase flags field to 10 bits, decrease
5710 type to 6 bits.
5711 * init.c (mark_named_operators): Add flags parameter.
5712 (cpp_post_options): Pick flags value to pass to
5713 mark_named_operators.
5714 * lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that
5715 identifier is an operator name in C++.
5716
e74fe492
AH
57172009-06-01 Aldy Hernandez <aldyh@redhat.com>
5718
5719 * include/line-map.h (LAST_SOURCE_COLUMN): New.
5720
4851089f
ILT
57212009-06-01 Ian Lance Taylor <iant@google.com>
5722
5723 * include/cpp-id-data.h: Add extern "C".
5724 * include/line-map.h: Likewise.
5725 * include/mkdeps.h: Likewise.
5726 * include/symtab.h: Likewise.
5727 * internal.h: Likewise.
5728
7e5487a2
ILT
57292009-05-15 Ian Lance Taylor <iant@google.com>
5730
5731 * include/cpplib.h (enum cpp_builtin_type): Rename from enum
5732 builtin_type. Change all uses.
5733
00b0c19b
MLI
57342009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5735
5736 PR cpp/36674
5737 * directives (do_linemarker): Compensate for the increment in
5738 location that occurs when we reach the end of line.
5739 * files (_cpp_stack_include): Mention _cpp_find_file in the
5740 comment.
5741
9a0c6187
JM
57422009-05-10 Joseph Myers <joseph@codesourcery.com>
5743
5744 * include/cpplib.h (enum cpp_token_fld_kind): Add
5745 CPP_TOKEN_FLD_TOKEN_NO.
5746 (struct cpp_macro_arg, struct cpp_identifier): Define.
5747 (union cpp_token_u): Use struct cpp_identifier for identifiers.
5748 Use struct cpp_macro_arg for macro arguments. Add token_no for
5749 CPP_PASTE token numbers.
5750 * directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
5751 do_pragma_poison, parse_assertion): Use val.node.node in place of
5752 val.node.
5753 * expr.c (parse_defined, eval_token): Use val.node.node in place
5754 of val.node.
5755 * lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
5756 cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
5757 cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
5758 place of val.arg_no. Use val.node.node in place of val.node.
5759 * macro.c (replace_args, cpp_get_token, parse_params,
5760 lex_expansion_token, create_iso_definition, cpp_macro_definition):
5761 Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
5762 Use val.node.node in place of val.node.
5763
9e322bc1
JM
57642009-05-03 Joseph Myers <joseph@codesourcery.com>
5765
5766 * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte
5767 UTF-8 sequences.
5768
f88d0772
JM
57692009-04-25 Joseph Myers <joseph@codesourcery.com>
5770
5771 PR preprocessor/39559
5772 * expr.c (cpp_interpret_integer): Use a pedwarn for decimal
5773 constants larger than intmax_t in C99 mode.
5774
d1b38208
TG
57752009-04-21 Taras Glek <tglek@mozilla.com>
5776
5777 * include/cpp-id-data.h: Update GTY annotations to new syntax.
5778 * include/cpplib.h: Likewise.
5779 * include/line-map.h: Likewise.
5780 * include/symtab.h: Likewise.
5781
cfc93532
MLI
57822009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5783
5784 PR c++/14875
5785 * lex.c (cpp_type2name): Take a flags parameter. Call
5786 cpp_named_operator2name for named operators and cpp_digraph2name
5787 for digraphs.
5788 (cpp_digraph2name): New.
5789 (cpp_spell_token): Use it.
5790 (cpp_output_token): Likewise.
5791 * include/cpplib.h (cpp_type2name): Update declaration.
5792 * init.c (cpp_named_operator2name): New.
5793 * internal.h (cpp_named_operator2name): Declare.
5794
9c650d90
MLI
57952009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5796
5797 PR c++/13358
5798 * init.c (cpp_create_reader): Wlong_long is disabled by default.
5799 * expr.c (cpp_classify_number): Give different messages for C and
5800 C++ front-ends.
5801
aa508502
JM
58022009-04-19 Joseph Myers <joseph@codesourcery.com>
5803
5804 PR preprocessor/20078
5805 * include/cpp-id-data.h (struct cpp_macro): Add extra_tokens
5806 field.
5807 * include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define.
5808 (struct cpp_token): Change flags to unsigned short.
5809 * lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens.
5810 (_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens.
5811 (cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE
5812 tokens.
5813 * macro.c (macro_real_token_count): New.
5814 (enter_macro_context, replace_args): Use macro_real_token_count.
5815 (create_iso_definition): Record whitespace surrounding and digraph
5816 spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH.
5817 Set extra_tokens and save CPP_PASTE tokens with arg_no set for
5818 multiple consecutive ## tokens.
5819 (_cpp_create_definition): Initialize extra_tokens.
5820 (cpp_macro_definition): Use macro_real_token_count.
5821
61cc8223
JM
58222009-04-18 Joseph Myers <joseph@codesourcery.com>
5823
5824 * directives.c (parse_include): Pass true to check_eol.
5825
c7f9c0b9
JM
58262009-04-18 Joseph Myers <joseph@codesourcery.com>
5827
5828 PR preprocessor/39646
5829 * include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM.
5830 * line-map.c (linemap_add): Handle LC_RENAME_VERBATIM.
5831 * directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in
5832 place of LC_RENAME.
5833
a5cb563b
JM
58342009-04-18 Joseph Myers <joseph@codesourcery.com>
5835
5836 PR preprocessor/39647
5837 * directives.c (check_eol): Add parameter expand.
5838 (do_undef, parse_include, do_line, do_linemarker, do_ident,
5839 do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef,
5840 do_else, do_endif, do_assert, do_unassert): All callers changed.
5841 Pass true from do_line, false elsewhere.
5842
18f41a1b
JM
58432009-04-12 Joseph Myers <joseph@codesourcery.com>
5844
5845 PR preprocessor/31869
5846 * macro.c (stringify_arg): Handle NULL source token in padding
5847 token where previous padding token did not have source token with
5848 preceding whitespace.
5849
748086b7
JJ
58502009-04-09 Jakub Jelinek <jakub@redhat.com>
5851
5852 * Makefile.in: Change copyright header to refer to version
5853 3 of the GNU General Public License and to point readers at the
5854 COPYING3 file and the FSF's license web page.
5855 * charset.c: Likewise.
5856 * directives-only.c: Likewise.
5857 * directives.c: Likewise.
5858 * errors.c: Likewise.
5859 * expr.c: Likewise.
5860 * files.c: Likewise.
5861 * identifiers.c: Likewise.
5862 * include/cpp-id-data.h: Likewise.
5863 * include/cpplib.h: Likewise.
5864 * include/line-map.h: Likewise.
5865 * include/mkdeps.h: Likewise.
5866 * include/symtab.h: Likewise.
5867 * init.c: Likewise.
5868 * internal.h: Likewise.
5869 * lex.c: Likewise.
5870 * line-map.c: Likewise.
5871 * macro.c: Likewise.
5872 * makeucnid.c: Likewise.
5873 * mkdeps.c: Likewise.
5874 * pch.c: Likewise.
5875 * symtab.c: Likewise.
5876 * system.h: Likewise.
5877 * traditional.c: Likewise.
5878 * ucnid.tab: Likewise.
5879 * ucnid.h: Regenerate.
5880
eec49116
JJ
58812009-04-01 Janis Johnson <janis187@us.ibm.com>
5882
839a3b8a
JJ
5883 PR c/39027
5884 * include/cpplib.h (CPP_N_DEFAULT): Define.
5885 * expr.c (interpret_float_suffix): Recognize d or D for double,
5886 return new value for default.
5887 (cpp_classify_number): Issue pedwarn for use of d or D in suffix.
5888
eec49116
JJ
5889 PR c/33466
5890 * expr.c (interpret_float_suffix): Reject invalid suffix that uses
5891 letters from decimal float and fixed-point suffixes.
5892
47580d22
JM
58932009-03-31 Joseph Myers <joseph@codesourcery.com>
5894
5895 PR preprocessor/15638
5896 * files.c (_cpp_find_file): Call open_file_failed after diagnosing
5897 invalid PCH.
5898 (open_file_failed): Make error for missing file fatal.
5899 * include/cpplib.h (CPP_DL_FATAL): Define.
5900
5a2df0fa
SV
59012009-03-30 Sergiy Vyshnevetskiy <serg@vostok.net>
5902
5903 PR preprocessor/31932:
5904 * internal.h: Don't mention HAVE_ICONV_H.
5905 * configure, config.in: Rebuild.
5906 * configure.ac: Don't check for iconv.h.
5907
c1a8a3c6
TT
59082009-03-30 Tom Tromey <tromey@redhat.com>
5909
5910 PR preprocessor/39512:
5911 * line-map.c (linemap_init): Initialize 'reallocator' field.
5912
a37a7b8a
JJ
59132009-03-30 Jakub Jelinek <jakub@redhat.com>
5914
5915 PR target/39558
5916 * macro.c (cpp_get_token): If macro_to_expand returns NULL
5917 and used some tokens, add CPP_PADDING before next token.
5918
148e4216
JM
59192009-03-29 Joseph Myers <joseph@codesourcery.com>
5920
5921 PR preprocessor/34695
5922 * makedepend.c: Remove.
5923 * Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove.
5924 (all, clean, TAGS_SOURCES, include): Remove makedepend handling.
5925 * directives.c (cpp_errors): Remove.
5926 * errors.c (print_location, _cpp_begin_message, v_message):
5927 Remove.
5928 (cpp_error, cpp_error_with_line): Always use error callback.
5929 (cpp_error, cpp_error_with_line, cpp_errno): Return bool.
5930 * include/cpplib.h (cpp_options): Remove pedantic_errors,
5931 inhibit_warnings, warn_system_headers, inhibit_errors,
5932 warnings_are_errors, client_diagnostic.
5933 (cpp_callbacks): Add extra arguments to error callback; make it
5934 return bool.
5935 (cpp_finish): Return void.
5936 (cpp_destroy): Remove inaccurate comment about return value.
5937 (cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove.
5938 (CPP_DL_NOTE): Define.
5939 * include/line-map.h (linemap_print_containing_files): Remove.
5940 * init.c (cpp_finish): Do not check for or return number of
5941 errors.
5942 * internal.h (cpp_reader): Remove errors field.
5943 * line-map.c (linemap_print_containing_files): Remove.
5944 * macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message
5945 about previous definition. Only emit it if previous diagnostic
5946 was emitted.
5947
f1450211
JM
59482009-03-28 Joseph Myers <joseph@codesourcery.com>
5949
5950 * Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not
5951 mkinstalldirs.
5952
8f5929e1
JJ
59532009-03-18 Jakub Jelinek <jakub@redhat.com>
5954
5955 * include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
5956
4bb09c26
JM
59572009-02-21 Joseph Myers <joseph@codesourcery.com>
5958
5959 * lex.c (lex_string): Return a CPP_LESS token for missing '>' in a
5960 header name.
5961 (_cpp_lex_direct): Handle this.
5962
68c9ab45
RG
59632009-02-15 Richard Guenther <rguenther@suse.de>
5964
5965 Revert last change.
5966
601b3e1a
RG
59672009-02-13 Richard Guenther <rguenther@suse.de>
5968
5969 * configure.ac: Enable LFS.
5970 * configure: Re-generate.
5971 * config.in: Likewise.
5972
fc0cd180
BE
59732009-01-05 Ben Elliston <bje@au.ibm.com>
5974
5975 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
5976 (.po.pox): Likewise.
5977 (po/$(PACKAGE).pot): Likewise.
5978
db89a3be
AO
59792008-12-10 Alexandre Oliva <aoliva@redhat.com>
5980
5981 PR target/37033
5982 * pch.c (cpp_valid_state): Improve message for poisoned symbols.
5983 Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.
5984
cc955282
JM
59852008-11-29 Joseph Myers <joseph@codesourcery.com>
5986
5987 * lex.c (cpp_token_len): Use 6 as default length.
5988
47960aaf
MLI
59892008-10-31 Manuel López-Ibáñez <manu@gcc.gnu.org>
5990
5991 * expr.c (struct op): Add location.
5992 (_cpp_parse_expr): Propagate locations throught the stack
5993 of expressions.
5994 (reduce): Likewise.
5995 (check_promotion): Use explicit location in errors.
5996
631d0d36
MG
59972008-10-05 Matthew Gingell <gingell@adacore.com>
5998 Arnaud Charlet <charlet@adacore.com>
5999
6000 * include/cpplib.h (cpp_comments, cpp_comment_table): New structs.
6001 (cpp_get_comments): New function.
6002 * internal.h (struct cpp_reader): Add comments field.
6003 * init.c (cpp_destroy): Free comments.
6004 * lex.c (store_comment, cpp_get_comments): New functions.
6005 (comments): New struct.
6006 (save_comment): Store comments in comments struct.
6007
c047ce93
SB
60082008-09-18 Simon Baldwin <simonb@google.com>
6009
6010 * include/cpplib.h (struct cpp_options): Add new boolean flag
6011 warn_builtin_macro_redefined.
6012 * init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
6013 * (struct builtin_operator): Split out from previous struct builtin,
6014 enhance extra const correctness.
6015 * (struct builtin_macro): Split out from previous struct builtin, add
6016 new always_warn_if_redefined flag, enhance const correctness.
6017 * (mark_named_operators): Use struct builtin_operator.
6018 * (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
6019 to builtins selectively.
6020 * macro.c (warn_of_redefinition): Return false if a builtin macro
6021 is not flagged with NODE_WARN.
6022
affa55c6
JJ
60232008-07-31 Jakub Jelinek <jakub@redhat.com>
6024
6025 PR preprocessor/36649
6026 * files.c (struct report_missing_guard_data): New type.
6027 (report_missing_guard): Put paths into an array instead of printing
6028 them right away. Return 1 rather than 0.
6029 (report_missing_guard_cmp): New function.
6030 (_cpp_report_missing_guards): Sort and print paths gathered by
6031 report_missing_guard callback.
6032
3b8f20a1
MLI
60332008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6034
6035 PR 28079
6036 * directives.c (strtolinenum): Handle overflow.
6037 (do_line): Give a warning if line number overflowed.
6038 (do_linemarker): Update call to strtolinenum.
6039
1bb64668
MLI
60402008-07-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6041
6042 * include/line-map.h (linenum_type): New typedef.
6043 (struct line_map): Use it.
6044 (SOURCE_LINE): Second arguments is a LOCATION not a LINE.
6045 (SOURCE_COLUMN): Likewise.
6046 * macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store
6047 source_location values in a variable of type linenum_type.
6048 * directives.c (struct if_stack): Use linenum_type.
6049 (strtoul_for_line): Rename as strtolinenum.
6050 (do_line): Use linenum_type.
6051 (do_linemarker): Use linenum_type and strtolinenum.
6052 (_cpp_do_file_change): Use linenum_t.
6053 * line-map.c (linemap_add): Likewise.
6054 (linemap_line_start): Likewise.
6055 * traditional.c (struct fun_macro): 'line' is a source_location.
6056 * errors.c (print_location): Use linenum_type.
6057 * directives-only.c (_cpp_preprocess_dir_only): Likewise.
6058 * internal.h (CPP_INCREMENT_LINE): Likewise.
6059 * lex.c (_cpp_skip_block_comment): Use source_location.
19a9ba64 6060
5950c3c9
BE
60612008-07-14 Ben Elliston <bje@au.ibm.com>
6062
6063 * include/cpplib.h (NODE_CONDITIONAL): New.
6064 (struct cpp_callbacks): New macro_to_expand field.
6065 (struct cpp_hashnode): Adjust size of flags and type fields.
6066 (cpp_peek_token): Prototype.
6067 * lex.c (cpp_peek_token): New function.
6068 (_cpp_temp_token): Protect pre-existing lookaheads.
6069 * macro.c (cpp_get_token): Expand any conditional macros.
6070 (_cpp_backup_tokens_direct): New.
6071 (_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
6072 (warn_of_redefinition): Silently allow redefined conditional
6073 macros.
6074 (_cpp_create_definition): Remove the conditional flag when a user
6075 defines one of the conditional macros.
6076 * internal.h (_cpp_backup_tokens_direct): New prototype.
6077
e85edc9e
AH
60782008-06-13 Andrew Haley <aph@redhat.com>
6079
6080 PR preprocessor/33305
6081 * macro.c (replace_args): Print a warning for empty macro
6082 arguments in C89 and C++.
6083
18c04407
RW
60842008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6085
6086 * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.
6087 * configure: Regenerate.
6088
2d09b640
RW
60892008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6090
6091 * Makefile.in (datarootdir): New variable.
6092
0b7c73cc
L
60932008-06-12 H.J. Lu <hongjiu.lu@intel.com>
6094
6095 PR preprocessor/36479
6096 * charset.c (cpp_interpret_string_notranslate): Also set
6097 narrow_cset_desc.width.
6098
cd985f66
JM
60992008-06-07 Joseph Myers <joseph@codesourcery.com>
6100
6101 * configure.ac (parisc*64*-*-*): Remove.
6102 * configure: Regenerate.
6103
d750887f
TT
61042008-05-30 Tom Tromey <tromey@redhat.com>
6105
6106 PR preprocessor/36320:
6107 * internal.h (_cpp_parse_expr): Update.
6108 * expr.c (_cpp_parse_expr): Add 'is_if' argument. Update error
6109 messages.
6110 * directives.c (do_if): Update.
6111 (do_elif): Require expression if processing group.
6112
c100de59
DS
61132008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
6114
6115 * include/cpplib.h (struct cpp_dir): Add new field, canonical_name.
6116
5d6342eb
TT
61172008-05-21 Tom Tromey <tromey@redhat.com>
6118
6119 PR preprocessor/27777:
6120 * lex.c (cpp_output_line_to_string): New function.
6121 * internal.h (_cpp_begin_message): Don't declare.
6122 * errors.c (_cpp_begin_message): Now static.
6123 * include/cpplib.h (cpp_output_line_to_string): Declare.
6124 * directives.c (do_diagnostic): Rewrote. Use
6125 cpp_output_line_to_string. Don't use _cpp_begin_message.
6126
dae4174e
TT
61272008-05-21 Tom Tromey <tromey@redhat.com>
6128
6129 * include/symtab.h (HT_ALLOCED): Remove.
6130 (ht_purge): Declare.
6131 * symtab.c (DELETED): New define.
6132 (ht_lookup): Update comment.
6133 (ht_lookup_with_hash): Handle deleted entries. Remove HT_ALLOCED
6134 code. Use subobject allocator for strings, if it exists.
6135 (ht_expand): Handle deleted entries.
6136 (ht_forall): Likewise.
6137 (ht_purge): New function.
6138 (ht_dump_statistics): Print deletion statistics.
6139
899015a0
TT
61402008-05-13 Tom Tromey <tromey@redhat.com>
6141
6142 PR preprocessor/22168:
6143 * include/cpplib.h (struct cpp_options) <objc>: Update
6144 documentation.
6145 * expr.c (eval_token): Warn for use of assertions.
6146 * directives.c (directive_diagnostics): Warn about extensions.
6147 (DEPRECATED): New define.
6148 (DIRECTIVE_TABLE): Use it.
6149
71c10038
TT
61502008-05-06 Tom Tromey <tromey@redhat.com>
6151
6152 PR preprocessor/35313, PR preprocessor/36088:
6153 * expr.c (optab) <QUERY, COMMA>: Set precedence to 4.
6154 (reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON.
6155
2bd0fe3d
DM
61562008-05-04 David S. Miller <davem@davemloft.net>
6157
6158 * configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
6159 * configure: Regenerate.
6160
28f68625
DF
61612008-04-22 Daniel Franke <franke.daniel@gmail.com>
6162
6163 * include/cpplib.h (cpp_define_formatted): New.
6164 * directives.c (cpp_define_formatted): New.
6165
688e7a53
TT
61662008-04-21 Tom Tromey <tromey@redhat.com>
6167
6168 PR libcpp/33415:
6169 * charset.c (_cpp_convert_input): Add buffer_start argument.
6170 Ignore UTF-8 BOM if seen.
6171 * internal.h (_cpp_convert_input): Add argument.
6172 * files.c (struct _cpp_file) <buffer_start>: New field.
6173 (destroy_cpp_file): Free buffer_start, not buffer.
6174 (_cpp_pop_file_buffer): Likewise.
6175 (read_file_guts): Update.
6176
b6baa67d
KVH
61772008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
6178
6179 * include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal.
6180 * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
6181 (struct cpp_options): Added uliterals.
6182 (cpp_interpret_string): Update prototype.
6183 (cpp_interpret_string_notranslate): Idem.
6184 * charset.c (init_iconv_desc): New width member in cset_converter.
6185 (cpp_init_iconv): Add support for char{16,32}_cset_desc.
6186 (convert_ucn): Idem.
6187 (emit_numeric_escape): Idem.
6188 (convert_hex): Idem.
6189 (convert_oct): Idem.
6190 (convert_escape): Idem.
6191 (converter_for_type): New function.
6192 (cpp_interpret_string): Use converter_for_type, support u and U prefix.
6193 (cpp_interpret_string_notranslate): Match changed prototype.
6194 (wide_str_to_charconst): Use converter_for_type.
6195 (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
6196 * directives.c (linemarker_dir): Macro U changed to UC.
6197 (parse_include): Idem.
6198 (register_pragma_1): Idem.
6199 (restore_registered_pragmas): Idem.
6200 (get__Pragma_string): Support CPP_STRING{16,32}.
6201 * expr.c (eval_token): Support CPP_CHAR{16,32}.
6202 * init.c (struct lang_flags): Added uliterals.
6203 (lang_defaults): Idem.
6204 * internal.h (struct cset_converter) <width>: New field.
6205 (struct cpp_reader) <char16_cset_desc>: Idem.
6206 (struct cpp_reader) <char32_cset_desc>: Idem.
6207 * lex.c (digraph_spellings): Macro U changed to UC.
6208 (OP, TK): Idem.
6209 (lex_string): Add support for u'...', U'...', u"..." and U"...".
6210 (_cpp_lex_direct): Idem.
6211 * macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
6212 (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
6213
deb984e6
PB
62142008-04-18 Paolo Bonzini <bonzini@gnu.org>
6215
6216 PR bootstrap/35457
6217 * aclocal.m4: Regenerate.
6218 * configure: Regenerate.
6219
bf048bea
TT
62202008-04-17 Tom Tromey <tromey@redhat.com>
6221
6222 PR libcpp/34866:
6223 * errors.c (cpp_error): Don't reference a token before the start
6224 of the current run.
6225
7f27b0f8
TT
62262008-04-16 Tom Tromey <tromey@redhat.com>
6227
6228 * Makefile.in (TAGS_SOURCES): New variable.
6229 (TAGS): New target.
6230
a1fcb9a1
KK
62312008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
6232
6233 * configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-*
6234 and shbe-*-*.
6235 * configure: Rebuilt.
6236
93d45d9e
JM
62372008-04-02 Joseph Myers <joseph@codesourcery.com>
6238
6239 * include/cpplib.h (struct cpp_callbacks): Add used_define,
6240 used_undef and before_define.
6241 (NODE_USED): Define.
6242 * directives.c (do_define, do_undef, undefine_macros, do_ifdef,
6243 do_ifndef, cpp_pop_definition): Handle new flag and use new
6244 callbacks.
6245 * expr.c (parse_defined): Handle new flag and use new callbacks.
6246 * macro.c (enter_macro_context, _cpp_free_definition): Handle new
6247 flag and use new callbacks.
6248
d4c32e1d
JJ
62492008-04-01 Jakub Jelinek <jakub@redhat.com>
6250
6251 PR pch/13675
6252 * files.c (struct _cpp_file): Remove pch field.
6253 (pch_open_file): Don't set file->pch, just file->pchname.
6254 (should_stack_file): After pfile->cb.read_pch call
6255 free pchname and clear pchname, don't close file->fd.
6256 Test file->pchname instead of file->pch. Don't close fd after cb.
6257 (_cpp_stack_include): Test file->pchname instead of file->pch.
6258
161031e3
TT
62592008-03-28 Tom Tromey <tromey@redhat.com>
6260
6261 * Makefile.in (POSTCOMPILE): New variable.
6262 (.c.o): Use it.
6263
14ccf800
TT
62642008-03-13 Tom Tromey <tromey@redhat.com>
6265
6266 PR libcpp/35322:
6267 * directives.c (destringize_and_run): Set pfile->directive.
6268
830465c6
MM
62692008-03-06 Markus Milleder <markus.milleder@generali.at>
6270
6271 PR preprocessor/35458
6272 * mkdeps.c (munge): Quote '#' with a '\'.
6273
d482a073
RW
62742008-02-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6275
6276 PR preprocessor/35379
6277 * mkdeps.c (deps_write): Ensure the first target always appears
6278 in the first column, without leading backslash newline. Avoid
6279 some more extra whitespace.
6280
185a6cc1
TS
62812008-02-25 Thiemo Seufer <ths@mips.com>
6282
d482a073 6283 * Makefile.in ($(srcdir)/config.in): Depend on configure.ac.
185a6cc1 6284
2bf41bf0
TT
62852008-02-19 Tom Tromey <tromey@redhat.com>
6286
6287 * traditional.c (lex_identifier): Use CPP_HASHNODE.
6288 * lex.c (lex_identifier): Use CPP_HASHNODE.
6289 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in
6290 do-while.
6291 * identifiers.c (alloc_node): Change return type.
6292 (_cpp_init_hashtable): Don't cast 'alloc_node'.
6293 (proxy_assertion_broken): New declaration.
6294 (cpp_forall_identifiers): Move comment.
6295 * line-map.c (linemap_add): Comment fix.
6296 (linemap_line_start): Indentation fix.
6297
765d600a
JJ
62982008-01-25 Jakub Jelinek <jakub@redhat.com>
6299
6300 PR preprocessor/34692
6301 * macro.c (collect_args): Add pragma_buff argument. Push
6302 CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather
6303 than into arguments. Reset prevent_expansion and parsing_args
6304 state at CPP_PRAGMA_EOL/CPP_EOF.
6305 (funlike_invocation_p): Add pragma_buff argument, pass it through
6306 to collect_args.
6307 (enter_macro_context): Add result argument. Adjust
6308 funlike_invocation_p caller. Emit all deferred pragma tokens
6309 gathered during collect_args before the expansion, add a padding
6310 token. Return 2 instead of 1 if any pragma tokens were prepended.
6311 (cpp_get_token): If enter_macro_context returns 2, don't return
6312 a padding token, instead cycle to grab CPP_PRAGMA token.
6313 * directives.c (_cpp_handle_directive): If was_parsing_args
6314 in deferred pragma, leave parsing_args and prevent_expansion as is.
6315
ec46053b
TT
63162008-01-22 Tom Tromey <tromey@redhat.com>
6317
765d600a 6318 PR c++/34859
ec46053b
TT
6319 * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and
6320 __STDC_CONSTANT_MACROS.
6321
681c6ab0
FF
63222008-01-07 Fred Fish <fnf@specifix.com>
6323
765d600a 6324 PR preprocessor/30363
681c6ab0 6325 * traditional.c (replace_args_and_push): Add local variable
19a9ba64 6326 cxtquote, calculate the replacement text size assuming a
681c6ab0
FF
6327 worst case of every input character quoted with backslash,
6328 and properly handle output quoting of quote characters in
6329 actual arguments used in function-like macros.
6330
33ae4837
TT
63312008-01-03 Tom Tromey <tromey@redhat.com>
6332
765d600a 6333 PR preprocessor/34602
33ae4837
TT
6334 * directives.c (do_line): Don't try to spell EOF token.
6335 (do_linemarker): Add comment.
6336
675575f5
DD
63372007-12-11 DJ Delorie <dj@redhat.com>
6338
6339 * charset.c (convert_using_iconv): Close out any shift states,
6340 returning to the initial state.
6341
97f6bd40
TT
63422007-12-06 Tom Tromey <tromey@redhat.com>
6343
765d600a 6344 PR c/29172
97f6bd40
TT
6345 * internal.h (struct cpp_reader) <file_hash_entries>: Changed
6346 type.
6347 <file_hash_entries_allocated, file_hash_entries_used>: Removed.
6348 * files.c (FILE_HASH_POOL_SIZE): New macro.
6349 (struct file_hash_entry_pool): New.
6350 (destroy_all_cpp_files): New function.
6351 (allocate_file_hash_entries): Allocate a file_hash_entry_pool.
6352 (new_file_hash_entry): Update.
6353 (free_file_hash_entries): New function.
6354 (_cpp_cleanup_files): Call free_file_hash_entries and
6355 destroy_all_cpp_files.
6356 (cpp_clear_file_cache): New function.
6357 * include/cpplib.h (cpp_clear_file_cache): Declare.
6358
d56a25e1
TT
63592007-12-03 Tom Tromey <tromey@redhat.com>
6360
765d600a 6361 PR preprocessor/34288
d56a25e1
TT
6362 * configure.ac, config.in: Rebuilt.
6363 * configure.ac: Check for ssize_t.
6364
607f74e9
TT
63652007-11-30 Tom Tromey <tromey@redhat.com>
6366
765d600a 6367 PR preprocessor/32868
607f74e9
TT
6368 * macro.c (_cpp_create_definition): Special case
6369 __STDC_FORMAT_MACROS.
6370
b0f4807f
MM
63712007-11-16 Michael Matz <matz@suse.de>
6372
6373 * files.c (search_path_head): Fix check for absolute paths.
6374
f1e20710
TT
63752007-11-11 Tom Tromey <tromey@redhat.com>
6376
765d600a 6377 PR c++/17557
f1e20710
TT
6378 * include/cpplib.h (cpp_included_before): Declare.
6379 * files.c (struct file_hash_entry) <location>: New field.
6380 (_cpp_find_file): Initialize new field.
6381 (make_cpp_dir): Likewise.
6382 (cpp_included_before): New function.
6383
f373b44d
TT
63842007-11-01 Tom Tromey <tromey@redhat.com>
6385
765d600a 6386 PR preprocessor/30805
f373b44d
TT
6387 * macro.c (paste_tokens): Handle padding token.
6388 (paste_tokens): Don't abort unless padding has PASTE_LEFT flag.
6389
5b9a40df
TT
63902007-10-31 Tom Tromey <tromey@redhat.com>
6391
765d600a 6392 PR preprocessor/30786
5b9a40df
TT
6393 * macro.c (builtin_macro): Return result of _cpp_do__Pragma.
6394 * directives.c (_cpp_do__Pragma): Return error status.
6395 * internal.h (_cpp_do__Pragma): Update.
6396 * directives.c (get__Pragma_string): Back up if EOF seen.
6397
5ffeb913
TT
63982007-09-06 Tom Tromey <tromey@redhat.com>
6399
6400 * internal.h (struct cpp_reader) <invocation_location>: New
6401 field.
6402 (struct cpp_reader) <set_invocation_location>: Likewise.
6403 * init.c (cpp_set_line_map): New function.
6404 * line-map.c (linemap_add): Use linemap's allocator.
6405 * include/line-map.h (GTY): Define.
6406 (line_map_realloc): New typedef.
6407 (struct line_map): Mark with GTY.
6408 (struct line_maps): Likewise.
6409 (struct line_maps) <maps>: Likewise.
6410 (struct line_maps) <reallocator>: New field.
6411 * include/symtab.h (GTY): Conditionally define.
6412 * include/cpplib.h (cpp_set_line_map): Declare.
6413 (cpp_get_token_with_location): Declare.
6414 * macro.c (cpp_get_token): Set invocation_location on the reader.
6415 (cpp_get_token_with_location): New function.
6416
ac6b1c67
CF
64172007-08-30 Chao-ying Fu <fu@mips.com>
6418
6419 * expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur,
6420 ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk.
6421 (cpp_classify_number): Support decimal fixed-point constants without
6422 exponents.
6423 Warn about fixed-point constants when -pedantic.
6424 * include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change
6425 comments to support fixed-point values.
6426 (CPP_N_FRACT, CPP_N_ACCUM): Define.
6427
cda5e672
TT
64282007-08-18 Tom Tromey <tromey@redhat.com>
6429
765d600a 6430 PR preprocessor/32974
cda5e672
TT
6431 * directives.c (parse_include): Don't check for EOL when
6432 processing #pragma dependency.
6433
ccfc4c91
OW
64342007-07-30 Ollie Wild <aaw@google.com>
6435
6436 * directives-only.c: New file.
6437 * internal.h (struct _cpp_dir_only_callbacks): New.
6438 (_cpp_preprocess_dir_only): New function.
6439 * directives.c (_cpp_handle_directive): Check directives_only before
6440 disabling execution of indented directives.
6441 * files.c (_cpp_stack_file): Add directives_only check.
6442 * include/cpplib.h (struct cpp_options): Add directives_only.
6443 (cpp_init_special_builtins): New function.
6444 * init.c (cpp_init_special_builtins): New function.
6445 (cpp_init_builtins): Move builtin_array initialization to
6446 cpp_init_special_builtins.
6447 (post_options): Check directives_only before setting
6448 pfile->state.prevent_expansion = 1.
6449 * macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
6450 is expanded inside a directive while -fdirectives-only is enabled.
6451 * Makefile.in (libcpp_a_OBJS): Add directives-only.o.
6452 (libcpp_a_SOURCES): Add directives-only.c.
6453
a206413a
UB
64542007-07-04 Uros Bizjak <ubizjak@gmail.com>
6455
6456 * traditional.c (_cpp_scan_out_logical_line): Initialize
6457 fmacro.args, fmacro.node, fmacro.offset, fmacro.line and
6458 fmacro.args to prevent 'may be used uninitialized' warning.
6459
c77cd3d1
UB
64602007-07-03 Uros Bizjak <ubizjak@gmail.com>
6461
6462 * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q):
6463 Add new constants.
6464 * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q'
6465 suffixes. Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q
6466 for 'q' or 'Q' suffixes.
6467
66938a1d
DS
64682007-06-17 Danny Smith <dannysmith@users.sourceforge.net
6469
e1311401 6470 * files.c (open_file): Correct typo.
66938a1d 6471
71995ede
VP
64722007-06-16 Vladimir Prus <vladimir@codesourcery.com>
6473
e1311401 6474 * files.c (open_file): Prevent the call
71995ede
VP
6475 for stat from overwriting errno.
6476
84152c25
VP
64772007-06-09 Vladimir Prus <vladimir@codesourcery.com>
6478
e1311401 6479 * files.c (open_file): Account for the
19a9ba64
AM
6480 fact that on windows, opening a directory gives
6481 EACCES.
84152c25 6482
f7fd775f
JW
64832007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
6484
6485 PR preprocessor/23479
6486 * expr.c (cpp_classify_number): Implement 0b-prefixed binary
6487 integer constants.
6488 (append_digit): Likewise.
6489 * include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed
6490 binary integer constants.
6491
ed0e74e0
DK
64922007-05-31 Dave Korn <dave.korn@artimi.com>
6493
6494 PR preprocessor/14331
6495 * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF.
6496
a702045a
OW
64972007-05-24 Ollie Wild <aaw@google.com>
6498
6499 * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER.
6500 * pch.c (cpp_write_pch_deps): Save __COUNTER__ state.
6501 (cpp_write_pch_state): Save __COUNTER__ state.
6502 (cpp_valid_state): Check valid __COUNTER__ state.
6503 (cpp_read_state): Read new __COUNTER__ state.
6504 * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator.
6505 * init.c (builtin_array): Add __COUNTER__/BT_COUNTER.
6506 * internal.h (struct cpp_reader): Add counter member.
6507
126e073b
SM
65082007-05-23 Simon Martin <simartin@users.sourceforge.net>
6509
6510 PR preprocessor/20077
6511 * macro.c (create_iso_definition): Fixed the method to determine
6512 whether the token-pasting operator appears at the beginning or the end
6513 of a macro.
6514
0b4cafec
ILT
65152007-05-21 Ian Lance Taylor <iant@google.com>
6516
6517 * internal.h (struct cpp_reader): Add new fields:
6518 nonexistent_file_hash and nonexistent_file_ob.
6519 * files.c: Include "obstack.h".
6520 (find_file_in_dir): Before trying to open the file, look up the
6521 path name in the hash table of nonexistent files. After failing
6522 to open the file, add the path name to the hash table.
6523 (_cpp_find_file): Cache the results of looking up the file name
6524 starting with the quote and bracket chain heads, if we can.
6525 (nonexistent_file_hash_eq): New static function.
6526 (_cpp_init_files): Initialize pfile->nonexistent_file_hash and
6527 pfile->nonexistent_file_ob.
6528 (_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
6529 pfile->nonexistent_file_ob.
6530
30e04921
JJ
65312007-05-14 Janis Johnson <janis187@us.ibm.com>
6532
19a9ba64 6533 * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic.
5a6bb57e 6534
30e04921
JJ
6535 PR c/31924
6536 * expr.c (interpret_float_suffix): Check for invalid suffix.
6537
22a8a52d
EC
65382007-05-02 Eric Christopher <echristo@apple.com>
6539
6540 * expr.c (num_div_op): Don't overflow if the result is
6541 zero.
6542
fca35e1b
TT
65432007-05-02 Tom Tromey <tromey@redhat.com>
6544
765d600a 6545 PR preprocessor/28709
fca35e1b
TT
6546 * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
6547
4cd97075
MM
65482007-03-30 Michael Meissner <michael.meissner@amd.com>
6549
6550 * directives.c (lex_macro_node_from_str): Fix alloca call to be
6551 type correct.
6552
121de39f
RH
65532007-03-30 Richard Henderson <rth@redhat.com>
6554
6555 * directives.c (lex_macro_node_from_str): New.
6556 (cpp_push_definition, cpp_pop_definition): New.
6557 * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
6558
4fcb360b
BM
65592007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
6560
6561 * Makefile.in: Add dummy install-pdf target.
6562
67e64439
TT
65632007-01-30 Tom Tromey <tromey@redhat.com>
6564
765d600a 6565 PR preprocessor/30468
67e64439
TT
6566 * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
6567 './'.
6568
ee380365
TT
65692007-01-30 Tom Tromey <tromey@redhat.com>
6570
765d600a 6571 PR preprocessor/29966
ee380365
TT
6572 * macro.c (lex_expansion_token): Save and restore cpp_reader's
6573 cur_token.
6574 (_cpp_create_definition): Don't restore cur_token here.
6575 * lex.c (_cpp_lex_token): Added assertion.
6576
024abeb3
TT
65772007-01-27 Tom Tromey <tromey@redhat.com>
6578
6579 * configure: Rebuilt.
6580
ee1c2a10
TT
65812007-01-12 Tom Tromey <tromey@redhat.com>
6582
765d600a 6583 PR preprocessor/28227
ee1c2a10
TT
6584 * directives.c (lex_macro_node): Added 'is_def_or_undef'
6585 argument.
6586 (do_define): Update.
6587 (do_undef): Update.
6588 (do_ifdef): Update.
6589 (do_ifndef): Update.
6590
67214c16
PB
65912007-01-11 Paolo Bonzini <bonzini@gnu.org>
6592
6593 * configure: Regenerate.
6594
1aa6ca40
PB
65952007-01-11 Paolo Bonzini <bonzini@gnu.org>
6596
6597 * configure: Regenerate.
6598
705e2d28
TT
65992007-01-04 Tom Tromey <tromey@redhat.com>
6600
765d600a 6601 PR preprocessor/28165
705e2d28
TT
6602 * internal.h (cpp_in_primary_file): New function.
6603 * directives.c (do_include_next): Use cpp_in_primary_file.
6604 (do_pragma_once): Likewise.
6605 (do_pragma_system_header): Likewise.
6606
7af45bd4
ILT
66072006-12-29 Ian Lance Taylor <iant@google.com>
6608
6609 * lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't
6610 look backward at the end of the line unless we saw a backslash.
6611
9d30f270
JJ
66122006-12-29 Jakub Jelinek <jakub@redhat.com>
6613
6614 PR preprocessor/29612
6615 * directives.c (do_linemarker): Set pfile->buffer->sysp always, not
6616 only when new_sysp is non-zero.
6617
30b0edc0
TT
66182006-12-28 Tom Tromey <tromey@redhat.com>
6619
765d600a 6620 PR preprocessor/30001
30b0edc0
TT
6621 * charset.c (_cpp_convert_input): Check that to.len is greater
6622 than zero.
6623
85d9c13c
TS
66242006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
6625
6626 * configure.ac (need_64bit_hwint): Need 64bit hwint for SPU.
83cc06b2 6627 * configure: Rebuilt.
85d9c13c 6628
dfafdaa6
DG
66292006-11-01 Douglas Gregor <doug.gregor@gmail.com>
6630
6631 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
6632 for experimental C++0x mode.
6633 * init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
6634 adopted the preprocessor changes introduced in C99.
6635
0f45f0f5
JM
66362006-10-29 Joseph Myers <joseph@codesourcery.com>
6637
6638 * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
6639 depending on --enable-targets=all.
6640 * configure: Regenerate.
6641
de000d22
JJ
66422006-10-12 Jakub Jelinek <jakub@redhat.com>
6643
6644 PR preprocessor/28709
6645 * macro.c (paste_tokens): Do error reporting here, use BUF with the
6646 spelled LHS token as opposed to spelling it again.
6647 (paste_all_tokens): Don't report errors here, just break on failure.
6648
b5422ad7
BM
66492006-10-10 Brooks Moses <bmoses@stanford.edu>
6650
6651 * Makefile.in: Added empty "pdf" target.
6652
aaf50ff2
GK
66532006-09-22 Geoffrey Keating <geoffk@apple.com>
6654
6655 * configure.ac: Make need_64_bit_hwint case for x86-darwin
6656 match exactly the glob in gcc/config.gcc.
6657 * configure: Regenerate.
6658
c663e301
JM
66592006-09-13 Joseph S. Myers <joseph@codesourcery.com>
6660
6661 PR c/28768
6662 PR preprocessor/14634
6663 * lex.c (lex_string): Pedwarn for unterminated literals.
6664
f7288899
EC
66652006-09-08 Eric Christopher <echristo@apple.com>
6666
6667 * configure.ac: Add 64-bit HWI support for i?86-darwin.
6668
b52dbbf8
SE
66692006-08-14 Steve Ellcey <sje@cup.hp.com>
6670
6671 PR c++/28288
6672 PR c++/14556
6673 * include/cpplib.h: Remove <?, >?, <?=, and >?= tokens.
6674 (CPP_LAST_EQ): Change.
6675 (CPP_LAST_PUNCTUATOR): Change.
6676 * expr.c (cpp_operator): Remove MIN and MAX.
6677 (reduce): Remove CPP_MIN and CPP_MAX.
6678 (num_binary_op): Ditto.
6679 * lex.c (_cpp_lex_direct): Ditto.
6680 (cpp_avoid_paste): Remove ? as legal symbol after > or <.
6681
1c90c6f9
JJ
66822006-06-09 Jakub Jelinek <jakub@redhat.com>
6683
6684 PR preprocessor/27746
6685 * directives.c (do_pragma): Handle pragma with valid namespace
6686 and invalid name coming from macro expansion.
6687 * directives.c (destringize_and_run): Initialize next field in
6688 context.
6689
6690 PR c/27747
6691 PR c++/27748
6692 * directives.c (destringize_and_run): Set NO_EXPAND on the
6693 tokens.
6694
6695 * macro.c (_cpp_backup_tokens): Fix comment typo.
6696
5c3c3683
DJ
66972006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
6698
6699 * Makefile.in (CATALOGS): Add po/ prefix.
6700 * configure: Regenerated.
6701
b2bd74bc
CD
67022006-05-23 Carlos O'Donell <carlos@codesourcery.com>
6703
6704 * Makefile.in: Add install-html target. Add install-html to .PHONY
6705
be8ac3e2
GZ
67062006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
6707
6708 * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
6709 * files.c (_cpp_get_file_stat): New function.
6710 * include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
6711 * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
6712 * internal.h (_cpp_get_file_stat): Prototype.
6713 (struct cpp_buffer): Add timestamp.
6714
83900997
JJ
67152006-01-23 Jakub Jelinek <jakub@redhat.com>
6716
6717 PR preprocessor/25717
6718 * init.c (cpp_init_builtins): If __STDC__ will not change value
6719 between system headers and other sources, define it as a normal
6720 macro rather than a builtin.
6721 * macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
6722 cpp_in_system_header condition.
6723
67242006-01-05 Paolo Bonzini <bonzini@gnu.org>
9220c30c
PB
6725
6726 * Makefile.in: Use -MMD instead of -MD.
6727
bc4071dd
RH
67282006-01-04 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
6729 Richard Henderson <rth@redhat.com>
6730
6731 Merge from gomp branch:
6732 * directives.c (struct pragma_entry): Add is_deferred. Add ident
6733 entry to value union.
6734 (end_directive): Don't eat the line if in_deferred_pragma.
6735 (run_directive): Remove pragma hacks.
6736 (insert_pragma_entry): Remove.
6737 (new_pragma_entry): New.
6738 (register_pragma_1): Split out of register_pragma. Only handle
6739 the lookup tree and return the new entry.
6740 (cpp_register_pragma): Fill in the pragma entry here.
6741 (cpp_register_deferred_pragma): New.
6742 (register_pragma_internal): New.
6743 (_cpp_init_internal_pragmas): Use register_pragma_internal.
6744 (do_pragma): Allow pragma expansion after namespace. For deferred
6745 pragmas, don't slurp the line into a string.
6746 (destringize_and_run): Save tokens for deferred pragmas.
6747 (cpp_handle_deferred_pragma): Remove.
6748 * macro.c (builtin_macro): Remove pragma token hack.
6749 (_cpp_push_token_context): Rename from push_token_context and export.
6750 * internal.h (struct lexer_state): Add pragma_allow_expansion.
6751 (_cpp_push_token_context): Declare.
6752 * lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
6753 a token. Update the line number correctly if so.
6754 (_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
6755 (cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
6756 * include/cpplib.h (PRAGMA_EOL): New.
6757 (CPP_TOKEN_FLD_PRAGMA): New.
6758 (struct cpp_token): Add val.pragma.
6759 (struct cpp_options): Remove defer_pragmas.
6760 (cpp_handle_deferred_pragma): Remove.
6761 (cpp_register_deferred_pragma): Declare.
6762
d09e893f
JJ
67632006-01-01 Jakub Jelinek <jakub@redhat.com>
6764
6765 PR c++/25294
6766 * directives.c (do_pragma): If pragma line ends with multi-line
6767 block comment, end the saved deferred pragma string before that
6768 comment. Handle embedded '\0' chars on the pragma line.
6769
ab84748a
VR
67702005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6771
6772 PR c++/23333
6773 * include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
6774
ad6ed77e
JG
67752005-12-07 Jon Grimm <jgrimm2@us.ibm.com>
6776 Ben Elliston <bje@au.ibm.com>
6777
6778 * include/cpplib.h (CPP_N_DFLOAT): New.
6779 * expr.c (interpret_float_suffix): Identify df, dd, and dl
6780 suffixes as decimal floating point constants.
6781 (cpp_classify_number): Disallow hexadecimal DFP constants.
6782
ba096620 67832005-11-14 Gerald Pfeifer <gerald@pfeifer.com>
bc4071dd 6784 Ian Lance Taylor <ian@airs.com>
ba096620
GP
6785
6786 * include/cpplib.h (struct cpp_callbacks): Annotate error with
6787 ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
6788
456b8ce5
UB
67892005-11-09 Per Bothner <per@bothner.com>
6790 Uros Bizjak <uros@kss-loka.si>
f7288899 6791
456b8ce5
UB
6792 PR c/24101
6793 * init.c (read_original_filename): Temporarily set
6794 state.in_directive before calling _cpp_lex_direct for
6795 CPP_HASH tokens.
6796
5571f74f
JW
67972005-11-03 James E Wilson <wilson@specifix.com>
6798
6799 PR preprocessor/24202
6800 * files.c (_cpp_pop_file_buffer): Set buffer_valid to false.
6801
a63607ed
JM
68022005-11-04 Joseph S. Myers <joseph@codesourcery.com>
6803
6804 * include/cpplib.h (struct cpp_callbacks): Make error take
6805 va_list* parameter.
6806 * errors.c (cpp_error): Update call to callback.
6807
651ed942
AP
68082005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
6809
6810 PR preprocessor/22042
6811 * macro.c (_cpp_builtin_macro_text): Lower the needed max
6812 buffer size.
6813 (cpp_quote_string): Don't octalify non printable
6814 charactors.
6815
178b58b5
JM
68162005-11-03 Joseph S. Myers <joseph@codesourcery.com>
6817
6818 PR c++/17964
6819 * include/cpplib.h (struct cpp_options): Add client_diagnostic.
6820 (struct cpp_callbacks): Add error.
6821 * errors.c (cpp_error): If client_diagnostic, use error callback.
6822 * charset.c (convert_escape): Don't use %03o in diagnostic.
6823
3ee5ed11 68242005-10-21 James E Wilson <wilson@specifix.com>
6568f34b
JW
6825
6826 PR preprocessor/15220
6827 * files.c (_cpp_find_file): New parameter angle_brackets. Fix all
6828 callers. Pass to open_file_failed.
6829 (open_file_failed): New parameter angle_brackets. Fix all callers.
6830 Use in print_dep assignment.
6831 * init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
6832 * internal.h (_cpp_find_file): Add new parm to declaration.
f7288899 6833
077fc835
KH
68342005-10-08 Kazu Hirata <kazu@codesourcery.com>
6835
6836 * configure.ac: Require 64-bit int for arm*-*-*eabi*.
6837 * configure: Regenerate.
6838
cbc43ae0
ILT
68392005-10-04 Ian Lance Taylor <ian@airs.com>
6840
6841 PR preprocessor/13726
6842 * directives.c (check_eol_return_comments): New static function.
6843 (parse_include): Add buf parameter. Change all callers.
6844 (do_include_common): If not discard comments, turn on
6845 save_comments. Pass collected comments to include callback.
6846 * include/cpplib.h (struct cpp_callbacks): Add new parameter to
6847 include callback: cpp_token list.
6848
af15a2fe
JM
68492005-09-20 Joseph S. Myers <joseph@codesourcery.com>
6850
6851 * include/cpplib.h (struct cpp_options): Add extended_identifiers.
6852 * init.c (struct lang_flags, lang_defaults): Add
6853 extended_identifiers.
6854 (cpp_set_lang): Use it.
6855 * lex.c (forms_identifier_p): Check extended_identifiers.
6856
f5eab47e
JJ
68572005-08-30 Jakub Jelinek <jakub@redhat.com>
6858
6859 PR preprocessor/20348
6860 PR preprocessor/20356
6861 * files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and
6862 2004-06-05 changes.
6863
467129e6
KG
68642005-07-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6865
6866 * configure.ac (ACX_PROG_CC_WARNING_OPTS): add
6867 -Wmissing-format-attribute.
6868
6869 * configure: Regenerate.
6870
200031d1
KC
68712005-06-29 Kelley Cook <kcook@gcc.gnu.org>
6872
6873 * all files: Update FSF address in copyright headers.
6874 * makeucnid.c (write_copyright): Update outputted FSF address.
6875
f610dd5f
ZW
68762005-06-13 Zack Weinberg <zack@codesourcery.com>
6877
6878 * configure.ac: Invoke ZW_CREATE_DEPDIR and
6879 ZW_PROG_COMPILER_DEPENDENCIES.
6880 * aclocal.m4, configure: Regenerate.
6881 * Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE):
6882 New variables.
6883 (distclean): Clean up $(DEPDIR) and its contents.
6884 (.c.o): Use $(COMPILE).
6885 Include $(DEPDIR)/*.Po for most object->header dependencies.
6886
c3f829c1
GDR
68872005-05-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
6888
6889 * configure.ac: Check declarations for asprintf and vasprintf.
6890 * config.in: Regenerate.
6891 * configure: Likewise.
6892
6893 * charset.c (conversion_loop): Use XRESIZEVEC.
6894 (convert_no_conversion): Likewise.
6895 (convert_using_iconv): Likewise.
6896 (init_iconv_desc): Cast return value of alloca.
6897 (cpp_host_to_exec_charset): Use XNEWVEC.
6898 (emit_numeric_escape): Use XRESIZEVEC.
6899 (cpp_interpret_string): Use XNEWVEC.
6900 (cpp_interpret_string): Use XRESIZEVEC.
6901 (_cpp_interpret_identifier): Cast return value of alloca.
6902 (_cpp_convert_input): Use XNEWVEC and XRESIZEVEC.
6903 * directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC.
6904 (parse_include): Use XNEWVEC.
6905 (insert_pragma_entry): Rename local variable "new" to
f610dd5f 6906 "new_entry".
c3f829c1
GDR
6907 (save_registered_pragmas): Cast return value of xmemdup.
6908 (destringize_and_run): Same for alloca.
6909 (parse_assertion): Likewise.
6910 (do_assert): Cast allocated storage to proper type.
6911 (cpp_define): Likewise.
6912 (_cpp_define_builtin): Likewise.
6913 (cpp_undef): Likewise.
6914 (handle_assertion): Likewise.
6915 (cpp_push_buffer): Rename local variable "new" to "new_buffer".
6916 * expr.c (CPP_UPLUS): Cast value to type cpp_ttype.
6917 (CPP_UMINUS): Likewise.
6918 (struct cpp_operator): Rename from struct operator.
6919 (_cpp_expand_op_stack): Use XRESIZEVEC.
6920 * files.c (pch_open_file): Use XNEWVEC.
6921 (pch_open_file): Use XRESIZEVEC.
6922 (read_file_guts): Use XNEWVEC and XRESIZEVEC.
6923 (dir_name_of_file): Use XNEWVEC.
6924 (make_cpp_file): Use XCNEW.
6925 (make_cpp_dir): Likewise.
6926 (allocate_file_hash_entries): USE XNEWVEC.
6927 (cpp_included): Cast return value of htab_find_with_hash.
6928 (append_file_to_dir): Use XNEWVEC.
6929 (read_filename_string): Likewise. Use XRESIZEVEC too.
6930 (read_name_map): Cast return value of alloca. Use XRESIZEVEC.
6931 (remap_filename): Use XNEWVEC.
6932 (struct pchf_entry): Move definition out of struct pchf_data.
6933 (_cpp_save_file_entries): Use XCNEWVAR.
6934 (_cpp_read_file_entries): Use XNEWVAR.
6935 * identifiers.c (alloc_node): Use XOBNEW.
6936 * init.c (cpp_create_reader): Use XCNEW.
6937 (cpp_init_builtins): Cast of b->value to enum builtin_type.
6938 (read_original_directory): Cast return value of alloca.
6939 * lex.c (add_line_note): Use XRESIZEVEC.
6940 (warn_about_normalization): Use XNEWVEC.
6941 (_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype).
6942 (new_buff): Use XNEWVEC.
6943 * line-map.c (linemap_add): Use XRESIZEVEC.
6944 * macro.c (builtin_macro): Cast return value of alloca.
6945 (paste_tokens): Likewise.
6946 (expand_arg): Use XNEWVEC and XRESIZEVEC.
6947 (_cpp_save_parameter): Use XRESIZEVEC.
6948 (create_iso_definition): Cast allocated storage to proper type.
6949 (_cpp_create_definition): Likewise.
6950 (cpp_macro_definition): Use XRESIZEVEC.
6951 * makedepend.c (add_clm): Use XNEW.
6952 (add_dir): Likewise.
6953 * mkdeps.c (munge): Use XNEWVEC.
6954 (deps_init): Use XCNEW.
6955 (deps_add_target): Use XRESIZEVEC.
6956 (deps_add_default_target): Cast return value of alloca.
6957 (deps_add_dep): Use XRESIZEVEC.
6958 (deps_add_vpath): Likewise. Use XNEWVEC too.
6959 (deps_restore): Likewise.
6960 * pch.c (save_idents): Use XNEW and XNEWVEC.
6961 (cpp_save_state): Use XNEW.
6962 (count_defs): Cast return value of htab_find.
6963 (write_defs): Likewise.
6964 (cpp_write_pch_deps): Use XNEWVEC.
6965 (collect_ht_nodes): Use XRESIZEVEC.
6966 (cpp_valid_state): Use XNEWVEC.
6967 (save_macros): Use XRESIZEVEC. Cast return value of xmemdup.
6968 * symtab.c (ht_create): Use XCNEW.
6969 (ht_lookup_with_hash): Cast return value of obstack_copy0.
6970 (ht_expand): Use XCNEWVEC.
6971 * system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus.
6972 (bool): Do not define if __cplusplus.
6973
1ed17cd5
ZW
69742005-05-12 Zack Weinberg <zack@codesourcery.com>
6975
6976 * directives.c (#sccs table entry): Mark IN_I, consistent with #ident.
6977 (do_sccs): Delete function definition, #define to do_ident.
6978 (do_ident): Don't hardwire directive name.
6979
5a8c20ce
RK
69802005-05-12 Ryota Kunisawa <kunisawa@access.co.jp>
6981
6982 PR bootstrap/21230
6983 * configure: Regenerate.
6984
473c5bc9
AP
69852005-04-27 Andris Pavenis <pavenis@latnet.lv>
6986
6987 * files.c: Include io.h for DJGPP to get prototype of setmode.
6988
c1fc5047
PB
69892005-04-19 Per Bothner <per@bothner.com>
6990
6991 PR preprocessor/20907
6992 * line-map.c (linemap_line_start): Fix bug when we need to increse
6993 column_bits but can re-use the current line_map.
6994
042630ad
KG
69952005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6996
6997 * system.h (fopen, fdopen, freopen): Define these to the unlocked
6998 libiberty functions.
6999
0d667716
KG
70002005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7001
7002 * configure.ac (libcpp_UNLOCKED_FUNCS): New.
7003 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
7004 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
7005 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
7006 _unlocked function.
7007 (fwrite_unlocked): Fix prototype.
1ed17cd5 7008
0d667716
KG
7009 * configure, config.in: Regenerate.
7010
cae064e7
JJ
70112005-04-05 Jakub Jelinek <jakub@redhat.com>
7012
7013 PR preprocessor/19475
7014 * macro.c (create_iso_definition): For < ISO C99, don't
7015 pedwarn if there is no whitespace between macro name and its
7016 replacement, but the replacement starts with a basic character
7017 set character.
7018
cbada204
AJ
70192005-03-28 Andreas Jaeger <aj@suse.de>
7020
7021 * lex.c (warn_about_normalization): Cast field width to int to
7022 avoid warning.
7023
f42eccdb
JM
70242005-03-19 Joseph S. Myers <joseph@codesourcery.com>
7025
7026 * configure.ac: Consistently use solaris2.1[0-9]* instead of
7027 solaris2.1[0-9].
7028 * configure: Regenerate.
7029
c79e602b
GK
70302005-03-15 Geoffrey Keating <geoffk@apple.com>
7031
7032 * charset.c (_cpp_valid_ucn): In identifiers, reject a partial
7033 UCN rather than printing an error.
7034
50668cf6
GK
70352005-03-14 Geoffrey Keating <geoffk@apple.com>
7036
6baba9bb
GK
7037 * lex.c (forms_identifier_p): Disable UCNs in C89 mode.
7038
70392005-03-14 Geoffrey Keating <geoffk@apple.com>
1ed17cd5 7040
50668cf6
GK
7041 * init.c (cpp_create_reader): Default warn_normalize to normalized_C.
7042 * charset.c: Update for new format of ucnid.h.
7043 (ucn_valid_in_identifier): Update for new format of ucnid.h.
7044 Add NST parameter, and update it; update callers.
7045 (cpp_valid_ucn): Add NST parameter, update callers. Replace abort
7046 with cpp_error.
7047 (convert_ucn): Pass normalize_state to cpp_valid_ucn.
7048 * internal.h (struct normalize_state): New.
7049 (INITIAL_NORMALIZE_STATE): New.
7050 (NORMALIZE_STATE_RESULT): New.
7051 (NORMALIZE_STATE_UPDATE_IDNUM): New.
7052 (_cpp_valid_ucn): New.
7053 * lex.c (warn_about_normalization): New.
7054 (forms_identifier_p): Add normalize_state parameter, update callers.
7055 (lex_identifier): Add normalize_state parameter, update callers. Keep
7056 the state current.
7057 (lex_number): Likewise.
7058 (_cpp_lex_direct): Pass normalize_state to subroutines. Check
7059 it with warn_about_normalization.
7060 * makeucnid.c: New.
7061 * ucnid.h: Replace.
7062 * ucnid.pl: Remove.
7063 * ucnid.tab: Make appropriate for input to makeucnid.c. Remove
7064 comments about obsolete version of C++.
7065 * include/cpplib.h (enum cpp_normalize_level): New.
7066 (struct cpp_options): Add warn_normalize field.
7067
47e20491
GK
70682005-03-11 Geoffrey Keating <geoffk@apple.com>
7069
7070 * directives.c (glue_header_name): Update call to cpp_spell_token.
7071 * internal.h (_cpp_interpret_identifier): New.
7072 * charset.c (_cpp_interpret_identifier): New.
7073 (_cpp_valid_ucn): Allow UCN version of '$'.
7074 * lex.c (lex_identifier): Add extra parameter to indicate if initial
7075 character was '$' or '\'. Support identifiers with UCNs.
7076 (forms_identifier_p): Allow UCNs.
7077 (_cpp_lex_direct): Pass extra parameter to lex_identifier.
7078 (utf8_to_ucn): New.
7079 (cpp_spell_token): Add FORSTRING parameter. Use it.
7080 (cpp_token_as_text): Update call to cpp_spell_token.
7081 (cpp_output_token): Write UCNs back out.
7082 (stringify_arg): Update call to cpp_spell_token.
7083 (paste_tokens): Likewise.
7084 (cpp_macro_definition): Likewise.
7085 * macro.c (stringify_arg): Likewise.
7086 (paste_tokens): Likewise.
7087 (cpp_macro_definition): Likewise.
7088 * include/cpplib.h: Add parameter to cpp_spell_token.
7089
73096711
JJ
70902005-03-04 Jakub Jelinek <jakub@redhat.com>
7091
7092 PR bootstrap/20282
7093 PR bootstrap/20305
7094 * macro.c (replace_args, cpp_get_token): Copy whole
7095 cpp_token_u instead of just cpp_string field from it.
7096
2203a881
DP
70972005-02-28 Devang Patel <dpatel@apple.com>
7098
7099 * directives.c (do_line): Save sysp early before line table is
7100 realloc'ed.
1ed17cd5 7101
c5ff069d
ZW
71022005-02-20 Zack Weinberg <zack@codesourcery.com>
7103
7104 PR 18785
7105 * charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
7106 (cpp_host_to_exec_charset): New function.
7107 * include/cpplib.h: Declare cpp_host_to_exec_charset.
7108
04c90eea
DP
71092005-02-19 Devang Patel <dpatel@apple.com>
7110
7111 * charset.c (_cpp_convert_input): Check '\r' before inserting
7112 '\n' at the end.
c5ff069d 7113
6da55c00
EC
71142005-02-15 Eric Christopher <echristo@redhat.com>
7115
7116 PR preprocessor/19077
7117 * macro.c (cpp_macro_definition): Move handling of whitespace
7118 to PREV_WHITE conditional. Remove overloading of len
7119 variable.
7120
31c3e631
KH
71212005-02-14 Kazu Hirata <kazu@cs.umass.edu>
7122
7123 * directives.c, files.c, init.c, internal.h, macro.c, pch.c,
7124 traditional.c: Update copyright.
7125
be0f1e54
PB
71262005-02-14 Paolo Bonzini <bonzini@gnu.org>
7127
7128 PR bootstrap/19818
7129 * configure.ac: Check for declaration of basename and getopt.
7130 * config.in: Regenerate.
7131 * configure: Regenerate.
7132 * internal.h (ustrcspn): New.
7133 * macro.c (create_iso_definition): Fix allocation of memory.
7134 (padding_token): Add cast to remove const-ness.
7135 * pch.c (cpp_read_state): Use ustrcspn.
7136
ecddfb39
MS
71372005-02-08 Mike Stump <mrs@apple.com>
7138
7139 * files.c (pchf_adder): Remove.
7140 (struct pchf_adder_info): Likewise.
7141 (_cpp_save_file_entries): Write out all files so that #import works.
7142
9fcdd891
JM
71432005-01-23 Joseph S. Myers <joseph@codesourcery.com>
7144
7145 * configure: Regenerate.
7146
ecfd72e7
TS
71472005-01-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
7148
7149 * include/cpplib.h (c_lang): Fix comment to say cpp_create_reader.
7150
6c25a4f7 7151 * include/cpplib.h: Also update copyright years.
c5ff069d 7152
942926ad
GK
71532005-01-03 Geoffrey Keating <geoffk@apple.com>
7154
7155 * files.c (_cpp_find_file): Add files found by search_path_exhausted
7156 to the list of all files.
7157
a2566ae9
GDR
71582005-01-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
7159
7160 * internal.h: Update references to Cpp lib filenames.
7161 * directives.c: Likewise.
7162 * init.c: Likewise.
7163 * macro.c: Likewise.
7164 * traditional.c: Likewise.
7165
1b449375
EB
71662004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr>
7167
7168 PR preprocessor/15167
7169 * files.c (destroy_cpp_file): New function.
7170 (should_stack_file): Make a new file if the
7171 compared file is still stacked.
7172
28303828
NN
71732004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
7174
c5ff069d 7175 PR preprocessor/17610
28303828
NN
7176 * directives.c (do_include_common): Error out if an empty filename
7177 is given for #include (or #include_next or #import).
7178
c812785a
RS
71792004-11-27 Roger Sayle <roger@eyesopen.com>
7180 Zack Weinberg <zack@codesourcery.com>
7181
7182 * internal.h: Replace all uses of uchar with unsigned char.
7183 * include/cpp-id-data.h: Likewise. Guard typedef of uchar
7184 with !IN_GCC, so uchar is only defined whilst building libcpp.
7185
f91eaa01
KC
71862004-11-24 Kelley Cook <kcook@gcc.gnu.org>
7187
7188 * aclocal.m4: Regenerate.
7189
f78ce0c2
RS
71902004-11-24 Roger Sayle <roger@eyesopen.com>
7191
7192 PR preprocessor/15824
7193 * configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h>
7194 directly, instead of the non-existant "system.h" and "ansidecl.h".
7195 * configure: Regenerate.
7196
b5b3e36a 71972004-11-23 Daniel Jacobowitz <dan@codesourcery.com>
c5ff069d 7198 Joseph Myers <joseph@codesourcery.com>
b5b3e36a
DJ
7199
7200 * internal.h (struct lexer_state): Add in_deferred_pragma.
7201 * directives.c (struct pragma_entry): Add allow_expansion.
7202 (insert_pragma_entry): Take allow_expansion flag.
7203 (register_pragma): Likewise.
7204 (cpp_register_pragma): Likewise.
7205 (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma.
7206 (do_pragma): Honor allow_expansion.
7207 (cpp_handle_deferred_pragma): Set in_deferred_pragma.
7208 * include/cpplib.h (cpp_register_pragma): Update prototype.
7209
a8e68029 72102004-11-18 Daniel Jacobowitz <dan@codesourcery.com>
c5ff069d 7211 Mark Mitchell <mark@codesourcery.com>
a8e68029
DJ
7212
7213 * configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set
7214 need_64bit_hwint=yes.
7215 * configure: Regenerate.
7216
50f47ee0
JM
72172004-11-09 Joseph S. Myers <joseph@codesourcery.com>
7218
7219 * Makefile.in ($(PACKAGE).pot): New rule. Depend on
7220 po/$(PACKAGE).pot.
7221 (po/$(PACKAGE).pot): Use ":" instead of "," in --keyword
7222 arguments. Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2.
7223 Remove local srcdir path from generated file.
7224
968e08d6 72252004-11-04 Zack Weinberg <zack@codesourcery.com>
c5ff069d 7226 Gerald Pfeifer <gerald@pfeifer.com>
968e08d6
ZW
7227
7228 * internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
7229 as well.
7230
3da3d587
ZW
72312004-10-27 Zack Weinberg <zack@codesourcery.com>
7232
7233 PR 18075
7234 * directives.c (do_pragma): Do not defer pragmas which are unknown.
7235 (cpp_handle_deferred_pragma): Add cast to silence warning.
7236
ac24fc25
JM
72372004-10-14 Joseph S. Myers <jsm@polyomino.org.uk>
7238
7239 * errors.c (_cpp_begin_message): Print "error: " for errors.
7240
7731405b
AJ
72412004-10-10 Andreas Jaeger <aj@suse.de>
7242
7243 * makedepend.c: Include mkdeps.h for prototype of deps_add_vpath.
7244 * Makefile.in (makedepend.o): Add dependency on mkdeps.h.
7245
646544e3
AP
72462004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
7247
7248 * pch.c (cpp_write_pch_state): Remove variable z as it is not
7249 used.
7250 (cpp_read_state): Remove unused variables, m, d and mac_count.
7251
67a74146
PB
72522004-09-29 Per Bothner <per@bothner.com>
7253
7254 * directives.c (cpp_handle_deferred_pragma): Save, clear and restore
7255 cb.line_change. Otherwise do_pragma will call the line_change
7256 call-back with a meaningless line number.
7257
018a4785
ZW
72582004-09-24 Zack Weinberg <zack@codesourcery.com>
7259
7260 * configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to
7261 programs cluster. Use ACX_PROG_CC_WARNING_OPTS,
7262 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS.
7263 * aclocal.m4, configure: Regenerate.
7264 * init.c: Include localedir.h.
7265 * Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables.
7266 (DEFS): Delete.
7267 (.c.o): Use $(ALL_CFLAGS).
7268 (localedir.h, localedir.hs): New rules.
7269 (clean): Use rm -rf to remove directories.
7270 (distclean): Also delete localedir.h and localedir.hs.
7271 (init.o): Update dependencies.
7272
88fa57d7
KC
72732004-09-22 Kelley Cook <kcook@gcc.gnu.org>
7274
7275 * Makefile.in (aclocal.m4): Update dependencies.
7276 * configure.ac (AC_CONFIG_MACRO_DIR): New.
7277 * aclocal.m4, configure: Regenerate.
7278
8f8e9aa5
ZW
72792004-09-17 Zack Weinberg <zack@codesourcery.com>
7280
a29f62d9
ZW
7281 * charset.c (_cpp_destroy_iconv, emit_numeric_escape)
7282 (_cpp_convert_input, _cpp_default_encoding): Add comments.
7283 Some other comments in this file also tweaked.
7284
8f8e9aa5
ZW
7285 * directives.c (do_pragma): Save current buffer position
7286 before lexing the pragma keywords; don't call
7287 _cpp_backup_tokens in the defer_pragmas case.
7288
a2981930
PB
72892004-09-15 Per Bothner <per@bothner.com>
7290
7291 * include/line-map.h (line_map_start): Add parameter names so
7292 preceding comment makes sense.
7293 (linemap_add): Remove from comment mention of non-existing parameter.
7294
21b11495
ZW
72952004-09-09 Matt Austern <austern@apple.com>
7296 Zack Weinberg <zack@codesourcery.com>
7297
7298 * include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
7299 prefixes throughout. Add entry for PRAGMA. Remove
7300 unnecessary "= 0" from EQ.
7301 (enum cpp_ttype): Adjust OP and TK definitions to restore
7302 prefixes, via token-paste.
7303 (CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
7304 Change from #defines to additional cpp_ttype enumerators.
7305 (struct cpp_options): Add defer_pragmas.
7306 (cpp_handle_deferred_pragma): Prototype new interface.
7307
7308 * internal.h (struct cpp_reader): Add directive_result.
7309 * directives.c (struct pragma_entry): Add is_internal field;
7310 give boolean fields type bool.
7311 (start_directive): Initialize pfile->directive_result.type.
7312 (_cpp_do__Pragma): Likewise.
7313 (run_directive): Do not crash if pfile->buffer->prev is NULL.
7314 (insert_pragma_entry): Add 'internal' argument; set new->is_internal
7315 from it.
7316 (register_pragma): New static function, bulk of former
7317 cpp_register_pragma here; add 'internal' argument, pass along
7318 to insert_pragma_entry.
7319 (cpp_register_pragma): Now a wrapper around register_pragma which
7320 always passes false for 'internal' argument.
7321 (_cpp_init_internal_pragmas): Call register_pragma directly, passing
7322 true for 'internal'.
7323 (do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
7324 an internal pragma, save text till the end of the line as a CPP_PRAGMA
7325 token instead of executing the pragma.
7326 (cpp_handle_deferred_pragma): New interface.
7327 * lex.c (token_spellings): Adjust OP and TK definitions to
7328 match changes to cpplib.h.
7329 (_cpp_lex_token): Check for a directive-result token and
7330 return it if present.
7331 (cpp_token_val_index): Handle CPP_PRAGMA.
7332 * macro.c (cpp_builtin_macro_text): Correct comment.
7333 (builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
7334
0fd9e8dd
SB
73352004-09-06 Serge Belyshev <belyshev@lubercy.com>
7336
7337 PR preprocessor/14699
7338 * symtab.c (ht_dump_statistics): Change type of sum_of_squares
7339 from size_t to double.
7340
39b8ce7f
AS
73412004-08-28 Andreas Schwab <schwab@suse.de>
7342 Andreas Jaeger <aj@suse.de>
7343
7344 * configure.ac: Set PACKAGE correctly.
7345 * configure: Regenerated.
7346
5d1f4b27
PB
73472004-08-25 Paolo Bonzini <bonzini@gnu.org>
7348
7349 * Makefile.in: Add back top_builddir.
7350
078e3ffe
PB
73512004-08-25 Paolo Bonzini <bonzini@gnu.org>
7352
7353 * configure.ac: Replace Automake macro invocations
7354 with manual Autoconf checks and substitutions.
7355 * configure: Regenerate.
7356 * aclocal.m4: Regenerate.
7357 * config.in: Regenerate.
7358 * Makefile.am: Removed.
7359 * Makefile.in: Heavy simplification and reorganization.
7360
b3f8d95d
MM
73612004-08-09 Mark Mitchell <mark@codesourcery.com>
7362
7363 * configure.ac (arm*-*-eabi*): New target.
7364 (arm*-*-symbianelf*): Likewise.
7365 * configure: Regenerated.
7366
72bb2c39
BI
73672004-07-24 Bernardo Innocenti <bernie@develer.com>
7368
7369 * internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove.
7370 * directives.c: Use XNEW-family macros from libiberty.
7371 * lex.c: Likewise.
7372 * macro.c: Likewise.
7373 * cpplib.h (cpp_deps_style): Export enum with name.
7374
21b11495 73752004-07-23 Matthias Klose <doko@debian.org>
72bb2c39 7376
21b11495 7377 * init.c (init_library): Use PACKAGE for the text domain.
85eac2a0 7378
a23ee064
AP
73792004-07-16 Andris Pavenis <pavenis@latnet.lv>
7380
7381 PR preprocessor/16366
7382 * internal.h (struct cpp_reader): New field dir_hash.
7383 * files.c (make_cpp_dir): Use dir_hash, not file_hash.
7384 (_cpp_init_files, _cpp_cleanup_files): Update for new field.
7385
a09d4744
NB
73862004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
7387
7388 PR preprocessor/16192
7389 PR preprocessor/15913
7390 PR preprocessor/15572
7391 * expr.c (_cpp_parse_expr): Handle remaining cases where an
7392 expression is missing.
7393 * init.c (post_options): Traditional cpp doesn't do // comments.
7394
f58f7def
PB
73952004-06-30 Per Bothner <per@bothner.com>
7396
7397 * include/line-map.h (fileline): Remove old typedef.
7398 * internal.h (struct cpp_reader): Use source_location typedef instead.
7399
e83d8d43
ZW
74002004-06-26 Zack Weinberg <zack@codesourcery.com>
7401
7402 Partially revert patch of 2004-06-05.
7403 * files.c (search_cache): Remove pfile argument. Don't check
7404 for file that would be found by "" or <> search here...
7405 (_cpp_find_file): ...do it here, before calling find_file_in_dir.
7406 Do not apply directory-of-current-file correction to files
7407 found by this check. Rearrange code slightly.
7408
c0d578e6
GK
74092004-06-21 Geoffrey Keating <geoffk@apple.com>
7410
7411 * files.c (should_stack_file): Correct swapped parameters to call
7412 to cb.read_pch.
7413 * pch.c (cpp_valid_state): Handle -fpreprocessed.
7414
159d5224
PB
74152004-06-15 Paolo Bonzini <bonzini@gnu.org>
7416
7417 * Makefile.in: Regenerate with automake 1.8.5.
7418 * aclocal.m4: Likewise.
7419 * configure: Regenerate.
7420
2fac9c01
ZW
74212004-06-11 Zack Weinberg <zack@codesourcery.com>
7422
7423 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
7424 * configure, config.in: Regenerate.
7425 * system.h: Unconditionally define bool as unsigned char,
7426 BOOL_BITFIELD as unsigned int.
7427 * .cvsignore: New file.
7428
d8044160
GK
74292004-06-09 Geoffrey Keating <geoffk@apple.com>
7430
7431 * traditional.c (push_replacement_text): Set macro->traditional.
7432 (save_replacement_text): Likewise.
7433 * pch.c (cpp_write_pch_state): Don't write list of defined macros.
7434 (struct save_macro_item): Delete.
7435 (struct save_macro_data): Use a character array not the previous
7436 structured format.
7437 (save_macros): Save macro as text not as internal structures.
7438 (cpp_prepare_state): Update for changes to save_macro_data.
7439 (cpp_read_state): Don't read macros defined in PCH. Restore
2cf22451 7440 -D macros as text.
d8044160
GK
7441 * macro.c (create_iso_definition): Honour alloc_subobject.
7442 Clear traditional flag.
7443 (_cpp_create_definition): Honour alloc_subobject.
7444 * lex.c (cpp_token_val_index): New.
7445 * internal.h: Include cpp-id-data.h.
7446 (uchar): Move definition to cpp-id-data.h.
7447 (U): Likewise.
7448 (cpp_macro): Likewise.
7449 * directives.c (struct answer): Move to cpp-id-data.h.
7450 (do_assert): Honour alloc_subobject.
2cf22451
ZW
7451
7452 * include/symtab.h (struct ht): Add field 'alloc_subobject'.
7453 * include/cpplib.h (struct cpp_string): Add GTY marker.
7454 (enum cpp_token_fld_kind): New.
7455 (struct cpp_token): Add GTY markers.
7456 (cpp_token_val_index): Prototype.
7457 (CPP_HASHNODE_VALUE_IDX): New.
7458 (struct cpp_hashnode): Don't skip fields of 'value' when marking.
7459 * include/cpp-id-data.h: New file.
d8044160 7460
0ca8e815
PB
74612004-06-09 Paolo Bonzini <bonzini@gnu.org>
7462
7463 * Makefile.am (all-local): New.
7464 * Makefile.in: Regenerate.
7465
b51fa00f
RS
74662004-06-06 Roger Sayle <roger@eyesopen.com>
7467
7468 * Makefile.am (LIBICONV): Declare.
7469 (makedepend_LDADD): Use LIBICONV.
7470 * Makefile.in: Regenerate.
7471
5e2f3f39
AP
74722004-06-05 Andrew Pinski <pinskia@physics.uc.edu>
7473
7474 * Makefile.am (LIBINTL): Declare
7475 (makedepend_LDADD): Use LIBINTL.
7476 * Makefile.in: Regenerate.
7477
c6e83800
ZW
74782004-06-05 Zack Weinberg <zack@codesourcery.com>
7479
7480 * Makefile.am: Add makedepend.
7481 * Makefile.in, aclocal.m4: Regenerate.
7482 * charset.c: Insert a space to avoid a warning.
7483 * directives.c: Include mkdeps.h.
7484 (_cpp_handle_directive): Reenable macro expander if appropriate.
7485 (undefine_macros): Inline body of _cpp_free_definition for speed.
7486 Do not call undef callback or _cpp_warn_if_unused_macro.
7487 (cpp_get_deps): New interface.
7488 * files.c (search_cache): Add pfile argument. Check for file
7489 that would be found by "" or <> search here...
7490 (_cpp_find_file): ...not here. Correct recorded start_dir of
7491 files found by directory-of-current-file search that would be
7492 found by "" or <> search.
7493 * init.c (cpp_add_dependency_target): Delete.
7494 * internal.h (struct lexer_state): Add discarding_output flag.
7495 * lex.c (lex_identifier): Compute hash function while scanning.
7496 * macro.c (cpp_scan_nooutput): Disable macro expansion outside
7497 directives.
7498 * makedepend.c: New file.
7499 * mkdeps.c (struct deps): Add vpath vector.
7500 (apply_vpath, deps_add_vpath): New function.
7501 (deps_free): Free vpath vector.
7502 (deps_add_dep, deps_add_target): Use apply_vpath.
7503 * symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH.
7504 (ht_lookup_with_hash): New function.
7505 * cpplib.h, mkdeps.h: Update prototypes.
7506 * symtab.h: Update prototypes.
7507 (HT_HASHSTEP, HT_FINISH): New macros.
7508
b453c95f
GK
75092004-05-29 Geoffrey Keating <geoffk@apple.com>
7510
7511 * symtab.c (ht_create): Set entries_owned.
7512 (ht_destroy): Honour entries_owned.
7513 (ht_expand): Likewise.
7514 (ht_load): New.
2cf22451
ZW
7515 * include/symtab.h (struct ht): New field 'entries_owned'
7516 (ht_load): New prototype.
b453c95f 7517
963e23c5
PB
75182004-05-26 Paolo Bonzini <bonzini@gnu.org>
7519
7520 PR bootstrap/15651
7521 * configure.ac: Fix m4 quoting when picking
7522 the size of HOST_WIDE_INT.
7523 * configure: Regenerate.
7524
0429bc77
PB
75252004-05-25 Paolo Bonzini <bonzini@gnu.org>
7526
7527 * Makefile.am: the correct directory for
7528 gettext include files is given by @INCINTL@.
7529 * Makefile.in: Regenerate.
7530
c86dd7db
PB
75312004-05-24 Paolo Bonzini <bonzini@gnu.org>
7532
7533 * system.h [!ENABLE_NLS]: dgettext takes two
7534 parameters.
7535
4f4e53dd
PB
75362004-05-23 Paolo Bonzini <bonzini@gnu.org>
7537
7538 Moved libcpp from the gcc subdirectory to the toplevel.
7539 * Makefile.am: New file.
7540 * Makefile.in: Regenerate.
7541 * configure.ac: New file.
7542 * configure: Regenerate.
7543 * config.in: Regenerate.
7544 * charset.c: Moved from gcc/cppcharset.c. Add note about
7545 brokenness of input charset detection. Adjust for change
7546 in name of cppucnid.h.
7547 * errors.c: Moved from gcc/cpperror.c. Do not include intl.h.
7548 * expr.c: Moved from gcc/cppexp.c.
7549 * files.c: Moved from gcc/cppfiles.c. Do not include intl.h.
7550 Remove #define of O_BINARY, it is in system.h.
7551 * identifiers.c: Moved from gcc/cpphash.c.
7552 * internal.h: Moved from gcc/cpphash.h. Change header
7553 guard name. All other files adjusted to match name change.
7554 * init.c: Moved from gcc/cppinit.c.
7555 (init_library) [ENABLE_NLS]: Call bindtextdomain.
7556 * lex.c: Moved from gcc/cpplex.c.
7557 * directives.c: Moved from gcc/cpplib.c.
7558 * macro.c: Moved from gcc/cppmacro.c.
7559 * pch.c: Moved from gcc/cpppch.c. Do not include intl.h.
7560 * traditional.c: Moved from gcc/cpptrad.c.
7561 * ucnid.h: Moved from gcc/cppucnid.h. Change header
7562 guard name.
7563 * ucnid.pl: Moved from gcc/cppucnid.pl.
7564 * ucnid.tab: Moved from gcc/cppucnid.tab. Change header
7565 guard name.
7566 * symtab.c: Moved from gcc/hashtable.c.
7567 * line-map.c: Moved from gcc. Do not include intl.h.
7568 * mkdeps.c: Moved from gcc.
7569 * system.h: New file.
2cf22451
ZW
7570 * include/cpplib.h: Moved from gcc. Change header guard name.
7571 * include/line-map.h: Moved from gcc. Change header guard name.
7572 * include/mkdeps.h: Moved from gcc. Change header guard name.
7573 * include/symtab.h: Moved from gcc/hashtable.h. Change header
7574 guard name.
818ab71a 7575\f
68127a8e 7576Copyright (C) 2004-2023 Free Software Foundation, Inc.
818ab71a
JJ
7577
7578Copying and distribution of this file, with or without modification,
7579are permitted in any medium without royalty provided the copyright
7580notice and this notice are preserved.