]> git.ipfire.org Git - thirdparty/gcc.git/blame - libcpp/ChangeLog
bitmap.c, [...]: Add space between string literal and macro name.
[thirdparty/gcc.git] / libcpp / ChangeLog
CommitLineData
21c0a521
DM
12015-05-05 David Malcolm <dmalcolm@redhat.com>
2
3 * pch.c (cpp_valid_state): Fix indentation so that it reflects the
4 block structure.
5
c87b25e6
DM
62015-05-05 David Malcolm <dmalcolm@redhat.com>
7
8 * include/line-map.h: Fix comment at the top of the file.
9 (source_location): Rewrite and expand the comment for this
10 typedef, adding an ascii-art table to clarify how source_location
11 values are allocated.
12 * line-map.c: Fix comment at the top of the file.
13
ca708025
RB
142015-04-09 Richard Biener <rguenther@suse.de>
15
16 PR pch/65550
17 * files.c (pch_open_file): Allow main and pre-included files
18 when trying to open a PCH.
19
e4b33ee5
JJ
202015-04-06 Jakub Jelinek <jakub@redhat.com>
21
22 PR preprocessor/61977
23 * lex.c (cpp_peek_token): If peektok is CPP_EOF, back it up
24 with all tokens peeked by the current function.
25
b8cd77f4
JJ
262015-04-02 Jakub Jelinek <jakub@redhat.com>
27
28 PR preprocessor/61977
29 * lex.c (cpp_peek_token): Temporarily clear pfile->cb.line_change.
30
fb136e35
JJ
312015-03-23 Jakub Jelinek <jakub@redhat.com>
32
33 PR preprocessor/65238
34 * internal.h (_cpp_scan_out_logical_line): Add third argument.
35 * directives.c (prepare_directive_trad): Pass false to it.
36 * traditional.c (_cpp_read_logical_line_trad,
37 _cpp_create_trad_definition): Likewise.
38 (struct fun_macro): Add paramc field.
39 (fun_like_macro): New function.
40 (maybe_start_funlike): Handle NODE_BUILTIN macros. Initialize
41 macro->paramc field.
42 (save_argument): Use macro->paramc instead of
43 macro->node->value.macro->paramc.
44 (push_replacement_text): Formatting fix.
45 (recursive_macro): Use fun_like_macro helper.
46 (_cpp_scan_out_logical_line): Likewise. Add BUILTIN_MACRO_ARG
47 argument. Initialize fmacro.paramc field. Handle builtin
48 function-like macros.
49
a5858a3d
ESR
502015-03-16 Edward Smith-Rowland <3dw4rd@verizon.net>
51
52 PR c++/64626
53 * lex.c (lex_number): If a number ends with digit-seps (') skip back
54 and let lex_string take them.
55
44d95244
MT
562015-03-02 Markus Trippelsdorf <markus@trippelsdorf.de>
57
58 PR target/65261
59 * lex.c (search_line_fast): Silence ubsan errors.
60
f8abc9ba
DS
612015-02-03 <dodji@redhat.com>
62
63 PR preprocessor/64803
64 * internal.h (cpp_reader::top_most_macro_node): New data member.
65 * macro.c (enter_macro_context): Pass the location of the end of
66 the top-most invocation of the function-like macro, or the
67 location of the expansion point of the top-most object-like macro.
68 (cpp_get_token_1): Store the top-most macro node in the new
69 pfile->top_most_macro_node data member.
70 (_cpp_pop_context): Clear the new cpp_reader::top_most_macro_node
71 data member.
72
95d0610c
SN
732015-01-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
74
75 * lex.c (search_line_fast): Change __ARM_NEON__ to __ARM_NEON.
76
10ef8f28
MP
772015-01-23 Marek Polacek <polacek@redhat.com>
78
79 DR#412
80 PR preprocessor/60570
81 * directives.c (do_elif): Don't evaluate #elif conditionals
82 when they don't need to be.
83
6e6cb471
JJ
842015-01-16 Jakub Jelinek <jakub@redhat.com>
85
86 * expr.c (cpp_classify_number): Add N_() around ?: string
87 literals used in cpp_error_with_line call as format string.
88
5624e564
JJ
892015-01-05 Jakub Jelinek <jakub@redhat.com>
90
91 Update copyright years.
92
1f8d3e84
JJ
932014-12-19 Jakub Jelinek <jakub@redhat.com>
94
95 PR preprocessor/63831
96 * directives.c (lex_macro_node): Remove __has_attribute__ handling.
97 * internal.h (struct spec_node): Remove n__has_attribute__ field.
98 (struct lexer_state): Remove in__has_attribute__ field.
99 * macro.c (_cpp_builtin_macro_text): Handle BT_HAS_ATTRIBUTE.
100 * identifiers.c (_cpp_init_hashtable): Remove __has_attribute__
101 handling.
102 * init.c (builtin_array): Add __has_attribute and __has_cpp_attribute.
103 (cpp_init_special_builtins): Don't initialize __has_attribute
104 or __has_cpp_attribute if CLK_ASM or pfile->cb.has_attribute is NULL.
105 * traditional.c (enum ls): Remove ls_has_attribute,
106 ls_has_attribute_close.
107 (_cpp_scan_out_logical_line): Remove __has_attribute__ handling.
108 * include/cpplib.h (enum cpp_builtin_type): Add BT_HAS_ATTRIBUTE.
109 * pch.c (cpp_read_state): Remove __has_attribute__ handling.
110 * expr.c (eval_token): Likewise.
111 (parse_has_attribute): Removed.
112
01ca36af
UB
1132014-12-11 Uros Bizjak <ubizjak@gmail.com>
114
115 * directives.c (cpp_define_formatted): Use xvasprintf.
116
b93c0722
MLI
1172014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
118
119 * line-map.c (linemap_position_for_loc_and_offset): Add new
120 linemap_assert_fails.
121
73bd8329
MLI
1222014-12-02 Manuel López-Ibáñez <manu@gcc.gnu.org>
123
124 * include/line-map.h (linemap_assert_fails): Declare.
125 * line-map.c (linemap_position_for_loc_and_offset): Use it.
126
9c320ab1
MLI
1272014-12-02 Manuel López-Ibáñez <manu@gcc.gnu.org>
128
129 * line-map.c (linemap_add): Fix typo.
130 (linemap_line_start): Fix whitespace.
131
81fee4a7
JM
1322014-11-29 John Schmerge <jbschmerge@gmail.com>
133
134 PR preprocessor/41698
135 * charset.c (one_utf8_to_utf16): Do not produce surrogate pairs
136 for 0xffff.
137
43ba1c6c
JJ
1382014-11-25 Jakub Jelinek <jakub@redhat.com>
139
140 PR preprocessor/60436
141 * line-map.c (linemap_line_start): If highest is above 0x60000000
142 and we are still tracking columns or highest is above 0x70000000,
143 force add_map.
144
8a23b100
UB
1452014-11-20 Uros Bizjak <ubizjak@gmail.com>
146
147 PR target/63966
1b6b13f3
UB
148 * lex.c [__i386__ || __x86_64__]: Compile special SSE functions
149 only for (__GNUC__ >= 5 || !defined(__PIC__)).
8a23b100 150
d82f1e13
MLI
1512014-11-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
152
153 * include/line-map.h: Include EXPR, so that unused variable warnings
154 do not occur.
155
3aa34c1d
MLI
1562014-11-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
157
158 PR fortran/44054
159 * include/line-map.h (linemap_position_for_loc_and_offset):
160 Declare.
161 * line-map.c (linemap_position_for_loc_and_offset): New.
162
35485da9
DM
1632014-11-11 David Malcolm <dmalcolm@redhat.com>
164
165 * ChangeLog.jit: New.
166
42fd12b1
ESR
1672014-11-10 Edward Smith-Rowland <3dw4rd@verizon.net>
168
169 * include/cpplib.h (cpp_callbacks): Add has_attribute.
170 * internal.h (lexer_state): Add in__has_attribute__.
171 * directives.c (lex_macro_node): Prevent use of __has_attribute__
172 as a macro.
173 * expr.c (parse_has_attribute): New function; (eval_token): Look for
174 __has_attribute__ and route to parse_has_attribute.
175 * identifiers.c (_cpp_init_hashtable): Initialize n__has_attribute__.
176 * pch.c (cpp_read_state): Initialize n__has_attribute__.
177 * traditional.c (enum ls): Add ls_has_attribute, ls_has_attribute_close;
178 (_cpp_scan_out_logical_line): Attend to __has_attribute__.
179
be5ffc59
JM
1802014-11-06 Joseph Myers <joseph@codesourcery.com>
181
182 * include/cpp-id-data.h (struct cpp_macro): Update comment
183 regarding parameters.
184 * include/cpplib.h (struct cpp_macro_arg, struct cpp_identifier):
185 Add spelling fields.
186 (struct cpp_token): Update comment on macro_arg.
187 * internal.h (_cpp_save_parameter): Add extra argument.
188 (_cpp_spell_ident_ucns): New declaration.
189 * lex.c (lex_identifier): Add SPELLING argument. Set *SPELLING to
190 original spelling of identifier.
191 (_cpp_lex_direct): Update calls to lex_identifier.
192 (_cpp_spell_ident_ucns): New function, factored out of
193 cpp_spell_token.
194 (cpp_spell_token): Adjust FORSTRING argument semantics to return
195 original spelling of identifiers. Use _cpp_spell_ident_ucns in
196 !FORSTRING case.
197 (_cpp_equiv_tokens): Check spellings of identifiers and macro
198 arguments are identical.
199 * macro.c (macro_arg_saved_data): New structure.
200 (paste_tokens): Use original spellings of identifiers from
201 cpp_spell_token.
202 (_cpp_save_parameter): Add argument SPELLING. Save both canonical
203 node and its value.
204 (parse_params): Update calls to _cpp_save_parameter.
205 (lex_expansion_token): Save spelling of macro argument tokens.
206 (_cpp_create_definition): Extract canonical node from saved data.
207 (cpp_macro_definition): Use UCNs in spelling of macro name. Use
208 original spellings of macro argument tokens and identifiers.
209 * traditional.c (scan_parameters): Update call to
210 _cpp_save_parameter.
211
701cade1
JM
2122014-11-05 Joseph Myers <joseph@codesourcery.com>
213
214 PR preprocessor/9449
215 * init.c (lang_defaults): Enable extended identifiers for C++ and
216 C99-based standards.
217
19a9ba64
AM
2182014-10-22 Alan Modra <amodra@gmail.com>
219
220 * symtab.c (ht_create): Use obstack_specify_allocation in place of
221 _obstack_begin.
222 * files.c (_cpp_init_files): Likewise.
223 * init.c (cpp_create_reader): Likewise.
224 * identifiers.c (_cpp_init_hashtable): Likewise.
225
3aac0952
MLI
2262014-10-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
227
228 * include/line-map.h (linemap_location_from_macro_expansion_p):
229 const struct line_maps * argument.
230 (linemap_position_for_line_and_column): const struct line_map *
231 argument.
232 * line-map.c (linemap_add_macro_token): Use correct argument name
233 in comment.
234 (linemap_position_for_line_and_column): const struct line_map *
235 argument.
236 (linemap_macro_map_loc_to_def_point): Fix comment. Make static.
237 (linemap_location_from_macro_expansion_p): const struct line_maps *
238 argument.
239 (linemap_resolve_location): Fix argument names in comment.
240
0ccaaab0
BS
2412014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
242
243 * lex.c (search_line_fast): Add new version to be used for Power8
244 and later targets when Altivec is enabled. Restrict the existing
245 Altivec version to big-endian systems so that lvsr is not used on
246 little endian, where it is deprecated. Remove LE-specific code
247 from the now-BE-only version.
248
dc257367
BE
2492014-10-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
250 Jeff Law <law@redhat.com>
251
252 * charset.c (convert_no_conversion): Reallocate memory with 25%
253 headroom.
254
a15f7cb8
ESR
2552014-10-01 Edward Smith-Rowland <3dw4rd@verizon.net>
256
257 Implement SD-6: SG10 Feature Test Recommendations
258 * internal.h (lexer_state, spec_nodes): Add in__has_include__.
259 * directives.c: Support __has_include__ builtin.
260 * expr.c (parse_has_include): New function to parse __has_include__
261 builtin; (eval_token()): Use it.
262 * files.c (_cpp_has_header()): New funtion to look for header;
263 (open_file_failed()): Not an error to not find a header file for
264 __has_include__.
265 * identifiers.c (_cpp_init_hashtable()): Add entry for __has_include__.
266 * pch.c (cpp_read_state): Lookup __has_include__.
267 * traditional.c (enum ls, _cpp_scan_out_logical_line()): Walk through
268 __has_include__ statements.
269
cc811a8a
BE
2702014-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
271
272 PR preprocessor/58893
273 * errors.c (cpp_diagnostic): Fix possible out of bounds access.
274 * files.c (_cpp_stack_include): Initialize src_loc for IT_CMDLINE.
275
083e891e
MP
2762014-09-24 Marek Polacek <polacek@redhat.com>
277
278 PR c/61405
279 PR c/53874
280 * include/cpplib.h (enum cpp_ttype): Define CPP_KEYWORD.
281
d87fc699
JH
2822014-09-17 Jan Hubicka <hubicka@ucw.cz>
283
284 * charset.c (conversion): Rename to ...
285 (cpp_conversion): ... this one; update.
286 * files.c (file_hash_entry): Rename to ...
287 (cpp_file_hash_entry): ... this one ; update.
288
909eb89c
MP
2892014-09-17 Marek Polacek <polacek@redhat.com>
290
291 PR c/61854
292 * init.c (struct lang_flags): Remove cplusplus_comments.
293 (cpp_set_lang): Likewise.
294 (post_options): Likewise.
295 * lex.c (_cpp_lex_direct): Disallow C++ style comments in C90/C94.
296
1ef33fd4
MLI
2972014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
298
299 * include/cpplib.h (struct cpp_options): Declare warn_normalize as
300 int instead of enum.
301
2b71f4a4
MLI
3022014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
303
304 * macro.c (replace_args): Use cpp_pedwarning, cpp_warning and
305 CPP_W flags.
306 * include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
307 * init.c (cpp_create_reader): Do not init to -1 here.
308 * expr.c (num_binary_op): Use cpp_pedwarning.
309
81b5d104
MLI
3102014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
311
312 * directives.c (check_eol_1): New.
313 (check_eol_endif_labels): New.
314 (check_eol): Call check_eol_1.
315 (do_else,do_endif): Call check_eol_endif_labels.
316
b753b37b
MLI
3172014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
318
319 * macro.c (warn_of_redefinition): Suppress warnings for builtins
320 that lack the NODE_WARN flag, unless Wbuiltin-macro-redefined.
321 (_cpp_create_definition): Use Wbuiltin-macro-redefined for
322 builtins that lack the NODE_WARN flag.
323 * directives.c (do_undef): Likewise.
324 * init.c (cpp_init_special_builtins): Do not change flags
325 depending on Wbuiltin-macro-redefined.
326
7c05e50c
ESR
3272014-08-28 Edward Smith-Rowland <3dw4rd@verizon.net>
328
329 PR cpp/23827 - standard C++ should not have hex float preprocessor
330 tokens
331 * libcpp/init.c (lang_flags): Change CXX98 flag for extended numbers
332 from 1 to 0.
333 * libcpp/expr.c (cpp_classify_number): Weite error message for improper
334 use of hex floating literal.
335
e4276ba5
ESR
3362014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
337
338 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z;
339 Rename CLK_GNUCXX1Y, CLK_CXX1Y to CLK_GNUCXX14, CLK_CXX14;
340 * init.c (struct lang_flags lang_defaults): Add column for trigraphs;
341 Add rows for CLK_GNUCXX1Z, CLK_CXX1Z; (cpp_set_lang): Set trigraphs;
342 (cpp_init_builtins): Set __cplusplus to 201402L for C++14;
343 Set __cplusplus to 201500L for C++17.
344 * expr.c (cpp_classify_number): Change C++1y to C++14 in binary
345 constants error message.
346
dd3ff077
MP
3472014-08-20 Marek Polacek <polacek@redhat.com>
348
349 * include/cpplib.h (cpp_options): Use signed char.
350 * lex.c (_cpp_lex_direct): Don't warn in C++ mode.
351
3f4f5c9a
MP
3522014-08-19 Marek Polacek <polacek@redhat.com>
353
354 * lex.c (_cpp_lex_direct): Fix a typo.
355
177cce46
MP
3562014-08-19 Marek Polacek <polacek@redhat.com>
357
358 * charset.c (_cpp_valid_ucn): Warn only if -Wc90-c99-compat.
359 * lex.c (_cpp_lex_direct): Likewise.
360 * macro.c (replace_args): Likewise.
361 (parse_params): Likewise.
362 * include/cpplib.h (cpp_options): Change cpp_warn_c90_c99_compat
363 to char.
364
f3bede71
MP
3652014-08-10 Marek Polacek <polacek@redhat.com>
366
367 PR c/51849
368 * lex.c (_cpp_lex_direct): Warn when -Wc90-c99-compat is in effect.
369 * charset.c (_cpp_valid_ucn): Likewise.
370 * include/cpplib.h (cpp_options): Add cpp_warn_c90_c99_compat.
371 * macro.c (replace_args): Warn when -Wc90-c99-compat is in effect.
372 (parse_params): Likewise.
373
61eb99f6
MP
3742014-07-27 Marek Polacek <polacek@redhat.com>
375
376 PR c/61861
377 * macro.c (builtin_macro): Add location parameter. Set
378 location of builtin macro to the expansion point.
379 (enter_macro_context): Pass location to builtin_macro.
380
c468587a
DS
3812014-07-16 Dodji Seketeli <dodji@redhat.com>
382
383 Support location tracking for built-in macro tokens
384 * include/line-map.h (line_maps::builtin_location): New data
385 member.
386 (line_map_init): Add a new parameter to initialize the new
387 line_maps::builtin_location data member.
388 * line-map.c (linemap_init): Initialize the
389 line_maps::builtin_location data member.
390 * macro.c (builtin_macro): Create a macro map and track the token
391 resulting from the expansion of a built-in macro.
392
3976796b
ESR
3932014-07-10 Edward Smith-Rowland <3dw4rd@verizon.net>
394 Jonathan Wakely <jwakely@redhat.com>
395
c786fca6 396 PR preprocessor/61389
3976796b
ESR
397 * macro.c (_cpp_arguments_ok, parse_params, create_iso_definition):
398 Warning messages mention C++11 in c++ mode and C99 in c mode.
399 * lex.c (lex_identifier_intern, lex_identifier): Ditto
400
7aee8646
ESR
4012014-07-09 Edward Smith-Rowland <3dw4rd@verizon.net>
402
403 PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped
404 by preprocessor
405 * lex.c (lex_raw_string ()): Do not warn about invalid suffix
406 if skipping. (lex_string ()): Ditto.
407
98ba7482
ESR
4082014-06-04 Edward Smith-Rowland <3dw4rd@verizon.net>
409
410 PR c++/61038
411 * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
412 Combine user-defined escape logic with the other string and char logic.
413
edf6ddf6
RB
4142014-05-26 Richard Biener <rguenther@suse.de>
415
416 * configure.ac: Remove long long and __int64 type checks,
417 add check for uint64_t and fail if that wasn't found.
418 * include/cpplib.h (cpp_num_part): Use uint64_t.
419 * config.in: Regenerate.
420 * configure: Likewise.
421
28939589
MP
4222014-05-21 Marek Polacek <polacek@redhat.com>
423
424 PR c/61212
425 * files.c (find_file_in_dir): Add parens around &&.
426
49039169
ESR
4272014-05-20 Edward Smith-Rowland <3dw4rd@verizon.net>
428
28939589 429 PR c++/61038
49039169
ESR
430 * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
431 Check for user-defined literal strings and user-defined literal chars
432 to escape necessary characters.
433
54da09ee
RB
4342014-05-20 Richard Biener <rguenther@suse.de>
435
436 * configure.ac: Copy gcc logic of detecting a 64bit type.
437 Remove HOST_WIDE_INT define.
438 * include/cpplib.h: typedef cpp_num_part to a 64bit type,
439 similar to how hwint.h does it.
440 * config.in: Regenerate.
441 * configure: Likewise.
442
eac3e079
JY
4432014-05-09 Joey Ye <joey.ye@arm.com>
444
445 * files.c (find_file_in_dir): Always try to shorten for DOS
446 non-system headers.
447 * init.c (ENABLE_CANONICAL_SYSTEM_HEADERS): Default enabled for DOS.
448
f543058d
RB
4492014-05-07 Richard Biener <rguenther@suse.de>
450
451 * configure.ac: Always set need_64bit_hwint to yes.
452 * configure: Regenerated.
453
d9f069ab
RO
4542014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
455
456 * lex.c: Remove Solaris 9 reference.
457
341c653c
WL
4582014-02-24 Walter Lee <walt@tilera.com>
459
460 * configure.ac: Change "tilepro" triplet to "tilepro*".
461 * configure: Regenerate.
462
179652df
JJ
4632014-02-19 Jakub Jelinek <jakub@redhat.com>
464
465 PR preprocessor/58844
466 * macro.c (enter_macro_context): Only push
467 macro_real_token_count (macro) tokens rather than
468 macro->count tokens, regardless of
469 CPP_OPTION (pfile, track-macro-expansion).
470
acf601ae
JJ
4712014-02-07 Jakub Jelinek <jakub@redhat.com>
472
473 PR preprocessor/56824
474 * line-map.c (get_combined_adhoc_loc, linemap_get_expansion_line,
475 linemap_get_expansion_filename, linemap_location_in_system_header_p,
476 linemap_location_from_macro_expansion_p,
477 linemap_macro_loc_to_spelling_point, linemap_macro_loc_to_def_point,
478 linemap_macro_loc_to_exp_point, linemap_expand_location): Fix
479 formatting.
480 (linemap_compare_locations): Look through adhoc locations for both
481 l0 and l1.
482
7ecc3eb9
DS
4832014-01-23 Dodji Seketeli <dodji@redhat.com>
484
485 PR PR preprocessor/58580
486 * include/line-map.h (linemap_get_file_highest_location): Declare
487 new function.
488 * line-map.c (linemap_get_file_highest_location): Define it.
489
35c3d610
RS
4902014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
491
492 Update copyright years
493
3a4efce7
JM
4942013-12-09 Joseph Myers <joseph@codesourcery.com>
495
496 PR preprocessor/55715
497 * expr.c (num_binary_op): Implement subtraction directly rather
498 than with negation and falling through into addition case.
499
aadce585
BS
5002013-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
501
502 * lex.c (search_line_fast): Correct for little endian.
503
d3f4ff8b
JM
5042013-11-15 Joseph Myers <joseph@codesourcery.com>
505
506 * ucnid.tab: Add C11 and C11NOSTART data.
507 * makeucnid.c (digit): Rename enum value to N99.
508 (C11, N11, all_languages): New enum values.
509 (NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
510 (flags, decomp, combining_value): Use NUM_CODE_POINTS as array
511 size.
512 (decomp): Use unsigned int as element type.
513 (all_decomp): New array.
514 (read_ucnid): Handle C11 and C11NOSTART. Use MAX_CODE_POINT.
515 (read_table): Use MAX_CODE_POINT. Store all decompositions in
516 all_decomp.
517 (read_derived): Use MAX_CODE_POINT.
518 (write_table): Use NUM_CODE_POINTS. Print N99, C11 and N11
519 flags. Print whole array variable declaration rather than just
520 array contents.
521 (char_id_valid, write_context_switch): New functions.
522 (main): Call write_context_switch.
523 * ucnid.h: Regenerate.
524 * include/cpplib.h (struct cpp_options): Add c11_identifiers.
525 * init.c (struct lang_flags): Add c11_identifiers.
526 (cpp_set_lang): Set c11_identifiers option from selected language.
527 * internal.h (struct normalize_state): Document "previous" as
528 previous starter character.
529 (NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
530 * charset.c (DIG): Rename enum value to N99.
531 (C11, N11): New enum values.
532 (struct ucnrange): Give name to struct. Use short for flags and
533 unsigned int for end of range. Include ucnid.h for whole variable
534 declaration.
535 (ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
536 Allow for C11 in determining valid characters and valid start
537 characters. Use check_nfc for non-Hangul context-dependent
538 checks. Only store starter characters in nst->previous.
539 (_cpp_valid_ucn): Pass new argument to
540 NORMALIZE_STATE_UPDATE_IDNUM.
541 * lex.c (lex_identifier): Pass new argument to
542 NORMALIZE_STATE_UPDATE_IDNUM. Call NORMALIZE_STATE_UPDATE_IDNUM
543 after initial non-UCN part of identifier.
544 (lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.
545
54848ff8
JM
5462013-11-15 Joseph Myers <joseph@codesourcery.com>
547
548 * ucnid.tab: Mark C99 digits as [C99DIG].
549 * makeucnid.c (read_ucnid): Handle [C99DIG].
550 (read_table): Don't check for digit characters.
551 * ucnid.h: Regenerate.
552
5157b91e
TB
5532013-11-06 Tobias Burnus <burnus@net-b.de>
554
555 * macro.c (_cpp_builtin_macro_text): Correct
556 wording of two warnings.
557
e8ff5196
TB
5582013-11-05 Tobias Burnus <burnus@net-b.de>
559
560 * include/cpplib.h (CPP_W_DATE_TIME): Added.
561 (cpp_options): Add warn_date_time.
562 * init.c (cpp_create_reader): Init it.
563 * macro.c (_cpp_builtin_macro_text): Warn when
564 __DATE__/__TIME__/__TIMESTAMP__ is used.
565
7057e645
ESR
5662013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
567
e8ff5196 568 Implement C++14 digit separators.
7057e645
ESR
569 * include/cpplib.h (cpp_options): Add digit_separators flag.
570 * internal.h (DIGIT_SEP(c)): New macro.
571 * expr.c (cpp_classify_number): Check improper placement of digit sep;
572 (cpp_interpret_integer): Skip over digit separators.
573 * init.c (lang_flags): Add digit_separators flag; (lang_defaults): Add
574 digit separator flags per language; (cpp_set_lang): Set
575 digit_separators
576 * lex.c (lex_number): Add digits separator to allowable characters for
577 C++14.
578
459260ec
DM
5792013-10-15 David Malcolm <dmalcolm@redhat.com>
580
581 * Makefile.in (PICFLAG): New.
582 (ALL_CFLAGS): Add PICFLAG.
583 (ALL_CXXFLAGS): Likewise.
584 * configure.ac: Add --enable-host-shared, setting up new
585 PICFLAG variable.
586 * configure: Regenerate.
587
fd6eea0c
RE
5882013-08-07 Richard Earnshaw <rearnsha@arm.com>
589
590 * configure.ac: Set need_64bit_hwint for all arm targets.
591 * configure: Regenerated.
592
8cf88735
JJ
5932013-07-20 Jakub Jelinek <jakub@redhat.com>
594
595 PR preprocessor/57620
596 * lex.c (lex_raw_string): Undo phase1 and phase2 transformations
597 between R" and final " rather than only in between R"del( and )del".
598
87e356ba
JJ
5992013-07-10 Jakub Jelinek <jakub@redhat.com>
600
d5e48350
JJ
601 PR preprocessor/57824
602 * lex.c (lex_raw_string): Allow reading new-lines if
603 in_deferred_pragma or if parsing_args and there is still
604 data in the current buffer.
605
c26302d5
JJ
606 * include/cpplib.h (cpp_token_val_index): Change parameter type to
607 const cpp_token *.
608 * lex.c (cpp_token_val_index): Likewise.
609
87e356ba
JJ
610 PR preprocessor/57757
611 * lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING
612 or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that
613 starts if a-zA-Z_.
614
c865f923
ESR
6152013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net>
616
617 * lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
618 as concatenated literal and macro to just the patterns found in
619 inttypes.h; (is_macro()): New.
620
39953c79
DC
6212013-06-24 Dehao Chen <dehao@google.com>
622
623 * files.c (_cpp_stack_include): Fix the highest_location when header
624 file is guarded by #ifndef and is included twice.
625
01187df0
JJ
6262013-04-28 Jakub Jelinek <jakub@redhat.com>
627
628 N3472 binary constants
629 * include/cpplib.h (struct cpp_options): Fix a typo in user_literals
630 field comment. Add binary_constants field.
631 * init.c (struct lang_flags): Add binary_constants field.
632 (lang_defaults): Add bin_cst column to the table.
633 (cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
634 * expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
635 in diagnostics. Accept binary constants if
636 CPP_OPTION (pfile, binary_constants) even when pedantic. Adjust
637 pedwarn message.
638
61949153
PC
6392013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
640
641 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
642 * init.c (lang_defaults): Add defaults for the latter.
643 (cpp_init_builtins): Define __cplusplus as 201300L for the latter.
644 * lex.c (_cpp_lex_direct): Update.
645
994a4cc0
SH
6462013-04-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
647
648 PR target/56771
649 * configure.ac: Require 64-bit int for arm*-*-rtems*.
650 * configure: Regenerate.
651
28937f11
JJ
6522013-03-06 Jakub Jelinek <jakub@redhat.com>
653
654 PR middle-end/56461
655 * internal.h (struct cpp_buffer): Add to_free field.
656 (_cpp_pop_file_buffer): Add third argument.
657 * files.c (_cpp_stack_file): Set buffer->to_free.
658 (_cpp_pop_file_buffer): Add to_free argument. Free to_free
659 if non-NULL, and if equal to file->buffer_start, also clear
660 file->buffer{,_start,_valid}.
661 * directives.c (_cpp_pop_buffer): Pass buffer->to_free
662 to _cpp_pop_file_buffer.
663
3b8af25b
JJ
6642013-03-01 Jakub Jelinek <jakub@redhat.com>
665
666 PR middle-end/56461
667 * files.c (_cpp_save_file_entries): Free result at the end.
668 * pch.c (cpp_string_free): New function.
669 (cpp_save_state): Use it in htab_create call.
670 (cpp_write_pch_deps): Free ss->defs. Destroy ss->definedhash.
671
1a80db97
JJ
6722013-02-28 Jakub Jelinek <jakub@redhat.com>
673
15fd8332
JJ
674 * files.c (_cpp_find_file): If returning early, before storing
675 something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
676 on it. Access *hash_slot using void * type rather than
677 struct file_hash_entry * to avoid aliasing issues.
678
1a80db97
JJ
679 * configure.ac: Don't define ENABLE_CHECKING whenever
680 --enable-checking is seen, instead use similar --enable-checking=yes
681 vs. --enable-checking=release default as gcc/ subdir has and
682 define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
683 Define ENABLE_VALGRIND_CHECKING if requested.
684 * lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
685 struct first in the allocated buffer and result->base after it.
686 (_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
687 instead of buff->base.
688 * config.in: Regenerated.
689 * configure: Regenerated.
690
561f7fc7
ESR
6912013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net>
692
693 PR c++/55582
61949153 694 * lex.c (lex_raw_string): Allow string literal with suffix
561f7fc7
ESR
695 beginning with 's' to be parsed as a C++11 user-defined literal.
696
500f3ed9
RS
6972013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
698
699 Update copyright years.
700
1582c677
PC
7012013-01-04 Paolo Carlini <paolo.carlini@oracle.com>
702
703 PR c++/54526 (again)
704 * lex.c (_cpp_lex_direct): In C++11 mode, implement 2.5 p3, bullet 2.
705
8ac16127
MG
7062013-01-03 Marc Glisse <marc.glisse@inria.fr>
707
708 PR bootstrap/50177
709 * line-map.c (get_combined_adhoc_loc): Cast from extern "C" type.
710 (new_linemap): Likewise.
711 (linemap_enter_macro): Likewise.
712
f41e5bd1
JJ
7132012-12-03 Jakub Jelinek <jakub@redhat.com>
714
715 PR bootstrap/55380
716 PR other/54691
717 * files.c (read_file_guts): Allocate extra 16 bytes instead of
718 1 byte at the end of buf. Pass size + 16 instead of size
719 to _cpp_convert_input.
720 * charset.c (_cpp_convert_input): Reallocate if there aren't
721 at least 16 bytes beyond to.len in the buffer. Clear 16 bytes
722 at to.text + to.len.
723
31962032
SE
7242012-11-21 Steve Ellcey <sellcey@mips.com>
725
726 PR pch/55399
727 * files.c (pch_open_file): Fix check for implicit_preinclude.
728
5dc99c46
SB
7292012-11-16 Simon Baldwin <simonb@google.com>
730
731 * include/cpplib.h (struct cpp_options): Add canonical_system_headers.
732 * files.c (find_file_in_dir): Call maybe_shorter_path() only if
733 canonical_system_headers is set.
734 * init.c (cpp_create_reader): Initialize canonical_system_headers.
735 * configure.ac: Add new --enable-canonical-system-headers.
736 * configure: Regenerate.
737 * config.in: Regenerate.
738
a4a0016d
ESR
7392012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net>
740
741 PR c++/54413
742 * include/cpplib.h (cpp_interpret_float_suffix): Add cpp_reader* arg.
743 (cpp_interpret_int_suffix): Add cpp_reader* arg.
744 * init.c (cpp_create_reader): Iitialize new flags.
745 * expr.c (interpret_float_suffix): Use new flags.
746 (cpp_interpret_float_suffix): Add cpp_reader* arg.
747 (interpret_int_suffix): Use new flags.
748 (cpp_interpret_int_suffix): Add cpp_reader* arg.
749 (cpp_classify_number): Adjust calls to interpret_x_suffix.
750
04ce690f
IB
7512012-10-23 Ian Bolton <ian.bolton@arm.com>
752 Jim MacArthur <jim.macarthur@arm.com>
753 Marcus Shawcroft <marcus.shawcroft@arm.com>
754 Nigel Stephens <nigel.stephens@arm.com>
755 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
756 Richard Earnshaw <rearnsha@arm.com>
757 Sofiane Naci <sofiane.naci@arm.com>
758 Stephen Thomas <stephen.thomas@arm.com>
759 Tejas Belagod <tejas.belagod@arm.com>
760 Yufeng Zhang <yufeng.zhang@arm.com>
761
762 * configure.ac: Enable AArch64.
763 * configure: Regenerate.
764
1efcb8c6
JM
7652012-10-23 Joseph Myers <joseph@codesourcery.com>
766
767 * files.c (struct _cpp_file): Add implicit_preinclude.
768 (pch_open_file): Allow a previously opened implicitly included
769 file.
770 (_cpp_find_file): Add implicit_preinclude argument. Free file and
771 do not call open_file_failed if implicit_preinclude. Store
772 implicit_preinclude value.
773 (_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date):
774 Update calls to _cpp_find_file.
775 (_cpp_stack_include): Handle IT_DEFAULT.
776 (cpp_push_default_include): New.
777 * include/cpplib.h (cpp_push_default_include): Declare.
778 * init.c (cpp_read_main_file): Update call to _cpp_find_file.
779 * internal.h (enum include_type): Add IT_DEFAULT.
780 (_cpp_find_file): Update prototype.
781
55e7f907
TB
7822012-10-15 Tobias Burnus <burnus@net-b.de>
783
784 * files.c (read_file_guts, _cpp_save_file_entries): Free memory
785 before returning.
786 * lex.c (warn_about_normalization): Ditto.
787 * mkdeps.c (deps_save): Ditto.
788 * pch.c (cpp_valid_state): Ditto.
789
f591bd8f
FW
7902012-10-04 Florian Weimer <fweimer@redhat.com>
791
792 * directives.c (do_pragma_warning_or_error): New.
793 (do_pragma_warning): New.
794 (do_pragma_error): New.
795 (_cpp_init_internal_pragmas): Register new pragmas.
796
ec6e0399
DC
7972012-09-25 Dehao Chen <dehao@google.com>
798
799 PR middle-end/54704
800 * line-map.c (location_adhoc_data_hash): Fix the hash function.
801
52187008
DC
8022012-09-25 Dehao Chen <dehao@google.com>
803
804 PR middle-end/54645
805 * include/line-map.h (location_adhoc_data): Move location_adhoc_data
806 into GC.
807 (location_adhoc_data_map): Likewise.
808 (line_maps): Likewise.
809 (rebuild_location_adhoc_htab): New Function.
810 * line-map.c (+rebuild_location_adhoc_htab): new Funcion.
811 (get_combined_adhoc_loc): Move location_adhoc_data into GC.
812 (location_adhoc_data_fini): Likewise.
813 (linemap_init): Likewise.
814 (location_adhoc_data_init): Remove Function.
815
5368224f
DC
8162012-09-19 Dehao Chen <dehao@google.com>
817
818 * include/line-map.h (MAX_SOURCE_LOCATION): New value.
819 (location_adhoc_data_fini): New.
820 (get_combined_adhoc_loc): New.
821 (get_data_from_adhoc_loc): New.
822 (get_location_from_adhoc_loc): New.
823 (location_adhoc_data_map): New.
824 (COMBINE_LOCATION_DATA): New.
825 (IS_ADHOC_LOC): New.
826 (expanded_location): New field.
827 (line_maps): New field.
828 * line-map.c (location_adhoc_data): New.
829 (location_adhoc_data_hash): New.
830 (location_adhoc_data_eq): New.
831 (location_adhoc_data_update): New.
832 (get_combined_adhoc_loc): New.
833 (get_data_from_adhoc_loc): New.
834 (get_location_from_adhoc_loc): New.
835 (location_adhoc_data_init): New.
836 (location_adhoc_data_fini): New.
837 (linemap_init): Initialize location_adhoc_data.
838 (linemap_lookup): Change to use new location.
839 (linemap_ordinary_map_lookup): Likewise.
840 (linemap_macro_map_lookup): Likewise.
841 (linemap_macro_map_loc_to_def_point): Likewise.
842 (linemap_macro_map_loc_unwind_toward_spel): Likewise.
843 (linemap_get_expansion_line): Likewise.
844 (linemap_get_expansion_filename): Likewise.
845 (linemap_location_in_system_header_p): Likewise.
846 (linemap_location_from_macro_expansion_p): Likewise.
847 (linemap_macro_loc_to_spelling_point): Likewise.
848 (linemap_macro_loc_to_def_point): Likewise.
849 (linemap_macro_loc_to_exp_point): Likewise.
850 (linemap_resolve_location): Likewise.
851 (linemap_unwind_toward_expansion): Likewise.
852 (linemap_unwind_to_first_non_reserved_loc): Likewise.
853 (linemap_expand_location): Likewise.
854 (linemap_dump_location): Likewise.
855 (linemap_line_start): Likewise.
856
f3d25c65
DS
8572012-05-25 Dodji Seketeli <dodji@redhat.com>
858
859 PR preprocessor/53469
860 * directives.c (do_pragma): Use the virtual location for the
861 pragma token, instead of its spelling location.
862
0823efed
DN
8632012-08-14 Diego Novillo <dnovillo@google.com>
864
865 Merge from cxx-conversion branch. Configury.
866
867 * Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
868 * configure.ac: Likewise.
869 * configure: Regenerate.
870
8712012-08-14 Lawrence Crowl <crowl@google.com>
872
873 Merge from cxx-conversion branch. New C++ hash table.
874
875 * include/symtab.h (typedef struct ht hash_table): Change the typedef
876 name to cpp_hash_table. Update all users of the typedef.
877
c0fd3497
LB
8782012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
879
880 * include/line-map.h (line_map_macro): Use the "atomic" GTY option
881 for the macro_locations field.
882
d35d1c0f
UB
8832011-06-19 Uros Bizjak <ubizjak@gmail.com>
884
885 * lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
886 __builtin_ia32_pcmpestri128 instead of asm.
887
d86d2119
DA
8882012-06-04 Dimitrios Apostolou <jimis@gmx.net>
889
890 * line-map.c (linemap_enter_macro): Don't zero max_column_hint in
891 every macro. This improves performance by reducing the number of
892 reallocations when track-macro-expansion is on.
893
7ca643e1
DS
8942012-06-04 Dodji Seketeli <dodji@redhat.com>
895
896 PR preprocessor/53463
897 * line-map.c (linemap_location_in_system_header_p): For built-in
898 macro tokens, check the first expansion point location that is not
899 for a token coming from a built-in macro.
900
7d9641cc
JM
9012012-05-29 Joseph Myers <joseph@codesourcery.com>
902
903 * directives.c: Fix typos.
904 * include/line-map.h: Fix typos.
905 * line-map.c: Fix typos.
906 * macro.c: Fix typos.
907
53a103d3
DS
9082012-05-25 Dodji Seketeli <dodji@redhat.com>
909
910 PR bootstrap/53459
911 * lex.c (search_line_fast): Avoid unused local typedefs to simulate
912 a static assertion.
913
828a7f76
DS
9142012-05-29 Dodji Seketeli <dodji@redhat.com>
915
916 PR preprocessor/53229
917 * internal.h (cpp_reader::set_invocation_location): Remove.
918 (cpp_reader::about_to_expand_macro_p): New member flag.
919 * directives.c (do_pragma): Remove Kludge as
920 pfile->set_invocation_location is no more.
921 * macro.c (cpp_get_token_1): Do away with the use of
922 cpp_reader::set_invocation_location. Just collect the macro
923 expansion point when we are about to expand the top-most macro.
924 Do not override cpp_reader::about_to_expand_macro_p.
925 This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
926 properly handle locations of expansion points.
927 (cpp_get_token_with_location): Adjust, as
928 cpp_reader::set_invocation_location is no more.
929 (paste_tokens): Take a virtual location parameter for
930 the LHS of the pasting operator. Use it in diagnostics. Update
931 comments.
932 (paste_all_tokens): Tighten the assert. Propagate the location of
933 the expansion point when no virtual locations are available.
934 Pass the virtual location to paste_tokens.
935 (in_macro_expansion_p): New static function.
936 (enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
937 flag until we really start expanding the macro.
938
0b2c4be5
DS
9392012-05-16 Dodji Seketeli <dodji@redhat.com>
940
941 PR preprocessor/7263
942 * include/cpplib.h (cpp_classify_number): Take a location
943 parameter.
944 * expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic
945 macros that take a location parameter.
946 (cpp_classify_number): Take a (virtual) location parameter. Use
947 it for diagnostics. Adjust comments.
948 (eval_token): Take a location parameter. Pass it to
949 cpp_classify_number and to diagnostic routines.
950 (_cpp_parse_expr): Use virtual locations of tokens when parsing
951 expressions. Pass a virtual location to eval_token and to
952 diagnostic routines.
953
638d2065
TG
9542012-05-10 Tristan Gingold <gingold@adacore.com>
955
956 * expr.c (interpret_float_suffix): Add a guard.
957
3ad64f53
DS
9582012-05-02 Dodji Seketeli <dodji@redhat.com>
959
960 Properly initialize cpp_context in destringize_and_run
961 * directives.c (destringize_and_run): Properly initialize the new
962 context.
963 * macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
964 the initial base context, which has the same life time as the
965 current instance of cpp_file.
966
b193dfa8
MLI
9672012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
968 Dodji Seketeli <dodji@seketeli.org>
969
3efc2959 970 PR c++/52974
b193dfa8
MLI
971 * libcpp/files.c (maybe_shorter_path): New.
972 (find_file_in_dir): Use it.
973
4e65a470
DS
9742012-04-30 Dodji Seketeli <dodji@redhat.com>
975
51fce2d3
DS
976 Switch -ftrack-macro-expansion=2 on by default.
977 * init.c (cpp_create_reader): Switch -ftrack-macro-expansion=2 on
978 by default. Add comments.
979
c4ca1a09
DS
980 Strip "<built-in>" loc from displayed expansion context
981 * include/line-map.h (linemap_unwind_toward_expansion): Fix typo
982 in comment.
983 (linemap_unwind_to_first_non_reserved_loc): Declare new function.
984 * line-map.c (linemap_unwind_to_first_non_reserved_loc): Define
985 new function.
986
3600218c
DS
987 Fix expansion point loc for macro-like tokens
988 * macro.c (macro_of_context): New static function.
989 (_cpp_push_token_context, push_extended_tokens_context): If the
990 macro argument is NULL, it means we are continuing the expansion
991 of the current macro, if any. Update comments.
992 (_cpp_pop_context): Re-enable expansion of the macro only when we
993 are really out of the context of the current expansion.
994
0ff2b8a0
DS
995 Fix token pasting with -ftrack-macro-expansion
996 * macro.c (paste_all_tokens): Put the token resulting from pasting
997 into an extended token context with -ftrack-macro-location is in
998 effect.
999
4e65a470
DS
1000 Fix cpp_sys_macro_p with -ftrack-macro-expansion
1001 * macro.c (cpp_sys_macro_p): Support -ftrack-macro-expansion.
1002
112448b4
DS
10032012-04-29 Dodji Seketeli <dodji@redhat.com>
1004
1005 * lex.c (lex_raw_string): Change C++ style comments into C style
1006 comments.
19a9ba64 1007 (lex_string): Likewise.
112448b4 1008
7f5f5f98
OW
10092012-04-27 Ollie Wild <aaw@google.com>
1010
1011 * include/cpplib.h (struct cpp_options): Add new field,
1012 warn_literal_suffix.
1013 (CPP_W_LITERAL_SUFFIX): New enum.
1014 * init.c (cpp_create_reader): Default initialization of
1015 warn_literal_suffix.
1016 * lex.c (lex_raw_string): Treat user-defined literals which don't
1017 begin with '_' as separate tokens and produce a warning.
1018 (lex_string): Ditto.
1019
1d72e96f
MLI
10202012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
1021
1022 * line-map.c (linemap_resolve_location): Synchronize comments with
1023 those in line-map.h.
1024 * include/line-map.h (linemap_resolve_location): Fix spelling in
1025 comment.
1026
e75b54a2
RE
10272012-03-22 Richard Earnshaw <rearnsha@arm.com>
1028
1029 * lex.c (search_line_fast): Provide Neon-optimized version for ARM.
1030
7888f266
RO
10312012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1032
1033 * lex.c: Remove Solaris 8 reference.
1034
dd552284
WL
10352012-02-14 Walter Lee <walt@tilera.com>
1036
1037 * configure.ac: Require 64-bit hwint for tilegx and tilepro.
1038 * configure: Regenerate.
1039
2c5cbc31
RG
10402012-01-09 Richard Guenther <rguenther@suse.de>
1041
1042 * macro.c (_cpp_builtin_macro_text): Remove unused variable map.
1043
b492b686
GF
10442012-01-09 Gary Funck <gary@intrepid.com>
1045
1046 PR preprocessor/33919
1047 * files.c (_cpp_get_file_name): New. Implement file name
1048 access function.
1049 * internal.h (_cpp_get_file_name): New prototype.
1050 * macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
1051 to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
1052
75291c57
OH
10532012-01-03 Olivier Hainque <hainque@adacore.com>
1054
1055 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
1056
48b0b196
JM
10572011-12-20 Joseph Myers <joseph@codesourcery.com>
1058
1059 * include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
1060 (CLK_STDC1X): Change to CLK_STDC11.
1061 * init.c (lang_defaults): Update comments.
1062 (cpp_init_builtins): Update language tests. Use 201112L for C11
1063 __STDC_VERSION__.
1064
4a5e00ca
AS
10652011-12-20 Andreas Schwab <schwab@linux-m68k.org>
1066
1067 * configure: Regenerate.
1068
095af58f
AS
10692011-12-19 Andreas Schwab <schwab@linux-m68k.org>
1070
1071 * configure: Regenerate.
1072
b0c084b7
JJ
10732011-12-07 Jakub Jelinek <jakub@redhat.com>
1074
1075 PR bootstrap/50237
1076 * internal.h (_cpp_init_lexer): New prototype.
1077 * init.c (init_library): Call it.
1078 * lex.c (init_vectorized_lexer): Remove constructor attribute,
1079 add inline keyword.
1080 (HAVE_init_vectorized_lexer): Define.
1081 (_cpp_init_lexer): New function.
1082
9b554be9
DS
10832011-12-03 Dodji Seketeli <dodji@redhat.com>
1084
1085 * macro.c (tokens_buff_remove_last_token)
1086 (tokens_buff_put_token_to): Add an 'inline' function specifier to
1087 the prototype.
1088
8dcf72a8
DN
10892011-11-22 Diego Novillo <dnovillo@google.com>
1090
1091 * include/line-map.h (linemap_dump): Declare.
1092 (line_table_dump): Declare.
1093 * line-map.c (linemap_dump): New.
1094 (line_table_dump): New.
1095
7e74ce3f
ESR
10962011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net>
1097
1098 PR c++/50958
1099 * expr.c (cpp_userdef_char_remove_type): Fix typo.
1100
e9411247
MM
11012011-11-03 Michael Matz <matz@suse.de>
1102
1103 PR bootstrap/50857
1104 * configure.ac: Check for -fno-exceptions -fno-rtti.
1105 * configure: Regenerate.
1106 * Makefile.in (NOEXCEPTION_FLAGS): New flag.
1107 (ALL_CXXFLAGS): Use it.
1108
0c1dace3
PC
11092011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
1110
1111 * internal.h (uxstrdup, ustrchr): Return const unsigned char *.
1112
25339f10
JM
11132011-11-02 Jason Merrill <jason@redhat.com>
1114
1115 PR c++/50810
1116 * configure.ac: Add -Wno-narrowing to warning options.
1117
97e3ad20
JM
11182011-10-31 Jason Merrill <jason@redhat.com>
1119
1fb80b0c
JM
1120 PR libstdc++/1773
1121 * init.c (cpp_init_builtins): Set __cplusplus for C++11.
1122
97e3ad20
JM
1123 PR c++/50920
1124 * include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
1125 CLK_GNUCXX0X to CLK_GNUCXX11.
1126
3ce4f9e4
ESR
11272011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net>
1128
1129 Implement C++11 user-defined literals.
1130 * expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
1131 cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
1132 cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
1133 cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
1134 (cpp_classify_number): Classify unrecognized tokens as user-defined
1135 literals.
1136 * include/cpplib.h: Add new tokens for user-defined literals.
1137 * init.c: Add new preprocessor flag (cxx11).
1138 * lex.c: (lex_string, lex_raw_string): Handle user-defined literals
1139 including concatenation and promotion with suffixes.
1140
3bb0c8db
DS
11412011-10-24 Dodji Seketeli <dodji@redhat.com>
1142
1143 * line-map.c (linemap_macro_map_lookup): Fix logic.
1144
84756fd4
DS
11452011-10-24 Dodji Seketeli <dodji@redhat.com>
1146
1147 * include/line-map.h (linemap_expand_location): Take a line table
1148 parameter. Update comment.
1149 (linemap_resolve_location): Update comment.
1150 (linemap_expand_location_full): Remove.
1151 * line-map.c (linemap_resolve_location): Handle reserved
1152 locations; return a NULL map in those cases.
1153 (linemap_expand_location): If location is reserved, return a
1154 zeroed expanded location. Update comment. Take a line table to
1155 assert that the function takes non-virtual locations only.
1156 (linemap_expand_location_full): remove.
1157 (linemap_dump_location): Handle the fact that
1158 linemap_resolve_location can return NULL line maps when the
1159 location resolves to a reserved location.
1160
1161 * line-map.c (linemap_macro_map_lookup): Fix logic.
1162
ad2305ad
DS
11632011-10-22 Dodji Seketeli <dodji@redhat.com>
1164
1165 PR bootstrap/50778
1166 * include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
1167 context to act upon.
1168 * lex.c (_cpp_remaining_tokens_num_in_context): Likewise. Update
1169 comment.
1170 (cpp_token_from_context_at): Likewise.
1171 (cpp_peek_token): Use the context to peek tokens from.
1172
cbbcf655
DS
11732011-10-20 Dodji Seketeli <dodji@redhat.com>
1174
1175 PR bootstrap/50801
1176 * lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
1177 number of tokens.
1178
d17687f6
DS
11792011-10-18 Dodji Seketeli <dodji@redhat.com>
1180
1181 PR bootstrap/50760
1182 * include/line-map.h (struct linemap_stats): Change the type of
19a9ba64 1183 the members from size_t to long.
d17687f6 1184 * macro.c (macro_arg_token_iter_init): Unconditionally initialize
19a9ba64 1185 iter->location_ptr.
d17687f6 1186
411f92de
DS
11872011-10-17 Dodji Seketeli <dodji@redhat.com>
1188
1189 * line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
19a9ba64
AM
1190 variable without using it if ENABLE_CHECKING is not defined. Mark
1191 the LOCATION parameter as being unused.
411f92de 1192
b9bd6f74
TT
11932011-10-15 Tom Tromey <tromey@redhat.com>
1194 Dodji Seketeli <dodji@redhat.com>
1195
1196 * include/line-map.h (struct line_maps::alloced_size_for_request):
1197 New member.
1198 * line-map.c (new_linemap): Use set->alloced_size_for_request to
1199 get the actual allocated size of line maps.
1200
64a1a422
TT
12012011-10-15 Tom Tromey <tromey@redhat.com>
1202 Dodji Seketeli <dodji@redhat.com>
1203
1204 * line-map.h (struct linemap_stats): Declare new struct.
1205 (linemap_get_statistics): Declare ...
1206 * line-map.c (linemap_get_statistics): ... new function.
1207 * macro.c (num_expanded_macros_counter, num_macro_tokens_counter):
1208 Declare new counters.
1209 (enter_macro_context, replace_args): Update
1210 num_macro_tokens_counter.
1211 (cpp_get_token_1): Update num_expanded_macros_counter.
1212
847e697a
TT
12132011-10-15 Tom Tromey <tromey@redhat.com>
1214 Dodji Seketeli <dodji@redhat.com>
1215
1216 * include/cpplib.h (struct cpp_options)<debug>: New struct member.
1217 * include/line-map.h (linemap_dump_location): Declare ...
1218 * line-map.c (linemap_dump_location): ... new function.
1219
92582b75
TT
12202011-10-15 Tom Tromey <tromey@redhat.com>
1221 Dodji Seketeli <dodji@redhat.com>
1222
1223 * include/cpplib.h (struct cpp_options)<track_macro_expansion>:
1224 New option.
1225 * internal.h (struct macro_context): New struct.
1226 (enum context_tokens_kind): New enum.
1227 (struct cpp_context)<tokens_kind>: New member of type enum
1228 context_tokens_kind.
1229 (struct cpp_context)<macro>: Remove this. Replace it with an enum
1230 of macro and macro_context.
1231 (struct cpp_context)<direct_p>: Remove.
1232 (_cpp_remaining_tokens_num_in_context): Declare new function.
1233 * directives.c (destringize_and_run): Adjust.
1234 * lex.c (_cpp_remaining_tokens_num_in_context)
1235 (_cpp_token_from_context_at): Define new functions
1236 (cpp_peek_token): Use them.
1237 * init.c (cpp_create_reader): Initialize the base context to zero.
1238 (_cpp_token_from_context_at): Define new static function.
1239 (cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and
1240 _cpp_token_from_context_at.
1241 * macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New
1242 members.
1243 (enum macro_arg_token_kind): New enum.
1244 (struct macro_arg_token_iter): New struct.
1245 (maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context)
1246 (alloc_expanded_arg_mem, ensure_expanded_arg_room)
1247 (delete_macro_args, set_arg_token, get_arg_token_location)
1248 (arg_token_ptr_at, macro_arg_token_iter_init)
1249 (macro_arg_token_iter_get_token)
1250 (macro_arg_token_iter_get_location, macro_arg_token_iter_forward)
1251 (expanded_token_index, tokens_buff_new, tokens_buff_count)
1252 (tokens_buff_last_token_ptr, tokens_buff_put_token_to)
1253 (tokens_buff_add_token, tokens_buff_remove_last_token)
1254 (reached_end_of_context, consume_next_token_from_context): New
1255 static functions.
1256 (cpp_get_token_1): New static function. Split and extended from
1257 cpp_get_token. Use reached_end_of_context and
1258 consume_next_token_from_context. Unify its return point. Move
1259 the location tweaking from cpp_get_token_with_location in here.
1260 (cpp_get_token): Use cpp_get_token_1
1261 (stringify_arg): Use the new arg_token_at.
1262 (paste_all_tokens): Support tokens coming from extended tokens
1263 contexts.
1264 (collect_args): Return the number of collected arguments, by
1265 parameter. Store virtual locations of tokens that constitute the
1266 collected args.
1267 (funlike_invocation_p): Return the number of collected arguments,
1268 by parameter.
1269 (enter_macro_context): Add a parameter for macro expansion point.
1270 Pass it to replace_args and to the "used" cpp callback. Get the
1271 number of function-like macro arguments from funlike_invocation_p,
1272 pass it to the new delete_macro_args to free the memory used by
1273 macro args. When -ftrack-macro-expansion is in effect, for macros
1274 that have no arguments, create a macro map for the macro expansion
1275 and use it to allocate proper virtual locations for tokens
1276 resulting from the expansion. Push an extended tokens context
1277 containing the tokens resulting from macro expansion and their
1278 virtual locations.
1279 (replace_args): Rename the different variables named 'count' into
1280 variables with more meaningful names. Create a macro map;
1281 allocate virtual locations of tokens resulting from this
1282 expansion. Use macro_arg_token_iter to iterate over tokens of a
1283 given macro. Handle the case of the argument of
1284 -ftrack-macro-expansion being < 2. Don't free macro arguments
1285 memory resulting from expand_arg here, as these are freed by the
1286 caller of replace_arg using delete_macro_args now. Push extended
1287 token context.
1288 (next_context, push_ptoken_context, _cpp_push_token_context)
1289 (_cpp_push_text_context): Properly initialize the context.
1290 (expand_arg): Use the new alloc_expanded_arg_mem,
1291 push_extended_tokens_context, cpp_get_token_1, and set_arg_token.
1292 (_cpp_pop_context): Really free the memory held by the context.
1293 Handle freeing memory used by extended tokens contexts.
1294 (cpp_get_token_with_location): Use cpp_get_token_1.
1295 (cpp_sys_macro_p): Adjust.
1296 (_cpp_backup_tokens): Support the new kinds of token contexts.
1297 * traditional.c (recursive_macro): Adjust.
1298
46427374
TT
12992011-10-15 Tom Tromey <tromey@redhat>
1300 Dodji Seketeli <dodji@redhat.com>
1301
1302 * include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum
1303 member.
1304 (MAX_SOURCE_LOCATION): New constant.
1305 (struct line_map_ordinary, struct line_map_macro): New structs.
19a9ba64 1306 (struct line_map): Turn this into a union of the two above. Add
46427374
TT
1307 comments.
1308 (struct maps_info): New struct.
1309 (struct line_maps)<info_ordinary, info_macro>: Two new fields.
1310 These now carry the map information that was previously scattered
1311 in struct line_maps.
1312 (struct map_info::allocated): Fix comment.
1313 (MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME)
1314 (ORDINARY_MAP_STARTING_LINE_NUMBER)
1315 (ORDINARY_MAP_INCLUDER_FILE_INDEX)
1316 (ORDINARY_MAP_IN_SYSTEM_HEADER_P)
1317 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO)
1318 (MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS)
1319 (MACRO_MAP_EXPANSION_POINT_LOCATION)
1320 (LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO)
1321 (LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE)
1322 (LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP)
1323 (LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED)
1324 (LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE)
1325 (LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP)
1326 (LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED)
1327 (LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE)
1328 (LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP)
1329 (LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT)
1330 (LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map
1331 information.
1332 (linemap_check_ordinary, linemap_assert)
1333 (linemap_location_before_p): New macros.
1334 (linemap_position_for_line_and_column)
1335 (linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token)
1336 (linemap_macro_expansion_map_p)
1337 (linemap_macro_map_loc_to_def_point)
1338 (linemap_macro_map_loc_unwind_once)
1339 (linemap_macro_map_loc_to_exp_point, linemap_step_out_once)
1340 (linemap_get_source_line linemap_get_source_column)
1341 (linemap_map_get_macro_name, linemap_get_file_path)
1342 (linemap_location_in_system_header_p)
1343 (linemap_location_from_macro_expansion_p): Declare new functions.
1344 (SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION)
1345 (LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this
1346 accessors act on ordinary maps only.
1347 (INCLUDED_FROM): Return NULL for main files; use the new
1348 accessors.
1349 (LINEMAP_POSITION_FOR_COLUMN): Use the new accessors.
1350 (struct expanded_location): Move here from gcc/input.h
1351 (linemap_resolve_location, linemap_expand_location)
1352 (linemap_expand_location_full): Declare new functions.
1353 * line-map.c: Include cpplib.h, internal.h
1354 (linemap_enter_macro, linemap_add_macro_token)
1355 (linemap_get_expansion_line, linemap_get_expansion_filename): New
1356 functions that are private to libcpp.
1357 (linemap_assert): New macro.
1358 (linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point)
1359 (linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point)
1360 (linemap_macro_map_loc_unwind_toward_spelling)
1361 (linemap_macro_map_loc_to_exp_point)
1362 (first_map_in_common_1, first_map_in_common): New static
1363 functions.
1364 (new_linemap): Define new static functions. Extracted and
1365 enhanced from ...
1366 (linemap_add): ... here. Use linemap_assert in lieu of abort
1367 previously.
1368 (linemap_tracks_macro_expansion_locs_p)
1369 (linemap_add_macro_token, linemap_macro_expansion_map_p)
1370 (linemap_check_ordinary, linemap_macro_map_loc_to_exp_point)
1371 (linemap_macro_map_loc_to_def_point)
1372 (linemap_macro_map_loc_unwind_once)
1373 (linemap_step_out_once, linemap_map_get_index)
1374 (linemap_get_source_line,linemap_get_source_column)
1375 (linemap_get_file_path, linemap_map_get_macro_name)
1376 (linemap_location_in_system_header_p)
1377 (linemap_location_originated_from_system_header_p)
1378 (linemap_location_from_macro_expansion_p)
1379 (linemap_tracks_macro_expansion_locs_p)
1380 (linemap_resolve_location, linemap_expand_location)
1381 (linemap_expand_location_full)
1382 (linemap_tracks_macro_expansion_locs_p)
1383 (linemap_position_for_line_and_column, linemap_compare_locations):
1384 Define new public functions.
1385 (linemap_init): Initialize ordinary and macro maps information in
1386 the map set.
1387 (linemap_check_files_exited): Use the new accessors.
1388 (linemap_free): Remove this dead code.
1389 (linemap_line_start): Assert this uses an ordinary map. Adjust to
1390 use the new ordinary map accessors and data structures. Don't
1391 overflow past the lowest possible macro token's location.
1392 (linemap_position_for_column): Assert the ordinary maps of the map
1393 set are really ordinary. Use ordinary map accessors.
1394 (linemap_lookup): Keep the same logic but generalize to allow
1395 lookup of both ordinary and macro maps. Do not crash when called
1396 with an empty line table.
1397 * directives-only.c (_cpp_preprocess_dir_only): Adjust to use the
1398 new API of line-map.h.
1399 * directives.c (start_directive, do_line, do_linemarker)
1400 (do_linemarker): Likewise.
1401 * files.c (_cpp_find_file, _cpp_stack_include, open_file_failed)
1402 (make_cpp_dir, cpp_make_system_header): Likewise.
1403 * init.c (cpp_read_main_file): Likewise.
1404 * internal.h (CPP_INCREMENT_LINE): Likewise.
1405 (linemap_enter_macro, linemap_add_macro_token)
1406 (linemap_get_expansion_line, linemap_get_expansion_filename): New
1407 functions private to libcpp.
1408 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment)
1409 (skip_line_comment, skip_whitespace, lex_raw_string)
1410 (_cpp_lex_direct): Likewise.
1411 * macro.c (_cpp_builtin_macro_text): Likewise.
1412 (_cpp_aligned_alloc): Initialize the new name member of the macro.
1413 * traditional.c (copy_comment, _cpp_scan_out_logical_line):
1414 Likewise.
1415 * errors.c (cpp_diagnostic): Adjust to new linemap API.
1416
892a371f
DS
14172011-08-28 Dodji Seketeli <dodji@redhat.com>
1418
1419 * line-map.c (linemap_add): Assert that reason must not be
1420 LC_RENAME when called for the first time on a "main input file".
1421
e3dfef44
GC
14222011-08-22 Gabriel Charette <gchare@google.com>
1423
1424 * init.c (cpp_create_reader): Inititalize forced_token_location_p.
1425 * internal.h (struct cpp_reader): Add field forced_token_location_p.
1426 * lex.c (_cpp_lex_direct): Use forced_token_location_p.
1427 (cpp_force_token_locations): New.
1428 (cpp_stop_forcing_token_locations): New.
1429
32fe396e
RO
14302011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1431
1432 PR libstdc++/1773
1433 * init.c (cpp_init_builtins): Define __cplusplus 19971L.
1434
7c1ffff9
JM
14352011-08-18 Joseph Myers <joseph@codesourcery.com>
1436
1437 * include/cpplib.h (struct cpp_options): Fix typo.
1438
a48e3dd1
JM
14392011-08-18 Joseph Myers <joseph@codesourcery.com>
1440
1441 * include/cpplib.h (struct cpp_options): Add rliterals.
1442 * init.c (struct lang_flags, lang_defaults): Add rliterals.
1443 (cpp_set_lang): Set rliterals option.
1444 (cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__.
1445 * lex.c (_cpp_lex_direct): Only accept raw strings if rliterals.
1446
3f6ced10
GC
14472011-08-15 Gabriel Charette <gchare@google.com>
1448
1449 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove.
1450 Update all users to use linemap_position_for_column instead.
1451
0681d04c
GC
14522011-07-28 Gabriel Charette <gchare@google.com>
1453
1454 * include/line-map.h (struct line_maps):
1455 Remove unused field last_listed. Update all users.
1456
5e9627ca
L
14572011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1458
1459 * configure.ac: Set need_64bit_hwint to yes for x86 targets.
1460 * configure: Regenerated.
1461
a024b70f
RO
14622011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1463
1464 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
1465
5b6d595b
RO
14662011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1467 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1468
1469 PR bootstrap/49794
1470 * configure.ac: Test AM_ICONV with CXX.
1471 * configure: Regenerate.
1472 * system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++.
1473
d0a9fbe1
DS
14742011-07-15 Dodji Seketeli <dodji@redhat.com>
1475
1476 * directives.c (struct if_stack): Use source_location as type
1477 here.
1478 * include/cpplib.h (struct cpp_callbacks)<include, define, undef,
1479 indent, def_pragma, used_define, used_undef>: Properly use
1480 source_location as parameter type, rather than unsigned int.
1481
fbdd5d87
RO
14822011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1483
1484 PR target/39150
1485 * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
1486 like i[34567]86-*-solaris2.1[0-9]*.
1487 * configure: Regenerate.
1488
8787a05a
JM
14892011-06-16 Jason Merrill <jason@redhat.com>
1490
1491 PR c++/45399
1492 * lex.c (lex_raw_string): Don't check for embedded NUL.
1493
38fbfaf6
DS
14942011-06-06 Dodji Seketeli <dodji@redhat.com>
1495
1496 PR preprocessor/48532
1497 * directives.c (do_pragma): Don't forget the invocation location
1498 when parsing the pragma name of a namespaced pragma directive.
1499
fc0993ac
JT
15002011-05-29 John Tytgat <John.Tytgat@aaug.net>
1501
1502 * files.c (read_file_guts): Add test on non-zero value of S_ISREG.
1503
ef230b38
UB
15042011-05-22 Uros Bizjak <ubizjak@gmail.com>
1505
1506 PR target/49104
1507 * lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
1508 is defined. Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
1509
e5b0dad8
JK
15102011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
1511
1512 * system.h (ENUM_BITFIELD): Remove.
1513
6cfae070
JJ
15142011-04-24 Jakub Jelinek <jakub@redhat.com>
1515
1516 PR preprocessor/48740
1517 * lex.c (lex_raw_string): When raw string ends with
1518 ??) followed by raw prefix and ", ensure it is preprocessed
1519 with ??) rather than ??].
1520
04695783
JM
15212011-04-20 Jim Meyering <meyering@redhat.com>
1522
1523 * files.c (destroy_cpp_file): Remove useless if-before-free.
1524 * init.c (cpp_destroy): Likewise.
1525 * macro.c (replace_args): Likewise.
1526 * pch.c (cpp_valid_state): Likewise.
1527
4489800d
KT
15282011-03-25 Kai Tietz <ktietz@redhat.com>
1529
1530 * files.c (file_hash_eq): Use filename_cmp
1531 instead of strcmp.
1532 (nonexistent_file_hash_eq): Likewise.
1533 (remap_filename): Likewise.
1534 Handle absolute DOS-path,
1535 (append_file_to_dir): Check for IS_DIR_SEPARATOR
1536 instead of slash.
1537 (read_name_map): Likewise.
1538 * linemap.c (linemap_add): Use filename_cmp
1539 instead of strcmp.
1540 * mkdeps.c (apply_vpath): Use filename_ncmp
1541 instead of strncmp.
1542 (deps_restore): Use filename_cmp instead of
1543 strcmp.
1544 * init.c (read_original_directory): Use
1545 IS_DIR_SEPARATOR instead of checking for slash.
1546
f3c33d9d
MM
15472011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1548
1549 PR preprocessor/48192
1550 * directives.c (do_ifdef): Do not consider conditional macros as
1551 being defined.
1552 (do_ifndef): Ditto.
1553 * expr.c (parse_defined): Ditto.
1554
01956319
RH
15552011-03-18 Richard Henderson <rth@redhat.com>
1556
1557 PR bootstrap/45381
1558 * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5.
1559
c5a62c6f 15602011-11-04 Eric Botcazou <ebotcazou@adacore.com>
19a9ba64 1561 Jakub Jelinek <jakub@redhat.com>
c5a62c6f
EB
1562
1563 PR preprocessor/39213
1564 * directives.c (end_directive): Call _cpp_remove_overlay for deferred
1565 pragmas as well in traditional mode.
1566
0e1a989c
ILT
15672010-11-17 Ian Lance Taylor <iant@google.com>
1568
1569 PR bootstrap/45538
1570 * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS. Remove switch of
1571 AC_LANG based on ENABLE_BUILD_WITH_CXX.
1572
651a20b5
KT
15732010-11-16 Kai Tietz <kai.tietz@onevision.com>
1574
1575 PR preprocessor/17349
1576 * lex.c (save_comment): Handle in argument passing c++
1577 comments special.
1578
480767a9
ILT
15792010-11-02 Ian Lance Taylor <iant@google.com>
1580
1581 * configure.ac: Use AC_SYS_LARGEFILE.
1582 * configure: Rebuild.
1583 * config.in: Rebuild.
1584
078419c9 15852010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
480767a9 1586
078419c9
BS
1587 * line-map.h (source_location): Remove obsolete comment
1588 mentioning location_s.
1589
d6874138
KT
15902010-09-29 Kai Tietz <kai.tietz@onevision.com>
1591
1592 PR preprocessor/45362
1593 * directives.c (cpp_pop_definition): Make static.
1594 (do_pragma_push_macro): Reworked to store text
1595 definition.
1596 (do_pragma_pop_macro): Add free text definition.
1597 (cpp_push_definition): Removed.
1598 * include/cpplib.h (cpp_push_definition): Removed.
1599 (cpp_pop_definition): Likewise.
1600 * internal.h (def_pragma_macro): Remove member 'value'
1601 and add new members 'definition', 'line',
1602 'syshdr', 'sued' and 'is_undef'.
1603 * pch.c (_cpp_restore_pushed_macros): Rework to work
1604 on text definition and store additional macro flags.
1605 (_cpp_save_pushed_macros): Likewise.
1606
e3339d0f
JM
16072010-09-29 Joseph Myers <joseph@codesourcery.com>
1608
1609 * include/cpplib.h (cpp_options): Rename warn_deprecated,
1610 warn_traditional, warn_long_long and pedantic.
1611 * directives.c (directive_diagnostics, _cpp_handle_directive):
1612 Update names of cpp_options members.
1613 * expr.c (cpp_classify_number, eval_token): Update names of
1614 cpp_options members.
1615 * init.c (cpp_create_reader, post_options): Update names of
1616 cpp_options members.
1617 * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
1618 cpp_options members.
1619 * macro.c (parse_params): Update names of cpp_options members.
1620
128465e6
ILT
16212010-09-15 Ian Lance Taylor <iant@google.com>
1622
1623 * init.c: Fix type name in comment.
1624
a69d2520
JJ
16252010-08-31 Jakub Jelinek <jakub@redhat.com>
1626
1627 PR preprocessor/45457
1628 * expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if
1629 needed.
1630 * directives.c (do_ifdef, do_ifndef): Likewise.
1631
707bcb7a
RO
16322010-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1633
1634 * system.h [HAVE_INTTYPES_H]: Include inttypes.h.
1635
6f173e52
RH
16362010-08-24 Richard Henderson <rth@redhat.com>
1637
1638 PR bootstrap/45376
1639 * configure.ac (HAVE_SSE4): New check.
1640 * configure, config.in: Rebuild.
1641 * lex.c (search_line_sse42): Omit if !HAVE_SSE4.
1642
789d73cb
RO
16432010-08-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1644
1645 * lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
1646 etc. on Solaris 2/x86.
1647
246a2fcb
RH
16482010-08-21 Richard Henderson <rth@redhat.com>
1649 Andi Kleen <ak@linux.intel.com>
1650 David S. Miller <davem@davemloft.net>
1651
1652 * configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
1653 (ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
1654 (ptrdiff_t): Check via AC_CHECK_TYPE.
1655 * config.in, configure: Rebuild.
1656 * system.h: Include stdint.h, if available.
1657 * lex.c (WORDS_BIGENDIAN): Provide default.
1658 (acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
1659 acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
1660 search_line_sse2, search_line_sse42, init_vectorized_lexer,
1661 search_line_fast): New.
1662 (_cpp_clean_line): Use search_line_fast. Restructure the fast
1663 loop to make it clear when we're leaving the loop. Stay in the
1664 fast loop for non-trigraph '?'.
1665
8e680db5
JJ
16662010-06-11 Jakub Jelinek <jakub@redhat.com>
1667
1668 * include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro
1669 callback.
1670 (enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER.
1671 (cpp_macro_definition): Remove const qual from second argument.
1672 * macro.c (enter_macro_context): Call user_builtin_macro callback for
1673 NODE_BUILTIN !NODE_USED macros.
1674 (warn_of_redefinition): Likewise. Remove const qual from second
1675 argument.
1676 (cpp_macro_definition): Likewise.
1677 * pch.c (write_macdef, save_macros): Call user_builtin_macro callback
1678 for NODE_BUILTIN !NODE_USED macros.
1679
1cb42611
JM
16802010-06-10 Joseph Myers <joseph@codesourcery.com>
1681
1682 * include/cpplib.h (struct cpp_options): Remove show_column.
1683 * init.c (cpp_create_reader, post_options): Don't set show_column.
1684
ff5dfc48
JR
16852010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
1686
1687 PR bootstrap/44432
1688 * configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++,
1689 check that C++ compiler works.
1690 * configure: Regenerate.
1691
a9429e29
LB
16922010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1693
1694 * include/symtab.h (ht_identifier_ptr): New.
1695
c3f247f4
RW
16962010-06-03 Joern Rennecke <joern.rennecke@embecosm.com>
1697 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1698
1699 PR bootstrap/42798
1700 * configure.ac: Check for declaration of 'basename(char *)'.
1701 * configure: Regenerate.
1702 * config.in: Regenerate.
1703
2778d766
JM
17042010-04-25 Joseph Myers <joseph@codesourcery.com>
1705
1706 * include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X.
1707 * init.c (lang_defaults): Add entries for new language variants.
1708 (cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X
1709 variants.
1710
d8a12e84
MLI
17112010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
1712
1713 PR cpp/43195
1714 * files.c (report_missing_guard): Test for #pragma once.
1715
87cf0651
SB
17162010-04-07 Simon Baldwin <simonb@google.com>
1717
1718 * directives.c (do_diagnostic): Add warning reason argument,
1719 call appropriate error reporting function for code.
1720 (directive_diagnostics): Call specific warning functions with
1721 warning reason where appropriate.
1722 (do_error, do_warning, do_pragma_dependency): Add warning reason
1723 argument to do_diagnostic calls.
1724 * macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
1725 _cpp_create_definition): Call specific warning functions with
1726 warning reason where appropriate.
1727 * Makefile.in: Add new diagnostic functions to gettext translations.
1728 * include/cpplib.h (struct cpp_callbacks): Add warning reason code
1729 to error callback.
1730 (CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
1731 CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
1732 (CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
1733 CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
1734 CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
1735 CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
1736 CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
1737 CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
1738 CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
1739 warning reason codes.
1740 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
1741 cpp_warning_with_line, cpp_pedwarning_with_line,
1742 cpp_warning_with_line_syshdr): New specific error reporting functions.
1743 * pch.c (cpp_valid_state): Call specific warning functions with
1744 warning reason where appropriate.
1745 * errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
1746 diagnostic handlers.
1747 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
1748 cpp_warning_with_line, cpp_pedwarning_with_line,
1749 cpp_warning_with_line_syshdr): New specific error reporting functions.
1750 * expr.c (cpp_classify_number, eval_token, num_unary_op): Call
1751 specific warning functions with warning reason where appropriate.
1752 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
1753 warn_about_normalization, lex_identifier_intern, lex_identifier,
1754 _cpp_lex_direct): Ditto.
1755 * charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
1756 narrow_str_to_charconst): Ditto.
1757
d947ada0
JJ
17582010-04-06 Jakub Jelinek <jakub@redhat.com>
1759
1760 PR preprocessor/43642
1761 * lex.c (lex_raw_string): Change type of TYPE variable to
1762 unsigned char.
1763
4d9e8446
RW
17642010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1765
1766 * aclocal.m4: Regenerate.
1767
52150625
JM
17682010-03-29 Jason Merrill <jason@redhat.com>
1769
00a81b8b
JM
1770 More N3077 raw string changes
1771 * charset.c (cpp_interpret_string): Don't transform UCNs in raw
1772 strings.
1773 * lex.c (bufring_append): Split out from...
1774 (lex_raw_string): ...here. Undo trigraph and line splicing
1775 transformations. Do process line notes in multi-line literals.
1776 (_cpp_process_line_notes): Ignore notes that were already handled.
1777
52150625
JM
1778 Some raw string changes from N3077
1779 * charset.c (cpp_interpret_string): Change inner delimiters to ().
1780 * lex.c (lex_raw_string): Likewise. Also disallow '\' in delimiter.
1781
709d7160
JJ
17822010-02-11 Jakub Jelinek <jakub@redhat.com>
1783
1784 * init.c (read_original_filename): Don't call read_original_directory
1785 if _cpp_handle_directive returns 0.
1786
dadab4fd
JM
17872010-01-01 Joseph Myers <joseph@codesourcery.com>
1788
1789 PR preprocessor/41947
1790 * expr.c (cpp_classify_number): Give error for hexadecimal
1791 floating-point constant with no digits before or after point.
1792
3de8a540
AC
17932009-11-20 Arnaud Charlet <charlet@adacore.com>
1794
1795 * macro.c (enter_macro_context): Call cb.used callback if defined.
1796 * directives.c (do_idef, do_ifndef): Ditto.
1797 * include/cpplib.h (struct cpp_callbacks): Add used callback.
1798
17e7cb85
KT
17992009-11-11 Kai Tietz <kai.tietz@onevision.com>
1800
1801 * directives.c (do_pragma_push_macro): New pragma handler.
1802 (do_pragma_pop_macro): Likewise.
1803 (_cpp_init_internal_pragmas): Add push_macro and
1804 pop_macro handler to internal pragmas.
1805 (lex_macro_node_from_str): Removed.
1806 (cpp_push_definition): Replace lex_macro_node_from_str
1807 by _cpp_lex_identifier.
1808 (cpp_pop_definition): Likewise.
1809 * internal.h (_cpp_lex_identifier): New prototype.
1810 (def_pragma_macro): New structure.
1811 (cpp_reader): New member pushed_macros.
1812 * lex.c (_cpp_lex_identifier): New function.
1813 (lex_identifier_intern): New function.
1814 * init.c (cpp_create_reader): Initialize pushed_macros
1815 member.
1816 (cpp_destroy): Free elements in pushed_macros member.
1817 * pch.c (_cpp_save_pushed_macros): New function.
1818 (_cpp_restore_pushed_macros): Likewise.
1819 (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
1820 (cpp_read_state): Use _cpp_restore_pushed_macros.
1821
2c6e3f55
JJ
18222009-10-19 Jakub Jelinek <jakub@redhat.com>
1823
1824 * charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
1825 (_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
1826 and char32_cset_desc.
1827 (converter_for_type): Handle CPP_UTF8STRING.
1828 (cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
1829 * directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
1830 (parse_include): Reject raw strings.
1831 * include/cpplib.h (CPP_UTF8STRING): New token type.
1832 * internal.h (struct cpp_reader): Add utf8_cset_desc field.
1833 * lex.c (lex_raw_string): New function.
1834 (lex_string): Handle u8 string literals, call lex_raw_string
1835 for raw string literals.
1836 (_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
1837 sequences.
1838 * macro.c (stringify_arg): Handle CPP_UTF8STRING.
1839
96c169e1
JJ
18402009-10-14 Jakub Jelinek <jakub@redhat.com>
1841
1842 PR preprocessor/41543
1843 * include/line-map.h (RESERVED_LOCATION_COUNT): Define.
1844 * line-map.c (linemap_init): Initialize highest_location and
1845 highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
1846
30c99a9e
JM
18472009-10-09 Jason Merrill <jason@redhat.com>
1848
1849 * charset.c (_cpp_valid_ucn): Update C++0x restrictions.
1850
2214382c
NV
18512009-10-09 Neil Vachharajani <nvachhar@google.com>
1852
1853 * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and
1854 sccs.
1855
e02222d2
LR
18562009-09-23 Loren J. Rittle <ljrittle@acm.org>
1857
1858 * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h.
1859 * configure: Rebuilt.
1860
9a8a2b7a
RG
18612009-09-22 Richard Guenther <rguenther@suse.de>
1862
1863 PR pch/38987
1864 * files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
1865
74dc6a11
CD
18662009-09-18 Chris Demetriou <cgd@google.com>
1867
1868 PR preprocessor/28435:
1869 * include/cpplib.h (struct cpp_options): Add new member
1870 deps.need_preprocessor_output.
1871 * files.c (open_file_failed): If preprocessor output is needed
1872 always report an error.
1873
933608b7
KT
18742009-09-13 Kai Tietz <kai.tietz@onevision.com>
1875
1876 * configure.ac: Set for i?86-w64-mingw*
1877 need_64bit_hwint to yes.
1878 * configure: Regenerated.
1879
86373e7e
JM
18802009-09-10 Jason Merrill <jason@redhat.com>
1881
1882 * directives.c (cpp_define): constify.
1883
fd2ab214
ILT
18842009-09-02 Ian Lance Taylor <iant@google.com>
1885
1886 * macro.c (stringify_arg): Escape CPP_WCHAR tokens.
1887
df58e648
RW
18882009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1889
1890 * configure.ac (AC_PREREQ): Bump to 2.64.
1891
5213506e
RW
18922009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1893
1894 * aclocal.m4: Regenerate.
1895 * config.in: Regenerate.
1896 * configure: Regenerate.
1897
709a22df
TT
18982009-08-17 Tom Tromey <tromey@redhat.com>
1899
1900 PR preprocessor/41067:
1901 * charset.c (convert_escape): Add missing ":" to error text.
1902
0c539b47
DR
19032009-07-27 Douglas B Rupp <rupp@gnat.com>
1904
1905 * include/cpplib.h (INO_T_CPP): New macro.
1906 (struct cpp_dir): Use it.
1907
2b69c841
JQ
19082009-07-20 Jerry Quinn <jlquinn@optonline.net>
1909
1910 PR regression/40800
1911 * configure.ac: Use = instead of == for testing
1912 ENABLE_BUILD_WITH_CXX.
1913 * configure: Rebuild.
1914
f1bf410c
JQ
19152009-07-17 Jerry Quinn <jlquinn@optonline.net>
1916
1917 * directives.c (do_linemarker, do_line): Use CPP_STRING for
1918 ignored enum value.
1919 * files.c (find_file_in_dir): Add cast from void* to char*.
1920 * symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
1921 * Makefile.in: (WARN_CFLAGS): Use general and C-specific
1922 warnings.
1923 (CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
1924 ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
1925 COMPILER_FLAGS): New.
1926 (DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
1927 (COMPILE.base): Use COMPILER instead of CC. Use COMPILER_FLAGS
1928 instead of ALL_CFLAGS.
1929 * configure.ac: Invoke AC_PROG_CXX. Separate C-specific warnings
1930 from other warnings. Add -Wc++-compat to C-specific warnings.
1931 Check for --enable-build-with-cxx. Set and substitute
1932 ENABLE_BUILD_WITH_CXX. Invoke ZW_PROG_COMPILER_DEPENDENCIES
1933 according to ENABLE_BUILD_WITH_CXX. Invoke AC_LANG before
1934 AC_CHECK_HEADERS.
1935 * configure: Rebuild.
1936 * include/cpp-id-data.h: Remove extern "C".
1937 * include/line-map.h: Likewise.
1938 * include/mkdeps.h: Likewise.
1939 * include/symtab.h: Likewise.
1940 * internal.h: Likewise.
1941
a28fbdba
MLI
19422009-06-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1943
1944 * directives.c (parse_include): Add location argument. Update all
1945 calls.
1946 (parse_answer): Likewise.
1947 (do_include_common): Error with exact location.
1948 (parse_assertion): Likewise.
1949
b506a5a2
MLI
19502009-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
1951
1952 * expr.c (num_div_op): Take explicit location.
1953
7d8847a4
ILT
19542009-06-17 Ian Lance Taylor <iant@google.com>
1955
1956 * include/cpplib.h (progname): Don't declare.
1957
3d8b2a98
ILT
19582009-06-12 Ian Lance Taylor <iant@google.com>
1959
1960 * include/cpplib.h (struct cpp_options): Add
1961 warn_cxx_operator_names field.
1962 (NODE_WARN_OPERATOR): Define.
1963 (struct cpp_hashnode): Increase flags field to 10 bits, decrease
1964 type to 6 bits.
1965 * init.c (mark_named_operators): Add flags parameter.
1966 (cpp_post_options): Pick flags value to pass to
1967 mark_named_operators.
1968 * lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that
1969 identifier is an operator name in C++.
1970
e74fe492
AH
19712009-06-01 Aldy Hernandez <aldyh@redhat.com>
1972
1973 * include/line-map.h (LAST_SOURCE_COLUMN): New.
1974
4851089f
ILT
19752009-06-01 Ian Lance Taylor <iant@google.com>
1976
1977 * include/cpp-id-data.h: Add extern "C".
1978 * include/line-map.h: Likewise.
1979 * include/mkdeps.h: Likewise.
1980 * include/symtab.h: Likewise.
1981 * internal.h: Likewise.
1982
7e5487a2
ILT
19832009-05-15 Ian Lance Taylor <iant@google.com>
1984
1985 * include/cpplib.h (enum cpp_builtin_type): Rename from enum
1986 builtin_type. Change all uses.
1987
00b0c19b
MLI
19882009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1989
1990 PR cpp/36674
1991 * directives (do_linemarker): Compensate for the increment in
1992 location that occurs when we reach the end of line.
1993 * files (_cpp_stack_include): Mention _cpp_find_file in the
1994 comment.
1995
9a0c6187
JM
19962009-05-10 Joseph Myers <joseph@codesourcery.com>
1997
1998 * include/cpplib.h (enum cpp_token_fld_kind): Add
1999 CPP_TOKEN_FLD_TOKEN_NO.
2000 (struct cpp_macro_arg, struct cpp_identifier): Define.
2001 (union cpp_token_u): Use struct cpp_identifier for identifiers.
2002 Use struct cpp_macro_arg for macro arguments. Add token_no for
2003 CPP_PASTE token numbers.
2004 * directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
2005 do_pragma_poison, parse_assertion): Use val.node.node in place of
2006 val.node.
2007 * expr.c (parse_defined, eval_token): Use val.node.node in place
2008 of val.node.
2009 * lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
2010 cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
2011 cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
2012 place of val.arg_no. Use val.node.node in place of val.node.
2013 * macro.c (replace_args, cpp_get_token, parse_params,
2014 lex_expansion_token, create_iso_definition, cpp_macro_definition):
2015 Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
2016 Use val.node.node in place of val.node.
2017
9e322bc1
JM
20182009-05-03 Joseph Myers <joseph@codesourcery.com>
2019
2020 * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte
2021 UTF-8 sequences.
2022
f88d0772
JM
20232009-04-25 Joseph Myers <joseph@codesourcery.com>
2024
2025 PR preprocessor/39559
2026 * expr.c (cpp_interpret_integer): Use a pedwarn for decimal
2027 constants larger than intmax_t in C99 mode.
2028
d1b38208
TG
20292009-04-21 Taras Glek <tglek@mozilla.com>
2030
2031 * include/cpp-id-data.h: Update GTY annotations to new syntax.
2032 * include/cpplib.h: Likewise.
2033 * include/line-map.h: Likewise.
2034 * include/symtab.h: Likewise.
2035
cfc93532
MLI
20362009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2037
2038 PR c++/14875
2039 * lex.c (cpp_type2name): Take a flags parameter. Call
2040 cpp_named_operator2name for named operators and cpp_digraph2name
2041 for digraphs.
2042 (cpp_digraph2name): New.
2043 (cpp_spell_token): Use it.
2044 (cpp_output_token): Likewise.
2045 * include/cpplib.h (cpp_type2name): Update declaration.
2046 * init.c (cpp_named_operator2name): New.
2047 * internal.h (cpp_named_operator2name): Declare.
2048
9c650d90
MLI
20492009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2050
2051 PR c++/13358
2052 * init.c (cpp_create_reader): Wlong_long is disabled by default.
2053 * expr.c (cpp_classify_number): Give different messages for C and
2054 C++ front-ends.
2055
aa508502
JM
20562009-04-19 Joseph Myers <joseph@codesourcery.com>
2057
2058 PR preprocessor/20078
2059 * include/cpp-id-data.h (struct cpp_macro): Add extra_tokens
2060 field.
2061 * include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define.
2062 (struct cpp_token): Change flags to unsigned short.
2063 * lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens.
2064 (_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens.
2065 (cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE
2066 tokens.
2067 * macro.c (macro_real_token_count): New.
2068 (enter_macro_context, replace_args): Use macro_real_token_count.
2069 (create_iso_definition): Record whitespace surrounding and digraph
2070 spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH.
2071 Set extra_tokens and save CPP_PASTE tokens with arg_no set for
2072 multiple consecutive ## tokens.
2073 (_cpp_create_definition): Initialize extra_tokens.
2074 (cpp_macro_definition): Use macro_real_token_count.
2075
61cc8223
JM
20762009-04-18 Joseph Myers <joseph@codesourcery.com>
2077
2078 * directives.c (parse_include): Pass true to check_eol.
2079
c7f9c0b9
JM
20802009-04-18 Joseph Myers <joseph@codesourcery.com>
2081
2082 PR preprocessor/39646
2083 * include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM.
2084 * line-map.c (linemap_add): Handle LC_RENAME_VERBATIM.
2085 * directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in
2086 place of LC_RENAME.
2087
a5cb563b
JM
20882009-04-18 Joseph Myers <joseph@codesourcery.com>
2089
2090 PR preprocessor/39647
2091 * directives.c (check_eol): Add parameter expand.
2092 (do_undef, parse_include, do_line, do_linemarker, do_ident,
2093 do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef,
2094 do_else, do_endif, do_assert, do_unassert): All callers changed.
2095 Pass true from do_line, false elsewhere.
2096
18f41a1b
JM
20972009-04-12 Joseph Myers <joseph@codesourcery.com>
2098
2099 PR preprocessor/31869
2100 * macro.c (stringify_arg): Handle NULL source token in padding
2101 token where previous padding token did not have source token with
2102 preceding whitespace.
2103
748086b7
JJ
21042009-04-09 Jakub Jelinek <jakub@redhat.com>
2105
2106 * Makefile.in: Change copyright header to refer to version
2107 3 of the GNU General Public License and to point readers at the
2108 COPYING3 file and the FSF's license web page.
2109 * charset.c: Likewise.
2110 * directives-only.c: Likewise.
2111 * directives.c: Likewise.
2112 * errors.c: Likewise.
2113 * expr.c: Likewise.
2114 * files.c: Likewise.
2115 * identifiers.c: Likewise.
2116 * include/cpp-id-data.h: Likewise.
2117 * include/cpplib.h: Likewise.
2118 * include/line-map.h: Likewise.
2119 * include/mkdeps.h: Likewise.
2120 * include/symtab.h: Likewise.
2121 * init.c: Likewise.
2122 * internal.h: Likewise.
2123 * lex.c: Likewise.
2124 * line-map.c: Likewise.
2125 * macro.c: Likewise.
2126 * makeucnid.c: Likewise.
2127 * mkdeps.c: Likewise.
2128 * pch.c: Likewise.
2129 * symtab.c: Likewise.
2130 * system.h: Likewise.
2131 * traditional.c: Likewise.
2132 * ucnid.tab: Likewise.
2133 * ucnid.h: Regenerate.
2134
eec49116
JJ
21352009-04-01 Janis Johnson <janis187@us.ibm.com>
2136
839a3b8a
JJ
2137 PR c/39027
2138 * include/cpplib.h (CPP_N_DEFAULT): Define.
2139 * expr.c (interpret_float_suffix): Recognize d or D for double,
2140 return new value for default.
2141 (cpp_classify_number): Issue pedwarn for use of d or D in suffix.
2142
eec49116
JJ
2143 PR c/33466
2144 * expr.c (interpret_float_suffix): Reject invalid suffix that uses
2145 letters from decimal float and fixed-point suffixes.
2146
47580d22
JM
21472009-03-31 Joseph Myers <joseph@codesourcery.com>
2148
2149 PR preprocessor/15638
2150 * files.c (_cpp_find_file): Call open_file_failed after diagnosing
2151 invalid PCH.
2152 (open_file_failed): Make error for missing file fatal.
2153 * include/cpplib.h (CPP_DL_FATAL): Define.
2154
5a2df0fa
SV
21552009-03-30 Sergiy Vyshnevetskiy <serg@vostok.net>
2156
2157 PR preprocessor/31932:
2158 * internal.h: Don't mention HAVE_ICONV_H.
2159 * configure, config.in: Rebuild.
2160 * configure.ac: Don't check for iconv.h.
2161
c1a8a3c6
TT
21622009-03-30 Tom Tromey <tromey@redhat.com>
2163
2164 PR preprocessor/39512:
2165 * line-map.c (linemap_init): Initialize 'reallocator' field.
2166
a37a7b8a
JJ
21672009-03-30 Jakub Jelinek <jakub@redhat.com>
2168
2169 PR target/39558
2170 * macro.c (cpp_get_token): If macro_to_expand returns NULL
2171 and used some tokens, add CPP_PADDING before next token.
2172
148e4216
JM
21732009-03-29 Joseph Myers <joseph@codesourcery.com>
2174
2175 PR preprocessor/34695
2176 * makedepend.c: Remove.
2177 * Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove.
2178 (all, clean, TAGS_SOURCES, include): Remove makedepend handling.
2179 * directives.c (cpp_errors): Remove.
2180 * errors.c (print_location, _cpp_begin_message, v_message):
2181 Remove.
2182 (cpp_error, cpp_error_with_line): Always use error callback.
2183 (cpp_error, cpp_error_with_line, cpp_errno): Return bool.
2184 * include/cpplib.h (cpp_options): Remove pedantic_errors,
2185 inhibit_warnings, warn_system_headers, inhibit_errors,
2186 warnings_are_errors, client_diagnostic.
2187 (cpp_callbacks): Add extra arguments to error callback; make it
2188 return bool.
2189 (cpp_finish): Return void.
2190 (cpp_destroy): Remove inaccurate comment about return value.
2191 (cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove.
2192 (CPP_DL_NOTE): Define.
2193 * include/line-map.h (linemap_print_containing_files): Remove.
2194 * init.c (cpp_finish): Do not check for or return number of
2195 errors.
2196 * internal.h (cpp_reader): Remove errors field.
2197 * line-map.c (linemap_print_containing_files): Remove.
2198 * macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message
2199 about previous definition. Only emit it if previous diagnostic
2200 was emitted.
2201
f1450211
JM
22022009-03-28 Joseph Myers <joseph@codesourcery.com>
2203
2204 * Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not
2205 mkinstalldirs.
2206
8f5929e1
JJ
22072009-03-18 Jakub Jelinek <jakub@redhat.com>
2208
2209 * include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
2210
4bb09c26
JM
22112009-02-21 Joseph Myers <joseph@codesourcery.com>
2212
2213 * lex.c (lex_string): Return a CPP_LESS token for missing '>' in a
2214 header name.
2215 (_cpp_lex_direct): Handle this.
2216
68c9ab45
RG
22172009-02-15 Richard Guenther <rguenther@suse.de>
2218
2219 Revert last change.
2220
601b3e1a
RG
22212009-02-13 Richard Guenther <rguenther@suse.de>
2222
2223 * configure.ac: Enable LFS.
2224 * configure: Re-generate.
2225 * config.in: Likewise.
2226
fc0cd180
BE
22272009-01-05 Ben Elliston <bje@au.ibm.com>
2228
2229 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
2230 (.po.pox): Likewise.
2231 (po/$(PACKAGE).pot): Likewise.
2232
db89a3be
AO
22332008-12-10 Alexandre Oliva <aoliva@redhat.com>
2234
2235 PR target/37033
2236 * pch.c (cpp_valid_state): Improve message for poisoned symbols.
2237 Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.
2238
cc955282
JM
22392008-11-29 Joseph Myers <joseph@codesourcery.com>
2240
2241 * lex.c (cpp_token_len): Use 6 as default length.
2242
47960aaf
MLI
22432008-10-31 Manuel López-Ibáñez <manu@gcc.gnu.org>
2244
2245 * expr.c (struct op): Add location.
2246 (_cpp_parse_expr): Propagate locations throught the stack
2247 of expressions.
2248 (reduce): Likewise.
2249 (check_promotion): Use explicit location in errors.
2250
631d0d36
MG
22512008-10-05 Matthew Gingell <gingell@adacore.com>
2252 Arnaud Charlet <charlet@adacore.com>
2253
2254 * include/cpplib.h (cpp_comments, cpp_comment_table): New structs.
2255 (cpp_get_comments): New function.
2256 * internal.h (struct cpp_reader): Add comments field.
2257 * init.c (cpp_destroy): Free comments.
2258 * lex.c (store_comment, cpp_get_comments): New functions.
2259 (comments): New struct.
2260 (save_comment): Store comments in comments struct.
2261
c047ce93
SB
22622008-09-18 Simon Baldwin <simonb@google.com>
2263
2264 * include/cpplib.h (struct cpp_options): Add new boolean flag
2265 warn_builtin_macro_redefined.
2266 * init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
2267 * (struct builtin_operator): Split out from previous struct builtin,
2268 enhance extra const correctness.
2269 * (struct builtin_macro): Split out from previous struct builtin, add
2270 new always_warn_if_redefined flag, enhance const correctness.
2271 * (mark_named_operators): Use struct builtin_operator.
2272 * (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
2273 to builtins selectively.
2274 * macro.c (warn_of_redefinition): Return false if a builtin macro
2275 is not flagged with NODE_WARN.
2276
affa55c6
JJ
22772008-07-31 Jakub Jelinek <jakub@redhat.com>
2278
2279 PR preprocessor/36649
2280 * files.c (struct report_missing_guard_data): New type.
2281 (report_missing_guard): Put paths into an array instead of printing
2282 them right away. Return 1 rather than 0.
2283 (report_missing_guard_cmp): New function.
2284 (_cpp_report_missing_guards): Sort and print paths gathered by
2285 report_missing_guard callback.
2286
3b8f20a1
MLI
22872008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2288
2289 PR 28079
2290 * directives.c (strtolinenum): Handle overflow.
2291 (do_line): Give a warning if line number overflowed.
2292 (do_linemarker): Update call to strtolinenum.
2293
1bb64668
MLI
22942008-07-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2295
2296 * include/line-map.h (linenum_type): New typedef.
2297 (struct line_map): Use it.
2298 (SOURCE_LINE): Second arguments is a LOCATION not a LINE.
2299 (SOURCE_COLUMN): Likewise.
2300 * macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store
2301 source_location values in a variable of type linenum_type.
2302 * directives.c (struct if_stack): Use linenum_type.
2303 (strtoul_for_line): Rename as strtolinenum.
2304 (do_line): Use linenum_type.
2305 (do_linemarker): Use linenum_type and strtolinenum.
2306 (_cpp_do_file_change): Use linenum_t.
2307 * line-map.c (linemap_add): Likewise.
2308 (linemap_line_start): Likewise.
2309 * traditional.c (struct fun_macro): 'line' is a source_location.
2310 * errors.c (print_location): Use linenum_type.
2311 * directives-only.c (_cpp_preprocess_dir_only): Likewise.
2312 * internal.h (CPP_INCREMENT_LINE): Likewise.
2313 * lex.c (_cpp_skip_block_comment): Use source_location.
19a9ba64 2314
5950c3c9
BE
23152008-07-14 Ben Elliston <bje@au.ibm.com>
2316
2317 * include/cpplib.h (NODE_CONDITIONAL): New.
2318 (struct cpp_callbacks): New macro_to_expand field.
2319 (struct cpp_hashnode): Adjust size of flags and type fields.
2320 (cpp_peek_token): Prototype.
2321 * lex.c (cpp_peek_token): New function.
2322 (_cpp_temp_token): Protect pre-existing lookaheads.
2323 * macro.c (cpp_get_token): Expand any conditional macros.
2324 (_cpp_backup_tokens_direct): New.
2325 (_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
2326 (warn_of_redefinition): Silently allow redefined conditional
2327 macros.
2328 (_cpp_create_definition): Remove the conditional flag when a user
2329 defines one of the conditional macros.
2330 * internal.h (_cpp_backup_tokens_direct): New prototype.
2331
e85edc9e
AH
23322008-06-13 Andrew Haley <aph@redhat.com>
2333
2334 PR preprocessor/33305
2335 * macro.c (replace_args): Print a warning for empty macro
2336 arguments in C89 and C++.
2337
18c04407
RW
23382008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2339
2340 * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.
2341 * configure: Regenerate.
2342
2d09b640
RW
23432008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2344
2345 * Makefile.in (datarootdir): New variable.
2346
0b7c73cc
L
23472008-06-12 H.J. Lu <hongjiu.lu@intel.com>
2348
2349 PR preprocessor/36479
2350 * charset.c (cpp_interpret_string_notranslate): Also set
2351 narrow_cset_desc.width.
2352
cd985f66
JM
23532008-06-07 Joseph Myers <joseph@codesourcery.com>
2354
2355 * configure.ac (parisc*64*-*-*): Remove.
2356 * configure: Regenerate.
2357
d750887f
TT
23582008-05-30 Tom Tromey <tromey@redhat.com>
2359
2360 PR preprocessor/36320:
2361 * internal.h (_cpp_parse_expr): Update.
2362 * expr.c (_cpp_parse_expr): Add 'is_if' argument. Update error
2363 messages.
2364 * directives.c (do_if): Update.
2365 (do_elif): Require expression if processing group.
2366
c100de59
DS
23672008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
2368
2369 * include/cpplib.h (struct cpp_dir): Add new field, canonical_name.
2370
5d6342eb
TT
23712008-05-21 Tom Tromey <tromey@redhat.com>
2372
2373 PR preprocessor/27777:
2374 * lex.c (cpp_output_line_to_string): New function.
2375 * internal.h (_cpp_begin_message): Don't declare.
2376 * errors.c (_cpp_begin_message): Now static.
2377 * include/cpplib.h (cpp_output_line_to_string): Declare.
2378 * directives.c (do_diagnostic): Rewrote. Use
2379 cpp_output_line_to_string. Don't use _cpp_begin_message.
2380
dae4174e
TT
23812008-05-21 Tom Tromey <tromey@redhat.com>
2382
2383 * include/symtab.h (HT_ALLOCED): Remove.
2384 (ht_purge): Declare.
2385 * symtab.c (DELETED): New define.
2386 (ht_lookup): Update comment.
2387 (ht_lookup_with_hash): Handle deleted entries. Remove HT_ALLOCED
2388 code. Use subobject allocator for strings, if it exists.
2389 (ht_expand): Handle deleted entries.
2390 (ht_forall): Likewise.
2391 (ht_purge): New function.
2392 (ht_dump_statistics): Print deletion statistics.
2393
899015a0
TT
23942008-05-13 Tom Tromey <tromey@redhat.com>
2395
2396 PR preprocessor/22168:
2397 * include/cpplib.h (struct cpp_options) <objc>: Update
2398 documentation.
2399 * expr.c (eval_token): Warn for use of assertions.
2400 * directives.c (directive_diagnostics): Warn about extensions.
2401 (DEPRECATED): New define.
2402 (DIRECTIVE_TABLE): Use it.
2403
71c10038
TT
24042008-05-06 Tom Tromey <tromey@redhat.com>
2405
2406 PR preprocessor/35313, PR preprocessor/36088:
2407 * expr.c (optab) <QUERY, COMMA>: Set precedence to 4.
2408 (reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON.
2409
2bd0fe3d
DM
24102008-05-04 David S. Miller <davem@davemloft.net>
2411
2412 * configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
2413 * configure: Regenerate.
2414
28f68625
DF
24152008-04-22 Daniel Franke <franke.daniel@gmail.com>
2416
2417 * include/cpplib.h (cpp_define_formatted): New.
2418 * directives.c (cpp_define_formatted): New.
2419
688e7a53
TT
24202008-04-21 Tom Tromey <tromey@redhat.com>
2421
2422 PR libcpp/33415:
2423 * charset.c (_cpp_convert_input): Add buffer_start argument.
2424 Ignore UTF-8 BOM if seen.
2425 * internal.h (_cpp_convert_input): Add argument.
2426 * files.c (struct _cpp_file) <buffer_start>: New field.
2427 (destroy_cpp_file): Free buffer_start, not buffer.
2428 (_cpp_pop_file_buffer): Likewise.
2429 (read_file_guts): Update.
2430
b6baa67d
KVH
24312008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
2432
2433 * include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal.
2434 * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
2435 (struct cpp_options): Added uliterals.
2436 (cpp_interpret_string): Update prototype.
2437 (cpp_interpret_string_notranslate): Idem.
2438 * charset.c (init_iconv_desc): New width member in cset_converter.
2439 (cpp_init_iconv): Add support for char{16,32}_cset_desc.
2440 (convert_ucn): Idem.
2441 (emit_numeric_escape): Idem.
2442 (convert_hex): Idem.
2443 (convert_oct): Idem.
2444 (convert_escape): Idem.
2445 (converter_for_type): New function.
2446 (cpp_interpret_string): Use converter_for_type, support u and U prefix.
2447 (cpp_interpret_string_notranslate): Match changed prototype.
2448 (wide_str_to_charconst): Use converter_for_type.
2449 (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
2450 * directives.c (linemarker_dir): Macro U changed to UC.
2451 (parse_include): Idem.
2452 (register_pragma_1): Idem.
2453 (restore_registered_pragmas): Idem.
2454 (get__Pragma_string): Support CPP_STRING{16,32}.
2455 * expr.c (eval_token): Support CPP_CHAR{16,32}.
2456 * init.c (struct lang_flags): Added uliterals.
2457 (lang_defaults): Idem.
2458 * internal.h (struct cset_converter) <width>: New field.
2459 (struct cpp_reader) <char16_cset_desc>: Idem.
2460 (struct cpp_reader) <char32_cset_desc>: Idem.
2461 * lex.c (digraph_spellings): Macro U changed to UC.
2462 (OP, TK): Idem.
2463 (lex_string): Add support for u'...', U'...', u"..." and U"...".
2464 (_cpp_lex_direct): Idem.
2465 * macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
2466 (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
2467
deb984e6
PB
24682008-04-18 Paolo Bonzini <bonzini@gnu.org>
2469
2470 PR bootstrap/35457
2471 * aclocal.m4: Regenerate.
2472 * configure: Regenerate.
2473
bf048bea
TT
24742008-04-17 Tom Tromey <tromey@redhat.com>
2475
2476 PR libcpp/34866:
2477 * errors.c (cpp_error): Don't reference a token before the start
2478 of the current run.
2479
7f27b0f8
TT
24802008-04-16 Tom Tromey <tromey@redhat.com>
2481
2482 * Makefile.in (TAGS_SOURCES): New variable.
2483 (TAGS): New target.
2484
a1fcb9a1
KK
24852008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
2486
2487 * configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-*
2488 and shbe-*-*.
2489 * configure: Rebuilt.
2490
93d45d9e
JM
24912008-04-02 Joseph Myers <joseph@codesourcery.com>
2492
2493 * include/cpplib.h (struct cpp_callbacks): Add used_define,
2494 used_undef and before_define.
2495 (NODE_USED): Define.
2496 * directives.c (do_define, do_undef, undefine_macros, do_ifdef,
2497 do_ifndef, cpp_pop_definition): Handle new flag and use new
2498 callbacks.
2499 * expr.c (parse_defined): Handle new flag and use new callbacks.
2500 * macro.c (enter_macro_context, _cpp_free_definition): Handle new
2501 flag and use new callbacks.
2502
d4c32e1d
JJ
25032008-04-01 Jakub Jelinek <jakub@redhat.com>
2504
2505 PR pch/13675
2506 * files.c (struct _cpp_file): Remove pch field.
2507 (pch_open_file): Don't set file->pch, just file->pchname.
2508 (should_stack_file): After pfile->cb.read_pch call
2509 free pchname and clear pchname, don't close file->fd.
2510 Test file->pchname instead of file->pch. Don't close fd after cb.
2511 (_cpp_stack_include): Test file->pchname instead of file->pch.
2512
161031e3
TT
25132008-03-28 Tom Tromey <tromey@redhat.com>
2514
2515 * Makefile.in (POSTCOMPILE): New variable.
2516 (.c.o): Use it.
2517
14ccf800
TT
25182008-03-13 Tom Tromey <tromey@redhat.com>
2519
2520 PR libcpp/35322:
2521 * directives.c (destringize_and_run): Set pfile->directive.
2522
830465c6
MM
25232008-03-06 Markus Milleder <markus.milleder@generali.at>
2524
2525 PR preprocessor/35458
2526 * mkdeps.c (munge): Quote '#' with a '\'.
2527
d482a073
RW
25282008-02-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2529
2530 PR preprocessor/35379
2531 * mkdeps.c (deps_write): Ensure the first target always appears
2532 in the first column, without leading backslash newline. Avoid
2533 some more extra whitespace.
2534
185a6cc1
TS
25352008-02-25 Thiemo Seufer <ths@mips.com>
2536
d482a073 2537 * Makefile.in ($(srcdir)/config.in): Depend on configure.ac.
185a6cc1 2538
2bf41bf0
TT
25392008-02-19 Tom Tromey <tromey@redhat.com>
2540
2541 * traditional.c (lex_identifier): Use CPP_HASHNODE.
2542 * lex.c (lex_identifier): Use CPP_HASHNODE.
2543 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in
2544 do-while.
2545 * identifiers.c (alloc_node): Change return type.
2546 (_cpp_init_hashtable): Don't cast 'alloc_node'.
2547 (proxy_assertion_broken): New declaration.
2548 (cpp_forall_identifiers): Move comment.
2549 * line-map.c (linemap_add): Comment fix.
2550 (linemap_line_start): Indentation fix.
2551
765d600a
JJ
25522008-01-25 Jakub Jelinek <jakub@redhat.com>
2553
2554 PR preprocessor/34692
2555 * macro.c (collect_args): Add pragma_buff argument. Push
2556 CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather
2557 than into arguments. Reset prevent_expansion and parsing_args
2558 state at CPP_PRAGMA_EOL/CPP_EOF.
2559 (funlike_invocation_p): Add pragma_buff argument, pass it through
2560 to collect_args.
2561 (enter_macro_context): Add result argument. Adjust
2562 funlike_invocation_p caller. Emit all deferred pragma tokens
2563 gathered during collect_args before the expansion, add a padding
2564 token. Return 2 instead of 1 if any pragma tokens were prepended.
2565 (cpp_get_token): If enter_macro_context returns 2, don't return
2566 a padding token, instead cycle to grab CPP_PRAGMA token.
2567 * directives.c (_cpp_handle_directive): If was_parsing_args
2568 in deferred pragma, leave parsing_args and prevent_expansion as is.
2569
ec46053b
TT
25702008-01-22 Tom Tromey <tromey@redhat.com>
2571
765d600a 2572 PR c++/34859
ec46053b
TT
2573 * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and
2574 __STDC_CONSTANT_MACROS.
2575
681c6ab0
FF
25762008-01-07 Fred Fish <fnf@specifix.com>
2577
765d600a 2578 PR preprocessor/30363
681c6ab0 2579 * traditional.c (replace_args_and_push): Add local variable
19a9ba64 2580 cxtquote, calculate the replacement text size assuming a
681c6ab0
FF
2581 worst case of every input character quoted with backslash,
2582 and properly handle output quoting of quote characters in
2583 actual arguments used in function-like macros.
2584
33ae4837
TT
25852008-01-03 Tom Tromey <tromey@redhat.com>
2586
765d600a 2587 PR preprocessor/34602
33ae4837
TT
2588 * directives.c (do_line): Don't try to spell EOF token.
2589 (do_linemarker): Add comment.
2590
675575f5
DD
25912007-12-11 DJ Delorie <dj@redhat.com>
2592
2593 * charset.c (convert_using_iconv): Close out any shift states,
2594 returning to the initial state.
2595
97f6bd40
TT
25962007-12-06 Tom Tromey <tromey@redhat.com>
2597
765d600a 2598 PR c/29172
97f6bd40
TT
2599 * internal.h (struct cpp_reader) <file_hash_entries>: Changed
2600 type.
2601 <file_hash_entries_allocated, file_hash_entries_used>: Removed.
2602 * files.c (FILE_HASH_POOL_SIZE): New macro.
2603 (struct file_hash_entry_pool): New.
2604 (destroy_all_cpp_files): New function.
2605 (allocate_file_hash_entries): Allocate a file_hash_entry_pool.
2606 (new_file_hash_entry): Update.
2607 (free_file_hash_entries): New function.
2608 (_cpp_cleanup_files): Call free_file_hash_entries and
2609 destroy_all_cpp_files.
2610 (cpp_clear_file_cache): New function.
2611 * include/cpplib.h (cpp_clear_file_cache): Declare.
2612
d56a25e1
TT
26132007-12-03 Tom Tromey <tromey@redhat.com>
2614
765d600a 2615 PR preprocessor/34288
d56a25e1
TT
2616 * configure.ac, config.in: Rebuilt.
2617 * configure.ac: Check for ssize_t.
2618
607f74e9
TT
26192007-11-30 Tom Tromey <tromey@redhat.com>
2620
765d600a 2621 PR preprocessor/32868
607f74e9
TT
2622 * macro.c (_cpp_create_definition): Special case
2623 __STDC_FORMAT_MACROS.
2624
b0f4807f
MM
26252007-11-16 Michael Matz <matz@suse.de>
2626
2627 * files.c (search_path_head): Fix check for absolute paths.
2628
f1e20710
TT
26292007-11-11 Tom Tromey <tromey@redhat.com>
2630
765d600a 2631 PR c++/17557
f1e20710
TT
2632 * include/cpplib.h (cpp_included_before): Declare.
2633 * files.c (struct file_hash_entry) <location>: New field.
2634 (_cpp_find_file): Initialize new field.
2635 (make_cpp_dir): Likewise.
2636 (cpp_included_before): New function.
2637
f373b44d
TT
26382007-11-01 Tom Tromey <tromey@redhat.com>
2639
765d600a 2640 PR preprocessor/30805
f373b44d
TT
2641 * macro.c (paste_tokens): Handle padding token.
2642 (paste_tokens): Don't abort unless padding has PASTE_LEFT flag.
2643
5b9a40df
TT
26442007-10-31 Tom Tromey <tromey@redhat.com>
2645
765d600a 2646 PR preprocessor/30786
5b9a40df
TT
2647 * macro.c (builtin_macro): Return result of _cpp_do__Pragma.
2648 * directives.c (_cpp_do__Pragma): Return error status.
2649 * internal.h (_cpp_do__Pragma): Update.
2650 * directives.c (get__Pragma_string): Back up if EOF seen.
2651
5ffeb913
TT
26522007-09-06 Tom Tromey <tromey@redhat.com>
2653
2654 * internal.h (struct cpp_reader) <invocation_location>: New
2655 field.
2656 (struct cpp_reader) <set_invocation_location>: Likewise.
2657 * init.c (cpp_set_line_map): New function.
2658 * line-map.c (linemap_add): Use linemap's allocator.
2659 * include/line-map.h (GTY): Define.
2660 (line_map_realloc): New typedef.
2661 (struct line_map): Mark with GTY.
2662 (struct line_maps): Likewise.
2663 (struct line_maps) <maps>: Likewise.
2664 (struct line_maps) <reallocator>: New field.
2665 * include/symtab.h (GTY): Conditionally define.
2666 * include/cpplib.h (cpp_set_line_map): Declare.
2667 (cpp_get_token_with_location): Declare.
2668 * macro.c (cpp_get_token): Set invocation_location on the reader.
2669 (cpp_get_token_with_location): New function.
2670
ac6b1c67
CF
26712007-08-30 Chao-ying Fu <fu@mips.com>
2672
2673 * expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur,
2674 ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk.
2675 (cpp_classify_number): Support decimal fixed-point constants without
2676 exponents.
2677 Warn about fixed-point constants when -pedantic.
2678 * include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change
2679 comments to support fixed-point values.
2680 (CPP_N_FRACT, CPP_N_ACCUM): Define.
2681
cda5e672
TT
26822007-08-18 Tom Tromey <tromey@redhat.com>
2683
765d600a 2684 PR preprocessor/32974
cda5e672
TT
2685 * directives.c (parse_include): Don't check for EOL when
2686 processing #pragma dependency.
2687
ccfc4c91
OW
26882007-07-30 Ollie Wild <aaw@google.com>
2689
2690 * directives-only.c: New file.
2691 * internal.h (struct _cpp_dir_only_callbacks): New.
2692 (_cpp_preprocess_dir_only): New function.
2693 * directives.c (_cpp_handle_directive): Check directives_only before
2694 disabling execution of indented directives.
2695 * files.c (_cpp_stack_file): Add directives_only check.
2696 * include/cpplib.h (struct cpp_options): Add directives_only.
2697 (cpp_init_special_builtins): New function.
2698 * init.c (cpp_init_special_builtins): New function.
2699 (cpp_init_builtins): Move builtin_array initialization to
2700 cpp_init_special_builtins.
2701 (post_options): Check directives_only before setting
2702 pfile->state.prevent_expansion = 1.
2703 * macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
2704 is expanded inside a directive while -fdirectives-only is enabled.
2705 * Makefile.in (libcpp_a_OBJS): Add directives-only.o.
2706 (libcpp_a_SOURCES): Add directives-only.c.
2707
a206413a
UB
27082007-07-04 Uros Bizjak <ubizjak@gmail.com>
2709
2710 * traditional.c (_cpp_scan_out_logical_line): Initialize
2711 fmacro.args, fmacro.node, fmacro.offset, fmacro.line and
2712 fmacro.args to prevent 'may be used uninitialized' warning.
2713
c77cd3d1
UB
27142007-07-03 Uros Bizjak <ubizjak@gmail.com>
2715
2716 * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q):
2717 Add new constants.
2718 * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q'
2719 suffixes. Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q
2720 for 'q' or 'Q' suffixes.
2721
66938a1d
DS
27222007-06-17 Danny Smith <dannysmith@users.sourceforge.net
2723
e1311401 2724 * files.c (open_file): Correct typo.
66938a1d 2725
71995ede
VP
27262007-06-16 Vladimir Prus <vladimir@codesourcery.com>
2727
e1311401 2728 * files.c (open_file): Prevent the call
71995ede
VP
2729 for stat from overwriting errno.
2730
84152c25
VP
27312007-06-09 Vladimir Prus <vladimir@codesourcery.com>
2732
e1311401 2733 * files.c (open_file): Account for the
19a9ba64
AM
2734 fact that on windows, opening a directory gives
2735 EACCES.
84152c25 2736
f7fd775f
JW
27372007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
2738
2739 PR preprocessor/23479
2740 * expr.c (cpp_classify_number): Implement 0b-prefixed binary
2741 integer constants.
2742 (append_digit): Likewise.
2743 * include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed
2744 binary integer constants.
2745
ed0e74e0
DK
27462007-05-31 Dave Korn <dave.korn@artimi.com>
2747
2748 PR preprocessor/14331
2749 * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF.
2750
a702045a
OW
27512007-05-24 Ollie Wild <aaw@google.com>
2752
2753 * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER.
2754 * pch.c (cpp_write_pch_deps): Save __COUNTER__ state.
2755 (cpp_write_pch_state): Save __COUNTER__ state.
2756 (cpp_valid_state): Check valid __COUNTER__ state.
2757 (cpp_read_state): Read new __COUNTER__ state.
2758 * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator.
2759 * init.c (builtin_array): Add __COUNTER__/BT_COUNTER.
2760 * internal.h (struct cpp_reader): Add counter member.
2761
126e073b
SM
27622007-05-23 Simon Martin <simartin@users.sourceforge.net>
2763
2764 PR preprocessor/20077
2765 * macro.c (create_iso_definition): Fixed the method to determine
2766 whether the token-pasting operator appears at the beginning or the end
2767 of a macro.
2768
0b4cafec
ILT
27692007-05-21 Ian Lance Taylor <iant@google.com>
2770
2771 * internal.h (struct cpp_reader): Add new fields:
2772 nonexistent_file_hash and nonexistent_file_ob.
2773 * files.c: Include "obstack.h".
2774 (find_file_in_dir): Before trying to open the file, look up the
2775 path name in the hash table of nonexistent files. After failing
2776 to open the file, add the path name to the hash table.
2777 (_cpp_find_file): Cache the results of looking up the file name
2778 starting with the quote and bracket chain heads, if we can.
2779 (nonexistent_file_hash_eq): New static function.
2780 (_cpp_init_files): Initialize pfile->nonexistent_file_hash and
2781 pfile->nonexistent_file_ob.
2782 (_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
2783 pfile->nonexistent_file_ob.
2784
30e04921
JJ
27852007-05-14 Janis Johnson <janis187@us.ibm.com>
2786
19a9ba64 2787 * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic.
5a6bb57e 2788
30e04921
JJ
2789 PR c/31924
2790 * expr.c (interpret_float_suffix): Check for invalid suffix.
2791
22a8a52d
EC
27922007-05-02 Eric Christopher <echristo@apple.com>
2793
2794 * expr.c (num_div_op): Don't overflow if the result is
2795 zero.
2796
fca35e1b
TT
27972007-05-02 Tom Tromey <tromey@redhat.com>
2798
765d600a 2799 PR preprocessor/28709
fca35e1b
TT
2800 * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
2801
4cd97075
MM
28022007-03-30 Michael Meissner <michael.meissner@amd.com>
2803
2804 * directives.c (lex_macro_node_from_str): Fix alloca call to be
2805 type correct.
2806
121de39f
RH
28072007-03-30 Richard Henderson <rth@redhat.com>
2808
2809 * directives.c (lex_macro_node_from_str): New.
2810 (cpp_push_definition, cpp_pop_definition): New.
2811 * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
2812
4fcb360b
BM
28132007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2814
2815 * Makefile.in: Add dummy install-pdf target.
2816
67e64439
TT
28172007-01-30 Tom Tromey <tromey@redhat.com>
2818
765d600a 2819 PR preprocessor/30468
67e64439
TT
2820 * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
2821 './'.
2822
ee380365
TT
28232007-01-30 Tom Tromey <tromey@redhat.com>
2824
765d600a 2825 PR preprocessor/29966
ee380365
TT
2826 * macro.c (lex_expansion_token): Save and restore cpp_reader's
2827 cur_token.
2828 (_cpp_create_definition): Don't restore cur_token here.
2829 * lex.c (_cpp_lex_token): Added assertion.
2830
024abeb3
TT
28312007-01-27 Tom Tromey <tromey@redhat.com>
2832
2833 * configure: Rebuilt.
2834
ee1c2a10
TT
28352007-01-12 Tom Tromey <tromey@redhat.com>
2836
765d600a 2837 PR preprocessor/28227
ee1c2a10
TT
2838 * directives.c (lex_macro_node): Added 'is_def_or_undef'
2839 argument.
2840 (do_define): Update.
2841 (do_undef): Update.
2842 (do_ifdef): Update.
2843 (do_ifndef): Update.
2844
67214c16
PB
28452007-01-11 Paolo Bonzini <bonzini@gnu.org>
2846
2847 * configure: Regenerate.
2848
1aa6ca40
PB
28492007-01-11 Paolo Bonzini <bonzini@gnu.org>
2850
2851 * configure: Regenerate.
2852
705e2d28
TT
28532007-01-04 Tom Tromey <tromey@redhat.com>
2854
765d600a 2855 PR preprocessor/28165
705e2d28
TT
2856 * internal.h (cpp_in_primary_file): New function.
2857 * directives.c (do_include_next): Use cpp_in_primary_file.
2858 (do_pragma_once): Likewise.
2859 (do_pragma_system_header): Likewise.
2860
7af45bd4
ILT
28612006-12-29 Ian Lance Taylor <iant@google.com>
2862
2863 * lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't
2864 look backward at the end of the line unless we saw a backslash.
2865
9d30f270
JJ
28662006-12-29 Jakub Jelinek <jakub@redhat.com>
2867
2868 PR preprocessor/29612
2869 * directives.c (do_linemarker): Set pfile->buffer->sysp always, not
2870 only when new_sysp is non-zero.
2871
30b0edc0
TT
28722006-12-28 Tom Tromey <tromey@redhat.com>
2873
765d600a 2874 PR preprocessor/30001
30b0edc0
TT
2875 * charset.c (_cpp_convert_input): Check that to.len is greater
2876 than zero.
2877
85d9c13c
TS
28782006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2879
2880 * configure.ac (need_64bit_hwint): Need 64bit hwint for SPU.
83cc06b2 2881 * configure: Rebuilt.
85d9c13c 2882
dfafdaa6
DG
28832006-11-01 Douglas Gregor <doug.gregor@gmail.com>
2884
2885 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
2886 for experimental C++0x mode.
2887 * init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
2888 adopted the preprocessor changes introduced in C99.
2889
0f45f0f5
JM
28902006-10-29 Joseph Myers <joseph@codesourcery.com>
2891
2892 * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
2893 depending on --enable-targets=all.
2894 * configure: Regenerate.
2895
de000d22
JJ
28962006-10-12 Jakub Jelinek <jakub@redhat.com>
2897
2898 PR preprocessor/28709
2899 * macro.c (paste_tokens): Do error reporting here, use BUF with the
2900 spelled LHS token as opposed to spelling it again.
2901 (paste_all_tokens): Don't report errors here, just break on failure.
2902
b5422ad7
BM
29032006-10-10 Brooks Moses <bmoses@stanford.edu>
2904
2905 * Makefile.in: Added empty "pdf" target.
2906
aaf50ff2
GK
29072006-09-22 Geoffrey Keating <geoffk@apple.com>
2908
2909 * configure.ac: Make need_64_bit_hwint case for x86-darwin
2910 match exactly the glob in gcc/config.gcc.
2911 * configure: Regenerate.
2912
c663e301
JM
29132006-09-13 Joseph S. Myers <joseph@codesourcery.com>
2914
2915 PR c/28768
2916 PR preprocessor/14634
2917 * lex.c (lex_string): Pedwarn for unterminated literals.
2918
f7288899
EC
29192006-09-08 Eric Christopher <echristo@apple.com>
2920
2921 * configure.ac: Add 64-bit HWI support for i?86-darwin.
2922
b52dbbf8
SE
29232006-08-14 Steve Ellcey <sje@cup.hp.com>
2924
2925 PR c++/28288
2926 PR c++/14556
2927 * include/cpplib.h: Remove <?, >?, <?=, and >?= tokens.
2928 (CPP_LAST_EQ): Change.
2929 (CPP_LAST_PUNCTUATOR): Change.
2930 * expr.c (cpp_operator): Remove MIN and MAX.
2931 (reduce): Remove CPP_MIN and CPP_MAX.
2932 (num_binary_op): Ditto.
2933 * lex.c (_cpp_lex_direct): Ditto.
2934 (cpp_avoid_paste): Remove ? as legal symbol after > or <.
2935
1c90c6f9
JJ
29362006-06-09 Jakub Jelinek <jakub@redhat.com>
2937
2938 PR preprocessor/27746
2939 * directives.c (do_pragma): Handle pragma with valid namespace
2940 and invalid name coming from macro expansion.
2941 * directives.c (destringize_and_run): Initialize next field in
2942 context.
2943
2944 PR c/27747
2945 PR c++/27748
2946 * directives.c (destringize_and_run): Set NO_EXPAND on the
2947 tokens.
2948
2949 * macro.c (_cpp_backup_tokens): Fix comment typo.
2950
5c3c3683
DJ
29512006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
2952
2953 * Makefile.in (CATALOGS): Add po/ prefix.
2954 * configure: Regenerated.
2955
b2bd74bc
CD
29562006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2957
2958 * Makefile.in: Add install-html target. Add install-html to .PHONY
2959
be8ac3e2
GZ
29602006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
2961
2962 * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
2963 * files.c (_cpp_get_file_stat): New function.
2964 * include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
2965 * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
2966 * internal.h (_cpp_get_file_stat): Prototype.
2967 (struct cpp_buffer): Add timestamp.
2968
83900997
JJ
29692006-01-23 Jakub Jelinek <jakub@redhat.com>
2970
2971 PR preprocessor/25717
2972 * init.c (cpp_init_builtins): If __STDC__ will not change value
2973 between system headers and other sources, define it as a normal
2974 macro rather than a builtin.
2975 * macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
2976 cpp_in_system_header condition.
2977
29782006-01-05 Paolo Bonzini <bonzini@gnu.org>
9220c30c
PB
2979
2980 * Makefile.in: Use -MMD instead of -MD.
2981
bc4071dd
RH
29822006-01-04 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
2983 Richard Henderson <rth@redhat.com>
2984
2985 Merge from gomp branch:
2986 * directives.c (struct pragma_entry): Add is_deferred. Add ident
2987 entry to value union.
2988 (end_directive): Don't eat the line if in_deferred_pragma.
2989 (run_directive): Remove pragma hacks.
2990 (insert_pragma_entry): Remove.
2991 (new_pragma_entry): New.
2992 (register_pragma_1): Split out of register_pragma. Only handle
2993 the lookup tree and return the new entry.
2994 (cpp_register_pragma): Fill in the pragma entry here.
2995 (cpp_register_deferred_pragma): New.
2996 (register_pragma_internal): New.
2997 (_cpp_init_internal_pragmas): Use register_pragma_internal.
2998 (do_pragma): Allow pragma expansion after namespace. For deferred
2999 pragmas, don't slurp the line into a string.
3000 (destringize_and_run): Save tokens for deferred pragmas.
3001 (cpp_handle_deferred_pragma): Remove.
3002 * macro.c (builtin_macro): Remove pragma token hack.
3003 (_cpp_push_token_context): Rename from push_token_context and export.
3004 * internal.h (struct lexer_state): Add pragma_allow_expansion.
3005 (_cpp_push_token_context): Declare.
3006 * lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
3007 a token. Update the line number correctly if so.
3008 (_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
3009 (cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
3010 * include/cpplib.h (PRAGMA_EOL): New.
3011 (CPP_TOKEN_FLD_PRAGMA): New.
3012 (struct cpp_token): Add val.pragma.
3013 (struct cpp_options): Remove defer_pragmas.
3014 (cpp_handle_deferred_pragma): Remove.
3015 (cpp_register_deferred_pragma): Declare.
3016
d09e893f
JJ
30172006-01-01 Jakub Jelinek <jakub@redhat.com>
3018
3019 PR c++/25294
3020 * directives.c (do_pragma): If pragma line ends with multi-line
3021 block comment, end the saved deferred pragma string before that
3022 comment. Handle embedded '\0' chars on the pragma line.
3023
ab84748a
VR
30242005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3025
3026 PR c++/23333
3027 * include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
3028
ad6ed77e
JG
30292005-12-07 Jon Grimm <jgrimm2@us.ibm.com>
3030 Ben Elliston <bje@au.ibm.com>
3031
3032 * include/cpplib.h (CPP_N_DFLOAT): New.
3033 * expr.c (interpret_float_suffix): Identify df, dd, and dl
3034 suffixes as decimal floating point constants.
3035 (cpp_classify_number): Disallow hexadecimal DFP constants.
3036
ba096620 30372005-11-14 Gerald Pfeifer <gerald@pfeifer.com>
bc4071dd 3038 Ian Lance Taylor <ian@airs.com>
ba096620
GP
3039
3040 * include/cpplib.h (struct cpp_callbacks): Annotate error with
3041 ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
3042
456b8ce5
UB
30432005-11-09 Per Bothner <per@bothner.com>
3044 Uros Bizjak <uros@kss-loka.si>
f7288899 3045
456b8ce5
UB
3046 PR c/24101
3047 * init.c (read_original_filename): Temporarily set
3048 state.in_directive before calling _cpp_lex_direct for
3049 CPP_HASH tokens.
3050
5571f74f
JW
30512005-11-03 James E Wilson <wilson@specifix.com>
3052
3053 PR preprocessor/24202
3054 * files.c (_cpp_pop_file_buffer): Set buffer_valid to false.
3055
a63607ed
JM
30562005-11-04 Joseph S. Myers <joseph@codesourcery.com>
3057
3058 * include/cpplib.h (struct cpp_callbacks): Make error take
3059 va_list* parameter.
3060 * errors.c (cpp_error): Update call to callback.
3061
651ed942
AP
30622005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
3063
3064 PR preprocessor/22042
3065 * macro.c (_cpp_builtin_macro_text): Lower the needed max
3066 buffer size.
3067 (cpp_quote_string): Don't octalify non printable
3068 charactors.
3069
178b58b5
JM
30702005-11-03 Joseph S. Myers <joseph@codesourcery.com>
3071
3072 PR c++/17964
3073 * include/cpplib.h (struct cpp_options): Add client_diagnostic.
3074 (struct cpp_callbacks): Add error.
3075 * errors.c (cpp_error): If client_diagnostic, use error callback.
3076 * charset.c (convert_escape): Don't use %03o in diagnostic.
3077
3ee5ed11 30782005-10-21 James E Wilson <wilson@specifix.com>
6568f34b
JW
3079
3080 PR preprocessor/15220
3081 * files.c (_cpp_find_file): New parameter angle_brackets. Fix all
3082 callers. Pass to open_file_failed.
3083 (open_file_failed): New parameter angle_brackets. Fix all callers.
3084 Use in print_dep assignment.
3085 * init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
3086 * internal.h (_cpp_find_file): Add new parm to declaration.
f7288899 3087
077fc835
KH
30882005-10-08 Kazu Hirata <kazu@codesourcery.com>
3089
3090 * configure.ac: Require 64-bit int for arm*-*-*eabi*.
3091 * configure: Regenerate.
3092
cbc43ae0
ILT
30932005-10-04 Ian Lance Taylor <ian@airs.com>
3094
3095 PR preprocessor/13726
3096 * directives.c (check_eol_return_comments): New static function.
3097 (parse_include): Add buf parameter. Change all callers.
3098 (do_include_common): If not discard comments, turn on
3099 save_comments. Pass collected comments to include callback.
3100 * include/cpplib.h (struct cpp_callbacks): Add new parameter to
3101 include callback: cpp_token list.
3102
af15a2fe
JM
31032005-09-20 Joseph S. Myers <joseph@codesourcery.com>
3104
3105 * include/cpplib.h (struct cpp_options): Add extended_identifiers.
3106 * init.c (struct lang_flags, lang_defaults): Add
3107 extended_identifiers.
3108 (cpp_set_lang): Use it.
3109 * lex.c (forms_identifier_p): Check extended_identifiers.
3110
f5eab47e
JJ
31112005-08-30 Jakub Jelinek <jakub@redhat.com>
3112
3113 PR preprocessor/20348
3114 PR preprocessor/20356
3115 * files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and
3116 2004-06-05 changes.
3117
467129e6
KG
31182005-07-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3119
3120 * configure.ac (ACX_PROG_CC_WARNING_OPTS): add
3121 -Wmissing-format-attribute.
3122
3123 * configure: Regenerate.
3124
200031d1
KC
31252005-06-29 Kelley Cook <kcook@gcc.gnu.org>
3126
3127 * all files: Update FSF address in copyright headers.
3128 * makeucnid.c (write_copyright): Update outputted FSF address.
3129
f610dd5f
ZW
31302005-06-13 Zack Weinberg <zack@codesourcery.com>
3131
3132 * configure.ac: Invoke ZW_CREATE_DEPDIR and
3133 ZW_PROG_COMPILER_DEPENDENCIES.
3134 * aclocal.m4, configure: Regenerate.
3135 * Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE):
3136 New variables.
3137 (distclean): Clean up $(DEPDIR) and its contents.
3138 (.c.o): Use $(COMPILE).
3139 Include $(DEPDIR)/*.Po for most object->header dependencies.
3140
c3f829c1
GDR
31412005-05-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
3142
3143 * configure.ac: Check declarations for asprintf and vasprintf.
3144 * config.in: Regenerate.
3145 * configure: Likewise.
3146
3147 * charset.c (conversion_loop): Use XRESIZEVEC.
3148 (convert_no_conversion): Likewise.
3149 (convert_using_iconv): Likewise.
3150 (init_iconv_desc): Cast return value of alloca.
3151 (cpp_host_to_exec_charset): Use XNEWVEC.
3152 (emit_numeric_escape): Use XRESIZEVEC.
3153 (cpp_interpret_string): Use XNEWVEC.
3154 (cpp_interpret_string): Use XRESIZEVEC.
3155 (_cpp_interpret_identifier): Cast return value of alloca.
3156 (_cpp_convert_input): Use XNEWVEC and XRESIZEVEC.
3157 * directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC.
3158 (parse_include): Use XNEWVEC.
3159 (insert_pragma_entry): Rename local variable "new" to
f610dd5f 3160 "new_entry".
c3f829c1
GDR
3161 (save_registered_pragmas): Cast return value of xmemdup.
3162 (destringize_and_run): Same for alloca.
3163 (parse_assertion): Likewise.
3164 (do_assert): Cast allocated storage to proper type.
3165 (cpp_define): Likewise.
3166 (_cpp_define_builtin): Likewise.
3167 (cpp_undef): Likewise.
3168 (handle_assertion): Likewise.
3169 (cpp_push_buffer): Rename local variable "new" to "new_buffer".
3170 * expr.c (CPP_UPLUS): Cast value to type cpp_ttype.
3171 (CPP_UMINUS): Likewise.
3172 (struct cpp_operator): Rename from struct operator.
3173 (_cpp_expand_op_stack): Use XRESIZEVEC.
3174 * files.c (pch_open_file): Use XNEWVEC.
3175 (pch_open_file): Use XRESIZEVEC.
3176 (read_file_guts): Use XNEWVEC and XRESIZEVEC.
3177 (dir_name_of_file): Use XNEWVEC.
3178 (make_cpp_file): Use XCNEW.
3179 (make_cpp_dir): Likewise.
3180 (allocate_file_hash_entries): USE XNEWVEC.
3181 (cpp_included): Cast return value of htab_find_with_hash.
3182 (append_file_to_dir): Use XNEWVEC.
3183 (read_filename_string): Likewise. Use XRESIZEVEC too.
3184 (read_name_map): Cast return value of alloca. Use XRESIZEVEC.
3185 (remap_filename): Use XNEWVEC.
3186 (struct pchf_entry): Move definition out of struct pchf_data.
3187 (_cpp_save_file_entries): Use XCNEWVAR.
3188 (_cpp_read_file_entries): Use XNEWVAR.
3189 * identifiers.c (alloc_node): Use XOBNEW.
3190 * init.c (cpp_create_reader): Use XCNEW.
3191 (cpp_init_builtins): Cast of b->value to enum builtin_type.
3192 (read_original_directory): Cast return value of alloca.
3193 * lex.c (add_line_note): Use XRESIZEVEC.
3194 (warn_about_normalization): Use XNEWVEC.
3195 (_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype).
3196 (new_buff): Use XNEWVEC.
3197 * line-map.c (linemap_add): Use XRESIZEVEC.
3198 * macro.c (builtin_macro): Cast return value of alloca.
3199 (paste_tokens): Likewise.
3200 (expand_arg): Use XNEWVEC and XRESIZEVEC.
3201 (_cpp_save_parameter): Use XRESIZEVEC.
3202 (create_iso_definition): Cast allocated storage to proper type.
3203 (_cpp_create_definition): Likewise.
3204 (cpp_macro_definition): Use XRESIZEVEC.
3205 * makedepend.c (add_clm): Use XNEW.
3206 (add_dir): Likewise.
3207 * mkdeps.c (munge): Use XNEWVEC.
3208 (deps_init): Use XCNEW.
3209 (deps_add_target): Use XRESIZEVEC.
3210 (deps_add_default_target): Cast return value of alloca.
3211 (deps_add_dep): Use XRESIZEVEC.
3212 (deps_add_vpath): Likewise. Use XNEWVEC too.
3213 (deps_restore): Likewise.
3214 * pch.c (save_idents): Use XNEW and XNEWVEC.
3215 (cpp_save_state): Use XNEW.
3216 (count_defs): Cast return value of htab_find.
3217 (write_defs): Likewise.
3218 (cpp_write_pch_deps): Use XNEWVEC.
3219 (collect_ht_nodes): Use XRESIZEVEC.
3220 (cpp_valid_state): Use XNEWVEC.
3221 (save_macros): Use XRESIZEVEC. Cast return value of xmemdup.
3222 * symtab.c (ht_create): Use XCNEW.
3223 (ht_lookup_with_hash): Cast return value of obstack_copy0.
3224 (ht_expand): Use XCNEWVEC.
3225 * system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus.
3226 (bool): Do not define if __cplusplus.
3227
1ed17cd5
ZW
32282005-05-12 Zack Weinberg <zack@codesourcery.com>
3229
3230 * directives.c (#sccs table entry): Mark IN_I, consistent with #ident.
3231 (do_sccs): Delete function definition, #define to do_ident.
3232 (do_ident): Don't hardwire directive name.
3233
5a8c20ce
RK
32342005-05-12 Ryota Kunisawa <kunisawa@access.co.jp>
3235
3236 PR bootstrap/21230
3237 * configure: Regenerate.
3238
473c5bc9
AP
32392005-04-27 Andris Pavenis <pavenis@latnet.lv>
3240
3241 * files.c: Include io.h for DJGPP to get prototype of setmode.
3242
c1fc5047
PB
32432005-04-19 Per Bothner <per@bothner.com>
3244
3245 PR preprocessor/20907
3246 * line-map.c (linemap_line_start): Fix bug when we need to increse
3247 column_bits but can re-use the current line_map.
3248
042630ad
KG
32492005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3250
3251 * system.h (fopen, fdopen, freopen): Define these to the unlocked
3252 libiberty functions.
3253
0d667716
KG
32542005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3255
3256 * configure.ac (libcpp_UNLOCKED_FUNCS): New.
3257 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
3258 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
3259 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
3260 _unlocked function.
3261 (fwrite_unlocked): Fix prototype.
1ed17cd5 3262
0d667716
KG
3263 * configure, config.in: Regenerate.
3264
cae064e7
JJ
32652005-04-05 Jakub Jelinek <jakub@redhat.com>
3266
3267 PR preprocessor/19475
3268 * macro.c (create_iso_definition): For < ISO C99, don't
3269 pedwarn if there is no whitespace between macro name and its
3270 replacement, but the replacement starts with a basic character
3271 set character.
3272
cbada204
AJ
32732005-03-28 Andreas Jaeger <aj@suse.de>
3274
3275 * lex.c (warn_about_normalization): Cast field width to int to
3276 avoid warning.
3277
f42eccdb
JM
32782005-03-19 Joseph S. Myers <joseph@codesourcery.com>
3279
3280 * configure.ac: Consistently use solaris2.1[0-9]* instead of
3281 solaris2.1[0-9].
3282 * configure: Regenerate.
3283
c79e602b
GK
32842005-03-15 Geoffrey Keating <geoffk@apple.com>
3285
3286 * charset.c (_cpp_valid_ucn): In identifiers, reject a partial
3287 UCN rather than printing an error.
3288
50668cf6
GK
32892005-03-14 Geoffrey Keating <geoffk@apple.com>
3290
6baba9bb
GK
3291 * lex.c (forms_identifier_p): Disable UCNs in C89 mode.
3292
32932005-03-14 Geoffrey Keating <geoffk@apple.com>
1ed17cd5 3294
50668cf6
GK
3295 * init.c (cpp_create_reader): Default warn_normalize to normalized_C.
3296 * charset.c: Update for new format of ucnid.h.
3297 (ucn_valid_in_identifier): Update for new format of ucnid.h.
3298 Add NST parameter, and update it; update callers.
3299 (cpp_valid_ucn): Add NST parameter, update callers. Replace abort
3300 with cpp_error.
3301 (convert_ucn): Pass normalize_state to cpp_valid_ucn.
3302 * internal.h (struct normalize_state): New.
3303 (INITIAL_NORMALIZE_STATE): New.
3304 (NORMALIZE_STATE_RESULT): New.
3305 (NORMALIZE_STATE_UPDATE_IDNUM): New.
3306 (_cpp_valid_ucn): New.
3307 * lex.c (warn_about_normalization): New.
3308 (forms_identifier_p): Add normalize_state parameter, update callers.
3309 (lex_identifier): Add normalize_state parameter, update callers. Keep
3310 the state current.
3311 (lex_number): Likewise.
3312 (_cpp_lex_direct): Pass normalize_state to subroutines. Check
3313 it with warn_about_normalization.
3314 * makeucnid.c: New.
3315 * ucnid.h: Replace.
3316 * ucnid.pl: Remove.
3317 * ucnid.tab: Make appropriate for input to makeucnid.c. Remove
3318 comments about obsolete version of C++.
3319 * include/cpplib.h (enum cpp_normalize_level): New.
3320 (struct cpp_options): Add warn_normalize field.
3321
47e20491
GK
33222005-03-11 Geoffrey Keating <geoffk@apple.com>
3323
3324 * directives.c (glue_header_name): Update call to cpp_spell_token.
3325 * internal.h (_cpp_interpret_identifier): New.
3326 * charset.c (_cpp_interpret_identifier): New.
3327 (_cpp_valid_ucn): Allow UCN version of '$'.
3328 * lex.c (lex_identifier): Add extra parameter to indicate if initial
3329 character was '$' or '\'. Support identifiers with UCNs.
3330 (forms_identifier_p): Allow UCNs.
3331 (_cpp_lex_direct): Pass extra parameter to lex_identifier.
3332 (utf8_to_ucn): New.
3333 (cpp_spell_token): Add FORSTRING parameter. Use it.
3334 (cpp_token_as_text): Update call to cpp_spell_token.
3335 (cpp_output_token): Write UCNs back out.
3336 (stringify_arg): Update call to cpp_spell_token.
3337 (paste_tokens): Likewise.
3338 (cpp_macro_definition): Likewise.
3339 * macro.c (stringify_arg): Likewise.
3340 (paste_tokens): Likewise.
3341 (cpp_macro_definition): Likewise.
3342 * include/cpplib.h: Add parameter to cpp_spell_token.
3343
73096711
JJ
33442005-03-04 Jakub Jelinek <jakub@redhat.com>
3345
3346 PR bootstrap/20282
3347 PR bootstrap/20305
3348 * macro.c (replace_args, cpp_get_token): Copy whole
3349 cpp_token_u instead of just cpp_string field from it.
3350
2203a881
DP
33512005-02-28 Devang Patel <dpatel@apple.com>
3352
3353 * directives.c (do_line): Save sysp early before line table is
3354 realloc'ed.
1ed17cd5 3355
c5ff069d
ZW
33562005-02-20 Zack Weinberg <zack@codesourcery.com>
3357
3358 PR 18785
3359 * charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
3360 (cpp_host_to_exec_charset): New function.
3361 * include/cpplib.h: Declare cpp_host_to_exec_charset.
3362
04c90eea
DP
33632005-02-19 Devang Patel <dpatel@apple.com>
3364
3365 * charset.c (_cpp_convert_input): Check '\r' before inserting
3366 '\n' at the end.
c5ff069d 3367
6da55c00
EC
33682005-02-15 Eric Christopher <echristo@redhat.com>
3369
3370 PR preprocessor/19077
3371 * macro.c (cpp_macro_definition): Move handling of whitespace
3372 to PREV_WHITE conditional. Remove overloading of len
3373 variable.
3374
31c3e631
KH
33752005-02-14 Kazu Hirata <kazu@cs.umass.edu>
3376
3377 * directives.c, files.c, init.c, internal.h, macro.c, pch.c,
3378 traditional.c: Update copyright.
3379
be0f1e54
PB
33802005-02-14 Paolo Bonzini <bonzini@gnu.org>
3381
3382 PR bootstrap/19818
3383 * configure.ac: Check for declaration of basename and getopt.
3384 * config.in: Regenerate.
3385 * configure: Regenerate.
3386 * internal.h (ustrcspn): New.
3387 * macro.c (create_iso_definition): Fix allocation of memory.
3388 (padding_token): Add cast to remove const-ness.
3389 * pch.c (cpp_read_state): Use ustrcspn.
3390
ecddfb39
MS
33912005-02-08 Mike Stump <mrs@apple.com>
3392
3393 * files.c (pchf_adder): Remove.
3394 (struct pchf_adder_info): Likewise.
3395 (_cpp_save_file_entries): Write out all files so that #import works.
3396
9fcdd891
JM
33972005-01-23 Joseph S. Myers <joseph@codesourcery.com>
3398
3399 * configure: Regenerate.
3400
ecfd72e7
TS
34012005-01-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3402
3403 * include/cpplib.h (c_lang): Fix comment to say cpp_create_reader.
3404
6c25a4f7 3405 * include/cpplib.h: Also update copyright years.
c5ff069d 3406
942926ad
GK
34072005-01-03 Geoffrey Keating <geoffk@apple.com>
3408
3409 * files.c (_cpp_find_file): Add files found by search_path_exhausted
3410 to the list of all files.
3411
a2566ae9
GDR
34122005-01-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
3413
3414 * internal.h: Update references to Cpp lib filenames.
3415 * directives.c: Likewise.
3416 * init.c: Likewise.
3417 * macro.c: Likewise.
3418 * traditional.c: Likewise.
3419
1b449375
EB
34202004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr>
3421
3422 PR preprocessor/15167
3423 * files.c (destroy_cpp_file): New function.
3424 (should_stack_file): Make a new file if the
3425 compared file is still stacked.
3426
28303828
NN
34272004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
3428
c5ff069d 3429 PR preprocessor/17610
28303828
NN
3430 * directives.c (do_include_common): Error out if an empty filename
3431 is given for #include (or #include_next or #import).
3432
c812785a
RS
34332004-11-27 Roger Sayle <roger@eyesopen.com>
3434 Zack Weinberg <zack@codesourcery.com>
3435
3436 * internal.h: Replace all uses of uchar with unsigned char.
3437 * include/cpp-id-data.h: Likewise. Guard typedef of uchar
3438 with !IN_GCC, so uchar is only defined whilst building libcpp.
3439
f91eaa01
KC
34402004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3441
3442 * aclocal.m4: Regenerate.
3443
f78ce0c2
RS
34442004-11-24 Roger Sayle <roger@eyesopen.com>
3445
3446 PR preprocessor/15824
3447 * configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h>
3448 directly, instead of the non-existant "system.h" and "ansidecl.h".
3449 * configure: Regenerate.
3450
b5b3e36a 34512004-11-23 Daniel Jacobowitz <dan@codesourcery.com>
c5ff069d 3452 Joseph Myers <joseph@codesourcery.com>
b5b3e36a
DJ
3453
3454 * internal.h (struct lexer_state): Add in_deferred_pragma.
3455 * directives.c (struct pragma_entry): Add allow_expansion.
3456 (insert_pragma_entry): Take allow_expansion flag.
3457 (register_pragma): Likewise.
3458 (cpp_register_pragma): Likewise.
3459 (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma.
3460 (do_pragma): Honor allow_expansion.
3461 (cpp_handle_deferred_pragma): Set in_deferred_pragma.
3462 * include/cpplib.h (cpp_register_pragma): Update prototype.
3463
a8e68029 34642004-11-18 Daniel Jacobowitz <dan@codesourcery.com>
c5ff069d 3465 Mark Mitchell <mark@codesourcery.com>
a8e68029
DJ
3466
3467 * configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set
3468 need_64bit_hwint=yes.
3469 * configure: Regenerate.
3470
50f47ee0
JM
34712004-11-09 Joseph S. Myers <joseph@codesourcery.com>
3472
3473 * Makefile.in ($(PACKAGE).pot): New rule. Depend on
3474 po/$(PACKAGE).pot.
3475 (po/$(PACKAGE).pot): Use ":" instead of "," in --keyword
3476 arguments. Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2.
3477 Remove local srcdir path from generated file.
3478
968e08d6 34792004-11-04 Zack Weinberg <zack@codesourcery.com>
c5ff069d 3480 Gerald Pfeifer <gerald@pfeifer.com>
968e08d6
ZW
3481
3482 * internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
3483 as well.
3484
3da3d587
ZW
34852004-10-27 Zack Weinberg <zack@codesourcery.com>
3486
3487 PR 18075
3488 * directives.c (do_pragma): Do not defer pragmas which are unknown.
3489 (cpp_handle_deferred_pragma): Add cast to silence warning.
3490
ac24fc25
JM
34912004-10-14 Joseph S. Myers <jsm@polyomino.org.uk>
3492
3493 * errors.c (_cpp_begin_message): Print "error: " for errors.
3494
7731405b
AJ
34952004-10-10 Andreas Jaeger <aj@suse.de>
3496
3497 * makedepend.c: Include mkdeps.h for prototype of deps_add_vpath.
3498 * Makefile.in (makedepend.o): Add dependency on mkdeps.h.
3499
646544e3
AP
35002004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
3501
3502 * pch.c (cpp_write_pch_state): Remove variable z as it is not
3503 used.
3504 (cpp_read_state): Remove unused variables, m, d and mac_count.
3505
67a74146
PB
35062004-09-29 Per Bothner <per@bothner.com>
3507
3508 * directives.c (cpp_handle_deferred_pragma): Save, clear and restore
3509 cb.line_change. Otherwise do_pragma will call the line_change
3510 call-back with a meaningless line number.
3511
018a4785
ZW
35122004-09-24 Zack Weinberg <zack@codesourcery.com>
3513
3514 * configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to
3515 programs cluster. Use ACX_PROG_CC_WARNING_OPTS,
3516 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS.
3517 * aclocal.m4, configure: Regenerate.
3518 * init.c: Include localedir.h.
3519 * Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables.
3520 (DEFS): Delete.
3521 (.c.o): Use $(ALL_CFLAGS).
3522 (localedir.h, localedir.hs): New rules.
3523 (clean): Use rm -rf to remove directories.
3524 (distclean): Also delete localedir.h and localedir.hs.
3525 (init.o): Update dependencies.
3526
88fa57d7
KC
35272004-09-22 Kelley Cook <kcook@gcc.gnu.org>
3528
3529 * Makefile.in (aclocal.m4): Update dependencies.
3530 * configure.ac (AC_CONFIG_MACRO_DIR): New.
3531 * aclocal.m4, configure: Regenerate.
3532
8f8e9aa5
ZW
35332004-09-17 Zack Weinberg <zack@codesourcery.com>
3534
a29f62d9
ZW
3535 * charset.c (_cpp_destroy_iconv, emit_numeric_escape)
3536 (_cpp_convert_input, _cpp_default_encoding): Add comments.
3537 Some other comments in this file also tweaked.
3538
8f8e9aa5
ZW
3539 * directives.c (do_pragma): Save current buffer position
3540 before lexing the pragma keywords; don't call
3541 _cpp_backup_tokens in the defer_pragmas case.
3542
a2981930
PB
35432004-09-15 Per Bothner <per@bothner.com>
3544
3545 * include/line-map.h (line_map_start): Add parameter names so
3546 preceding comment makes sense.
3547 (linemap_add): Remove from comment mention of non-existing parameter.
3548
21b11495
ZW
35492004-09-09 Matt Austern <austern@apple.com>
3550 Zack Weinberg <zack@codesourcery.com>
3551
3552 * include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
3553 prefixes throughout. Add entry for PRAGMA. Remove
3554 unnecessary "= 0" from EQ.
3555 (enum cpp_ttype): Adjust OP and TK definitions to restore
3556 prefixes, via token-paste.
3557 (CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
3558 Change from #defines to additional cpp_ttype enumerators.
3559 (struct cpp_options): Add defer_pragmas.
3560 (cpp_handle_deferred_pragma): Prototype new interface.
3561
3562 * internal.h (struct cpp_reader): Add directive_result.
3563 * directives.c (struct pragma_entry): Add is_internal field;
3564 give boolean fields type bool.
3565 (start_directive): Initialize pfile->directive_result.type.
3566 (_cpp_do__Pragma): Likewise.
3567 (run_directive): Do not crash if pfile->buffer->prev is NULL.
3568 (insert_pragma_entry): Add 'internal' argument; set new->is_internal
3569 from it.
3570 (register_pragma): New static function, bulk of former
3571 cpp_register_pragma here; add 'internal' argument, pass along
3572 to insert_pragma_entry.
3573 (cpp_register_pragma): Now a wrapper around register_pragma which
3574 always passes false for 'internal' argument.
3575 (_cpp_init_internal_pragmas): Call register_pragma directly, passing
3576 true for 'internal'.
3577 (do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
3578 an internal pragma, save text till the end of the line as a CPP_PRAGMA
3579 token instead of executing the pragma.
3580 (cpp_handle_deferred_pragma): New interface.
3581 * lex.c (token_spellings): Adjust OP and TK definitions to
3582 match changes to cpplib.h.
3583 (_cpp_lex_token): Check for a directive-result token and
3584 return it if present.
3585 (cpp_token_val_index): Handle CPP_PRAGMA.
3586 * macro.c (cpp_builtin_macro_text): Correct comment.
3587 (builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
3588
0fd9e8dd
SB
35892004-09-06 Serge Belyshev <belyshev@lubercy.com>
3590
3591 PR preprocessor/14699
3592 * symtab.c (ht_dump_statistics): Change type of sum_of_squares
3593 from size_t to double.
3594
39b8ce7f
AS
35952004-08-28 Andreas Schwab <schwab@suse.de>
3596 Andreas Jaeger <aj@suse.de>
3597
3598 * configure.ac: Set PACKAGE correctly.
3599 * configure: Regenerated.
3600
5d1f4b27
PB
36012004-08-25 Paolo Bonzini <bonzini@gnu.org>
3602
3603 * Makefile.in: Add back top_builddir.
3604
078e3ffe
PB
36052004-08-25 Paolo Bonzini <bonzini@gnu.org>
3606
3607 * configure.ac: Replace Automake macro invocations
3608 with manual Autoconf checks and substitutions.
3609 * configure: Regenerate.
3610 * aclocal.m4: Regenerate.
3611 * config.in: Regenerate.
3612 * Makefile.am: Removed.
3613 * Makefile.in: Heavy simplification and reorganization.
3614
b3f8d95d
MM
36152004-08-09 Mark Mitchell <mark@codesourcery.com>
3616
3617 * configure.ac (arm*-*-eabi*): New target.
3618 (arm*-*-symbianelf*): Likewise.
3619 * configure: Regenerated.
3620
72bb2c39
BI
36212004-07-24 Bernardo Innocenti <bernie@develer.com>
3622
3623 * internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove.
3624 * directives.c: Use XNEW-family macros from libiberty.
3625 * lex.c: Likewise.
3626 * macro.c: Likewise.
3627 * cpplib.h (cpp_deps_style): Export enum with name.
3628
21b11495 36292004-07-23 Matthias Klose <doko@debian.org>
72bb2c39 3630
21b11495 3631 * init.c (init_library): Use PACKAGE for the text domain.
85eac2a0 3632
a23ee064
AP
36332004-07-16 Andris Pavenis <pavenis@latnet.lv>
3634
3635 PR preprocessor/16366
3636 * internal.h (struct cpp_reader): New field dir_hash.
3637 * files.c (make_cpp_dir): Use dir_hash, not file_hash.
3638 (_cpp_init_files, _cpp_cleanup_files): Update for new field.
3639
a09d4744
NB
36402004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
3641
3642 PR preprocessor/16192
3643 PR preprocessor/15913
3644 PR preprocessor/15572
3645 * expr.c (_cpp_parse_expr): Handle remaining cases where an
3646 expression is missing.
3647 * init.c (post_options): Traditional cpp doesn't do // comments.
3648
f58f7def
PB
36492004-06-30 Per Bothner <per@bothner.com>
3650
3651 * include/line-map.h (fileline): Remove old typedef.
3652 * internal.h (struct cpp_reader): Use source_location typedef instead.
3653
e83d8d43
ZW
36542004-06-26 Zack Weinberg <zack@codesourcery.com>
3655
3656 Partially revert patch of 2004-06-05.
3657 * files.c (search_cache): Remove pfile argument. Don't check
3658 for file that would be found by "" or <> search here...
3659 (_cpp_find_file): ...do it here, before calling find_file_in_dir.
3660 Do not apply directory-of-current-file correction to files
3661 found by this check. Rearrange code slightly.
3662
c0d578e6
GK
36632004-06-21 Geoffrey Keating <geoffk@apple.com>
3664
3665 * files.c (should_stack_file): Correct swapped parameters to call
3666 to cb.read_pch.
3667 * pch.c (cpp_valid_state): Handle -fpreprocessed.
3668
159d5224
PB
36692004-06-15 Paolo Bonzini <bonzini@gnu.org>
3670
3671 * Makefile.in: Regenerate with automake 1.8.5.
3672 * aclocal.m4: Likewise.
3673 * configure: Regenerate.
3674
2fac9c01
ZW
36752004-06-11 Zack Weinberg <zack@codesourcery.com>
3676
3677 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
3678 * configure, config.in: Regenerate.
3679 * system.h: Unconditionally define bool as unsigned char,
3680 BOOL_BITFIELD as unsigned int.
3681 * .cvsignore: New file.
3682
d8044160
GK
36832004-06-09 Geoffrey Keating <geoffk@apple.com>
3684
3685 * traditional.c (push_replacement_text): Set macro->traditional.
3686 (save_replacement_text): Likewise.
3687 * pch.c (cpp_write_pch_state): Don't write list of defined macros.
3688 (struct save_macro_item): Delete.
3689 (struct save_macro_data): Use a character array not the previous
3690 structured format.
3691 (save_macros): Save macro as text not as internal structures.
3692 (cpp_prepare_state): Update for changes to save_macro_data.
3693 (cpp_read_state): Don't read macros defined in PCH. Restore
2cf22451 3694 -D macros as text.
d8044160
GK
3695 * macro.c (create_iso_definition): Honour alloc_subobject.
3696 Clear traditional flag.
3697 (_cpp_create_definition): Honour alloc_subobject.
3698 * lex.c (cpp_token_val_index): New.
3699 * internal.h: Include cpp-id-data.h.
3700 (uchar): Move definition to cpp-id-data.h.
3701 (U): Likewise.
3702 (cpp_macro): Likewise.
3703 * directives.c (struct answer): Move to cpp-id-data.h.
3704 (do_assert): Honour alloc_subobject.
2cf22451
ZW
3705
3706 * include/symtab.h (struct ht): Add field 'alloc_subobject'.
3707 * include/cpplib.h (struct cpp_string): Add GTY marker.
3708 (enum cpp_token_fld_kind): New.
3709 (struct cpp_token): Add GTY markers.
3710 (cpp_token_val_index): Prototype.
3711 (CPP_HASHNODE_VALUE_IDX): New.
3712 (struct cpp_hashnode): Don't skip fields of 'value' when marking.
3713 * include/cpp-id-data.h: New file.
d8044160 3714
0ca8e815
PB
37152004-06-09 Paolo Bonzini <bonzini@gnu.org>
3716
3717 * Makefile.am (all-local): New.
3718 * Makefile.in: Regenerate.
3719
b51fa00f
RS
37202004-06-06 Roger Sayle <roger@eyesopen.com>
3721
3722 * Makefile.am (LIBICONV): Declare.
3723 (makedepend_LDADD): Use LIBICONV.
3724 * Makefile.in: Regenerate.
3725
5e2f3f39
AP
37262004-06-05 Andrew Pinski <pinskia@physics.uc.edu>
3727
3728 * Makefile.am (LIBINTL): Declare
3729 (makedepend_LDADD): Use LIBINTL.
3730 * Makefile.in: Regenerate.
3731
c6e83800
ZW
37322004-06-05 Zack Weinberg <zack@codesourcery.com>
3733
3734 * Makefile.am: Add makedepend.
3735 * Makefile.in, aclocal.m4: Regenerate.
3736 * charset.c: Insert a space to avoid a warning.
3737 * directives.c: Include mkdeps.h.
3738 (_cpp_handle_directive): Reenable macro expander if appropriate.
3739 (undefine_macros): Inline body of _cpp_free_definition for speed.
3740 Do not call undef callback or _cpp_warn_if_unused_macro.
3741 (cpp_get_deps): New interface.
3742 * files.c (search_cache): Add pfile argument. Check for file
3743 that would be found by "" or <> search here...
3744 (_cpp_find_file): ...not here. Correct recorded start_dir of
3745 files found by directory-of-current-file search that would be
3746 found by "" or <> search.
3747 * init.c (cpp_add_dependency_target): Delete.
3748 * internal.h (struct lexer_state): Add discarding_output flag.
3749 * lex.c (lex_identifier): Compute hash function while scanning.
3750 * macro.c (cpp_scan_nooutput): Disable macro expansion outside
3751 directives.
3752 * makedepend.c: New file.
3753 * mkdeps.c (struct deps): Add vpath vector.
3754 (apply_vpath, deps_add_vpath): New function.
3755 (deps_free): Free vpath vector.
3756 (deps_add_dep, deps_add_target): Use apply_vpath.
3757 * symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH.
3758 (ht_lookup_with_hash): New function.
3759 * cpplib.h, mkdeps.h: Update prototypes.
3760 * symtab.h: Update prototypes.
3761 (HT_HASHSTEP, HT_FINISH): New macros.
3762
b453c95f
GK
37632004-05-29 Geoffrey Keating <geoffk@apple.com>
3764
3765 * symtab.c (ht_create): Set entries_owned.
3766 (ht_destroy): Honour entries_owned.
3767 (ht_expand): Likewise.
3768 (ht_load): New.
2cf22451
ZW
3769 * include/symtab.h (struct ht): New field 'entries_owned'
3770 (ht_load): New prototype.
b453c95f 3771
963e23c5
PB
37722004-05-26 Paolo Bonzini <bonzini@gnu.org>
3773
3774 PR bootstrap/15651
3775 * configure.ac: Fix m4 quoting when picking
3776 the size of HOST_WIDE_INT.
3777 * configure: Regenerate.
3778
0429bc77
PB
37792004-05-25 Paolo Bonzini <bonzini@gnu.org>
3780
3781 * Makefile.am: the correct directory for
3782 gettext include files is given by @INCINTL@.
3783 * Makefile.in: Regenerate.
3784
c86dd7db
PB
37852004-05-24 Paolo Bonzini <bonzini@gnu.org>
3786
3787 * system.h [!ENABLE_NLS]: dgettext takes two
3788 parameters.
3789
4f4e53dd
PB
37902004-05-23 Paolo Bonzini <bonzini@gnu.org>
3791
3792 Moved libcpp from the gcc subdirectory to the toplevel.
3793 * Makefile.am: New file.
3794 * Makefile.in: Regenerate.
3795 * configure.ac: New file.
3796 * configure: Regenerate.
3797 * config.in: Regenerate.
3798 * charset.c: Moved from gcc/cppcharset.c. Add note about
3799 brokenness of input charset detection. Adjust for change
3800 in name of cppucnid.h.
3801 * errors.c: Moved from gcc/cpperror.c. Do not include intl.h.
3802 * expr.c: Moved from gcc/cppexp.c.
3803 * files.c: Moved from gcc/cppfiles.c. Do not include intl.h.
3804 Remove #define of O_BINARY, it is in system.h.
3805 * identifiers.c: Moved from gcc/cpphash.c.
3806 * internal.h: Moved from gcc/cpphash.h. Change header
3807 guard name. All other files adjusted to match name change.
3808 * init.c: Moved from gcc/cppinit.c.
3809 (init_library) [ENABLE_NLS]: Call bindtextdomain.
3810 * lex.c: Moved from gcc/cpplex.c.
3811 * directives.c: Moved from gcc/cpplib.c.
3812 * macro.c: Moved from gcc/cppmacro.c.
3813 * pch.c: Moved from gcc/cpppch.c. Do not include intl.h.
3814 * traditional.c: Moved from gcc/cpptrad.c.
3815 * ucnid.h: Moved from gcc/cppucnid.h. Change header
3816 guard name.
3817 * ucnid.pl: Moved from gcc/cppucnid.pl.
3818 * ucnid.tab: Moved from gcc/cppucnid.tab. Change header
3819 guard name.
3820 * symtab.c: Moved from gcc/hashtable.c.
3821 * line-map.c: Moved from gcc. Do not include intl.h.
3822 * mkdeps.c: Moved from gcc.
3823 * system.h: New file.
2cf22451
ZW
3824 * include/cpplib.h: Moved from gcc. Change header guard name.
3825 * include/line-map.h: Moved from gcc. Change header guard name.
3826 * include/mkdeps.h: Moved from gcc. Change header guard name.
3827 * include/symtab.h: Moved from gcc/hashtable.h. Change header
3828 guard name.