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