]> git.ipfire.org Git - thirdparty/gcc.git/blame - libcpp/ChangeLog
gcc/
[thirdparty/gcc.git] / libcpp / ChangeLog
CommitLineData
7ecc3eb9
DS
12014-01-23 Dodji Seketeli <dodji@redhat.com>
2
3 PR PR preprocessor/58580
4 * include/line-map.h (linemap_get_file_highest_location): Declare
5 new function.
6 * line-map.c (linemap_get_file_highest_location): Define it.
7
35c3d610
RS
82014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
9
10 Update copyright years
11
3a4efce7
JM
122013-12-09 Joseph Myers <joseph@codesourcery.com>
13
14 PR preprocessor/55715
15 * expr.c (num_binary_op): Implement subtraction directly rather
16 than with negation and falling through into addition case.
17
aadce585
BS
182013-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19
20 * lex.c (search_line_fast): Correct for little endian.
21
d3f4ff8b
JM
222013-11-15 Joseph Myers <joseph@codesourcery.com>
23
24 * ucnid.tab: Add C11 and C11NOSTART data.
25 * makeucnid.c (digit): Rename enum value to N99.
26 (C11, N11, all_languages): New enum values.
27 (NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
28 (flags, decomp, combining_value): Use NUM_CODE_POINTS as array
29 size.
30 (decomp): Use unsigned int as element type.
31 (all_decomp): New array.
32 (read_ucnid): Handle C11 and C11NOSTART. Use MAX_CODE_POINT.
33 (read_table): Use MAX_CODE_POINT. Store all decompositions in
34 all_decomp.
35 (read_derived): Use MAX_CODE_POINT.
36 (write_table): Use NUM_CODE_POINTS. Print N99, C11 and N11
37 flags. Print whole array variable declaration rather than just
38 array contents.
39 (char_id_valid, write_context_switch): New functions.
40 (main): Call write_context_switch.
41 * ucnid.h: Regenerate.
42 * include/cpplib.h (struct cpp_options): Add c11_identifiers.
43 * init.c (struct lang_flags): Add c11_identifiers.
44 (cpp_set_lang): Set c11_identifiers option from selected language.
45 * internal.h (struct normalize_state): Document "previous" as
46 previous starter character.
47 (NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
48 * charset.c (DIG): Rename enum value to N99.
49 (C11, N11): New enum values.
50 (struct ucnrange): Give name to struct. Use short for flags and
51 unsigned int for end of range. Include ucnid.h for whole variable
52 declaration.
53 (ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
54 Allow for C11 in determining valid characters and valid start
55 characters. Use check_nfc for non-Hangul context-dependent
56 checks. Only store starter characters in nst->previous.
57 (_cpp_valid_ucn): Pass new argument to
58 NORMALIZE_STATE_UPDATE_IDNUM.
59 * lex.c (lex_identifier): Pass new argument to
60 NORMALIZE_STATE_UPDATE_IDNUM. Call NORMALIZE_STATE_UPDATE_IDNUM
61 after initial non-UCN part of identifier.
62 (lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.
63
54848ff8
JM
642013-11-15 Joseph Myers <joseph@codesourcery.com>
65
66 * ucnid.tab: Mark C99 digits as [C99DIG].
67 * makeucnid.c (read_ucnid): Handle [C99DIG].
68 (read_table): Don't check for digit characters.
69 * ucnid.h: Regenerate.
70
5157b91e
TB
712013-11-06 Tobias Burnus <burnus@net-b.de>
72
73 * macro.c (_cpp_builtin_macro_text): Correct
74 wording of two warnings.
75
e8ff5196
TB
762013-11-05 Tobias Burnus <burnus@net-b.de>
77
78 * include/cpplib.h (CPP_W_DATE_TIME): Added.
79 (cpp_options): Add warn_date_time.
80 * init.c (cpp_create_reader): Init it.
81 * macro.c (_cpp_builtin_macro_text): Warn when
82 __DATE__/__TIME__/__TIMESTAMP__ is used.
83
7057e645
ESR
842013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
85
e8ff5196 86 Implement C++14 digit separators.
7057e645
ESR
87 * include/cpplib.h (cpp_options): Add digit_separators flag.
88 * internal.h (DIGIT_SEP(c)): New macro.
89 * expr.c (cpp_classify_number): Check improper placement of digit sep;
90 (cpp_interpret_integer): Skip over digit separators.
91 * init.c (lang_flags): Add digit_separators flag; (lang_defaults): Add
92 digit separator flags per language; (cpp_set_lang): Set
93 digit_separators
94 * lex.c (lex_number): Add digits separator to allowable characters for
95 C++14.
96
459260ec
DM
972013-10-15 David Malcolm <dmalcolm@redhat.com>
98
99 * Makefile.in (PICFLAG): New.
100 (ALL_CFLAGS): Add PICFLAG.
101 (ALL_CXXFLAGS): Likewise.
102 * configure.ac: Add --enable-host-shared, setting up new
103 PICFLAG variable.
104 * configure: Regenerate.
105
fd6eea0c
RE
1062013-08-07 Richard Earnshaw <rearnsha@arm.com>
107
108 * configure.ac: Set need_64bit_hwint for all arm targets.
109 * configure: Regenerated.
110
8cf88735
JJ
1112013-07-20 Jakub Jelinek <jakub@redhat.com>
112
113 PR preprocessor/57620
114 * lex.c (lex_raw_string): Undo phase1 and phase2 transformations
115 between R" and final " rather than only in between R"del( and )del".
116
87e356ba
JJ
1172013-07-10 Jakub Jelinek <jakub@redhat.com>
118
d5e48350
JJ
119 PR preprocessor/57824
120 * lex.c (lex_raw_string): Allow reading new-lines if
121 in_deferred_pragma or if parsing_args and there is still
122 data in the current buffer.
123
c26302d5
JJ
124 * include/cpplib.h (cpp_token_val_index): Change parameter type to
125 const cpp_token *.
126 * lex.c (cpp_token_val_index): Likewise.
127
87e356ba
JJ
128 PR preprocessor/57757
129 * lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING
130 or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that
131 starts if a-zA-Z_.
132
c865f923
ESR
1332013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net>
134
135 * lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
136 as concatenated literal and macro to just the patterns found in
137 inttypes.h; (is_macro()): New.
138
39953c79
DC
1392013-06-24 Dehao Chen <dehao@google.com>
140
141 * files.c (_cpp_stack_include): Fix the highest_location when header
142 file is guarded by #ifndef and is included twice.
143
01187df0
JJ
1442013-04-28 Jakub Jelinek <jakub@redhat.com>
145
146 N3472 binary constants
147 * include/cpplib.h (struct cpp_options): Fix a typo in user_literals
148 field comment. Add binary_constants field.
149 * init.c (struct lang_flags): Add binary_constants field.
150 (lang_defaults): Add bin_cst column to the table.
151 (cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
152 * expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
153 in diagnostics. Accept binary constants if
154 CPP_OPTION (pfile, binary_constants) even when pedantic. Adjust
155 pedwarn message.
156
61949153
PC
1572013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
158
159 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
160 * init.c (lang_defaults): Add defaults for the latter.
161 (cpp_init_builtins): Define __cplusplus as 201300L for the latter.
162 * lex.c (_cpp_lex_direct): Update.
163
994a4cc0
SH
1642013-04-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
165
166 PR target/56771
167 * configure.ac: Require 64-bit int for arm*-*-rtems*.
168 * configure: Regenerate.
169
28937f11
JJ
1702013-03-06 Jakub Jelinek <jakub@redhat.com>
171
172 PR middle-end/56461
173 * internal.h (struct cpp_buffer): Add to_free field.
174 (_cpp_pop_file_buffer): Add third argument.
175 * files.c (_cpp_stack_file): Set buffer->to_free.
176 (_cpp_pop_file_buffer): Add to_free argument. Free to_free
177 if non-NULL, and if equal to file->buffer_start, also clear
178 file->buffer{,_start,_valid}.
179 * directives.c (_cpp_pop_buffer): Pass buffer->to_free
180 to _cpp_pop_file_buffer.
181
3b8af25b
JJ
1822013-03-01 Jakub Jelinek <jakub@redhat.com>
183
184 PR middle-end/56461
185 * files.c (_cpp_save_file_entries): Free result at the end.
186 * pch.c (cpp_string_free): New function.
187 (cpp_save_state): Use it in htab_create call.
188 (cpp_write_pch_deps): Free ss->defs. Destroy ss->definedhash.
189
1a80db97
JJ
1902013-02-28 Jakub Jelinek <jakub@redhat.com>
191
15fd8332
JJ
192 * files.c (_cpp_find_file): If returning early, before storing
193 something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
194 on it. Access *hash_slot using void * type rather than
195 struct file_hash_entry * to avoid aliasing issues.
196
1a80db97
JJ
197 * configure.ac: Don't define ENABLE_CHECKING whenever
198 --enable-checking is seen, instead use similar --enable-checking=yes
199 vs. --enable-checking=release default as gcc/ subdir has and
200 define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
201 Define ENABLE_VALGRIND_CHECKING if requested.
202 * lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
203 struct first in the allocated buffer and result->base after it.
204 (_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
205 instead of buff->base.
206 * config.in: Regenerated.
207 * configure: Regenerated.
208
561f7fc7
ESR
2092013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net>
210
211 PR c++/55582
61949153 212 * lex.c (lex_raw_string): Allow string literal with suffix
561f7fc7
ESR
213 beginning with 's' to be parsed as a C++11 user-defined literal.
214
500f3ed9
RS
2152013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
216
217 Update copyright years.
218
1582c677
PC
2192013-01-04 Paolo Carlini <paolo.carlini@oracle.com>
220
221 PR c++/54526 (again)
222 * lex.c (_cpp_lex_direct): In C++11 mode, implement 2.5 p3, bullet 2.
223
8ac16127
MG
2242013-01-03 Marc Glisse <marc.glisse@inria.fr>
225
226 PR bootstrap/50177
227 * line-map.c (get_combined_adhoc_loc): Cast from extern "C" type.
228 (new_linemap): Likewise.
229 (linemap_enter_macro): Likewise.
230
f41e5bd1
JJ
2312012-12-03 Jakub Jelinek <jakub@redhat.com>
232
233 PR bootstrap/55380
234 PR other/54691
235 * files.c (read_file_guts): Allocate extra 16 bytes instead of
236 1 byte at the end of buf. Pass size + 16 instead of size
237 to _cpp_convert_input.
238 * charset.c (_cpp_convert_input): Reallocate if there aren't
239 at least 16 bytes beyond to.len in the buffer. Clear 16 bytes
240 at to.text + to.len.
241
31962032
SE
2422012-11-21 Steve Ellcey <sellcey@mips.com>
243
244 PR pch/55399
245 * files.c (pch_open_file): Fix check for implicit_preinclude.
246
5dc99c46
SB
2472012-11-16 Simon Baldwin <simonb@google.com>
248
249 * include/cpplib.h (struct cpp_options): Add canonical_system_headers.
250 * files.c (find_file_in_dir): Call maybe_shorter_path() only if
251 canonical_system_headers is set.
252 * init.c (cpp_create_reader): Initialize canonical_system_headers.
253 * configure.ac: Add new --enable-canonical-system-headers.
254 * configure: Regenerate.
255 * config.in: Regenerate.
256
a4a0016d
ESR
2572012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net>
258
259 PR c++/54413
260 * include/cpplib.h (cpp_interpret_float_suffix): Add cpp_reader* arg.
261 (cpp_interpret_int_suffix): Add cpp_reader* arg.
262 * init.c (cpp_create_reader): Iitialize new flags.
263 * expr.c (interpret_float_suffix): Use new flags.
264 (cpp_interpret_float_suffix): Add cpp_reader* arg.
265 (interpret_int_suffix): Use new flags.
266 (cpp_interpret_int_suffix): Add cpp_reader* arg.
267 (cpp_classify_number): Adjust calls to interpret_x_suffix.
268
04ce690f
IB
2692012-10-23 Ian Bolton <ian.bolton@arm.com>
270 Jim MacArthur <jim.macarthur@arm.com>
271 Marcus Shawcroft <marcus.shawcroft@arm.com>
272 Nigel Stephens <nigel.stephens@arm.com>
273 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
274 Richard Earnshaw <rearnsha@arm.com>
275 Sofiane Naci <sofiane.naci@arm.com>
276 Stephen Thomas <stephen.thomas@arm.com>
277 Tejas Belagod <tejas.belagod@arm.com>
278 Yufeng Zhang <yufeng.zhang@arm.com>
279
280 * configure.ac: Enable AArch64.
281 * configure: Regenerate.
282
1efcb8c6
JM
2832012-10-23 Joseph Myers <joseph@codesourcery.com>
284
285 * files.c (struct _cpp_file): Add implicit_preinclude.
286 (pch_open_file): Allow a previously opened implicitly included
287 file.
288 (_cpp_find_file): Add implicit_preinclude argument. Free file and
289 do not call open_file_failed if implicit_preinclude. Store
290 implicit_preinclude value.
291 (_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date):
292 Update calls to _cpp_find_file.
293 (_cpp_stack_include): Handle IT_DEFAULT.
294 (cpp_push_default_include): New.
295 * include/cpplib.h (cpp_push_default_include): Declare.
296 * init.c (cpp_read_main_file): Update call to _cpp_find_file.
297 * internal.h (enum include_type): Add IT_DEFAULT.
298 (_cpp_find_file): Update prototype.
299
55e7f907
TB
3002012-10-15 Tobias Burnus <burnus@net-b.de>
301
302 * files.c (read_file_guts, _cpp_save_file_entries): Free memory
303 before returning.
304 * lex.c (warn_about_normalization): Ditto.
305 * mkdeps.c (deps_save): Ditto.
306 * pch.c (cpp_valid_state): Ditto.
307
f591bd8f
FW
3082012-10-04 Florian Weimer <fweimer@redhat.com>
309
310 * directives.c (do_pragma_warning_or_error): New.
311 (do_pragma_warning): New.
312 (do_pragma_error): New.
313 (_cpp_init_internal_pragmas): Register new pragmas.
314
ec6e0399
DC
3152012-09-25 Dehao Chen <dehao@google.com>
316
317 PR middle-end/54704
318 * line-map.c (location_adhoc_data_hash): Fix the hash function.
319
52187008
DC
3202012-09-25 Dehao Chen <dehao@google.com>
321
322 PR middle-end/54645
323 * include/line-map.h (location_adhoc_data): Move location_adhoc_data
324 into GC.
325 (location_adhoc_data_map): Likewise.
326 (line_maps): Likewise.
327 (rebuild_location_adhoc_htab): New Function.
328 * line-map.c (+rebuild_location_adhoc_htab): new Funcion.
329 (get_combined_adhoc_loc): Move location_adhoc_data into GC.
330 (location_adhoc_data_fini): Likewise.
331 (linemap_init): Likewise.
332 (location_adhoc_data_init): Remove Function.
333
5368224f
DC
3342012-09-19 Dehao Chen <dehao@google.com>
335
336 * include/line-map.h (MAX_SOURCE_LOCATION): New value.
337 (location_adhoc_data_fini): New.
338 (get_combined_adhoc_loc): New.
339 (get_data_from_adhoc_loc): New.
340 (get_location_from_adhoc_loc): New.
341 (location_adhoc_data_map): New.
342 (COMBINE_LOCATION_DATA): New.
343 (IS_ADHOC_LOC): New.
344 (expanded_location): New field.
345 (line_maps): New field.
346 * line-map.c (location_adhoc_data): New.
347 (location_adhoc_data_hash): New.
348 (location_adhoc_data_eq): New.
349 (location_adhoc_data_update): New.
350 (get_combined_adhoc_loc): New.
351 (get_data_from_adhoc_loc): New.
352 (get_location_from_adhoc_loc): New.
353 (location_adhoc_data_init): New.
354 (location_adhoc_data_fini): New.
355 (linemap_init): Initialize location_adhoc_data.
356 (linemap_lookup): Change to use new location.
357 (linemap_ordinary_map_lookup): Likewise.
358 (linemap_macro_map_lookup): Likewise.
359 (linemap_macro_map_loc_to_def_point): Likewise.
360 (linemap_macro_map_loc_unwind_toward_spel): Likewise.
361 (linemap_get_expansion_line): Likewise.
362 (linemap_get_expansion_filename): Likewise.
363 (linemap_location_in_system_header_p): Likewise.
364 (linemap_location_from_macro_expansion_p): Likewise.
365 (linemap_macro_loc_to_spelling_point): Likewise.
366 (linemap_macro_loc_to_def_point): Likewise.
367 (linemap_macro_loc_to_exp_point): Likewise.
368 (linemap_resolve_location): Likewise.
369 (linemap_unwind_toward_expansion): Likewise.
370 (linemap_unwind_to_first_non_reserved_loc): Likewise.
371 (linemap_expand_location): Likewise.
372 (linemap_dump_location): Likewise.
373 (linemap_line_start): Likewise.
374
f3d25c65
DS
3752012-05-25 Dodji Seketeli <dodji@redhat.com>
376
377 PR preprocessor/53469
378 * directives.c (do_pragma): Use the virtual location for the
379 pragma token, instead of its spelling location.
380
0823efed
DN
3812012-08-14 Diego Novillo <dnovillo@google.com>
382
383 Merge from cxx-conversion branch. Configury.
384
385 * Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
386 * configure.ac: Likewise.
387 * configure: Regenerate.
388
3892012-08-14 Lawrence Crowl <crowl@google.com>
390
391 Merge from cxx-conversion branch. New C++ hash table.
392
393 * include/symtab.h (typedef struct ht hash_table): Change the typedef
394 name to cpp_hash_table. Update all users of the typedef.
395
c0fd3497
LB
3962012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
397
398 * include/line-map.h (line_map_macro): Use the "atomic" GTY option
399 for the macro_locations field.
400
d35d1c0f
UB
4012011-06-19 Uros Bizjak <ubizjak@gmail.com>
402
403 * lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
404 __builtin_ia32_pcmpestri128 instead of asm.
405
d86d2119
DA
4062012-06-04 Dimitrios Apostolou <jimis@gmx.net>
407
408 * line-map.c (linemap_enter_macro): Don't zero max_column_hint in
409 every macro. This improves performance by reducing the number of
410 reallocations when track-macro-expansion is on.
411
7ca643e1
DS
4122012-06-04 Dodji Seketeli <dodji@redhat.com>
413
414 PR preprocessor/53463
415 * line-map.c (linemap_location_in_system_header_p): For built-in
416 macro tokens, check the first expansion point location that is not
417 for a token coming from a built-in macro.
418
7d9641cc
JM
4192012-05-29 Joseph Myers <joseph@codesourcery.com>
420
421 * directives.c: Fix typos.
422 * include/line-map.h: Fix typos.
423 * line-map.c: Fix typos.
424 * macro.c: Fix typos.
425
53a103d3
DS
4262012-05-25 Dodji Seketeli <dodji@redhat.com>
427
428 PR bootstrap/53459
429 * lex.c (search_line_fast): Avoid unused local typedefs to simulate
430 a static assertion.
431
828a7f76
DS
4322012-05-29 Dodji Seketeli <dodji@redhat.com>
433
434 PR preprocessor/53229
435 * internal.h (cpp_reader::set_invocation_location): Remove.
436 (cpp_reader::about_to_expand_macro_p): New member flag.
437 * directives.c (do_pragma): Remove Kludge as
438 pfile->set_invocation_location is no more.
439 * macro.c (cpp_get_token_1): Do away with the use of
440 cpp_reader::set_invocation_location. Just collect the macro
441 expansion point when we are about to expand the top-most macro.
442 Do not override cpp_reader::about_to_expand_macro_p.
443 This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
444 properly handle locations of expansion points.
445 (cpp_get_token_with_location): Adjust, as
446 cpp_reader::set_invocation_location is no more.
447 (paste_tokens): Take a virtual location parameter for
448 the LHS of the pasting operator. Use it in diagnostics. Update
449 comments.
450 (paste_all_tokens): Tighten the assert. Propagate the location of
451 the expansion point when no virtual locations are available.
452 Pass the virtual location to paste_tokens.
453 (in_macro_expansion_p): New static function.
454 (enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
455 flag until we really start expanding the macro.
456
0b2c4be5
DS
4572012-05-16 Dodji Seketeli <dodji@redhat.com>
458
459 PR preprocessor/7263
460 * include/cpplib.h (cpp_classify_number): Take a location
461 parameter.
462 * expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic
463 macros that take a location parameter.
464 (cpp_classify_number): Take a (virtual) location parameter. Use
465 it for diagnostics. Adjust comments.
466 (eval_token): Take a location parameter. Pass it to
467 cpp_classify_number and to diagnostic routines.
468 (_cpp_parse_expr): Use virtual locations of tokens when parsing
469 expressions. Pass a virtual location to eval_token and to
470 diagnostic routines.
471
638d2065
TG
4722012-05-10 Tristan Gingold <gingold@adacore.com>
473
474 * expr.c (interpret_float_suffix): Add a guard.
475
3ad64f53
DS
4762012-05-02 Dodji Seketeli <dodji@redhat.com>
477
478 Properly initialize cpp_context in destringize_and_run
479 * directives.c (destringize_and_run): Properly initialize the new
480 context.
481 * macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
482 the initial base context, which has the same life time as the
483 current instance of cpp_file.
484
b193dfa8
MLI
4852012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
486 Dodji Seketeli <dodji@seketeli.org>
487
3efc2959 488 PR c++/52974
b193dfa8
MLI
489 * libcpp/files.c (maybe_shorter_path): New.
490 (find_file_in_dir): Use it.
491
4e65a470
DS
4922012-04-30 Dodji Seketeli <dodji@redhat.com>
493
51fce2d3
DS
494 Switch -ftrack-macro-expansion=2 on by default.
495 * init.c (cpp_create_reader): Switch -ftrack-macro-expansion=2 on
496 by default. Add comments.
497
c4ca1a09
DS
498 Strip "<built-in>" loc from displayed expansion context
499 * include/line-map.h (linemap_unwind_toward_expansion): Fix typo
500 in comment.
501 (linemap_unwind_to_first_non_reserved_loc): Declare new function.
502 * line-map.c (linemap_unwind_to_first_non_reserved_loc): Define
503 new function.
504
3600218c
DS
505 Fix expansion point loc for macro-like tokens
506 * macro.c (macro_of_context): New static function.
507 (_cpp_push_token_context, push_extended_tokens_context): If the
508 macro argument is NULL, it means we are continuing the expansion
509 of the current macro, if any. Update comments.
510 (_cpp_pop_context): Re-enable expansion of the macro only when we
511 are really out of the context of the current expansion.
512
0ff2b8a0
DS
513 Fix token pasting with -ftrack-macro-expansion
514 * macro.c (paste_all_tokens): Put the token resulting from pasting
515 into an extended token context with -ftrack-macro-location is in
516 effect.
517
4e65a470
DS
518 Fix cpp_sys_macro_p with -ftrack-macro-expansion
519 * macro.c (cpp_sys_macro_p): Support -ftrack-macro-expansion.
520
112448b4
DS
5212012-04-29 Dodji Seketeli <dodji@redhat.com>
522
523 * lex.c (lex_raw_string): Change C++ style comments into C style
524 comments.
525 (lex_string): Likewise.
526
7f5f5f98
OW
5272012-04-27 Ollie Wild <aaw@google.com>
528
529 * include/cpplib.h (struct cpp_options): Add new field,
530 warn_literal_suffix.
531 (CPP_W_LITERAL_SUFFIX): New enum.
532 * init.c (cpp_create_reader): Default initialization of
533 warn_literal_suffix.
534 * lex.c (lex_raw_string): Treat user-defined literals which don't
535 begin with '_' as separate tokens and produce a warning.
536 (lex_string): Ditto.
537
1d72e96f
MLI
5382012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
539
540 * line-map.c (linemap_resolve_location): Synchronize comments with
541 those in line-map.h.
542 * include/line-map.h (linemap_resolve_location): Fix spelling in
543 comment.
544
e75b54a2
RE
5452012-03-22 Richard Earnshaw <rearnsha@arm.com>
546
547 * lex.c (search_line_fast): Provide Neon-optimized version for ARM.
548
7888f266
RO
5492012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
550
551 * lex.c: Remove Solaris 8 reference.
552
dd552284
WL
5532012-02-14 Walter Lee <walt@tilera.com>
554
555 * configure.ac: Require 64-bit hwint for tilegx and tilepro.
556 * configure: Regenerate.
557
2c5cbc31
RG
5582012-01-09 Richard Guenther <rguenther@suse.de>
559
560 * macro.c (_cpp_builtin_macro_text): Remove unused variable map.
561
b492b686
GF
5622012-01-09 Gary Funck <gary@intrepid.com>
563
564 PR preprocessor/33919
565 * files.c (_cpp_get_file_name): New. Implement file name
566 access function.
567 * internal.h (_cpp_get_file_name): New prototype.
568 * macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
569 to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
570
75291c57
OH
5712012-01-03 Olivier Hainque <hainque@adacore.com>
572
573 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
574
48b0b196
JM
5752011-12-20 Joseph Myers <joseph@codesourcery.com>
576
577 * include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
578 (CLK_STDC1X): Change to CLK_STDC11.
579 * init.c (lang_defaults): Update comments.
580 (cpp_init_builtins): Update language tests. Use 201112L for C11
581 __STDC_VERSION__.
582
4a5e00ca
AS
5832011-12-20 Andreas Schwab <schwab@linux-m68k.org>
584
585 * configure: Regenerate.
586
095af58f
AS
5872011-12-19 Andreas Schwab <schwab@linux-m68k.org>
588
589 * configure: Regenerate.
590
b0c084b7
JJ
5912011-12-07 Jakub Jelinek <jakub@redhat.com>
592
593 PR bootstrap/50237
594 * internal.h (_cpp_init_lexer): New prototype.
595 * init.c (init_library): Call it.
596 * lex.c (init_vectorized_lexer): Remove constructor attribute,
597 add inline keyword.
598 (HAVE_init_vectorized_lexer): Define.
599 (_cpp_init_lexer): New function.
600
9b554be9
DS
6012011-12-03 Dodji Seketeli <dodji@redhat.com>
602
603 * macro.c (tokens_buff_remove_last_token)
604 (tokens_buff_put_token_to): Add an 'inline' function specifier to
605 the prototype.
606
8dcf72a8
DN
6072011-11-22 Diego Novillo <dnovillo@google.com>
608
609 * include/line-map.h (linemap_dump): Declare.
610 (line_table_dump): Declare.
611 * line-map.c (linemap_dump): New.
612 (line_table_dump): New.
613
7e74ce3f
ESR
6142011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net>
615
616 PR c++/50958
617 * expr.c (cpp_userdef_char_remove_type): Fix typo.
618
e9411247
MM
6192011-11-03 Michael Matz <matz@suse.de>
620
621 PR bootstrap/50857
622 * configure.ac: Check for -fno-exceptions -fno-rtti.
623 * configure: Regenerate.
624 * Makefile.in (NOEXCEPTION_FLAGS): New flag.
625 (ALL_CXXFLAGS): Use it.
626
0c1dace3
PC
6272011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
628
629 * internal.h (uxstrdup, ustrchr): Return const unsigned char *.
630
25339f10
JM
6312011-11-02 Jason Merrill <jason@redhat.com>
632
633 PR c++/50810
634 * configure.ac: Add -Wno-narrowing to warning options.
635
97e3ad20
JM
6362011-10-31 Jason Merrill <jason@redhat.com>
637
1fb80b0c
JM
638 PR libstdc++/1773
639 * init.c (cpp_init_builtins): Set __cplusplus for C++11.
640
97e3ad20
JM
641 PR c++/50920
642 * include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
643 CLK_GNUCXX0X to CLK_GNUCXX11.
644
3ce4f9e4
ESR
6452011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net>
646
647 Implement C++11 user-defined literals.
648 * expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
649 cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
650 cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
651 cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
652 (cpp_classify_number): Classify unrecognized tokens as user-defined
653 literals.
654 * include/cpplib.h: Add new tokens for user-defined literals.
655 * init.c: Add new preprocessor flag (cxx11).
656 * lex.c: (lex_string, lex_raw_string): Handle user-defined literals
657 including concatenation and promotion with suffixes.
658
3bb0c8db
DS
6592011-10-24 Dodji Seketeli <dodji@redhat.com>
660
661 * line-map.c (linemap_macro_map_lookup): Fix logic.
662
84756fd4
DS
6632011-10-24 Dodji Seketeli <dodji@redhat.com>
664
665 * include/line-map.h (linemap_expand_location): Take a line table
666 parameter. Update comment.
667 (linemap_resolve_location): Update comment.
668 (linemap_expand_location_full): Remove.
669 * line-map.c (linemap_resolve_location): Handle reserved
670 locations; return a NULL map in those cases.
671 (linemap_expand_location): If location is reserved, return a
672 zeroed expanded location. Update comment. Take a line table to
673 assert that the function takes non-virtual locations only.
674 (linemap_expand_location_full): remove.
675 (linemap_dump_location): Handle the fact that
676 linemap_resolve_location can return NULL line maps when the
677 location resolves to a reserved location.
678
679 * line-map.c (linemap_macro_map_lookup): Fix logic.
680
ad2305ad
DS
6812011-10-22 Dodji Seketeli <dodji@redhat.com>
682
683 PR bootstrap/50778
684 * include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
685 context to act upon.
686 * lex.c (_cpp_remaining_tokens_num_in_context): Likewise. Update
687 comment.
688 (cpp_token_from_context_at): Likewise.
689 (cpp_peek_token): Use the context to peek tokens from.
690
cbbcf655
DS
6912011-10-20 Dodji Seketeli <dodji@redhat.com>
692
693 PR bootstrap/50801
694 * lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
695 number of tokens.
696
d17687f6
DS
6972011-10-18 Dodji Seketeli <dodji@redhat.com>
698
699 PR bootstrap/50760
700 * include/line-map.h (struct linemap_stats): Change the type of
701 the members from size_t to long.
702 * macro.c (macro_arg_token_iter_init): Unconditionally initialize
703 iter->location_ptr.
704
411f92de
DS
7052011-10-17 Dodji Seketeli <dodji@redhat.com>
706
707 * line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
708 variable without using it if ENABLE_CHECKING is not defined. Mark
709 the LOCATION parameter as being unused.
710
b9bd6f74
TT
7112011-10-15 Tom Tromey <tromey@redhat.com>
712 Dodji Seketeli <dodji@redhat.com>
713
714 * include/line-map.h (struct line_maps::alloced_size_for_request):
715 New member.
716 * line-map.c (new_linemap): Use set->alloced_size_for_request to
717 get the actual allocated size of line maps.
718
64a1a422
TT
7192011-10-15 Tom Tromey <tromey@redhat.com>
720 Dodji Seketeli <dodji@redhat.com>
721
722 * line-map.h (struct linemap_stats): Declare new struct.
723 (linemap_get_statistics): Declare ...
724 * line-map.c (linemap_get_statistics): ... new function.
725 * macro.c (num_expanded_macros_counter, num_macro_tokens_counter):
726 Declare new counters.
727 (enter_macro_context, replace_args): Update
728 num_macro_tokens_counter.
729 (cpp_get_token_1): Update num_expanded_macros_counter.
730
847e697a
TT
7312011-10-15 Tom Tromey <tromey@redhat.com>
732 Dodji Seketeli <dodji@redhat.com>
733
734 * include/cpplib.h (struct cpp_options)<debug>: New struct member.
735 * include/line-map.h (linemap_dump_location): Declare ...
736 * line-map.c (linemap_dump_location): ... new function.
737
92582b75
TT
7382011-10-15 Tom Tromey <tromey@redhat.com>
739 Dodji Seketeli <dodji@redhat.com>
740
741 * include/cpplib.h (struct cpp_options)<track_macro_expansion>:
742 New option.
743 * internal.h (struct macro_context): New struct.
744 (enum context_tokens_kind): New enum.
745 (struct cpp_context)<tokens_kind>: New member of type enum
746 context_tokens_kind.
747 (struct cpp_context)<macro>: Remove this. Replace it with an enum
748 of macro and macro_context.
749 (struct cpp_context)<direct_p>: Remove.
750 (_cpp_remaining_tokens_num_in_context): Declare new function.
751 * directives.c (destringize_and_run): Adjust.
752 * lex.c (_cpp_remaining_tokens_num_in_context)
753 (_cpp_token_from_context_at): Define new functions
754 (cpp_peek_token): Use them.
755 * init.c (cpp_create_reader): Initialize the base context to zero.
756 (_cpp_token_from_context_at): Define new static function.
757 (cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and
758 _cpp_token_from_context_at.
759 * macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New
760 members.
761 (enum macro_arg_token_kind): New enum.
762 (struct macro_arg_token_iter): New struct.
763 (maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context)
764 (alloc_expanded_arg_mem, ensure_expanded_arg_room)
765 (delete_macro_args, set_arg_token, get_arg_token_location)
766 (arg_token_ptr_at, macro_arg_token_iter_init)
767 (macro_arg_token_iter_get_token)
768 (macro_arg_token_iter_get_location, macro_arg_token_iter_forward)
769 (expanded_token_index, tokens_buff_new, tokens_buff_count)
770 (tokens_buff_last_token_ptr, tokens_buff_put_token_to)
771 (tokens_buff_add_token, tokens_buff_remove_last_token)
772 (reached_end_of_context, consume_next_token_from_context): New
773 static functions.
774 (cpp_get_token_1): New static function. Split and extended from
775 cpp_get_token. Use reached_end_of_context and
776 consume_next_token_from_context. Unify its return point. Move
777 the location tweaking from cpp_get_token_with_location in here.
778 (cpp_get_token): Use cpp_get_token_1
779 (stringify_arg): Use the new arg_token_at.
780 (paste_all_tokens): Support tokens coming from extended tokens
781 contexts.
782 (collect_args): Return the number of collected arguments, by
783 parameter. Store virtual locations of tokens that constitute the
784 collected args.
785 (funlike_invocation_p): Return the number of collected arguments,
786 by parameter.
787 (enter_macro_context): Add a parameter for macro expansion point.
788 Pass it to replace_args and to the "used" cpp callback. Get the
789 number of function-like macro arguments from funlike_invocation_p,
790 pass it to the new delete_macro_args to free the memory used by
791 macro args. When -ftrack-macro-expansion is in effect, for macros
792 that have no arguments, create a macro map for the macro expansion
793 and use it to allocate proper virtual locations for tokens
794 resulting from the expansion. Push an extended tokens context
795 containing the tokens resulting from macro expansion and their
796 virtual locations.
797 (replace_args): Rename the different variables named 'count' into
798 variables with more meaningful names. Create a macro map;
799 allocate virtual locations of tokens resulting from this
800 expansion. Use macro_arg_token_iter to iterate over tokens of a
801 given macro. Handle the case of the argument of
802 -ftrack-macro-expansion being < 2. Don't free macro arguments
803 memory resulting from expand_arg here, as these are freed by the
804 caller of replace_arg using delete_macro_args now. Push extended
805 token context.
806 (next_context, push_ptoken_context, _cpp_push_token_context)
807 (_cpp_push_text_context): Properly initialize the context.
808 (expand_arg): Use the new alloc_expanded_arg_mem,
809 push_extended_tokens_context, cpp_get_token_1, and set_arg_token.
810 (_cpp_pop_context): Really free the memory held by the context.
811 Handle freeing memory used by extended tokens contexts.
812 (cpp_get_token_with_location): Use cpp_get_token_1.
813 (cpp_sys_macro_p): Adjust.
814 (_cpp_backup_tokens): Support the new kinds of token contexts.
815 * traditional.c (recursive_macro): Adjust.
816
46427374
TT
8172011-10-15 Tom Tromey <tromey@redhat>
818 Dodji Seketeli <dodji@redhat.com>
819
820 * include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum
821 member.
822 (MAX_SOURCE_LOCATION): New constant.
823 (struct line_map_ordinary, struct line_map_macro): New structs.
824 (struct line_map): Turn this into a union of the two above. Add
825 comments.
826 (struct maps_info): New struct.
827 (struct line_maps)<info_ordinary, info_macro>: Two new fields.
828 These now carry the map information that was previously scattered
829 in struct line_maps.
830 (struct map_info::allocated): Fix comment.
831 (MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME)
832 (ORDINARY_MAP_STARTING_LINE_NUMBER)
833 (ORDINARY_MAP_INCLUDER_FILE_INDEX)
834 (ORDINARY_MAP_IN_SYSTEM_HEADER_P)
835 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO)
836 (MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS)
837 (MACRO_MAP_EXPANSION_POINT_LOCATION)
838 (LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO)
839 (LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE)
840 (LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP)
841 (LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED)
842 (LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE)
843 (LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP)
844 (LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED)
845 (LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE)
846 (LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP)
847 (LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT)
848 (LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map
849 information.
850 (linemap_check_ordinary, linemap_assert)
851 (linemap_location_before_p): New macros.
852 (linemap_position_for_line_and_column)
853 (linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token)
854 (linemap_macro_expansion_map_p)
855 (linemap_macro_map_loc_to_def_point)
856 (linemap_macro_map_loc_unwind_once)
857 (linemap_macro_map_loc_to_exp_point, linemap_step_out_once)
858 (linemap_get_source_line linemap_get_source_column)
859 (linemap_map_get_macro_name, linemap_get_file_path)
860 (linemap_location_in_system_header_p)
861 (linemap_location_from_macro_expansion_p): Declare new functions.
862 (SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION)
863 (LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this
864 accessors act on ordinary maps only.
865 (INCLUDED_FROM): Return NULL for main files; use the new
866 accessors.
867 (LINEMAP_POSITION_FOR_COLUMN): Use the new accessors.
868 (struct expanded_location): Move here from gcc/input.h
869 (linemap_resolve_location, linemap_expand_location)
870 (linemap_expand_location_full): Declare new functions.
871 * line-map.c: Include cpplib.h, internal.h
872 (linemap_enter_macro, linemap_add_macro_token)
873 (linemap_get_expansion_line, linemap_get_expansion_filename): New
874 functions that are private to libcpp.
875 (linemap_assert): New macro.
876 (linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point)
877 (linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point)
878 (linemap_macro_map_loc_unwind_toward_spelling)
879 (linemap_macro_map_loc_to_exp_point)
880 (first_map_in_common_1, first_map_in_common): New static
881 functions.
882 (new_linemap): Define new static functions. Extracted and
883 enhanced from ...
884 (linemap_add): ... here. Use linemap_assert in lieu of abort
885 previously.
886 (linemap_tracks_macro_expansion_locs_p)
887 (linemap_add_macro_token, linemap_macro_expansion_map_p)
888 (linemap_check_ordinary, linemap_macro_map_loc_to_exp_point)
889 (linemap_macro_map_loc_to_def_point)
890 (linemap_macro_map_loc_unwind_once)
891 (linemap_step_out_once, linemap_map_get_index)
892 (linemap_get_source_line,linemap_get_source_column)
893 (linemap_get_file_path, linemap_map_get_macro_name)
894 (linemap_location_in_system_header_p)
895 (linemap_location_originated_from_system_header_p)
896 (linemap_location_from_macro_expansion_p)
897 (linemap_tracks_macro_expansion_locs_p)
898 (linemap_resolve_location, linemap_expand_location)
899 (linemap_expand_location_full)
900 (linemap_tracks_macro_expansion_locs_p)
901 (linemap_position_for_line_and_column, linemap_compare_locations):
902 Define new public functions.
903 (linemap_init): Initialize ordinary and macro maps information in
904 the map set.
905 (linemap_check_files_exited): Use the new accessors.
906 (linemap_free): Remove this dead code.
907 (linemap_line_start): Assert this uses an ordinary map. Adjust to
908 use the new ordinary map accessors and data structures. Don't
909 overflow past the lowest possible macro token's location.
910 (linemap_position_for_column): Assert the ordinary maps of the map
911 set are really ordinary. Use ordinary map accessors.
912 (linemap_lookup): Keep the same logic but generalize to allow
913 lookup of both ordinary and macro maps. Do not crash when called
914 with an empty line table.
915 * directives-only.c (_cpp_preprocess_dir_only): Adjust to use the
916 new API of line-map.h.
917 * directives.c (start_directive, do_line, do_linemarker)
918 (do_linemarker): Likewise.
919 * files.c (_cpp_find_file, _cpp_stack_include, open_file_failed)
920 (make_cpp_dir, cpp_make_system_header): Likewise.
921 * init.c (cpp_read_main_file): Likewise.
922 * internal.h (CPP_INCREMENT_LINE): Likewise.
923 (linemap_enter_macro, linemap_add_macro_token)
924 (linemap_get_expansion_line, linemap_get_expansion_filename): New
925 functions private to libcpp.
926 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment)
927 (skip_line_comment, skip_whitespace, lex_raw_string)
928 (_cpp_lex_direct): Likewise.
929 * macro.c (_cpp_builtin_macro_text): Likewise.
930 (_cpp_aligned_alloc): Initialize the new name member of the macro.
931 * traditional.c (copy_comment, _cpp_scan_out_logical_line):
932 Likewise.
933 * errors.c (cpp_diagnostic): Adjust to new linemap API.
934
892a371f
DS
9352011-08-28 Dodji Seketeli <dodji@redhat.com>
936
937 * line-map.c (linemap_add): Assert that reason must not be
938 LC_RENAME when called for the first time on a "main input file".
939
e3dfef44
GC
9402011-08-22 Gabriel Charette <gchare@google.com>
941
942 * init.c (cpp_create_reader): Inititalize forced_token_location_p.
943 * internal.h (struct cpp_reader): Add field forced_token_location_p.
944 * lex.c (_cpp_lex_direct): Use forced_token_location_p.
945 (cpp_force_token_locations): New.
946 (cpp_stop_forcing_token_locations): New.
947
32fe396e
RO
9482011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
949
950 PR libstdc++/1773
951 * init.c (cpp_init_builtins): Define __cplusplus 19971L.
952
7c1ffff9
JM
9532011-08-18 Joseph Myers <joseph@codesourcery.com>
954
955 * include/cpplib.h (struct cpp_options): Fix typo.
956
a48e3dd1
JM
9572011-08-18 Joseph Myers <joseph@codesourcery.com>
958
959 * include/cpplib.h (struct cpp_options): Add rliterals.
960 * init.c (struct lang_flags, lang_defaults): Add rliterals.
961 (cpp_set_lang): Set rliterals option.
962 (cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__.
963 * lex.c (_cpp_lex_direct): Only accept raw strings if rliterals.
964
3f6ced10
GC
9652011-08-15 Gabriel Charette <gchare@google.com>
966
967 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove.
968 Update all users to use linemap_position_for_column instead.
969
0681d04c
GC
9702011-07-28 Gabriel Charette <gchare@google.com>
971
972 * include/line-map.h (struct line_maps):
973 Remove unused field last_listed. Update all users.
974
5e9627ca
L
9752011-07-28 H.J. Lu <hongjiu.lu@intel.com>
976
977 * configure.ac: Set need_64bit_hwint to yes for x86 targets.
978 * configure: Regenerated.
979
a024b70f
RO
9802011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
981
982 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
983
5b6d595b
RO
9842011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
985 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
986
987 PR bootstrap/49794
988 * configure.ac: Test AM_ICONV with CXX.
989 * configure: Regenerate.
990 * system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++.
991
d0a9fbe1
DS
9922011-07-15 Dodji Seketeli <dodji@redhat.com>
993
994 * directives.c (struct if_stack): Use source_location as type
995 here.
996 * include/cpplib.h (struct cpp_callbacks)<include, define, undef,
997 indent, def_pragma, used_define, used_undef>: Properly use
998 source_location as parameter type, rather than unsigned int.
999
fbdd5d87
RO
10002011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1001
1002 PR target/39150
1003 * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
1004 like i[34567]86-*-solaris2.1[0-9]*.
1005 * configure: Regenerate.
1006
8787a05a
JM
10072011-06-16 Jason Merrill <jason@redhat.com>
1008
1009 PR c++/45399
1010 * lex.c (lex_raw_string): Don't check for embedded NUL.
1011
38fbfaf6
DS
10122011-06-06 Dodji Seketeli <dodji@redhat.com>
1013
1014 PR preprocessor/48532
1015 * directives.c (do_pragma): Don't forget the invocation location
1016 when parsing the pragma name of a namespaced pragma directive.
1017
fc0993ac
JT
10182011-05-29 John Tytgat <John.Tytgat@aaug.net>
1019
1020 * files.c (read_file_guts): Add test on non-zero value of S_ISREG.
1021
ef230b38
UB
10222011-05-22 Uros Bizjak <ubizjak@gmail.com>
1023
1024 PR target/49104
1025 * lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
1026 is defined. Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
1027
e5b0dad8
JK
10282011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
1029
1030 * system.h (ENUM_BITFIELD): Remove.
1031
6cfae070
JJ
10322011-04-24 Jakub Jelinek <jakub@redhat.com>
1033
1034 PR preprocessor/48740
1035 * lex.c (lex_raw_string): When raw string ends with
1036 ??) followed by raw prefix and ", ensure it is preprocessed
1037 with ??) rather than ??].
1038
04695783
JM
10392011-04-20 Jim Meyering <meyering@redhat.com>
1040
1041 * files.c (destroy_cpp_file): Remove useless if-before-free.
1042 * init.c (cpp_destroy): Likewise.
1043 * macro.c (replace_args): Likewise.
1044 * pch.c (cpp_valid_state): Likewise.
1045
4489800d
KT
10462011-03-25 Kai Tietz <ktietz@redhat.com>
1047
1048 * files.c (file_hash_eq): Use filename_cmp
1049 instead of strcmp.
1050 (nonexistent_file_hash_eq): Likewise.
1051 (remap_filename): Likewise.
1052 Handle absolute DOS-path,
1053 (append_file_to_dir): Check for IS_DIR_SEPARATOR
1054 instead of slash.
1055 (read_name_map): Likewise.
1056 * linemap.c (linemap_add): Use filename_cmp
1057 instead of strcmp.
1058 * mkdeps.c (apply_vpath): Use filename_ncmp
1059 instead of strncmp.
1060 (deps_restore): Use filename_cmp instead of
1061 strcmp.
1062 * init.c (read_original_directory): Use
1063 IS_DIR_SEPARATOR instead of checking for slash.
1064
f3c33d9d
MM
10652011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1066
1067 PR preprocessor/48192
1068 * directives.c (do_ifdef): Do not consider conditional macros as
1069 being defined.
1070 (do_ifndef): Ditto.
1071 * expr.c (parse_defined): Ditto.
1072
01956319
RH
10732011-03-18 Richard Henderson <rth@redhat.com>
1074
1075 PR bootstrap/45381
1076 * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5.
1077
c5a62c6f
EB
10782011-11-04 Eric Botcazou <ebotcazou@adacore.com>
1079 Jakub Jelinek <jakub@redhat.com>
1080
1081 PR preprocessor/39213
1082 * directives.c (end_directive): Call _cpp_remove_overlay for deferred
1083 pragmas as well in traditional mode.
1084
0e1a989c
ILT
10852010-11-17 Ian Lance Taylor <iant@google.com>
1086
1087 PR bootstrap/45538
1088 * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS. Remove switch of
1089 AC_LANG based on ENABLE_BUILD_WITH_CXX.
1090
651a20b5
KT
10912010-11-16 Kai Tietz <kai.tietz@onevision.com>
1092
1093 PR preprocessor/17349
1094 * lex.c (save_comment): Handle in argument passing c++
1095 comments special.
1096
480767a9
ILT
10972010-11-02 Ian Lance Taylor <iant@google.com>
1098
1099 * configure.ac: Use AC_SYS_LARGEFILE.
1100 * configure: Rebuild.
1101 * config.in: Rebuild.
1102
078419c9 11032010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
480767a9 1104
078419c9
BS
1105 * line-map.h (source_location): Remove obsolete comment
1106 mentioning location_s.
1107
d6874138
KT
11082010-09-29 Kai Tietz <kai.tietz@onevision.com>
1109
1110 PR preprocessor/45362
1111 * directives.c (cpp_pop_definition): Make static.
1112 (do_pragma_push_macro): Reworked to store text
1113 definition.
1114 (do_pragma_pop_macro): Add free text definition.
1115 (cpp_push_definition): Removed.
1116 * include/cpplib.h (cpp_push_definition): Removed.
1117 (cpp_pop_definition): Likewise.
1118 * internal.h (def_pragma_macro): Remove member 'value'
1119 and add new members 'definition', 'line',
1120 'syshdr', 'sued' and 'is_undef'.
1121 * pch.c (_cpp_restore_pushed_macros): Rework to work
1122 on text definition and store additional macro flags.
1123 (_cpp_save_pushed_macros): Likewise.
1124
e3339d0f
JM
11252010-09-29 Joseph Myers <joseph@codesourcery.com>
1126
1127 * include/cpplib.h (cpp_options): Rename warn_deprecated,
1128 warn_traditional, warn_long_long and pedantic.
1129 * directives.c (directive_diagnostics, _cpp_handle_directive):
1130 Update names of cpp_options members.
1131 * expr.c (cpp_classify_number, eval_token): Update names of
1132 cpp_options members.
1133 * init.c (cpp_create_reader, post_options): Update names of
1134 cpp_options members.
1135 * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
1136 cpp_options members.
1137 * macro.c (parse_params): Update names of cpp_options members.
1138
128465e6
ILT
11392010-09-15 Ian Lance Taylor <iant@google.com>
1140
1141 * init.c: Fix type name in comment.
1142
a69d2520
JJ
11432010-08-31 Jakub Jelinek <jakub@redhat.com>
1144
1145 PR preprocessor/45457
1146 * expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if
1147 needed.
1148 * directives.c (do_ifdef, do_ifndef): Likewise.
1149
707bcb7a
RO
11502010-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1151
1152 * system.h [HAVE_INTTYPES_H]: Include inttypes.h.
1153
6f173e52
RH
11542010-08-24 Richard Henderson <rth@redhat.com>
1155
1156 PR bootstrap/45376
1157 * configure.ac (HAVE_SSE4): New check.
1158 * configure, config.in: Rebuild.
1159 * lex.c (search_line_sse42): Omit if !HAVE_SSE4.
1160
789d73cb
RO
11612010-08-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1162
1163 * lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
1164 etc. on Solaris 2/x86.
1165
246a2fcb
RH
11662010-08-21 Richard Henderson <rth@redhat.com>
1167 Andi Kleen <ak@linux.intel.com>
1168 David S. Miller <davem@davemloft.net>
1169
1170 * configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
1171 (ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
1172 (ptrdiff_t): Check via AC_CHECK_TYPE.
1173 * config.in, configure: Rebuild.
1174 * system.h: Include stdint.h, if available.
1175 * lex.c (WORDS_BIGENDIAN): Provide default.
1176 (acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
1177 acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
1178 search_line_sse2, search_line_sse42, init_vectorized_lexer,
1179 search_line_fast): New.
1180 (_cpp_clean_line): Use search_line_fast. Restructure the fast
1181 loop to make it clear when we're leaving the loop. Stay in the
1182 fast loop for non-trigraph '?'.
1183
8e680db5
JJ
11842010-06-11 Jakub Jelinek <jakub@redhat.com>
1185
1186 * include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro
1187 callback.
1188 (enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER.
1189 (cpp_macro_definition): Remove const qual from second argument.
1190 * macro.c (enter_macro_context): Call user_builtin_macro callback for
1191 NODE_BUILTIN !NODE_USED macros.
1192 (warn_of_redefinition): Likewise. Remove const qual from second
1193 argument.
1194 (cpp_macro_definition): Likewise.
1195 * pch.c (write_macdef, save_macros): Call user_builtin_macro callback
1196 for NODE_BUILTIN !NODE_USED macros.
1197
1cb42611
JM
11982010-06-10 Joseph Myers <joseph@codesourcery.com>
1199
1200 * include/cpplib.h (struct cpp_options): Remove show_column.
1201 * init.c (cpp_create_reader, post_options): Don't set show_column.
1202
ff5dfc48
JR
12032010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
1204
1205 PR bootstrap/44432
1206 * configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++,
1207 check that C++ compiler works.
1208 * configure: Regenerate.
1209
a9429e29
LB
12102010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1211
1212 * include/symtab.h (ht_identifier_ptr): New.
1213
c3f247f4
RW
12142010-06-03 Joern Rennecke <joern.rennecke@embecosm.com>
1215 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1216
1217 PR bootstrap/42798
1218 * configure.ac: Check for declaration of 'basename(char *)'.
1219 * configure: Regenerate.
1220 * config.in: Regenerate.
1221
2778d766
JM
12222010-04-25 Joseph Myers <joseph@codesourcery.com>
1223
1224 * include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X.
1225 * init.c (lang_defaults): Add entries for new language variants.
1226 (cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X
1227 variants.
1228
d8a12e84
MLI
12292010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
1230
1231 PR cpp/43195
1232 * files.c (report_missing_guard): Test for #pragma once.
1233
87cf0651
SB
12342010-04-07 Simon Baldwin <simonb@google.com>
1235
1236 * directives.c (do_diagnostic): Add warning reason argument,
1237 call appropriate error reporting function for code.
1238 (directive_diagnostics): Call specific warning functions with
1239 warning reason where appropriate.
1240 (do_error, do_warning, do_pragma_dependency): Add warning reason
1241 argument to do_diagnostic calls.
1242 * macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
1243 _cpp_create_definition): Call specific warning functions with
1244 warning reason where appropriate.
1245 * Makefile.in: Add new diagnostic functions to gettext translations.
1246 * include/cpplib.h (struct cpp_callbacks): Add warning reason code
1247 to error callback.
1248 (CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
1249 CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
1250 (CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
1251 CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
1252 CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
1253 CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
1254 CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
1255 CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
1256 CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
1257 warning reason codes.
1258 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
1259 cpp_warning_with_line, cpp_pedwarning_with_line,
1260 cpp_warning_with_line_syshdr): New specific error reporting functions.
1261 * pch.c (cpp_valid_state): Call specific warning functions with
1262 warning reason where appropriate.
1263 * errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
1264 diagnostic handlers.
1265 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
1266 cpp_warning_with_line, cpp_pedwarning_with_line,
1267 cpp_warning_with_line_syshdr): New specific error reporting functions.
1268 * expr.c (cpp_classify_number, eval_token, num_unary_op): Call
1269 specific warning functions with warning reason where appropriate.
1270 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
1271 warn_about_normalization, lex_identifier_intern, lex_identifier,
1272 _cpp_lex_direct): Ditto.
1273 * charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
1274 narrow_str_to_charconst): Ditto.
1275
d947ada0
JJ
12762010-04-06 Jakub Jelinek <jakub@redhat.com>
1277
1278 PR preprocessor/43642
1279 * lex.c (lex_raw_string): Change type of TYPE variable to
1280 unsigned char.
1281
4d9e8446
RW
12822010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1283
1284 * aclocal.m4: Regenerate.
1285
52150625
JM
12862010-03-29 Jason Merrill <jason@redhat.com>
1287
00a81b8b
JM
1288 More N3077 raw string changes
1289 * charset.c (cpp_interpret_string): Don't transform UCNs in raw
1290 strings.
1291 * lex.c (bufring_append): Split out from...
1292 (lex_raw_string): ...here. Undo trigraph and line splicing
1293 transformations. Do process line notes in multi-line literals.
1294 (_cpp_process_line_notes): Ignore notes that were already handled.
1295
52150625
JM
1296 Some raw string changes from N3077
1297 * charset.c (cpp_interpret_string): Change inner delimiters to ().
1298 * lex.c (lex_raw_string): Likewise. Also disallow '\' in delimiter.
1299
709d7160
JJ
13002010-02-11 Jakub Jelinek <jakub@redhat.com>
1301
1302 * init.c (read_original_filename): Don't call read_original_directory
1303 if _cpp_handle_directive returns 0.
1304
dadab4fd
JM
13052010-01-01 Joseph Myers <joseph@codesourcery.com>
1306
1307 PR preprocessor/41947
1308 * expr.c (cpp_classify_number): Give error for hexadecimal
1309 floating-point constant with no digits before or after point.
1310
3de8a540
AC
13112009-11-20 Arnaud Charlet <charlet@adacore.com>
1312
1313 * macro.c (enter_macro_context): Call cb.used callback if defined.
1314 * directives.c (do_idef, do_ifndef): Ditto.
1315 * include/cpplib.h (struct cpp_callbacks): Add used callback.
1316
17e7cb85
KT
13172009-11-11 Kai Tietz <kai.tietz@onevision.com>
1318
1319 * directives.c (do_pragma_push_macro): New pragma handler.
1320 (do_pragma_pop_macro): Likewise.
1321 (_cpp_init_internal_pragmas): Add push_macro and
1322 pop_macro handler to internal pragmas.
1323 (lex_macro_node_from_str): Removed.
1324 (cpp_push_definition): Replace lex_macro_node_from_str
1325 by _cpp_lex_identifier.
1326 (cpp_pop_definition): Likewise.
1327 * internal.h (_cpp_lex_identifier): New prototype.
1328 (def_pragma_macro): New structure.
1329 (cpp_reader): New member pushed_macros.
1330 * lex.c (_cpp_lex_identifier): New function.
1331 (lex_identifier_intern): New function.
1332 * init.c (cpp_create_reader): Initialize pushed_macros
1333 member.
1334 (cpp_destroy): Free elements in pushed_macros member.
1335 * pch.c (_cpp_save_pushed_macros): New function.
1336 (_cpp_restore_pushed_macros): Likewise.
1337 (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
1338 (cpp_read_state): Use _cpp_restore_pushed_macros.
1339
2c6e3f55
JJ
13402009-10-19 Jakub Jelinek <jakub@redhat.com>
1341
1342 * charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
1343 (_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
1344 and char32_cset_desc.
1345 (converter_for_type): Handle CPP_UTF8STRING.
1346 (cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
1347 * directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
1348 (parse_include): Reject raw strings.
1349 * include/cpplib.h (CPP_UTF8STRING): New token type.
1350 * internal.h (struct cpp_reader): Add utf8_cset_desc field.
1351 * lex.c (lex_raw_string): New function.
1352 (lex_string): Handle u8 string literals, call lex_raw_string
1353 for raw string literals.
1354 (_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
1355 sequences.
1356 * macro.c (stringify_arg): Handle CPP_UTF8STRING.
1357
96c169e1
JJ
13582009-10-14 Jakub Jelinek <jakub@redhat.com>
1359
1360 PR preprocessor/41543
1361 * include/line-map.h (RESERVED_LOCATION_COUNT): Define.
1362 * line-map.c (linemap_init): Initialize highest_location and
1363 highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
1364
30c99a9e
JM
13652009-10-09 Jason Merrill <jason@redhat.com>
1366
1367 * charset.c (_cpp_valid_ucn): Update C++0x restrictions.
1368
2214382c
NV
13692009-10-09 Neil Vachharajani <nvachhar@google.com>
1370
1371 * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and
1372 sccs.
1373
e02222d2
LR
13742009-09-23 Loren J. Rittle <ljrittle@acm.org>
1375
1376 * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h.
1377 * configure: Rebuilt.
1378
9a8a2b7a
RG
13792009-09-22 Richard Guenther <rguenther@suse.de>
1380
1381 PR pch/38987
1382 * files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
1383
74dc6a11
CD
13842009-09-18 Chris Demetriou <cgd@google.com>
1385
1386 PR preprocessor/28435:
1387 * include/cpplib.h (struct cpp_options): Add new member
1388 deps.need_preprocessor_output.
1389 * files.c (open_file_failed): If preprocessor output is needed
1390 always report an error.
1391
933608b7
KT
13922009-09-13 Kai Tietz <kai.tietz@onevision.com>
1393
1394 * configure.ac: Set for i?86-w64-mingw*
1395 need_64bit_hwint to yes.
1396 * configure: Regenerated.
1397
86373e7e
JM
13982009-09-10 Jason Merrill <jason@redhat.com>
1399
1400 * directives.c (cpp_define): constify.
1401
fd2ab214
ILT
14022009-09-02 Ian Lance Taylor <iant@google.com>
1403
1404 * macro.c (stringify_arg): Escape CPP_WCHAR tokens.
1405
df58e648
RW
14062009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1407
1408 * configure.ac (AC_PREREQ): Bump to 2.64.
1409
5213506e
RW
14102009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1411
1412 * aclocal.m4: Regenerate.
1413 * config.in: Regenerate.
1414 * configure: Regenerate.
1415
709a22df
TT
14162009-08-17 Tom Tromey <tromey@redhat.com>
1417
1418 PR preprocessor/41067:
1419 * charset.c (convert_escape): Add missing ":" to error text.
1420
0c539b47
DR
14212009-07-27 Douglas B Rupp <rupp@gnat.com>
1422
1423 * include/cpplib.h (INO_T_CPP): New macro.
1424 (struct cpp_dir): Use it.
1425
2b69c841
JQ
14262009-07-20 Jerry Quinn <jlquinn@optonline.net>
1427
1428 PR regression/40800
1429 * configure.ac: Use = instead of == for testing
1430 ENABLE_BUILD_WITH_CXX.
1431 * configure: Rebuild.
1432
f1bf410c
JQ
14332009-07-17 Jerry Quinn <jlquinn@optonline.net>
1434
1435 * directives.c (do_linemarker, do_line): Use CPP_STRING for
1436 ignored enum value.
1437 * files.c (find_file_in_dir): Add cast from void* to char*.
1438 * symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
1439 * Makefile.in: (WARN_CFLAGS): Use general and C-specific
1440 warnings.
1441 (CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
1442 ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
1443 COMPILER_FLAGS): New.
1444 (DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
1445 (COMPILE.base): Use COMPILER instead of CC. Use COMPILER_FLAGS
1446 instead of ALL_CFLAGS.
1447 * configure.ac: Invoke AC_PROG_CXX. Separate C-specific warnings
1448 from other warnings. Add -Wc++-compat to C-specific warnings.
1449 Check for --enable-build-with-cxx. Set and substitute
1450 ENABLE_BUILD_WITH_CXX. Invoke ZW_PROG_COMPILER_DEPENDENCIES
1451 according to ENABLE_BUILD_WITH_CXX. Invoke AC_LANG before
1452 AC_CHECK_HEADERS.
1453 * configure: Rebuild.
1454 * include/cpp-id-data.h: Remove extern "C".
1455 * include/line-map.h: Likewise.
1456 * include/mkdeps.h: Likewise.
1457 * include/symtab.h: Likewise.
1458 * internal.h: Likewise.
1459
a28fbdba
MLI
14602009-06-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1461
1462 * directives.c (parse_include): Add location argument. Update all
1463 calls.
1464 (parse_answer): Likewise.
1465 (do_include_common): Error with exact location.
1466 (parse_assertion): Likewise.
1467
b506a5a2
MLI
14682009-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
1469
1470 * expr.c (num_div_op): Take explicit location.
1471
7d8847a4
ILT
14722009-06-17 Ian Lance Taylor <iant@google.com>
1473
1474 * include/cpplib.h (progname): Don't declare.
1475
3d8b2a98
ILT
14762009-06-12 Ian Lance Taylor <iant@google.com>
1477
1478 * include/cpplib.h (struct cpp_options): Add
1479 warn_cxx_operator_names field.
1480 (NODE_WARN_OPERATOR): Define.
1481 (struct cpp_hashnode): Increase flags field to 10 bits, decrease
1482 type to 6 bits.
1483 * init.c (mark_named_operators): Add flags parameter.
1484 (cpp_post_options): Pick flags value to pass to
1485 mark_named_operators.
1486 * lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that
1487 identifier is an operator name in C++.
1488
e74fe492
AH
14892009-06-01 Aldy Hernandez <aldyh@redhat.com>
1490
1491 * include/line-map.h (LAST_SOURCE_COLUMN): New.
1492
4851089f
ILT
14932009-06-01 Ian Lance Taylor <iant@google.com>
1494
1495 * include/cpp-id-data.h: Add extern "C".
1496 * include/line-map.h: Likewise.
1497 * include/mkdeps.h: Likewise.
1498 * include/symtab.h: Likewise.
1499 * internal.h: Likewise.
1500
7e5487a2
ILT
15012009-05-15 Ian Lance Taylor <iant@google.com>
1502
1503 * include/cpplib.h (enum cpp_builtin_type): Rename from enum
1504 builtin_type. Change all uses.
1505
00b0c19b
MLI
15062009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1507
1508 PR cpp/36674
1509 * directives (do_linemarker): Compensate for the increment in
1510 location that occurs when we reach the end of line.
1511 * files (_cpp_stack_include): Mention _cpp_find_file in the
1512 comment.
1513
9a0c6187
JM
15142009-05-10 Joseph Myers <joseph@codesourcery.com>
1515
1516 * include/cpplib.h (enum cpp_token_fld_kind): Add
1517 CPP_TOKEN_FLD_TOKEN_NO.
1518 (struct cpp_macro_arg, struct cpp_identifier): Define.
1519 (union cpp_token_u): Use struct cpp_identifier for identifiers.
1520 Use struct cpp_macro_arg for macro arguments. Add token_no for
1521 CPP_PASTE token numbers.
1522 * directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
1523 do_pragma_poison, parse_assertion): Use val.node.node in place of
1524 val.node.
1525 * expr.c (parse_defined, eval_token): Use val.node.node in place
1526 of val.node.
1527 * lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
1528 cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
1529 cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
1530 place of val.arg_no. Use val.node.node in place of val.node.
1531 * macro.c (replace_args, cpp_get_token, parse_params,
1532 lex_expansion_token, create_iso_definition, cpp_macro_definition):
1533 Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
1534 Use val.node.node in place of val.node.
1535
9e322bc1
JM
15362009-05-03 Joseph Myers <joseph@codesourcery.com>
1537
1538 * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte
1539 UTF-8 sequences.
1540
f88d0772
JM
15412009-04-25 Joseph Myers <joseph@codesourcery.com>
1542
1543 PR preprocessor/39559
1544 * expr.c (cpp_interpret_integer): Use a pedwarn for decimal
1545 constants larger than intmax_t in C99 mode.
1546
d1b38208
TG
15472009-04-21 Taras Glek <tglek@mozilla.com>
1548
1549 * include/cpp-id-data.h: Update GTY annotations to new syntax.
1550 * include/cpplib.h: Likewise.
1551 * include/line-map.h: Likewise.
1552 * include/symtab.h: Likewise.
1553
cfc93532
MLI
15542009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1555
1556 PR c++/14875
1557 * lex.c (cpp_type2name): Take a flags parameter. Call
1558 cpp_named_operator2name for named operators and cpp_digraph2name
1559 for digraphs.
1560 (cpp_digraph2name): New.
1561 (cpp_spell_token): Use it.
1562 (cpp_output_token): Likewise.
1563 * include/cpplib.h (cpp_type2name): Update declaration.
1564 * init.c (cpp_named_operator2name): New.
1565 * internal.h (cpp_named_operator2name): Declare.
1566
9c650d90
MLI
15672009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1568
1569 PR c++/13358
1570 * init.c (cpp_create_reader): Wlong_long is disabled by default.
1571 * expr.c (cpp_classify_number): Give different messages for C and
1572 C++ front-ends.
1573
aa508502
JM
15742009-04-19 Joseph Myers <joseph@codesourcery.com>
1575
1576 PR preprocessor/20078
1577 * include/cpp-id-data.h (struct cpp_macro): Add extra_tokens
1578 field.
1579 * include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define.
1580 (struct cpp_token): Change flags to unsigned short.
1581 * lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens.
1582 (_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens.
1583 (cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE
1584 tokens.
1585 * macro.c (macro_real_token_count): New.
1586 (enter_macro_context, replace_args): Use macro_real_token_count.
1587 (create_iso_definition): Record whitespace surrounding and digraph
1588 spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH.
1589 Set extra_tokens and save CPP_PASTE tokens with arg_no set for
1590 multiple consecutive ## tokens.
1591 (_cpp_create_definition): Initialize extra_tokens.
1592 (cpp_macro_definition): Use macro_real_token_count.
1593
61cc8223
JM
15942009-04-18 Joseph Myers <joseph@codesourcery.com>
1595
1596 * directives.c (parse_include): Pass true to check_eol.
1597
c7f9c0b9
JM
15982009-04-18 Joseph Myers <joseph@codesourcery.com>
1599
1600 PR preprocessor/39646
1601 * include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM.
1602 * line-map.c (linemap_add): Handle LC_RENAME_VERBATIM.
1603 * directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in
1604 place of LC_RENAME.
1605
a5cb563b
JM
16062009-04-18 Joseph Myers <joseph@codesourcery.com>
1607
1608 PR preprocessor/39647
1609 * directives.c (check_eol): Add parameter expand.
1610 (do_undef, parse_include, do_line, do_linemarker, do_ident,
1611 do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef,
1612 do_else, do_endif, do_assert, do_unassert): All callers changed.
1613 Pass true from do_line, false elsewhere.
1614
18f41a1b
JM
16152009-04-12 Joseph Myers <joseph@codesourcery.com>
1616
1617 PR preprocessor/31869
1618 * macro.c (stringify_arg): Handle NULL source token in padding
1619 token where previous padding token did not have source token with
1620 preceding whitespace.
1621
748086b7
JJ
16222009-04-09 Jakub Jelinek <jakub@redhat.com>
1623
1624 * Makefile.in: Change copyright header to refer to version
1625 3 of the GNU General Public License and to point readers at the
1626 COPYING3 file and the FSF's license web page.
1627 * charset.c: Likewise.
1628 * directives-only.c: Likewise.
1629 * directives.c: Likewise.
1630 * errors.c: Likewise.
1631 * expr.c: Likewise.
1632 * files.c: Likewise.
1633 * identifiers.c: Likewise.
1634 * include/cpp-id-data.h: Likewise.
1635 * include/cpplib.h: Likewise.
1636 * include/line-map.h: Likewise.
1637 * include/mkdeps.h: Likewise.
1638 * include/symtab.h: Likewise.
1639 * init.c: Likewise.
1640 * internal.h: Likewise.
1641 * lex.c: Likewise.
1642 * line-map.c: Likewise.
1643 * macro.c: Likewise.
1644 * makeucnid.c: Likewise.
1645 * mkdeps.c: Likewise.
1646 * pch.c: Likewise.
1647 * symtab.c: Likewise.
1648 * system.h: Likewise.
1649 * traditional.c: Likewise.
1650 * ucnid.tab: Likewise.
1651 * ucnid.h: Regenerate.
1652
eec49116
JJ
16532009-04-01 Janis Johnson <janis187@us.ibm.com>
1654
839a3b8a
JJ
1655 PR c/39027
1656 * include/cpplib.h (CPP_N_DEFAULT): Define.
1657 * expr.c (interpret_float_suffix): Recognize d or D for double,
1658 return new value for default.
1659 (cpp_classify_number): Issue pedwarn for use of d or D in suffix.
1660
eec49116
JJ
1661 PR c/33466
1662 * expr.c (interpret_float_suffix): Reject invalid suffix that uses
1663 letters from decimal float and fixed-point suffixes.
1664
47580d22
JM
16652009-03-31 Joseph Myers <joseph@codesourcery.com>
1666
1667 PR preprocessor/15638
1668 * files.c (_cpp_find_file): Call open_file_failed after diagnosing
1669 invalid PCH.
1670 (open_file_failed): Make error for missing file fatal.
1671 * include/cpplib.h (CPP_DL_FATAL): Define.
1672
5a2df0fa
SV
16732009-03-30 Sergiy Vyshnevetskiy <serg@vostok.net>
1674
1675 PR preprocessor/31932:
1676 * internal.h: Don't mention HAVE_ICONV_H.
1677 * configure, config.in: Rebuild.
1678 * configure.ac: Don't check for iconv.h.
1679
c1a8a3c6
TT
16802009-03-30 Tom Tromey <tromey@redhat.com>
1681
1682 PR preprocessor/39512:
1683 * line-map.c (linemap_init): Initialize 'reallocator' field.
1684
a37a7b8a
JJ
16852009-03-30 Jakub Jelinek <jakub@redhat.com>
1686
1687 PR target/39558
1688 * macro.c (cpp_get_token): If macro_to_expand returns NULL
1689 and used some tokens, add CPP_PADDING before next token.
1690
148e4216
JM
16912009-03-29 Joseph Myers <joseph@codesourcery.com>
1692
1693 PR preprocessor/34695
1694 * makedepend.c: Remove.
1695 * Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove.
1696 (all, clean, TAGS_SOURCES, include): Remove makedepend handling.
1697 * directives.c (cpp_errors): Remove.
1698 * errors.c (print_location, _cpp_begin_message, v_message):
1699 Remove.
1700 (cpp_error, cpp_error_with_line): Always use error callback.
1701 (cpp_error, cpp_error_with_line, cpp_errno): Return bool.
1702 * include/cpplib.h (cpp_options): Remove pedantic_errors,
1703 inhibit_warnings, warn_system_headers, inhibit_errors,
1704 warnings_are_errors, client_diagnostic.
1705 (cpp_callbacks): Add extra arguments to error callback; make it
1706 return bool.
1707 (cpp_finish): Return void.
1708 (cpp_destroy): Remove inaccurate comment about return value.
1709 (cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove.
1710 (CPP_DL_NOTE): Define.
1711 * include/line-map.h (linemap_print_containing_files): Remove.
1712 * init.c (cpp_finish): Do not check for or return number of
1713 errors.
1714 * internal.h (cpp_reader): Remove errors field.
1715 * line-map.c (linemap_print_containing_files): Remove.
1716 * macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message
1717 about previous definition. Only emit it if previous diagnostic
1718 was emitted.
1719
f1450211
JM
17202009-03-28 Joseph Myers <joseph@codesourcery.com>
1721
1722 * Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not
1723 mkinstalldirs.
1724
8f5929e1
JJ
17252009-03-18 Jakub Jelinek <jakub@redhat.com>
1726
1727 * include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
1728
4bb09c26
JM
17292009-02-21 Joseph Myers <joseph@codesourcery.com>
1730
1731 * lex.c (lex_string): Return a CPP_LESS token for missing '>' in a
1732 header name.
1733 (_cpp_lex_direct): Handle this.
1734
68c9ab45
RG
17352009-02-15 Richard Guenther <rguenther@suse.de>
1736
1737 Revert last change.
1738
601b3e1a
RG
17392009-02-13 Richard Guenther <rguenther@suse.de>
1740
1741 * configure.ac: Enable LFS.
1742 * configure: Re-generate.
1743 * config.in: Likewise.
1744
fc0cd180
BE
17452009-01-05 Ben Elliston <bje@au.ibm.com>
1746
1747 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
1748 (.po.pox): Likewise.
1749 (po/$(PACKAGE).pot): Likewise.
1750
db89a3be
AO
17512008-12-10 Alexandre Oliva <aoliva@redhat.com>
1752
1753 PR target/37033
1754 * pch.c (cpp_valid_state): Improve message for poisoned symbols.
1755 Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.
1756
cc955282
JM
17572008-11-29 Joseph Myers <joseph@codesourcery.com>
1758
1759 * lex.c (cpp_token_len): Use 6 as default length.
1760
47960aaf
MLI
17612008-10-31 Manuel López-Ibáñez <manu@gcc.gnu.org>
1762
1763 * expr.c (struct op): Add location.
1764 (_cpp_parse_expr): Propagate locations throught the stack
1765 of expressions.
1766 (reduce): Likewise.
1767 (check_promotion): Use explicit location in errors.
1768
631d0d36
MG
17692008-10-05 Matthew Gingell <gingell@adacore.com>
1770 Arnaud Charlet <charlet@adacore.com>
1771
1772 * include/cpplib.h (cpp_comments, cpp_comment_table): New structs.
1773 (cpp_get_comments): New function.
1774 * internal.h (struct cpp_reader): Add comments field.
1775 * init.c (cpp_destroy): Free comments.
1776 * lex.c (store_comment, cpp_get_comments): New functions.
1777 (comments): New struct.
1778 (save_comment): Store comments in comments struct.
1779
c047ce93
SB
17802008-09-18 Simon Baldwin <simonb@google.com>
1781
1782 * include/cpplib.h (struct cpp_options): Add new boolean flag
1783 warn_builtin_macro_redefined.
1784 * init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
1785 * (struct builtin_operator): Split out from previous struct builtin,
1786 enhance extra const correctness.
1787 * (struct builtin_macro): Split out from previous struct builtin, add
1788 new always_warn_if_redefined flag, enhance const correctness.
1789 * (mark_named_operators): Use struct builtin_operator.
1790 * (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
1791 to builtins selectively.
1792 * macro.c (warn_of_redefinition): Return false if a builtin macro
1793 is not flagged with NODE_WARN.
1794
affa55c6
JJ
17952008-07-31 Jakub Jelinek <jakub@redhat.com>
1796
1797 PR preprocessor/36649
1798 * files.c (struct report_missing_guard_data): New type.
1799 (report_missing_guard): Put paths into an array instead of printing
1800 them right away. Return 1 rather than 0.
1801 (report_missing_guard_cmp): New function.
1802 (_cpp_report_missing_guards): Sort and print paths gathered by
1803 report_missing_guard callback.
1804
3b8f20a1
MLI
18052008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1806
1807 PR 28079
1808 * directives.c (strtolinenum): Handle overflow.
1809 (do_line): Give a warning if line number overflowed.
1810 (do_linemarker): Update call to strtolinenum.
1811
1bb64668
MLI
18122008-07-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1813
1814 * include/line-map.h (linenum_type): New typedef.
1815 (struct line_map): Use it.
1816 (SOURCE_LINE): Second arguments is a LOCATION not a LINE.
1817 (SOURCE_COLUMN): Likewise.
1818 * macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store
1819 source_location values in a variable of type linenum_type.
1820 * directives.c (struct if_stack): Use linenum_type.
1821 (strtoul_for_line): Rename as strtolinenum.
1822 (do_line): Use linenum_type.
1823 (do_linemarker): Use linenum_type and strtolinenum.
1824 (_cpp_do_file_change): Use linenum_t.
1825 * line-map.c (linemap_add): Likewise.
1826 (linemap_line_start): Likewise.
1827 * traditional.c (struct fun_macro): 'line' is a source_location.
1828 * errors.c (print_location): Use linenum_type.
1829 * directives-only.c (_cpp_preprocess_dir_only): Likewise.
1830 * internal.h (CPP_INCREMENT_LINE): Likewise.
1831 * lex.c (_cpp_skip_block_comment): Use source_location.
1832
5950c3c9
BE
18332008-07-14 Ben Elliston <bje@au.ibm.com>
1834
1835 * include/cpplib.h (NODE_CONDITIONAL): New.
1836 (struct cpp_callbacks): New macro_to_expand field.
1837 (struct cpp_hashnode): Adjust size of flags and type fields.
1838 (cpp_peek_token): Prototype.
1839 * lex.c (cpp_peek_token): New function.
1840 (_cpp_temp_token): Protect pre-existing lookaheads.
1841 * macro.c (cpp_get_token): Expand any conditional macros.
1842 (_cpp_backup_tokens_direct): New.
1843 (_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
1844 (warn_of_redefinition): Silently allow redefined conditional
1845 macros.
1846 (_cpp_create_definition): Remove the conditional flag when a user
1847 defines one of the conditional macros.
1848 * internal.h (_cpp_backup_tokens_direct): New prototype.
1849
e85edc9e
AH
18502008-06-13 Andrew Haley <aph@redhat.com>
1851
1852 PR preprocessor/33305
1853 * macro.c (replace_args): Print a warning for empty macro
1854 arguments in C89 and C++.
1855
18c04407
RW
18562008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1857
1858 * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.
1859 * configure: Regenerate.
1860
2d09b640
RW
18612008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1862
1863 * Makefile.in (datarootdir): New variable.
1864
0b7c73cc
L
18652008-06-12 H.J. Lu <hongjiu.lu@intel.com>
1866
1867 PR preprocessor/36479
1868 * charset.c (cpp_interpret_string_notranslate): Also set
1869 narrow_cset_desc.width.
1870
cd985f66
JM
18712008-06-07 Joseph Myers <joseph@codesourcery.com>
1872
1873 * configure.ac (parisc*64*-*-*): Remove.
1874 * configure: Regenerate.
1875
d750887f
TT
18762008-05-30 Tom Tromey <tromey@redhat.com>
1877
1878 PR preprocessor/36320:
1879 * internal.h (_cpp_parse_expr): Update.
1880 * expr.c (_cpp_parse_expr): Add 'is_if' argument. Update error
1881 messages.
1882 * directives.c (do_if): Update.
1883 (do_elif): Require expression if processing group.
1884
c100de59
DS
18852008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
1886
1887 * include/cpplib.h (struct cpp_dir): Add new field, canonical_name.
1888
5d6342eb
TT
18892008-05-21 Tom Tromey <tromey@redhat.com>
1890
1891 PR preprocessor/27777:
1892 * lex.c (cpp_output_line_to_string): New function.
1893 * internal.h (_cpp_begin_message): Don't declare.
1894 * errors.c (_cpp_begin_message): Now static.
1895 * include/cpplib.h (cpp_output_line_to_string): Declare.
1896 * directives.c (do_diagnostic): Rewrote. Use
1897 cpp_output_line_to_string. Don't use _cpp_begin_message.
1898
dae4174e
TT
18992008-05-21 Tom Tromey <tromey@redhat.com>
1900
1901 * include/symtab.h (HT_ALLOCED): Remove.
1902 (ht_purge): Declare.
1903 * symtab.c (DELETED): New define.
1904 (ht_lookup): Update comment.
1905 (ht_lookup_with_hash): Handle deleted entries. Remove HT_ALLOCED
1906 code. Use subobject allocator for strings, if it exists.
1907 (ht_expand): Handle deleted entries.
1908 (ht_forall): Likewise.
1909 (ht_purge): New function.
1910 (ht_dump_statistics): Print deletion statistics.
1911
899015a0
TT
19122008-05-13 Tom Tromey <tromey@redhat.com>
1913
1914 PR preprocessor/22168:
1915 * include/cpplib.h (struct cpp_options) <objc>: Update
1916 documentation.
1917 * expr.c (eval_token): Warn for use of assertions.
1918 * directives.c (directive_diagnostics): Warn about extensions.
1919 (DEPRECATED): New define.
1920 (DIRECTIVE_TABLE): Use it.
1921
71c10038
TT
19222008-05-06 Tom Tromey <tromey@redhat.com>
1923
1924 PR preprocessor/35313, PR preprocessor/36088:
1925 * expr.c (optab) <QUERY, COMMA>: Set precedence to 4.
1926 (reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON.
1927
2bd0fe3d
DM
19282008-05-04 David S. Miller <davem@davemloft.net>
1929
1930 * configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
1931 * configure: Regenerate.
1932
28f68625
DF
19332008-04-22 Daniel Franke <franke.daniel@gmail.com>
1934
1935 * include/cpplib.h (cpp_define_formatted): New.
1936 * directives.c (cpp_define_formatted): New.
1937
688e7a53
TT
19382008-04-21 Tom Tromey <tromey@redhat.com>
1939
1940 PR libcpp/33415:
1941 * charset.c (_cpp_convert_input): Add buffer_start argument.
1942 Ignore UTF-8 BOM if seen.
1943 * internal.h (_cpp_convert_input): Add argument.
1944 * files.c (struct _cpp_file) <buffer_start>: New field.
1945 (destroy_cpp_file): Free buffer_start, not buffer.
1946 (_cpp_pop_file_buffer): Likewise.
1947 (read_file_guts): Update.
1948
b6baa67d
KVH
19492008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
1950
1951 * include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal.
1952 * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
1953 (struct cpp_options): Added uliterals.
1954 (cpp_interpret_string): Update prototype.
1955 (cpp_interpret_string_notranslate): Idem.
1956 * charset.c (init_iconv_desc): New width member in cset_converter.
1957 (cpp_init_iconv): Add support for char{16,32}_cset_desc.
1958 (convert_ucn): Idem.
1959 (emit_numeric_escape): Idem.
1960 (convert_hex): Idem.
1961 (convert_oct): Idem.
1962 (convert_escape): Idem.
1963 (converter_for_type): New function.
1964 (cpp_interpret_string): Use converter_for_type, support u and U prefix.
1965 (cpp_interpret_string_notranslate): Match changed prototype.
1966 (wide_str_to_charconst): Use converter_for_type.
1967 (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
1968 * directives.c (linemarker_dir): Macro U changed to UC.
1969 (parse_include): Idem.
1970 (register_pragma_1): Idem.
1971 (restore_registered_pragmas): Idem.
1972 (get__Pragma_string): Support CPP_STRING{16,32}.
1973 * expr.c (eval_token): Support CPP_CHAR{16,32}.
1974 * init.c (struct lang_flags): Added uliterals.
1975 (lang_defaults): Idem.
1976 * internal.h (struct cset_converter) <width>: New field.
1977 (struct cpp_reader) <char16_cset_desc>: Idem.
1978 (struct cpp_reader) <char32_cset_desc>: Idem.
1979 * lex.c (digraph_spellings): Macro U changed to UC.
1980 (OP, TK): Idem.
1981 (lex_string): Add support for u'...', U'...', u"..." and U"...".
1982 (_cpp_lex_direct): Idem.
1983 * macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
1984 (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
1985
deb984e6
PB
19862008-04-18 Paolo Bonzini <bonzini@gnu.org>
1987
1988 PR bootstrap/35457
1989 * aclocal.m4: Regenerate.
1990 * configure: Regenerate.
1991
bf048bea
TT
19922008-04-17 Tom Tromey <tromey@redhat.com>
1993
1994 PR libcpp/34866:
1995 * errors.c (cpp_error): Don't reference a token before the start
1996 of the current run.
1997
7f27b0f8
TT
19982008-04-16 Tom Tromey <tromey@redhat.com>
1999
2000 * Makefile.in (TAGS_SOURCES): New variable.
2001 (TAGS): New target.
2002
a1fcb9a1
KK
20032008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
2004
2005 * configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-*
2006 and shbe-*-*.
2007 * configure: Rebuilt.
2008
93d45d9e
JM
20092008-04-02 Joseph Myers <joseph@codesourcery.com>
2010
2011 * include/cpplib.h (struct cpp_callbacks): Add used_define,
2012 used_undef and before_define.
2013 (NODE_USED): Define.
2014 * directives.c (do_define, do_undef, undefine_macros, do_ifdef,
2015 do_ifndef, cpp_pop_definition): Handle new flag and use new
2016 callbacks.
2017 * expr.c (parse_defined): Handle new flag and use new callbacks.
2018 * macro.c (enter_macro_context, _cpp_free_definition): Handle new
2019 flag and use new callbacks.
2020
d4c32e1d
JJ
20212008-04-01 Jakub Jelinek <jakub@redhat.com>
2022
2023 PR pch/13675
2024 * files.c (struct _cpp_file): Remove pch field.
2025 (pch_open_file): Don't set file->pch, just file->pchname.
2026 (should_stack_file): After pfile->cb.read_pch call
2027 free pchname and clear pchname, don't close file->fd.
2028 Test file->pchname instead of file->pch. Don't close fd after cb.
2029 (_cpp_stack_include): Test file->pchname instead of file->pch.
2030
161031e3
TT
20312008-03-28 Tom Tromey <tromey@redhat.com>
2032
2033 * Makefile.in (POSTCOMPILE): New variable.
2034 (.c.o): Use it.
2035
14ccf800
TT
20362008-03-13 Tom Tromey <tromey@redhat.com>
2037
2038 PR libcpp/35322:
2039 * directives.c (destringize_and_run): Set pfile->directive.
2040
830465c6
MM
20412008-03-06 Markus Milleder <markus.milleder@generali.at>
2042
2043 PR preprocessor/35458
2044 * mkdeps.c (munge): Quote '#' with a '\'.
2045
d482a073
RW
20462008-02-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2047
2048 PR preprocessor/35379
2049 * mkdeps.c (deps_write): Ensure the first target always appears
2050 in the first column, without leading backslash newline. Avoid
2051 some more extra whitespace.
2052
185a6cc1
TS
20532008-02-25 Thiemo Seufer <ths@mips.com>
2054
d482a073 2055 * Makefile.in ($(srcdir)/config.in): Depend on configure.ac.
185a6cc1 2056
2bf41bf0
TT
20572008-02-19 Tom Tromey <tromey@redhat.com>
2058
2059 * traditional.c (lex_identifier): Use CPP_HASHNODE.
2060 * lex.c (lex_identifier): Use CPP_HASHNODE.
2061 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in
2062 do-while.
2063 * identifiers.c (alloc_node): Change return type.
2064 (_cpp_init_hashtable): Don't cast 'alloc_node'.
2065 (proxy_assertion_broken): New declaration.
2066 (cpp_forall_identifiers): Move comment.
2067 * line-map.c (linemap_add): Comment fix.
2068 (linemap_line_start): Indentation fix.
2069
765d600a
JJ
20702008-01-25 Jakub Jelinek <jakub@redhat.com>
2071
2072 PR preprocessor/34692
2073 * macro.c (collect_args): Add pragma_buff argument. Push
2074 CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather
2075 than into arguments. Reset prevent_expansion and parsing_args
2076 state at CPP_PRAGMA_EOL/CPP_EOF.
2077 (funlike_invocation_p): Add pragma_buff argument, pass it through
2078 to collect_args.
2079 (enter_macro_context): Add result argument. Adjust
2080 funlike_invocation_p caller. Emit all deferred pragma tokens
2081 gathered during collect_args before the expansion, add a padding
2082 token. Return 2 instead of 1 if any pragma tokens were prepended.
2083 (cpp_get_token): If enter_macro_context returns 2, don't return
2084 a padding token, instead cycle to grab CPP_PRAGMA token.
2085 * directives.c (_cpp_handle_directive): If was_parsing_args
2086 in deferred pragma, leave parsing_args and prevent_expansion as is.
2087
ec46053b
TT
20882008-01-22 Tom Tromey <tromey@redhat.com>
2089
765d600a 2090 PR c++/34859
ec46053b
TT
2091 * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and
2092 __STDC_CONSTANT_MACROS.
2093
681c6ab0
FF
20942008-01-07 Fred Fish <fnf@specifix.com>
2095
765d600a 2096 PR preprocessor/30363
681c6ab0
FF
2097 * traditional.c (replace_args_and_push): Add local variable
2098 cxtquote, calculate the replacement text size assuming a
2099 worst case of every input character quoted with backslash,
2100 and properly handle output quoting of quote characters in
2101 actual arguments used in function-like macros.
2102
33ae4837
TT
21032008-01-03 Tom Tromey <tromey@redhat.com>
2104
765d600a 2105 PR preprocessor/34602
33ae4837
TT
2106 * directives.c (do_line): Don't try to spell EOF token.
2107 (do_linemarker): Add comment.
2108
675575f5
DD
21092007-12-11 DJ Delorie <dj@redhat.com>
2110
2111 * charset.c (convert_using_iconv): Close out any shift states,
2112 returning to the initial state.
2113
97f6bd40
TT
21142007-12-06 Tom Tromey <tromey@redhat.com>
2115
765d600a 2116 PR c/29172
97f6bd40
TT
2117 * internal.h (struct cpp_reader) <file_hash_entries>: Changed
2118 type.
2119 <file_hash_entries_allocated, file_hash_entries_used>: Removed.
2120 * files.c (FILE_HASH_POOL_SIZE): New macro.
2121 (struct file_hash_entry_pool): New.
2122 (destroy_all_cpp_files): New function.
2123 (allocate_file_hash_entries): Allocate a file_hash_entry_pool.
2124 (new_file_hash_entry): Update.
2125 (free_file_hash_entries): New function.
2126 (_cpp_cleanup_files): Call free_file_hash_entries and
2127 destroy_all_cpp_files.
2128 (cpp_clear_file_cache): New function.
2129 * include/cpplib.h (cpp_clear_file_cache): Declare.
2130
d56a25e1
TT
21312007-12-03 Tom Tromey <tromey@redhat.com>
2132
765d600a 2133 PR preprocessor/34288
d56a25e1
TT
2134 * configure.ac, config.in: Rebuilt.
2135 * configure.ac: Check for ssize_t.
2136
607f74e9
TT
21372007-11-30 Tom Tromey <tromey@redhat.com>
2138
765d600a 2139 PR preprocessor/32868
607f74e9
TT
2140 * macro.c (_cpp_create_definition): Special case
2141 __STDC_FORMAT_MACROS.
2142
b0f4807f
MM
21432007-11-16 Michael Matz <matz@suse.de>
2144
2145 * files.c (search_path_head): Fix check for absolute paths.
2146
f1e20710
TT
21472007-11-11 Tom Tromey <tromey@redhat.com>
2148
765d600a 2149 PR c++/17557
f1e20710
TT
2150 * include/cpplib.h (cpp_included_before): Declare.
2151 * files.c (struct file_hash_entry) <location>: New field.
2152 (_cpp_find_file): Initialize new field.
2153 (make_cpp_dir): Likewise.
2154 (cpp_included_before): New function.
2155
f373b44d
TT
21562007-11-01 Tom Tromey <tromey@redhat.com>
2157
765d600a 2158 PR preprocessor/30805
f373b44d
TT
2159 * macro.c (paste_tokens): Handle padding token.
2160 (paste_tokens): Don't abort unless padding has PASTE_LEFT flag.
2161
5b9a40df
TT
21622007-10-31 Tom Tromey <tromey@redhat.com>
2163
765d600a 2164 PR preprocessor/30786
5b9a40df
TT
2165 * macro.c (builtin_macro): Return result of _cpp_do__Pragma.
2166 * directives.c (_cpp_do__Pragma): Return error status.
2167 * internal.h (_cpp_do__Pragma): Update.
2168 * directives.c (get__Pragma_string): Back up if EOF seen.
2169
5ffeb913
TT
21702007-09-06 Tom Tromey <tromey@redhat.com>
2171
2172 * internal.h (struct cpp_reader) <invocation_location>: New
2173 field.
2174 (struct cpp_reader) <set_invocation_location>: Likewise.
2175 * init.c (cpp_set_line_map): New function.
2176 * line-map.c (linemap_add): Use linemap's allocator.
2177 * include/line-map.h (GTY): Define.
2178 (line_map_realloc): New typedef.
2179 (struct line_map): Mark with GTY.
2180 (struct line_maps): Likewise.
2181 (struct line_maps) <maps>: Likewise.
2182 (struct line_maps) <reallocator>: New field.
2183 * include/symtab.h (GTY): Conditionally define.
2184 * include/cpplib.h (cpp_set_line_map): Declare.
2185 (cpp_get_token_with_location): Declare.
2186 * macro.c (cpp_get_token): Set invocation_location on the reader.
2187 (cpp_get_token_with_location): New function.
2188
ac6b1c67
CF
21892007-08-30 Chao-ying Fu <fu@mips.com>
2190
2191 * expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur,
2192 ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk.
2193 (cpp_classify_number): Support decimal fixed-point constants without
2194 exponents.
2195 Warn about fixed-point constants when -pedantic.
2196 * include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change
2197 comments to support fixed-point values.
2198 (CPP_N_FRACT, CPP_N_ACCUM): Define.
2199
cda5e672
TT
22002007-08-18 Tom Tromey <tromey@redhat.com>
2201
765d600a 2202 PR preprocessor/32974
cda5e672
TT
2203 * directives.c (parse_include): Don't check for EOL when
2204 processing #pragma dependency.
2205
ccfc4c91
OW
22062007-07-30 Ollie Wild <aaw@google.com>
2207
2208 * directives-only.c: New file.
2209 * internal.h (struct _cpp_dir_only_callbacks): New.
2210 (_cpp_preprocess_dir_only): New function.
2211 * directives.c (_cpp_handle_directive): Check directives_only before
2212 disabling execution of indented directives.
2213 * files.c (_cpp_stack_file): Add directives_only check.
2214 * include/cpplib.h (struct cpp_options): Add directives_only.
2215 (cpp_init_special_builtins): New function.
2216 * init.c (cpp_init_special_builtins): New function.
2217 (cpp_init_builtins): Move builtin_array initialization to
2218 cpp_init_special_builtins.
2219 (post_options): Check directives_only before setting
2220 pfile->state.prevent_expansion = 1.
2221 * macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
2222 is expanded inside a directive while -fdirectives-only is enabled.
2223 * Makefile.in (libcpp_a_OBJS): Add directives-only.o.
2224 (libcpp_a_SOURCES): Add directives-only.c.
2225
a206413a
UB
22262007-07-04 Uros Bizjak <ubizjak@gmail.com>
2227
2228 * traditional.c (_cpp_scan_out_logical_line): Initialize
2229 fmacro.args, fmacro.node, fmacro.offset, fmacro.line and
2230 fmacro.args to prevent 'may be used uninitialized' warning.
2231
c77cd3d1
UB
22322007-07-03 Uros Bizjak <ubizjak@gmail.com>
2233
2234 * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q):
2235 Add new constants.
2236 * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q'
2237 suffixes. Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q
2238 for 'q' or 'Q' suffixes.
2239
66938a1d
DS
22402007-06-17 Danny Smith <dannysmith@users.sourceforge.net
2241
e1311401 2242 * files.c (open_file): Correct typo.
66938a1d 2243
71995ede
VP
22442007-06-16 Vladimir Prus <vladimir@codesourcery.com>
2245
e1311401 2246 * files.c (open_file): Prevent the call
71995ede
VP
2247 for stat from overwriting errno.
2248
84152c25
VP
22492007-06-09 Vladimir Prus <vladimir@codesourcery.com>
2250
e1311401 2251 * files.c (open_file): Account for the
84152c25
VP
2252 fact that on windows, opening a directory gives
2253 EACCES.
2254
f7fd775f
JW
22552007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
2256
2257 PR preprocessor/23479
2258 * expr.c (cpp_classify_number): Implement 0b-prefixed binary
2259 integer constants.
2260 (append_digit): Likewise.
2261 * include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed
2262 binary integer constants.
2263
ed0e74e0
DK
22642007-05-31 Dave Korn <dave.korn@artimi.com>
2265
2266 PR preprocessor/14331
2267 * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF.
2268
a702045a
OW
22692007-05-24 Ollie Wild <aaw@google.com>
2270
2271 * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER.
2272 * pch.c (cpp_write_pch_deps): Save __COUNTER__ state.
2273 (cpp_write_pch_state): Save __COUNTER__ state.
2274 (cpp_valid_state): Check valid __COUNTER__ state.
2275 (cpp_read_state): Read new __COUNTER__ state.
2276 * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator.
2277 * init.c (builtin_array): Add __COUNTER__/BT_COUNTER.
2278 * internal.h (struct cpp_reader): Add counter member.
2279
126e073b
SM
22802007-05-23 Simon Martin <simartin@users.sourceforge.net>
2281
2282 PR preprocessor/20077
2283 * macro.c (create_iso_definition): Fixed the method to determine
2284 whether the token-pasting operator appears at the beginning or the end
2285 of a macro.
2286
0b4cafec
ILT
22872007-05-21 Ian Lance Taylor <iant@google.com>
2288
2289 * internal.h (struct cpp_reader): Add new fields:
2290 nonexistent_file_hash and nonexistent_file_ob.
2291 * files.c: Include "obstack.h".
2292 (find_file_in_dir): Before trying to open the file, look up the
2293 path name in the hash table of nonexistent files. After failing
2294 to open the file, add the path name to the hash table.
2295 (_cpp_find_file): Cache the results of looking up the file name
2296 starting with the quote and bracket chain heads, if we can.
2297 (nonexistent_file_hash_eq): New static function.
2298 (_cpp_init_files): Initialize pfile->nonexistent_file_hash and
2299 pfile->nonexistent_file_ob.
2300 (_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
2301 pfile->nonexistent_file_ob.
2302
30e04921
JJ
23032007-05-14 Janis Johnson <janis187@us.ibm.com>
2304
5a6bb57e
JJ
2305 * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic.
2306
30e04921
JJ
2307 PR c/31924
2308 * expr.c (interpret_float_suffix): Check for invalid suffix.
2309
22a8a52d
EC
23102007-05-02 Eric Christopher <echristo@apple.com>
2311
2312 * expr.c (num_div_op): Don't overflow if the result is
2313 zero.
2314
fca35e1b
TT
23152007-05-02 Tom Tromey <tromey@redhat.com>
2316
765d600a 2317 PR preprocessor/28709
fca35e1b
TT
2318 * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
2319
4cd97075
MM
23202007-03-30 Michael Meissner <michael.meissner@amd.com>
2321
2322 * directives.c (lex_macro_node_from_str): Fix alloca call to be
2323 type correct.
2324
121de39f
RH
23252007-03-30 Richard Henderson <rth@redhat.com>
2326
2327 * directives.c (lex_macro_node_from_str): New.
2328 (cpp_push_definition, cpp_pop_definition): New.
2329 * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
2330
4fcb360b
BM
23312007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2332
2333 * Makefile.in: Add dummy install-pdf target.
2334
67e64439
TT
23352007-01-30 Tom Tromey <tromey@redhat.com>
2336
765d600a 2337 PR preprocessor/30468
67e64439
TT
2338 * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
2339 './'.
2340
ee380365
TT
23412007-01-30 Tom Tromey <tromey@redhat.com>
2342
765d600a 2343 PR preprocessor/29966
ee380365
TT
2344 * macro.c (lex_expansion_token): Save and restore cpp_reader's
2345 cur_token.
2346 (_cpp_create_definition): Don't restore cur_token here.
2347 * lex.c (_cpp_lex_token): Added assertion.
2348
024abeb3
TT
23492007-01-27 Tom Tromey <tromey@redhat.com>
2350
2351 * configure: Rebuilt.
2352
ee1c2a10
TT
23532007-01-12 Tom Tromey <tromey@redhat.com>
2354
765d600a 2355 PR preprocessor/28227
ee1c2a10
TT
2356 * directives.c (lex_macro_node): Added 'is_def_or_undef'
2357 argument.
2358 (do_define): Update.
2359 (do_undef): Update.
2360 (do_ifdef): Update.
2361 (do_ifndef): Update.
2362
67214c16
PB
23632007-01-11 Paolo Bonzini <bonzini@gnu.org>
2364
2365 * configure: Regenerate.
2366
1aa6ca40
PB
23672007-01-11 Paolo Bonzini <bonzini@gnu.org>
2368
2369 * configure: Regenerate.
2370
705e2d28
TT
23712007-01-04 Tom Tromey <tromey@redhat.com>
2372
765d600a 2373 PR preprocessor/28165
705e2d28
TT
2374 * internal.h (cpp_in_primary_file): New function.
2375 * directives.c (do_include_next): Use cpp_in_primary_file.
2376 (do_pragma_once): Likewise.
2377 (do_pragma_system_header): Likewise.
2378
7af45bd4
ILT
23792006-12-29 Ian Lance Taylor <iant@google.com>
2380
2381 * lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't
2382 look backward at the end of the line unless we saw a backslash.
2383
9d30f270
JJ
23842006-12-29 Jakub Jelinek <jakub@redhat.com>
2385
2386 PR preprocessor/29612
2387 * directives.c (do_linemarker): Set pfile->buffer->sysp always, not
2388 only when new_sysp is non-zero.
2389
30b0edc0
TT
23902006-12-28 Tom Tromey <tromey@redhat.com>
2391
765d600a 2392 PR preprocessor/30001
30b0edc0
TT
2393 * charset.c (_cpp_convert_input): Check that to.len is greater
2394 than zero.
2395
85d9c13c
TS
23962006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2397
2398 * configure.ac (need_64bit_hwint): Need 64bit hwint for SPU.
83cc06b2 2399 * configure: Rebuilt.
85d9c13c 2400
dfafdaa6
DG
24012006-11-01 Douglas Gregor <doug.gregor@gmail.com>
2402
2403 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
2404 for experimental C++0x mode.
2405 * init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
2406 adopted the preprocessor changes introduced in C99.
2407
0f45f0f5
JM
24082006-10-29 Joseph Myers <joseph@codesourcery.com>
2409
2410 * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
2411 depending on --enable-targets=all.
2412 * configure: Regenerate.
2413
de000d22
JJ
24142006-10-12 Jakub Jelinek <jakub@redhat.com>
2415
2416 PR preprocessor/28709
2417 * macro.c (paste_tokens): Do error reporting here, use BUF with the
2418 spelled LHS token as opposed to spelling it again.
2419 (paste_all_tokens): Don't report errors here, just break on failure.
2420
b5422ad7
BM
24212006-10-10 Brooks Moses <bmoses@stanford.edu>
2422
2423 * Makefile.in: Added empty "pdf" target.
2424
aaf50ff2
GK
24252006-09-22 Geoffrey Keating <geoffk@apple.com>
2426
2427 * configure.ac: Make need_64_bit_hwint case for x86-darwin
2428 match exactly the glob in gcc/config.gcc.
2429 * configure: Regenerate.
2430
c663e301
JM
24312006-09-13 Joseph S. Myers <joseph@codesourcery.com>
2432
2433 PR c/28768
2434 PR preprocessor/14634
2435 * lex.c (lex_string): Pedwarn for unterminated literals.
2436
f7288899
EC
24372006-09-08 Eric Christopher <echristo@apple.com>
2438
2439 * configure.ac: Add 64-bit HWI support for i?86-darwin.
2440
b52dbbf8
SE
24412006-08-14 Steve Ellcey <sje@cup.hp.com>
2442
2443 PR c++/28288
2444 PR c++/14556
2445 * include/cpplib.h: Remove <?, >?, <?=, and >?= tokens.
2446 (CPP_LAST_EQ): Change.
2447 (CPP_LAST_PUNCTUATOR): Change.
2448 * expr.c (cpp_operator): Remove MIN and MAX.
2449 (reduce): Remove CPP_MIN and CPP_MAX.
2450 (num_binary_op): Ditto.
2451 * lex.c (_cpp_lex_direct): Ditto.
2452 (cpp_avoid_paste): Remove ? as legal symbol after > or <.
2453
1c90c6f9
JJ
24542006-06-09 Jakub Jelinek <jakub@redhat.com>
2455
2456 PR preprocessor/27746
2457 * directives.c (do_pragma): Handle pragma with valid namespace
2458 and invalid name coming from macro expansion.
2459 * directives.c (destringize_and_run): Initialize next field in
2460 context.
2461
2462 PR c/27747
2463 PR c++/27748
2464 * directives.c (destringize_and_run): Set NO_EXPAND on the
2465 tokens.
2466
2467 * macro.c (_cpp_backup_tokens): Fix comment typo.
2468
5c3c3683
DJ
24692006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
2470
2471 * Makefile.in (CATALOGS): Add po/ prefix.
2472 * configure: Regenerated.
2473
b2bd74bc
CD
24742006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2475
2476 * Makefile.in: Add install-html target. Add install-html to .PHONY
2477
be8ac3e2
GZ
24782006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
2479
2480 * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
2481 * files.c (_cpp_get_file_stat): New function.
2482 * include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
2483 * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
2484 * internal.h (_cpp_get_file_stat): Prototype.
2485 (struct cpp_buffer): Add timestamp.
2486
83900997
JJ
24872006-01-23 Jakub Jelinek <jakub@redhat.com>
2488
2489 PR preprocessor/25717
2490 * init.c (cpp_init_builtins): If __STDC__ will not change value
2491 between system headers and other sources, define it as a normal
2492 macro rather than a builtin.
2493 * macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
2494 cpp_in_system_header condition.
2495
24962006-01-05 Paolo Bonzini <bonzini@gnu.org>
9220c30c
PB
2497
2498 * Makefile.in: Use -MMD instead of -MD.
2499
bc4071dd
RH
25002006-01-04 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
2501 Richard Henderson <rth@redhat.com>
2502
2503 Merge from gomp branch:
2504 * directives.c (struct pragma_entry): Add is_deferred. Add ident
2505 entry to value union.
2506 (end_directive): Don't eat the line if in_deferred_pragma.
2507 (run_directive): Remove pragma hacks.
2508 (insert_pragma_entry): Remove.
2509 (new_pragma_entry): New.
2510 (register_pragma_1): Split out of register_pragma. Only handle
2511 the lookup tree and return the new entry.
2512 (cpp_register_pragma): Fill in the pragma entry here.
2513 (cpp_register_deferred_pragma): New.
2514 (register_pragma_internal): New.
2515 (_cpp_init_internal_pragmas): Use register_pragma_internal.
2516 (do_pragma): Allow pragma expansion after namespace. For deferred
2517 pragmas, don't slurp the line into a string.
2518 (destringize_and_run): Save tokens for deferred pragmas.
2519 (cpp_handle_deferred_pragma): Remove.
2520 * macro.c (builtin_macro): Remove pragma token hack.
2521 (_cpp_push_token_context): Rename from push_token_context and export.
2522 * internal.h (struct lexer_state): Add pragma_allow_expansion.
2523 (_cpp_push_token_context): Declare.
2524 * lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
2525 a token. Update the line number correctly if so.
2526 (_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
2527 (cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
2528 * include/cpplib.h (PRAGMA_EOL): New.
2529 (CPP_TOKEN_FLD_PRAGMA): New.
2530 (struct cpp_token): Add val.pragma.
2531 (struct cpp_options): Remove defer_pragmas.
2532 (cpp_handle_deferred_pragma): Remove.
2533 (cpp_register_deferred_pragma): Declare.
2534
d09e893f
JJ
25352006-01-01 Jakub Jelinek <jakub@redhat.com>
2536
2537 PR c++/25294
2538 * directives.c (do_pragma): If pragma line ends with multi-line
2539 block comment, end the saved deferred pragma string before that
2540 comment. Handle embedded '\0' chars on the pragma line.
2541
ab84748a
VR
25422005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2543
2544 PR c++/23333
2545 * include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
2546
ad6ed77e
JG
25472005-12-07 Jon Grimm <jgrimm2@us.ibm.com>
2548 Ben Elliston <bje@au.ibm.com>
2549
2550 * include/cpplib.h (CPP_N_DFLOAT): New.
2551 * expr.c (interpret_float_suffix): Identify df, dd, and dl
2552 suffixes as decimal floating point constants.
2553 (cpp_classify_number): Disallow hexadecimal DFP constants.
2554
ba096620 25552005-11-14 Gerald Pfeifer <gerald@pfeifer.com>
bc4071dd 2556 Ian Lance Taylor <ian@airs.com>
ba096620
GP
2557
2558 * include/cpplib.h (struct cpp_callbacks): Annotate error with
2559 ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
2560
456b8ce5
UB
25612005-11-09 Per Bothner <per@bothner.com>
2562 Uros Bizjak <uros@kss-loka.si>
f7288899 2563
456b8ce5
UB
2564 PR c/24101
2565 * init.c (read_original_filename): Temporarily set
2566 state.in_directive before calling _cpp_lex_direct for
2567 CPP_HASH tokens.
2568
5571f74f
JW
25692005-11-03 James E Wilson <wilson@specifix.com>
2570
2571 PR preprocessor/24202
2572 * files.c (_cpp_pop_file_buffer): Set buffer_valid to false.
2573
a63607ed
JM
25742005-11-04 Joseph S. Myers <joseph@codesourcery.com>
2575
2576 * include/cpplib.h (struct cpp_callbacks): Make error take
2577 va_list* parameter.
2578 * errors.c (cpp_error): Update call to callback.
2579
651ed942
AP
25802005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
2581
2582 PR preprocessor/22042
2583 * macro.c (_cpp_builtin_macro_text): Lower the needed max
2584 buffer size.
2585 (cpp_quote_string): Don't octalify non printable
2586 charactors.
2587
178b58b5
JM
25882005-11-03 Joseph S. Myers <joseph@codesourcery.com>
2589
2590 PR c++/17964
2591 * include/cpplib.h (struct cpp_options): Add client_diagnostic.
2592 (struct cpp_callbacks): Add error.
2593 * errors.c (cpp_error): If client_diagnostic, use error callback.
2594 * charset.c (convert_escape): Don't use %03o in diagnostic.
2595
3ee5ed11 25962005-10-21 James E Wilson <wilson@specifix.com>
6568f34b
JW
2597
2598 PR preprocessor/15220
2599 * files.c (_cpp_find_file): New parameter angle_brackets. Fix all
2600 callers. Pass to open_file_failed.
2601 (open_file_failed): New parameter angle_brackets. Fix all callers.
2602 Use in print_dep assignment.
2603 * init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
2604 * internal.h (_cpp_find_file): Add new parm to declaration.
f7288899 2605
077fc835
KH
26062005-10-08 Kazu Hirata <kazu@codesourcery.com>
2607
2608 * configure.ac: Require 64-bit int for arm*-*-*eabi*.
2609 * configure: Regenerate.
2610
cbc43ae0
ILT
26112005-10-04 Ian Lance Taylor <ian@airs.com>
2612
2613 PR preprocessor/13726
2614 * directives.c (check_eol_return_comments): New static function.
2615 (parse_include): Add buf parameter. Change all callers.
2616 (do_include_common): If not discard comments, turn on
2617 save_comments. Pass collected comments to include callback.
2618 * include/cpplib.h (struct cpp_callbacks): Add new parameter to
2619 include callback: cpp_token list.
2620
af15a2fe
JM
26212005-09-20 Joseph S. Myers <joseph@codesourcery.com>
2622
2623 * include/cpplib.h (struct cpp_options): Add extended_identifiers.
2624 * init.c (struct lang_flags, lang_defaults): Add
2625 extended_identifiers.
2626 (cpp_set_lang): Use it.
2627 * lex.c (forms_identifier_p): Check extended_identifiers.
2628
f5eab47e
JJ
26292005-08-30 Jakub Jelinek <jakub@redhat.com>
2630
2631 PR preprocessor/20348
2632 PR preprocessor/20356
2633 * files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and
2634 2004-06-05 changes.
2635
467129e6
KG
26362005-07-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2637
2638 * configure.ac (ACX_PROG_CC_WARNING_OPTS): add
2639 -Wmissing-format-attribute.
2640
2641 * configure: Regenerate.
2642
200031d1
KC
26432005-06-29 Kelley Cook <kcook@gcc.gnu.org>
2644
2645 * all files: Update FSF address in copyright headers.
2646 * makeucnid.c (write_copyright): Update outputted FSF address.
2647
f610dd5f
ZW
26482005-06-13 Zack Weinberg <zack@codesourcery.com>
2649
2650 * configure.ac: Invoke ZW_CREATE_DEPDIR and
2651 ZW_PROG_COMPILER_DEPENDENCIES.
2652 * aclocal.m4, configure: Regenerate.
2653 * Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE):
2654 New variables.
2655 (distclean): Clean up $(DEPDIR) and its contents.
2656 (.c.o): Use $(COMPILE).
2657 Include $(DEPDIR)/*.Po for most object->header dependencies.
2658
c3f829c1
GDR
26592005-05-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
2660
2661 * configure.ac: Check declarations for asprintf and vasprintf.
2662 * config.in: Regenerate.
2663 * configure: Likewise.
2664
2665 * charset.c (conversion_loop): Use XRESIZEVEC.
2666 (convert_no_conversion): Likewise.
2667 (convert_using_iconv): Likewise.
2668 (init_iconv_desc): Cast return value of alloca.
2669 (cpp_host_to_exec_charset): Use XNEWVEC.
2670 (emit_numeric_escape): Use XRESIZEVEC.
2671 (cpp_interpret_string): Use XNEWVEC.
2672 (cpp_interpret_string): Use XRESIZEVEC.
2673 (_cpp_interpret_identifier): Cast return value of alloca.
2674 (_cpp_convert_input): Use XNEWVEC and XRESIZEVEC.
2675 * directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC.
2676 (parse_include): Use XNEWVEC.
2677 (insert_pragma_entry): Rename local variable "new" to
f610dd5f 2678 "new_entry".
c3f829c1
GDR
2679 (save_registered_pragmas): Cast return value of xmemdup.
2680 (destringize_and_run): Same for alloca.
2681 (parse_assertion): Likewise.
2682 (do_assert): Cast allocated storage to proper type.
2683 (cpp_define): Likewise.
2684 (_cpp_define_builtin): Likewise.
2685 (cpp_undef): Likewise.
2686 (handle_assertion): Likewise.
2687 (cpp_push_buffer): Rename local variable "new" to "new_buffer".
2688 * expr.c (CPP_UPLUS): Cast value to type cpp_ttype.
2689 (CPP_UMINUS): Likewise.
2690 (struct cpp_operator): Rename from struct operator.
2691 (_cpp_expand_op_stack): Use XRESIZEVEC.
2692 * files.c (pch_open_file): Use XNEWVEC.
2693 (pch_open_file): Use XRESIZEVEC.
2694 (read_file_guts): Use XNEWVEC and XRESIZEVEC.
2695 (dir_name_of_file): Use XNEWVEC.
2696 (make_cpp_file): Use XCNEW.
2697 (make_cpp_dir): Likewise.
2698 (allocate_file_hash_entries): USE XNEWVEC.
2699 (cpp_included): Cast return value of htab_find_with_hash.
2700 (append_file_to_dir): Use XNEWVEC.
2701 (read_filename_string): Likewise. Use XRESIZEVEC too.
2702 (read_name_map): Cast return value of alloca. Use XRESIZEVEC.
2703 (remap_filename): Use XNEWVEC.
2704 (struct pchf_entry): Move definition out of struct pchf_data.
2705 (_cpp_save_file_entries): Use XCNEWVAR.
2706 (_cpp_read_file_entries): Use XNEWVAR.
2707 * identifiers.c (alloc_node): Use XOBNEW.
2708 * init.c (cpp_create_reader): Use XCNEW.
2709 (cpp_init_builtins): Cast of b->value to enum builtin_type.
2710 (read_original_directory): Cast return value of alloca.
2711 * lex.c (add_line_note): Use XRESIZEVEC.
2712 (warn_about_normalization): Use XNEWVEC.
2713 (_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype).
2714 (new_buff): Use XNEWVEC.
2715 * line-map.c (linemap_add): Use XRESIZEVEC.
2716 * macro.c (builtin_macro): Cast return value of alloca.
2717 (paste_tokens): Likewise.
2718 (expand_arg): Use XNEWVEC and XRESIZEVEC.
2719 (_cpp_save_parameter): Use XRESIZEVEC.
2720 (create_iso_definition): Cast allocated storage to proper type.
2721 (_cpp_create_definition): Likewise.
2722 (cpp_macro_definition): Use XRESIZEVEC.
2723 * makedepend.c (add_clm): Use XNEW.
2724 (add_dir): Likewise.
2725 * mkdeps.c (munge): Use XNEWVEC.
2726 (deps_init): Use XCNEW.
2727 (deps_add_target): Use XRESIZEVEC.
2728 (deps_add_default_target): Cast return value of alloca.
2729 (deps_add_dep): Use XRESIZEVEC.
2730 (deps_add_vpath): Likewise. Use XNEWVEC too.
2731 (deps_restore): Likewise.
2732 * pch.c (save_idents): Use XNEW and XNEWVEC.
2733 (cpp_save_state): Use XNEW.
2734 (count_defs): Cast return value of htab_find.
2735 (write_defs): Likewise.
2736 (cpp_write_pch_deps): Use XNEWVEC.
2737 (collect_ht_nodes): Use XRESIZEVEC.
2738 (cpp_valid_state): Use XNEWVEC.
2739 (save_macros): Use XRESIZEVEC. Cast return value of xmemdup.
2740 * symtab.c (ht_create): Use XCNEW.
2741 (ht_lookup_with_hash): Cast return value of obstack_copy0.
2742 (ht_expand): Use XCNEWVEC.
2743 * system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus.
2744 (bool): Do not define if __cplusplus.
2745
1ed17cd5
ZW
27462005-05-12 Zack Weinberg <zack@codesourcery.com>
2747
2748 * directives.c (#sccs table entry): Mark IN_I, consistent with #ident.
2749 (do_sccs): Delete function definition, #define to do_ident.
2750 (do_ident): Don't hardwire directive name.
2751
5a8c20ce
RK
27522005-05-12 Ryota Kunisawa <kunisawa@access.co.jp>
2753
2754 PR bootstrap/21230
2755 * configure: Regenerate.
2756
473c5bc9
AP
27572005-04-27 Andris Pavenis <pavenis@latnet.lv>
2758
2759 * files.c: Include io.h for DJGPP to get prototype of setmode.
2760
c1fc5047
PB
27612005-04-19 Per Bothner <per@bothner.com>
2762
2763 PR preprocessor/20907
2764 * line-map.c (linemap_line_start): Fix bug when we need to increse
2765 column_bits but can re-use the current line_map.
2766
042630ad
KG
27672005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2768
2769 * system.h (fopen, fdopen, freopen): Define these to the unlocked
2770 libiberty functions.
2771
0d667716
KG
27722005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2773
2774 * configure.ac (libcpp_UNLOCKED_FUNCS): New.
2775 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
2776 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
2777 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
2778 _unlocked function.
2779 (fwrite_unlocked): Fix prototype.
1ed17cd5 2780
0d667716
KG
2781 * configure, config.in: Regenerate.
2782
cae064e7
JJ
27832005-04-05 Jakub Jelinek <jakub@redhat.com>
2784
2785 PR preprocessor/19475
2786 * macro.c (create_iso_definition): For < ISO C99, don't
2787 pedwarn if there is no whitespace between macro name and its
2788 replacement, but the replacement starts with a basic character
2789 set character.
2790
cbada204
AJ
27912005-03-28 Andreas Jaeger <aj@suse.de>
2792
2793 * lex.c (warn_about_normalization): Cast field width to int to
2794 avoid warning.
2795
f42eccdb
JM
27962005-03-19 Joseph S. Myers <joseph@codesourcery.com>
2797
2798 * configure.ac: Consistently use solaris2.1[0-9]* instead of
2799 solaris2.1[0-9].
2800 * configure: Regenerate.
2801
c79e602b
GK
28022005-03-15 Geoffrey Keating <geoffk@apple.com>
2803
2804 * charset.c (_cpp_valid_ucn): In identifiers, reject a partial
2805 UCN rather than printing an error.
2806
50668cf6
GK
28072005-03-14 Geoffrey Keating <geoffk@apple.com>
2808
6baba9bb
GK
2809 * lex.c (forms_identifier_p): Disable UCNs in C89 mode.
2810
28112005-03-14 Geoffrey Keating <geoffk@apple.com>
1ed17cd5 2812
50668cf6
GK
2813 * init.c (cpp_create_reader): Default warn_normalize to normalized_C.
2814 * charset.c: Update for new format of ucnid.h.
2815 (ucn_valid_in_identifier): Update for new format of ucnid.h.
2816 Add NST parameter, and update it; update callers.
2817 (cpp_valid_ucn): Add NST parameter, update callers. Replace abort
2818 with cpp_error.
2819 (convert_ucn): Pass normalize_state to cpp_valid_ucn.
2820 * internal.h (struct normalize_state): New.
2821 (INITIAL_NORMALIZE_STATE): New.
2822 (NORMALIZE_STATE_RESULT): New.
2823 (NORMALIZE_STATE_UPDATE_IDNUM): New.
2824 (_cpp_valid_ucn): New.
2825 * lex.c (warn_about_normalization): New.
2826 (forms_identifier_p): Add normalize_state parameter, update callers.
2827 (lex_identifier): Add normalize_state parameter, update callers. Keep
2828 the state current.
2829 (lex_number): Likewise.
2830 (_cpp_lex_direct): Pass normalize_state to subroutines. Check
2831 it with warn_about_normalization.
2832 * makeucnid.c: New.
2833 * ucnid.h: Replace.
2834 * ucnid.pl: Remove.
2835 * ucnid.tab: Make appropriate for input to makeucnid.c. Remove
2836 comments about obsolete version of C++.
2837 * include/cpplib.h (enum cpp_normalize_level): New.
2838 (struct cpp_options): Add warn_normalize field.
2839
47e20491
GK
28402005-03-11 Geoffrey Keating <geoffk@apple.com>
2841
2842 * directives.c (glue_header_name): Update call to cpp_spell_token.
2843 * internal.h (_cpp_interpret_identifier): New.
2844 * charset.c (_cpp_interpret_identifier): New.
2845 (_cpp_valid_ucn): Allow UCN version of '$'.
2846 * lex.c (lex_identifier): Add extra parameter to indicate if initial
2847 character was '$' or '\'. Support identifiers with UCNs.
2848 (forms_identifier_p): Allow UCNs.
2849 (_cpp_lex_direct): Pass extra parameter to lex_identifier.
2850 (utf8_to_ucn): New.
2851 (cpp_spell_token): Add FORSTRING parameter. Use it.
2852 (cpp_token_as_text): Update call to cpp_spell_token.
2853 (cpp_output_token): Write UCNs back out.
2854 (stringify_arg): Update call to cpp_spell_token.
2855 (paste_tokens): Likewise.
2856 (cpp_macro_definition): Likewise.
2857 * macro.c (stringify_arg): Likewise.
2858 (paste_tokens): Likewise.
2859 (cpp_macro_definition): Likewise.
2860 * include/cpplib.h: Add parameter to cpp_spell_token.
2861
73096711
JJ
28622005-03-04 Jakub Jelinek <jakub@redhat.com>
2863
2864 PR bootstrap/20282
2865 PR bootstrap/20305
2866 * macro.c (replace_args, cpp_get_token): Copy whole
2867 cpp_token_u instead of just cpp_string field from it.
2868
2203a881
DP
28692005-02-28 Devang Patel <dpatel@apple.com>
2870
2871 * directives.c (do_line): Save sysp early before line table is
2872 realloc'ed.
1ed17cd5 2873
c5ff069d
ZW
28742005-02-20 Zack Weinberg <zack@codesourcery.com>
2875
2876 PR 18785
2877 * charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
2878 (cpp_host_to_exec_charset): New function.
2879 * include/cpplib.h: Declare cpp_host_to_exec_charset.
2880
04c90eea
DP
28812005-02-19 Devang Patel <dpatel@apple.com>
2882
2883 * charset.c (_cpp_convert_input): Check '\r' before inserting
2884 '\n' at the end.
c5ff069d 2885
6da55c00
EC
28862005-02-15 Eric Christopher <echristo@redhat.com>
2887
2888 PR preprocessor/19077
2889 * macro.c (cpp_macro_definition): Move handling of whitespace
2890 to PREV_WHITE conditional. Remove overloading of len
2891 variable.
2892
31c3e631
KH
28932005-02-14 Kazu Hirata <kazu@cs.umass.edu>
2894
2895 * directives.c, files.c, init.c, internal.h, macro.c, pch.c,
2896 traditional.c: Update copyright.
2897
be0f1e54
PB
28982005-02-14 Paolo Bonzini <bonzini@gnu.org>
2899
2900 PR bootstrap/19818
2901 * configure.ac: Check for declaration of basename and getopt.
2902 * config.in: Regenerate.
2903 * configure: Regenerate.
2904 * internal.h (ustrcspn): New.
2905 * macro.c (create_iso_definition): Fix allocation of memory.
2906 (padding_token): Add cast to remove const-ness.
2907 * pch.c (cpp_read_state): Use ustrcspn.
2908
ecddfb39
MS
29092005-02-08 Mike Stump <mrs@apple.com>
2910
2911 * files.c (pchf_adder): Remove.
2912 (struct pchf_adder_info): Likewise.
2913 (_cpp_save_file_entries): Write out all files so that #import works.
2914
9fcdd891
JM
29152005-01-23 Joseph S. Myers <joseph@codesourcery.com>
2916
2917 * configure: Regenerate.
2918
ecfd72e7
TS
29192005-01-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2920
2921 * include/cpplib.h (c_lang): Fix comment to say cpp_create_reader.
2922
6c25a4f7 2923 * include/cpplib.h: Also update copyright years.
c5ff069d 2924
942926ad
GK
29252005-01-03 Geoffrey Keating <geoffk@apple.com>
2926
2927 * files.c (_cpp_find_file): Add files found by search_path_exhausted
2928 to the list of all files.
2929
a2566ae9
GDR
29302005-01-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
2931
2932 * internal.h: Update references to Cpp lib filenames.
2933 * directives.c: Likewise.
2934 * init.c: Likewise.
2935 * macro.c: Likewise.
2936 * traditional.c: Likewise.
2937
1b449375
EB
29382004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr>
2939
2940 PR preprocessor/15167
2941 * files.c (destroy_cpp_file): New function.
2942 (should_stack_file): Make a new file if the
2943 compared file is still stacked.
2944
28303828
NN
29452004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
2946
c5ff069d 2947 PR preprocessor/17610
28303828
NN
2948 * directives.c (do_include_common): Error out if an empty filename
2949 is given for #include (or #include_next or #import).
2950
c812785a
RS
29512004-11-27 Roger Sayle <roger@eyesopen.com>
2952 Zack Weinberg <zack@codesourcery.com>
2953
2954 * internal.h: Replace all uses of uchar with unsigned char.
2955 * include/cpp-id-data.h: Likewise. Guard typedef of uchar
2956 with !IN_GCC, so uchar is only defined whilst building libcpp.
2957
f91eaa01
KC
29582004-11-24 Kelley Cook <kcook@gcc.gnu.org>
2959
2960 * aclocal.m4: Regenerate.
2961
f78ce0c2
RS
29622004-11-24 Roger Sayle <roger@eyesopen.com>
2963
2964 PR preprocessor/15824
2965 * configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h>
2966 directly, instead of the non-existant "system.h" and "ansidecl.h".
2967 * configure: Regenerate.
2968
b5b3e36a 29692004-11-23 Daniel Jacobowitz <dan@codesourcery.com>
c5ff069d 2970 Joseph Myers <joseph@codesourcery.com>
b5b3e36a
DJ
2971
2972 * internal.h (struct lexer_state): Add in_deferred_pragma.
2973 * directives.c (struct pragma_entry): Add allow_expansion.
2974 (insert_pragma_entry): Take allow_expansion flag.
2975 (register_pragma): Likewise.
2976 (cpp_register_pragma): Likewise.
2977 (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma.
2978 (do_pragma): Honor allow_expansion.
2979 (cpp_handle_deferred_pragma): Set in_deferred_pragma.
2980 * include/cpplib.h (cpp_register_pragma): Update prototype.
2981
a8e68029 29822004-11-18 Daniel Jacobowitz <dan@codesourcery.com>
c5ff069d 2983 Mark Mitchell <mark@codesourcery.com>
a8e68029
DJ
2984
2985 * configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set
2986 need_64bit_hwint=yes.
2987 * configure: Regenerate.
2988
50f47ee0
JM
29892004-11-09 Joseph S. Myers <joseph@codesourcery.com>
2990
2991 * Makefile.in ($(PACKAGE).pot): New rule. Depend on
2992 po/$(PACKAGE).pot.
2993 (po/$(PACKAGE).pot): Use ":" instead of "," in --keyword
2994 arguments. Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2.
2995 Remove local srcdir path from generated file.
2996
968e08d6 29972004-11-04 Zack Weinberg <zack@codesourcery.com>
c5ff069d 2998 Gerald Pfeifer <gerald@pfeifer.com>
968e08d6
ZW
2999
3000 * internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
3001 as well.
3002
3da3d587
ZW
30032004-10-27 Zack Weinberg <zack@codesourcery.com>
3004
3005 PR 18075
3006 * directives.c (do_pragma): Do not defer pragmas which are unknown.
3007 (cpp_handle_deferred_pragma): Add cast to silence warning.
3008
ac24fc25
JM
30092004-10-14 Joseph S. Myers <jsm@polyomino.org.uk>
3010
3011 * errors.c (_cpp_begin_message): Print "error: " for errors.
3012
7731405b
AJ
30132004-10-10 Andreas Jaeger <aj@suse.de>
3014
3015 * makedepend.c: Include mkdeps.h for prototype of deps_add_vpath.
3016 * Makefile.in (makedepend.o): Add dependency on mkdeps.h.
3017
646544e3
AP
30182004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
3019
3020 * pch.c (cpp_write_pch_state): Remove variable z as it is not
3021 used.
3022 (cpp_read_state): Remove unused variables, m, d and mac_count.
3023
67a74146
PB
30242004-09-29 Per Bothner <per@bothner.com>
3025
3026 * directives.c (cpp_handle_deferred_pragma): Save, clear and restore
3027 cb.line_change. Otherwise do_pragma will call the line_change
3028 call-back with a meaningless line number.
3029
018a4785
ZW
30302004-09-24 Zack Weinberg <zack@codesourcery.com>
3031
3032 * configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to
3033 programs cluster. Use ACX_PROG_CC_WARNING_OPTS,
3034 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS.
3035 * aclocal.m4, configure: Regenerate.
3036 * init.c: Include localedir.h.
3037 * Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables.
3038 (DEFS): Delete.
3039 (.c.o): Use $(ALL_CFLAGS).
3040 (localedir.h, localedir.hs): New rules.
3041 (clean): Use rm -rf to remove directories.
3042 (distclean): Also delete localedir.h and localedir.hs.
3043 (init.o): Update dependencies.
3044
88fa57d7
KC
30452004-09-22 Kelley Cook <kcook@gcc.gnu.org>
3046
3047 * Makefile.in (aclocal.m4): Update dependencies.
3048 * configure.ac (AC_CONFIG_MACRO_DIR): New.
3049 * aclocal.m4, configure: Regenerate.
3050
8f8e9aa5
ZW
30512004-09-17 Zack Weinberg <zack@codesourcery.com>
3052
a29f62d9
ZW
3053 * charset.c (_cpp_destroy_iconv, emit_numeric_escape)
3054 (_cpp_convert_input, _cpp_default_encoding): Add comments.
3055 Some other comments in this file also tweaked.
3056
8f8e9aa5
ZW
3057 * directives.c (do_pragma): Save current buffer position
3058 before lexing the pragma keywords; don't call
3059 _cpp_backup_tokens in the defer_pragmas case.
3060
a2981930
PB
30612004-09-15 Per Bothner <per@bothner.com>
3062
3063 * include/line-map.h (line_map_start): Add parameter names so
3064 preceding comment makes sense.
3065 (linemap_add): Remove from comment mention of non-existing parameter.
3066
21b11495
ZW
30672004-09-09 Matt Austern <austern@apple.com>
3068 Zack Weinberg <zack@codesourcery.com>
3069
3070 * include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
3071 prefixes throughout. Add entry for PRAGMA. Remove
3072 unnecessary "= 0" from EQ.
3073 (enum cpp_ttype): Adjust OP and TK definitions to restore
3074 prefixes, via token-paste.
3075 (CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
3076 Change from #defines to additional cpp_ttype enumerators.
3077 (struct cpp_options): Add defer_pragmas.
3078 (cpp_handle_deferred_pragma): Prototype new interface.
3079
3080 * internal.h (struct cpp_reader): Add directive_result.
3081 * directives.c (struct pragma_entry): Add is_internal field;
3082 give boolean fields type bool.
3083 (start_directive): Initialize pfile->directive_result.type.
3084 (_cpp_do__Pragma): Likewise.
3085 (run_directive): Do not crash if pfile->buffer->prev is NULL.
3086 (insert_pragma_entry): Add 'internal' argument; set new->is_internal
3087 from it.
3088 (register_pragma): New static function, bulk of former
3089 cpp_register_pragma here; add 'internal' argument, pass along
3090 to insert_pragma_entry.
3091 (cpp_register_pragma): Now a wrapper around register_pragma which
3092 always passes false for 'internal' argument.
3093 (_cpp_init_internal_pragmas): Call register_pragma directly, passing
3094 true for 'internal'.
3095 (do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
3096 an internal pragma, save text till the end of the line as a CPP_PRAGMA
3097 token instead of executing the pragma.
3098 (cpp_handle_deferred_pragma): New interface.
3099 * lex.c (token_spellings): Adjust OP and TK definitions to
3100 match changes to cpplib.h.
3101 (_cpp_lex_token): Check for a directive-result token and
3102 return it if present.
3103 (cpp_token_val_index): Handle CPP_PRAGMA.
3104 * macro.c (cpp_builtin_macro_text): Correct comment.
3105 (builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
3106
0fd9e8dd
SB
31072004-09-06 Serge Belyshev <belyshev@lubercy.com>
3108
3109 PR preprocessor/14699
3110 * symtab.c (ht_dump_statistics): Change type of sum_of_squares
3111 from size_t to double.
3112
39b8ce7f
AS
31132004-08-28 Andreas Schwab <schwab@suse.de>
3114 Andreas Jaeger <aj@suse.de>
3115
3116 * configure.ac: Set PACKAGE correctly.
3117 * configure: Regenerated.
3118
5d1f4b27
PB
31192004-08-25 Paolo Bonzini <bonzini@gnu.org>
3120
3121 * Makefile.in: Add back top_builddir.
3122
078e3ffe
PB
31232004-08-25 Paolo Bonzini <bonzini@gnu.org>
3124
3125 * configure.ac: Replace Automake macro invocations
3126 with manual Autoconf checks and substitutions.
3127 * configure: Regenerate.
3128 * aclocal.m4: Regenerate.
3129 * config.in: Regenerate.
3130 * Makefile.am: Removed.
3131 * Makefile.in: Heavy simplification and reorganization.
3132
b3f8d95d
MM
31332004-08-09 Mark Mitchell <mark@codesourcery.com>
3134
3135 * configure.ac (arm*-*-eabi*): New target.
3136 (arm*-*-symbianelf*): Likewise.
3137 * configure: Regenerated.
3138
72bb2c39
BI
31392004-07-24 Bernardo Innocenti <bernie@develer.com>
3140
3141 * internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove.
3142 * directives.c: Use XNEW-family macros from libiberty.
3143 * lex.c: Likewise.
3144 * macro.c: Likewise.
3145 * cpplib.h (cpp_deps_style): Export enum with name.
3146
21b11495 31472004-07-23 Matthias Klose <doko@debian.org>
72bb2c39 3148
21b11495 3149 * init.c (init_library): Use PACKAGE for the text domain.
85eac2a0 3150
a23ee064
AP
31512004-07-16 Andris Pavenis <pavenis@latnet.lv>
3152
3153 PR preprocessor/16366
3154 * internal.h (struct cpp_reader): New field dir_hash.
3155 * files.c (make_cpp_dir): Use dir_hash, not file_hash.
3156 (_cpp_init_files, _cpp_cleanup_files): Update for new field.
3157
a09d4744
NB
31582004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
3159
3160 PR preprocessor/16192
3161 PR preprocessor/15913
3162 PR preprocessor/15572
3163 * expr.c (_cpp_parse_expr): Handle remaining cases where an
3164 expression is missing.
3165 * init.c (post_options): Traditional cpp doesn't do // comments.
3166
f58f7def
PB
31672004-06-30 Per Bothner <per@bothner.com>
3168
3169 * include/line-map.h (fileline): Remove old typedef.
3170 * internal.h (struct cpp_reader): Use source_location typedef instead.
3171
e83d8d43
ZW
31722004-06-26 Zack Weinberg <zack@codesourcery.com>
3173
3174 Partially revert patch of 2004-06-05.
3175 * files.c (search_cache): Remove pfile argument. Don't check
3176 for file that would be found by "" or <> search here...
3177 (_cpp_find_file): ...do it here, before calling find_file_in_dir.
3178 Do not apply directory-of-current-file correction to files
3179 found by this check. Rearrange code slightly.
3180
c0d578e6
GK
31812004-06-21 Geoffrey Keating <geoffk@apple.com>
3182
3183 * files.c (should_stack_file): Correct swapped parameters to call
3184 to cb.read_pch.
3185 * pch.c (cpp_valid_state): Handle -fpreprocessed.
3186
159d5224
PB
31872004-06-15 Paolo Bonzini <bonzini@gnu.org>
3188
3189 * Makefile.in: Regenerate with automake 1.8.5.
3190 * aclocal.m4: Likewise.
3191 * configure: Regenerate.
3192
2fac9c01
ZW
31932004-06-11 Zack Weinberg <zack@codesourcery.com>
3194
3195 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
3196 * configure, config.in: Regenerate.
3197 * system.h: Unconditionally define bool as unsigned char,
3198 BOOL_BITFIELD as unsigned int.
3199 * .cvsignore: New file.
3200
d8044160
GK
32012004-06-09 Geoffrey Keating <geoffk@apple.com>
3202
3203 * traditional.c (push_replacement_text): Set macro->traditional.
3204 (save_replacement_text): Likewise.
3205 * pch.c (cpp_write_pch_state): Don't write list of defined macros.
3206 (struct save_macro_item): Delete.
3207 (struct save_macro_data): Use a character array not the previous
3208 structured format.
3209 (save_macros): Save macro as text not as internal structures.
3210 (cpp_prepare_state): Update for changes to save_macro_data.
3211 (cpp_read_state): Don't read macros defined in PCH. Restore
2cf22451 3212 -D macros as text.
d8044160
GK
3213 * macro.c (create_iso_definition): Honour alloc_subobject.
3214 Clear traditional flag.
3215 (_cpp_create_definition): Honour alloc_subobject.
3216 * lex.c (cpp_token_val_index): New.
3217 * internal.h: Include cpp-id-data.h.
3218 (uchar): Move definition to cpp-id-data.h.
3219 (U): Likewise.
3220 (cpp_macro): Likewise.
3221 * directives.c (struct answer): Move to cpp-id-data.h.
3222 (do_assert): Honour alloc_subobject.
2cf22451
ZW
3223
3224 * include/symtab.h (struct ht): Add field 'alloc_subobject'.
3225 * include/cpplib.h (struct cpp_string): Add GTY marker.
3226 (enum cpp_token_fld_kind): New.
3227 (struct cpp_token): Add GTY markers.
3228 (cpp_token_val_index): Prototype.
3229 (CPP_HASHNODE_VALUE_IDX): New.
3230 (struct cpp_hashnode): Don't skip fields of 'value' when marking.
3231 * include/cpp-id-data.h: New file.
d8044160 3232
0ca8e815
PB
32332004-06-09 Paolo Bonzini <bonzini@gnu.org>
3234
3235 * Makefile.am (all-local): New.
3236 * Makefile.in: Regenerate.
3237
b51fa00f
RS
32382004-06-06 Roger Sayle <roger@eyesopen.com>
3239
3240 * Makefile.am (LIBICONV): Declare.
3241 (makedepend_LDADD): Use LIBICONV.
3242 * Makefile.in: Regenerate.
3243
5e2f3f39
AP
32442004-06-05 Andrew Pinski <pinskia@physics.uc.edu>
3245
3246 * Makefile.am (LIBINTL): Declare
3247 (makedepend_LDADD): Use LIBINTL.
3248 * Makefile.in: Regenerate.
3249
c6e83800
ZW
32502004-06-05 Zack Weinberg <zack@codesourcery.com>
3251
3252 * Makefile.am: Add makedepend.
3253 * Makefile.in, aclocal.m4: Regenerate.
3254 * charset.c: Insert a space to avoid a warning.
3255 * directives.c: Include mkdeps.h.
3256 (_cpp_handle_directive): Reenable macro expander if appropriate.
3257 (undefine_macros): Inline body of _cpp_free_definition for speed.
3258 Do not call undef callback or _cpp_warn_if_unused_macro.
3259 (cpp_get_deps): New interface.
3260 * files.c (search_cache): Add pfile argument. Check for file
3261 that would be found by "" or <> search here...
3262 (_cpp_find_file): ...not here. Correct recorded start_dir of
3263 files found by directory-of-current-file search that would be
3264 found by "" or <> search.
3265 * init.c (cpp_add_dependency_target): Delete.
3266 * internal.h (struct lexer_state): Add discarding_output flag.
3267 * lex.c (lex_identifier): Compute hash function while scanning.
3268 * macro.c (cpp_scan_nooutput): Disable macro expansion outside
3269 directives.
3270 * makedepend.c: New file.
3271 * mkdeps.c (struct deps): Add vpath vector.
3272 (apply_vpath, deps_add_vpath): New function.
3273 (deps_free): Free vpath vector.
3274 (deps_add_dep, deps_add_target): Use apply_vpath.
3275 * symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH.
3276 (ht_lookup_with_hash): New function.
3277 * cpplib.h, mkdeps.h: Update prototypes.
3278 * symtab.h: Update prototypes.
3279 (HT_HASHSTEP, HT_FINISH): New macros.
3280
b453c95f
GK
32812004-05-29 Geoffrey Keating <geoffk@apple.com>
3282
3283 * symtab.c (ht_create): Set entries_owned.
3284 (ht_destroy): Honour entries_owned.
3285 (ht_expand): Likewise.
3286 (ht_load): New.
2cf22451
ZW
3287 * include/symtab.h (struct ht): New field 'entries_owned'
3288 (ht_load): New prototype.
b453c95f 3289
963e23c5
PB
32902004-05-26 Paolo Bonzini <bonzini@gnu.org>
3291
3292 PR bootstrap/15651
3293 * configure.ac: Fix m4 quoting when picking
3294 the size of HOST_WIDE_INT.
3295 * configure: Regenerate.
3296
0429bc77
PB
32972004-05-25 Paolo Bonzini <bonzini@gnu.org>
3298
3299 * Makefile.am: the correct directory for
3300 gettext include files is given by @INCINTL@.
3301 * Makefile.in: Regenerate.
3302
c86dd7db
PB
33032004-05-24 Paolo Bonzini <bonzini@gnu.org>
3304
3305 * system.h [!ENABLE_NLS]: dgettext takes two
3306 parameters.
3307
4f4e53dd
PB
33082004-05-23 Paolo Bonzini <bonzini@gnu.org>
3309
3310 Moved libcpp from the gcc subdirectory to the toplevel.
3311 * Makefile.am: New file.
3312 * Makefile.in: Regenerate.
3313 * configure.ac: New file.
3314 * configure: Regenerate.
3315 * config.in: Regenerate.
3316 * charset.c: Moved from gcc/cppcharset.c. Add note about
3317 brokenness of input charset detection. Adjust for change
3318 in name of cppucnid.h.
3319 * errors.c: Moved from gcc/cpperror.c. Do not include intl.h.
3320 * expr.c: Moved from gcc/cppexp.c.
3321 * files.c: Moved from gcc/cppfiles.c. Do not include intl.h.
3322 Remove #define of O_BINARY, it is in system.h.
3323 * identifiers.c: Moved from gcc/cpphash.c.
3324 * internal.h: Moved from gcc/cpphash.h. Change header
3325 guard name. All other files adjusted to match name change.
3326 * init.c: Moved from gcc/cppinit.c.
3327 (init_library) [ENABLE_NLS]: Call bindtextdomain.
3328 * lex.c: Moved from gcc/cpplex.c.
3329 * directives.c: Moved from gcc/cpplib.c.
3330 * macro.c: Moved from gcc/cppmacro.c.
3331 * pch.c: Moved from gcc/cpppch.c. Do not include intl.h.
3332 * traditional.c: Moved from gcc/cpptrad.c.
3333 * ucnid.h: Moved from gcc/cppucnid.h. Change header
3334 guard name.
3335 * ucnid.pl: Moved from gcc/cppucnid.pl.
3336 * ucnid.tab: Moved from gcc/cppucnid.tab. Change header
3337 guard name.
3338 * symtab.c: Moved from gcc/hashtable.c.
3339 * line-map.c: Moved from gcc. Do not include intl.h.
3340 * mkdeps.c: Moved from gcc.
3341 * system.h: New file.
2cf22451
ZW
3342 * include/cpplib.h: Moved from gcc. Change header guard name.
3343 * include/line-map.h: Moved from gcc. Change header guard name.
3344 * include/mkdeps.h: Moved from gcc. Change header guard name.
3345 * include/symtab.h: Moved from gcc/hashtable.h. Change header
3346 guard name.