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