]> git.ipfire.org Git - thirdparty/gcc.git/blame - libcpp/ChangeLog
tree-ssa-ccp.c (prop_value_d): Rename to ...
[thirdparty/gcc.git] / libcpp / ChangeLog
CommitLineData
909eb89c
MP
12014-09-17 Marek Polacek <polacek@redhat.com>
2
3 PR c/61854
4 * init.c (struct lang_flags): Remove cplusplus_comments.
5 (cpp_set_lang): Likewise.
6 (post_options): Likewise.
7 * lex.c (_cpp_lex_direct): Disallow C++ style comments in C90/C94.
8
1ef33fd4
MLI
92014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
10
11 * include/cpplib.h (struct cpp_options): Declare warn_normalize as
12 int instead of enum.
13
2b71f4a4
MLI
142014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
15
16 * macro.c (replace_args): Use cpp_pedwarning, cpp_warning and
17 CPP_W flags.
18 * include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
19 * init.c (cpp_create_reader): Do not init to -1 here.
20 * expr.c (num_binary_op): Use cpp_pedwarning.
21
81b5d104
MLI
222014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
23
24 * directives.c (check_eol_1): New.
25 (check_eol_endif_labels): New.
26 (check_eol): Call check_eol_1.
27 (do_else,do_endif): Call check_eol_endif_labels.
28
b753b37b
MLI
292014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
30
31 * macro.c (warn_of_redefinition): Suppress warnings for builtins
32 that lack the NODE_WARN flag, unless Wbuiltin-macro-redefined.
33 (_cpp_create_definition): Use Wbuiltin-macro-redefined for
34 builtins that lack the NODE_WARN flag.
35 * directives.c (do_undef): Likewise.
36 * init.c (cpp_init_special_builtins): Do not change flags
37 depending on Wbuiltin-macro-redefined.
38
7c05e50c
ESR
392014-08-28 Edward Smith-Rowland <3dw4rd@verizon.net>
40
41 PR cpp/23827 - standard C++ should not have hex float preprocessor
42 tokens
43 * libcpp/init.c (lang_flags): Change CXX98 flag for extended numbers
44 from 1 to 0.
45 * libcpp/expr.c (cpp_classify_number): Weite error message for improper
46 use of hex floating literal.
47
e4276ba5
ESR
482014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
49
50 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z;
51 Rename CLK_GNUCXX1Y, CLK_CXX1Y to CLK_GNUCXX14, CLK_CXX14;
52 * init.c (struct lang_flags lang_defaults): Add column for trigraphs;
53 Add rows for CLK_GNUCXX1Z, CLK_CXX1Z; (cpp_set_lang): Set trigraphs;
54 (cpp_init_builtins): Set __cplusplus to 201402L for C++14;
55 Set __cplusplus to 201500L for C++17.
56 * expr.c (cpp_classify_number): Change C++1y to C++14 in binary
57 constants error message.
58
dd3ff077
MP
592014-08-20 Marek Polacek <polacek@redhat.com>
60
61 * include/cpplib.h (cpp_options): Use signed char.
62 * lex.c (_cpp_lex_direct): Don't warn in C++ mode.
63
3f4f5c9a
MP
642014-08-19 Marek Polacek <polacek@redhat.com>
65
66 * lex.c (_cpp_lex_direct): Fix a typo.
67
177cce46
MP
682014-08-19 Marek Polacek <polacek@redhat.com>
69
70 * charset.c (_cpp_valid_ucn): Warn only if -Wc90-c99-compat.
71 * lex.c (_cpp_lex_direct): Likewise.
72 * macro.c (replace_args): Likewise.
73 (parse_params): Likewise.
74 * include/cpplib.h (cpp_options): Change cpp_warn_c90_c99_compat
75 to char.
76
f3bede71
MP
772014-08-10 Marek Polacek <polacek@redhat.com>
78
79 PR c/51849
80 * lex.c (_cpp_lex_direct): Warn when -Wc90-c99-compat is in effect.
81 * charset.c (_cpp_valid_ucn): Likewise.
82 * include/cpplib.h (cpp_options): Add cpp_warn_c90_c99_compat.
83 * macro.c (replace_args): Warn when -Wc90-c99-compat is in effect.
84 (parse_params): Likewise.
85
61eb99f6
MP
862014-07-27 Marek Polacek <polacek@redhat.com>
87
88 PR c/61861
89 * macro.c (builtin_macro): Add location parameter. Set
90 location of builtin macro to the expansion point.
91 (enter_macro_context): Pass location to builtin_macro.
92
c468587a
DS
932014-07-16 Dodji Seketeli <dodji@redhat.com>
94
95 Support location tracking for built-in macro tokens
96 * include/line-map.h (line_maps::builtin_location): New data
97 member.
98 (line_map_init): Add a new parameter to initialize the new
99 line_maps::builtin_location data member.
100 * line-map.c (linemap_init): Initialize the
101 line_maps::builtin_location data member.
102 * macro.c (builtin_macro): Create a macro map and track the token
103 resulting from the expansion of a built-in macro.
104
3976796b
ESR
1052014-07-10 Edward Smith-Rowland <3dw4rd@verizon.net>
106 Jonathan Wakely <jwakely@redhat.com>
107
c786fca6 108 PR preprocessor/61389
3976796b
ESR
109 * macro.c (_cpp_arguments_ok, parse_params, create_iso_definition):
110 Warning messages mention C++11 in c++ mode and C99 in c mode.
111 * lex.c (lex_identifier_intern, lex_identifier): Ditto
112
7aee8646
ESR
1132014-07-09 Edward Smith-Rowland <3dw4rd@verizon.net>
114
115 PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped
116 by preprocessor
117 * lex.c (lex_raw_string ()): Do not warn about invalid suffix
118 if skipping. (lex_string ()): Ditto.
119
98ba7482
ESR
1202014-06-04 Edward Smith-Rowland <3dw4rd@verizon.net>
121
122 PR c++/61038
123 * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
124 Combine user-defined escape logic with the other string and char logic.
125
edf6ddf6
RB
1262014-05-26 Richard Biener <rguenther@suse.de>
127
128 * configure.ac: Remove long long and __int64 type checks,
129 add check for uint64_t and fail if that wasn't found.
130 * include/cpplib.h (cpp_num_part): Use uint64_t.
131 * config.in: Regenerate.
132 * configure: Likewise.
133
28939589
MP
1342014-05-21 Marek Polacek <polacek@redhat.com>
135
136 PR c/61212
137 * files.c (find_file_in_dir): Add parens around &&.
138
49039169
ESR
1392014-05-20 Edward Smith-Rowland <3dw4rd@verizon.net>
140
28939589 141 PR c++/61038
49039169
ESR
142 * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
143 Check for user-defined literal strings and user-defined literal chars
144 to escape necessary characters.
145
54da09ee
RB
1462014-05-20 Richard Biener <rguenther@suse.de>
147
148 * configure.ac: Copy gcc logic of detecting a 64bit type.
149 Remove HOST_WIDE_INT define.
150 * include/cpplib.h: typedef cpp_num_part to a 64bit type,
151 similar to how hwint.h does it.
152 * config.in: Regenerate.
153 * configure: Likewise.
154
eac3e079
JY
1552014-05-09 Joey Ye <joey.ye@arm.com>
156
157 * files.c (find_file_in_dir): Always try to shorten for DOS
158 non-system headers.
159 * init.c (ENABLE_CANONICAL_SYSTEM_HEADERS): Default enabled for DOS.
160
f543058d
RB
1612014-05-07 Richard Biener <rguenther@suse.de>
162
163 * configure.ac: Always set need_64bit_hwint to yes.
164 * configure: Regenerated.
165
d9f069ab
RO
1662014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
167
168 * lex.c: Remove Solaris 9 reference.
169
341c653c
WL
1702014-02-24 Walter Lee <walt@tilera.com>
171
172 * configure.ac: Change "tilepro" triplet to "tilepro*".
173 * configure: Regenerate.
174
179652df
JJ
1752014-02-19 Jakub Jelinek <jakub@redhat.com>
176
177 PR preprocessor/58844
178 * macro.c (enter_macro_context): Only push
179 macro_real_token_count (macro) tokens rather than
180 macro->count tokens, regardless of
181 CPP_OPTION (pfile, track-macro-expansion).
182
acf601ae
JJ
1832014-02-07 Jakub Jelinek <jakub@redhat.com>
184
185 PR preprocessor/56824
186 * line-map.c (get_combined_adhoc_loc, linemap_get_expansion_line,
187 linemap_get_expansion_filename, linemap_location_in_system_header_p,
188 linemap_location_from_macro_expansion_p,
189 linemap_macro_loc_to_spelling_point, linemap_macro_loc_to_def_point,
190 linemap_macro_loc_to_exp_point, linemap_expand_location): Fix
191 formatting.
192 (linemap_compare_locations): Look through adhoc locations for both
193 l0 and l1.
194
7ecc3eb9
DS
1952014-01-23 Dodji Seketeli <dodji@redhat.com>
196
197 PR PR preprocessor/58580
198 * include/line-map.h (linemap_get_file_highest_location): Declare
199 new function.
200 * line-map.c (linemap_get_file_highest_location): Define it.
201
35c3d610
RS
2022014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
203
204 Update copyright years
205
3a4efce7
JM
2062013-12-09 Joseph Myers <joseph@codesourcery.com>
207
208 PR preprocessor/55715
209 * expr.c (num_binary_op): Implement subtraction directly rather
210 than with negation and falling through into addition case.
211
aadce585
BS
2122013-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
213
214 * lex.c (search_line_fast): Correct for little endian.
215
d3f4ff8b
JM
2162013-11-15 Joseph Myers <joseph@codesourcery.com>
217
218 * ucnid.tab: Add C11 and C11NOSTART data.
219 * makeucnid.c (digit): Rename enum value to N99.
220 (C11, N11, all_languages): New enum values.
221 (NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
222 (flags, decomp, combining_value): Use NUM_CODE_POINTS as array
223 size.
224 (decomp): Use unsigned int as element type.
225 (all_decomp): New array.
226 (read_ucnid): Handle C11 and C11NOSTART. Use MAX_CODE_POINT.
227 (read_table): Use MAX_CODE_POINT. Store all decompositions in
228 all_decomp.
229 (read_derived): Use MAX_CODE_POINT.
230 (write_table): Use NUM_CODE_POINTS. Print N99, C11 and N11
231 flags. Print whole array variable declaration rather than just
232 array contents.
233 (char_id_valid, write_context_switch): New functions.
234 (main): Call write_context_switch.
235 * ucnid.h: Regenerate.
236 * include/cpplib.h (struct cpp_options): Add c11_identifiers.
237 * init.c (struct lang_flags): Add c11_identifiers.
238 (cpp_set_lang): Set c11_identifiers option from selected language.
239 * internal.h (struct normalize_state): Document "previous" as
240 previous starter character.
241 (NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
242 * charset.c (DIG): Rename enum value to N99.
243 (C11, N11): New enum values.
244 (struct ucnrange): Give name to struct. Use short for flags and
245 unsigned int for end of range. Include ucnid.h for whole variable
246 declaration.
247 (ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
248 Allow for C11 in determining valid characters and valid start
249 characters. Use check_nfc for non-Hangul context-dependent
250 checks. Only store starter characters in nst->previous.
251 (_cpp_valid_ucn): Pass new argument to
252 NORMALIZE_STATE_UPDATE_IDNUM.
253 * lex.c (lex_identifier): Pass new argument to
254 NORMALIZE_STATE_UPDATE_IDNUM. Call NORMALIZE_STATE_UPDATE_IDNUM
255 after initial non-UCN part of identifier.
256 (lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.
257
54848ff8
JM
2582013-11-15 Joseph Myers <joseph@codesourcery.com>
259
260 * ucnid.tab: Mark C99 digits as [C99DIG].
261 * makeucnid.c (read_ucnid): Handle [C99DIG].
262 (read_table): Don't check for digit characters.
263 * ucnid.h: Regenerate.
264
5157b91e
TB
2652013-11-06 Tobias Burnus <burnus@net-b.de>
266
267 * macro.c (_cpp_builtin_macro_text): Correct
268 wording of two warnings.
269
e8ff5196
TB
2702013-11-05 Tobias Burnus <burnus@net-b.de>
271
272 * include/cpplib.h (CPP_W_DATE_TIME): Added.
273 (cpp_options): Add warn_date_time.
274 * init.c (cpp_create_reader): Init it.
275 * macro.c (_cpp_builtin_macro_text): Warn when
276 __DATE__/__TIME__/__TIMESTAMP__ is used.
277
7057e645
ESR
2782013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
279
e8ff5196 280 Implement C++14 digit separators.
7057e645
ESR
281 * include/cpplib.h (cpp_options): Add digit_separators flag.
282 * internal.h (DIGIT_SEP(c)): New macro.
283 * expr.c (cpp_classify_number): Check improper placement of digit sep;
284 (cpp_interpret_integer): Skip over digit separators.
285 * init.c (lang_flags): Add digit_separators flag; (lang_defaults): Add
286 digit separator flags per language; (cpp_set_lang): Set
287 digit_separators
288 * lex.c (lex_number): Add digits separator to allowable characters for
289 C++14.
290
459260ec
DM
2912013-10-15 David Malcolm <dmalcolm@redhat.com>
292
293 * Makefile.in (PICFLAG): New.
294 (ALL_CFLAGS): Add PICFLAG.
295 (ALL_CXXFLAGS): Likewise.
296 * configure.ac: Add --enable-host-shared, setting up new
297 PICFLAG variable.
298 * configure: Regenerate.
299
fd6eea0c
RE
3002013-08-07 Richard Earnshaw <rearnsha@arm.com>
301
302 * configure.ac: Set need_64bit_hwint for all arm targets.
303 * configure: Regenerated.
304
8cf88735
JJ
3052013-07-20 Jakub Jelinek <jakub@redhat.com>
306
307 PR preprocessor/57620
308 * lex.c (lex_raw_string): Undo phase1 and phase2 transformations
309 between R" and final " rather than only in between R"del( and )del".
310
87e356ba
JJ
3112013-07-10 Jakub Jelinek <jakub@redhat.com>
312
d5e48350
JJ
313 PR preprocessor/57824
314 * lex.c (lex_raw_string): Allow reading new-lines if
315 in_deferred_pragma or if parsing_args and there is still
316 data in the current buffer.
317
c26302d5
JJ
318 * include/cpplib.h (cpp_token_val_index): Change parameter type to
319 const cpp_token *.
320 * lex.c (cpp_token_val_index): Likewise.
321
87e356ba
JJ
322 PR preprocessor/57757
323 * lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING
324 or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that
325 starts if a-zA-Z_.
326
c865f923
ESR
3272013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net>
328
329 * lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
330 as concatenated literal and macro to just the patterns found in
331 inttypes.h; (is_macro()): New.
332
39953c79
DC
3332013-06-24 Dehao Chen <dehao@google.com>
334
335 * files.c (_cpp_stack_include): Fix the highest_location when header
336 file is guarded by #ifndef and is included twice.
337
01187df0
JJ
3382013-04-28 Jakub Jelinek <jakub@redhat.com>
339
340 N3472 binary constants
341 * include/cpplib.h (struct cpp_options): Fix a typo in user_literals
342 field comment. Add binary_constants field.
343 * init.c (struct lang_flags): Add binary_constants field.
344 (lang_defaults): Add bin_cst column to the table.
345 (cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
346 * expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
347 in diagnostics. Accept binary constants if
348 CPP_OPTION (pfile, binary_constants) even when pedantic. Adjust
349 pedwarn message.
350
61949153
PC
3512013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
352
353 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
354 * init.c (lang_defaults): Add defaults for the latter.
355 (cpp_init_builtins): Define __cplusplus as 201300L for the latter.
356 * lex.c (_cpp_lex_direct): Update.
357
994a4cc0
SH
3582013-04-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
359
360 PR target/56771
361 * configure.ac: Require 64-bit int for arm*-*-rtems*.
362 * configure: Regenerate.
363
28937f11
JJ
3642013-03-06 Jakub Jelinek <jakub@redhat.com>
365
366 PR middle-end/56461
367 * internal.h (struct cpp_buffer): Add to_free field.
368 (_cpp_pop_file_buffer): Add third argument.
369 * files.c (_cpp_stack_file): Set buffer->to_free.
370 (_cpp_pop_file_buffer): Add to_free argument. Free to_free
371 if non-NULL, and if equal to file->buffer_start, also clear
372 file->buffer{,_start,_valid}.
373 * directives.c (_cpp_pop_buffer): Pass buffer->to_free
374 to _cpp_pop_file_buffer.
375
3b8af25b
JJ
3762013-03-01 Jakub Jelinek <jakub@redhat.com>
377
378 PR middle-end/56461
379 * files.c (_cpp_save_file_entries): Free result at the end.
380 * pch.c (cpp_string_free): New function.
381 (cpp_save_state): Use it in htab_create call.
382 (cpp_write_pch_deps): Free ss->defs. Destroy ss->definedhash.
383
1a80db97
JJ
3842013-02-28 Jakub Jelinek <jakub@redhat.com>
385
15fd8332
JJ
386 * files.c (_cpp_find_file): If returning early, before storing
387 something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
388 on it. Access *hash_slot using void * type rather than
389 struct file_hash_entry * to avoid aliasing issues.
390
1a80db97
JJ
391 * configure.ac: Don't define ENABLE_CHECKING whenever
392 --enable-checking is seen, instead use similar --enable-checking=yes
393 vs. --enable-checking=release default as gcc/ subdir has and
394 define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
395 Define ENABLE_VALGRIND_CHECKING if requested.
396 * lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
397 struct first in the allocated buffer and result->base after it.
398 (_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
399 instead of buff->base.
400 * config.in: Regenerated.
401 * configure: Regenerated.
402
561f7fc7
ESR
4032013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net>
404
405 PR c++/55582
61949153 406 * lex.c (lex_raw_string): Allow string literal with suffix
561f7fc7
ESR
407 beginning with 's' to be parsed as a C++11 user-defined literal.
408
500f3ed9
RS
4092013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
410
411 Update copyright years.
412
1582c677
PC
4132013-01-04 Paolo Carlini <paolo.carlini@oracle.com>
414
415 PR c++/54526 (again)
416 * lex.c (_cpp_lex_direct): In C++11 mode, implement 2.5 p3, bullet 2.
417
8ac16127
MG
4182013-01-03 Marc Glisse <marc.glisse@inria.fr>
419
420 PR bootstrap/50177
421 * line-map.c (get_combined_adhoc_loc): Cast from extern "C" type.
422 (new_linemap): Likewise.
423 (linemap_enter_macro): Likewise.
424
f41e5bd1
JJ
4252012-12-03 Jakub Jelinek <jakub@redhat.com>
426
427 PR bootstrap/55380
428 PR other/54691
429 * files.c (read_file_guts): Allocate extra 16 bytes instead of
430 1 byte at the end of buf. Pass size + 16 instead of size
431 to _cpp_convert_input.
432 * charset.c (_cpp_convert_input): Reallocate if there aren't
433 at least 16 bytes beyond to.len in the buffer. Clear 16 bytes
434 at to.text + to.len.
435
31962032
SE
4362012-11-21 Steve Ellcey <sellcey@mips.com>
437
438 PR pch/55399
439 * files.c (pch_open_file): Fix check for implicit_preinclude.
440
5dc99c46
SB
4412012-11-16 Simon Baldwin <simonb@google.com>
442
443 * include/cpplib.h (struct cpp_options): Add canonical_system_headers.
444 * files.c (find_file_in_dir): Call maybe_shorter_path() only if
445 canonical_system_headers is set.
446 * init.c (cpp_create_reader): Initialize canonical_system_headers.
447 * configure.ac: Add new --enable-canonical-system-headers.
448 * configure: Regenerate.
449 * config.in: Regenerate.
450
a4a0016d
ESR
4512012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net>
452
453 PR c++/54413
454 * include/cpplib.h (cpp_interpret_float_suffix): Add cpp_reader* arg.
455 (cpp_interpret_int_suffix): Add cpp_reader* arg.
456 * init.c (cpp_create_reader): Iitialize new flags.
457 * expr.c (interpret_float_suffix): Use new flags.
458 (cpp_interpret_float_suffix): Add cpp_reader* arg.
459 (interpret_int_suffix): Use new flags.
460 (cpp_interpret_int_suffix): Add cpp_reader* arg.
461 (cpp_classify_number): Adjust calls to interpret_x_suffix.
462
04ce690f
IB
4632012-10-23 Ian Bolton <ian.bolton@arm.com>
464 Jim MacArthur <jim.macarthur@arm.com>
465 Marcus Shawcroft <marcus.shawcroft@arm.com>
466 Nigel Stephens <nigel.stephens@arm.com>
467 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
468 Richard Earnshaw <rearnsha@arm.com>
469 Sofiane Naci <sofiane.naci@arm.com>
470 Stephen Thomas <stephen.thomas@arm.com>
471 Tejas Belagod <tejas.belagod@arm.com>
472 Yufeng Zhang <yufeng.zhang@arm.com>
473
474 * configure.ac: Enable AArch64.
475 * configure: Regenerate.
476
1efcb8c6
JM
4772012-10-23 Joseph Myers <joseph@codesourcery.com>
478
479 * files.c (struct _cpp_file): Add implicit_preinclude.
480 (pch_open_file): Allow a previously opened implicitly included
481 file.
482 (_cpp_find_file): Add implicit_preinclude argument. Free file and
483 do not call open_file_failed if implicit_preinclude. Store
484 implicit_preinclude value.
485 (_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date):
486 Update calls to _cpp_find_file.
487 (_cpp_stack_include): Handle IT_DEFAULT.
488 (cpp_push_default_include): New.
489 * include/cpplib.h (cpp_push_default_include): Declare.
490 * init.c (cpp_read_main_file): Update call to _cpp_find_file.
491 * internal.h (enum include_type): Add IT_DEFAULT.
492 (_cpp_find_file): Update prototype.
493
55e7f907
TB
4942012-10-15 Tobias Burnus <burnus@net-b.de>
495
496 * files.c (read_file_guts, _cpp_save_file_entries): Free memory
497 before returning.
498 * lex.c (warn_about_normalization): Ditto.
499 * mkdeps.c (deps_save): Ditto.
500 * pch.c (cpp_valid_state): Ditto.
501
f591bd8f
FW
5022012-10-04 Florian Weimer <fweimer@redhat.com>
503
504 * directives.c (do_pragma_warning_or_error): New.
505 (do_pragma_warning): New.
506 (do_pragma_error): New.
507 (_cpp_init_internal_pragmas): Register new pragmas.
508
ec6e0399
DC
5092012-09-25 Dehao Chen <dehao@google.com>
510
511 PR middle-end/54704
512 * line-map.c (location_adhoc_data_hash): Fix the hash function.
513
52187008
DC
5142012-09-25 Dehao Chen <dehao@google.com>
515
516 PR middle-end/54645
517 * include/line-map.h (location_adhoc_data): Move location_adhoc_data
518 into GC.
519 (location_adhoc_data_map): Likewise.
520 (line_maps): Likewise.
521 (rebuild_location_adhoc_htab): New Function.
522 * line-map.c (+rebuild_location_adhoc_htab): new Funcion.
523 (get_combined_adhoc_loc): Move location_adhoc_data into GC.
524 (location_adhoc_data_fini): Likewise.
525 (linemap_init): Likewise.
526 (location_adhoc_data_init): Remove Function.
527
5368224f
DC
5282012-09-19 Dehao Chen <dehao@google.com>
529
530 * include/line-map.h (MAX_SOURCE_LOCATION): New value.
531 (location_adhoc_data_fini): New.
532 (get_combined_adhoc_loc): New.
533 (get_data_from_adhoc_loc): New.
534 (get_location_from_adhoc_loc): New.
535 (location_adhoc_data_map): New.
536 (COMBINE_LOCATION_DATA): New.
537 (IS_ADHOC_LOC): New.
538 (expanded_location): New field.
539 (line_maps): New field.
540 * line-map.c (location_adhoc_data): New.
541 (location_adhoc_data_hash): New.
542 (location_adhoc_data_eq): New.
543 (location_adhoc_data_update): New.
544 (get_combined_adhoc_loc): New.
545 (get_data_from_adhoc_loc): New.
546 (get_location_from_adhoc_loc): New.
547 (location_adhoc_data_init): New.
548 (location_adhoc_data_fini): New.
549 (linemap_init): Initialize location_adhoc_data.
550 (linemap_lookup): Change to use new location.
551 (linemap_ordinary_map_lookup): Likewise.
552 (linemap_macro_map_lookup): Likewise.
553 (linemap_macro_map_loc_to_def_point): Likewise.
554 (linemap_macro_map_loc_unwind_toward_spel): Likewise.
555 (linemap_get_expansion_line): Likewise.
556 (linemap_get_expansion_filename): Likewise.
557 (linemap_location_in_system_header_p): Likewise.
558 (linemap_location_from_macro_expansion_p): Likewise.
559 (linemap_macro_loc_to_spelling_point): Likewise.
560 (linemap_macro_loc_to_def_point): Likewise.
561 (linemap_macro_loc_to_exp_point): Likewise.
562 (linemap_resolve_location): Likewise.
563 (linemap_unwind_toward_expansion): Likewise.
564 (linemap_unwind_to_first_non_reserved_loc): Likewise.
565 (linemap_expand_location): Likewise.
566 (linemap_dump_location): Likewise.
567 (linemap_line_start): Likewise.
568
f3d25c65
DS
5692012-05-25 Dodji Seketeli <dodji@redhat.com>
570
571 PR preprocessor/53469
572 * directives.c (do_pragma): Use the virtual location for the
573 pragma token, instead of its spelling location.
574
0823efed
DN
5752012-08-14 Diego Novillo <dnovillo@google.com>
576
577 Merge from cxx-conversion branch. Configury.
578
579 * Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
580 * configure.ac: Likewise.
581 * configure: Regenerate.
582
5832012-08-14 Lawrence Crowl <crowl@google.com>
584
585 Merge from cxx-conversion branch. New C++ hash table.
586
587 * include/symtab.h (typedef struct ht hash_table): Change the typedef
588 name to cpp_hash_table. Update all users of the typedef.
589
c0fd3497
LB
5902012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
591
592 * include/line-map.h (line_map_macro): Use the "atomic" GTY option
593 for the macro_locations field.
594
d35d1c0f
UB
5952011-06-19 Uros Bizjak <ubizjak@gmail.com>
596
597 * lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
598 __builtin_ia32_pcmpestri128 instead of asm.
599
d86d2119
DA
6002012-06-04 Dimitrios Apostolou <jimis@gmx.net>
601
602 * line-map.c (linemap_enter_macro): Don't zero max_column_hint in
603 every macro. This improves performance by reducing the number of
604 reallocations when track-macro-expansion is on.
605
7ca643e1
DS
6062012-06-04 Dodji Seketeli <dodji@redhat.com>
607
608 PR preprocessor/53463
609 * line-map.c (linemap_location_in_system_header_p): For built-in
610 macro tokens, check the first expansion point location that is not
611 for a token coming from a built-in macro.
612
7d9641cc
JM
6132012-05-29 Joseph Myers <joseph@codesourcery.com>
614
615 * directives.c: Fix typos.
616 * include/line-map.h: Fix typos.
617 * line-map.c: Fix typos.
618 * macro.c: Fix typos.
619
53a103d3
DS
6202012-05-25 Dodji Seketeli <dodji@redhat.com>
621
622 PR bootstrap/53459
623 * lex.c (search_line_fast): Avoid unused local typedefs to simulate
624 a static assertion.
625
828a7f76
DS
6262012-05-29 Dodji Seketeli <dodji@redhat.com>
627
628 PR preprocessor/53229
629 * internal.h (cpp_reader::set_invocation_location): Remove.
630 (cpp_reader::about_to_expand_macro_p): New member flag.
631 * directives.c (do_pragma): Remove Kludge as
632 pfile->set_invocation_location is no more.
633 * macro.c (cpp_get_token_1): Do away with the use of
634 cpp_reader::set_invocation_location. Just collect the macro
635 expansion point when we are about to expand the top-most macro.
636 Do not override cpp_reader::about_to_expand_macro_p.
637 This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
638 properly handle locations of expansion points.
639 (cpp_get_token_with_location): Adjust, as
640 cpp_reader::set_invocation_location is no more.
641 (paste_tokens): Take a virtual location parameter for
642 the LHS of the pasting operator. Use it in diagnostics. Update
643 comments.
644 (paste_all_tokens): Tighten the assert. Propagate the location of
645 the expansion point when no virtual locations are available.
646 Pass the virtual location to paste_tokens.
647 (in_macro_expansion_p): New static function.
648 (enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
649 flag until we really start expanding the macro.
650
0b2c4be5
DS
6512012-05-16 Dodji Seketeli <dodji@redhat.com>
652
653 PR preprocessor/7263
654 * include/cpplib.h (cpp_classify_number): Take a location
655 parameter.
656 * expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic
657 macros that take a location parameter.
658 (cpp_classify_number): Take a (virtual) location parameter. Use
659 it for diagnostics. Adjust comments.
660 (eval_token): Take a location parameter. Pass it to
661 cpp_classify_number and to diagnostic routines.
662 (_cpp_parse_expr): Use virtual locations of tokens when parsing
663 expressions. Pass a virtual location to eval_token and to
664 diagnostic routines.
665
638d2065
TG
6662012-05-10 Tristan Gingold <gingold@adacore.com>
667
668 * expr.c (interpret_float_suffix): Add a guard.
669
3ad64f53
DS
6702012-05-02 Dodji Seketeli <dodji@redhat.com>
671
672 Properly initialize cpp_context in destringize_and_run
673 * directives.c (destringize_and_run): Properly initialize the new
674 context.
675 * macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
676 the initial base context, which has the same life time as the
677 current instance of cpp_file.
678
b193dfa8
MLI
6792012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
680 Dodji Seketeli <dodji@seketeli.org>
681
3efc2959 682 PR c++/52974
b193dfa8
MLI
683 * libcpp/files.c (maybe_shorter_path): New.
684 (find_file_in_dir): Use it.
685
4e65a470
DS
6862012-04-30 Dodji Seketeli <dodji@redhat.com>
687
51fce2d3
DS
688 Switch -ftrack-macro-expansion=2 on by default.
689 * init.c (cpp_create_reader): Switch -ftrack-macro-expansion=2 on
690 by default. Add comments.
691
c4ca1a09
DS
692 Strip "<built-in>" loc from displayed expansion context
693 * include/line-map.h (linemap_unwind_toward_expansion): Fix typo
694 in comment.
695 (linemap_unwind_to_first_non_reserved_loc): Declare new function.
696 * line-map.c (linemap_unwind_to_first_non_reserved_loc): Define
697 new function.
698
3600218c
DS
699 Fix expansion point loc for macro-like tokens
700 * macro.c (macro_of_context): New static function.
701 (_cpp_push_token_context, push_extended_tokens_context): If the
702 macro argument is NULL, it means we are continuing the expansion
703 of the current macro, if any. Update comments.
704 (_cpp_pop_context): Re-enable expansion of the macro only when we
705 are really out of the context of the current expansion.
706
0ff2b8a0
DS
707 Fix token pasting with -ftrack-macro-expansion
708 * macro.c (paste_all_tokens): Put the token resulting from pasting
709 into an extended token context with -ftrack-macro-location is in
710 effect.
711
4e65a470
DS
712 Fix cpp_sys_macro_p with -ftrack-macro-expansion
713 * macro.c (cpp_sys_macro_p): Support -ftrack-macro-expansion.
714
112448b4
DS
7152012-04-29 Dodji Seketeli <dodji@redhat.com>
716
717 * lex.c (lex_raw_string): Change C++ style comments into C style
718 comments.
719 (lex_string): Likewise.
720
7f5f5f98
OW
7212012-04-27 Ollie Wild <aaw@google.com>
722
723 * include/cpplib.h (struct cpp_options): Add new field,
724 warn_literal_suffix.
725 (CPP_W_LITERAL_SUFFIX): New enum.
726 * init.c (cpp_create_reader): Default initialization of
727 warn_literal_suffix.
728 * lex.c (lex_raw_string): Treat user-defined literals which don't
729 begin with '_' as separate tokens and produce a warning.
730 (lex_string): Ditto.
731
1d72e96f
MLI
7322012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
733
734 * line-map.c (linemap_resolve_location): Synchronize comments with
735 those in line-map.h.
736 * include/line-map.h (linemap_resolve_location): Fix spelling in
737 comment.
738
e75b54a2
RE
7392012-03-22 Richard Earnshaw <rearnsha@arm.com>
740
741 * lex.c (search_line_fast): Provide Neon-optimized version for ARM.
742
7888f266
RO
7432012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
744
745 * lex.c: Remove Solaris 8 reference.
746
dd552284
WL
7472012-02-14 Walter Lee <walt@tilera.com>
748
749 * configure.ac: Require 64-bit hwint for tilegx and tilepro.
750 * configure: Regenerate.
751
2c5cbc31
RG
7522012-01-09 Richard Guenther <rguenther@suse.de>
753
754 * macro.c (_cpp_builtin_macro_text): Remove unused variable map.
755
b492b686
GF
7562012-01-09 Gary Funck <gary@intrepid.com>
757
758 PR preprocessor/33919
759 * files.c (_cpp_get_file_name): New. Implement file name
760 access function.
761 * internal.h (_cpp_get_file_name): New prototype.
762 * macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
763 to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
764
75291c57
OH
7652012-01-03 Olivier Hainque <hainque@adacore.com>
766
767 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
768
48b0b196
JM
7692011-12-20 Joseph Myers <joseph@codesourcery.com>
770
771 * include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
772 (CLK_STDC1X): Change to CLK_STDC11.
773 * init.c (lang_defaults): Update comments.
774 (cpp_init_builtins): Update language tests. Use 201112L for C11
775 __STDC_VERSION__.
776
4a5e00ca
AS
7772011-12-20 Andreas Schwab <schwab@linux-m68k.org>
778
779 * configure: Regenerate.
780
095af58f
AS
7812011-12-19 Andreas Schwab <schwab@linux-m68k.org>
782
783 * configure: Regenerate.
784
b0c084b7
JJ
7852011-12-07 Jakub Jelinek <jakub@redhat.com>
786
787 PR bootstrap/50237
788 * internal.h (_cpp_init_lexer): New prototype.
789 * init.c (init_library): Call it.
790 * lex.c (init_vectorized_lexer): Remove constructor attribute,
791 add inline keyword.
792 (HAVE_init_vectorized_lexer): Define.
793 (_cpp_init_lexer): New function.
794
9b554be9
DS
7952011-12-03 Dodji Seketeli <dodji@redhat.com>
796
797 * macro.c (tokens_buff_remove_last_token)
798 (tokens_buff_put_token_to): Add an 'inline' function specifier to
799 the prototype.
800
8dcf72a8
DN
8012011-11-22 Diego Novillo <dnovillo@google.com>
802
803 * include/line-map.h (linemap_dump): Declare.
804 (line_table_dump): Declare.
805 * line-map.c (linemap_dump): New.
806 (line_table_dump): New.
807
7e74ce3f
ESR
8082011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net>
809
810 PR c++/50958
811 * expr.c (cpp_userdef_char_remove_type): Fix typo.
812
e9411247
MM
8132011-11-03 Michael Matz <matz@suse.de>
814
815 PR bootstrap/50857
816 * configure.ac: Check for -fno-exceptions -fno-rtti.
817 * configure: Regenerate.
818 * Makefile.in (NOEXCEPTION_FLAGS): New flag.
819 (ALL_CXXFLAGS): Use it.
820
0c1dace3
PC
8212011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
822
823 * internal.h (uxstrdup, ustrchr): Return const unsigned char *.
824
25339f10
JM
8252011-11-02 Jason Merrill <jason@redhat.com>
826
827 PR c++/50810
828 * configure.ac: Add -Wno-narrowing to warning options.
829
97e3ad20
JM
8302011-10-31 Jason Merrill <jason@redhat.com>
831
1fb80b0c
JM
832 PR libstdc++/1773
833 * init.c (cpp_init_builtins): Set __cplusplus for C++11.
834
97e3ad20
JM
835 PR c++/50920
836 * include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
837 CLK_GNUCXX0X to CLK_GNUCXX11.
838
3ce4f9e4
ESR
8392011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net>
840
841 Implement C++11 user-defined literals.
842 * expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
843 cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
844 cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
845 cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
846 (cpp_classify_number): Classify unrecognized tokens as user-defined
847 literals.
848 * include/cpplib.h: Add new tokens for user-defined literals.
849 * init.c: Add new preprocessor flag (cxx11).
850 * lex.c: (lex_string, lex_raw_string): Handle user-defined literals
851 including concatenation and promotion with suffixes.
852
3bb0c8db
DS
8532011-10-24 Dodji Seketeli <dodji@redhat.com>
854
855 * line-map.c (linemap_macro_map_lookup): Fix logic.
856
84756fd4
DS
8572011-10-24 Dodji Seketeli <dodji@redhat.com>
858
859 * include/line-map.h (linemap_expand_location): Take a line table
860 parameter. Update comment.
861 (linemap_resolve_location): Update comment.
862 (linemap_expand_location_full): Remove.
863 * line-map.c (linemap_resolve_location): Handle reserved
864 locations; return a NULL map in those cases.
865 (linemap_expand_location): If location is reserved, return a
866 zeroed expanded location. Update comment. Take a line table to
867 assert that the function takes non-virtual locations only.
868 (linemap_expand_location_full): remove.
869 (linemap_dump_location): Handle the fact that
870 linemap_resolve_location can return NULL line maps when the
871 location resolves to a reserved location.
872
873 * line-map.c (linemap_macro_map_lookup): Fix logic.
874
ad2305ad
DS
8752011-10-22 Dodji Seketeli <dodji@redhat.com>
876
877 PR bootstrap/50778
878 * include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
879 context to act upon.
880 * lex.c (_cpp_remaining_tokens_num_in_context): Likewise. Update
881 comment.
882 (cpp_token_from_context_at): Likewise.
883 (cpp_peek_token): Use the context to peek tokens from.
884
cbbcf655
DS
8852011-10-20 Dodji Seketeli <dodji@redhat.com>
886
887 PR bootstrap/50801
888 * lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
889 number of tokens.
890
d17687f6
DS
8912011-10-18 Dodji Seketeli <dodji@redhat.com>
892
893 PR bootstrap/50760
894 * include/line-map.h (struct linemap_stats): Change the type of
895 the members from size_t to long.
896 * macro.c (macro_arg_token_iter_init): Unconditionally initialize
897 iter->location_ptr.
898
411f92de
DS
8992011-10-17 Dodji Seketeli <dodji@redhat.com>
900
901 * line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
902 variable without using it if ENABLE_CHECKING is not defined. Mark
903 the LOCATION parameter as being unused.
904
b9bd6f74
TT
9052011-10-15 Tom Tromey <tromey@redhat.com>
906 Dodji Seketeli <dodji@redhat.com>
907
908 * include/line-map.h (struct line_maps::alloced_size_for_request):
909 New member.
910 * line-map.c (new_linemap): Use set->alloced_size_for_request to
911 get the actual allocated size of line maps.
912
64a1a422
TT
9132011-10-15 Tom Tromey <tromey@redhat.com>
914 Dodji Seketeli <dodji@redhat.com>
915
916 * line-map.h (struct linemap_stats): Declare new struct.
917 (linemap_get_statistics): Declare ...
918 * line-map.c (linemap_get_statistics): ... new function.
919 * macro.c (num_expanded_macros_counter, num_macro_tokens_counter):
920 Declare new counters.
921 (enter_macro_context, replace_args): Update
922 num_macro_tokens_counter.
923 (cpp_get_token_1): Update num_expanded_macros_counter.
924
847e697a
TT
9252011-10-15 Tom Tromey <tromey@redhat.com>
926 Dodji Seketeli <dodji@redhat.com>
927
928 * include/cpplib.h (struct cpp_options)<debug>: New struct member.
929 * include/line-map.h (linemap_dump_location): Declare ...
930 * line-map.c (linemap_dump_location): ... new function.
931
92582b75
TT
9322011-10-15 Tom Tromey <tromey@redhat.com>
933 Dodji Seketeli <dodji@redhat.com>
934
935 * include/cpplib.h (struct cpp_options)<track_macro_expansion>:
936 New option.
937 * internal.h (struct macro_context): New struct.
938 (enum context_tokens_kind): New enum.
939 (struct cpp_context)<tokens_kind>: New member of type enum
940 context_tokens_kind.
941 (struct cpp_context)<macro>: Remove this. Replace it with an enum
942 of macro and macro_context.
943 (struct cpp_context)<direct_p>: Remove.
944 (_cpp_remaining_tokens_num_in_context): Declare new function.
945 * directives.c (destringize_and_run): Adjust.
946 * lex.c (_cpp_remaining_tokens_num_in_context)
947 (_cpp_token_from_context_at): Define new functions
948 (cpp_peek_token): Use them.
949 * init.c (cpp_create_reader): Initialize the base context to zero.
950 (_cpp_token_from_context_at): Define new static function.
951 (cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and
952 _cpp_token_from_context_at.
953 * macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New
954 members.
955 (enum macro_arg_token_kind): New enum.
956 (struct macro_arg_token_iter): New struct.
957 (maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context)
958 (alloc_expanded_arg_mem, ensure_expanded_arg_room)
959 (delete_macro_args, set_arg_token, get_arg_token_location)
960 (arg_token_ptr_at, macro_arg_token_iter_init)
961 (macro_arg_token_iter_get_token)
962 (macro_arg_token_iter_get_location, macro_arg_token_iter_forward)
963 (expanded_token_index, tokens_buff_new, tokens_buff_count)
964 (tokens_buff_last_token_ptr, tokens_buff_put_token_to)
965 (tokens_buff_add_token, tokens_buff_remove_last_token)
966 (reached_end_of_context, consume_next_token_from_context): New
967 static functions.
968 (cpp_get_token_1): New static function. Split and extended from
969 cpp_get_token. Use reached_end_of_context and
970 consume_next_token_from_context. Unify its return point. Move
971 the location tweaking from cpp_get_token_with_location in here.
972 (cpp_get_token): Use cpp_get_token_1
973 (stringify_arg): Use the new arg_token_at.
974 (paste_all_tokens): Support tokens coming from extended tokens
975 contexts.
976 (collect_args): Return the number of collected arguments, by
977 parameter. Store virtual locations of tokens that constitute the
978 collected args.
979 (funlike_invocation_p): Return the number of collected arguments,
980 by parameter.
981 (enter_macro_context): Add a parameter for macro expansion point.
982 Pass it to replace_args and to the "used" cpp callback. Get the
983 number of function-like macro arguments from funlike_invocation_p,
984 pass it to the new delete_macro_args to free the memory used by
985 macro args. When -ftrack-macro-expansion is in effect, for macros
986 that have no arguments, create a macro map for the macro expansion
987 and use it to allocate proper virtual locations for tokens
988 resulting from the expansion. Push an extended tokens context
989 containing the tokens resulting from macro expansion and their
990 virtual locations.
991 (replace_args): Rename the different variables named 'count' into
992 variables with more meaningful names. Create a macro map;
993 allocate virtual locations of tokens resulting from this
994 expansion. Use macro_arg_token_iter to iterate over tokens of a
995 given macro. Handle the case of the argument of
996 -ftrack-macro-expansion being < 2. Don't free macro arguments
997 memory resulting from expand_arg here, as these are freed by the
998 caller of replace_arg using delete_macro_args now. Push extended
999 token context.
1000 (next_context, push_ptoken_context, _cpp_push_token_context)
1001 (_cpp_push_text_context): Properly initialize the context.
1002 (expand_arg): Use the new alloc_expanded_arg_mem,
1003 push_extended_tokens_context, cpp_get_token_1, and set_arg_token.
1004 (_cpp_pop_context): Really free the memory held by the context.
1005 Handle freeing memory used by extended tokens contexts.
1006 (cpp_get_token_with_location): Use cpp_get_token_1.
1007 (cpp_sys_macro_p): Adjust.
1008 (_cpp_backup_tokens): Support the new kinds of token contexts.
1009 * traditional.c (recursive_macro): Adjust.
1010
46427374
TT
10112011-10-15 Tom Tromey <tromey@redhat>
1012 Dodji Seketeli <dodji@redhat.com>
1013
1014 * include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum
1015 member.
1016 (MAX_SOURCE_LOCATION): New constant.
1017 (struct line_map_ordinary, struct line_map_macro): New structs.
1018 (struct line_map): Turn this into a union of the two above. Add
1019 comments.
1020 (struct maps_info): New struct.
1021 (struct line_maps)<info_ordinary, info_macro>: Two new fields.
1022 These now carry the map information that was previously scattered
1023 in struct line_maps.
1024 (struct map_info::allocated): Fix comment.
1025 (MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME)
1026 (ORDINARY_MAP_STARTING_LINE_NUMBER)
1027 (ORDINARY_MAP_INCLUDER_FILE_INDEX)
1028 (ORDINARY_MAP_IN_SYSTEM_HEADER_P)
1029 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO)
1030 (MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS)
1031 (MACRO_MAP_EXPANSION_POINT_LOCATION)
1032 (LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO)
1033 (LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE)
1034 (LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP)
1035 (LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED)
1036 (LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE)
1037 (LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP)
1038 (LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED)
1039 (LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE)
1040 (LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP)
1041 (LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT)
1042 (LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map
1043 information.
1044 (linemap_check_ordinary, linemap_assert)
1045 (linemap_location_before_p): New macros.
1046 (linemap_position_for_line_and_column)
1047 (linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token)
1048 (linemap_macro_expansion_map_p)
1049 (linemap_macro_map_loc_to_def_point)
1050 (linemap_macro_map_loc_unwind_once)
1051 (linemap_macro_map_loc_to_exp_point, linemap_step_out_once)
1052 (linemap_get_source_line linemap_get_source_column)
1053 (linemap_map_get_macro_name, linemap_get_file_path)
1054 (linemap_location_in_system_header_p)
1055 (linemap_location_from_macro_expansion_p): Declare new functions.
1056 (SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION)
1057 (LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this
1058 accessors act on ordinary maps only.
1059 (INCLUDED_FROM): Return NULL for main files; use the new
1060 accessors.
1061 (LINEMAP_POSITION_FOR_COLUMN): Use the new accessors.
1062 (struct expanded_location): Move here from gcc/input.h
1063 (linemap_resolve_location, linemap_expand_location)
1064 (linemap_expand_location_full): Declare new functions.
1065 * line-map.c: Include cpplib.h, internal.h
1066 (linemap_enter_macro, linemap_add_macro_token)
1067 (linemap_get_expansion_line, linemap_get_expansion_filename): New
1068 functions that are private to libcpp.
1069 (linemap_assert): New macro.
1070 (linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point)
1071 (linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point)
1072 (linemap_macro_map_loc_unwind_toward_spelling)
1073 (linemap_macro_map_loc_to_exp_point)
1074 (first_map_in_common_1, first_map_in_common): New static
1075 functions.
1076 (new_linemap): Define new static functions. Extracted and
1077 enhanced from ...
1078 (linemap_add): ... here. Use linemap_assert in lieu of abort
1079 previously.
1080 (linemap_tracks_macro_expansion_locs_p)
1081 (linemap_add_macro_token, linemap_macro_expansion_map_p)
1082 (linemap_check_ordinary, linemap_macro_map_loc_to_exp_point)
1083 (linemap_macro_map_loc_to_def_point)
1084 (linemap_macro_map_loc_unwind_once)
1085 (linemap_step_out_once, linemap_map_get_index)
1086 (linemap_get_source_line,linemap_get_source_column)
1087 (linemap_get_file_path, linemap_map_get_macro_name)
1088 (linemap_location_in_system_header_p)
1089 (linemap_location_originated_from_system_header_p)
1090 (linemap_location_from_macro_expansion_p)
1091 (linemap_tracks_macro_expansion_locs_p)
1092 (linemap_resolve_location, linemap_expand_location)
1093 (linemap_expand_location_full)
1094 (linemap_tracks_macro_expansion_locs_p)
1095 (linemap_position_for_line_and_column, linemap_compare_locations):
1096 Define new public functions.
1097 (linemap_init): Initialize ordinary and macro maps information in
1098 the map set.
1099 (linemap_check_files_exited): Use the new accessors.
1100 (linemap_free): Remove this dead code.
1101 (linemap_line_start): Assert this uses an ordinary map. Adjust to
1102 use the new ordinary map accessors and data structures. Don't
1103 overflow past the lowest possible macro token's location.
1104 (linemap_position_for_column): Assert the ordinary maps of the map
1105 set are really ordinary. Use ordinary map accessors.
1106 (linemap_lookup): Keep the same logic but generalize to allow
1107 lookup of both ordinary and macro maps. Do not crash when called
1108 with an empty line table.
1109 * directives-only.c (_cpp_preprocess_dir_only): Adjust to use the
1110 new API of line-map.h.
1111 * directives.c (start_directive, do_line, do_linemarker)
1112 (do_linemarker): Likewise.
1113 * files.c (_cpp_find_file, _cpp_stack_include, open_file_failed)
1114 (make_cpp_dir, cpp_make_system_header): Likewise.
1115 * init.c (cpp_read_main_file): Likewise.
1116 * internal.h (CPP_INCREMENT_LINE): Likewise.
1117 (linemap_enter_macro, linemap_add_macro_token)
1118 (linemap_get_expansion_line, linemap_get_expansion_filename): New
1119 functions private to libcpp.
1120 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment)
1121 (skip_line_comment, skip_whitespace, lex_raw_string)
1122 (_cpp_lex_direct): Likewise.
1123 * macro.c (_cpp_builtin_macro_text): Likewise.
1124 (_cpp_aligned_alloc): Initialize the new name member of the macro.
1125 * traditional.c (copy_comment, _cpp_scan_out_logical_line):
1126 Likewise.
1127 * errors.c (cpp_diagnostic): Adjust to new linemap API.
1128
892a371f
DS
11292011-08-28 Dodji Seketeli <dodji@redhat.com>
1130
1131 * line-map.c (linemap_add): Assert that reason must not be
1132 LC_RENAME when called for the first time on a "main input file".
1133
e3dfef44
GC
11342011-08-22 Gabriel Charette <gchare@google.com>
1135
1136 * init.c (cpp_create_reader): Inititalize forced_token_location_p.
1137 * internal.h (struct cpp_reader): Add field forced_token_location_p.
1138 * lex.c (_cpp_lex_direct): Use forced_token_location_p.
1139 (cpp_force_token_locations): New.
1140 (cpp_stop_forcing_token_locations): New.
1141
32fe396e
RO
11422011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1143
1144 PR libstdc++/1773
1145 * init.c (cpp_init_builtins): Define __cplusplus 19971L.
1146
7c1ffff9
JM
11472011-08-18 Joseph Myers <joseph@codesourcery.com>
1148
1149 * include/cpplib.h (struct cpp_options): Fix typo.
1150
a48e3dd1
JM
11512011-08-18 Joseph Myers <joseph@codesourcery.com>
1152
1153 * include/cpplib.h (struct cpp_options): Add rliterals.
1154 * init.c (struct lang_flags, lang_defaults): Add rliterals.
1155 (cpp_set_lang): Set rliterals option.
1156 (cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__.
1157 * lex.c (_cpp_lex_direct): Only accept raw strings if rliterals.
1158
3f6ced10
GC
11592011-08-15 Gabriel Charette <gchare@google.com>
1160
1161 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove.
1162 Update all users to use linemap_position_for_column instead.
1163
0681d04c
GC
11642011-07-28 Gabriel Charette <gchare@google.com>
1165
1166 * include/line-map.h (struct line_maps):
1167 Remove unused field last_listed. Update all users.
1168
5e9627ca
L
11692011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1170
1171 * configure.ac: Set need_64bit_hwint to yes for x86 targets.
1172 * configure: Regenerated.
1173
a024b70f
RO
11742011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1175
1176 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
1177
5b6d595b
RO
11782011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1179 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1180
1181 PR bootstrap/49794
1182 * configure.ac: Test AM_ICONV with CXX.
1183 * configure: Regenerate.
1184 * system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++.
1185
d0a9fbe1
DS
11862011-07-15 Dodji Seketeli <dodji@redhat.com>
1187
1188 * directives.c (struct if_stack): Use source_location as type
1189 here.
1190 * include/cpplib.h (struct cpp_callbacks)<include, define, undef,
1191 indent, def_pragma, used_define, used_undef>: Properly use
1192 source_location as parameter type, rather than unsigned int.
1193
fbdd5d87
RO
11942011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1195
1196 PR target/39150
1197 * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
1198 like i[34567]86-*-solaris2.1[0-9]*.
1199 * configure: Regenerate.
1200
8787a05a
JM
12012011-06-16 Jason Merrill <jason@redhat.com>
1202
1203 PR c++/45399
1204 * lex.c (lex_raw_string): Don't check for embedded NUL.
1205
38fbfaf6
DS
12062011-06-06 Dodji Seketeli <dodji@redhat.com>
1207
1208 PR preprocessor/48532
1209 * directives.c (do_pragma): Don't forget the invocation location
1210 when parsing the pragma name of a namespaced pragma directive.
1211
fc0993ac
JT
12122011-05-29 John Tytgat <John.Tytgat@aaug.net>
1213
1214 * files.c (read_file_guts): Add test on non-zero value of S_ISREG.
1215
ef230b38
UB
12162011-05-22 Uros Bizjak <ubizjak@gmail.com>
1217
1218 PR target/49104
1219 * lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
1220 is defined. Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
1221
e5b0dad8
JK
12222011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
1223
1224 * system.h (ENUM_BITFIELD): Remove.
1225
6cfae070
JJ
12262011-04-24 Jakub Jelinek <jakub@redhat.com>
1227
1228 PR preprocessor/48740
1229 * lex.c (lex_raw_string): When raw string ends with
1230 ??) followed by raw prefix and ", ensure it is preprocessed
1231 with ??) rather than ??].
1232
04695783
JM
12332011-04-20 Jim Meyering <meyering@redhat.com>
1234
1235 * files.c (destroy_cpp_file): Remove useless if-before-free.
1236 * init.c (cpp_destroy): Likewise.
1237 * macro.c (replace_args): Likewise.
1238 * pch.c (cpp_valid_state): Likewise.
1239
4489800d
KT
12402011-03-25 Kai Tietz <ktietz@redhat.com>
1241
1242 * files.c (file_hash_eq): Use filename_cmp
1243 instead of strcmp.
1244 (nonexistent_file_hash_eq): Likewise.
1245 (remap_filename): Likewise.
1246 Handle absolute DOS-path,
1247 (append_file_to_dir): Check for IS_DIR_SEPARATOR
1248 instead of slash.
1249 (read_name_map): Likewise.
1250 * linemap.c (linemap_add): Use filename_cmp
1251 instead of strcmp.
1252 * mkdeps.c (apply_vpath): Use filename_ncmp
1253 instead of strncmp.
1254 (deps_restore): Use filename_cmp instead of
1255 strcmp.
1256 * init.c (read_original_directory): Use
1257 IS_DIR_SEPARATOR instead of checking for slash.
1258
f3c33d9d
MM
12592011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1260
1261 PR preprocessor/48192
1262 * directives.c (do_ifdef): Do not consider conditional macros as
1263 being defined.
1264 (do_ifndef): Ditto.
1265 * expr.c (parse_defined): Ditto.
1266
01956319
RH
12672011-03-18 Richard Henderson <rth@redhat.com>
1268
1269 PR bootstrap/45381
1270 * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5.
1271
c5a62c6f
EB
12722011-11-04 Eric Botcazou <ebotcazou@adacore.com>
1273 Jakub Jelinek <jakub@redhat.com>
1274
1275 PR preprocessor/39213
1276 * directives.c (end_directive): Call _cpp_remove_overlay for deferred
1277 pragmas as well in traditional mode.
1278
0e1a989c
ILT
12792010-11-17 Ian Lance Taylor <iant@google.com>
1280
1281 PR bootstrap/45538
1282 * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS. Remove switch of
1283 AC_LANG based on ENABLE_BUILD_WITH_CXX.
1284
651a20b5
KT
12852010-11-16 Kai Tietz <kai.tietz@onevision.com>
1286
1287 PR preprocessor/17349
1288 * lex.c (save_comment): Handle in argument passing c++
1289 comments special.
1290
480767a9
ILT
12912010-11-02 Ian Lance Taylor <iant@google.com>
1292
1293 * configure.ac: Use AC_SYS_LARGEFILE.
1294 * configure: Rebuild.
1295 * config.in: Rebuild.
1296
078419c9 12972010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
480767a9 1298
078419c9
BS
1299 * line-map.h (source_location): Remove obsolete comment
1300 mentioning location_s.
1301
d6874138
KT
13022010-09-29 Kai Tietz <kai.tietz@onevision.com>
1303
1304 PR preprocessor/45362
1305 * directives.c (cpp_pop_definition): Make static.
1306 (do_pragma_push_macro): Reworked to store text
1307 definition.
1308 (do_pragma_pop_macro): Add free text definition.
1309 (cpp_push_definition): Removed.
1310 * include/cpplib.h (cpp_push_definition): Removed.
1311 (cpp_pop_definition): Likewise.
1312 * internal.h (def_pragma_macro): Remove member 'value'
1313 and add new members 'definition', 'line',
1314 'syshdr', 'sued' and 'is_undef'.
1315 * pch.c (_cpp_restore_pushed_macros): Rework to work
1316 on text definition and store additional macro flags.
1317 (_cpp_save_pushed_macros): Likewise.
1318
e3339d0f
JM
13192010-09-29 Joseph Myers <joseph@codesourcery.com>
1320
1321 * include/cpplib.h (cpp_options): Rename warn_deprecated,
1322 warn_traditional, warn_long_long and pedantic.
1323 * directives.c (directive_diagnostics, _cpp_handle_directive):
1324 Update names of cpp_options members.
1325 * expr.c (cpp_classify_number, eval_token): Update names of
1326 cpp_options members.
1327 * init.c (cpp_create_reader, post_options): Update names of
1328 cpp_options members.
1329 * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
1330 cpp_options members.
1331 * macro.c (parse_params): Update names of cpp_options members.
1332
128465e6
ILT
13332010-09-15 Ian Lance Taylor <iant@google.com>
1334
1335 * init.c: Fix type name in comment.
1336
a69d2520
JJ
13372010-08-31 Jakub Jelinek <jakub@redhat.com>
1338
1339 PR preprocessor/45457
1340 * expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if
1341 needed.
1342 * directives.c (do_ifdef, do_ifndef): Likewise.
1343
707bcb7a
RO
13442010-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1345
1346 * system.h [HAVE_INTTYPES_H]: Include inttypes.h.
1347
6f173e52
RH
13482010-08-24 Richard Henderson <rth@redhat.com>
1349
1350 PR bootstrap/45376
1351 * configure.ac (HAVE_SSE4): New check.
1352 * configure, config.in: Rebuild.
1353 * lex.c (search_line_sse42): Omit if !HAVE_SSE4.
1354
789d73cb
RO
13552010-08-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1356
1357 * lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
1358 etc. on Solaris 2/x86.
1359
246a2fcb
RH
13602010-08-21 Richard Henderson <rth@redhat.com>
1361 Andi Kleen <ak@linux.intel.com>
1362 David S. Miller <davem@davemloft.net>
1363
1364 * configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
1365 (ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
1366 (ptrdiff_t): Check via AC_CHECK_TYPE.
1367 * config.in, configure: Rebuild.
1368 * system.h: Include stdint.h, if available.
1369 * lex.c (WORDS_BIGENDIAN): Provide default.
1370 (acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
1371 acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
1372 search_line_sse2, search_line_sse42, init_vectorized_lexer,
1373 search_line_fast): New.
1374 (_cpp_clean_line): Use search_line_fast. Restructure the fast
1375 loop to make it clear when we're leaving the loop. Stay in the
1376 fast loop for non-trigraph '?'.
1377
8e680db5
JJ
13782010-06-11 Jakub Jelinek <jakub@redhat.com>
1379
1380 * include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro
1381 callback.
1382 (enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER.
1383 (cpp_macro_definition): Remove const qual from second argument.
1384 * macro.c (enter_macro_context): Call user_builtin_macro callback for
1385 NODE_BUILTIN !NODE_USED macros.
1386 (warn_of_redefinition): Likewise. Remove const qual from second
1387 argument.
1388 (cpp_macro_definition): Likewise.
1389 * pch.c (write_macdef, save_macros): Call user_builtin_macro callback
1390 for NODE_BUILTIN !NODE_USED macros.
1391
1cb42611
JM
13922010-06-10 Joseph Myers <joseph@codesourcery.com>
1393
1394 * include/cpplib.h (struct cpp_options): Remove show_column.
1395 * init.c (cpp_create_reader, post_options): Don't set show_column.
1396
ff5dfc48
JR
13972010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
1398
1399 PR bootstrap/44432
1400 * configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++,
1401 check that C++ compiler works.
1402 * configure: Regenerate.
1403
a9429e29
LB
14042010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1405
1406 * include/symtab.h (ht_identifier_ptr): New.
1407
c3f247f4
RW
14082010-06-03 Joern Rennecke <joern.rennecke@embecosm.com>
1409 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1410
1411 PR bootstrap/42798
1412 * configure.ac: Check for declaration of 'basename(char *)'.
1413 * configure: Regenerate.
1414 * config.in: Regenerate.
1415
2778d766
JM
14162010-04-25 Joseph Myers <joseph@codesourcery.com>
1417
1418 * include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X.
1419 * init.c (lang_defaults): Add entries for new language variants.
1420 (cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X
1421 variants.
1422
d8a12e84
MLI
14232010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
1424
1425 PR cpp/43195
1426 * files.c (report_missing_guard): Test for #pragma once.
1427
87cf0651
SB
14282010-04-07 Simon Baldwin <simonb@google.com>
1429
1430 * directives.c (do_diagnostic): Add warning reason argument,
1431 call appropriate error reporting function for code.
1432 (directive_diagnostics): Call specific warning functions with
1433 warning reason where appropriate.
1434 (do_error, do_warning, do_pragma_dependency): Add warning reason
1435 argument to do_diagnostic calls.
1436 * macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
1437 _cpp_create_definition): Call specific warning functions with
1438 warning reason where appropriate.
1439 * Makefile.in: Add new diagnostic functions to gettext translations.
1440 * include/cpplib.h (struct cpp_callbacks): Add warning reason code
1441 to error callback.
1442 (CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
1443 CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
1444 (CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
1445 CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
1446 CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
1447 CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
1448 CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
1449 CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
1450 CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
1451 warning reason codes.
1452 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
1453 cpp_warning_with_line, cpp_pedwarning_with_line,
1454 cpp_warning_with_line_syshdr): New specific error reporting functions.
1455 * pch.c (cpp_valid_state): Call specific warning functions with
1456 warning reason where appropriate.
1457 * errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
1458 diagnostic handlers.
1459 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
1460 cpp_warning_with_line, cpp_pedwarning_with_line,
1461 cpp_warning_with_line_syshdr): New specific error reporting functions.
1462 * expr.c (cpp_classify_number, eval_token, num_unary_op): Call
1463 specific warning functions with warning reason where appropriate.
1464 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
1465 warn_about_normalization, lex_identifier_intern, lex_identifier,
1466 _cpp_lex_direct): Ditto.
1467 * charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
1468 narrow_str_to_charconst): Ditto.
1469
d947ada0
JJ
14702010-04-06 Jakub Jelinek <jakub@redhat.com>
1471
1472 PR preprocessor/43642
1473 * lex.c (lex_raw_string): Change type of TYPE variable to
1474 unsigned char.
1475
4d9e8446
RW
14762010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1477
1478 * aclocal.m4: Regenerate.
1479
52150625
JM
14802010-03-29 Jason Merrill <jason@redhat.com>
1481
00a81b8b
JM
1482 More N3077 raw string changes
1483 * charset.c (cpp_interpret_string): Don't transform UCNs in raw
1484 strings.
1485 * lex.c (bufring_append): Split out from...
1486 (lex_raw_string): ...here. Undo trigraph and line splicing
1487 transformations. Do process line notes in multi-line literals.
1488 (_cpp_process_line_notes): Ignore notes that were already handled.
1489
52150625
JM
1490 Some raw string changes from N3077
1491 * charset.c (cpp_interpret_string): Change inner delimiters to ().
1492 * lex.c (lex_raw_string): Likewise. Also disallow '\' in delimiter.
1493
709d7160
JJ
14942010-02-11 Jakub Jelinek <jakub@redhat.com>
1495
1496 * init.c (read_original_filename): Don't call read_original_directory
1497 if _cpp_handle_directive returns 0.
1498
dadab4fd
JM
14992010-01-01 Joseph Myers <joseph@codesourcery.com>
1500
1501 PR preprocessor/41947
1502 * expr.c (cpp_classify_number): Give error for hexadecimal
1503 floating-point constant with no digits before or after point.
1504
3de8a540
AC
15052009-11-20 Arnaud Charlet <charlet@adacore.com>
1506
1507 * macro.c (enter_macro_context): Call cb.used callback if defined.
1508 * directives.c (do_idef, do_ifndef): Ditto.
1509 * include/cpplib.h (struct cpp_callbacks): Add used callback.
1510
17e7cb85
KT
15112009-11-11 Kai Tietz <kai.tietz@onevision.com>
1512
1513 * directives.c (do_pragma_push_macro): New pragma handler.
1514 (do_pragma_pop_macro): Likewise.
1515 (_cpp_init_internal_pragmas): Add push_macro and
1516 pop_macro handler to internal pragmas.
1517 (lex_macro_node_from_str): Removed.
1518 (cpp_push_definition): Replace lex_macro_node_from_str
1519 by _cpp_lex_identifier.
1520 (cpp_pop_definition): Likewise.
1521 * internal.h (_cpp_lex_identifier): New prototype.
1522 (def_pragma_macro): New structure.
1523 (cpp_reader): New member pushed_macros.
1524 * lex.c (_cpp_lex_identifier): New function.
1525 (lex_identifier_intern): New function.
1526 * init.c (cpp_create_reader): Initialize pushed_macros
1527 member.
1528 (cpp_destroy): Free elements in pushed_macros member.
1529 * pch.c (_cpp_save_pushed_macros): New function.
1530 (_cpp_restore_pushed_macros): Likewise.
1531 (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
1532 (cpp_read_state): Use _cpp_restore_pushed_macros.
1533
2c6e3f55
JJ
15342009-10-19 Jakub Jelinek <jakub@redhat.com>
1535
1536 * charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
1537 (_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
1538 and char32_cset_desc.
1539 (converter_for_type): Handle CPP_UTF8STRING.
1540 (cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
1541 * directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
1542 (parse_include): Reject raw strings.
1543 * include/cpplib.h (CPP_UTF8STRING): New token type.
1544 * internal.h (struct cpp_reader): Add utf8_cset_desc field.
1545 * lex.c (lex_raw_string): New function.
1546 (lex_string): Handle u8 string literals, call lex_raw_string
1547 for raw string literals.
1548 (_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
1549 sequences.
1550 * macro.c (stringify_arg): Handle CPP_UTF8STRING.
1551
96c169e1
JJ
15522009-10-14 Jakub Jelinek <jakub@redhat.com>
1553
1554 PR preprocessor/41543
1555 * include/line-map.h (RESERVED_LOCATION_COUNT): Define.
1556 * line-map.c (linemap_init): Initialize highest_location and
1557 highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
1558
30c99a9e
JM
15592009-10-09 Jason Merrill <jason@redhat.com>
1560
1561 * charset.c (_cpp_valid_ucn): Update C++0x restrictions.
1562
2214382c
NV
15632009-10-09 Neil Vachharajani <nvachhar@google.com>
1564
1565 * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and
1566 sccs.
1567
e02222d2
LR
15682009-09-23 Loren J. Rittle <ljrittle@acm.org>
1569
1570 * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h.
1571 * configure: Rebuilt.
1572
9a8a2b7a
RG
15732009-09-22 Richard Guenther <rguenther@suse.de>
1574
1575 PR pch/38987
1576 * files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
1577
74dc6a11
CD
15782009-09-18 Chris Demetriou <cgd@google.com>
1579
1580 PR preprocessor/28435:
1581 * include/cpplib.h (struct cpp_options): Add new member
1582 deps.need_preprocessor_output.
1583 * files.c (open_file_failed): If preprocessor output is needed
1584 always report an error.
1585
933608b7
KT
15862009-09-13 Kai Tietz <kai.tietz@onevision.com>
1587
1588 * configure.ac: Set for i?86-w64-mingw*
1589 need_64bit_hwint to yes.
1590 * configure: Regenerated.
1591
86373e7e
JM
15922009-09-10 Jason Merrill <jason@redhat.com>
1593
1594 * directives.c (cpp_define): constify.
1595
fd2ab214
ILT
15962009-09-02 Ian Lance Taylor <iant@google.com>
1597
1598 * macro.c (stringify_arg): Escape CPP_WCHAR tokens.
1599
df58e648
RW
16002009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1601
1602 * configure.ac (AC_PREREQ): Bump to 2.64.
1603
5213506e
RW
16042009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1605
1606 * aclocal.m4: Regenerate.
1607 * config.in: Regenerate.
1608 * configure: Regenerate.
1609
709a22df
TT
16102009-08-17 Tom Tromey <tromey@redhat.com>
1611
1612 PR preprocessor/41067:
1613 * charset.c (convert_escape): Add missing ":" to error text.
1614
0c539b47
DR
16152009-07-27 Douglas B Rupp <rupp@gnat.com>
1616
1617 * include/cpplib.h (INO_T_CPP): New macro.
1618 (struct cpp_dir): Use it.
1619
2b69c841
JQ
16202009-07-20 Jerry Quinn <jlquinn@optonline.net>
1621
1622 PR regression/40800
1623 * configure.ac: Use = instead of == for testing
1624 ENABLE_BUILD_WITH_CXX.
1625 * configure: Rebuild.
1626
f1bf410c
JQ
16272009-07-17 Jerry Quinn <jlquinn@optonline.net>
1628
1629 * directives.c (do_linemarker, do_line): Use CPP_STRING for
1630 ignored enum value.
1631 * files.c (find_file_in_dir): Add cast from void* to char*.
1632 * symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
1633 * Makefile.in: (WARN_CFLAGS): Use general and C-specific
1634 warnings.
1635 (CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
1636 ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
1637 COMPILER_FLAGS): New.
1638 (DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
1639 (COMPILE.base): Use COMPILER instead of CC. Use COMPILER_FLAGS
1640 instead of ALL_CFLAGS.
1641 * configure.ac: Invoke AC_PROG_CXX. Separate C-specific warnings
1642 from other warnings. Add -Wc++-compat to C-specific warnings.
1643 Check for --enable-build-with-cxx. Set and substitute
1644 ENABLE_BUILD_WITH_CXX. Invoke ZW_PROG_COMPILER_DEPENDENCIES
1645 according to ENABLE_BUILD_WITH_CXX. Invoke AC_LANG before
1646 AC_CHECK_HEADERS.
1647 * configure: Rebuild.
1648 * include/cpp-id-data.h: Remove extern "C".
1649 * include/line-map.h: Likewise.
1650 * include/mkdeps.h: Likewise.
1651 * include/symtab.h: Likewise.
1652 * internal.h: Likewise.
1653
a28fbdba
MLI
16542009-06-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1655
1656 * directives.c (parse_include): Add location argument. Update all
1657 calls.
1658 (parse_answer): Likewise.
1659 (do_include_common): Error with exact location.
1660 (parse_assertion): Likewise.
1661
b506a5a2
MLI
16622009-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
1663
1664 * expr.c (num_div_op): Take explicit location.
1665
7d8847a4
ILT
16662009-06-17 Ian Lance Taylor <iant@google.com>
1667
1668 * include/cpplib.h (progname): Don't declare.
1669
3d8b2a98
ILT
16702009-06-12 Ian Lance Taylor <iant@google.com>
1671
1672 * include/cpplib.h (struct cpp_options): Add
1673 warn_cxx_operator_names field.
1674 (NODE_WARN_OPERATOR): Define.
1675 (struct cpp_hashnode): Increase flags field to 10 bits, decrease
1676 type to 6 bits.
1677 * init.c (mark_named_operators): Add flags parameter.
1678 (cpp_post_options): Pick flags value to pass to
1679 mark_named_operators.
1680 * lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that
1681 identifier is an operator name in C++.
1682
e74fe492
AH
16832009-06-01 Aldy Hernandez <aldyh@redhat.com>
1684
1685 * include/line-map.h (LAST_SOURCE_COLUMN): New.
1686
4851089f
ILT
16872009-06-01 Ian Lance Taylor <iant@google.com>
1688
1689 * include/cpp-id-data.h: Add extern "C".
1690 * include/line-map.h: Likewise.
1691 * include/mkdeps.h: Likewise.
1692 * include/symtab.h: Likewise.
1693 * internal.h: Likewise.
1694
7e5487a2
ILT
16952009-05-15 Ian Lance Taylor <iant@google.com>
1696
1697 * include/cpplib.h (enum cpp_builtin_type): Rename from enum
1698 builtin_type. Change all uses.
1699
00b0c19b
MLI
17002009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1701
1702 PR cpp/36674
1703 * directives (do_linemarker): Compensate for the increment in
1704 location that occurs when we reach the end of line.
1705 * files (_cpp_stack_include): Mention _cpp_find_file in the
1706 comment.
1707
9a0c6187
JM
17082009-05-10 Joseph Myers <joseph@codesourcery.com>
1709
1710 * include/cpplib.h (enum cpp_token_fld_kind): Add
1711 CPP_TOKEN_FLD_TOKEN_NO.
1712 (struct cpp_macro_arg, struct cpp_identifier): Define.
1713 (union cpp_token_u): Use struct cpp_identifier for identifiers.
1714 Use struct cpp_macro_arg for macro arguments. Add token_no for
1715 CPP_PASTE token numbers.
1716 * directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
1717 do_pragma_poison, parse_assertion): Use val.node.node in place of
1718 val.node.
1719 * expr.c (parse_defined, eval_token): Use val.node.node in place
1720 of val.node.
1721 * lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
1722 cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
1723 cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
1724 place of val.arg_no. Use val.node.node in place of val.node.
1725 * macro.c (replace_args, cpp_get_token, parse_params,
1726 lex_expansion_token, create_iso_definition, cpp_macro_definition):
1727 Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
1728 Use val.node.node in place of val.node.
1729
9e322bc1
JM
17302009-05-03 Joseph Myers <joseph@codesourcery.com>
1731
1732 * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte
1733 UTF-8 sequences.
1734
f88d0772
JM
17352009-04-25 Joseph Myers <joseph@codesourcery.com>
1736
1737 PR preprocessor/39559
1738 * expr.c (cpp_interpret_integer): Use a pedwarn for decimal
1739 constants larger than intmax_t in C99 mode.
1740
d1b38208
TG
17412009-04-21 Taras Glek <tglek@mozilla.com>
1742
1743 * include/cpp-id-data.h: Update GTY annotations to new syntax.
1744 * include/cpplib.h: Likewise.
1745 * include/line-map.h: Likewise.
1746 * include/symtab.h: Likewise.
1747
cfc93532
MLI
17482009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1749
1750 PR c++/14875
1751 * lex.c (cpp_type2name): Take a flags parameter. Call
1752 cpp_named_operator2name for named operators and cpp_digraph2name
1753 for digraphs.
1754 (cpp_digraph2name): New.
1755 (cpp_spell_token): Use it.
1756 (cpp_output_token): Likewise.
1757 * include/cpplib.h (cpp_type2name): Update declaration.
1758 * init.c (cpp_named_operator2name): New.
1759 * internal.h (cpp_named_operator2name): Declare.
1760
9c650d90
MLI
17612009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1762
1763 PR c++/13358
1764 * init.c (cpp_create_reader): Wlong_long is disabled by default.
1765 * expr.c (cpp_classify_number): Give different messages for C and
1766 C++ front-ends.
1767
aa508502
JM
17682009-04-19 Joseph Myers <joseph@codesourcery.com>
1769
1770 PR preprocessor/20078
1771 * include/cpp-id-data.h (struct cpp_macro): Add extra_tokens
1772 field.
1773 * include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define.
1774 (struct cpp_token): Change flags to unsigned short.
1775 * lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens.
1776 (_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens.
1777 (cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE
1778 tokens.
1779 * macro.c (macro_real_token_count): New.
1780 (enter_macro_context, replace_args): Use macro_real_token_count.
1781 (create_iso_definition): Record whitespace surrounding and digraph
1782 spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH.
1783 Set extra_tokens and save CPP_PASTE tokens with arg_no set for
1784 multiple consecutive ## tokens.
1785 (_cpp_create_definition): Initialize extra_tokens.
1786 (cpp_macro_definition): Use macro_real_token_count.
1787
61cc8223
JM
17882009-04-18 Joseph Myers <joseph@codesourcery.com>
1789
1790 * directives.c (parse_include): Pass true to check_eol.
1791
c7f9c0b9
JM
17922009-04-18 Joseph Myers <joseph@codesourcery.com>
1793
1794 PR preprocessor/39646
1795 * include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM.
1796 * line-map.c (linemap_add): Handle LC_RENAME_VERBATIM.
1797 * directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in
1798 place of LC_RENAME.
1799
a5cb563b
JM
18002009-04-18 Joseph Myers <joseph@codesourcery.com>
1801
1802 PR preprocessor/39647
1803 * directives.c (check_eol): Add parameter expand.
1804 (do_undef, parse_include, do_line, do_linemarker, do_ident,
1805 do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef,
1806 do_else, do_endif, do_assert, do_unassert): All callers changed.
1807 Pass true from do_line, false elsewhere.
1808
18f41a1b
JM
18092009-04-12 Joseph Myers <joseph@codesourcery.com>
1810
1811 PR preprocessor/31869
1812 * macro.c (stringify_arg): Handle NULL source token in padding
1813 token where previous padding token did not have source token with
1814 preceding whitespace.
1815
748086b7
JJ
18162009-04-09 Jakub Jelinek <jakub@redhat.com>
1817
1818 * Makefile.in: Change copyright header to refer to version
1819 3 of the GNU General Public License and to point readers at the
1820 COPYING3 file and the FSF's license web page.
1821 * charset.c: Likewise.
1822 * directives-only.c: Likewise.
1823 * directives.c: Likewise.
1824 * errors.c: Likewise.
1825 * expr.c: Likewise.
1826 * files.c: Likewise.
1827 * identifiers.c: Likewise.
1828 * include/cpp-id-data.h: Likewise.
1829 * include/cpplib.h: Likewise.
1830 * include/line-map.h: Likewise.
1831 * include/mkdeps.h: Likewise.
1832 * include/symtab.h: Likewise.
1833 * init.c: Likewise.
1834 * internal.h: Likewise.
1835 * lex.c: Likewise.
1836 * line-map.c: Likewise.
1837 * macro.c: Likewise.
1838 * makeucnid.c: Likewise.
1839 * mkdeps.c: Likewise.
1840 * pch.c: Likewise.
1841 * symtab.c: Likewise.
1842 * system.h: Likewise.
1843 * traditional.c: Likewise.
1844 * ucnid.tab: Likewise.
1845 * ucnid.h: Regenerate.
1846
eec49116
JJ
18472009-04-01 Janis Johnson <janis187@us.ibm.com>
1848
839a3b8a
JJ
1849 PR c/39027
1850 * include/cpplib.h (CPP_N_DEFAULT): Define.
1851 * expr.c (interpret_float_suffix): Recognize d or D for double,
1852 return new value for default.
1853 (cpp_classify_number): Issue pedwarn for use of d or D in suffix.
1854
eec49116
JJ
1855 PR c/33466
1856 * expr.c (interpret_float_suffix): Reject invalid suffix that uses
1857 letters from decimal float and fixed-point suffixes.
1858
47580d22
JM
18592009-03-31 Joseph Myers <joseph@codesourcery.com>
1860
1861 PR preprocessor/15638
1862 * files.c (_cpp_find_file): Call open_file_failed after diagnosing
1863 invalid PCH.
1864 (open_file_failed): Make error for missing file fatal.
1865 * include/cpplib.h (CPP_DL_FATAL): Define.
1866
5a2df0fa
SV
18672009-03-30 Sergiy Vyshnevetskiy <serg@vostok.net>
1868
1869 PR preprocessor/31932:
1870 * internal.h: Don't mention HAVE_ICONV_H.
1871 * configure, config.in: Rebuild.
1872 * configure.ac: Don't check for iconv.h.
1873
c1a8a3c6
TT
18742009-03-30 Tom Tromey <tromey@redhat.com>
1875
1876 PR preprocessor/39512:
1877 * line-map.c (linemap_init): Initialize 'reallocator' field.
1878
a37a7b8a
JJ
18792009-03-30 Jakub Jelinek <jakub@redhat.com>
1880
1881 PR target/39558
1882 * macro.c (cpp_get_token): If macro_to_expand returns NULL
1883 and used some tokens, add CPP_PADDING before next token.
1884
148e4216
JM
18852009-03-29 Joseph Myers <joseph@codesourcery.com>
1886
1887 PR preprocessor/34695
1888 * makedepend.c: Remove.
1889 * Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove.
1890 (all, clean, TAGS_SOURCES, include): Remove makedepend handling.
1891 * directives.c (cpp_errors): Remove.
1892 * errors.c (print_location, _cpp_begin_message, v_message):
1893 Remove.
1894 (cpp_error, cpp_error_with_line): Always use error callback.
1895 (cpp_error, cpp_error_with_line, cpp_errno): Return bool.
1896 * include/cpplib.h (cpp_options): Remove pedantic_errors,
1897 inhibit_warnings, warn_system_headers, inhibit_errors,
1898 warnings_are_errors, client_diagnostic.
1899 (cpp_callbacks): Add extra arguments to error callback; make it
1900 return bool.
1901 (cpp_finish): Return void.
1902 (cpp_destroy): Remove inaccurate comment about return value.
1903 (cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove.
1904 (CPP_DL_NOTE): Define.
1905 * include/line-map.h (linemap_print_containing_files): Remove.
1906 * init.c (cpp_finish): Do not check for or return number of
1907 errors.
1908 * internal.h (cpp_reader): Remove errors field.
1909 * line-map.c (linemap_print_containing_files): Remove.
1910 * macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message
1911 about previous definition. Only emit it if previous diagnostic
1912 was emitted.
1913
f1450211
JM
19142009-03-28 Joseph Myers <joseph@codesourcery.com>
1915
1916 * Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not
1917 mkinstalldirs.
1918
8f5929e1
JJ
19192009-03-18 Jakub Jelinek <jakub@redhat.com>
1920
1921 * include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
1922
4bb09c26
JM
19232009-02-21 Joseph Myers <joseph@codesourcery.com>
1924
1925 * lex.c (lex_string): Return a CPP_LESS token for missing '>' in a
1926 header name.
1927 (_cpp_lex_direct): Handle this.
1928
68c9ab45
RG
19292009-02-15 Richard Guenther <rguenther@suse.de>
1930
1931 Revert last change.
1932
601b3e1a
RG
19332009-02-13 Richard Guenther <rguenther@suse.de>
1934
1935 * configure.ac: Enable LFS.
1936 * configure: Re-generate.
1937 * config.in: Likewise.
1938
fc0cd180
BE
19392009-01-05 Ben Elliston <bje@au.ibm.com>
1940
1941 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
1942 (.po.pox): Likewise.
1943 (po/$(PACKAGE).pot): Likewise.
1944
db89a3be
AO
19452008-12-10 Alexandre Oliva <aoliva@redhat.com>
1946
1947 PR target/37033
1948 * pch.c (cpp_valid_state): Improve message for poisoned symbols.
1949 Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.
1950
cc955282
JM
19512008-11-29 Joseph Myers <joseph@codesourcery.com>
1952
1953 * lex.c (cpp_token_len): Use 6 as default length.
1954
47960aaf
MLI
19552008-10-31 Manuel López-Ibáñez <manu@gcc.gnu.org>
1956
1957 * expr.c (struct op): Add location.
1958 (_cpp_parse_expr): Propagate locations throught the stack
1959 of expressions.
1960 (reduce): Likewise.
1961 (check_promotion): Use explicit location in errors.
1962
631d0d36
MG
19632008-10-05 Matthew Gingell <gingell@adacore.com>
1964 Arnaud Charlet <charlet@adacore.com>
1965
1966 * include/cpplib.h (cpp_comments, cpp_comment_table): New structs.
1967 (cpp_get_comments): New function.
1968 * internal.h (struct cpp_reader): Add comments field.
1969 * init.c (cpp_destroy): Free comments.
1970 * lex.c (store_comment, cpp_get_comments): New functions.
1971 (comments): New struct.
1972 (save_comment): Store comments in comments struct.
1973
c047ce93
SB
19742008-09-18 Simon Baldwin <simonb@google.com>
1975
1976 * include/cpplib.h (struct cpp_options): Add new boolean flag
1977 warn_builtin_macro_redefined.
1978 * init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
1979 * (struct builtin_operator): Split out from previous struct builtin,
1980 enhance extra const correctness.
1981 * (struct builtin_macro): Split out from previous struct builtin, add
1982 new always_warn_if_redefined flag, enhance const correctness.
1983 * (mark_named_operators): Use struct builtin_operator.
1984 * (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
1985 to builtins selectively.
1986 * macro.c (warn_of_redefinition): Return false if a builtin macro
1987 is not flagged with NODE_WARN.
1988
affa55c6
JJ
19892008-07-31 Jakub Jelinek <jakub@redhat.com>
1990
1991 PR preprocessor/36649
1992 * files.c (struct report_missing_guard_data): New type.
1993 (report_missing_guard): Put paths into an array instead of printing
1994 them right away. Return 1 rather than 0.
1995 (report_missing_guard_cmp): New function.
1996 (_cpp_report_missing_guards): Sort and print paths gathered by
1997 report_missing_guard callback.
1998
3b8f20a1
MLI
19992008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2000
2001 PR 28079
2002 * directives.c (strtolinenum): Handle overflow.
2003 (do_line): Give a warning if line number overflowed.
2004 (do_linemarker): Update call to strtolinenum.
2005
1bb64668
MLI
20062008-07-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2007
2008 * include/line-map.h (linenum_type): New typedef.
2009 (struct line_map): Use it.
2010 (SOURCE_LINE): Second arguments is a LOCATION not a LINE.
2011 (SOURCE_COLUMN): Likewise.
2012 * macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store
2013 source_location values in a variable of type linenum_type.
2014 * directives.c (struct if_stack): Use linenum_type.
2015 (strtoul_for_line): Rename as strtolinenum.
2016 (do_line): Use linenum_type.
2017 (do_linemarker): Use linenum_type and strtolinenum.
2018 (_cpp_do_file_change): Use linenum_t.
2019 * line-map.c (linemap_add): Likewise.
2020 (linemap_line_start): Likewise.
2021 * traditional.c (struct fun_macro): 'line' is a source_location.
2022 * errors.c (print_location): Use linenum_type.
2023 * directives-only.c (_cpp_preprocess_dir_only): Likewise.
2024 * internal.h (CPP_INCREMENT_LINE): Likewise.
2025 * lex.c (_cpp_skip_block_comment): Use source_location.
2026
5950c3c9
BE
20272008-07-14 Ben Elliston <bje@au.ibm.com>
2028
2029 * include/cpplib.h (NODE_CONDITIONAL): New.
2030 (struct cpp_callbacks): New macro_to_expand field.
2031 (struct cpp_hashnode): Adjust size of flags and type fields.
2032 (cpp_peek_token): Prototype.
2033 * lex.c (cpp_peek_token): New function.
2034 (_cpp_temp_token): Protect pre-existing lookaheads.
2035 * macro.c (cpp_get_token): Expand any conditional macros.
2036 (_cpp_backup_tokens_direct): New.
2037 (_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
2038 (warn_of_redefinition): Silently allow redefined conditional
2039 macros.
2040 (_cpp_create_definition): Remove the conditional flag when a user
2041 defines one of the conditional macros.
2042 * internal.h (_cpp_backup_tokens_direct): New prototype.
2043
e85edc9e
AH
20442008-06-13 Andrew Haley <aph@redhat.com>
2045
2046 PR preprocessor/33305
2047 * macro.c (replace_args): Print a warning for empty macro
2048 arguments in C89 and C++.
2049
18c04407
RW
20502008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2051
2052 * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.
2053 * configure: Regenerate.
2054
2d09b640
RW
20552008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2056
2057 * Makefile.in (datarootdir): New variable.
2058
0b7c73cc
L
20592008-06-12 H.J. Lu <hongjiu.lu@intel.com>
2060
2061 PR preprocessor/36479
2062 * charset.c (cpp_interpret_string_notranslate): Also set
2063 narrow_cset_desc.width.
2064
cd985f66
JM
20652008-06-07 Joseph Myers <joseph@codesourcery.com>
2066
2067 * configure.ac (parisc*64*-*-*): Remove.
2068 * configure: Regenerate.
2069
d750887f
TT
20702008-05-30 Tom Tromey <tromey@redhat.com>
2071
2072 PR preprocessor/36320:
2073 * internal.h (_cpp_parse_expr): Update.
2074 * expr.c (_cpp_parse_expr): Add 'is_if' argument. Update error
2075 messages.
2076 * directives.c (do_if): Update.
2077 (do_elif): Require expression if processing group.
2078
c100de59
DS
20792008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
2080
2081 * include/cpplib.h (struct cpp_dir): Add new field, canonical_name.
2082
5d6342eb
TT
20832008-05-21 Tom Tromey <tromey@redhat.com>
2084
2085 PR preprocessor/27777:
2086 * lex.c (cpp_output_line_to_string): New function.
2087 * internal.h (_cpp_begin_message): Don't declare.
2088 * errors.c (_cpp_begin_message): Now static.
2089 * include/cpplib.h (cpp_output_line_to_string): Declare.
2090 * directives.c (do_diagnostic): Rewrote. Use
2091 cpp_output_line_to_string. Don't use _cpp_begin_message.
2092
dae4174e
TT
20932008-05-21 Tom Tromey <tromey@redhat.com>
2094
2095 * include/symtab.h (HT_ALLOCED): Remove.
2096 (ht_purge): Declare.
2097 * symtab.c (DELETED): New define.
2098 (ht_lookup): Update comment.
2099 (ht_lookup_with_hash): Handle deleted entries. Remove HT_ALLOCED
2100 code. Use subobject allocator for strings, if it exists.
2101 (ht_expand): Handle deleted entries.
2102 (ht_forall): Likewise.
2103 (ht_purge): New function.
2104 (ht_dump_statistics): Print deletion statistics.
2105
899015a0
TT
21062008-05-13 Tom Tromey <tromey@redhat.com>
2107
2108 PR preprocessor/22168:
2109 * include/cpplib.h (struct cpp_options) <objc>: Update
2110 documentation.
2111 * expr.c (eval_token): Warn for use of assertions.
2112 * directives.c (directive_diagnostics): Warn about extensions.
2113 (DEPRECATED): New define.
2114 (DIRECTIVE_TABLE): Use it.
2115
71c10038
TT
21162008-05-06 Tom Tromey <tromey@redhat.com>
2117
2118 PR preprocessor/35313, PR preprocessor/36088:
2119 * expr.c (optab) <QUERY, COMMA>: Set precedence to 4.
2120 (reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON.
2121
2bd0fe3d
DM
21222008-05-04 David S. Miller <davem@davemloft.net>
2123
2124 * configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
2125 * configure: Regenerate.
2126
28f68625
DF
21272008-04-22 Daniel Franke <franke.daniel@gmail.com>
2128
2129 * include/cpplib.h (cpp_define_formatted): New.
2130 * directives.c (cpp_define_formatted): New.
2131
688e7a53
TT
21322008-04-21 Tom Tromey <tromey@redhat.com>
2133
2134 PR libcpp/33415:
2135 * charset.c (_cpp_convert_input): Add buffer_start argument.
2136 Ignore UTF-8 BOM if seen.
2137 * internal.h (_cpp_convert_input): Add argument.
2138 * files.c (struct _cpp_file) <buffer_start>: New field.
2139 (destroy_cpp_file): Free buffer_start, not buffer.
2140 (_cpp_pop_file_buffer): Likewise.
2141 (read_file_guts): Update.
2142
b6baa67d
KVH
21432008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
2144
2145 * include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal.
2146 * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
2147 (struct cpp_options): Added uliterals.
2148 (cpp_interpret_string): Update prototype.
2149 (cpp_interpret_string_notranslate): Idem.
2150 * charset.c (init_iconv_desc): New width member in cset_converter.
2151 (cpp_init_iconv): Add support for char{16,32}_cset_desc.
2152 (convert_ucn): Idem.
2153 (emit_numeric_escape): Idem.
2154 (convert_hex): Idem.
2155 (convert_oct): Idem.
2156 (convert_escape): Idem.
2157 (converter_for_type): New function.
2158 (cpp_interpret_string): Use converter_for_type, support u and U prefix.
2159 (cpp_interpret_string_notranslate): Match changed prototype.
2160 (wide_str_to_charconst): Use converter_for_type.
2161 (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
2162 * directives.c (linemarker_dir): Macro U changed to UC.
2163 (parse_include): Idem.
2164 (register_pragma_1): Idem.
2165 (restore_registered_pragmas): Idem.
2166 (get__Pragma_string): Support CPP_STRING{16,32}.
2167 * expr.c (eval_token): Support CPP_CHAR{16,32}.
2168 * init.c (struct lang_flags): Added uliterals.
2169 (lang_defaults): Idem.
2170 * internal.h (struct cset_converter) <width>: New field.
2171 (struct cpp_reader) <char16_cset_desc>: Idem.
2172 (struct cpp_reader) <char32_cset_desc>: Idem.
2173 * lex.c (digraph_spellings): Macro U changed to UC.
2174 (OP, TK): Idem.
2175 (lex_string): Add support for u'...', U'...', u"..." and U"...".
2176 (_cpp_lex_direct): Idem.
2177 * macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
2178 (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
2179
deb984e6
PB
21802008-04-18 Paolo Bonzini <bonzini@gnu.org>
2181
2182 PR bootstrap/35457
2183 * aclocal.m4: Regenerate.
2184 * configure: Regenerate.
2185
bf048bea
TT
21862008-04-17 Tom Tromey <tromey@redhat.com>
2187
2188 PR libcpp/34866:
2189 * errors.c (cpp_error): Don't reference a token before the start
2190 of the current run.
2191
7f27b0f8
TT
21922008-04-16 Tom Tromey <tromey@redhat.com>
2193
2194 * Makefile.in (TAGS_SOURCES): New variable.
2195 (TAGS): New target.
2196
a1fcb9a1
KK
21972008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
2198
2199 * configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-*
2200 and shbe-*-*.
2201 * configure: Rebuilt.
2202
93d45d9e
JM
22032008-04-02 Joseph Myers <joseph@codesourcery.com>
2204
2205 * include/cpplib.h (struct cpp_callbacks): Add used_define,
2206 used_undef and before_define.
2207 (NODE_USED): Define.
2208 * directives.c (do_define, do_undef, undefine_macros, do_ifdef,
2209 do_ifndef, cpp_pop_definition): Handle new flag and use new
2210 callbacks.
2211 * expr.c (parse_defined): Handle new flag and use new callbacks.
2212 * macro.c (enter_macro_context, _cpp_free_definition): Handle new
2213 flag and use new callbacks.
2214
d4c32e1d
JJ
22152008-04-01 Jakub Jelinek <jakub@redhat.com>
2216
2217 PR pch/13675
2218 * files.c (struct _cpp_file): Remove pch field.
2219 (pch_open_file): Don't set file->pch, just file->pchname.
2220 (should_stack_file): After pfile->cb.read_pch call
2221 free pchname and clear pchname, don't close file->fd.
2222 Test file->pchname instead of file->pch. Don't close fd after cb.
2223 (_cpp_stack_include): Test file->pchname instead of file->pch.
2224
161031e3
TT
22252008-03-28 Tom Tromey <tromey@redhat.com>
2226
2227 * Makefile.in (POSTCOMPILE): New variable.
2228 (.c.o): Use it.
2229
14ccf800
TT
22302008-03-13 Tom Tromey <tromey@redhat.com>
2231
2232 PR libcpp/35322:
2233 * directives.c (destringize_and_run): Set pfile->directive.
2234
830465c6
MM
22352008-03-06 Markus Milleder <markus.milleder@generali.at>
2236
2237 PR preprocessor/35458
2238 * mkdeps.c (munge): Quote '#' with a '\'.
2239
d482a073
RW
22402008-02-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2241
2242 PR preprocessor/35379
2243 * mkdeps.c (deps_write): Ensure the first target always appears
2244 in the first column, without leading backslash newline. Avoid
2245 some more extra whitespace.
2246
185a6cc1
TS
22472008-02-25 Thiemo Seufer <ths@mips.com>
2248
d482a073 2249 * Makefile.in ($(srcdir)/config.in): Depend on configure.ac.
185a6cc1 2250
2bf41bf0
TT
22512008-02-19 Tom Tromey <tromey@redhat.com>
2252
2253 * traditional.c (lex_identifier): Use CPP_HASHNODE.
2254 * lex.c (lex_identifier): Use CPP_HASHNODE.
2255 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in
2256 do-while.
2257 * identifiers.c (alloc_node): Change return type.
2258 (_cpp_init_hashtable): Don't cast 'alloc_node'.
2259 (proxy_assertion_broken): New declaration.
2260 (cpp_forall_identifiers): Move comment.
2261 * line-map.c (linemap_add): Comment fix.
2262 (linemap_line_start): Indentation fix.
2263
765d600a
JJ
22642008-01-25 Jakub Jelinek <jakub@redhat.com>
2265
2266 PR preprocessor/34692
2267 * macro.c (collect_args): Add pragma_buff argument. Push
2268 CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather
2269 than into arguments. Reset prevent_expansion and parsing_args
2270 state at CPP_PRAGMA_EOL/CPP_EOF.
2271 (funlike_invocation_p): Add pragma_buff argument, pass it through
2272 to collect_args.
2273 (enter_macro_context): Add result argument. Adjust
2274 funlike_invocation_p caller. Emit all deferred pragma tokens
2275 gathered during collect_args before the expansion, add a padding
2276 token. Return 2 instead of 1 if any pragma tokens were prepended.
2277 (cpp_get_token): If enter_macro_context returns 2, don't return
2278 a padding token, instead cycle to grab CPP_PRAGMA token.
2279 * directives.c (_cpp_handle_directive): If was_parsing_args
2280 in deferred pragma, leave parsing_args and prevent_expansion as is.
2281
ec46053b
TT
22822008-01-22 Tom Tromey <tromey@redhat.com>
2283
765d600a 2284 PR c++/34859
ec46053b
TT
2285 * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and
2286 __STDC_CONSTANT_MACROS.
2287
681c6ab0
FF
22882008-01-07 Fred Fish <fnf@specifix.com>
2289
765d600a 2290 PR preprocessor/30363
681c6ab0
FF
2291 * traditional.c (replace_args_and_push): Add local variable
2292 cxtquote, calculate the replacement text size assuming a
2293 worst case of every input character quoted with backslash,
2294 and properly handle output quoting of quote characters in
2295 actual arguments used in function-like macros.
2296
33ae4837
TT
22972008-01-03 Tom Tromey <tromey@redhat.com>
2298
765d600a 2299 PR preprocessor/34602
33ae4837
TT
2300 * directives.c (do_line): Don't try to spell EOF token.
2301 (do_linemarker): Add comment.
2302
675575f5
DD
23032007-12-11 DJ Delorie <dj@redhat.com>
2304
2305 * charset.c (convert_using_iconv): Close out any shift states,
2306 returning to the initial state.
2307
97f6bd40
TT
23082007-12-06 Tom Tromey <tromey@redhat.com>
2309
765d600a 2310 PR c/29172
97f6bd40
TT
2311 * internal.h (struct cpp_reader) <file_hash_entries>: Changed
2312 type.
2313 <file_hash_entries_allocated, file_hash_entries_used>: Removed.
2314 * files.c (FILE_HASH_POOL_SIZE): New macro.
2315 (struct file_hash_entry_pool): New.
2316 (destroy_all_cpp_files): New function.
2317 (allocate_file_hash_entries): Allocate a file_hash_entry_pool.
2318 (new_file_hash_entry): Update.
2319 (free_file_hash_entries): New function.
2320 (_cpp_cleanup_files): Call free_file_hash_entries and
2321 destroy_all_cpp_files.
2322 (cpp_clear_file_cache): New function.
2323 * include/cpplib.h (cpp_clear_file_cache): Declare.
2324
d56a25e1
TT
23252007-12-03 Tom Tromey <tromey@redhat.com>
2326
765d600a 2327 PR preprocessor/34288
d56a25e1
TT
2328 * configure.ac, config.in: Rebuilt.
2329 * configure.ac: Check for ssize_t.
2330
607f74e9
TT
23312007-11-30 Tom Tromey <tromey@redhat.com>
2332
765d600a 2333 PR preprocessor/32868
607f74e9
TT
2334 * macro.c (_cpp_create_definition): Special case
2335 __STDC_FORMAT_MACROS.
2336
b0f4807f
MM
23372007-11-16 Michael Matz <matz@suse.de>
2338
2339 * files.c (search_path_head): Fix check for absolute paths.
2340
f1e20710
TT
23412007-11-11 Tom Tromey <tromey@redhat.com>
2342
765d600a 2343 PR c++/17557
f1e20710
TT
2344 * include/cpplib.h (cpp_included_before): Declare.
2345 * files.c (struct file_hash_entry) <location>: New field.
2346 (_cpp_find_file): Initialize new field.
2347 (make_cpp_dir): Likewise.
2348 (cpp_included_before): New function.
2349
f373b44d
TT
23502007-11-01 Tom Tromey <tromey@redhat.com>
2351
765d600a 2352 PR preprocessor/30805
f373b44d
TT
2353 * macro.c (paste_tokens): Handle padding token.
2354 (paste_tokens): Don't abort unless padding has PASTE_LEFT flag.
2355
5b9a40df
TT
23562007-10-31 Tom Tromey <tromey@redhat.com>
2357
765d600a 2358 PR preprocessor/30786
5b9a40df
TT
2359 * macro.c (builtin_macro): Return result of _cpp_do__Pragma.
2360 * directives.c (_cpp_do__Pragma): Return error status.
2361 * internal.h (_cpp_do__Pragma): Update.
2362 * directives.c (get__Pragma_string): Back up if EOF seen.
2363
5ffeb913
TT
23642007-09-06 Tom Tromey <tromey@redhat.com>
2365
2366 * internal.h (struct cpp_reader) <invocation_location>: New
2367 field.
2368 (struct cpp_reader) <set_invocation_location>: Likewise.
2369 * init.c (cpp_set_line_map): New function.
2370 * line-map.c (linemap_add): Use linemap's allocator.
2371 * include/line-map.h (GTY): Define.
2372 (line_map_realloc): New typedef.
2373 (struct line_map): Mark with GTY.
2374 (struct line_maps): Likewise.
2375 (struct line_maps) <maps>: Likewise.
2376 (struct line_maps) <reallocator>: New field.
2377 * include/symtab.h (GTY): Conditionally define.
2378 * include/cpplib.h (cpp_set_line_map): Declare.
2379 (cpp_get_token_with_location): Declare.
2380 * macro.c (cpp_get_token): Set invocation_location on the reader.
2381 (cpp_get_token_with_location): New function.
2382
ac6b1c67
CF
23832007-08-30 Chao-ying Fu <fu@mips.com>
2384
2385 * expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur,
2386 ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk.
2387 (cpp_classify_number): Support decimal fixed-point constants without
2388 exponents.
2389 Warn about fixed-point constants when -pedantic.
2390 * include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change
2391 comments to support fixed-point values.
2392 (CPP_N_FRACT, CPP_N_ACCUM): Define.
2393
cda5e672
TT
23942007-08-18 Tom Tromey <tromey@redhat.com>
2395
765d600a 2396 PR preprocessor/32974
cda5e672
TT
2397 * directives.c (parse_include): Don't check for EOL when
2398 processing #pragma dependency.
2399
ccfc4c91
OW
24002007-07-30 Ollie Wild <aaw@google.com>
2401
2402 * directives-only.c: New file.
2403 * internal.h (struct _cpp_dir_only_callbacks): New.
2404 (_cpp_preprocess_dir_only): New function.
2405 * directives.c (_cpp_handle_directive): Check directives_only before
2406 disabling execution of indented directives.
2407 * files.c (_cpp_stack_file): Add directives_only check.
2408 * include/cpplib.h (struct cpp_options): Add directives_only.
2409 (cpp_init_special_builtins): New function.
2410 * init.c (cpp_init_special_builtins): New function.
2411 (cpp_init_builtins): Move builtin_array initialization to
2412 cpp_init_special_builtins.
2413 (post_options): Check directives_only before setting
2414 pfile->state.prevent_expansion = 1.
2415 * macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
2416 is expanded inside a directive while -fdirectives-only is enabled.
2417 * Makefile.in (libcpp_a_OBJS): Add directives-only.o.
2418 (libcpp_a_SOURCES): Add directives-only.c.
2419
a206413a
UB
24202007-07-04 Uros Bizjak <ubizjak@gmail.com>
2421
2422 * traditional.c (_cpp_scan_out_logical_line): Initialize
2423 fmacro.args, fmacro.node, fmacro.offset, fmacro.line and
2424 fmacro.args to prevent 'may be used uninitialized' warning.
2425
c77cd3d1
UB
24262007-07-03 Uros Bizjak <ubizjak@gmail.com>
2427
2428 * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q):
2429 Add new constants.
2430 * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q'
2431 suffixes. Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q
2432 for 'q' or 'Q' suffixes.
2433
66938a1d
DS
24342007-06-17 Danny Smith <dannysmith@users.sourceforge.net
2435
e1311401 2436 * files.c (open_file): Correct typo.
66938a1d 2437
71995ede
VP
24382007-06-16 Vladimir Prus <vladimir@codesourcery.com>
2439
e1311401 2440 * files.c (open_file): Prevent the call
71995ede
VP
2441 for stat from overwriting errno.
2442
84152c25
VP
24432007-06-09 Vladimir Prus <vladimir@codesourcery.com>
2444
e1311401 2445 * files.c (open_file): Account for the
84152c25
VP
2446 fact that on windows, opening a directory gives
2447 EACCES.
2448
f7fd775f
JW
24492007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
2450
2451 PR preprocessor/23479
2452 * expr.c (cpp_classify_number): Implement 0b-prefixed binary
2453 integer constants.
2454 (append_digit): Likewise.
2455 * include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed
2456 binary integer constants.
2457
ed0e74e0
DK
24582007-05-31 Dave Korn <dave.korn@artimi.com>
2459
2460 PR preprocessor/14331
2461 * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF.
2462
a702045a
OW
24632007-05-24 Ollie Wild <aaw@google.com>
2464
2465 * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER.
2466 * pch.c (cpp_write_pch_deps): Save __COUNTER__ state.
2467 (cpp_write_pch_state): Save __COUNTER__ state.
2468 (cpp_valid_state): Check valid __COUNTER__ state.
2469 (cpp_read_state): Read new __COUNTER__ state.
2470 * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator.
2471 * init.c (builtin_array): Add __COUNTER__/BT_COUNTER.
2472 * internal.h (struct cpp_reader): Add counter member.
2473
126e073b
SM
24742007-05-23 Simon Martin <simartin@users.sourceforge.net>
2475
2476 PR preprocessor/20077
2477 * macro.c (create_iso_definition): Fixed the method to determine
2478 whether the token-pasting operator appears at the beginning or the end
2479 of a macro.
2480
0b4cafec
ILT
24812007-05-21 Ian Lance Taylor <iant@google.com>
2482
2483 * internal.h (struct cpp_reader): Add new fields:
2484 nonexistent_file_hash and nonexistent_file_ob.
2485 * files.c: Include "obstack.h".
2486 (find_file_in_dir): Before trying to open the file, look up the
2487 path name in the hash table of nonexistent files. After failing
2488 to open the file, add the path name to the hash table.
2489 (_cpp_find_file): Cache the results of looking up the file name
2490 starting with the quote and bracket chain heads, if we can.
2491 (nonexistent_file_hash_eq): New static function.
2492 (_cpp_init_files): Initialize pfile->nonexistent_file_hash and
2493 pfile->nonexistent_file_ob.
2494 (_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
2495 pfile->nonexistent_file_ob.
2496
30e04921
JJ
24972007-05-14 Janis Johnson <janis187@us.ibm.com>
2498
5a6bb57e
JJ
2499 * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic.
2500
30e04921
JJ
2501 PR c/31924
2502 * expr.c (interpret_float_suffix): Check for invalid suffix.
2503
22a8a52d
EC
25042007-05-02 Eric Christopher <echristo@apple.com>
2505
2506 * expr.c (num_div_op): Don't overflow if the result is
2507 zero.
2508
fca35e1b
TT
25092007-05-02 Tom Tromey <tromey@redhat.com>
2510
765d600a 2511 PR preprocessor/28709
fca35e1b
TT
2512 * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
2513
4cd97075
MM
25142007-03-30 Michael Meissner <michael.meissner@amd.com>
2515
2516 * directives.c (lex_macro_node_from_str): Fix alloca call to be
2517 type correct.
2518
121de39f
RH
25192007-03-30 Richard Henderson <rth@redhat.com>
2520
2521 * directives.c (lex_macro_node_from_str): New.
2522 (cpp_push_definition, cpp_pop_definition): New.
2523 * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
2524
4fcb360b
BM
25252007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2526
2527 * Makefile.in: Add dummy install-pdf target.
2528
67e64439
TT
25292007-01-30 Tom Tromey <tromey@redhat.com>
2530
765d600a 2531 PR preprocessor/30468
67e64439
TT
2532 * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
2533 './'.
2534
ee380365
TT
25352007-01-30 Tom Tromey <tromey@redhat.com>
2536
765d600a 2537 PR preprocessor/29966
ee380365
TT
2538 * macro.c (lex_expansion_token): Save and restore cpp_reader's
2539 cur_token.
2540 (_cpp_create_definition): Don't restore cur_token here.
2541 * lex.c (_cpp_lex_token): Added assertion.
2542
024abeb3
TT
25432007-01-27 Tom Tromey <tromey@redhat.com>
2544
2545 * configure: Rebuilt.
2546
ee1c2a10
TT
25472007-01-12 Tom Tromey <tromey@redhat.com>
2548
765d600a 2549 PR preprocessor/28227
ee1c2a10
TT
2550 * directives.c (lex_macro_node): Added 'is_def_or_undef'
2551 argument.
2552 (do_define): Update.
2553 (do_undef): Update.
2554 (do_ifdef): Update.
2555 (do_ifndef): Update.
2556
67214c16
PB
25572007-01-11 Paolo Bonzini <bonzini@gnu.org>
2558
2559 * configure: Regenerate.
2560
1aa6ca40
PB
25612007-01-11 Paolo Bonzini <bonzini@gnu.org>
2562
2563 * configure: Regenerate.
2564
705e2d28
TT
25652007-01-04 Tom Tromey <tromey@redhat.com>
2566
765d600a 2567 PR preprocessor/28165
705e2d28
TT
2568 * internal.h (cpp_in_primary_file): New function.
2569 * directives.c (do_include_next): Use cpp_in_primary_file.
2570 (do_pragma_once): Likewise.
2571 (do_pragma_system_header): Likewise.
2572
7af45bd4
ILT
25732006-12-29 Ian Lance Taylor <iant@google.com>
2574
2575 * lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't
2576 look backward at the end of the line unless we saw a backslash.
2577
9d30f270
JJ
25782006-12-29 Jakub Jelinek <jakub@redhat.com>
2579
2580 PR preprocessor/29612
2581 * directives.c (do_linemarker): Set pfile->buffer->sysp always, not
2582 only when new_sysp is non-zero.
2583
30b0edc0
TT
25842006-12-28 Tom Tromey <tromey@redhat.com>
2585
765d600a 2586 PR preprocessor/30001
30b0edc0
TT
2587 * charset.c (_cpp_convert_input): Check that to.len is greater
2588 than zero.
2589
85d9c13c
TS
25902006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2591
2592 * configure.ac (need_64bit_hwint): Need 64bit hwint for SPU.
83cc06b2 2593 * configure: Rebuilt.
85d9c13c 2594
dfafdaa6
DG
25952006-11-01 Douglas Gregor <doug.gregor@gmail.com>
2596
2597 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
2598 for experimental C++0x mode.
2599 * init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
2600 adopted the preprocessor changes introduced in C99.
2601
0f45f0f5
JM
26022006-10-29 Joseph Myers <joseph@codesourcery.com>
2603
2604 * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
2605 depending on --enable-targets=all.
2606 * configure: Regenerate.
2607
de000d22
JJ
26082006-10-12 Jakub Jelinek <jakub@redhat.com>
2609
2610 PR preprocessor/28709
2611 * macro.c (paste_tokens): Do error reporting here, use BUF with the
2612 spelled LHS token as opposed to spelling it again.
2613 (paste_all_tokens): Don't report errors here, just break on failure.
2614
b5422ad7
BM
26152006-10-10 Brooks Moses <bmoses@stanford.edu>
2616
2617 * Makefile.in: Added empty "pdf" target.
2618
aaf50ff2
GK
26192006-09-22 Geoffrey Keating <geoffk@apple.com>
2620
2621 * configure.ac: Make need_64_bit_hwint case for x86-darwin
2622 match exactly the glob in gcc/config.gcc.
2623 * configure: Regenerate.
2624
c663e301
JM
26252006-09-13 Joseph S. Myers <joseph@codesourcery.com>
2626
2627 PR c/28768
2628 PR preprocessor/14634
2629 * lex.c (lex_string): Pedwarn for unterminated literals.
2630
f7288899
EC
26312006-09-08 Eric Christopher <echristo@apple.com>
2632
2633 * configure.ac: Add 64-bit HWI support for i?86-darwin.
2634
b52dbbf8
SE
26352006-08-14 Steve Ellcey <sje@cup.hp.com>
2636
2637 PR c++/28288
2638 PR c++/14556
2639 * include/cpplib.h: Remove <?, >?, <?=, and >?= tokens.
2640 (CPP_LAST_EQ): Change.
2641 (CPP_LAST_PUNCTUATOR): Change.
2642 * expr.c (cpp_operator): Remove MIN and MAX.
2643 (reduce): Remove CPP_MIN and CPP_MAX.
2644 (num_binary_op): Ditto.
2645 * lex.c (_cpp_lex_direct): Ditto.
2646 (cpp_avoid_paste): Remove ? as legal symbol after > or <.
2647
1c90c6f9
JJ
26482006-06-09 Jakub Jelinek <jakub@redhat.com>
2649
2650 PR preprocessor/27746
2651 * directives.c (do_pragma): Handle pragma with valid namespace
2652 and invalid name coming from macro expansion.
2653 * directives.c (destringize_and_run): Initialize next field in
2654 context.
2655
2656 PR c/27747
2657 PR c++/27748
2658 * directives.c (destringize_and_run): Set NO_EXPAND on the
2659 tokens.
2660
2661 * macro.c (_cpp_backup_tokens): Fix comment typo.
2662
5c3c3683
DJ
26632006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
2664
2665 * Makefile.in (CATALOGS): Add po/ prefix.
2666 * configure: Regenerated.
2667
b2bd74bc
CD
26682006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2669
2670 * Makefile.in: Add install-html target. Add install-html to .PHONY
2671
be8ac3e2
GZ
26722006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
2673
2674 * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
2675 * files.c (_cpp_get_file_stat): New function.
2676 * include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
2677 * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
2678 * internal.h (_cpp_get_file_stat): Prototype.
2679 (struct cpp_buffer): Add timestamp.
2680
83900997
JJ
26812006-01-23 Jakub Jelinek <jakub@redhat.com>
2682
2683 PR preprocessor/25717
2684 * init.c (cpp_init_builtins): If __STDC__ will not change value
2685 between system headers and other sources, define it as a normal
2686 macro rather than a builtin.
2687 * macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
2688 cpp_in_system_header condition.
2689
26902006-01-05 Paolo Bonzini <bonzini@gnu.org>
9220c30c
PB
2691
2692 * Makefile.in: Use -MMD instead of -MD.
2693
bc4071dd
RH
26942006-01-04 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
2695 Richard Henderson <rth@redhat.com>
2696
2697 Merge from gomp branch:
2698 * directives.c (struct pragma_entry): Add is_deferred. Add ident
2699 entry to value union.
2700 (end_directive): Don't eat the line if in_deferred_pragma.
2701 (run_directive): Remove pragma hacks.
2702 (insert_pragma_entry): Remove.
2703 (new_pragma_entry): New.
2704 (register_pragma_1): Split out of register_pragma. Only handle
2705 the lookup tree and return the new entry.
2706 (cpp_register_pragma): Fill in the pragma entry here.
2707 (cpp_register_deferred_pragma): New.
2708 (register_pragma_internal): New.
2709 (_cpp_init_internal_pragmas): Use register_pragma_internal.
2710 (do_pragma): Allow pragma expansion after namespace. For deferred
2711 pragmas, don't slurp the line into a string.
2712 (destringize_and_run): Save tokens for deferred pragmas.
2713 (cpp_handle_deferred_pragma): Remove.
2714 * macro.c (builtin_macro): Remove pragma token hack.
2715 (_cpp_push_token_context): Rename from push_token_context and export.
2716 * internal.h (struct lexer_state): Add pragma_allow_expansion.
2717 (_cpp_push_token_context): Declare.
2718 * lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
2719 a token. Update the line number correctly if so.
2720 (_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
2721 (cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
2722 * include/cpplib.h (PRAGMA_EOL): New.
2723 (CPP_TOKEN_FLD_PRAGMA): New.
2724 (struct cpp_token): Add val.pragma.
2725 (struct cpp_options): Remove defer_pragmas.
2726 (cpp_handle_deferred_pragma): Remove.
2727 (cpp_register_deferred_pragma): Declare.
2728
d09e893f
JJ
27292006-01-01 Jakub Jelinek <jakub@redhat.com>
2730
2731 PR c++/25294
2732 * directives.c (do_pragma): If pragma line ends with multi-line
2733 block comment, end the saved deferred pragma string before that
2734 comment. Handle embedded '\0' chars on the pragma line.
2735
ab84748a
VR
27362005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2737
2738 PR c++/23333
2739 * include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
2740
ad6ed77e
JG
27412005-12-07 Jon Grimm <jgrimm2@us.ibm.com>
2742 Ben Elliston <bje@au.ibm.com>
2743
2744 * include/cpplib.h (CPP_N_DFLOAT): New.
2745 * expr.c (interpret_float_suffix): Identify df, dd, and dl
2746 suffixes as decimal floating point constants.
2747 (cpp_classify_number): Disallow hexadecimal DFP constants.
2748
ba096620 27492005-11-14 Gerald Pfeifer <gerald@pfeifer.com>
bc4071dd 2750 Ian Lance Taylor <ian@airs.com>
ba096620
GP
2751
2752 * include/cpplib.h (struct cpp_callbacks): Annotate error with
2753 ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
2754
456b8ce5
UB
27552005-11-09 Per Bothner <per@bothner.com>
2756 Uros Bizjak <uros@kss-loka.si>
f7288899 2757
456b8ce5
UB
2758 PR c/24101
2759 * init.c (read_original_filename): Temporarily set
2760 state.in_directive before calling _cpp_lex_direct for
2761 CPP_HASH tokens.
2762
5571f74f
JW
27632005-11-03 James E Wilson <wilson@specifix.com>
2764
2765 PR preprocessor/24202
2766 * files.c (_cpp_pop_file_buffer): Set buffer_valid to false.
2767
a63607ed
JM
27682005-11-04 Joseph S. Myers <joseph@codesourcery.com>
2769
2770 * include/cpplib.h (struct cpp_callbacks): Make error take
2771 va_list* parameter.
2772 * errors.c (cpp_error): Update call to callback.
2773
651ed942
AP
27742005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
2775
2776 PR preprocessor/22042
2777 * macro.c (_cpp_builtin_macro_text): Lower the needed max
2778 buffer size.
2779 (cpp_quote_string): Don't octalify non printable
2780 charactors.
2781
178b58b5
JM
27822005-11-03 Joseph S. Myers <joseph@codesourcery.com>
2783
2784 PR c++/17964
2785 * include/cpplib.h (struct cpp_options): Add client_diagnostic.
2786 (struct cpp_callbacks): Add error.
2787 * errors.c (cpp_error): If client_diagnostic, use error callback.
2788 * charset.c (convert_escape): Don't use %03o in diagnostic.
2789
3ee5ed11 27902005-10-21 James E Wilson <wilson@specifix.com>
6568f34b
JW
2791
2792 PR preprocessor/15220
2793 * files.c (_cpp_find_file): New parameter angle_brackets. Fix all
2794 callers. Pass to open_file_failed.
2795 (open_file_failed): New parameter angle_brackets. Fix all callers.
2796 Use in print_dep assignment.
2797 * init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
2798 * internal.h (_cpp_find_file): Add new parm to declaration.
f7288899 2799
077fc835
KH
28002005-10-08 Kazu Hirata <kazu@codesourcery.com>
2801
2802 * configure.ac: Require 64-bit int for arm*-*-*eabi*.
2803 * configure: Regenerate.
2804
cbc43ae0
ILT
28052005-10-04 Ian Lance Taylor <ian@airs.com>
2806
2807 PR preprocessor/13726
2808 * directives.c (check_eol_return_comments): New static function.
2809 (parse_include): Add buf parameter. Change all callers.
2810 (do_include_common): If not discard comments, turn on
2811 save_comments. Pass collected comments to include callback.
2812 * include/cpplib.h (struct cpp_callbacks): Add new parameter to
2813 include callback: cpp_token list.
2814
af15a2fe
JM
28152005-09-20 Joseph S. Myers <joseph@codesourcery.com>
2816
2817 * include/cpplib.h (struct cpp_options): Add extended_identifiers.
2818 * init.c (struct lang_flags, lang_defaults): Add
2819 extended_identifiers.
2820 (cpp_set_lang): Use it.
2821 * lex.c (forms_identifier_p): Check extended_identifiers.
2822
f5eab47e
JJ
28232005-08-30 Jakub Jelinek <jakub@redhat.com>
2824
2825 PR preprocessor/20348
2826 PR preprocessor/20356
2827 * files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and
2828 2004-06-05 changes.
2829
467129e6
KG
28302005-07-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2831
2832 * configure.ac (ACX_PROG_CC_WARNING_OPTS): add
2833 -Wmissing-format-attribute.
2834
2835 * configure: Regenerate.
2836
200031d1
KC
28372005-06-29 Kelley Cook <kcook@gcc.gnu.org>
2838
2839 * all files: Update FSF address in copyright headers.
2840 * makeucnid.c (write_copyright): Update outputted FSF address.
2841
f610dd5f
ZW
28422005-06-13 Zack Weinberg <zack@codesourcery.com>
2843
2844 * configure.ac: Invoke ZW_CREATE_DEPDIR and
2845 ZW_PROG_COMPILER_DEPENDENCIES.
2846 * aclocal.m4, configure: Regenerate.
2847 * Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE):
2848 New variables.
2849 (distclean): Clean up $(DEPDIR) and its contents.
2850 (.c.o): Use $(COMPILE).
2851 Include $(DEPDIR)/*.Po for most object->header dependencies.
2852
c3f829c1
GDR
28532005-05-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
2854
2855 * configure.ac: Check declarations for asprintf and vasprintf.
2856 * config.in: Regenerate.
2857 * configure: Likewise.
2858
2859 * charset.c (conversion_loop): Use XRESIZEVEC.
2860 (convert_no_conversion): Likewise.
2861 (convert_using_iconv): Likewise.
2862 (init_iconv_desc): Cast return value of alloca.
2863 (cpp_host_to_exec_charset): Use XNEWVEC.
2864 (emit_numeric_escape): Use XRESIZEVEC.
2865 (cpp_interpret_string): Use XNEWVEC.
2866 (cpp_interpret_string): Use XRESIZEVEC.
2867 (_cpp_interpret_identifier): Cast return value of alloca.
2868 (_cpp_convert_input): Use XNEWVEC and XRESIZEVEC.
2869 * directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC.
2870 (parse_include): Use XNEWVEC.
2871 (insert_pragma_entry): Rename local variable "new" to
f610dd5f 2872 "new_entry".
c3f829c1
GDR
2873 (save_registered_pragmas): Cast return value of xmemdup.
2874 (destringize_and_run): Same for alloca.
2875 (parse_assertion): Likewise.
2876 (do_assert): Cast allocated storage to proper type.
2877 (cpp_define): Likewise.
2878 (_cpp_define_builtin): Likewise.
2879 (cpp_undef): Likewise.
2880 (handle_assertion): Likewise.
2881 (cpp_push_buffer): Rename local variable "new" to "new_buffer".
2882 * expr.c (CPP_UPLUS): Cast value to type cpp_ttype.
2883 (CPP_UMINUS): Likewise.
2884 (struct cpp_operator): Rename from struct operator.
2885 (_cpp_expand_op_stack): Use XRESIZEVEC.
2886 * files.c (pch_open_file): Use XNEWVEC.
2887 (pch_open_file): Use XRESIZEVEC.
2888 (read_file_guts): Use XNEWVEC and XRESIZEVEC.
2889 (dir_name_of_file): Use XNEWVEC.
2890 (make_cpp_file): Use XCNEW.
2891 (make_cpp_dir): Likewise.
2892 (allocate_file_hash_entries): USE XNEWVEC.
2893 (cpp_included): Cast return value of htab_find_with_hash.
2894 (append_file_to_dir): Use XNEWVEC.
2895 (read_filename_string): Likewise. Use XRESIZEVEC too.
2896 (read_name_map): Cast return value of alloca. Use XRESIZEVEC.
2897 (remap_filename): Use XNEWVEC.
2898 (struct pchf_entry): Move definition out of struct pchf_data.
2899 (_cpp_save_file_entries): Use XCNEWVAR.
2900 (_cpp_read_file_entries): Use XNEWVAR.
2901 * identifiers.c (alloc_node): Use XOBNEW.
2902 * init.c (cpp_create_reader): Use XCNEW.
2903 (cpp_init_builtins): Cast of b->value to enum builtin_type.
2904 (read_original_directory): Cast return value of alloca.
2905 * lex.c (add_line_note): Use XRESIZEVEC.
2906 (warn_about_normalization): Use XNEWVEC.
2907 (_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype).
2908 (new_buff): Use XNEWVEC.
2909 * line-map.c (linemap_add): Use XRESIZEVEC.
2910 * macro.c (builtin_macro): Cast return value of alloca.
2911 (paste_tokens): Likewise.
2912 (expand_arg): Use XNEWVEC and XRESIZEVEC.
2913 (_cpp_save_parameter): Use XRESIZEVEC.
2914 (create_iso_definition): Cast allocated storage to proper type.
2915 (_cpp_create_definition): Likewise.
2916 (cpp_macro_definition): Use XRESIZEVEC.
2917 * makedepend.c (add_clm): Use XNEW.
2918 (add_dir): Likewise.
2919 * mkdeps.c (munge): Use XNEWVEC.
2920 (deps_init): Use XCNEW.
2921 (deps_add_target): Use XRESIZEVEC.
2922 (deps_add_default_target): Cast return value of alloca.
2923 (deps_add_dep): Use XRESIZEVEC.
2924 (deps_add_vpath): Likewise. Use XNEWVEC too.
2925 (deps_restore): Likewise.
2926 * pch.c (save_idents): Use XNEW and XNEWVEC.
2927 (cpp_save_state): Use XNEW.
2928 (count_defs): Cast return value of htab_find.
2929 (write_defs): Likewise.
2930 (cpp_write_pch_deps): Use XNEWVEC.
2931 (collect_ht_nodes): Use XRESIZEVEC.
2932 (cpp_valid_state): Use XNEWVEC.
2933 (save_macros): Use XRESIZEVEC. Cast return value of xmemdup.
2934 * symtab.c (ht_create): Use XCNEW.
2935 (ht_lookup_with_hash): Cast return value of obstack_copy0.
2936 (ht_expand): Use XCNEWVEC.
2937 * system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus.
2938 (bool): Do not define if __cplusplus.
2939
1ed17cd5
ZW
29402005-05-12 Zack Weinberg <zack@codesourcery.com>
2941
2942 * directives.c (#sccs table entry): Mark IN_I, consistent with #ident.
2943 (do_sccs): Delete function definition, #define to do_ident.
2944 (do_ident): Don't hardwire directive name.
2945
5a8c20ce
RK
29462005-05-12 Ryota Kunisawa <kunisawa@access.co.jp>
2947
2948 PR bootstrap/21230
2949 * configure: Regenerate.
2950
473c5bc9
AP
29512005-04-27 Andris Pavenis <pavenis@latnet.lv>
2952
2953 * files.c: Include io.h for DJGPP to get prototype of setmode.
2954
c1fc5047
PB
29552005-04-19 Per Bothner <per@bothner.com>
2956
2957 PR preprocessor/20907
2958 * line-map.c (linemap_line_start): Fix bug when we need to increse
2959 column_bits but can re-use the current line_map.
2960
042630ad
KG
29612005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2962
2963 * system.h (fopen, fdopen, freopen): Define these to the unlocked
2964 libiberty functions.
2965
0d667716
KG
29662005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2967
2968 * configure.ac (libcpp_UNLOCKED_FUNCS): New.
2969 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
2970 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
2971 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
2972 _unlocked function.
2973 (fwrite_unlocked): Fix prototype.
1ed17cd5 2974
0d667716
KG
2975 * configure, config.in: Regenerate.
2976
cae064e7
JJ
29772005-04-05 Jakub Jelinek <jakub@redhat.com>
2978
2979 PR preprocessor/19475
2980 * macro.c (create_iso_definition): For < ISO C99, don't
2981 pedwarn if there is no whitespace between macro name and its
2982 replacement, but the replacement starts with a basic character
2983 set character.
2984
cbada204
AJ
29852005-03-28 Andreas Jaeger <aj@suse.de>
2986
2987 * lex.c (warn_about_normalization): Cast field width to int to
2988 avoid warning.
2989
f42eccdb
JM
29902005-03-19 Joseph S. Myers <joseph@codesourcery.com>
2991
2992 * configure.ac: Consistently use solaris2.1[0-9]* instead of
2993 solaris2.1[0-9].
2994 * configure: Regenerate.
2995
c79e602b
GK
29962005-03-15 Geoffrey Keating <geoffk@apple.com>
2997
2998 * charset.c (_cpp_valid_ucn): In identifiers, reject a partial
2999 UCN rather than printing an error.
3000
50668cf6
GK
30012005-03-14 Geoffrey Keating <geoffk@apple.com>
3002
6baba9bb
GK
3003 * lex.c (forms_identifier_p): Disable UCNs in C89 mode.
3004
30052005-03-14 Geoffrey Keating <geoffk@apple.com>
1ed17cd5 3006
50668cf6
GK
3007 * init.c (cpp_create_reader): Default warn_normalize to normalized_C.
3008 * charset.c: Update for new format of ucnid.h.
3009 (ucn_valid_in_identifier): Update for new format of ucnid.h.
3010 Add NST parameter, and update it; update callers.
3011 (cpp_valid_ucn): Add NST parameter, update callers. Replace abort
3012 with cpp_error.
3013 (convert_ucn): Pass normalize_state to cpp_valid_ucn.
3014 * internal.h (struct normalize_state): New.
3015 (INITIAL_NORMALIZE_STATE): New.
3016 (NORMALIZE_STATE_RESULT): New.
3017 (NORMALIZE_STATE_UPDATE_IDNUM): New.
3018 (_cpp_valid_ucn): New.
3019 * lex.c (warn_about_normalization): New.
3020 (forms_identifier_p): Add normalize_state parameter, update callers.
3021 (lex_identifier): Add normalize_state parameter, update callers. Keep
3022 the state current.
3023 (lex_number): Likewise.
3024 (_cpp_lex_direct): Pass normalize_state to subroutines. Check
3025 it with warn_about_normalization.
3026 * makeucnid.c: New.
3027 * ucnid.h: Replace.
3028 * ucnid.pl: Remove.
3029 * ucnid.tab: Make appropriate for input to makeucnid.c. Remove
3030 comments about obsolete version of C++.
3031 * include/cpplib.h (enum cpp_normalize_level): New.
3032 (struct cpp_options): Add warn_normalize field.
3033
47e20491
GK
30342005-03-11 Geoffrey Keating <geoffk@apple.com>
3035
3036 * directives.c (glue_header_name): Update call to cpp_spell_token.
3037 * internal.h (_cpp_interpret_identifier): New.
3038 * charset.c (_cpp_interpret_identifier): New.
3039 (_cpp_valid_ucn): Allow UCN version of '$'.
3040 * lex.c (lex_identifier): Add extra parameter to indicate if initial
3041 character was '$' or '\'. Support identifiers with UCNs.
3042 (forms_identifier_p): Allow UCNs.
3043 (_cpp_lex_direct): Pass extra parameter to lex_identifier.
3044 (utf8_to_ucn): New.
3045 (cpp_spell_token): Add FORSTRING parameter. Use it.
3046 (cpp_token_as_text): Update call to cpp_spell_token.
3047 (cpp_output_token): Write UCNs back out.
3048 (stringify_arg): Update call to cpp_spell_token.
3049 (paste_tokens): Likewise.
3050 (cpp_macro_definition): Likewise.
3051 * macro.c (stringify_arg): Likewise.
3052 (paste_tokens): Likewise.
3053 (cpp_macro_definition): Likewise.
3054 * include/cpplib.h: Add parameter to cpp_spell_token.
3055
73096711
JJ
30562005-03-04 Jakub Jelinek <jakub@redhat.com>
3057
3058 PR bootstrap/20282
3059 PR bootstrap/20305
3060 * macro.c (replace_args, cpp_get_token): Copy whole
3061 cpp_token_u instead of just cpp_string field from it.
3062
2203a881
DP
30632005-02-28 Devang Patel <dpatel@apple.com>
3064
3065 * directives.c (do_line): Save sysp early before line table is
3066 realloc'ed.
1ed17cd5 3067
c5ff069d
ZW
30682005-02-20 Zack Weinberg <zack@codesourcery.com>
3069
3070 PR 18785
3071 * charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
3072 (cpp_host_to_exec_charset): New function.
3073 * include/cpplib.h: Declare cpp_host_to_exec_charset.
3074
04c90eea
DP
30752005-02-19 Devang Patel <dpatel@apple.com>
3076
3077 * charset.c (_cpp_convert_input): Check '\r' before inserting
3078 '\n' at the end.
c5ff069d 3079
6da55c00
EC
30802005-02-15 Eric Christopher <echristo@redhat.com>
3081
3082 PR preprocessor/19077
3083 * macro.c (cpp_macro_definition): Move handling of whitespace
3084 to PREV_WHITE conditional. Remove overloading of len
3085 variable.
3086
31c3e631
KH
30872005-02-14 Kazu Hirata <kazu@cs.umass.edu>
3088
3089 * directives.c, files.c, init.c, internal.h, macro.c, pch.c,
3090 traditional.c: Update copyright.
3091
be0f1e54
PB
30922005-02-14 Paolo Bonzini <bonzini@gnu.org>
3093
3094 PR bootstrap/19818
3095 * configure.ac: Check for declaration of basename and getopt.
3096 * config.in: Regenerate.
3097 * configure: Regenerate.
3098 * internal.h (ustrcspn): New.
3099 * macro.c (create_iso_definition): Fix allocation of memory.
3100 (padding_token): Add cast to remove const-ness.
3101 * pch.c (cpp_read_state): Use ustrcspn.
3102
ecddfb39
MS
31032005-02-08 Mike Stump <mrs@apple.com>
3104
3105 * files.c (pchf_adder): Remove.
3106 (struct pchf_adder_info): Likewise.
3107 (_cpp_save_file_entries): Write out all files so that #import works.
3108
9fcdd891
JM
31092005-01-23 Joseph S. Myers <joseph@codesourcery.com>
3110
3111 * configure: Regenerate.
3112
ecfd72e7
TS
31132005-01-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3114
3115 * include/cpplib.h (c_lang): Fix comment to say cpp_create_reader.
3116
6c25a4f7 3117 * include/cpplib.h: Also update copyright years.
c5ff069d 3118
942926ad
GK
31192005-01-03 Geoffrey Keating <geoffk@apple.com>
3120
3121 * files.c (_cpp_find_file): Add files found by search_path_exhausted
3122 to the list of all files.
3123
a2566ae9
GDR
31242005-01-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
3125
3126 * internal.h: Update references to Cpp lib filenames.
3127 * directives.c: Likewise.
3128 * init.c: Likewise.
3129 * macro.c: Likewise.
3130 * traditional.c: Likewise.
3131
1b449375
EB
31322004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr>
3133
3134 PR preprocessor/15167
3135 * files.c (destroy_cpp_file): New function.
3136 (should_stack_file): Make a new file if the
3137 compared file is still stacked.
3138
28303828
NN
31392004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
3140
c5ff069d 3141 PR preprocessor/17610
28303828
NN
3142 * directives.c (do_include_common): Error out if an empty filename
3143 is given for #include (or #include_next or #import).
3144
c812785a
RS
31452004-11-27 Roger Sayle <roger@eyesopen.com>
3146 Zack Weinberg <zack@codesourcery.com>
3147
3148 * internal.h: Replace all uses of uchar with unsigned char.
3149 * include/cpp-id-data.h: Likewise. Guard typedef of uchar
3150 with !IN_GCC, so uchar is only defined whilst building libcpp.
3151
f91eaa01
KC
31522004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3153
3154 * aclocal.m4: Regenerate.
3155
f78ce0c2
RS
31562004-11-24 Roger Sayle <roger@eyesopen.com>
3157
3158 PR preprocessor/15824
3159 * configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h>
3160 directly, instead of the non-existant "system.h" and "ansidecl.h".
3161 * configure: Regenerate.
3162
b5b3e36a 31632004-11-23 Daniel Jacobowitz <dan@codesourcery.com>
c5ff069d 3164 Joseph Myers <joseph@codesourcery.com>
b5b3e36a
DJ
3165
3166 * internal.h (struct lexer_state): Add in_deferred_pragma.
3167 * directives.c (struct pragma_entry): Add allow_expansion.
3168 (insert_pragma_entry): Take allow_expansion flag.
3169 (register_pragma): Likewise.
3170 (cpp_register_pragma): Likewise.
3171 (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma.
3172 (do_pragma): Honor allow_expansion.
3173 (cpp_handle_deferred_pragma): Set in_deferred_pragma.
3174 * include/cpplib.h (cpp_register_pragma): Update prototype.
3175
a8e68029 31762004-11-18 Daniel Jacobowitz <dan@codesourcery.com>
c5ff069d 3177 Mark Mitchell <mark@codesourcery.com>
a8e68029
DJ
3178
3179 * configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set
3180 need_64bit_hwint=yes.
3181 * configure: Regenerate.
3182
50f47ee0
JM
31832004-11-09 Joseph S. Myers <joseph@codesourcery.com>
3184
3185 * Makefile.in ($(PACKAGE).pot): New rule. Depend on
3186 po/$(PACKAGE).pot.
3187 (po/$(PACKAGE).pot): Use ":" instead of "," in --keyword
3188 arguments. Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2.
3189 Remove local srcdir path from generated file.
3190
968e08d6 31912004-11-04 Zack Weinberg <zack@codesourcery.com>
c5ff069d 3192 Gerald Pfeifer <gerald@pfeifer.com>
968e08d6
ZW
3193
3194 * internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
3195 as well.
3196
3da3d587
ZW
31972004-10-27 Zack Weinberg <zack@codesourcery.com>
3198
3199 PR 18075
3200 * directives.c (do_pragma): Do not defer pragmas which are unknown.
3201 (cpp_handle_deferred_pragma): Add cast to silence warning.
3202
ac24fc25
JM
32032004-10-14 Joseph S. Myers <jsm@polyomino.org.uk>
3204
3205 * errors.c (_cpp_begin_message): Print "error: " for errors.
3206
7731405b
AJ
32072004-10-10 Andreas Jaeger <aj@suse.de>
3208
3209 * makedepend.c: Include mkdeps.h for prototype of deps_add_vpath.
3210 * Makefile.in (makedepend.o): Add dependency on mkdeps.h.
3211
646544e3
AP
32122004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
3213
3214 * pch.c (cpp_write_pch_state): Remove variable z as it is not
3215 used.
3216 (cpp_read_state): Remove unused variables, m, d and mac_count.
3217
67a74146
PB
32182004-09-29 Per Bothner <per@bothner.com>
3219
3220 * directives.c (cpp_handle_deferred_pragma): Save, clear and restore
3221 cb.line_change. Otherwise do_pragma will call the line_change
3222 call-back with a meaningless line number.
3223
018a4785
ZW
32242004-09-24 Zack Weinberg <zack@codesourcery.com>
3225
3226 * configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to
3227 programs cluster. Use ACX_PROG_CC_WARNING_OPTS,
3228 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS.
3229 * aclocal.m4, configure: Regenerate.
3230 * init.c: Include localedir.h.
3231 * Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables.
3232 (DEFS): Delete.
3233 (.c.o): Use $(ALL_CFLAGS).
3234 (localedir.h, localedir.hs): New rules.
3235 (clean): Use rm -rf to remove directories.
3236 (distclean): Also delete localedir.h and localedir.hs.
3237 (init.o): Update dependencies.
3238
88fa57d7
KC
32392004-09-22 Kelley Cook <kcook@gcc.gnu.org>
3240
3241 * Makefile.in (aclocal.m4): Update dependencies.
3242 * configure.ac (AC_CONFIG_MACRO_DIR): New.
3243 * aclocal.m4, configure: Regenerate.
3244
8f8e9aa5
ZW
32452004-09-17 Zack Weinberg <zack@codesourcery.com>
3246
a29f62d9
ZW
3247 * charset.c (_cpp_destroy_iconv, emit_numeric_escape)
3248 (_cpp_convert_input, _cpp_default_encoding): Add comments.
3249 Some other comments in this file also tweaked.
3250
8f8e9aa5
ZW
3251 * directives.c (do_pragma): Save current buffer position
3252 before lexing the pragma keywords; don't call
3253 _cpp_backup_tokens in the defer_pragmas case.
3254
a2981930
PB
32552004-09-15 Per Bothner <per@bothner.com>
3256
3257 * include/line-map.h (line_map_start): Add parameter names so
3258 preceding comment makes sense.
3259 (linemap_add): Remove from comment mention of non-existing parameter.
3260
21b11495
ZW
32612004-09-09 Matt Austern <austern@apple.com>
3262 Zack Weinberg <zack@codesourcery.com>
3263
3264 * include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
3265 prefixes throughout. Add entry for PRAGMA. Remove
3266 unnecessary "= 0" from EQ.
3267 (enum cpp_ttype): Adjust OP and TK definitions to restore
3268 prefixes, via token-paste.
3269 (CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
3270 Change from #defines to additional cpp_ttype enumerators.
3271 (struct cpp_options): Add defer_pragmas.
3272 (cpp_handle_deferred_pragma): Prototype new interface.
3273
3274 * internal.h (struct cpp_reader): Add directive_result.
3275 * directives.c (struct pragma_entry): Add is_internal field;
3276 give boolean fields type bool.
3277 (start_directive): Initialize pfile->directive_result.type.
3278 (_cpp_do__Pragma): Likewise.
3279 (run_directive): Do not crash if pfile->buffer->prev is NULL.
3280 (insert_pragma_entry): Add 'internal' argument; set new->is_internal
3281 from it.
3282 (register_pragma): New static function, bulk of former
3283 cpp_register_pragma here; add 'internal' argument, pass along
3284 to insert_pragma_entry.
3285 (cpp_register_pragma): Now a wrapper around register_pragma which
3286 always passes false for 'internal' argument.
3287 (_cpp_init_internal_pragmas): Call register_pragma directly, passing
3288 true for 'internal'.
3289 (do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
3290 an internal pragma, save text till the end of the line as a CPP_PRAGMA
3291 token instead of executing the pragma.
3292 (cpp_handle_deferred_pragma): New interface.
3293 * lex.c (token_spellings): Adjust OP and TK definitions to
3294 match changes to cpplib.h.
3295 (_cpp_lex_token): Check for a directive-result token and
3296 return it if present.
3297 (cpp_token_val_index): Handle CPP_PRAGMA.
3298 * macro.c (cpp_builtin_macro_text): Correct comment.
3299 (builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
3300
0fd9e8dd
SB
33012004-09-06 Serge Belyshev <belyshev@lubercy.com>
3302
3303 PR preprocessor/14699
3304 * symtab.c (ht_dump_statistics): Change type of sum_of_squares
3305 from size_t to double.
3306
39b8ce7f
AS
33072004-08-28 Andreas Schwab <schwab@suse.de>
3308 Andreas Jaeger <aj@suse.de>
3309
3310 * configure.ac: Set PACKAGE correctly.
3311 * configure: Regenerated.
3312
5d1f4b27
PB
33132004-08-25 Paolo Bonzini <bonzini@gnu.org>
3314
3315 * Makefile.in: Add back top_builddir.
3316
078e3ffe
PB
33172004-08-25 Paolo Bonzini <bonzini@gnu.org>
3318
3319 * configure.ac: Replace Automake macro invocations
3320 with manual Autoconf checks and substitutions.
3321 * configure: Regenerate.
3322 * aclocal.m4: Regenerate.
3323 * config.in: Regenerate.
3324 * Makefile.am: Removed.
3325 * Makefile.in: Heavy simplification and reorganization.
3326
b3f8d95d
MM
33272004-08-09 Mark Mitchell <mark@codesourcery.com>
3328
3329 * configure.ac (arm*-*-eabi*): New target.
3330 (arm*-*-symbianelf*): Likewise.
3331 * configure: Regenerated.
3332
72bb2c39
BI
33332004-07-24 Bernardo Innocenti <bernie@develer.com>
3334
3335 * internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove.
3336 * directives.c: Use XNEW-family macros from libiberty.
3337 * lex.c: Likewise.
3338 * macro.c: Likewise.
3339 * cpplib.h (cpp_deps_style): Export enum with name.
3340
21b11495 33412004-07-23 Matthias Klose <doko@debian.org>
72bb2c39 3342
21b11495 3343 * init.c (init_library): Use PACKAGE for the text domain.
85eac2a0 3344
a23ee064
AP
33452004-07-16 Andris Pavenis <pavenis@latnet.lv>
3346
3347 PR preprocessor/16366
3348 * internal.h (struct cpp_reader): New field dir_hash.
3349 * files.c (make_cpp_dir): Use dir_hash, not file_hash.
3350 (_cpp_init_files, _cpp_cleanup_files): Update for new field.
3351
a09d4744
NB
33522004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
3353
3354 PR preprocessor/16192
3355 PR preprocessor/15913
3356 PR preprocessor/15572
3357 * expr.c (_cpp_parse_expr): Handle remaining cases where an
3358 expression is missing.
3359 * init.c (post_options): Traditional cpp doesn't do // comments.
3360
f58f7def
PB
33612004-06-30 Per Bothner <per@bothner.com>
3362
3363 * include/line-map.h (fileline): Remove old typedef.
3364 * internal.h (struct cpp_reader): Use source_location typedef instead.
3365
e83d8d43
ZW
33662004-06-26 Zack Weinberg <zack@codesourcery.com>
3367
3368 Partially revert patch of 2004-06-05.
3369 * files.c (search_cache): Remove pfile argument. Don't check
3370 for file that would be found by "" or <> search here...
3371 (_cpp_find_file): ...do it here, before calling find_file_in_dir.
3372 Do not apply directory-of-current-file correction to files
3373 found by this check. Rearrange code slightly.
3374
c0d578e6
GK
33752004-06-21 Geoffrey Keating <geoffk@apple.com>
3376
3377 * files.c (should_stack_file): Correct swapped parameters to call
3378 to cb.read_pch.
3379 * pch.c (cpp_valid_state): Handle -fpreprocessed.
3380
159d5224
PB
33812004-06-15 Paolo Bonzini <bonzini@gnu.org>
3382
3383 * Makefile.in: Regenerate with automake 1.8.5.
3384 * aclocal.m4: Likewise.
3385 * configure: Regenerate.
3386
2fac9c01
ZW
33872004-06-11 Zack Weinberg <zack@codesourcery.com>
3388
3389 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
3390 * configure, config.in: Regenerate.
3391 * system.h: Unconditionally define bool as unsigned char,
3392 BOOL_BITFIELD as unsigned int.
3393 * .cvsignore: New file.
3394
d8044160
GK
33952004-06-09 Geoffrey Keating <geoffk@apple.com>
3396
3397 * traditional.c (push_replacement_text): Set macro->traditional.
3398 (save_replacement_text): Likewise.
3399 * pch.c (cpp_write_pch_state): Don't write list of defined macros.
3400 (struct save_macro_item): Delete.
3401 (struct save_macro_data): Use a character array not the previous
3402 structured format.
3403 (save_macros): Save macro as text not as internal structures.
3404 (cpp_prepare_state): Update for changes to save_macro_data.
3405 (cpp_read_state): Don't read macros defined in PCH. Restore
2cf22451 3406 -D macros as text.
d8044160
GK
3407 * macro.c (create_iso_definition): Honour alloc_subobject.
3408 Clear traditional flag.
3409 (_cpp_create_definition): Honour alloc_subobject.
3410 * lex.c (cpp_token_val_index): New.
3411 * internal.h: Include cpp-id-data.h.
3412 (uchar): Move definition to cpp-id-data.h.
3413 (U): Likewise.
3414 (cpp_macro): Likewise.
3415 * directives.c (struct answer): Move to cpp-id-data.h.
3416 (do_assert): Honour alloc_subobject.
2cf22451
ZW
3417
3418 * include/symtab.h (struct ht): Add field 'alloc_subobject'.
3419 * include/cpplib.h (struct cpp_string): Add GTY marker.
3420 (enum cpp_token_fld_kind): New.
3421 (struct cpp_token): Add GTY markers.
3422 (cpp_token_val_index): Prototype.
3423 (CPP_HASHNODE_VALUE_IDX): New.
3424 (struct cpp_hashnode): Don't skip fields of 'value' when marking.
3425 * include/cpp-id-data.h: New file.
d8044160 3426
0ca8e815
PB
34272004-06-09 Paolo Bonzini <bonzini@gnu.org>
3428
3429 * Makefile.am (all-local): New.
3430 * Makefile.in: Regenerate.
3431
b51fa00f
RS
34322004-06-06 Roger Sayle <roger@eyesopen.com>
3433
3434 * Makefile.am (LIBICONV): Declare.
3435 (makedepend_LDADD): Use LIBICONV.
3436 * Makefile.in: Regenerate.
3437
5e2f3f39
AP
34382004-06-05 Andrew Pinski <pinskia@physics.uc.edu>
3439
3440 * Makefile.am (LIBINTL): Declare
3441 (makedepend_LDADD): Use LIBINTL.
3442 * Makefile.in: Regenerate.
3443
c6e83800
ZW
34442004-06-05 Zack Weinberg <zack@codesourcery.com>
3445
3446 * Makefile.am: Add makedepend.
3447 * Makefile.in, aclocal.m4: Regenerate.
3448 * charset.c: Insert a space to avoid a warning.
3449 * directives.c: Include mkdeps.h.
3450 (_cpp_handle_directive): Reenable macro expander if appropriate.
3451 (undefine_macros): Inline body of _cpp_free_definition for speed.
3452 Do not call undef callback or _cpp_warn_if_unused_macro.
3453 (cpp_get_deps): New interface.
3454 * files.c (search_cache): Add pfile argument. Check for file
3455 that would be found by "" or <> search here...
3456 (_cpp_find_file): ...not here. Correct recorded start_dir of
3457 files found by directory-of-current-file search that would be
3458 found by "" or <> search.
3459 * init.c (cpp_add_dependency_target): Delete.
3460 * internal.h (struct lexer_state): Add discarding_output flag.
3461 * lex.c (lex_identifier): Compute hash function while scanning.
3462 * macro.c (cpp_scan_nooutput): Disable macro expansion outside
3463 directives.
3464 * makedepend.c: New file.
3465 * mkdeps.c (struct deps): Add vpath vector.
3466 (apply_vpath, deps_add_vpath): New function.
3467 (deps_free): Free vpath vector.
3468 (deps_add_dep, deps_add_target): Use apply_vpath.
3469 * symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH.
3470 (ht_lookup_with_hash): New function.
3471 * cpplib.h, mkdeps.h: Update prototypes.
3472 * symtab.h: Update prototypes.
3473 (HT_HASHSTEP, HT_FINISH): New macros.
3474
b453c95f
GK
34752004-05-29 Geoffrey Keating <geoffk@apple.com>
3476
3477 * symtab.c (ht_create): Set entries_owned.
3478 (ht_destroy): Honour entries_owned.
3479 (ht_expand): Likewise.
3480 (ht_load): New.
2cf22451
ZW
3481 * include/symtab.h (struct ht): New field 'entries_owned'
3482 (ht_load): New prototype.
b453c95f 3483
963e23c5
PB
34842004-05-26 Paolo Bonzini <bonzini@gnu.org>
3485
3486 PR bootstrap/15651
3487 * configure.ac: Fix m4 quoting when picking
3488 the size of HOST_WIDE_INT.
3489 * configure: Regenerate.
3490
0429bc77
PB
34912004-05-25 Paolo Bonzini <bonzini@gnu.org>
3492
3493 * Makefile.am: the correct directory for
3494 gettext include files is given by @INCINTL@.
3495 * Makefile.in: Regenerate.
3496
c86dd7db
PB
34972004-05-24 Paolo Bonzini <bonzini@gnu.org>
3498
3499 * system.h [!ENABLE_NLS]: dgettext takes two
3500 parameters.
3501
4f4e53dd
PB
35022004-05-23 Paolo Bonzini <bonzini@gnu.org>
3503
3504 Moved libcpp from the gcc subdirectory to the toplevel.
3505 * Makefile.am: New file.
3506 * Makefile.in: Regenerate.
3507 * configure.ac: New file.
3508 * configure: Regenerate.
3509 * config.in: Regenerate.
3510 * charset.c: Moved from gcc/cppcharset.c. Add note about
3511 brokenness of input charset detection. Adjust for change
3512 in name of cppucnid.h.
3513 * errors.c: Moved from gcc/cpperror.c. Do not include intl.h.
3514 * expr.c: Moved from gcc/cppexp.c.
3515 * files.c: Moved from gcc/cppfiles.c. Do not include intl.h.
3516 Remove #define of O_BINARY, it is in system.h.
3517 * identifiers.c: Moved from gcc/cpphash.c.
3518 * internal.h: Moved from gcc/cpphash.h. Change header
3519 guard name. All other files adjusted to match name change.
3520 * init.c: Moved from gcc/cppinit.c.
3521 (init_library) [ENABLE_NLS]: Call bindtextdomain.
3522 * lex.c: Moved from gcc/cpplex.c.
3523 * directives.c: Moved from gcc/cpplib.c.
3524 * macro.c: Moved from gcc/cppmacro.c.
3525 * pch.c: Moved from gcc/cpppch.c. Do not include intl.h.
3526 * traditional.c: Moved from gcc/cpptrad.c.
3527 * ucnid.h: Moved from gcc/cppucnid.h. Change header
3528 guard name.
3529 * ucnid.pl: Moved from gcc/cppucnid.pl.
3530 * ucnid.tab: Moved from gcc/cppucnid.tab. Change header
3531 guard name.
3532 * symtab.c: Moved from gcc/hashtable.c.
3533 * line-map.c: Moved from gcc. Do not include intl.h.
3534 * mkdeps.c: Moved from gcc.
3535 * system.h: New file.
2cf22451
ZW
3536 * include/cpplib.h: Moved from gcc. Change header guard name.
3537 * include/line-map.h: Moved from gcc. Change header guard name.
3538 * include/mkdeps.h: Moved from gcc. Change header guard name.
3539 * include/symtab.h: Moved from gcc/hashtable.h. Change header
3540 guard name.