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