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