]> git.ipfire.org Git - thirdparty/gcc.git/blame - libcpp/ChangeLog
Fix template argument of nullptr_t type.
[thirdparty/gcc.git] / libcpp / ChangeLog
CommitLineData
05945a1b
DM
12017-06-05 David Malcolm <dmalcolm@redhat.com>
2
3 * include/cpplib.h (struct cpp_callbacks): Add "comment"
4 callback.
5 * lex.c (_cpp_lex_direct): Call the comment callback if non-NULL.
6
ad53f123
DM
72017-05-02 David Malcolm <dmalcolm@redhat.com>
8
9 * include/line-map.h (class rich_location): Update description of
10 newline handling.
11 (class fixit_hint): Likewise.
12 (fixit_hint::ends_with_newline_p): New decl.
13 * line-map.c (rich_location::maybe_add_fixit): Support newlines
14 in fix-it hints that are insertions of single lines at the start
15 of a line. Don't consolidate into such fix-it hints.
16 (fixit_hint::ends_with_newline_p): New method.
17
338035aa
DM
182017-05-01 David Malcolm <dmalcolm@redhat.com>
19
20 * include/line-map.h (source_range::intersects_line_p): Delete.
21 (rich_location::add_fixit): Delete.
22 (rich_location::maybe_add_fixit): New method.
23 (class fixit_hint): Reimplement in terms of...
24 (class fixit_replace): ...this.
25 (class fixit_insert): Delete.
26 * line-map.c (linemap_position_for_loc_and_offset): Drop overzealous
27 linemap_assert_fails.
28 (source_range::intersects_line_p): Rename to...
29 (fixit_hint::affects_line_p): New function.
30 (rich_location::add_fixit_insert_before): Reimplement in terms of
31 maybe_add_fixit, moving validation there.
32 (rich_location::add_fixit_insert_after): Likewise.
33 (column_before_p): Delete.
34 (rich_location::add_fixit_replace): Reimplement in terms of
35 maybe_add_fixit, moving validation there. Convert closed input range
36 to half-open range.
37 (rich_location::add_fixit): Delete.
38 (rich_location::maybe_add_fixit): New function.
39 (fixit_insert::fixit_insert): Delete.
40 (fixit_insert::~fixit_insert): Delete.
41 (fixit_insert::affects_line_p): Delete.
42 (fixit_insert::maybe_append_replace): Delete.
43 (fixit_replace::fixit_replace): Rename to...
44 (fixit_hint::fixit_hint): ...this, rewriting as necessary.
45 (fixit_replace::~fixit_replace): Delete.
46 (fixit_replace::affects_line_p): Delete.
47 (fixit_replace::maybe_append_replace): Rename to...
48 (fixit_hint::maybe_append): ...this, rewriting as necessary.
49
5764ee3c
JW
502017-04-03 Jonathan Wakely <jwakely@redhat.com>
51
52 * include/line-map.h (LINEMAPS_MACRO_MAPS): Fix typo in comment.
53 * lex.c (search_line_fast): Likewise.
54 * pch.h (cpp_valid_state): Likewise.
55
8c00ae24
AS
562017-03-21 Andreas Schwab <schwab@suse.de>
57
58 * lex.c (search_line_fast) [__ARM_NEON && __ARM_64BIT_STATE]:
59 Convert 64-bit value to boolean before passing to
60 __builtin_expect.
61
85e653c9
JM
622017-03-16 Jason Merrill <jason@redhat.com>
63
64 * init.c (cpp_init_builtins): Update __cplusplus for C++17.
65
e228c50f
GP
662017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
67
68 * Makefile.in (po/$(PACKAGE).pot): Adjust bug reporting URL.
69
b9f4757f
DM
702017-01-10 David Malcolm <dmalcolm@redhat.com>
71
72 PR c++/77949
73 * line-map.c (linemap_position_for_column): When calling
74 linemap_start_line, detect if a new linemap was created with
75 0 column bits, and bail out early if this is the case.
76 (linemap_position_for_loc_and_offset): Replace overzealous
77 linemap_assert_fails with a simple conditional; use correct
78 bit count.
79
5ccf1d8d
DM
802017-01-07 David Malcolm <dmalcolm@redhat.com>
81
82 PR c++/72803
83 * line-map.c (linemap_line_start): When determining if the highest
84 column given out so far will fit into a proposed change to the
85 current map, use the effective number of column bits, rather than
86 the total number of column + range bits.
87
cbe34bb5
JJ
882017-01-01 Jakub Jelinek <jakub@redhat.com>
89
90 Update copyright years.
91
a3998c2f
DM
922016-12-15 David Malcolm <dmalcolm@redhat.com>
93
94 PR preprocessor/78680
95 PR preprocessor/78811
96 * lex.c (_cpp_lex_direct): Only determine the end-location of
97 the token and build a range for non-reserved start locations.
98 Do not do it for EOF tokens.
99
470a60b2
DM
1002016-12-12 David Malcolm <dmalcolm@redhat.com>
101
102 PR preprocessor/78680
103 * lex.c (_cpp_lex_direct): Ensure line notes are processed before
104 computing the end-point of the token.
105
fb2675cb
PB
1062016-11-23 Paolo Bonzini <bonzini@gnu.org>
107
108 * include/cpplib.h (struct cpp_options): Add new member
109 warn_expansion_to_defined.
110 (CPP_W_EXPANSION_TO_DEFINED): New enum member.
111 * expr.c (parse_defined): Warn for all uses of "defined"
112 in macros, and tie warning to CPP_W_EXPANSION_TO_DEFINED.
113 Make it a pedwarning instead of a warning.
114 * system.h (HAVE_DESIGNATED_INITIALIZERS): Do not use
115 "defined" in macros.
116
b8f56412
DM
1172016-11-17 David Malcolm <dmalcolm@redhat.com>
118
119 * charset.c (cpp_interpret_string_1): Skip locations from
120 loc_reader when advancing 'p' when handling raw strings.
121
3549e181
JJ
1222016-11-16 Jakub Jelinek <jakub@redhat.com>
123
124 PR bootstrap/72823
125 * configure.ac (ENABLE_ASSERT_CHECKING): Define if gcc configure
126 would define that macro.
127 * configure: Regenerated.
128 * config.in: Regenerated.
129
a6ac871c
RE
1302016-11-08 Richard Earnshaw <rearnsha@arm.com>
131
132 * lex.c (search_line_fast): New implementation for AArch64.
133
f5ea989d
DM
1342016-10-25 David Malcolm <dmalcolm@redhat.com>
135
136 * files.c (destroy_cpp_file): Free file->path.
137
2be1b796
DM
1382016-10-25 David Malcolm <dmalcolm@redhat.com>
139
140 * include/line-map.h (line_maps::~line_maps): New dtor.
141 (location_adhoc_data_fini): Delete decl.
142 * line-map.c (line_maps::~line_maps): New dtor.
143 (location_adhoc_data_fini): Delete.
144
58f30963
AP
1452016-10-21 Andris Pavenis <andris.pavenis@iki.fi>
146
147 PR preprocessor/71681
148 * files.c (remap_filename): Fix handling -remap in subdirectories.
149
70f6d5e1
JJ
1502016-10-12 Jakub Jelinek <jakub@redhat.com>
151
152 * include/cpplib.h (struct cpp_options): Add
153 cpp_warn_implicit_fallthrough.
154 * init.c (cpp_create_reader): Initialize it to 0.
155 * lex.c (fallthrough_comment_p): Handle different
156 cpp_warn_implicit_fallthrough levels. Whitespace fixes.
157
7bad794a
JJ
1582016-10-08 Jakub Jelinek <jakub@redhat.com>
159
ee19ef45
JJ
160 * lex.c (fallthrough_comment_p): Accept Else, fallthrough.
161
81b02905
JJ
162 * lex.c (fallthrough_comment_p): Extend to handle more common FALLTHRU
163 comment styles.
164
7bad794a
JJ
165 * lex.c (fallthrough_comment_p): Fix off-by-one size comparison
166 errors, cleanup.
167 (_cpp_lex_direct): Allow arbitrary comments in between
168 fallthrough_comment_p comment and following token.
169
67ef83c6
KN
1702016-10-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
171
172 PR target/77847
173 * lex.c (search_line_fast): Add a FALLTHROUGH comment to correct
174 compiler error in the version of this function that is
175 conditionally compiled when GCC_VERSION >= 4005 and both
176 __ALTIVEC__ and __BIG_ENDIAN__ symbols are defined.
177
81fea426
MP
1782016-09-26 Marek Polacek <polacek@redhat.com>
179 Jakub Jelinek <jakub@redhat.com>
180
181 PR c/7652
182 * include/cpplib.h (PREV_FALLTHROUGH): Define.
183 * internal.h (CPP_FALLTHRU): Define.
184 * lex.c (fallthrough_comment_p): New function.
185 (_cpp_lex_direct): Set PREV_FALLTHROUGH on tokens succeeding a falls
186 through comment.
187
bbd6fcf3
DM
1882016-09-23 David Malcolm <dmalcolm@redhat.com>
189
190 PR preprocessor/77672
191 * charset.c (cpp_interpret_string_1): Add a source_range for the
192 NUL-terminator, using the location of the trailing quote of the
193 final string.
194
63cb3926
JM
1952016-09-21 Jason Merrill <jason@redhat.com>
196
197 * line-map.c (linemap_location_from_macro_definition_p): New.
198 * line-map.h: Declare it.
199
31316208
DM
2002016-09-15 David Malcolm <dmalcolm@redhat.com>
201
202 * include/line-map.h (class rich_location): Note that newlines
203 aren't supported in fix-it text.
204 * line-map.c (rich_location::add_fixit_insert_before): Reject
205 attempts to add fix-its containing newlines.
206 (rich_location::add_fixit_replace): Likewise.
207
254830ba
DM
2082016-09-13 David Malcolm <dmalcolm@redhat.com>
209
210 * include/line-map.h (class rich_location): Add description of
211 fix-it hints to leading comment.
212 (rich_location::add_fixit_insert): Rename both overloaded methods
213 to..
214 (rich_location::add_fixit_insert_before): ...this, updating their
215 comments.
216 (rich_location::add_fixit_insert_after): Two new overloaded
217 methods.
218 (rich_location::stop_supporting_fixits): New method.
219 * line-map.c (rich_location::add_fixit_insert): Rename both
220 overloaded methods to..
221 (rich_location::add_fixit_insert_before): ...this, updating their
222 comments.
223 (rich_location::add_fixit_insert_after): Two new methods.
224 (rich_location::reject_impossible_fixit): Split out
225 failure-handling into...
226 (rich_location::stop_supporting_fixits): New method.
227
c65236d6
DM
2282016-09-02 David Malcolm <dmalcolm@redhat.com>
229
230 * include/line-map.h (rich_location::seen_impossible_fixit_p): New
231 accessor.
232
3d4f9f87
DM
2332016-08-31 David Malcolm <dmalcolm@redhat.com>
234
235 * include/line-map.h (class fixit_remove): Remove stray decl.
236 (fixit_hint::affects_line_p): Make const.
237 (fixit_insert::affects_line_p): Likewise.
238 (fixit_replace::affects_line_p): Likewise.
239 * line-map.c (fixit_insert::affects_line_p): Likewise.
240 (fixit_replace::affects_line_p): Likewise.
241
b816477a
DM
2422016-08-30 David Malcolm <dmalcolm@redhat.com>
243
244 * include/line-map.h (class semi_embedded_vec): New class.
245 (semi_embedded_vec<T, NUM_EMBEDDED>::semi_embedded_vec): New ctor.
246 (semi_embedded_vec<T, NUM_EMBEDDED>::~semi_embedded_vec): New
247 dtor.
248 (semi_embedded_vec<T, NUM_EMBEDDED>::operator[]): New methods.
249 (semi_embedded_vec<T, NUM_EMBEDDED>::push): New method.
250 (semi_embedded_vec<T, NUM_EMBEDDED>::truncate): New method.
251 (rich_location::get_num_locations): Reimplement in terms of
252 m_ranges.
253 (rich_location::get_range): Make non-inline.
254 (rich_location::get_num_fixit_hints): Reimplement in terms of
255 m_fixit_hints.
256 (rich_location::add_fixit): New function.
257 (rich_location::MAX_RANGES): Rename to...
258 (rich_location::STATICALLY_ALLOCATED_RANGES): ...this.
259 (rich_location::MAX_FIXIT_HINTS): Rename to...
260 (rich_location::STATICALLY_ALLOCATED_RANGES): ...this, and make
261 private.
262 (rich_location::m_num_ranges): Eliminate in favor of...
263 (rich_location::m_ranges): ...this, converting from a fixed-size
264 array to a semi_embedded_vec.
265 (rich_location::m_num_fixit_hints): Eliminate in favor of...
266 (rich_location::m_fixit_hints): ...this, converting from a
267 fixed-size array to a semi_embedded_vec.
268 * line-map.c (rich_location::rich_location): Update for above
269 changes.
270 (rich_location::~rich_location): Likewise.
271 (rich_location::get_loc): Likewise.
272 (rich_location::get_range): New methods.
273 (rich_location::add_range): Update for above changes.
274 (rich_location::set_range): Likewise.
275 (rich_location::add_fixit_insert): Likewise.
276 (rich_location::add_fixit_replace): Likewise.
277 (rich_location::get_last_fixit_hint): Likewise.
278 (rich_location::reject_impossible_fixit): Likewise.
279 (rich_location::add_fixit): New method.
280
f9087798
DM
2812016-08-30 David Malcolm <dmalcolm@redhat.com>
282
283 * include/line-map.h (rich_location::add_fixit_insert): Add
284 comments. Add overload omitting the source_location param.
285 (rich_location::add_fixit_remove): Add comments. Add overloads
286 omitting the range, and accepting a source_location.
287 (rich_location::add_fixit_replace): Likewise.
288 * line-map.c (rich_location::add_fixit_insert): Add comments. Add
289 overload omitting the source_location param.
290 (rich_location::add_fixit_remove): Add comments. Add overloads
291 omitting the range, and accepting a source_location.
292 (rich_location::add_fixit_replace): Likewise.
293
2aa51413
DM
2942016-08-26 David Malcolm <dmalcolm@redhat.com>
295
296 * include/line-map.h (get_pure_location): New decl.
297 * line-map.c (get_pure_location): Move here, from gcc/input.c, adding
298 a line_maps * param.
299 (rich_location::add_fixit_insert): Call get_pure_location on "where".
300 (rich_location::add_fixit_replace): Call get_pure_location on the
301 end-points.
302
ee908516
DM
3032016-08-26 David Malcolm <dmalcolm@redhat.com>
304
305 * include/line-map.h (rich_location): Eliminate unimplemented
306 constructor based on source_range.
307 (rich_location::get_last_fixit_hint): New method.
308 (rich_location::reject_impossible_fixit): New method.
309 (rich_location): Add fields m_line_table and
310 m_seen_impossible_fixit.
311 (fixit_hint::maybe_append_replace): New pure virtual function.
312 (fixit_insert::maybe_append_replace): New function.
313 (fixit_replace::maybe_append_replace): New function.
314 * line-map.c (rich_location::rich_location): Initialize
315 m_line_table and m_seen_impossible_fixit.
316 (rich_location::add_fixit_insert): Call
317 reject_impossible_fixit and bail out if true.
318 (column_before_p): New function.
319 (rich_location::add_fixit_replace): Call reject_impossible_fixit
320 and bail out if true. Attempt to consolidate with neighboring
321 fixits.
322 (rich_location::get_last_fixit_hint): New method.
323 (rich_location::reject_impossible_fixit): New method.
324 (fixit_insert::maybe_append_replace): New method.
325 (fixit_replace::maybe_append_replace): New method.
326
d672cded
DM
3272016-08-23 David Malcolm <dmalcolm@redhat.com>
328
329 * include/line-map.h (source_range::from_locations): New method.
330
2ffe0809
DM
3312016-08-19 David Malcolm <dmalcolm@redhat.com>
332
333 * include/line-map.h (fixit_hint::kind): Delete REPLACE.
334 (class fixit_remove): Delete.
335 * line-map.c (rich_location::add_fixit_remove): Reimplement
336 by calling add_fixit_replace with an empty string.
337 (fixit_remove::fixit_remove): Delete.
338 (fixit_remove::affects_line_p): Delete.
339
c65699ef
JM
3402016-08-19 Joseph Myers <joseph@codesourcery.com>
341
342 PR c/32187
343 * include/cpplib.h (CPP_N_FLOATN, CPP_N_FLOATNX)
344 (CPP_N_WIDTH_FLOATN_NX, CPP_FLOATN_SHIFT, CPP_FLOATN_MAX): New
345 macros.
346 * expr.c (interpret_float_suffix): Handle fN, fNx, FN and FNx
347 suffixes.
348
fcf830ab
PK
3492016-08-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
350
351 * expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic.
352
cb18fd07
DM
3532016-08-18 David Malcolm <dmalcolm@redhat.com>
354
355 * directives.c (directive_names): New array.
356 (_cpp_handle_directive): Offer spelling suggestions for misspelled
357 directives.
358 * errors.c (cpp_diagnostic_at_richloc): New function.
359 (cpp_error_at_richloc): New function.
360 * include/cpplib.h (struct cpp_callbacks): Add field
361 "get_suggestion".
362 (cpp_error_at_richloc): New decl.
363
9c62c873
MP
3642016-08-18 Marek Polacek <polacek@redhat.com>
365
366 PR c/7652
367 * pch.c (write_macdef): Add CPP_FALLTHRU.
368
191816a3
MP
3692016-08-12 Marek Polacek <polacek@redhat.com>
370
371 PR c/7652
372 * lex.c (search_line_fast): Add FALLTHRU.
373 (_cpp_lex_direct): Likewise.
374 (cpp_token_val_index): Adjust fall through comment.
375 * macro.c (parse_params): Add FALLTHRU.
376 * pch.c (count_defs): Adjust fall through comment.
377 (write_defs): Likewise.
378
e7864d68
DM
3792016-08-06 David Malcolm <dmalcolm@redhat.com>
380
381 PR bootstrap/72823
382 * charset.c (_cpp_valid_ucn): Replace overzealous assert with one
383 that allows for char_range to be non-NULL when loc_reader is NULL.
384
88fa5555
DM
3852016-08-05 David Malcolm <dmalcolm@redhat.com>
386
387 * charset.c (cpp_substring_ranges::cpp_substring_ranges): New
388 constructor.
389 (cpp_substring_ranges::~cpp_substring_ranges): New destructor.
390 (cpp_substring_ranges::add_range): New method.
391 (cpp_substring_ranges::add_n_ranges): New method.
392 (_cpp_valid_ucn): Add "char_range" and "loc_reader" params; if
393 they are non-NULL, read position information from *loc_reader
394 and update char_range->m_finish accordingly.
395 (convert_ucn): Add "char_range", "loc_reader", and "ranges"
396 params. If loc_reader is non-NULL, read location information from
397 it, and update *ranges accordingly, using char_range.
398 Conditionalize the conversion into tbuf on tbuf being non-NULL.
399 (convert_hex): Likewise, conditionalizing the call to
400 emit_numeric_escape on tbuf.
401 (convert_oct): Likewise.
402 (convert_escape): Add params "loc_reader" and "ranges". If
403 loc_reader is non-NULL, read location information from it, and
404 update *ranges accordingly. Conditionalize the conversion into
405 tbuf on tbuf being non-NULL.
406 (cpp_interpret_string): Rename to...
407 (cpp_interpret_string_1): ...this, adding params "loc_readers" and
408 "out". Use "to" to conditionalize the initialization and usage of
409 "tbuf", such as running the converter. If "loc_readers" is
410 non-NULL, use the instances within it, reading location
411 information from them, and passing them to convert_escape; likewise
412 write to "out" if loc_readers is non-NULL. Check for leading
413 quote and issue an error if it is not present. Update boundary
414 check from "== limit" to ">= limit" to protect against erroneous
415 location values to calls that are not parsing string literals.
416 (cpp_interpret_string): Reimplement in terms to
417 cpp_interpret_string_1.
418 (noop_error_cb): New function.
419 (cpp_interpret_string_ranges): New function.
420 (cpp_string_location_reader::cpp_string_location_reader): New
421 constructor.
422 (cpp_string_location_reader::get_next): New method.
423 * include/cpplib.h (class cpp_string_location_reader): New class.
424 (class cpp_substring_ranges): New class.
425 (cpp_interpret_string_ranges): New prototype.
426 * internal.h (_cpp_valid_ucn): Add params "char_range" and
427 "loc_reader".
428 * lex.c (forms_identifier_p): Pass NULL for new params to
429 _cpp_valid_ucn.
430
8204be6c
AS
4312016-08-01 Andreas Schwab <schwab@suse.de>
432
433 * include/cpplib.h: Fix comment typo.
434
a01fc549
DM
4352016-07-27 David Malcolm <dmalcolm@redhat.com>
436
437 * include/line-map.h (source_location): Fix line numbers in
438 comment.
439
741d3be5
DM
4402016-07-11 David Malcolm <dmalcolm@redhat.com>
441
442 * include/line-map.h (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES):
443 Move here from line-map.c.
444 (LINE_MAP_MAX_LOCATION_WITH_COLS): Likewise.
445 * line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): Move from
446 here to line-map.h.
447 (LINE_MAP_MAX_LOCATION_WITH_COLS): Likewise.
448
ac81cf0b
DM
4492016-06-22 David Malcolm <dmalcolm@redhat.com>
450
451 * directives.c (do_include_common): Pass on "location" to
452 _cpp_stack_include.
453 * errors.c (cpp_diagnostic): Reimplement in terms of...
454 (cpp_diagnostic_at): New function.
455 (cpp_error_at): New function.
456 (cpp_errno_filename): Add "loc" param and use it by using
457 cpp_error_at rather than cpp_error.
458 * files.c (find_file_in_dir): Add "loc" param and pass it to
459 open_file_failed.
460 (_cpp_find_file): Add "loc" param. Use it to convert calls to
461 cpp_error to cpp_error_at, and pass it to find_file_in_dir and
462 open_file_failed.
463 (read_file_guts): Add "loc" param. Use it to convert calls to
464 cpp_error to cpp_error_at. Pass it to cpp_errno_filename.
465 (read_file): Add "loc" param. Pass it to open_file_failed and
466 read_file_guts.
467 (should_stack_file): Add "loc" param. Pass it to read_file.
468 (_cpp_stack_file): Add "loc" param. Pass it to should_stack_file.
469 (_cpp_stack_include): Add "loc" param. Pass it to
470 _cpp_find_file and _cpp_stack_file.
471 (open_file_failed): Add "loc" param. Pass it to
472 cpp_errno_filename.
473 (_cpp_fake_include): Add 0 as a source_location in call to
474 _cpp_find_file.
475 (_cpp_compare_file_date): Likewise.
476 (cpp_push_include): Likewise for call to _cpp_stack_include.
477 (cpp_push_default_include): Likewise.
478 (_cpp_save_file_entries): Likewise for call to open_file_failed.
479 (_cpp_has_header): Likewise for call to _cpp_find_file.
480 * include/cpplib.h (cpp_errno_filename): Add source_location
481 param.
482 (cpp_error_at): New declaration.
483 * init.c (cpp_read_main_file): Add 0 as a source_location in calls
484 to _cpp_find_file and _cpp_stack_file.
485 * internal.h (_cpp_find_file): Add source_location param.
486 (_cpp_stack_file): Likewise.
487 (_cpp_stack_include): Likewise.
488
a93eac6a
DM
4892016-06-22 David Malcolm <dmalcolm@redhat.com>
490
491 * include/line-map.h (fixit_hint::get_start_loc): New pure virtual
492 function.
493 (fixit_hint::maybe_get_end_loc): Likewise.
494 (fixit_insert::get_start_loc): New function, implementing
495 fixit_hint::get_start_loc.
496 (fixit_insert::maybe_get_end_loc): New function, implementing
497 fixit_hint::maybe_get_end_loc.
498 (fixit_remove::get_start_loc): New function, implementing
499 fixit_hint::get_start_loc.
500 (fixit_remove::maybe_get_end_loc): New function, implementing
501 fixit_hint::maybe_get_end_loc.
502 (fixit_replace::get_start_loc): New function, implementing
503 fixit_hint::get_start_loc.
504 (fixit_replace::maybe_get_end_loc): New function, implementing
505 fixit_hint::maybe_get_end_loc.
506
fe55692c
JDA
5072016-06-21 John David Anglin <danglin@gcc.gnu.org>
508
509 * line-map.c (location_adhoc_data_update): Use int64_t instead of
510 long long.
511 (get_combined_adhoc_loc): Likewise.
512
15c98b2e
ES
5132016-06-01 Eduard Sanou <dhole@openmailbox.org>
514
515 * include/cpplib.h (cpp_callbacks): Add get_source_date_epoch
516 callback.
517 * include/cpplib.h (cpp_init_source_date_epoch): Remove prototype.
518 * init.c (cpp_init_source_date_epoch): Remove function.
519 * init.c (cpp_create_reader): Initialize pfile->source_date_epoch.
520 * internal.h (cpp_reader): Extend comment about source_date_epoch.
521 * macro.c (_cpp_builtin_macro_text): Use get_source_date_epoch
522 callback only once, read pfile->source_date_epoch on future passes.
523 Check that get_source_date_epoch callback is not NULL.
524
ceb17928
ML
5252016-05-20 Martin Liska <mliska@suse.cz>
526
527 * config.in: Regenerated.
528 * configure: Likewise.
529 * configure.ac: Handle --enable-valgrind-annotations.
530 * lex.c (new_buff): Use ENABLE_VALGRIND_ANNOTATIONS instead
531 of ENABLE_VALGRIND_CHECKING.
532 (_cpp_free_buff): Likewise.
533
174f6622
ES
5342016-04-28 Eduard Sanou <dhole@openmailbox.org>
535 Matthias Klose <doko@debian.org>
536
537 * include/cpplib.h (cpp_init_source_date_epoch): Prototype.
538 * init.c (cpp_init_source_date_epoch): New function.
539 * internal.h: Added source_date_epoch variable to struct
540 cpp_reader to store a reproducible date.
541 * macro.c (_cpp_builtin_macro_text): Set pfile->date timestamp from
542 pfile->source_date_epoch instead of localtime if source_date_epoch is
543 set, to be used for __DATE__ and __TIME__ macros to help reproducible
544 builds.
545
12de2245
BS
5462016-04-13 Bernd Schmidt <bschmidt@redhat.com>
547
548 Patch from Roger Orr <rogero@howzatt.demon.co.uk>
549 PR preprocessor/69650
550 * directives.c (do_linemarker): Reread map after calling
551 cpp_get_token.
552
64824205
RH
5532016-04-06 Richard Henderson <rth@redhat.com>
554
555 PR preprocessor/61817
556 PR preprocessor/69391
557 * internal.h (_cpp_builtin_macro_text): Update decl.
558 * macro.c (_cpp_builtin_macro_text): Accept location for __LINE__.
559 (builtin_macro): Accept a second location for __LINE__.
560 (enter_macro_context): Compute both virtual and real expansion
561 locations for the macro.
562
3caf0ca1
BS
5632016-03-25 Bernd Schmidt <bschmidt@redhat.com>
564
565 PR lto/69650
566 * directives.c (do_linemarker): Test for file left but not entered
567 here.
568 * line-map.c (linemap_add): Not here.
569
6b366948
JJ
5702016-03-21 Jakub Jelinek <jakub@redhat.com>
571
572 PR target/70296
573 * include/cpplib.h (cpp_fun_like_macro_p): New prototype.
574 * macro.c (cpp_fun_like_macro_p): New function.
575
64567cfd
RH
5762016-03-15 Richard Henderson <rth@redhat.com>
577
578 * line-map.c (new_linemap): Make alloc_size a size_t.
579
2aaeea19
JM
5802016-03-14 Jason Merrill <jason@redhat.com>
581
582 * expr.c (cpp_classify_number): Hex floats are new in C++1z.
583 * init.c (lang_defaults): Likewise.
584
b4f3232d
DM
5852016-03-09 David Malcolm <dmalcolm@redhat.com>
586
587 PR c/68473
588 PR c++/70105
589 * line-map.c (linemap_macro_map_loc_unwind_toward_spelling): Move
590 decl...
591 * include/line-map.h
592 (linemap_macro_map_loc_unwind_toward_spelling): ...here,
593 converting from static to extern.
594
40499f81
DM
5952016-03-09 David Malcolm <dmalcolm@redhat.com>
596
597 PR c/68473
598 PR c++/70105
599 * include/line-map.h (source_range::debug): Delete.
600 (struct location_range): Update comment. Replace
601 expanded_location fields "m_start", "m_finish", and "m_caret" with
602 a source_location field: "m_loc".
603 (class rich_location): Reword comment.
604 (rich_location::get_loc): Reimplement in terms of a new overloaded
605 variant which takes an unsigned int.
606 (rich_location::get_loc_addr): Delete.
607 (rich_location::add_range): Drop params "start" and "finish" in
608 favor of param "loc". Drop overloaded variants taking a
609 source_range or location_range *.
610 (rich_location::lazily_expand_location): Delete in favor of...
611 (rich_location::get_expanded_location): New decl.
612 (rich_location::m_loc): Delete field.
613 (rich_location::m_column_override): New field.
614 * line-map.c (rich_location::rich_location): Drop name of
615 line_maps * param. Update initializations for deletion of field
616 "m_loc" and addition of field "m_column_override". Reimplement
617 body as a call to add_range. Delete overloaded variant taking a
618 source_range.
619 (rich_location::get_loc): New function.
620 (rich_location::lazily_expand_location): Delete in favor of...
621 (rich_location::get_expanded_location): New function.
622 (rich_location::override_column): Reimplement.
623 (rich_location::add_range): Drop params "start" and "finish" in
624 favor of param "loc". Eliminate location expansion in favor of
625 simply storing loc. Drop overloaded variants taking a
626 source_range or location_range *.
627 (rich_location::set_range): Eliminate location expansion.
628
7168133a
DM
6292016-02-29 David Malcolm <dmalcolm@redhat.com>
630
631 PR preprocessor/69985
632 (linemap_position_for_loc_and_offset): Rename param from "offset"
633 to "column_offset". Right-shift the column_offset by m_range_bits
634 of the pertinent ordinary map whenever offsetting a
635 source_location. For clarity, offset the column by the column
636 offset, rather than the other way around.
637
196440f8
DM
6382016-02-23 David Malcolm <dmalcolm@redhat.com>
639
640 PR preprocessor/69126
641 PR preprocessor/69543
642 * line-map.c (linemap_compare_locations): At the function top,
643 replace inlined bodies of get_location_from_adhoc_loc with calls
644 to get_location_from_adhoc_loc. Add a pair of calls to
645 get_location_from_adhoc_loc at the bottom of the function, to
646 avoid meaningless comparisons of ad-hoc and non-ad-hoc locations.
647
44714d8c
DM
6482016-02-08 David Malcolm <dmalcolm@redhat.com>
649
650 PR preprocessor/69664
651 * errors.c (cpp_diagnostic_with_line): Only call
652 rich_location::override_column if the column is non-zero.
653 * line-map.c (rich_location::override_column): Update columns
654 within m_ranges[0]. Add assertions to verify that doing so is
655 sane.
656
b5c1c988
JJ
6572016-02-05 Jakub Jelinek <jakub@redhat.com>
658
659 PR c++/69628
660 * charset.c (cpp_interpret_charconst): Clear *PCHARS_SEEN
661 and *UNSIGNEDP if bailing out early due to errors.
662
e2eb5056
JJ
6632016-01-28 Jakub Jelinek <jakub@redhat.com>
664
4bda5946
JJ
665 PR pch/68176
666 * files.c (_cpp_find_file): Set file->implicit_preinclude even if
667 included from file->implicit_preinclude header.
668
e2eb5056
JJ
669 * directives.c (destringize_and_run): Adjust prototype.
670
0afff540
DM
6712016-01-27 David Malcolm <dmalcolm@redhat.com>
672
673 PR preprocessor/69126
674 * directives.c (destringize_and_run): Add expansion_loc param; use
675 it when handling unexpanded pragmas to fixup the locations of the
676 synthesized tokens.
677 (_cpp_do__Pragma): Add expansion_loc param and use it when calling
678 destringize_and_run.
679 * internal.h (_cpp_do__Pragma): Add expansion_loc param.
680 * macro.c (builtin_macro): Pass expansion location of _Pragma to
681 _cpp_do__Pragma.
682
c7df95d8
DM
6832016-01-14 David Malcolm <dmalcolm@redhat.com>
684
685 PR preprocessor/69177
686 * line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): New
687 constant.
688 (LINE_MAP_MAX_LOCATION_WITH_COLS): Add note about unit tests
689 to comment.
690 (can_be_stored_compactly_p): Reduce threshold from
691 LINE_MAP_MAX_LOCATION_WITH_COLS to
692 LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES.
693 (get_combined_adhoc_loc): Likewise.
694 (get_range_from_loc): Likewise.
695 (linemap_line_start): Ensure that a new ordinary map is created
696 when transitioning from range-packing being enabled to disabled,
697 at the LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES threshold. Set
698 range_bits to 0 for new ordinary maps when beyond this limit.
699 Prevent the "increase the column bits of a freshly created map"
700 optimization if the range bits has reduced.
701
53290e07
JJ
7022016-01-08 Jakub Jelinek <jakub@redhat.com>
703
704 PR c++/69145
705 * files.c (cpp_included_before): If IS_ADHOC_LOC (location), lookup
706 real location from the line_table.
707
818ab71a
JJ
7082016-01-04 Jakub Jelinek <jakub@redhat.com>
709
710 Update copyright years.
711
329590d7
DM
7122015-12-22 David Malcolm <dmalcolm@redhat.com>
713
714 * line-map.c (get_combined_adhoc_loc): Remove condition
715 on locus < RESERVED_LOCATION_COUNT when considering
716 whether a caret == start == finish location can be
717 simply stored as the caret location.
718
f79520bb
DM
7192015-12-07 David Malcolm <dmalcolm@redhat.com>
720
721 * include/line-map.h (rich_location::set_range): Add line_maps *
722 param; convert param from source_range to source_location. Drop
723 "overwrite_loc_p" param.
724 * line-map.c (rich_location::set_range): Likewise, acting as if
725 "overwrite_loc_p" were true, and getting range from the location.
726
a87a86e1
DM
7272015-11-20 David Malcolm <dmalcolm@redhat.com>
728
729 PR 62314
730 * include/line-map.h (source_range::intersects_line_p): New
731 method.
732 (rich_location::~rich_location): New.
733 (rich_location::add_fixit_insert): New method.
734 (rich_location::add_fixit_remove): New method.
735 (rich_location::add_fixit_replace): New method.
736 (rich_location::get_num_fixit_hints): New accessor.
737 (rich_location::get_fixit_hint): New accessor.
738 (rich_location::MAX_FIXIT_HINTS): New constant.
739 (rich_location::m_num_fixit_hints): New field.
740 (rich_location::m_fixit_hints): New field.
741 (class fixit_hint): New class.
742 (class fixit_insert): New class.
743 (class fixit_remove): New class.
744 (class fixit_replace): New class.
745 * line-map.c (source_range::intersects_line_p): New method.
746 (rich_location::rich_location): Add initialization of
747 m_num_fixit_hints to both ctors.
748 (rich_location::~rich_location): New.
749 (rich_location::add_fixit_insert): New method.
750 (rich_location::add_fixit_remove): New method.
751 (rich_location::add_fixit_replace): New method.
752 (fixit_insert::fixit_insert): New.
753 (fixit_insert::~fixit_insert): New.
754 (fixit_insert::affects_line_p): New.
755 (fixit_remove::fixit_remove): New.
756 (fixit_remove::affects_line_p): New.
757 (fixit_replace::fixit_replace): New.
758 (fixit_replace::~fixit_replace): New.
759 (fixit_replace::affects_line_p): New.
760
46ce03de
JJ
7612015-11-19 Jakub Jelinek <jakub@redhat.com>
762
763 PR preprocessor/60736
764 * include/cpplib.h (cpp_errno_filename): New prototype.
765 * errors.c (cpp_errno): Don't handle msgid "" specially, use
766 _(msgid) instead of msgid as argument to cpp_error.
767 (cpp_errno_filename): New function.
768 * files.c (read_file_guts): Use cpp_errno_filename instead of
769 cpp_errno.
770 (open_file_failed): Likewise. Use file->name if file->path is NULL
771 in diagnostics.
772
ebedc9a3
DM
7732015-11-13 David Malcolm <dmalcolm@redhat.com>
774
775 * errors.c (cpp_diagnostic): Pass pfile->line_table to
776 rich_location ctor.
777 (cpp_diagnostic_with_line): Likewise.
778 * include/cpplib.h (struct cpp_token): Update comment for src_loc
779 to indicate that the range of the token is "baked into" the
780 source_location.
781 * include/line-map.h (source_location): Update the descriptive
782 comment to reflect the packing scheme for short ranges, adding
783 worked examples of location encoding.
784 (struct line_map_ordinary): Drop field "column_bits" in favor
785 of field "m_column_and_range_bits"; add field "m_range_bits".
786 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete.
787 (location_adhoc_data): Add source_range field.
788 (struct line_maps): Add fields "default_range_bits",
789 "num_optimized_ranges" and "num_unoptimized_ranges".
790 (get_combined_adhoc_loc): Add source_range param.
791 (get_range_from_loc): New declaration.
792 (pure_location_p): New prototype.
793 (COMBINE_LOCATION_DATA): Add source_range param.
794 (SOURCE_LINE): Update for renaming of column_bits.
795 (SOURCE_COLUMN): Likewise. Shift the column right by the map's
796 range_bits.
797 (LAST_SOURCE_LINE_LOCATION): Update for renaming of column_bits.
798 (linemap_position_for_line_and_column): Add line_maps * params.
799 (rich_location::rich_location): Likewise.
800 * lex.c (_cpp_lex_direct): Capture the range of the token, baking
801 it into token->src_loc via a call to COMBINE_LOCATION_DATA.
802 * line-map.c (LINE_MAP_MAX_COLUMN_NUMBER): Reduce from 1U << 17 to
803 1U << 12.
804 (location_adhoc_data_hash): Add the src_range into
805 the hash value.
806 (location_adhoc_data_eq): Require equality of the src_range
807 values.
808 (can_be_stored_compactly_p): New function.
809 (get_combined_adhoc_loc): Add src_range param, and store it,
810 via a bit-packing scheme for short ranges, otherwise within the
811 lookaside table. Remove the requirement that data is non-NULL.
812 (get_range_from_adhoc_loc): New function.
813 (get_range_from_loc): New function.
814 (pure_location_p): New function.
815 (linemap_add): Ensure that start_location has zero for the
816 range_bits, unless we're past LINE_MAP_MAX_LOCATION_WITH_COLS.
817 Initialize range_bits to zero. Assert that the start_location
818 is "pure".
819 (linemap_line_start): Assert that the
820 column_and_range_bits >= range_bits.
821 Update determinination of whether we need to start a new map
822 using the effective column bits, without the range bits.
823 Use the set's default_range_bits in new maps, apart from
824 those with column_bits == 0, which should also have 0 range_bits.
825 Increase the column bits for new maps by the range bits.
826 When adding lines to an existing map, use set->highest_line
827 directly rather than offsetting highest by SOURCE_COLUMN.
828 Add assertions to sanity-check the return value.
829 (linemap_position_for_column): Offset to_column by range_bits.
830 Update set->highest_location if necessary.
831 (linemap_position_for_line_and_column): Add line_maps * param.
832 Update the calculation to offset the column by range_bits, and
833 conditionalize it on being <= LINE_MAP_MAX_LOCATION_WITH_COLS.
834 Bound it by LINEMAPS_MACRO_LOWEST_LOCATION. Update
835 set->highest_location if necessary.
836 (linemap_position_for_loc_and_offset): Handle ad-hoc locations;
837 pass "set" to linemap_position_for_line_and_column.
838 (linemap_macro_map_loc_unwind_toward_spelling): Add line_maps
839 param. Handle ad-hoc locations.
840 (linemap_location_in_system_header_p): Pass on "set" to call to
841 linemap_macro_map_loc_unwind_toward_spelling.
842 (linemap_macro_loc_to_spelling_point): Retain ad-hoc locations.
843 Pass on "set" to call to
844 linemap_macro_map_loc_unwind_toward_spelling.
845 (linemap_resolve_location): Retain ad-hoc locations. Pass on
846 "set" to call to linemap_macro_map_loc_unwind_toward_spelling.
847 (linemap_unwind_toward_expansion): Pass on "set" to call to
848 linemap_macro_map_loc_unwind_toward_spelling.
849 (linemap_expand_location): Extract the data pointer before
850 extracting the location.
851 (rich_location::rich_location): Add line_maps param; use it to
852 extract the range from the source_location.
853 * location-example.txt: Regenerate, showing new representation.
854
8a645150
DM
8552015-11-06 David Malcolm <dmalcolm@redhat.com>
856
857 * errors.c (cpp_diagnostic): Update for change in signature
858 of "error" callback.
859 (cpp_diagnostic_with_line): Likewise, calling override_column
860 on the rich_location.
861 * include/cpplib.h (struct cpp_callbacks): Within "error"
862 callback, convert param from source_location to rich_location *,
863 and drop column_override param.
864 * include/line-map.h (struct source_range): New struct.
865 (struct location_range): New struct.
866 (class rich_location): New class.
867 (linemap_client_expand_location_to_spelling_point): New declaration.
868 * line-map.c (rich_location::rich_location): New ctors.
869 (rich_location::lazily_expand_location): New method.
870 (rich_location::override_column): New method.
871 (rich_location::add_range): New methods.
872 (rich_location::set_range): New method.
873
ee015909
DM
8742015-11-06 David Malcolm <dmalcolm@redhat.com>
875
876 * include/line-map.h (struct linemap_stats): Add fields
877 "adhoc_table_size" and "adhoc_table_entries_used".
878 * line-map.c (linemap_get_statistics): Populate above fields.
879
a6c764d0
MM
8802015-11-04 Mikhail Maltsev <maltsevm@gmail.com>
881
882 * config.in: Regenerate.
883 * configure: Regenerate.
884 * configure.ac: Remove ENABLE_CHECKING.
885
49445904
UB
8862015-11-03 Uros Bizjak <ubizjak@gmail.com>
887
888 * lex.c (search_line_sse42): Correctly advance the pointer to an
889 aligned address.
890
525ce910
DM
8912015-11-02 David Malcolm <dmalcolm@redhat.com>
892
893 * include/line-map.h (source_location): In the table in the
894 descriptive comment, show UNKNOWN_LOCATION, BUILTINS_LOCATION,
895 LINE_MAP_MAX_LOCATION_WITH_COLS, LINE_MAP_MAX_SOURCE_LOCATION.
896 Add notes about ad-hoc values.
897
7ec491c0
MM
8982015-10-21 Mikhail Maltsev <maltsevm@gmail.com>
899
22d66382
MM
900 * include/line-map.h: Use CHECKING_P instead of ENABLE_CHECKING.
901 * init.c: Likewise.
902 * macro.c (struct macro_arg_token_iter, set_arg_token,
903 macro_arg_token_iter_init, macro_arg_token_iter_forward,
904 macro_arg_token_iter_get_token, macro_arg_token_iter_get_location,
905 alloc_expanded_arg_mem, _cpp_backup_tokens): Likewise.
906
7ec491c0
MM
907 * config.in: Regenerate.
908 * configure: Regenerate.
909 * configure.ac (CHECKING_P): Define.
910 * system.h (fancy_abort): Declare.
911 (abort): Define.
912 (gcc_assert): Define. Use CHECKING_P.
913
179b8d05
MM
9142015-10-13 Mikhail Maltsev <maltsevm@gmail.com>
915
916 * system.h (CHECKING_P, gcc_checking_assert): Define.
917
87b470b3
MLI
9182015-09-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
919
920 PR c/66415
921 * line-map.c (linemap_position_for_loc_and_offset): Handle the
922 case of long lines encoded in multiple maps.
923
85bc8baa
MP
9242015-09-07 Marek Polacek <polacek@redhat.com>
925
926 * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
927
bf5372e7
YS
9282015-08-06 Yaakov Selkowitz <yselkowi@redhat.com>
929
930 * configure: Regenerate.
931
d17f7d59
TS
9322015-07-08 Thomas Schwinge <thomas@codesourcery.com>
933
934 * include/line-map.h (RESERVED_LOCATION_COUNT): Change type to
935 source_location.
936
fbb22910
PC
9372015-07-02 Paolo Carlini <paolo.carlini@oracle.com>
938
d885793d 939 PR preprocessor/53690
fbb22910
PC
940 * charset.c (_cpp_valid_ucn): Add cppchar_t * parameter and change
941 return type to bool. Fix encoding of \u0000 and \U00000000 in C++.
942 (convert_ucn): Adjust call.
943 * lex.c (forms_identifier_p): Likewise.
944 * internal.h (_cpp_valid_ucn): Adjust declaration.
945
fe95b036
ESR
9462015-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
947
948 Implement N4197 - Adding u8 character literals
949 * include/cpplib.h (UTF8CHAR, UTF8CHAR_USERDEF): New cpp tokens;
950 (struct cpp_options): Add utf8_char_literals.
951 * init.c (struct lang_flags): Add utf8_char_literals;
952 (struct lang_flags lang_defaults): Add column for utf8_char_literals.
fbb22910 953 * macro.c (stringify_arg()): Treat CPP_UTF8CHAR token;
fe95b036
ESR
954 * expr.c (cpp_userdef_char_remove_type(), cpp_userdef_char_add_type()):
955 Treat CPP_UTF8CHAR_USERDEF, CPP_UTF8CHAR tokens;
956 (cpp_userdef_char_p()): Treat CPP_UTF8CHAR_USERDEF token;
957 (eval_token(), _cpp_parse_expr()): Treat CPP_UTF8CHAR token.
958 * lex.c (lex_string(), _cpp_lex_direct()): Include CPP_UTF8CHAR tokens.
959 * charset.c (converter_for_type(), cpp_interpret_charconst()):
960 Treat CPP_UTF8CHAR token.
961
dc6bcf52
UB
9622015-06-30 Uros Bizjak <ubizjak@gmail.com>
963
964 * lex.c (search_line_sse42) [__GCC_ASM_FLAG_OUTPUTS__]: New main
965 loop using asm flag outputs.
966
a1661b90
MP
9672015-06-08 Marek Polacek <polacek@redhat.com>
968
969 PR c/66415
970 * line-map.c (linemap_position_for_loc_and_offset): Remove
971 linemap_assert_fails; reverse conditions.
972
815facd3
MLI
9732015-05-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
974
975 * line-map.c (LINE_MAP_MAX_COLUMN_NUMBER
976 LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_SOURCE_LOCATION):
977 New constants.
978 (linemap_line_start): Use them.
979 (linemap_position_for_column): Use them.
980
c819ed29
DM
9812015-05-20 David Malcolm <dmalcolm@redhat.com>
982
983 * include/line-map.h (MAP_START_LOCATION): Eliminate the non-const
984 variant, and tweak comment for the const variant.
985 (ORDINARY_MAP_STARTING_LINE_NUMBER): Drop the non-const variant.
986 (ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
987 (ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
988 (SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete.
989 (ORDINARY_MAP_FILE_NAME): Drop the non-const variant.
990 (MACRO_MAP_MACRO): Likewise.
991 (MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
992 (MACRO_MAP_LOCATIONS): Likewise.
993 (MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
994 * line-map.c (linemap_add): Replace writes through macros with
995 direct field accesses.
996 (linemap_enter_macro): Likewise.
997 (linemap_line_start): Likewise.
998
0e50b624
DM
9992015-05-19 David Malcolm <dmalcolm@redhat.com>
1000
1001 * directives.c (do_line): Strengthen local "map" from
1002 const line_map * to const line_map_ordinary *.
1003 (do_linemarker): Likewise.
1004 (_cpp_do_file_change): Assert that we're not dealing with
1005 a macro map. Introduce local "ord_map" via a call to
1006 linemap_check_ordinary, guarded within the check for
1007 non-NULL. Use it for typesafety.
1008 * files.c (cpp_make_system_header): Strengthen local "map" from
1009 const line_map * to const line_map_ordinary *.
1010 * include/cpplib.h (struct cpp_callbacks): Likewise for second
1011 parameter of "file_change" callback.
1012 * include/line-map.h (struct line_map): Convert from a struct
1013 containing a union to a base class.
1014 (struct line_map_ordinary): Convert to a subclass of line_map.
1015 (struct line_map_macro): Likewise.
1016 (linemap_check_ordinary): Strengthen return type from line_map *
1017 to line_map_ordinary *, and add a const-variant.
1018 (linemap_check_macro): New pair of functions.
1019 (ORDINARY_MAP_STARTING_LINE_NUMBER): Strengthen param from
1020 const line_map * to const line_map_ordinary *, eliminating call
1021 to linemap_check_ordinary. Likewise for the non-const variant.
1022 (ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
1023 (ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
1024 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Likewise.
1025 (ORDINARY_MAP_FILE_NAME): Likewise.
1026 (MACRO_MAP_MACRO): Strengthen param from const line_map * to
1027 const line_map_macro *. Likewise for the non-const variant.
1028 (MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
1029 (MACRO_MAP_LOCATIONS): Likewise.
1030 (MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
1031 (struct maps_info): Replace with...
1032 (struct maps_info_ordinary):...this and...
1033 (struct maps_info_macro): ...this.
1034 (struct line_maps): Convert fields "info_ordinary" and
1035 "info_macro" to the above new structs.
1036 (LINEMAPS_MAP_INFO): Delete both functions.
1037 (LINEMAPS_MAPS): Likewise.
1038 (LINEMAPS_ALLOCATED): Rewrite both variants to avoid using
1039 LINEMAPS_MAP_INFO.
1040 (LINEMAPS_USED): Likewise.
1041 (LINEMAPS_CACHE): Likewise.
1042 (LINEMAPS_MAP_AT): Likewise.
1043 (LINEMAPS_ORDINARY_MAPS): Strengthen return type from line_map *
1044 to line_map_ordinary *.
1045 (LINEMAPS_ORDINARY_MAP_AT): Likewise.
1046 (LINEMAPS_LAST_ORDINARY_MAP): Likewise.
1047 (LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise.
1048 (LINEMAPS_MACRO_MAPS): Strengthen return type from line_map * to
1049 line_map_macro *.
1050 (LINEMAPS_MACRO_MAP_AT): Likewise.
1051 (LINEMAPS_LAST_MACRO_MAP): Likewise.
1052 (LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise.
1053 (linemap_map_get_macro_name): Strengthen param from
1054 const line_map * to const line_map_macro *.
1055 (SOURCE_LINE): Strengthen first param from const line_map * to
1056 const line_map_ordinary *, removing call to
1057 linemap_check_ordinary.
1058 (SOURCE_COLUMN): Likewise.
1059 (LAST_SOURCE_LINE_LOCATION): Likewise.
1060 (LAST_SOURCE_LINE): Strengthen first param from const line_map *
1061 to const line_map_ordinary *.
1062 (LAST_SOURCE_COLUMN): Likewise.
1063 (INCLUDED_FROM): Strengthen return type from line_map * to
1064 line_map_ordinary *., and second param from const line_map *
1065 to const line_map_ordinary *, removing call to
1066 linemap_check_ordinary.
1067 (MAIN_FILE_P): Strengthen param from const line_map * to
1068 const line_map_ordinary *, removing call to
1069 linemap_check_ordinary.
1070 (linemap_position_for_line_and_column): Strengthen param from
1071 const line_map * to const line_map_ordinary *.
1072 (LINEMAP_FILE): Strengthen param from const line_map * to
1073 const line_map_ordinary *, removing call to
1074 linemap_check_ordinary.
1075 (LINEMAP_LINE): Likewise.
1076 (LINEMAP_SYSP): Likewise.
1077 (linemap_resolve_location): Strengthen final param from
1078 const line_map ** to const line_map_ordinary **.
1079 * internal.h (CPP_INCREMENT_LINE): Likewise for local "map".
1080 (linemap_enter_macro): Strengthen return type from
1081 const line_map * to const line_map_macro *.
1082 (linemap_add_macro_token): Likewise for first param.
1083 * line-map.c (linemap_check_files_exited): Strengthen local "map"
1084 from const line_map * to const line_map_ordinary *.
1085 (new_linemap): Introduce local "map_size" and use it when
1086 calculating how large the buffer should be. Rewrite based
1087 on change of info_macro and info_ordinary into distinct types.
1088 (linemap_add): Strengthen locals "map" and "from" from line_map *
1089 to line_map_ordinary *.
1090 (linemap_enter_macro): Strengthen return type from
1091 const line_map * to const line_map_macro *, and local "map" from
1092 line_map * to line_map_macro *.
1093 (linemap_add_macro_token): Strengthen param "map" from
1094 const line_map * to const line_map_macro *.
1095 (linemap_line_start): Strengthen local "map" from line_map * to
1096 line_map_ordinary *.
1097 (linemap_position_for_column): Likewise.
1098 (linemap_position_for_line_and_column): Strengthen first param
1099 from const line_map * to const line_map_ordinary *.
1100 (linemap_position_for_loc_and_offset): Strengthen local "map" from
1101 const line_map * to const line_map_ordinary *.
1102 (linemap_ordinary_map_lookup): Likewise for return type and locals
1103 "cached" and "result".
1104 (linemap_macro_map_lookup): Strengthen return type and locals
1105 "cached" and "result" from const line_map * to
1106 const line_map_macro *.
1107 (linemap_macro_map_loc_to_exp_point): Likewise for param "map".
1108 (linemap_macro_map_loc_to_def_point): Likewise.
1109 (linemap_macro_map_loc_unwind_toward_spelling): Likewise.
1110 (linemap_get_expansion_line): Strengthen local "map" from
1111 const line_map * to const line_map_ordinary *.
1112 (linemap_get_expansion_filename): Likewise.
1113 (linemap_map_get_macro_name): Strengthen param from
1114 const line_map * to const line_map_macro *.
1115 (linemap_location_in_system_header_p): Add call to
1116 linemap_check_ordinary in region guarded by
1117 !linemap_macro_expansion_map_p. Introduce local "macro_map" via
1118 linemap_check_macro in other region, using it in place of "map"
1119 for typesafety.
1120 (first_map_in_common_1): Add calls to linemap_check_macro.
1121 (trace_include): Strengthen param "map" from const line_map * to
1122 const line_map_ordinary *.
1123 (linemap_macro_loc_to_spelling_point): Strengthen final param from
1124 const line_map ** to const line_map_ordinary **. Replace a
1125 C-style cast with a const_cast, and add calls to
1126 linemap_check_macro and linemap_check_ordinary.
1127 (linemap_macro_loc_to_def_point): Likewise.
1128 (linemap_macro_loc_to_exp_point): Likewise.
1129 (linemap_resolve_location): Strengthen final param from
1130 const line_map ** to const line_map_ordinary **.
1131 (linemap_unwind_toward_expansion): Introduce local "macro_map" via
1132 a checked cast and use it in place of *map.
1133 (linemap_unwind_to_first_non_reserved_loc): Strengthen local
1134 "map1" from const line_map * to const line_map_ordinary *.
1135 (linemap_expand_location): Introduce local "ord_map" via a checked
1136 cast and use it in place of map.
1137 (linemap_dump): Make local "map" const. Strengthen local
1138 "includer_map" from line_map * to const line_map_ordinary *.
1139 Introduce locals "ord_map" and "macro_map" via checked casts and
1140 use them in place of "map" for typesafety.
1141 (linemap_dump_location): Strengthen local "map" from
1142 const line_map * to const line_map_ordinary *.
1143 (linemap_get_file_highest_location): Update for elimination of
1144 union.
1145 (linemap_get_statistics): Strengthen local "cur_map" from
1146 line_map * to const line_map_macro *. Update uses of sizeof to
1147 use the appropriate line_map subclasses.
1148 * macro.c (_cpp_warn_if_unused_macro): Add call to
1149 linemap_check_ordinary.
1150 (builtin_macro): Strengthen local "map" from const line_map * to
1151 const line_map_macro *.
1152 (enter_macro_context): Likewise.
1153 (replace_args): Likewise.
1154 (tokens_buff_put_token_to): Likewise for param "map".
1155 (tokens_buff_add_token): Likewise.
1156
ba4ad400
DM
11572015-05-13 David Malcolm <dmalcolm@redhat.com>
1158
1159 * include/line-map.h (source_location): Add a reference to
1160 location-example.txt to the descriptive comment.
1161 * location-example.txt: New file.
1162
0501dbd9
DM
11632015-05-13 David Malcolm <dmalcolm@redhat.com>
1164
1165 * include/line-map.h (MAX_SOURCE_LOCATION): Convert from a macro
1166 to a const source_location.
1167 (RESERVED_LOCATION_COUNT): Likewise.
1168 (linemap_check_ordinary): Convert from a macro to a pair of inline
1169 functions, for const/non-const arguments.
1170 (MAP_START_LOCATION): Likewise.
1171 (ORDINARY_MAP_STARTING_LINE_NUMBER): Likewise.
1172 (ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
1173 (ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
1174 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Convert from a macro to a
1175 pair of inline functions, for const/non-const arguments, where the
1176 latter is named...
1177 (SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): New function.
1178 (ORDINARY_MAP_FILE_NAME): Convert from a macro to a pair of inline
1179 functions, for const/non-const arguments.
1180 (MACRO_MAP_MACRO): Likewise.
1181 (MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
1182 (MACRO_MAP_LOCATIONS): Likewise.
1183 (MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
1184 (LINEMAPS_MAP_INFO): Likewise.
1185 (LINEMAPS_MAPS): Likewise.
1186 (LINEMAPS_ALLOCATED): Likewise.
1187 (LINEMAPS_USED): Likewise.
1188 (LINEMAPS_CACHE): Likewise.
1189 (LINEMAPS_ORDINARY_CACHE): Likewise.
1190 (LINEMAPS_MACRO_CACHE): Likewise.
1191 (LINEMAPS_MAP_AT): Convert from a macro to an inline function.
1192 (LINEMAPS_LAST_MAP): Likewise.
1193 (LINEMAPS_LAST_ALLOCATED_MAP): Likewise.
1194 (LINEMAPS_ORDINARY_MAPS): Likewise.
1195 (LINEMAPS_ORDINARY_MAP_AT): Likewise.
1196 (LINEMAPS_ORDINARY_ALLOCATED): Likewise.
1197 (LINEMAPS_ORDINARY_USED): Likewise.
1198 (LINEMAPS_LAST_ORDINARY_MAP): Likewise.
1199 (LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise.
1200 (LINEMAPS_MACRO_MAPS): Likewise.
1201 (LINEMAPS_MACRO_MAP_AT): Likewise.
1202 (LINEMAPS_MACRO_ALLOCATED): Likewise.
1203 (LINEMAPS_MACRO_USED): Likewise.
1204 (LINEMAPS_MACRO_LOWEST_LOCATION): Likewise.
1205 (LINEMAPS_LAST_MACRO_MAP): Likewise.
1206 (LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise.
1207 (IS_ADHOC_LOC): Likewise.
1208 (COMBINE_LOCATION_DATA): Likewise.
1209 (SOURCE_LINE): Likewise.
1210 (SOURCE_COLUMN): Likewise.
1211 (LAST_SOURCE_LINE_LOCATION): Likewise.
1212 (LAST_SOURCE_LINE): Likewise.
1213 (LAST_SOURCE_COLUMN): Likewise.
1214 (LAST_SOURCE_LINE_LOCATION)
1215 (INCLUDED_FROM): Likewise.
1216 (MAIN_FILE_P): Likewise.
1217 (LINEMAP_FILE): Likewise.
1218 (LINEMAP_LINE): Likewise.
1219 (LINEMAP_SYSP): Likewise.
1220 (linemap_location_before_p): Likewise.
1221 * line-map.c (linemap_check_files_exited): Make local "map" const.
1222 (linemap_add): Use SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
1223 (linemap_line_start): Likewise.
1224
eb70f327
MH
12252015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
1226
1227 * aclocal.m4: Regenerated with automake-1.11.6.
1228
60c12095
DM
12292015-05-13 David Malcolm <dmalcolm@redhat.com>
1230
1231 * include/line-map.h (linemap_assert): Move up within the file to
1232 before all of the map accessor macros.
1233 (linemap_assert_fails): Likewise.
1234 (linemap_check_ordinary): Likewise.
1235 (linemap_macro_expansion_map_p): Likewise.
1236
c3388e62
DM
12372015-05-12 David Malcolm <dmalcolm@redhat.com>
1238
1239 * directives.c (do_line): Set seen_line_directive on line_table.
1240 (do_linemarker): Likewise.
1241 * include/line-map.h (struct line_maps): Add new field
1242 "seen_line_directive".
1243
fe191308
JM
12442015-05-08 Jason Merrill <jason@redhat.com>
1245
1246 * include/cpplib.h: Add CPP_W_CXX11_COMPAT.
1247 (struct cpp_options): Add cpp_warn_cxx11_compat.
1248 * init.c (cpp_create_reader): Initialize it.
1249 * lex.c (lex_string): Add -Wc++11-compat warning.
1250
21c0a521
DM
12512015-05-05 David Malcolm <dmalcolm@redhat.com>
1252
1253 * pch.c (cpp_valid_state): Fix indentation so that it reflects the
1254 block structure.
1255
c87b25e6
DM
12562015-05-05 David Malcolm <dmalcolm@redhat.com>
1257
1258 * include/line-map.h: Fix comment at the top of the file.
1259 (source_location): Rewrite and expand the comment for this
1260 typedef, adding an ascii-art table to clarify how source_location
1261 values are allocated.
1262 * line-map.c: Fix comment at the top of the file.
1263
ca708025
RB
12642015-04-09 Richard Biener <rguenther@suse.de>
1265
1266 PR pch/65550
1267 * files.c (pch_open_file): Allow main and pre-included files
1268 when trying to open a PCH.
1269
e4b33ee5
JJ
12702015-04-06 Jakub Jelinek <jakub@redhat.com>
1271
1272 PR preprocessor/61977
1273 * lex.c (cpp_peek_token): If peektok is CPP_EOF, back it up
1274 with all tokens peeked by the current function.
1275
b8cd77f4
JJ
12762015-04-02 Jakub Jelinek <jakub@redhat.com>
1277
1278 PR preprocessor/61977
1279 * lex.c (cpp_peek_token): Temporarily clear pfile->cb.line_change.
1280
fb136e35
JJ
12812015-03-23 Jakub Jelinek <jakub@redhat.com>
1282
1283 PR preprocessor/65238
1284 * internal.h (_cpp_scan_out_logical_line): Add third argument.
1285 * directives.c (prepare_directive_trad): Pass false to it.
1286 * traditional.c (_cpp_read_logical_line_trad,
1287 _cpp_create_trad_definition): Likewise.
1288 (struct fun_macro): Add paramc field.
1289 (fun_like_macro): New function.
1290 (maybe_start_funlike): Handle NODE_BUILTIN macros. Initialize
1291 macro->paramc field.
1292 (save_argument): Use macro->paramc instead of
1293 macro->node->value.macro->paramc.
1294 (push_replacement_text): Formatting fix.
1295 (recursive_macro): Use fun_like_macro helper.
1296 (_cpp_scan_out_logical_line): Likewise. Add BUILTIN_MACRO_ARG
1297 argument. Initialize fmacro.paramc field. Handle builtin
1298 function-like macros.
1299
a5858a3d
ESR
13002015-03-16 Edward Smith-Rowland <3dw4rd@verizon.net>
1301
1302 PR c++/64626
1303 * lex.c (lex_number): If a number ends with digit-seps (') skip back
1304 and let lex_string take them.
1305
44d95244
MT
13062015-03-02 Markus Trippelsdorf <markus@trippelsdorf.de>
1307
1308 PR target/65261
1309 * lex.c (search_line_fast): Silence ubsan errors.
1310
f8abc9ba
DS
13112015-02-03 <dodji@redhat.com>
1312
1313 PR preprocessor/64803
1314 * internal.h (cpp_reader::top_most_macro_node): New data member.
1315 * macro.c (enter_macro_context): Pass the location of the end of
1316 the top-most invocation of the function-like macro, or the
1317 location of the expansion point of the top-most object-like macro.
1318 (cpp_get_token_1): Store the top-most macro node in the new
1319 pfile->top_most_macro_node data member.
1320 (_cpp_pop_context): Clear the new cpp_reader::top_most_macro_node
1321 data member.
1322
95d0610c
SN
13232015-01-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
1324
1325 * lex.c (search_line_fast): Change __ARM_NEON__ to __ARM_NEON.
1326
10ef8f28
MP
13272015-01-23 Marek Polacek <polacek@redhat.com>
1328
1329 DR#412
1330 PR preprocessor/60570
1331 * directives.c (do_elif): Don't evaluate #elif conditionals
1332 when they don't need to be.
1333
6e6cb471
JJ
13342015-01-16 Jakub Jelinek <jakub@redhat.com>
1335
1336 * expr.c (cpp_classify_number): Add N_() around ?: string
1337 literals used in cpp_error_with_line call as format string.
1338
5624e564
JJ
13392015-01-05 Jakub Jelinek <jakub@redhat.com>
1340
1341 Update copyright years.
1342
1f8d3e84
JJ
13432014-12-19 Jakub Jelinek <jakub@redhat.com>
1344
1345 PR preprocessor/63831
1346 * directives.c (lex_macro_node): Remove __has_attribute__ handling.
1347 * internal.h (struct spec_node): Remove n__has_attribute__ field.
1348 (struct lexer_state): Remove in__has_attribute__ field.
1349 * macro.c (_cpp_builtin_macro_text): Handle BT_HAS_ATTRIBUTE.
1350 * identifiers.c (_cpp_init_hashtable): Remove __has_attribute__
1351 handling.
1352 * init.c (builtin_array): Add __has_attribute and __has_cpp_attribute.
1353 (cpp_init_special_builtins): Don't initialize __has_attribute
1354 or __has_cpp_attribute if CLK_ASM or pfile->cb.has_attribute is NULL.
1355 * traditional.c (enum ls): Remove ls_has_attribute,
1356 ls_has_attribute_close.
1357 (_cpp_scan_out_logical_line): Remove __has_attribute__ handling.
1358 * include/cpplib.h (enum cpp_builtin_type): Add BT_HAS_ATTRIBUTE.
1359 * pch.c (cpp_read_state): Remove __has_attribute__ handling.
1360 * expr.c (eval_token): Likewise.
1361 (parse_has_attribute): Removed.
1362
01ca36af
UB
13632014-12-11 Uros Bizjak <ubizjak@gmail.com>
1364
1365 * directives.c (cpp_define_formatted): Use xvasprintf.
1366
b93c0722
MLI
13672014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
1368
1369 * line-map.c (linemap_position_for_loc_and_offset): Add new
1370 linemap_assert_fails.
1371
73bd8329
MLI
13722014-12-02 Manuel López-Ibáñez <manu@gcc.gnu.org>
1373
1374 * include/line-map.h (linemap_assert_fails): Declare.
1375 * line-map.c (linemap_position_for_loc_and_offset): Use it.
1376
9c320ab1
MLI
13772014-12-02 Manuel López-Ibáñez <manu@gcc.gnu.org>
1378
49445904
UB
1379 * line-map.c (linemap_add): Fix typo.
1380 (linemap_line_start): Fix whitespace.
9c320ab1 1381
81fee4a7
JM
13822014-11-29 John Schmerge <jbschmerge@gmail.com>
1383
1384 PR preprocessor/41698
1385 * charset.c (one_utf8_to_utf16): Do not produce surrogate pairs
1386 for 0xffff.
1387
43ba1c6c
JJ
13882014-11-25 Jakub Jelinek <jakub@redhat.com>
1389
1390 PR preprocessor/60436
1391 * line-map.c (linemap_line_start): If highest is above 0x60000000
1392 and we are still tracking columns or highest is above 0x70000000,
1393 force add_map.
1394
8a23b100
UB
13952014-11-20 Uros Bizjak <ubizjak@gmail.com>
1396
1397 PR target/63966
1b6b13f3
UB
1398 * lex.c [__i386__ || __x86_64__]: Compile special SSE functions
1399 only for (__GNUC__ >= 5 || !defined(__PIC__)).
8a23b100 1400
d82f1e13
MLI
14012014-11-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
1402
1403 * include/line-map.h: Include EXPR, so that unused variable warnings
1404 do not occur.
1405
3aa34c1d
MLI
14062014-11-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
1407
1408 PR fortran/44054
1409 * include/line-map.h (linemap_position_for_loc_and_offset):
1410 Declare.
1411 * line-map.c (linemap_position_for_loc_and_offset): New.
1412
35485da9
DM
14132014-11-11 David Malcolm <dmalcolm@redhat.com>
1414
1415 * ChangeLog.jit: New.
1416
42fd12b1
ESR
14172014-11-10 Edward Smith-Rowland <3dw4rd@verizon.net>
1418
1419 * include/cpplib.h (cpp_callbacks): Add has_attribute.
1420 * internal.h (lexer_state): Add in__has_attribute__.
1421 * directives.c (lex_macro_node): Prevent use of __has_attribute__
1422 as a macro.
1423 * expr.c (parse_has_attribute): New function; (eval_token): Look for
1424 __has_attribute__ and route to parse_has_attribute.
1425 * identifiers.c (_cpp_init_hashtable): Initialize n__has_attribute__.
1426 * pch.c (cpp_read_state): Initialize n__has_attribute__.
1427 * traditional.c (enum ls): Add ls_has_attribute, ls_has_attribute_close;
1428 (_cpp_scan_out_logical_line): Attend to __has_attribute__.
1429
be5ffc59
JM
14302014-11-06 Joseph Myers <joseph@codesourcery.com>
1431
1432 * include/cpp-id-data.h (struct cpp_macro): Update comment
1433 regarding parameters.
1434 * include/cpplib.h (struct cpp_macro_arg, struct cpp_identifier):
1435 Add spelling fields.
1436 (struct cpp_token): Update comment on macro_arg.
1437 * internal.h (_cpp_save_parameter): Add extra argument.
1438 (_cpp_spell_ident_ucns): New declaration.
1439 * lex.c (lex_identifier): Add SPELLING argument. Set *SPELLING to
1440 original spelling of identifier.
1441 (_cpp_lex_direct): Update calls to lex_identifier.
1442 (_cpp_spell_ident_ucns): New function, factored out of
1443 cpp_spell_token.
1444 (cpp_spell_token): Adjust FORSTRING argument semantics to return
1445 original spelling of identifiers. Use _cpp_spell_ident_ucns in
1446 !FORSTRING case.
1447 (_cpp_equiv_tokens): Check spellings of identifiers and macro
1448 arguments are identical.
1449 * macro.c (macro_arg_saved_data): New structure.
1450 (paste_tokens): Use original spellings of identifiers from
1451 cpp_spell_token.
1452 (_cpp_save_parameter): Add argument SPELLING. Save both canonical
1453 node and its value.
1454 (parse_params): Update calls to _cpp_save_parameter.
1455 (lex_expansion_token): Save spelling of macro argument tokens.
1456 (_cpp_create_definition): Extract canonical node from saved data.
1457 (cpp_macro_definition): Use UCNs in spelling of macro name. Use
1458 original spellings of macro argument tokens and identifiers.
1459 * traditional.c (scan_parameters): Update call to
1460 _cpp_save_parameter.
1461
701cade1
JM
14622014-11-05 Joseph Myers <joseph@codesourcery.com>
1463
1464 PR preprocessor/9449
1465 * init.c (lang_defaults): Enable extended identifiers for C++ and
1466 C99-based standards.
1467
19a9ba64
AM
14682014-10-22 Alan Modra <amodra@gmail.com>
1469
1470 * symtab.c (ht_create): Use obstack_specify_allocation in place of
1471 _obstack_begin.
1472 * files.c (_cpp_init_files): Likewise.
1473 * init.c (cpp_create_reader): Likewise.
1474 * identifiers.c (_cpp_init_hashtable): Likewise.
1475
3aac0952
MLI
14762014-10-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
1477
1478 * include/line-map.h (linemap_location_from_macro_expansion_p):
1479 const struct line_maps * argument.
1480 (linemap_position_for_line_and_column): const struct line_map *
1481 argument.
1482 * line-map.c (linemap_add_macro_token): Use correct argument name
1483 in comment.
1484 (linemap_position_for_line_and_column): const struct line_map *
1485 argument.
1486 (linemap_macro_map_loc_to_def_point): Fix comment. Make static.
1487 (linemap_location_from_macro_expansion_p): const struct line_maps *
1488 argument.
1489 (linemap_resolve_location): Fix argument names in comment.
1490
0ccaaab0
BS
14912014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1492
1493 * lex.c (search_line_fast): Add new version to be used for Power8
1494 and later targets when Altivec is enabled. Restrict the existing
1495 Altivec version to big-endian systems so that lvsr is not used on
1496 little endian, where it is deprecated. Remove LE-specific code
1497 from the now-BE-only version.
1498
dc257367
BE
14992014-10-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
1500 Jeff Law <law@redhat.com>
1501
1502 * charset.c (convert_no_conversion): Reallocate memory with 25%
1503 headroom.
1504
a15f7cb8
ESR
15052014-10-01 Edward Smith-Rowland <3dw4rd@verizon.net>
1506
1507 Implement SD-6: SG10 Feature Test Recommendations
1508 * internal.h (lexer_state, spec_nodes): Add in__has_include__.
1509 * directives.c: Support __has_include__ builtin.
1510 * expr.c (parse_has_include): New function to parse __has_include__
1511 builtin; (eval_token()): Use it.
1512 * files.c (_cpp_has_header()): New funtion to look for header;
1513 (open_file_failed()): Not an error to not find a header file for
1514 __has_include__.
1515 * identifiers.c (_cpp_init_hashtable()): Add entry for __has_include__.
1516 * pch.c (cpp_read_state): Lookup __has_include__.
1517 * traditional.c (enum ls, _cpp_scan_out_logical_line()): Walk through
1518 __has_include__ statements.
1519
cc811a8a
BE
15202014-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
1521
1522 PR preprocessor/58893
1523 * errors.c (cpp_diagnostic): Fix possible out of bounds access.
1524 * files.c (_cpp_stack_include): Initialize src_loc for IT_CMDLINE.
1525
083e891e
MP
15262014-09-24 Marek Polacek <polacek@redhat.com>
1527
1528 PR c/61405
1529 PR c/53874
1530 * include/cpplib.h (enum cpp_ttype): Define CPP_KEYWORD.
1531
d87fc699
JH
15322014-09-17 Jan Hubicka <hubicka@ucw.cz>
1533
1534 * charset.c (conversion): Rename to ...
1535 (cpp_conversion): ... this one; update.
1536 * files.c (file_hash_entry): Rename to ...
1537 (cpp_file_hash_entry): ... this one ; update.
1538
909eb89c
MP
15392014-09-17 Marek Polacek <polacek@redhat.com>
1540
1541 PR c/61854
1542 * init.c (struct lang_flags): Remove cplusplus_comments.
1543 (cpp_set_lang): Likewise.
1544 (post_options): Likewise.
1545 * lex.c (_cpp_lex_direct): Disallow C++ style comments in C90/C94.
1546
1ef33fd4
MLI
15472014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
1548
1549 * include/cpplib.h (struct cpp_options): Declare warn_normalize as
1550 int instead of enum.
1551
2b71f4a4
MLI
15522014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
1553
1554 * macro.c (replace_args): Use cpp_pedwarning, cpp_warning and
1555 CPP_W flags.
1556 * include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
1557 * init.c (cpp_create_reader): Do not init to -1 here.
1558 * expr.c (num_binary_op): Use cpp_pedwarning.
1559
81b5d104
MLI
15602014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
1561
1562 * directives.c (check_eol_1): New.
1563 (check_eol_endif_labels): New.
1564 (check_eol): Call check_eol_1.
1565 (do_else,do_endif): Call check_eol_endif_labels.
1566
b753b37b
MLI
15672014-08-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
1568
1569 * macro.c (warn_of_redefinition): Suppress warnings for builtins
1570 that lack the NODE_WARN flag, unless Wbuiltin-macro-redefined.
1571 (_cpp_create_definition): Use Wbuiltin-macro-redefined for
1572 builtins that lack the NODE_WARN flag.
1573 * directives.c (do_undef): Likewise.
1574 * init.c (cpp_init_special_builtins): Do not change flags
1575 depending on Wbuiltin-macro-redefined.
1576
7c05e50c
ESR
15772014-08-28 Edward Smith-Rowland <3dw4rd@verizon.net>
1578
1579 PR cpp/23827 - standard C++ should not have hex float preprocessor
1580 tokens
1581 * libcpp/init.c (lang_flags): Change CXX98 flag for extended numbers
1582 from 1 to 0.
1583 * libcpp/expr.c (cpp_classify_number): Weite error message for improper
1584 use of hex floating literal.
1585
e4276ba5
ESR
15862014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
1587
1588 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z;
1589 Rename CLK_GNUCXX1Y, CLK_CXX1Y to CLK_GNUCXX14, CLK_CXX14;
1590 * init.c (struct lang_flags lang_defaults): Add column for trigraphs;
1591 Add rows for CLK_GNUCXX1Z, CLK_CXX1Z; (cpp_set_lang): Set trigraphs;
1592 (cpp_init_builtins): Set __cplusplus to 201402L for C++14;
1593 Set __cplusplus to 201500L for C++17.
1594 * expr.c (cpp_classify_number): Change C++1y to C++14 in binary
1595 constants error message.
1596
dd3ff077
MP
15972014-08-20 Marek Polacek <polacek@redhat.com>
1598
1599 * include/cpplib.h (cpp_options): Use signed char.
1600 * lex.c (_cpp_lex_direct): Don't warn in C++ mode.
1601
3f4f5c9a
MP
16022014-08-19 Marek Polacek <polacek@redhat.com>
1603
1604 * lex.c (_cpp_lex_direct): Fix a typo.
1605
177cce46
MP
16062014-08-19 Marek Polacek <polacek@redhat.com>
1607
1608 * charset.c (_cpp_valid_ucn): Warn only if -Wc90-c99-compat.
1609 * lex.c (_cpp_lex_direct): Likewise.
1610 * macro.c (replace_args): Likewise.
1611 (parse_params): Likewise.
1612 * include/cpplib.h (cpp_options): Change cpp_warn_c90_c99_compat
1613 to char.
1614
f3bede71
MP
16152014-08-10 Marek Polacek <polacek@redhat.com>
1616
1617 PR c/51849
1618 * lex.c (_cpp_lex_direct): Warn when -Wc90-c99-compat is in effect.
1619 * charset.c (_cpp_valid_ucn): Likewise.
1620 * include/cpplib.h (cpp_options): Add cpp_warn_c90_c99_compat.
1621 * macro.c (replace_args): Warn when -Wc90-c99-compat is in effect.
1622 (parse_params): Likewise.
1623
61eb99f6
MP
16242014-07-27 Marek Polacek <polacek@redhat.com>
1625
1626 PR c/61861
1627 * macro.c (builtin_macro): Add location parameter. Set
1628 location of builtin macro to the expansion point.
1629 (enter_macro_context): Pass location to builtin_macro.
1630
c468587a
DS
16312014-07-16 Dodji Seketeli <dodji@redhat.com>
1632
1633 Support location tracking for built-in macro tokens
1634 * include/line-map.h (line_maps::builtin_location): New data
1635 member.
1636 (line_map_init): Add a new parameter to initialize the new
1637 line_maps::builtin_location data member.
1638 * line-map.c (linemap_init): Initialize the
1639 line_maps::builtin_location data member.
1640 * macro.c (builtin_macro): Create a macro map and track the token
1641 resulting from the expansion of a built-in macro.
1642
3976796b
ESR
16432014-07-10 Edward Smith-Rowland <3dw4rd@verizon.net>
1644 Jonathan Wakely <jwakely@redhat.com>
1645
c786fca6 1646 PR preprocessor/61389
3976796b
ESR
1647 * macro.c (_cpp_arguments_ok, parse_params, create_iso_definition):
1648 Warning messages mention C++11 in c++ mode and C99 in c mode.
1649 * lex.c (lex_identifier_intern, lex_identifier): Ditto
1650
7aee8646
ESR
16512014-07-09 Edward Smith-Rowland <3dw4rd@verizon.net>
1652
1653 PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped
1654 by preprocessor
1655 * lex.c (lex_raw_string ()): Do not warn about invalid suffix
1656 if skipping. (lex_string ()): Ditto.
1657
98ba7482
ESR
16582014-06-04 Edward Smith-Rowland <3dw4rd@verizon.net>
1659
1660 PR c++/61038
1661 * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
1662 Combine user-defined escape logic with the other string and char logic.
1663
edf6ddf6
RB
16642014-05-26 Richard Biener <rguenther@suse.de>
1665
1666 * configure.ac: Remove long long and __int64 type checks,
1667 add check for uint64_t and fail if that wasn't found.
1668 * include/cpplib.h (cpp_num_part): Use uint64_t.
1669 * config.in: Regenerate.
1670 * configure: Likewise.
1671
28939589
MP
16722014-05-21 Marek Polacek <polacek@redhat.com>
1673
1674 PR c/61212
1675 * files.c (find_file_in_dir): Add parens around &&.
1676
49039169
ESR
16772014-05-20 Edward Smith-Rowland <3dw4rd@verizon.net>
1678
28939589 1679 PR c++/61038
49039169
ESR
1680 * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
1681 Check for user-defined literal strings and user-defined literal chars
1682 to escape necessary characters.
1683
54da09ee
RB
16842014-05-20 Richard Biener <rguenther@suse.de>
1685
1686 * configure.ac: Copy gcc logic of detecting a 64bit type.
1687 Remove HOST_WIDE_INT define.
1688 * include/cpplib.h: typedef cpp_num_part to a 64bit type,
1689 similar to how hwint.h does it.
1690 * config.in: Regenerate.
1691 * configure: Likewise.
1692
eac3e079
JY
16932014-05-09 Joey Ye <joey.ye@arm.com>
1694
1695 * files.c (find_file_in_dir): Always try to shorten for DOS
1696 non-system headers.
1697 * init.c (ENABLE_CANONICAL_SYSTEM_HEADERS): Default enabled for DOS.
1698
f543058d
RB
16992014-05-07 Richard Biener <rguenther@suse.de>
1700
1701 * configure.ac: Always set need_64bit_hwint to yes.
1702 * configure: Regenerated.
1703
d9f069ab
RO
17042014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1705
1706 * lex.c: Remove Solaris 9 reference.
1707
341c653c
WL
17082014-02-24 Walter Lee <walt@tilera.com>
1709
1710 * configure.ac: Change "tilepro" triplet to "tilepro*".
1711 * configure: Regenerate.
1712
179652df
JJ
17132014-02-19 Jakub Jelinek <jakub@redhat.com>
1714
1715 PR preprocessor/58844
1716 * macro.c (enter_macro_context): Only push
1717 macro_real_token_count (macro) tokens rather than
1718 macro->count tokens, regardless of
1719 CPP_OPTION (pfile, track-macro-expansion).
1720
acf601ae
JJ
17212014-02-07 Jakub Jelinek <jakub@redhat.com>
1722
1723 PR preprocessor/56824
1724 * line-map.c (get_combined_adhoc_loc, linemap_get_expansion_line,
1725 linemap_get_expansion_filename, linemap_location_in_system_header_p,
1726 linemap_location_from_macro_expansion_p,
1727 linemap_macro_loc_to_spelling_point, linemap_macro_loc_to_def_point,
1728 linemap_macro_loc_to_exp_point, linemap_expand_location): Fix
1729 formatting.
1730 (linemap_compare_locations): Look through adhoc locations for both
1731 l0 and l1.
1732
7ecc3eb9
DS
17332014-01-23 Dodji Seketeli <dodji@redhat.com>
1734
1735 PR PR preprocessor/58580
1736 * include/line-map.h (linemap_get_file_highest_location): Declare
1737 new function.
1738 * line-map.c (linemap_get_file_highest_location): Define it.
1739
35c3d610
RS
17402014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1741
1742 Update copyright years
1743
3a4efce7
JM
17442013-12-09 Joseph Myers <joseph@codesourcery.com>
1745
1746 PR preprocessor/55715
1747 * expr.c (num_binary_op): Implement subtraction directly rather
1748 than with negation and falling through into addition case.
1749
aadce585
BS
17502013-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1751
1752 * lex.c (search_line_fast): Correct for little endian.
1753
d3f4ff8b
JM
17542013-11-15 Joseph Myers <joseph@codesourcery.com>
1755
1756 * ucnid.tab: Add C11 and C11NOSTART data.
1757 * makeucnid.c (digit): Rename enum value to N99.
1758 (C11, N11, all_languages): New enum values.
1759 (NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
1760 (flags, decomp, combining_value): Use NUM_CODE_POINTS as array
1761 size.
1762 (decomp): Use unsigned int as element type.
1763 (all_decomp): New array.
1764 (read_ucnid): Handle C11 and C11NOSTART. Use MAX_CODE_POINT.
1765 (read_table): Use MAX_CODE_POINT. Store all decompositions in
1766 all_decomp.
1767 (read_derived): Use MAX_CODE_POINT.
1768 (write_table): Use NUM_CODE_POINTS. Print N99, C11 and N11
1769 flags. Print whole array variable declaration rather than just
1770 array contents.
1771 (char_id_valid, write_context_switch): New functions.
1772 (main): Call write_context_switch.
1773 * ucnid.h: Regenerate.
1774 * include/cpplib.h (struct cpp_options): Add c11_identifiers.
1775 * init.c (struct lang_flags): Add c11_identifiers.
1776 (cpp_set_lang): Set c11_identifiers option from selected language.
1777 * internal.h (struct normalize_state): Document "previous" as
1778 previous starter character.
1779 (NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
1780 * charset.c (DIG): Rename enum value to N99.
1781 (C11, N11): New enum values.
1782 (struct ucnrange): Give name to struct. Use short for flags and
1783 unsigned int for end of range. Include ucnid.h for whole variable
1784 declaration.
1785 (ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
1786 Allow for C11 in determining valid characters and valid start
1787 characters. Use check_nfc for non-Hangul context-dependent
1788 checks. Only store starter characters in nst->previous.
1789 (_cpp_valid_ucn): Pass new argument to
1790 NORMALIZE_STATE_UPDATE_IDNUM.
1791 * lex.c (lex_identifier): Pass new argument to
1792 NORMALIZE_STATE_UPDATE_IDNUM. Call NORMALIZE_STATE_UPDATE_IDNUM
1793 after initial non-UCN part of identifier.
1794 (lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.
1795
54848ff8
JM
17962013-11-15 Joseph Myers <joseph@codesourcery.com>
1797
1798 * ucnid.tab: Mark C99 digits as [C99DIG].
1799 * makeucnid.c (read_ucnid): Handle [C99DIG].
1800 (read_table): Don't check for digit characters.
1801 * ucnid.h: Regenerate.
1802
5157b91e
TB
18032013-11-06 Tobias Burnus <burnus@net-b.de>
1804
1805 * macro.c (_cpp_builtin_macro_text): Correct
1806 wording of two warnings.
1807
e8ff5196
TB
18082013-11-05 Tobias Burnus <burnus@net-b.de>
1809
1810 * include/cpplib.h (CPP_W_DATE_TIME): Added.
1811 (cpp_options): Add warn_date_time.
1812 * init.c (cpp_create_reader): Init it.
1813 * macro.c (_cpp_builtin_macro_text): Warn when
1814 __DATE__/__TIME__/__TIMESTAMP__ is used.
1815
7057e645
ESR
18162013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
1817
e8ff5196 1818 Implement C++14 digit separators.
7057e645
ESR
1819 * include/cpplib.h (cpp_options): Add digit_separators flag.
1820 * internal.h (DIGIT_SEP(c)): New macro.
1821 * expr.c (cpp_classify_number): Check improper placement of digit sep;
1822 (cpp_interpret_integer): Skip over digit separators.
1823 * init.c (lang_flags): Add digit_separators flag; (lang_defaults): Add
1824 digit separator flags per language; (cpp_set_lang): Set
1825 digit_separators
1826 * lex.c (lex_number): Add digits separator to allowable characters for
1827 C++14.
1828
459260ec
DM
18292013-10-15 David Malcolm <dmalcolm@redhat.com>
1830
1831 * Makefile.in (PICFLAG): New.
1832 (ALL_CFLAGS): Add PICFLAG.
1833 (ALL_CXXFLAGS): Likewise.
1834 * configure.ac: Add --enable-host-shared, setting up new
1835 PICFLAG variable.
1836 * configure: Regenerate.
1837
fd6eea0c
RE
18382013-08-07 Richard Earnshaw <rearnsha@arm.com>
1839
1840 * configure.ac: Set need_64bit_hwint for all arm targets.
1841 * configure: Regenerated.
1842
8cf88735
JJ
18432013-07-20 Jakub Jelinek <jakub@redhat.com>
1844
1845 PR preprocessor/57620
1846 * lex.c (lex_raw_string): Undo phase1 and phase2 transformations
1847 between R" and final " rather than only in between R"del( and )del".
1848
87e356ba
JJ
18492013-07-10 Jakub Jelinek <jakub@redhat.com>
1850
d5e48350
JJ
1851 PR preprocessor/57824
1852 * lex.c (lex_raw_string): Allow reading new-lines if
1853 in_deferred_pragma or if parsing_args and there is still
1854 data in the current buffer.
1855
c26302d5
JJ
1856 * include/cpplib.h (cpp_token_val_index): Change parameter type to
1857 const cpp_token *.
1858 * lex.c (cpp_token_val_index): Likewise.
1859
87e356ba
JJ
1860 PR preprocessor/57757
1861 * lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING
1862 or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that
1863 starts if a-zA-Z_.
1864
c865f923
ESR
18652013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net>
1866
1867 * lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
1868 as concatenated literal and macro to just the patterns found in
1869 inttypes.h; (is_macro()): New.
1870
39953c79
DC
18712013-06-24 Dehao Chen <dehao@google.com>
1872
1873 * files.c (_cpp_stack_include): Fix the highest_location when header
1874 file is guarded by #ifndef and is included twice.
1875
01187df0
JJ
18762013-04-28 Jakub Jelinek <jakub@redhat.com>
1877
1878 N3472 binary constants
1879 * include/cpplib.h (struct cpp_options): Fix a typo in user_literals
1880 field comment. Add binary_constants field.
1881 * init.c (struct lang_flags): Add binary_constants field.
1882 (lang_defaults): Add bin_cst column to the table.
1883 (cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
1884 * expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
1885 in diagnostics. Accept binary constants if
1886 CPP_OPTION (pfile, binary_constants) even when pedantic. Adjust
1887 pedwarn message.
1888
61949153
PC
18892013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
1890
1891 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
1892 * init.c (lang_defaults): Add defaults for the latter.
1893 (cpp_init_builtins): Define __cplusplus as 201300L for the latter.
1894 * lex.c (_cpp_lex_direct): Update.
1895
994a4cc0
SH
18962013-04-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
1897
1898 PR target/56771
1899 * configure.ac: Require 64-bit int for arm*-*-rtems*.
1900 * configure: Regenerate.
1901
28937f11
JJ
19022013-03-06 Jakub Jelinek <jakub@redhat.com>
1903
1904 PR middle-end/56461
1905 * internal.h (struct cpp_buffer): Add to_free field.
1906 (_cpp_pop_file_buffer): Add third argument.
1907 * files.c (_cpp_stack_file): Set buffer->to_free.
1908 (_cpp_pop_file_buffer): Add to_free argument. Free to_free
1909 if non-NULL, and if equal to file->buffer_start, also clear
1910 file->buffer{,_start,_valid}.
1911 * directives.c (_cpp_pop_buffer): Pass buffer->to_free
1912 to _cpp_pop_file_buffer.
1913
3b8af25b
JJ
19142013-03-01 Jakub Jelinek <jakub@redhat.com>
1915
1916 PR middle-end/56461
1917 * files.c (_cpp_save_file_entries): Free result at the end.
1918 * pch.c (cpp_string_free): New function.
1919 (cpp_save_state): Use it in htab_create call.
1920 (cpp_write_pch_deps): Free ss->defs. Destroy ss->definedhash.
1921
1a80db97
JJ
19222013-02-28 Jakub Jelinek <jakub@redhat.com>
1923
15fd8332
JJ
1924 * files.c (_cpp_find_file): If returning early, before storing
1925 something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
1926 on it. Access *hash_slot using void * type rather than
1927 struct file_hash_entry * to avoid aliasing issues.
1928
1a80db97
JJ
1929 * configure.ac: Don't define ENABLE_CHECKING whenever
1930 --enable-checking is seen, instead use similar --enable-checking=yes
1931 vs. --enable-checking=release default as gcc/ subdir has and
1932 define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
1933 Define ENABLE_VALGRIND_CHECKING if requested.
1934 * lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
1935 struct first in the allocated buffer and result->base after it.
1936 (_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
1937 instead of buff->base.
1938 * config.in: Regenerated.
1939 * configure: Regenerated.
1940
561f7fc7
ESR
19412013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net>
1942
1943 PR c++/55582
61949153 1944 * lex.c (lex_raw_string): Allow string literal with suffix
561f7fc7
ESR
1945 beginning with 's' to be parsed as a C++11 user-defined literal.
1946
500f3ed9
RS
19472013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
1948
1949 Update copyright years.
1950
1582c677
PC
19512013-01-04 Paolo Carlini <paolo.carlini@oracle.com>
1952
1953 PR c++/54526 (again)
1954 * lex.c (_cpp_lex_direct): In C++11 mode, implement 2.5 p3, bullet 2.
1955
8ac16127
MG
19562013-01-03 Marc Glisse <marc.glisse@inria.fr>
1957
1958 PR bootstrap/50177
1959 * line-map.c (get_combined_adhoc_loc): Cast from extern "C" type.
1960 (new_linemap): Likewise.
1961 (linemap_enter_macro): Likewise.
1962
f41e5bd1
JJ
19632012-12-03 Jakub Jelinek <jakub@redhat.com>
1964
1965 PR bootstrap/55380
1966 PR other/54691
1967 * files.c (read_file_guts): Allocate extra 16 bytes instead of
1968 1 byte at the end of buf. Pass size + 16 instead of size
1969 to _cpp_convert_input.
1970 * charset.c (_cpp_convert_input): Reallocate if there aren't
1971 at least 16 bytes beyond to.len in the buffer. Clear 16 bytes
1972 at to.text + to.len.
1973
31962032
SE
19742012-11-21 Steve Ellcey <sellcey@mips.com>
1975
1976 PR pch/55399
1977 * files.c (pch_open_file): Fix check for implicit_preinclude.
1978
5dc99c46
SB
19792012-11-16 Simon Baldwin <simonb@google.com>
1980
1981 * include/cpplib.h (struct cpp_options): Add canonical_system_headers.
1982 * files.c (find_file_in_dir): Call maybe_shorter_path() only if
1983 canonical_system_headers is set.
1984 * init.c (cpp_create_reader): Initialize canonical_system_headers.
1985 * configure.ac: Add new --enable-canonical-system-headers.
1986 * configure: Regenerate.
1987 * config.in: Regenerate.
1988
a4a0016d
ESR
19892012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net>
1990
1991 PR c++/54413
1992 * include/cpplib.h (cpp_interpret_float_suffix): Add cpp_reader* arg.
1993 (cpp_interpret_int_suffix): Add cpp_reader* arg.
1994 * init.c (cpp_create_reader): Iitialize new flags.
1995 * expr.c (interpret_float_suffix): Use new flags.
1996 (cpp_interpret_float_suffix): Add cpp_reader* arg.
1997 (interpret_int_suffix): Use new flags.
1998 (cpp_interpret_int_suffix): Add cpp_reader* arg.
1999 (cpp_classify_number): Adjust calls to interpret_x_suffix.
2000
04ce690f
IB
20012012-10-23 Ian Bolton <ian.bolton@arm.com>
2002 Jim MacArthur <jim.macarthur@arm.com>
2003 Marcus Shawcroft <marcus.shawcroft@arm.com>
2004 Nigel Stephens <nigel.stephens@arm.com>
2005 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2006 Richard Earnshaw <rearnsha@arm.com>
2007 Sofiane Naci <sofiane.naci@arm.com>
2008 Stephen Thomas <stephen.thomas@arm.com>
2009 Tejas Belagod <tejas.belagod@arm.com>
2010 Yufeng Zhang <yufeng.zhang@arm.com>
2011
2012 * configure.ac: Enable AArch64.
2013 * configure: Regenerate.
2014
1efcb8c6
JM
20152012-10-23 Joseph Myers <joseph@codesourcery.com>
2016
2017 * files.c (struct _cpp_file): Add implicit_preinclude.
2018 (pch_open_file): Allow a previously opened implicitly included
2019 file.
2020 (_cpp_find_file): Add implicit_preinclude argument. Free file and
2021 do not call open_file_failed if implicit_preinclude. Store
2022 implicit_preinclude value.
2023 (_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date):
2024 Update calls to _cpp_find_file.
2025 (_cpp_stack_include): Handle IT_DEFAULT.
2026 (cpp_push_default_include): New.
2027 * include/cpplib.h (cpp_push_default_include): Declare.
2028 * init.c (cpp_read_main_file): Update call to _cpp_find_file.
2029 * internal.h (enum include_type): Add IT_DEFAULT.
2030 (_cpp_find_file): Update prototype.
2031
55e7f907
TB
20322012-10-15 Tobias Burnus <burnus@net-b.de>
2033
2034 * files.c (read_file_guts, _cpp_save_file_entries): Free memory
2035 before returning.
2036 * lex.c (warn_about_normalization): Ditto.
2037 * mkdeps.c (deps_save): Ditto.
2038 * pch.c (cpp_valid_state): Ditto.
2039
f591bd8f
FW
20402012-10-04 Florian Weimer <fweimer@redhat.com>
2041
2042 * directives.c (do_pragma_warning_or_error): New.
2043 (do_pragma_warning): New.
2044 (do_pragma_error): New.
2045 (_cpp_init_internal_pragmas): Register new pragmas.
2046
ec6e0399
DC
20472012-09-25 Dehao Chen <dehao@google.com>
2048
2049 PR middle-end/54704
2050 * line-map.c (location_adhoc_data_hash): Fix the hash function.
2051
52187008
DC
20522012-09-25 Dehao Chen <dehao@google.com>
2053
2054 PR middle-end/54645
2055 * include/line-map.h (location_adhoc_data): Move location_adhoc_data
2056 into GC.
2057 (location_adhoc_data_map): Likewise.
2058 (line_maps): Likewise.
2059 (rebuild_location_adhoc_htab): New Function.
2060 * line-map.c (+rebuild_location_adhoc_htab): new Funcion.
2061 (get_combined_adhoc_loc): Move location_adhoc_data into GC.
2062 (location_adhoc_data_fini): Likewise.
2063 (linemap_init): Likewise.
2064 (location_adhoc_data_init): Remove Function.
2065
5368224f
DC
20662012-09-19 Dehao Chen <dehao@google.com>
2067
2068 * include/line-map.h (MAX_SOURCE_LOCATION): New value.
2069 (location_adhoc_data_fini): New.
2070 (get_combined_adhoc_loc): New.
2071 (get_data_from_adhoc_loc): New.
2072 (get_location_from_adhoc_loc): New.
2073 (location_adhoc_data_map): New.
2074 (COMBINE_LOCATION_DATA): New.
2075 (IS_ADHOC_LOC): New.
2076 (expanded_location): New field.
2077 (line_maps): New field.
2078 * line-map.c (location_adhoc_data): New.
2079 (location_adhoc_data_hash): New.
2080 (location_adhoc_data_eq): New.
2081 (location_adhoc_data_update): New.
2082 (get_combined_adhoc_loc): New.
2083 (get_data_from_adhoc_loc): New.
2084 (get_location_from_adhoc_loc): New.
2085 (location_adhoc_data_init): New.
2086 (location_adhoc_data_fini): New.
2087 (linemap_init): Initialize location_adhoc_data.
2088 (linemap_lookup): Change to use new location.
2089 (linemap_ordinary_map_lookup): Likewise.
2090 (linemap_macro_map_lookup): Likewise.
2091 (linemap_macro_map_loc_to_def_point): Likewise.
2092 (linemap_macro_map_loc_unwind_toward_spel): Likewise.
2093 (linemap_get_expansion_line): Likewise.
2094 (linemap_get_expansion_filename): Likewise.
2095 (linemap_location_in_system_header_p): Likewise.
2096 (linemap_location_from_macro_expansion_p): Likewise.
2097 (linemap_macro_loc_to_spelling_point): Likewise.
2098 (linemap_macro_loc_to_def_point): Likewise.
2099 (linemap_macro_loc_to_exp_point): Likewise.
2100 (linemap_resolve_location): Likewise.
2101 (linemap_unwind_toward_expansion): Likewise.
2102 (linemap_unwind_to_first_non_reserved_loc): Likewise.
2103 (linemap_expand_location): Likewise.
2104 (linemap_dump_location): Likewise.
2105 (linemap_line_start): Likewise.
2106
f3d25c65
DS
21072012-05-25 Dodji Seketeli <dodji@redhat.com>
2108
2109 PR preprocessor/53469
2110 * directives.c (do_pragma): Use the virtual location for the
2111 pragma token, instead of its spelling location.
2112
0823efed
DN
21132012-08-14 Diego Novillo <dnovillo@google.com>
2114
2115 Merge from cxx-conversion branch. Configury.
2116
2117 * Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
2118 * configure.ac: Likewise.
2119 * configure: Regenerate.
2120
21212012-08-14 Lawrence Crowl <crowl@google.com>
2122
2123 Merge from cxx-conversion branch. New C++ hash table.
2124
2125 * include/symtab.h (typedef struct ht hash_table): Change the typedef
2126 name to cpp_hash_table. Update all users of the typedef.
2127
c0fd3497
LB
21282012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2129
2130 * include/line-map.h (line_map_macro): Use the "atomic" GTY option
2131 for the macro_locations field.
2132
d35d1c0f
UB
21332011-06-19 Uros Bizjak <ubizjak@gmail.com>
2134
2135 * lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
2136 __builtin_ia32_pcmpestri128 instead of asm.
2137
d86d2119
DA
21382012-06-04 Dimitrios Apostolou <jimis@gmx.net>
2139
2140 * line-map.c (linemap_enter_macro): Don't zero max_column_hint in
2141 every macro. This improves performance by reducing the number of
2142 reallocations when track-macro-expansion is on.
2143
7ca643e1
DS
21442012-06-04 Dodji Seketeli <dodji@redhat.com>
2145
2146 PR preprocessor/53463
2147 * line-map.c (linemap_location_in_system_header_p): For built-in
2148 macro tokens, check the first expansion point location that is not
2149 for a token coming from a built-in macro.
2150
7d9641cc
JM
21512012-05-29 Joseph Myers <joseph@codesourcery.com>
2152
2153 * directives.c: Fix typos.
2154 * include/line-map.h: Fix typos.
2155 * line-map.c: Fix typos.
2156 * macro.c: Fix typos.
2157
53a103d3
DS
21582012-05-25 Dodji Seketeli <dodji@redhat.com>
2159
2160 PR bootstrap/53459
2161 * lex.c (search_line_fast): Avoid unused local typedefs to simulate
2162 a static assertion.
2163
828a7f76
DS
21642012-05-29 Dodji Seketeli <dodji@redhat.com>
2165
2166 PR preprocessor/53229
2167 * internal.h (cpp_reader::set_invocation_location): Remove.
2168 (cpp_reader::about_to_expand_macro_p): New member flag.
2169 * directives.c (do_pragma): Remove Kludge as
2170 pfile->set_invocation_location is no more.
2171 * macro.c (cpp_get_token_1): Do away with the use of
2172 cpp_reader::set_invocation_location. Just collect the macro
2173 expansion point when we are about to expand the top-most macro.
2174 Do not override cpp_reader::about_to_expand_macro_p.
2175 This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
2176 properly handle locations of expansion points.
2177 (cpp_get_token_with_location): Adjust, as
2178 cpp_reader::set_invocation_location is no more.
2179 (paste_tokens): Take a virtual location parameter for
2180 the LHS of the pasting operator. Use it in diagnostics. Update
2181 comments.
2182 (paste_all_tokens): Tighten the assert. Propagate the location of
2183 the expansion point when no virtual locations are available.
2184 Pass the virtual location to paste_tokens.
2185 (in_macro_expansion_p): New static function.
2186 (enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
2187 flag until we really start expanding the macro.
2188
0b2c4be5
DS
21892012-05-16 Dodji Seketeli <dodji@redhat.com>
2190
2191 PR preprocessor/7263
2192 * include/cpplib.h (cpp_classify_number): Take a location
2193 parameter.
2194 * expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic
2195 macros that take a location parameter.
2196 (cpp_classify_number): Take a (virtual) location parameter. Use
2197 it for diagnostics. Adjust comments.
2198 (eval_token): Take a location parameter. Pass it to
2199 cpp_classify_number and to diagnostic routines.
2200 (_cpp_parse_expr): Use virtual locations of tokens when parsing
2201 expressions. Pass a virtual location to eval_token and to
2202 diagnostic routines.
2203
638d2065
TG
22042012-05-10 Tristan Gingold <gingold@adacore.com>
2205
2206 * expr.c (interpret_float_suffix): Add a guard.
2207
3ad64f53
DS
22082012-05-02 Dodji Seketeli <dodji@redhat.com>
2209
2210 Properly initialize cpp_context in destringize_and_run
2211 * directives.c (destringize_and_run): Properly initialize the new
2212 context.
2213 * macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
2214 the initial base context, which has the same life time as the
2215 current instance of cpp_file.
2216
b193dfa8
MLI
22172012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
2218 Dodji Seketeli <dodji@seketeli.org>
2219
3efc2959 2220 PR c++/52974
b193dfa8
MLI
2221 * libcpp/files.c (maybe_shorter_path): New.
2222 (find_file_in_dir): Use it.
2223
4e65a470
DS
22242012-04-30 Dodji Seketeli <dodji@redhat.com>
2225
51fce2d3
DS
2226 Switch -ftrack-macro-expansion=2 on by default.
2227 * init.c (cpp_create_reader): Switch -ftrack-macro-expansion=2 on
2228 by default. Add comments.
2229
c4ca1a09
DS
2230 Strip "<built-in>" loc from displayed expansion context
2231 * include/line-map.h (linemap_unwind_toward_expansion): Fix typo
2232 in comment.
2233 (linemap_unwind_to_first_non_reserved_loc): Declare new function.
2234 * line-map.c (linemap_unwind_to_first_non_reserved_loc): Define
2235 new function.
2236
3600218c
DS
2237 Fix expansion point loc for macro-like tokens
2238 * macro.c (macro_of_context): New static function.
2239 (_cpp_push_token_context, push_extended_tokens_context): If the
2240 macro argument is NULL, it means we are continuing the expansion
2241 of the current macro, if any. Update comments.
2242 (_cpp_pop_context): Re-enable expansion of the macro only when we
2243 are really out of the context of the current expansion.
2244
0ff2b8a0
DS
2245 Fix token pasting with -ftrack-macro-expansion
2246 * macro.c (paste_all_tokens): Put the token resulting from pasting
2247 into an extended token context with -ftrack-macro-location is in
2248 effect.
2249
4e65a470
DS
2250 Fix cpp_sys_macro_p with -ftrack-macro-expansion
2251 * macro.c (cpp_sys_macro_p): Support -ftrack-macro-expansion.
2252
112448b4
DS
22532012-04-29 Dodji Seketeli <dodji@redhat.com>
2254
2255 * lex.c (lex_raw_string): Change C++ style comments into C style
2256 comments.
19a9ba64 2257 (lex_string): Likewise.
112448b4 2258
7f5f5f98
OW
22592012-04-27 Ollie Wild <aaw@google.com>
2260
2261 * include/cpplib.h (struct cpp_options): Add new field,
2262 warn_literal_suffix.
2263 (CPP_W_LITERAL_SUFFIX): New enum.
2264 * init.c (cpp_create_reader): Default initialization of
2265 warn_literal_suffix.
2266 * lex.c (lex_raw_string): Treat user-defined literals which don't
2267 begin with '_' as separate tokens and produce a warning.
2268 (lex_string): Ditto.
2269
1d72e96f
MLI
22702012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
2271
2272 * line-map.c (linemap_resolve_location): Synchronize comments with
2273 those in line-map.h.
2274 * include/line-map.h (linemap_resolve_location): Fix spelling in
2275 comment.
2276
e75b54a2
RE
22772012-03-22 Richard Earnshaw <rearnsha@arm.com>
2278
2279 * lex.c (search_line_fast): Provide Neon-optimized version for ARM.
2280
7888f266
RO
22812012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2282
2283 * lex.c: Remove Solaris 8 reference.
2284
dd552284
WL
22852012-02-14 Walter Lee <walt@tilera.com>
2286
2287 * configure.ac: Require 64-bit hwint for tilegx and tilepro.
2288 * configure: Regenerate.
2289
2c5cbc31
RG
22902012-01-09 Richard Guenther <rguenther@suse.de>
2291
2292 * macro.c (_cpp_builtin_macro_text): Remove unused variable map.
2293
b492b686
GF
22942012-01-09 Gary Funck <gary@intrepid.com>
2295
2296 PR preprocessor/33919
2297 * files.c (_cpp_get_file_name): New. Implement file name
2298 access function.
2299 * internal.h (_cpp_get_file_name): New prototype.
2300 * macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
2301 to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
2302
75291c57
OH
23032012-01-03 Olivier Hainque <hainque@adacore.com>
2304
2305 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
2306
48b0b196
JM
23072011-12-20 Joseph Myers <joseph@codesourcery.com>
2308
2309 * include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
2310 (CLK_STDC1X): Change to CLK_STDC11.
2311 * init.c (lang_defaults): Update comments.
2312 (cpp_init_builtins): Update language tests. Use 201112L for C11
2313 __STDC_VERSION__.
2314
4a5e00ca
AS
23152011-12-20 Andreas Schwab <schwab@linux-m68k.org>
2316
2317 * configure: Regenerate.
2318
095af58f
AS
23192011-12-19 Andreas Schwab <schwab@linux-m68k.org>
2320
2321 * configure: Regenerate.
2322
b0c084b7
JJ
23232011-12-07 Jakub Jelinek <jakub@redhat.com>
2324
2325 PR bootstrap/50237
2326 * internal.h (_cpp_init_lexer): New prototype.
2327 * init.c (init_library): Call it.
2328 * lex.c (init_vectorized_lexer): Remove constructor attribute,
2329 add inline keyword.
2330 (HAVE_init_vectorized_lexer): Define.
2331 (_cpp_init_lexer): New function.
2332
9b554be9
DS
23332011-12-03 Dodji Seketeli <dodji@redhat.com>
2334
2335 * macro.c (tokens_buff_remove_last_token)
2336 (tokens_buff_put_token_to): Add an 'inline' function specifier to
2337 the prototype.
2338
8dcf72a8
DN
23392011-11-22 Diego Novillo <dnovillo@google.com>
2340
2341 * include/line-map.h (linemap_dump): Declare.
2342 (line_table_dump): Declare.
2343 * line-map.c (linemap_dump): New.
2344 (line_table_dump): New.
2345
7e74ce3f
ESR
23462011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net>
2347
2348 PR c++/50958
2349 * expr.c (cpp_userdef_char_remove_type): Fix typo.
2350
e9411247
MM
23512011-11-03 Michael Matz <matz@suse.de>
2352
2353 PR bootstrap/50857
2354 * configure.ac: Check for -fno-exceptions -fno-rtti.
2355 * configure: Regenerate.
2356 * Makefile.in (NOEXCEPTION_FLAGS): New flag.
2357 (ALL_CXXFLAGS): Use it.
2358
0c1dace3
PC
23592011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
2360
2361 * internal.h (uxstrdup, ustrchr): Return const unsigned char *.
2362
25339f10
JM
23632011-11-02 Jason Merrill <jason@redhat.com>
2364
2365 PR c++/50810
2366 * configure.ac: Add -Wno-narrowing to warning options.
2367
97e3ad20
JM
23682011-10-31 Jason Merrill <jason@redhat.com>
2369
1fb80b0c
JM
2370 PR libstdc++/1773
2371 * init.c (cpp_init_builtins): Set __cplusplus for C++11.
2372
97e3ad20
JM
2373 PR c++/50920
2374 * include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
2375 CLK_GNUCXX0X to CLK_GNUCXX11.
2376
3ce4f9e4
ESR
23772011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net>
2378
2379 Implement C++11 user-defined literals.
2380 * expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
2381 cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
2382 cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
2383 cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
2384 (cpp_classify_number): Classify unrecognized tokens as user-defined
2385 literals.
2386 * include/cpplib.h: Add new tokens for user-defined literals.
2387 * init.c: Add new preprocessor flag (cxx11).
2388 * lex.c: (lex_string, lex_raw_string): Handle user-defined literals
2389 including concatenation and promotion with suffixes.
2390
3bb0c8db
DS
23912011-10-24 Dodji Seketeli <dodji@redhat.com>
2392
2393 * line-map.c (linemap_macro_map_lookup): Fix logic.
2394
84756fd4
DS
23952011-10-24 Dodji Seketeli <dodji@redhat.com>
2396
2397 * include/line-map.h (linemap_expand_location): Take a line table
2398 parameter. Update comment.
2399 (linemap_resolve_location): Update comment.
2400 (linemap_expand_location_full): Remove.
2401 * line-map.c (linemap_resolve_location): Handle reserved
2402 locations; return a NULL map in those cases.
2403 (linemap_expand_location): If location is reserved, return a
2404 zeroed expanded location. Update comment. Take a line table to
2405 assert that the function takes non-virtual locations only.
2406 (linemap_expand_location_full): remove.
2407 (linemap_dump_location): Handle the fact that
2408 linemap_resolve_location can return NULL line maps when the
2409 location resolves to a reserved location.
2410
2411 * line-map.c (linemap_macro_map_lookup): Fix logic.
2412
ad2305ad
DS
24132011-10-22 Dodji Seketeli <dodji@redhat.com>
2414
2415 PR bootstrap/50778
2416 * include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
2417 context to act upon.
2418 * lex.c (_cpp_remaining_tokens_num_in_context): Likewise. Update
2419 comment.
2420 (cpp_token_from_context_at): Likewise.
2421 (cpp_peek_token): Use the context to peek tokens from.
2422
cbbcf655
DS
24232011-10-20 Dodji Seketeli <dodji@redhat.com>
2424
2425 PR bootstrap/50801
2426 * lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
2427 number of tokens.
2428
d17687f6
DS
24292011-10-18 Dodji Seketeli <dodji@redhat.com>
2430
2431 PR bootstrap/50760
2432 * include/line-map.h (struct linemap_stats): Change the type of
19a9ba64 2433 the members from size_t to long.
d17687f6 2434 * macro.c (macro_arg_token_iter_init): Unconditionally initialize
19a9ba64 2435 iter->location_ptr.
d17687f6 2436
411f92de
DS
24372011-10-17 Dodji Seketeli <dodji@redhat.com>
2438
2439 * line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
19a9ba64
AM
2440 variable without using it if ENABLE_CHECKING is not defined. Mark
2441 the LOCATION parameter as being unused.
411f92de 2442
b9bd6f74
TT
24432011-10-15 Tom Tromey <tromey@redhat.com>
2444 Dodji Seketeli <dodji@redhat.com>
2445
2446 * include/line-map.h (struct line_maps::alloced_size_for_request):
2447 New member.
2448 * line-map.c (new_linemap): Use set->alloced_size_for_request to
2449 get the actual allocated size of line maps.
2450
64a1a422
TT
24512011-10-15 Tom Tromey <tromey@redhat.com>
2452 Dodji Seketeli <dodji@redhat.com>
2453
2454 * line-map.h (struct linemap_stats): Declare new struct.
2455 (linemap_get_statistics): Declare ...
2456 * line-map.c (linemap_get_statistics): ... new function.
2457 * macro.c (num_expanded_macros_counter, num_macro_tokens_counter):
2458 Declare new counters.
2459 (enter_macro_context, replace_args): Update
2460 num_macro_tokens_counter.
2461 (cpp_get_token_1): Update num_expanded_macros_counter.
2462
847e697a
TT
24632011-10-15 Tom Tromey <tromey@redhat.com>
2464 Dodji Seketeli <dodji@redhat.com>
2465
2466 * include/cpplib.h (struct cpp_options)<debug>: New struct member.
2467 * include/line-map.h (linemap_dump_location): Declare ...
2468 * line-map.c (linemap_dump_location): ... new function.
2469
92582b75
TT
24702011-10-15 Tom Tromey <tromey@redhat.com>
2471 Dodji Seketeli <dodji@redhat.com>
2472
2473 * include/cpplib.h (struct cpp_options)<track_macro_expansion>:
2474 New option.
2475 * internal.h (struct macro_context): New struct.
2476 (enum context_tokens_kind): New enum.
2477 (struct cpp_context)<tokens_kind>: New member of type enum
2478 context_tokens_kind.
2479 (struct cpp_context)<macro>: Remove this. Replace it with an enum
2480 of macro and macro_context.
2481 (struct cpp_context)<direct_p>: Remove.
2482 (_cpp_remaining_tokens_num_in_context): Declare new function.
2483 * directives.c (destringize_and_run): Adjust.
2484 * lex.c (_cpp_remaining_tokens_num_in_context)
2485 (_cpp_token_from_context_at): Define new functions
2486 (cpp_peek_token): Use them.
2487 * init.c (cpp_create_reader): Initialize the base context to zero.
2488 (_cpp_token_from_context_at): Define new static function.
2489 (cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and
2490 _cpp_token_from_context_at.
2491 * macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New
2492 members.
2493 (enum macro_arg_token_kind): New enum.
2494 (struct macro_arg_token_iter): New struct.
2495 (maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context)
2496 (alloc_expanded_arg_mem, ensure_expanded_arg_room)
2497 (delete_macro_args, set_arg_token, get_arg_token_location)
2498 (arg_token_ptr_at, macro_arg_token_iter_init)
2499 (macro_arg_token_iter_get_token)
2500 (macro_arg_token_iter_get_location, macro_arg_token_iter_forward)
2501 (expanded_token_index, tokens_buff_new, tokens_buff_count)
2502 (tokens_buff_last_token_ptr, tokens_buff_put_token_to)
2503 (tokens_buff_add_token, tokens_buff_remove_last_token)
2504 (reached_end_of_context, consume_next_token_from_context): New
2505 static functions.
2506 (cpp_get_token_1): New static function. Split and extended from
2507 cpp_get_token. Use reached_end_of_context and
2508 consume_next_token_from_context. Unify its return point. Move
2509 the location tweaking from cpp_get_token_with_location in here.
2510 (cpp_get_token): Use cpp_get_token_1
2511 (stringify_arg): Use the new arg_token_at.
2512 (paste_all_tokens): Support tokens coming from extended tokens
2513 contexts.
2514 (collect_args): Return the number of collected arguments, by
2515 parameter. Store virtual locations of tokens that constitute the
2516 collected args.
2517 (funlike_invocation_p): Return the number of collected arguments,
2518 by parameter.
2519 (enter_macro_context): Add a parameter for macro expansion point.
2520 Pass it to replace_args and to the "used" cpp callback. Get the
2521 number of function-like macro arguments from funlike_invocation_p,
2522 pass it to the new delete_macro_args to free the memory used by
2523 macro args. When -ftrack-macro-expansion is in effect, for macros
2524 that have no arguments, create a macro map for the macro expansion
2525 and use it to allocate proper virtual locations for tokens
2526 resulting from the expansion. Push an extended tokens context
2527 containing the tokens resulting from macro expansion and their
2528 virtual locations.
2529 (replace_args): Rename the different variables named 'count' into
2530 variables with more meaningful names. Create a macro map;
2531 allocate virtual locations of tokens resulting from this
2532 expansion. Use macro_arg_token_iter to iterate over tokens of a
2533 given macro. Handle the case of the argument of
2534 -ftrack-macro-expansion being < 2. Don't free macro arguments
2535 memory resulting from expand_arg here, as these are freed by the
2536 caller of replace_arg using delete_macro_args now. Push extended
2537 token context.
2538 (next_context, push_ptoken_context, _cpp_push_token_context)
2539 (_cpp_push_text_context): Properly initialize the context.
2540 (expand_arg): Use the new alloc_expanded_arg_mem,
2541 push_extended_tokens_context, cpp_get_token_1, and set_arg_token.
2542 (_cpp_pop_context): Really free the memory held by the context.
2543 Handle freeing memory used by extended tokens contexts.
2544 (cpp_get_token_with_location): Use cpp_get_token_1.
2545 (cpp_sys_macro_p): Adjust.
2546 (_cpp_backup_tokens): Support the new kinds of token contexts.
2547 * traditional.c (recursive_macro): Adjust.
2548
46427374
TT
25492011-10-15 Tom Tromey <tromey@redhat>
2550 Dodji Seketeli <dodji@redhat.com>
2551
2552 * include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum
2553 member.
2554 (MAX_SOURCE_LOCATION): New constant.
2555 (struct line_map_ordinary, struct line_map_macro): New structs.
19a9ba64 2556 (struct line_map): Turn this into a union of the two above. Add
46427374
TT
2557 comments.
2558 (struct maps_info): New struct.
2559 (struct line_maps)<info_ordinary, info_macro>: Two new fields.
2560 These now carry the map information that was previously scattered
2561 in struct line_maps.
2562 (struct map_info::allocated): Fix comment.
2563 (MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME)
2564 (ORDINARY_MAP_STARTING_LINE_NUMBER)
2565 (ORDINARY_MAP_INCLUDER_FILE_INDEX)
2566 (ORDINARY_MAP_IN_SYSTEM_HEADER_P)
2567 (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO)
2568 (MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS)
2569 (MACRO_MAP_EXPANSION_POINT_LOCATION)
2570 (LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO)
2571 (LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE)
2572 (LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP)
2573 (LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED)
2574 (LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE)
2575 (LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP)
2576 (LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED)
2577 (LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE)
2578 (LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP)
2579 (LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT)
2580 (LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map
2581 information.
2582 (linemap_check_ordinary, linemap_assert)
2583 (linemap_location_before_p): New macros.
2584 (linemap_position_for_line_and_column)
2585 (linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token)
2586 (linemap_macro_expansion_map_p)
2587 (linemap_macro_map_loc_to_def_point)
2588 (linemap_macro_map_loc_unwind_once)
2589 (linemap_macro_map_loc_to_exp_point, linemap_step_out_once)
2590 (linemap_get_source_line linemap_get_source_column)
2591 (linemap_map_get_macro_name, linemap_get_file_path)
2592 (linemap_location_in_system_header_p)
2593 (linemap_location_from_macro_expansion_p): Declare new functions.
2594 (SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION)
2595 (LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this
2596 accessors act on ordinary maps only.
2597 (INCLUDED_FROM): Return NULL for main files; use the new
2598 accessors.
2599 (LINEMAP_POSITION_FOR_COLUMN): Use the new accessors.
2600 (struct expanded_location): Move here from gcc/input.h
2601 (linemap_resolve_location, linemap_expand_location)
2602 (linemap_expand_location_full): Declare new functions.
2603 * line-map.c: Include cpplib.h, internal.h
2604 (linemap_enter_macro, linemap_add_macro_token)
2605 (linemap_get_expansion_line, linemap_get_expansion_filename): New
2606 functions that are private to libcpp.
2607 (linemap_assert): New macro.
2608 (linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point)
2609 (linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point)
2610 (linemap_macro_map_loc_unwind_toward_spelling)
2611 (linemap_macro_map_loc_to_exp_point)
2612 (first_map_in_common_1, first_map_in_common): New static
2613 functions.
2614 (new_linemap): Define new static functions. Extracted and
2615 enhanced from ...
2616 (linemap_add): ... here. Use linemap_assert in lieu of abort
2617 previously.
2618 (linemap_tracks_macro_expansion_locs_p)
2619 (linemap_add_macro_token, linemap_macro_expansion_map_p)
2620 (linemap_check_ordinary, linemap_macro_map_loc_to_exp_point)
2621 (linemap_macro_map_loc_to_def_point)
2622 (linemap_macro_map_loc_unwind_once)
2623 (linemap_step_out_once, linemap_map_get_index)
2624 (linemap_get_source_line,linemap_get_source_column)
2625 (linemap_get_file_path, linemap_map_get_macro_name)
2626 (linemap_location_in_system_header_p)
2627 (linemap_location_originated_from_system_header_p)
2628 (linemap_location_from_macro_expansion_p)
2629 (linemap_tracks_macro_expansion_locs_p)
2630 (linemap_resolve_location, linemap_expand_location)
2631 (linemap_expand_location_full)
2632 (linemap_tracks_macro_expansion_locs_p)
2633 (linemap_position_for_line_and_column, linemap_compare_locations):
2634 Define new public functions.
2635 (linemap_init): Initialize ordinary and macro maps information in
2636 the map set.
2637 (linemap_check_files_exited): Use the new accessors.
2638 (linemap_free): Remove this dead code.
2639 (linemap_line_start): Assert this uses an ordinary map. Adjust to
2640 use the new ordinary map accessors and data structures. Don't
2641 overflow past the lowest possible macro token's location.
2642 (linemap_position_for_column): Assert the ordinary maps of the map
2643 set are really ordinary. Use ordinary map accessors.
2644 (linemap_lookup): Keep the same logic but generalize to allow
2645 lookup of both ordinary and macro maps. Do not crash when called
2646 with an empty line table.
2647 * directives-only.c (_cpp_preprocess_dir_only): Adjust to use the
2648 new API of line-map.h.
2649 * directives.c (start_directive, do_line, do_linemarker)
2650 (do_linemarker): Likewise.
2651 * files.c (_cpp_find_file, _cpp_stack_include, open_file_failed)
2652 (make_cpp_dir, cpp_make_system_header): Likewise.
2653 * init.c (cpp_read_main_file): Likewise.
2654 * internal.h (CPP_INCREMENT_LINE): Likewise.
2655 (linemap_enter_macro, linemap_add_macro_token)
2656 (linemap_get_expansion_line, linemap_get_expansion_filename): New
2657 functions private to libcpp.
2658 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment)
2659 (skip_line_comment, skip_whitespace, lex_raw_string)
2660 (_cpp_lex_direct): Likewise.
2661 * macro.c (_cpp_builtin_macro_text): Likewise.
2662 (_cpp_aligned_alloc): Initialize the new name member of the macro.
2663 * traditional.c (copy_comment, _cpp_scan_out_logical_line):
2664 Likewise.
2665 * errors.c (cpp_diagnostic): Adjust to new linemap API.
2666
892a371f
DS
26672011-08-28 Dodji Seketeli <dodji@redhat.com>
2668
2669 * line-map.c (linemap_add): Assert that reason must not be
2670 LC_RENAME when called for the first time on a "main input file".
2671
e3dfef44
GC
26722011-08-22 Gabriel Charette <gchare@google.com>
2673
2674 * init.c (cpp_create_reader): Inititalize forced_token_location_p.
2675 * internal.h (struct cpp_reader): Add field forced_token_location_p.
2676 * lex.c (_cpp_lex_direct): Use forced_token_location_p.
2677 (cpp_force_token_locations): New.
2678 (cpp_stop_forcing_token_locations): New.
2679
32fe396e
RO
26802011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2681
2682 PR libstdc++/1773
2683 * init.c (cpp_init_builtins): Define __cplusplus 19971L.
2684
7c1ffff9
JM
26852011-08-18 Joseph Myers <joseph@codesourcery.com>
2686
2687 * include/cpplib.h (struct cpp_options): Fix typo.
2688
a48e3dd1
JM
26892011-08-18 Joseph Myers <joseph@codesourcery.com>
2690
2691 * include/cpplib.h (struct cpp_options): Add rliterals.
2692 * init.c (struct lang_flags, lang_defaults): Add rliterals.
2693 (cpp_set_lang): Set rliterals option.
2694 (cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__.
2695 * lex.c (_cpp_lex_direct): Only accept raw strings if rliterals.
2696
3f6ced10
GC
26972011-08-15 Gabriel Charette <gchare@google.com>
2698
2699 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove.
2700 Update all users to use linemap_position_for_column instead.
2701
0681d04c
GC
27022011-07-28 Gabriel Charette <gchare@google.com>
2703
2704 * include/line-map.h (struct line_maps):
2705 Remove unused field last_listed. Update all users.
2706
5e9627ca
L
27072011-07-28 H.J. Lu <hongjiu.lu@intel.com>
2708
2709 * configure.ac: Set need_64bit_hwint to yes for x86 targets.
2710 * configure: Regenerated.
2711
a024b70f
RO
27122011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2713
2714 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2715
5b6d595b
RO
27162011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2717 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2718
2719 PR bootstrap/49794
2720 * configure.ac: Test AM_ICONV with CXX.
2721 * configure: Regenerate.
2722 * system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++.
2723
d0a9fbe1
DS
27242011-07-15 Dodji Seketeli <dodji@redhat.com>
2725
2726 * directives.c (struct if_stack): Use source_location as type
2727 here.
2728 * include/cpplib.h (struct cpp_callbacks)<include, define, undef,
2729 indent, def_pragma, used_define, used_undef>: Properly use
2730 source_location as parameter type, rather than unsigned int.
2731
fbdd5d87
RO
27322011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2733
2734 PR target/39150
2735 * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
2736 like i[34567]86-*-solaris2.1[0-9]*.
2737 * configure: Regenerate.
2738
8787a05a
JM
27392011-06-16 Jason Merrill <jason@redhat.com>
2740
2741 PR c++/45399
2742 * lex.c (lex_raw_string): Don't check for embedded NUL.
2743
38fbfaf6
DS
27442011-06-06 Dodji Seketeli <dodji@redhat.com>
2745
2746 PR preprocessor/48532
2747 * directives.c (do_pragma): Don't forget the invocation location
2748 when parsing the pragma name of a namespaced pragma directive.
2749
fc0993ac
JT
27502011-05-29 John Tytgat <John.Tytgat@aaug.net>
2751
2752 * files.c (read_file_guts): Add test on non-zero value of S_ISREG.
2753
ef230b38
UB
27542011-05-22 Uros Bizjak <ubizjak@gmail.com>
2755
2756 PR target/49104
2757 * lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
2758 is defined. Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
2759
e5b0dad8
JK
27602011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
2761
2762 * system.h (ENUM_BITFIELD): Remove.
2763
6cfae070
JJ
27642011-04-24 Jakub Jelinek <jakub@redhat.com>
2765
2766 PR preprocessor/48740
2767 * lex.c (lex_raw_string): When raw string ends with
2768 ??) followed by raw prefix and ", ensure it is preprocessed
2769 with ??) rather than ??].
2770
04695783
JM
27712011-04-20 Jim Meyering <meyering@redhat.com>
2772
2773 * files.c (destroy_cpp_file): Remove useless if-before-free.
2774 * init.c (cpp_destroy): Likewise.
2775 * macro.c (replace_args): Likewise.
2776 * pch.c (cpp_valid_state): Likewise.
2777
4489800d
KT
27782011-03-25 Kai Tietz <ktietz@redhat.com>
2779
2780 * files.c (file_hash_eq): Use filename_cmp
2781 instead of strcmp.
2782 (nonexistent_file_hash_eq): Likewise.
2783 (remap_filename): Likewise.
2784 Handle absolute DOS-path,
2785 (append_file_to_dir): Check for IS_DIR_SEPARATOR
2786 instead of slash.
2787 (read_name_map): Likewise.
2788 * linemap.c (linemap_add): Use filename_cmp
2789 instead of strcmp.
2790 * mkdeps.c (apply_vpath): Use filename_ncmp
2791 instead of strncmp.
2792 (deps_restore): Use filename_cmp instead of
2793 strcmp.
2794 * init.c (read_original_directory): Use
2795 IS_DIR_SEPARATOR instead of checking for slash.
2796
f3c33d9d
MM
27972011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2798
2799 PR preprocessor/48192
2800 * directives.c (do_ifdef): Do not consider conditional macros as
2801 being defined.
2802 (do_ifndef): Ditto.
2803 * expr.c (parse_defined): Ditto.
2804
01956319
RH
28052011-03-18 Richard Henderson <rth@redhat.com>
2806
2807 PR bootstrap/45381
2808 * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5.
2809
c5a62c6f 28102011-11-04 Eric Botcazou <ebotcazou@adacore.com>
19a9ba64 2811 Jakub Jelinek <jakub@redhat.com>
c5a62c6f
EB
2812
2813 PR preprocessor/39213
2814 * directives.c (end_directive): Call _cpp_remove_overlay for deferred
2815 pragmas as well in traditional mode.
2816
0e1a989c
ILT
28172010-11-17 Ian Lance Taylor <iant@google.com>
2818
2819 PR bootstrap/45538
2820 * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS. Remove switch of
2821 AC_LANG based on ENABLE_BUILD_WITH_CXX.
2822
651a20b5
KT
28232010-11-16 Kai Tietz <kai.tietz@onevision.com>
2824
2825 PR preprocessor/17349
2826 * lex.c (save_comment): Handle in argument passing c++
2827 comments special.
2828
480767a9
ILT
28292010-11-02 Ian Lance Taylor <iant@google.com>
2830
2831 * configure.ac: Use AC_SYS_LARGEFILE.
2832 * configure: Rebuild.
2833 * config.in: Rebuild.
2834
078419c9 28352010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
480767a9 2836
078419c9
BS
2837 * line-map.h (source_location): Remove obsolete comment
2838 mentioning location_s.
2839
d6874138
KT
28402010-09-29 Kai Tietz <kai.tietz@onevision.com>
2841
2842 PR preprocessor/45362
2843 * directives.c (cpp_pop_definition): Make static.
2844 (do_pragma_push_macro): Reworked to store text
2845 definition.
2846 (do_pragma_pop_macro): Add free text definition.
2847 (cpp_push_definition): Removed.
2848 * include/cpplib.h (cpp_push_definition): Removed.
2849 (cpp_pop_definition): Likewise.
2850 * internal.h (def_pragma_macro): Remove member 'value'
2851 and add new members 'definition', 'line',
2852 'syshdr', 'sued' and 'is_undef'.
2853 * pch.c (_cpp_restore_pushed_macros): Rework to work
2854 on text definition and store additional macro flags.
2855 (_cpp_save_pushed_macros): Likewise.
2856
e3339d0f
JM
28572010-09-29 Joseph Myers <joseph@codesourcery.com>
2858
2859 * include/cpplib.h (cpp_options): Rename warn_deprecated,
2860 warn_traditional, warn_long_long and pedantic.
2861 * directives.c (directive_diagnostics, _cpp_handle_directive):
2862 Update names of cpp_options members.
2863 * expr.c (cpp_classify_number, eval_token): Update names of
2864 cpp_options members.
2865 * init.c (cpp_create_reader, post_options): Update names of
2866 cpp_options members.
2867 * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
2868 cpp_options members.
2869 * macro.c (parse_params): Update names of cpp_options members.
2870
128465e6
ILT
28712010-09-15 Ian Lance Taylor <iant@google.com>
2872
2873 * init.c: Fix type name in comment.
2874
a69d2520
JJ
28752010-08-31 Jakub Jelinek <jakub@redhat.com>
2876
2877 PR preprocessor/45457
2878 * expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if
2879 needed.
2880 * directives.c (do_ifdef, do_ifndef): Likewise.
2881
707bcb7a
RO
28822010-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2883
2884 * system.h [HAVE_INTTYPES_H]: Include inttypes.h.
2885
6f173e52
RH
28862010-08-24 Richard Henderson <rth@redhat.com>
2887
2888 PR bootstrap/45376
2889 * configure.ac (HAVE_SSE4): New check.
2890 * configure, config.in: Rebuild.
2891 * lex.c (search_line_sse42): Omit if !HAVE_SSE4.
2892
789d73cb
RO
28932010-08-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2894
2895 * lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
2896 etc. on Solaris 2/x86.
2897
246a2fcb
RH
28982010-08-21 Richard Henderson <rth@redhat.com>
2899 Andi Kleen <ak@linux.intel.com>
2900 David S. Miller <davem@davemloft.net>
2901
2902 * configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
2903 (ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
2904 (ptrdiff_t): Check via AC_CHECK_TYPE.
2905 * config.in, configure: Rebuild.
2906 * system.h: Include stdint.h, if available.
2907 * lex.c (WORDS_BIGENDIAN): Provide default.
2908 (acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
2909 acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
2910 search_line_sse2, search_line_sse42, init_vectorized_lexer,
2911 search_line_fast): New.
2912 (_cpp_clean_line): Use search_line_fast. Restructure the fast
2913 loop to make it clear when we're leaving the loop. Stay in the
2914 fast loop for non-trigraph '?'.
2915
8e680db5
JJ
29162010-06-11 Jakub Jelinek <jakub@redhat.com>
2917
2918 * include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro
2919 callback.
2920 (enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER.
2921 (cpp_macro_definition): Remove const qual from second argument.
2922 * macro.c (enter_macro_context): Call user_builtin_macro callback for
2923 NODE_BUILTIN !NODE_USED macros.
2924 (warn_of_redefinition): Likewise. Remove const qual from second
2925 argument.
2926 (cpp_macro_definition): Likewise.
2927 * pch.c (write_macdef, save_macros): Call user_builtin_macro callback
2928 for NODE_BUILTIN !NODE_USED macros.
2929
1cb42611
JM
29302010-06-10 Joseph Myers <joseph@codesourcery.com>
2931
2932 * include/cpplib.h (struct cpp_options): Remove show_column.
2933 * init.c (cpp_create_reader, post_options): Don't set show_column.
2934
ff5dfc48
JR
29352010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
2936
2937 PR bootstrap/44432
2938 * configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++,
2939 check that C++ compiler works.
2940 * configure: Regenerate.
2941
a9429e29
LB
29422010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2943
2944 * include/symtab.h (ht_identifier_ptr): New.
2945
c3f247f4
RW
29462010-06-03 Joern Rennecke <joern.rennecke@embecosm.com>
2947 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2948
2949 PR bootstrap/42798
2950 * configure.ac: Check for declaration of 'basename(char *)'.
2951 * configure: Regenerate.
2952 * config.in: Regenerate.
2953
2778d766
JM
29542010-04-25 Joseph Myers <joseph@codesourcery.com>
2955
2956 * include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X.
2957 * init.c (lang_defaults): Add entries for new language variants.
2958 (cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X
2959 variants.
2960
d8a12e84
MLI
29612010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
2962
2963 PR cpp/43195
2964 * files.c (report_missing_guard): Test for #pragma once.
2965
87cf0651
SB
29662010-04-07 Simon Baldwin <simonb@google.com>
2967
2968 * directives.c (do_diagnostic): Add warning reason argument,
2969 call appropriate error reporting function for code.
2970 (directive_diagnostics): Call specific warning functions with
2971 warning reason where appropriate.
2972 (do_error, do_warning, do_pragma_dependency): Add warning reason
2973 argument to do_diagnostic calls.
2974 * macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
2975 _cpp_create_definition): Call specific warning functions with
2976 warning reason where appropriate.
2977 * Makefile.in: Add new diagnostic functions to gettext translations.
2978 * include/cpplib.h (struct cpp_callbacks): Add warning reason code
2979 to error callback.
2980 (CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
2981 CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
2982 (CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
2983 CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
2984 CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
2985 CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
2986 CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
2987 CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
2988 CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
2989 warning reason codes.
2990 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
2991 cpp_warning_with_line, cpp_pedwarning_with_line,
2992 cpp_warning_with_line_syshdr): New specific error reporting functions.
2993 * pch.c (cpp_valid_state): Call specific warning functions with
2994 warning reason where appropriate.
2995 * errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
2996 diagnostic handlers.
2997 (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
2998 cpp_warning_with_line, cpp_pedwarning_with_line,
2999 cpp_warning_with_line_syshdr): New specific error reporting functions.
3000 * expr.c (cpp_classify_number, eval_token, num_unary_op): Call
3001 specific warning functions with warning reason where appropriate.
3002 * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
3003 warn_about_normalization, lex_identifier_intern, lex_identifier,
3004 _cpp_lex_direct): Ditto.
3005 * charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
3006 narrow_str_to_charconst): Ditto.
3007
d947ada0
JJ
30082010-04-06 Jakub Jelinek <jakub@redhat.com>
3009
3010 PR preprocessor/43642
3011 * lex.c (lex_raw_string): Change type of TYPE variable to
3012 unsigned char.
3013
4d9e8446
RW
30142010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3015
3016 * aclocal.m4: Regenerate.
3017
52150625
JM
30182010-03-29 Jason Merrill <jason@redhat.com>
3019
00a81b8b
JM
3020 More N3077 raw string changes
3021 * charset.c (cpp_interpret_string): Don't transform UCNs in raw
3022 strings.
3023 * lex.c (bufring_append): Split out from...
3024 (lex_raw_string): ...here. Undo trigraph and line splicing
3025 transformations. Do process line notes in multi-line literals.
3026 (_cpp_process_line_notes): Ignore notes that were already handled.
3027
52150625
JM
3028 Some raw string changes from N3077
3029 * charset.c (cpp_interpret_string): Change inner delimiters to ().
3030 * lex.c (lex_raw_string): Likewise. Also disallow '\' in delimiter.
3031
709d7160
JJ
30322010-02-11 Jakub Jelinek <jakub@redhat.com>
3033
3034 * init.c (read_original_filename): Don't call read_original_directory
3035 if _cpp_handle_directive returns 0.
3036
dadab4fd
JM
30372010-01-01 Joseph Myers <joseph@codesourcery.com>
3038
3039 PR preprocessor/41947
3040 * expr.c (cpp_classify_number): Give error for hexadecimal
3041 floating-point constant with no digits before or after point.
3042
3de8a540
AC
30432009-11-20 Arnaud Charlet <charlet@adacore.com>
3044
3045 * macro.c (enter_macro_context): Call cb.used callback if defined.
3046 * directives.c (do_idef, do_ifndef): Ditto.
3047 * include/cpplib.h (struct cpp_callbacks): Add used callback.
3048
17e7cb85
KT
30492009-11-11 Kai Tietz <kai.tietz@onevision.com>
3050
3051 * directives.c (do_pragma_push_macro): New pragma handler.
3052 (do_pragma_pop_macro): Likewise.
3053 (_cpp_init_internal_pragmas): Add push_macro and
3054 pop_macro handler to internal pragmas.
3055 (lex_macro_node_from_str): Removed.
3056 (cpp_push_definition): Replace lex_macro_node_from_str
3057 by _cpp_lex_identifier.
3058 (cpp_pop_definition): Likewise.
3059 * internal.h (_cpp_lex_identifier): New prototype.
3060 (def_pragma_macro): New structure.
3061 (cpp_reader): New member pushed_macros.
3062 * lex.c (_cpp_lex_identifier): New function.
3063 (lex_identifier_intern): New function.
3064 * init.c (cpp_create_reader): Initialize pushed_macros
3065 member.
3066 (cpp_destroy): Free elements in pushed_macros member.
3067 * pch.c (_cpp_save_pushed_macros): New function.
3068 (_cpp_restore_pushed_macros): Likewise.
3069 (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
3070 (cpp_read_state): Use _cpp_restore_pushed_macros.
3071
2c6e3f55
JJ
30722009-10-19 Jakub Jelinek <jakub@redhat.com>
3073
3074 * charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
3075 (_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
3076 and char32_cset_desc.
3077 (converter_for_type): Handle CPP_UTF8STRING.
3078 (cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
3079 * directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
3080 (parse_include): Reject raw strings.
3081 * include/cpplib.h (CPP_UTF8STRING): New token type.
3082 * internal.h (struct cpp_reader): Add utf8_cset_desc field.
3083 * lex.c (lex_raw_string): New function.
3084 (lex_string): Handle u8 string literals, call lex_raw_string
3085 for raw string literals.
3086 (_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
3087 sequences.
3088 * macro.c (stringify_arg): Handle CPP_UTF8STRING.
3089
96c169e1
JJ
30902009-10-14 Jakub Jelinek <jakub@redhat.com>
3091
3092 PR preprocessor/41543
3093 * include/line-map.h (RESERVED_LOCATION_COUNT): Define.
3094 * line-map.c (linemap_init): Initialize highest_location and
3095 highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
3096
30c99a9e
JM
30972009-10-09 Jason Merrill <jason@redhat.com>
3098
3099 * charset.c (_cpp_valid_ucn): Update C++0x restrictions.
3100
2214382c
NV
31012009-10-09 Neil Vachharajani <nvachhar@google.com>
3102
3103 * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and
3104 sccs.
3105
e02222d2
LR
31062009-09-23 Loren J. Rittle <ljrittle@acm.org>
3107
3108 * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h.
3109 * configure: Rebuilt.
3110
9a8a2b7a
RG
31112009-09-22 Richard Guenther <rguenther@suse.de>
3112
3113 PR pch/38987
3114 * files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
3115
74dc6a11
CD
31162009-09-18 Chris Demetriou <cgd@google.com>
3117
3118 PR preprocessor/28435:
3119 * include/cpplib.h (struct cpp_options): Add new member
3120 deps.need_preprocessor_output.
3121 * files.c (open_file_failed): If preprocessor output is needed
3122 always report an error.
3123
933608b7
KT
31242009-09-13 Kai Tietz <kai.tietz@onevision.com>
3125
3126 * configure.ac: Set for i?86-w64-mingw*
3127 need_64bit_hwint to yes.
3128 * configure: Regenerated.
3129
86373e7e
JM
31302009-09-10 Jason Merrill <jason@redhat.com>
3131
3132 * directives.c (cpp_define): constify.
3133
fd2ab214
ILT
31342009-09-02 Ian Lance Taylor <iant@google.com>
3135
3136 * macro.c (stringify_arg): Escape CPP_WCHAR tokens.
3137
df58e648
RW
31382009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3139
3140 * configure.ac (AC_PREREQ): Bump to 2.64.
3141
5213506e
RW
31422009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3143
3144 * aclocal.m4: Regenerate.
3145 * config.in: Regenerate.
3146 * configure: Regenerate.
3147
709a22df
TT
31482009-08-17 Tom Tromey <tromey@redhat.com>
3149
3150 PR preprocessor/41067:
3151 * charset.c (convert_escape): Add missing ":" to error text.
3152
0c539b47
DR
31532009-07-27 Douglas B Rupp <rupp@gnat.com>
3154
3155 * include/cpplib.h (INO_T_CPP): New macro.
3156 (struct cpp_dir): Use it.
3157
2b69c841
JQ
31582009-07-20 Jerry Quinn <jlquinn@optonline.net>
3159
3160 PR regression/40800
3161 * configure.ac: Use = instead of == for testing
3162 ENABLE_BUILD_WITH_CXX.
3163 * configure: Rebuild.
3164
f1bf410c
JQ
31652009-07-17 Jerry Quinn <jlquinn@optonline.net>
3166
3167 * directives.c (do_linemarker, do_line): Use CPP_STRING for
3168 ignored enum value.
3169 * files.c (find_file_in_dir): Add cast from void* to char*.
3170 * symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
3171 * Makefile.in: (WARN_CFLAGS): Use general and C-specific
3172 warnings.
3173 (CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
3174 ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
3175 COMPILER_FLAGS): New.
3176 (DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
3177 (COMPILE.base): Use COMPILER instead of CC. Use COMPILER_FLAGS
3178 instead of ALL_CFLAGS.
3179 * configure.ac: Invoke AC_PROG_CXX. Separate C-specific warnings
3180 from other warnings. Add -Wc++-compat to C-specific warnings.
3181 Check for --enable-build-with-cxx. Set and substitute
3182 ENABLE_BUILD_WITH_CXX. Invoke ZW_PROG_COMPILER_DEPENDENCIES
3183 according to ENABLE_BUILD_WITH_CXX. Invoke AC_LANG before
3184 AC_CHECK_HEADERS.
3185 * configure: Rebuild.
3186 * include/cpp-id-data.h: Remove extern "C".
3187 * include/line-map.h: Likewise.
3188 * include/mkdeps.h: Likewise.
3189 * include/symtab.h: Likewise.
3190 * internal.h: Likewise.
3191
a28fbdba
MLI
31922009-06-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3193
3194 * directives.c (parse_include): Add location argument. Update all
3195 calls.
3196 (parse_answer): Likewise.
3197 (do_include_common): Error with exact location.
3198 (parse_assertion): Likewise.
3199
b506a5a2
MLI
32002009-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
3201
3202 * expr.c (num_div_op): Take explicit location.
3203
7d8847a4
ILT
32042009-06-17 Ian Lance Taylor <iant@google.com>
3205
3206 * include/cpplib.h (progname): Don't declare.
3207
3d8b2a98
ILT
32082009-06-12 Ian Lance Taylor <iant@google.com>
3209
3210 * include/cpplib.h (struct cpp_options): Add
3211 warn_cxx_operator_names field.
3212 (NODE_WARN_OPERATOR): Define.
3213 (struct cpp_hashnode): Increase flags field to 10 bits, decrease
3214 type to 6 bits.
3215 * init.c (mark_named_operators): Add flags parameter.
3216 (cpp_post_options): Pick flags value to pass to
3217 mark_named_operators.
3218 * lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that
3219 identifier is an operator name in C++.
3220
e74fe492
AH
32212009-06-01 Aldy Hernandez <aldyh@redhat.com>
3222
3223 * include/line-map.h (LAST_SOURCE_COLUMN): New.
3224
4851089f
ILT
32252009-06-01 Ian Lance Taylor <iant@google.com>
3226
3227 * include/cpp-id-data.h: Add extern "C".
3228 * include/line-map.h: Likewise.
3229 * include/mkdeps.h: Likewise.
3230 * include/symtab.h: Likewise.
3231 * internal.h: Likewise.
3232
7e5487a2
ILT
32332009-05-15 Ian Lance Taylor <iant@google.com>
3234
3235 * include/cpplib.h (enum cpp_builtin_type): Rename from enum
3236 builtin_type. Change all uses.
3237
00b0c19b
MLI
32382009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3239
3240 PR cpp/36674
3241 * directives (do_linemarker): Compensate for the increment in
3242 location that occurs when we reach the end of line.
3243 * files (_cpp_stack_include): Mention _cpp_find_file in the
3244 comment.
3245
9a0c6187
JM
32462009-05-10 Joseph Myers <joseph@codesourcery.com>
3247
3248 * include/cpplib.h (enum cpp_token_fld_kind): Add
3249 CPP_TOKEN_FLD_TOKEN_NO.
3250 (struct cpp_macro_arg, struct cpp_identifier): Define.
3251 (union cpp_token_u): Use struct cpp_identifier for identifiers.
3252 Use struct cpp_macro_arg for macro arguments. Add token_no for
3253 CPP_PASTE token numbers.
3254 * directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
3255 do_pragma_poison, parse_assertion): Use val.node.node in place of
3256 val.node.
3257 * expr.c (parse_defined, eval_token): Use val.node.node in place
3258 of val.node.
3259 * lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
3260 cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
3261 cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
3262 place of val.arg_no. Use val.node.node in place of val.node.
3263 * macro.c (replace_args, cpp_get_token, parse_params,
3264 lex_expansion_token, create_iso_definition, cpp_macro_definition):
3265 Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
3266 Use val.node.node in place of val.node.
3267
9e322bc1
JM
32682009-05-03 Joseph Myers <joseph@codesourcery.com>
3269
3270 * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte
3271 UTF-8 sequences.
3272
f88d0772
JM
32732009-04-25 Joseph Myers <joseph@codesourcery.com>
3274
3275 PR preprocessor/39559
3276 * expr.c (cpp_interpret_integer): Use a pedwarn for decimal
3277 constants larger than intmax_t in C99 mode.
3278
d1b38208
TG
32792009-04-21 Taras Glek <tglek@mozilla.com>
3280
3281 * include/cpp-id-data.h: Update GTY annotations to new syntax.
3282 * include/cpplib.h: Likewise.
3283 * include/line-map.h: Likewise.
3284 * include/symtab.h: Likewise.
3285
cfc93532
MLI
32862009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3287
3288 PR c++/14875
3289 * lex.c (cpp_type2name): Take a flags parameter. Call
3290 cpp_named_operator2name for named operators and cpp_digraph2name
3291 for digraphs.
3292 (cpp_digraph2name): New.
3293 (cpp_spell_token): Use it.
3294 (cpp_output_token): Likewise.
3295 * include/cpplib.h (cpp_type2name): Update declaration.
3296 * init.c (cpp_named_operator2name): New.
3297 * internal.h (cpp_named_operator2name): Declare.
3298
9c650d90
MLI
32992009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3300
3301 PR c++/13358
3302 * init.c (cpp_create_reader): Wlong_long is disabled by default.
3303 * expr.c (cpp_classify_number): Give different messages for C and
3304 C++ front-ends.
3305
aa508502
JM
33062009-04-19 Joseph Myers <joseph@codesourcery.com>
3307
3308 PR preprocessor/20078
3309 * include/cpp-id-data.h (struct cpp_macro): Add extra_tokens
3310 field.
3311 * include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define.
3312 (struct cpp_token): Change flags to unsigned short.
3313 * lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens.
3314 (_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens.
3315 (cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE
3316 tokens.
3317 * macro.c (macro_real_token_count): New.
3318 (enter_macro_context, replace_args): Use macro_real_token_count.
3319 (create_iso_definition): Record whitespace surrounding and digraph
3320 spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH.
3321 Set extra_tokens and save CPP_PASTE tokens with arg_no set for
3322 multiple consecutive ## tokens.
3323 (_cpp_create_definition): Initialize extra_tokens.
3324 (cpp_macro_definition): Use macro_real_token_count.
3325
61cc8223
JM
33262009-04-18 Joseph Myers <joseph@codesourcery.com>
3327
3328 * directives.c (parse_include): Pass true to check_eol.
3329
c7f9c0b9
JM
33302009-04-18 Joseph Myers <joseph@codesourcery.com>
3331
3332 PR preprocessor/39646
3333 * include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM.
3334 * line-map.c (linemap_add): Handle LC_RENAME_VERBATIM.
3335 * directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in
3336 place of LC_RENAME.
3337
a5cb563b
JM
33382009-04-18 Joseph Myers <joseph@codesourcery.com>
3339
3340 PR preprocessor/39647
3341 * directives.c (check_eol): Add parameter expand.
3342 (do_undef, parse_include, do_line, do_linemarker, do_ident,
3343 do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef,
3344 do_else, do_endif, do_assert, do_unassert): All callers changed.
3345 Pass true from do_line, false elsewhere.
3346
18f41a1b
JM
33472009-04-12 Joseph Myers <joseph@codesourcery.com>
3348
3349 PR preprocessor/31869
3350 * macro.c (stringify_arg): Handle NULL source token in padding
3351 token where previous padding token did not have source token with
3352 preceding whitespace.
3353
748086b7
JJ
33542009-04-09 Jakub Jelinek <jakub@redhat.com>
3355
3356 * Makefile.in: Change copyright header to refer to version
3357 3 of the GNU General Public License and to point readers at the
3358 COPYING3 file and the FSF's license web page.
3359 * charset.c: Likewise.
3360 * directives-only.c: Likewise.
3361 * directives.c: Likewise.
3362 * errors.c: Likewise.
3363 * expr.c: Likewise.
3364 * files.c: Likewise.
3365 * identifiers.c: Likewise.
3366 * include/cpp-id-data.h: Likewise.
3367 * include/cpplib.h: Likewise.
3368 * include/line-map.h: Likewise.
3369 * include/mkdeps.h: Likewise.
3370 * include/symtab.h: Likewise.
3371 * init.c: Likewise.
3372 * internal.h: Likewise.
3373 * lex.c: Likewise.
3374 * line-map.c: Likewise.
3375 * macro.c: Likewise.
3376 * makeucnid.c: Likewise.
3377 * mkdeps.c: Likewise.
3378 * pch.c: Likewise.
3379 * symtab.c: Likewise.
3380 * system.h: Likewise.
3381 * traditional.c: Likewise.
3382 * ucnid.tab: Likewise.
3383 * ucnid.h: Regenerate.
3384
eec49116
JJ
33852009-04-01 Janis Johnson <janis187@us.ibm.com>
3386
839a3b8a
JJ
3387 PR c/39027
3388 * include/cpplib.h (CPP_N_DEFAULT): Define.
3389 * expr.c (interpret_float_suffix): Recognize d or D for double,
3390 return new value for default.
3391 (cpp_classify_number): Issue pedwarn for use of d or D in suffix.
3392
eec49116
JJ
3393 PR c/33466
3394 * expr.c (interpret_float_suffix): Reject invalid suffix that uses
3395 letters from decimal float and fixed-point suffixes.
3396
47580d22
JM
33972009-03-31 Joseph Myers <joseph@codesourcery.com>
3398
3399 PR preprocessor/15638
3400 * files.c (_cpp_find_file): Call open_file_failed after diagnosing
3401 invalid PCH.
3402 (open_file_failed): Make error for missing file fatal.
3403 * include/cpplib.h (CPP_DL_FATAL): Define.
3404
5a2df0fa
SV
34052009-03-30 Sergiy Vyshnevetskiy <serg@vostok.net>
3406
3407 PR preprocessor/31932:
3408 * internal.h: Don't mention HAVE_ICONV_H.
3409 * configure, config.in: Rebuild.
3410 * configure.ac: Don't check for iconv.h.
3411
c1a8a3c6
TT
34122009-03-30 Tom Tromey <tromey@redhat.com>
3413
3414 PR preprocessor/39512:
3415 * line-map.c (linemap_init): Initialize 'reallocator' field.
3416
a37a7b8a
JJ
34172009-03-30 Jakub Jelinek <jakub@redhat.com>
3418
3419 PR target/39558
3420 * macro.c (cpp_get_token): If macro_to_expand returns NULL
3421 and used some tokens, add CPP_PADDING before next token.
3422
148e4216
JM
34232009-03-29 Joseph Myers <joseph@codesourcery.com>
3424
3425 PR preprocessor/34695
3426 * makedepend.c: Remove.
3427 * Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove.
3428 (all, clean, TAGS_SOURCES, include): Remove makedepend handling.
3429 * directives.c (cpp_errors): Remove.
3430 * errors.c (print_location, _cpp_begin_message, v_message):
3431 Remove.
3432 (cpp_error, cpp_error_with_line): Always use error callback.
3433 (cpp_error, cpp_error_with_line, cpp_errno): Return bool.
3434 * include/cpplib.h (cpp_options): Remove pedantic_errors,
3435 inhibit_warnings, warn_system_headers, inhibit_errors,
3436 warnings_are_errors, client_diagnostic.
3437 (cpp_callbacks): Add extra arguments to error callback; make it
3438 return bool.
3439 (cpp_finish): Return void.
3440 (cpp_destroy): Remove inaccurate comment about return value.
3441 (cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove.
3442 (CPP_DL_NOTE): Define.
3443 * include/line-map.h (linemap_print_containing_files): Remove.
3444 * init.c (cpp_finish): Do not check for or return number of
3445 errors.
3446 * internal.h (cpp_reader): Remove errors field.
3447 * line-map.c (linemap_print_containing_files): Remove.
3448 * macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message
3449 about previous definition. Only emit it if previous diagnostic
3450 was emitted.
3451
f1450211
JM
34522009-03-28 Joseph Myers <joseph@codesourcery.com>
3453
3454 * Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not
3455 mkinstalldirs.
3456
8f5929e1
JJ
34572009-03-18 Jakub Jelinek <jakub@redhat.com>
3458
3459 * include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
3460
4bb09c26
JM
34612009-02-21 Joseph Myers <joseph@codesourcery.com>
3462
3463 * lex.c (lex_string): Return a CPP_LESS token for missing '>' in a
3464 header name.
3465 (_cpp_lex_direct): Handle this.
3466
68c9ab45
RG
34672009-02-15 Richard Guenther <rguenther@suse.de>
3468
3469 Revert last change.
3470
601b3e1a
RG
34712009-02-13 Richard Guenther <rguenther@suse.de>
3472
3473 * configure.ac: Enable LFS.
3474 * configure: Re-generate.
3475 * config.in: Likewise.
3476
fc0cd180
BE
34772009-01-05 Ben Elliston <bje@au.ibm.com>
3478
3479 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
3480 (.po.pox): Likewise.
3481 (po/$(PACKAGE).pot): Likewise.
3482
db89a3be
AO
34832008-12-10 Alexandre Oliva <aoliva@redhat.com>
3484
3485 PR target/37033
3486 * pch.c (cpp_valid_state): Improve message for poisoned symbols.
3487 Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.
3488
cc955282
JM
34892008-11-29 Joseph Myers <joseph@codesourcery.com>
3490
3491 * lex.c (cpp_token_len): Use 6 as default length.
3492
47960aaf
MLI
34932008-10-31 Manuel López-Ibáñez <manu@gcc.gnu.org>
3494
3495 * expr.c (struct op): Add location.
3496 (_cpp_parse_expr): Propagate locations throught the stack
3497 of expressions.
3498 (reduce): Likewise.
3499 (check_promotion): Use explicit location in errors.
3500
631d0d36
MG
35012008-10-05 Matthew Gingell <gingell@adacore.com>
3502 Arnaud Charlet <charlet@adacore.com>
3503
3504 * include/cpplib.h (cpp_comments, cpp_comment_table): New structs.
3505 (cpp_get_comments): New function.
3506 * internal.h (struct cpp_reader): Add comments field.
3507 * init.c (cpp_destroy): Free comments.
3508 * lex.c (store_comment, cpp_get_comments): New functions.
3509 (comments): New struct.
3510 (save_comment): Store comments in comments struct.
3511
c047ce93
SB
35122008-09-18 Simon Baldwin <simonb@google.com>
3513
3514 * include/cpplib.h (struct cpp_options): Add new boolean flag
3515 warn_builtin_macro_redefined.
3516 * init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
3517 * (struct builtin_operator): Split out from previous struct builtin,
3518 enhance extra const correctness.
3519 * (struct builtin_macro): Split out from previous struct builtin, add
3520 new always_warn_if_redefined flag, enhance const correctness.
3521 * (mark_named_operators): Use struct builtin_operator.
3522 * (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
3523 to builtins selectively.
3524 * macro.c (warn_of_redefinition): Return false if a builtin macro
3525 is not flagged with NODE_WARN.
3526
affa55c6
JJ
35272008-07-31 Jakub Jelinek <jakub@redhat.com>
3528
3529 PR preprocessor/36649
3530 * files.c (struct report_missing_guard_data): New type.
3531 (report_missing_guard): Put paths into an array instead of printing
3532 them right away. Return 1 rather than 0.
3533 (report_missing_guard_cmp): New function.
3534 (_cpp_report_missing_guards): Sort and print paths gathered by
3535 report_missing_guard callback.
3536
3b8f20a1
MLI
35372008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3538
3539 PR 28079
3540 * directives.c (strtolinenum): Handle overflow.
3541 (do_line): Give a warning if line number overflowed.
3542 (do_linemarker): Update call to strtolinenum.
3543
1bb64668
MLI
35442008-07-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3545
3546 * include/line-map.h (linenum_type): New typedef.
3547 (struct line_map): Use it.
3548 (SOURCE_LINE): Second arguments is a LOCATION not a LINE.
3549 (SOURCE_COLUMN): Likewise.
3550 * macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store
3551 source_location values in a variable of type linenum_type.
3552 * directives.c (struct if_stack): Use linenum_type.
3553 (strtoul_for_line): Rename as strtolinenum.
3554 (do_line): Use linenum_type.
3555 (do_linemarker): Use linenum_type and strtolinenum.
3556 (_cpp_do_file_change): Use linenum_t.
3557 * line-map.c (linemap_add): Likewise.
3558 (linemap_line_start): Likewise.
3559 * traditional.c (struct fun_macro): 'line' is a source_location.
3560 * errors.c (print_location): Use linenum_type.
3561 * directives-only.c (_cpp_preprocess_dir_only): Likewise.
3562 * internal.h (CPP_INCREMENT_LINE): Likewise.
3563 * lex.c (_cpp_skip_block_comment): Use source_location.
19a9ba64 3564
5950c3c9
BE
35652008-07-14 Ben Elliston <bje@au.ibm.com>
3566
3567 * include/cpplib.h (NODE_CONDITIONAL): New.
3568 (struct cpp_callbacks): New macro_to_expand field.
3569 (struct cpp_hashnode): Adjust size of flags and type fields.
3570 (cpp_peek_token): Prototype.
3571 * lex.c (cpp_peek_token): New function.
3572 (_cpp_temp_token): Protect pre-existing lookaheads.
3573 * macro.c (cpp_get_token): Expand any conditional macros.
3574 (_cpp_backup_tokens_direct): New.
3575 (_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
3576 (warn_of_redefinition): Silently allow redefined conditional
3577 macros.
3578 (_cpp_create_definition): Remove the conditional flag when a user
3579 defines one of the conditional macros.
3580 * internal.h (_cpp_backup_tokens_direct): New prototype.
3581
e85edc9e
AH
35822008-06-13 Andrew Haley <aph@redhat.com>
3583
3584 PR preprocessor/33305
3585 * macro.c (replace_args): Print a warning for empty macro
3586 arguments in C89 and C++.
3587
18c04407
RW
35882008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3589
3590 * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.
3591 * configure: Regenerate.
3592
2d09b640
RW
35932008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3594
3595 * Makefile.in (datarootdir): New variable.
3596
0b7c73cc
L
35972008-06-12 H.J. Lu <hongjiu.lu@intel.com>
3598
3599 PR preprocessor/36479
3600 * charset.c (cpp_interpret_string_notranslate): Also set
3601 narrow_cset_desc.width.
3602
cd985f66
JM
36032008-06-07 Joseph Myers <joseph@codesourcery.com>
3604
3605 * configure.ac (parisc*64*-*-*): Remove.
3606 * configure: Regenerate.
3607
d750887f
TT
36082008-05-30 Tom Tromey <tromey@redhat.com>
3609
3610 PR preprocessor/36320:
3611 * internal.h (_cpp_parse_expr): Update.
3612 * expr.c (_cpp_parse_expr): Add 'is_if' argument. Update error
3613 messages.
3614 * directives.c (do_if): Update.
3615 (do_elif): Require expression if processing group.
3616
c100de59
DS
36172008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
3618
3619 * include/cpplib.h (struct cpp_dir): Add new field, canonical_name.
3620
5d6342eb
TT
36212008-05-21 Tom Tromey <tromey@redhat.com>
3622
3623 PR preprocessor/27777:
3624 * lex.c (cpp_output_line_to_string): New function.
3625 * internal.h (_cpp_begin_message): Don't declare.
3626 * errors.c (_cpp_begin_message): Now static.
3627 * include/cpplib.h (cpp_output_line_to_string): Declare.
3628 * directives.c (do_diagnostic): Rewrote. Use
3629 cpp_output_line_to_string. Don't use _cpp_begin_message.
3630
dae4174e
TT
36312008-05-21 Tom Tromey <tromey@redhat.com>
3632
3633 * include/symtab.h (HT_ALLOCED): Remove.
3634 (ht_purge): Declare.
3635 * symtab.c (DELETED): New define.
3636 (ht_lookup): Update comment.
3637 (ht_lookup_with_hash): Handle deleted entries. Remove HT_ALLOCED
3638 code. Use subobject allocator for strings, if it exists.
3639 (ht_expand): Handle deleted entries.
3640 (ht_forall): Likewise.
3641 (ht_purge): New function.
3642 (ht_dump_statistics): Print deletion statistics.
3643
899015a0
TT
36442008-05-13 Tom Tromey <tromey@redhat.com>
3645
3646 PR preprocessor/22168:
3647 * include/cpplib.h (struct cpp_options) <objc>: Update
3648 documentation.
3649 * expr.c (eval_token): Warn for use of assertions.
3650 * directives.c (directive_diagnostics): Warn about extensions.
3651 (DEPRECATED): New define.
3652 (DIRECTIVE_TABLE): Use it.
3653
71c10038
TT
36542008-05-06 Tom Tromey <tromey@redhat.com>
3655
3656 PR preprocessor/35313, PR preprocessor/36088:
3657 * expr.c (optab) <QUERY, COMMA>: Set precedence to 4.
3658 (reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON.
3659
2bd0fe3d
DM
36602008-05-04 David S. Miller <davem@davemloft.net>
3661
3662 * configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
3663 * configure: Regenerate.
3664
28f68625
DF
36652008-04-22 Daniel Franke <franke.daniel@gmail.com>
3666
3667 * include/cpplib.h (cpp_define_formatted): New.
3668 * directives.c (cpp_define_formatted): New.
3669
688e7a53
TT
36702008-04-21 Tom Tromey <tromey@redhat.com>
3671
3672 PR libcpp/33415:
3673 * charset.c (_cpp_convert_input): Add buffer_start argument.
3674 Ignore UTF-8 BOM if seen.
3675 * internal.h (_cpp_convert_input): Add argument.
3676 * files.c (struct _cpp_file) <buffer_start>: New field.
3677 (destroy_cpp_file): Free buffer_start, not buffer.
3678 (_cpp_pop_file_buffer): Likewise.
3679 (read_file_guts): Update.
3680
b6baa67d
KVH
36812008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
3682
3683 * include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal.
3684 * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
3685 (struct cpp_options): Added uliterals.
3686 (cpp_interpret_string): Update prototype.
3687 (cpp_interpret_string_notranslate): Idem.
3688 * charset.c (init_iconv_desc): New width member in cset_converter.
3689 (cpp_init_iconv): Add support for char{16,32}_cset_desc.
3690 (convert_ucn): Idem.
3691 (emit_numeric_escape): Idem.
3692 (convert_hex): Idem.
3693 (convert_oct): Idem.
3694 (convert_escape): Idem.
3695 (converter_for_type): New function.
3696 (cpp_interpret_string): Use converter_for_type, support u and U prefix.
3697 (cpp_interpret_string_notranslate): Match changed prototype.
3698 (wide_str_to_charconst): Use converter_for_type.
3699 (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
3700 * directives.c (linemarker_dir): Macro U changed to UC.
3701 (parse_include): Idem.
3702 (register_pragma_1): Idem.
3703 (restore_registered_pragmas): Idem.
3704 (get__Pragma_string): Support CPP_STRING{16,32}.
3705 * expr.c (eval_token): Support CPP_CHAR{16,32}.
3706 * init.c (struct lang_flags): Added uliterals.
3707 (lang_defaults): Idem.
3708 * internal.h (struct cset_converter) <width>: New field.
3709 (struct cpp_reader) <char16_cset_desc>: Idem.
3710 (struct cpp_reader) <char32_cset_desc>: Idem.
3711 * lex.c (digraph_spellings): Macro U changed to UC.
3712 (OP, TK): Idem.
3713 (lex_string): Add support for u'...', U'...', u"..." and U"...".
3714 (_cpp_lex_direct): Idem.
3715 * macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
3716 (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
3717
deb984e6
PB
37182008-04-18 Paolo Bonzini <bonzini@gnu.org>
3719
3720 PR bootstrap/35457
3721 * aclocal.m4: Regenerate.
3722 * configure: Regenerate.
3723
bf048bea
TT
37242008-04-17 Tom Tromey <tromey@redhat.com>
3725
3726 PR libcpp/34866:
3727 * errors.c (cpp_error): Don't reference a token before the start
3728 of the current run.
3729
7f27b0f8
TT
37302008-04-16 Tom Tromey <tromey@redhat.com>
3731
3732 * Makefile.in (TAGS_SOURCES): New variable.
3733 (TAGS): New target.
3734
a1fcb9a1
KK
37352008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
3736
3737 * configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-*
3738 and shbe-*-*.
3739 * configure: Rebuilt.
3740
93d45d9e
JM
37412008-04-02 Joseph Myers <joseph@codesourcery.com>
3742
3743 * include/cpplib.h (struct cpp_callbacks): Add used_define,
3744 used_undef and before_define.
3745 (NODE_USED): Define.
3746 * directives.c (do_define, do_undef, undefine_macros, do_ifdef,
3747 do_ifndef, cpp_pop_definition): Handle new flag and use new
3748 callbacks.
3749 * expr.c (parse_defined): Handle new flag and use new callbacks.
3750 * macro.c (enter_macro_context, _cpp_free_definition): Handle new
3751 flag and use new callbacks.
3752
d4c32e1d
JJ
37532008-04-01 Jakub Jelinek <jakub@redhat.com>
3754
3755 PR pch/13675
3756 * files.c (struct _cpp_file): Remove pch field.
3757 (pch_open_file): Don't set file->pch, just file->pchname.
3758 (should_stack_file): After pfile->cb.read_pch call
3759 free pchname and clear pchname, don't close file->fd.
3760 Test file->pchname instead of file->pch. Don't close fd after cb.
3761 (_cpp_stack_include): Test file->pchname instead of file->pch.
3762
161031e3
TT
37632008-03-28 Tom Tromey <tromey@redhat.com>
3764
3765 * Makefile.in (POSTCOMPILE): New variable.
3766 (.c.o): Use it.
3767
14ccf800
TT
37682008-03-13 Tom Tromey <tromey@redhat.com>
3769
3770 PR libcpp/35322:
3771 * directives.c (destringize_and_run): Set pfile->directive.
3772
830465c6
MM
37732008-03-06 Markus Milleder <markus.milleder@generali.at>
3774
3775 PR preprocessor/35458
3776 * mkdeps.c (munge): Quote '#' with a '\'.
3777
d482a073
RW
37782008-02-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3779
3780 PR preprocessor/35379
3781 * mkdeps.c (deps_write): Ensure the first target always appears
3782 in the first column, without leading backslash newline. Avoid
3783 some more extra whitespace.
3784
185a6cc1
TS
37852008-02-25 Thiemo Seufer <ths@mips.com>
3786
d482a073 3787 * Makefile.in ($(srcdir)/config.in): Depend on configure.ac.
185a6cc1 3788
2bf41bf0
TT
37892008-02-19 Tom Tromey <tromey@redhat.com>
3790
3791 * traditional.c (lex_identifier): Use CPP_HASHNODE.
3792 * lex.c (lex_identifier): Use CPP_HASHNODE.
3793 * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in
3794 do-while.
3795 * identifiers.c (alloc_node): Change return type.
3796 (_cpp_init_hashtable): Don't cast 'alloc_node'.
3797 (proxy_assertion_broken): New declaration.
3798 (cpp_forall_identifiers): Move comment.
3799 * line-map.c (linemap_add): Comment fix.
3800 (linemap_line_start): Indentation fix.
3801
765d600a
JJ
38022008-01-25 Jakub Jelinek <jakub@redhat.com>
3803
3804 PR preprocessor/34692
3805 * macro.c (collect_args): Add pragma_buff argument. Push
3806 CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather
3807 than into arguments. Reset prevent_expansion and parsing_args
3808 state at CPP_PRAGMA_EOL/CPP_EOF.
3809 (funlike_invocation_p): Add pragma_buff argument, pass it through
3810 to collect_args.
3811 (enter_macro_context): Add result argument. Adjust
3812 funlike_invocation_p caller. Emit all deferred pragma tokens
3813 gathered during collect_args before the expansion, add a padding
3814 token. Return 2 instead of 1 if any pragma tokens were prepended.
3815 (cpp_get_token): If enter_macro_context returns 2, don't return
3816 a padding token, instead cycle to grab CPP_PRAGMA token.
3817 * directives.c (_cpp_handle_directive): If was_parsing_args
3818 in deferred pragma, leave parsing_args and prevent_expansion as is.
3819
ec46053b
TT
38202008-01-22 Tom Tromey <tromey@redhat.com>
3821
765d600a 3822 PR c++/34859
ec46053b
TT
3823 * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and
3824 __STDC_CONSTANT_MACROS.
3825
681c6ab0
FF
38262008-01-07 Fred Fish <fnf@specifix.com>
3827
765d600a 3828 PR preprocessor/30363
681c6ab0 3829 * traditional.c (replace_args_and_push): Add local variable
19a9ba64 3830 cxtquote, calculate the replacement text size assuming a
681c6ab0
FF
3831 worst case of every input character quoted with backslash,
3832 and properly handle output quoting of quote characters in
3833 actual arguments used in function-like macros.
3834
33ae4837
TT
38352008-01-03 Tom Tromey <tromey@redhat.com>
3836
765d600a 3837 PR preprocessor/34602
33ae4837
TT
3838 * directives.c (do_line): Don't try to spell EOF token.
3839 (do_linemarker): Add comment.
3840
675575f5
DD
38412007-12-11 DJ Delorie <dj@redhat.com>
3842
3843 * charset.c (convert_using_iconv): Close out any shift states,
3844 returning to the initial state.
3845
97f6bd40
TT
38462007-12-06 Tom Tromey <tromey@redhat.com>
3847
765d600a 3848 PR c/29172
97f6bd40
TT
3849 * internal.h (struct cpp_reader) <file_hash_entries>: Changed
3850 type.
3851 <file_hash_entries_allocated, file_hash_entries_used>: Removed.
3852 * files.c (FILE_HASH_POOL_SIZE): New macro.
3853 (struct file_hash_entry_pool): New.
3854 (destroy_all_cpp_files): New function.
3855 (allocate_file_hash_entries): Allocate a file_hash_entry_pool.
3856 (new_file_hash_entry): Update.
3857 (free_file_hash_entries): New function.
3858 (_cpp_cleanup_files): Call free_file_hash_entries and
3859 destroy_all_cpp_files.
3860 (cpp_clear_file_cache): New function.
3861 * include/cpplib.h (cpp_clear_file_cache): Declare.
3862
d56a25e1
TT
38632007-12-03 Tom Tromey <tromey@redhat.com>
3864
765d600a 3865 PR preprocessor/34288
d56a25e1
TT
3866 * configure.ac, config.in: Rebuilt.
3867 * configure.ac: Check for ssize_t.
3868
607f74e9
TT
38692007-11-30 Tom Tromey <tromey@redhat.com>
3870
765d600a 3871 PR preprocessor/32868
607f74e9
TT
3872 * macro.c (_cpp_create_definition): Special case
3873 __STDC_FORMAT_MACROS.
3874
b0f4807f
MM
38752007-11-16 Michael Matz <matz@suse.de>
3876
3877 * files.c (search_path_head): Fix check for absolute paths.
3878
f1e20710
TT
38792007-11-11 Tom Tromey <tromey@redhat.com>
3880
765d600a 3881 PR c++/17557
f1e20710
TT
3882 * include/cpplib.h (cpp_included_before): Declare.
3883 * files.c (struct file_hash_entry) <location>: New field.
3884 (_cpp_find_file): Initialize new field.
3885 (make_cpp_dir): Likewise.
3886 (cpp_included_before): New function.
3887
f373b44d
TT
38882007-11-01 Tom Tromey <tromey@redhat.com>
3889
765d600a 3890 PR preprocessor/30805
f373b44d
TT
3891 * macro.c (paste_tokens): Handle padding token.
3892 (paste_tokens): Don't abort unless padding has PASTE_LEFT flag.
3893
5b9a40df
TT
38942007-10-31 Tom Tromey <tromey@redhat.com>
3895
765d600a 3896 PR preprocessor/30786
5b9a40df
TT
3897 * macro.c (builtin_macro): Return result of _cpp_do__Pragma.
3898 * directives.c (_cpp_do__Pragma): Return error status.
3899 * internal.h (_cpp_do__Pragma): Update.
3900 * directives.c (get__Pragma_string): Back up if EOF seen.
3901
5ffeb913
TT
39022007-09-06 Tom Tromey <tromey@redhat.com>
3903
3904 * internal.h (struct cpp_reader) <invocation_location>: New
3905 field.
3906 (struct cpp_reader) <set_invocation_location>: Likewise.
3907 * init.c (cpp_set_line_map): New function.
3908 * line-map.c (linemap_add): Use linemap's allocator.
3909 * include/line-map.h (GTY): Define.
3910 (line_map_realloc): New typedef.
3911 (struct line_map): Mark with GTY.
3912 (struct line_maps): Likewise.
3913 (struct line_maps) <maps>: Likewise.
3914 (struct line_maps) <reallocator>: New field.
3915 * include/symtab.h (GTY): Conditionally define.
3916 * include/cpplib.h (cpp_set_line_map): Declare.
3917 (cpp_get_token_with_location): Declare.
3918 * macro.c (cpp_get_token): Set invocation_location on the reader.
3919 (cpp_get_token_with_location): New function.
3920
ac6b1c67
CF
39212007-08-30 Chao-ying Fu <fu@mips.com>
3922
3923 * expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur,
3924 ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk.
3925 (cpp_classify_number): Support decimal fixed-point constants without
3926 exponents.
3927 Warn about fixed-point constants when -pedantic.
3928 * include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change
3929 comments to support fixed-point values.
3930 (CPP_N_FRACT, CPP_N_ACCUM): Define.
3931
cda5e672
TT
39322007-08-18 Tom Tromey <tromey@redhat.com>
3933
765d600a 3934 PR preprocessor/32974
cda5e672
TT
3935 * directives.c (parse_include): Don't check for EOL when
3936 processing #pragma dependency.
3937
ccfc4c91
OW
39382007-07-30 Ollie Wild <aaw@google.com>
3939
3940 * directives-only.c: New file.
3941 * internal.h (struct _cpp_dir_only_callbacks): New.
3942 (_cpp_preprocess_dir_only): New function.
3943 * directives.c (_cpp_handle_directive): Check directives_only before
3944 disabling execution of indented directives.
3945 * files.c (_cpp_stack_file): Add directives_only check.
3946 * include/cpplib.h (struct cpp_options): Add directives_only.
3947 (cpp_init_special_builtins): New function.
3948 * init.c (cpp_init_special_builtins): New function.
3949 (cpp_init_builtins): Move builtin_array initialization to
3950 cpp_init_special_builtins.
3951 (post_options): Check directives_only before setting
3952 pfile->state.prevent_expansion = 1.
3953 * macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
3954 is expanded inside a directive while -fdirectives-only is enabled.
3955 * Makefile.in (libcpp_a_OBJS): Add directives-only.o.
3956 (libcpp_a_SOURCES): Add directives-only.c.
3957
a206413a
UB
39582007-07-04 Uros Bizjak <ubizjak@gmail.com>
3959
3960 * traditional.c (_cpp_scan_out_logical_line): Initialize
3961 fmacro.args, fmacro.node, fmacro.offset, fmacro.line and
3962 fmacro.args to prevent 'may be used uninitialized' warning.
3963
c77cd3d1
UB
39642007-07-03 Uros Bizjak <ubizjak@gmail.com>
3965
3966 * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q):
3967 Add new constants.
3968 * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q'
3969 suffixes. Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q
3970 for 'q' or 'Q' suffixes.
3971
66938a1d
DS
39722007-06-17 Danny Smith <dannysmith@users.sourceforge.net
3973
e1311401 3974 * files.c (open_file): Correct typo.
66938a1d 3975
71995ede
VP
39762007-06-16 Vladimir Prus <vladimir@codesourcery.com>
3977
e1311401 3978 * files.c (open_file): Prevent the call
71995ede
VP
3979 for stat from overwriting errno.
3980
84152c25
VP
39812007-06-09 Vladimir Prus <vladimir@codesourcery.com>
3982
e1311401 3983 * files.c (open_file): Account for the
19a9ba64
AM
3984 fact that on windows, opening a directory gives
3985 EACCES.
84152c25 3986
f7fd775f
JW
39872007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
3988
3989 PR preprocessor/23479
3990 * expr.c (cpp_classify_number): Implement 0b-prefixed binary
3991 integer constants.
3992 (append_digit): Likewise.
3993 * include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed
3994 binary integer constants.
3995
ed0e74e0
DK
39962007-05-31 Dave Korn <dave.korn@artimi.com>
3997
3998 PR preprocessor/14331
3999 * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF.
4000
a702045a
OW
40012007-05-24 Ollie Wild <aaw@google.com>
4002
4003 * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER.
4004 * pch.c (cpp_write_pch_deps): Save __COUNTER__ state.
4005 (cpp_write_pch_state): Save __COUNTER__ state.
4006 (cpp_valid_state): Check valid __COUNTER__ state.
4007 (cpp_read_state): Read new __COUNTER__ state.
4008 * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator.
4009 * init.c (builtin_array): Add __COUNTER__/BT_COUNTER.
4010 * internal.h (struct cpp_reader): Add counter member.
4011
126e073b
SM
40122007-05-23 Simon Martin <simartin@users.sourceforge.net>
4013
4014 PR preprocessor/20077
4015 * macro.c (create_iso_definition): Fixed the method to determine
4016 whether the token-pasting operator appears at the beginning or the end
4017 of a macro.
4018
0b4cafec
ILT
40192007-05-21 Ian Lance Taylor <iant@google.com>
4020
4021 * internal.h (struct cpp_reader): Add new fields:
4022 nonexistent_file_hash and nonexistent_file_ob.
4023 * files.c: Include "obstack.h".
4024 (find_file_in_dir): Before trying to open the file, look up the
4025 path name in the hash table of nonexistent files. After failing
4026 to open the file, add the path name to the hash table.
4027 (_cpp_find_file): Cache the results of looking up the file name
4028 starting with the quote and bracket chain heads, if we can.
4029 (nonexistent_file_hash_eq): New static function.
4030 (_cpp_init_files): Initialize pfile->nonexistent_file_hash and
4031 pfile->nonexistent_file_ob.
4032 (_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
4033 pfile->nonexistent_file_ob.
4034
30e04921
JJ
40352007-05-14 Janis Johnson <janis187@us.ibm.com>
4036
19a9ba64 4037 * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic.
5a6bb57e 4038
30e04921
JJ
4039 PR c/31924
4040 * expr.c (interpret_float_suffix): Check for invalid suffix.
4041
22a8a52d
EC
40422007-05-02 Eric Christopher <echristo@apple.com>
4043
4044 * expr.c (num_div_op): Don't overflow if the result is
4045 zero.
4046
fca35e1b
TT
40472007-05-02 Tom Tromey <tromey@redhat.com>
4048
765d600a 4049 PR preprocessor/28709
fca35e1b
TT
4050 * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
4051
4cd97075
MM
40522007-03-30 Michael Meissner <michael.meissner@amd.com>
4053
4054 * directives.c (lex_macro_node_from_str): Fix alloca call to be
4055 type correct.
4056
121de39f
RH
40572007-03-30 Richard Henderson <rth@redhat.com>
4058
4059 * directives.c (lex_macro_node_from_str): New.
4060 (cpp_push_definition, cpp_pop_definition): New.
4061 * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
4062
4fcb360b
BM
40632007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
4064
4065 * Makefile.in: Add dummy install-pdf target.
4066
67e64439
TT
40672007-01-30 Tom Tromey <tromey@redhat.com>
4068
765d600a 4069 PR preprocessor/30468
67e64439
TT
4070 * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
4071 './'.
4072
ee380365
TT
40732007-01-30 Tom Tromey <tromey@redhat.com>
4074
765d600a 4075 PR preprocessor/29966
ee380365
TT
4076 * macro.c (lex_expansion_token): Save and restore cpp_reader's
4077 cur_token.
4078 (_cpp_create_definition): Don't restore cur_token here.
4079 * lex.c (_cpp_lex_token): Added assertion.
4080
024abeb3
TT
40812007-01-27 Tom Tromey <tromey@redhat.com>
4082
4083 * configure: Rebuilt.
4084
ee1c2a10
TT
40852007-01-12 Tom Tromey <tromey@redhat.com>
4086
765d600a 4087 PR preprocessor/28227
ee1c2a10
TT
4088 * directives.c (lex_macro_node): Added 'is_def_or_undef'
4089 argument.
4090 (do_define): Update.
4091 (do_undef): Update.
4092 (do_ifdef): Update.
4093 (do_ifndef): Update.
4094
67214c16
PB
40952007-01-11 Paolo Bonzini <bonzini@gnu.org>
4096
4097 * configure: Regenerate.
4098
1aa6ca40
PB
40992007-01-11 Paolo Bonzini <bonzini@gnu.org>
4100
4101 * configure: Regenerate.
4102
705e2d28
TT
41032007-01-04 Tom Tromey <tromey@redhat.com>
4104
765d600a 4105 PR preprocessor/28165
705e2d28
TT
4106 * internal.h (cpp_in_primary_file): New function.
4107 * directives.c (do_include_next): Use cpp_in_primary_file.
4108 (do_pragma_once): Likewise.
4109 (do_pragma_system_header): Likewise.
4110
7af45bd4
ILT
41112006-12-29 Ian Lance Taylor <iant@google.com>
4112
4113 * lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't
4114 look backward at the end of the line unless we saw a backslash.
4115
9d30f270
JJ
41162006-12-29 Jakub Jelinek <jakub@redhat.com>
4117
4118 PR preprocessor/29612
4119 * directives.c (do_linemarker): Set pfile->buffer->sysp always, not
4120 only when new_sysp is non-zero.
4121
30b0edc0
TT
41222006-12-28 Tom Tromey <tromey@redhat.com>
4123
765d600a 4124 PR preprocessor/30001
30b0edc0
TT
4125 * charset.c (_cpp_convert_input): Check that to.len is greater
4126 than zero.
4127
85d9c13c
TS
41282006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
4129
4130 * configure.ac (need_64bit_hwint): Need 64bit hwint for SPU.
83cc06b2 4131 * configure: Rebuilt.
85d9c13c 4132
dfafdaa6
DG
41332006-11-01 Douglas Gregor <doug.gregor@gmail.com>
4134
4135 * include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
4136 for experimental C++0x mode.
4137 * init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
4138 adopted the preprocessor changes introduced in C99.
4139
0f45f0f5
JM
41402006-10-29 Joseph Myers <joseph@codesourcery.com>
4141
4142 * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
4143 depending on --enable-targets=all.
4144 * configure: Regenerate.
4145
de000d22
JJ
41462006-10-12 Jakub Jelinek <jakub@redhat.com>
4147
4148 PR preprocessor/28709
4149 * macro.c (paste_tokens): Do error reporting here, use BUF with the
4150 spelled LHS token as opposed to spelling it again.
4151 (paste_all_tokens): Don't report errors here, just break on failure.
4152
b5422ad7
BM
41532006-10-10 Brooks Moses <bmoses@stanford.edu>
4154
4155 * Makefile.in: Added empty "pdf" target.
4156
aaf50ff2
GK
41572006-09-22 Geoffrey Keating <geoffk@apple.com>
4158
4159 * configure.ac: Make need_64_bit_hwint case for x86-darwin
4160 match exactly the glob in gcc/config.gcc.
4161 * configure: Regenerate.
4162
c663e301
JM
41632006-09-13 Joseph S. Myers <joseph@codesourcery.com>
4164
4165 PR c/28768
4166 PR preprocessor/14634
4167 * lex.c (lex_string): Pedwarn for unterminated literals.
4168
f7288899
EC
41692006-09-08 Eric Christopher <echristo@apple.com>
4170
4171 * configure.ac: Add 64-bit HWI support for i?86-darwin.
4172
b52dbbf8
SE
41732006-08-14 Steve Ellcey <sje@cup.hp.com>
4174
4175 PR c++/28288
4176 PR c++/14556
4177 * include/cpplib.h: Remove <?, >?, <?=, and >?= tokens.
4178 (CPP_LAST_EQ): Change.
4179 (CPP_LAST_PUNCTUATOR): Change.
4180 * expr.c (cpp_operator): Remove MIN and MAX.
4181 (reduce): Remove CPP_MIN and CPP_MAX.
4182 (num_binary_op): Ditto.
4183 * lex.c (_cpp_lex_direct): Ditto.
4184 (cpp_avoid_paste): Remove ? as legal symbol after > or <.
4185
1c90c6f9
JJ
41862006-06-09 Jakub Jelinek <jakub@redhat.com>
4187
4188 PR preprocessor/27746
4189 * directives.c (do_pragma): Handle pragma with valid namespace
4190 and invalid name coming from macro expansion.
4191 * directives.c (destringize_and_run): Initialize next field in
4192 context.
4193
4194 PR c/27747
4195 PR c++/27748
4196 * directives.c (destringize_and_run): Set NO_EXPAND on the
4197 tokens.
4198
4199 * macro.c (_cpp_backup_tokens): Fix comment typo.
4200
5c3c3683
DJ
42012006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
4202
4203 * Makefile.in (CATALOGS): Add po/ prefix.
4204 * configure: Regenerated.
4205
b2bd74bc
CD
42062006-05-23 Carlos O'Donell <carlos@codesourcery.com>
4207
4208 * Makefile.in: Add install-html target. Add install-html to .PHONY
4209
be8ac3e2
GZ
42102006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
4211
4212 * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
4213 * files.c (_cpp_get_file_stat): New function.
4214 * include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
4215 * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
4216 * internal.h (_cpp_get_file_stat): Prototype.
4217 (struct cpp_buffer): Add timestamp.
4218
83900997
JJ
42192006-01-23 Jakub Jelinek <jakub@redhat.com>
4220
4221 PR preprocessor/25717
4222 * init.c (cpp_init_builtins): If __STDC__ will not change value
4223 between system headers and other sources, define it as a normal
4224 macro rather than a builtin.
4225 * macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
4226 cpp_in_system_header condition.
4227
42282006-01-05 Paolo Bonzini <bonzini@gnu.org>
9220c30c
PB
4229
4230 * Makefile.in: Use -MMD instead of -MD.
4231
bc4071dd
RH
42322006-01-04 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
4233 Richard Henderson <rth@redhat.com>
4234
4235 Merge from gomp branch:
4236 * directives.c (struct pragma_entry): Add is_deferred. Add ident
4237 entry to value union.
4238 (end_directive): Don't eat the line if in_deferred_pragma.
4239 (run_directive): Remove pragma hacks.
4240 (insert_pragma_entry): Remove.
4241 (new_pragma_entry): New.
4242 (register_pragma_1): Split out of register_pragma. Only handle
4243 the lookup tree and return the new entry.
4244 (cpp_register_pragma): Fill in the pragma entry here.
4245 (cpp_register_deferred_pragma): New.
4246 (register_pragma_internal): New.
4247 (_cpp_init_internal_pragmas): Use register_pragma_internal.
4248 (do_pragma): Allow pragma expansion after namespace. For deferred
4249 pragmas, don't slurp the line into a string.
4250 (destringize_and_run): Save tokens for deferred pragmas.
4251 (cpp_handle_deferred_pragma): Remove.
4252 * macro.c (builtin_macro): Remove pragma token hack.
4253 (_cpp_push_token_context): Rename from push_token_context and export.
4254 * internal.h (struct lexer_state): Add pragma_allow_expansion.
4255 (_cpp_push_token_context): Declare.
4256 * lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
4257 a token. Update the line number correctly if so.
4258 (_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
4259 (cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
4260 * include/cpplib.h (PRAGMA_EOL): New.
4261 (CPP_TOKEN_FLD_PRAGMA): New.
4262 (struct cpp_token): Add val.pragma.
4263 (struct cpp_options): Remove defer_pragmas.
4264 (cpp_handle_deferred_pragma): Remove.
4265 (cpp_register_deferred_pragma): Declare.
4266
d09e893f
JJ
42672006-01-01 Jakub Jelinek <jakub@redhat.com>
4268
4269 PR c++/25294
4270 * directives.c (do_pragma): If pragma line ends with multi-line
4271 block comment, end the saved deferred pragma string before that
4272 comment. Handle embedded '\0' chars on the pragma line.
4273
ab84748a
VR
42742005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4275
4276 PR c++/23333
4277 * include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
4278
ad6ed77e
JG
42792005-12-07 Jon Grimm <jgrimm2@us.ibm.com>
4280 Ben Elliston <bje@au.ibm.com>
4281
4282 * include/cpplib.h (CPP_N_DFLOAT): New.
4283 * expr.c (interpret_float_suffix): Identify df, dd, and dl
4284 suffixes as decimal floating point constants.
4285 (cpp_classify_number): Disallow hexadecimal DFP constants.
4286
ba096620 42872005-11-14 Gerald Pfeifer <gerald@pfeifer.com>
bc4071dd 4288 Ian Lance Taylor <ian@airs.com>
ba096620
GP
4289
4290 * include/cpplib.h (struct cpp_callbacks): Annotate error with
4291 ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
4292
456b8ce5
UB
42932005-11-09 Per Bothner <per@bothner.com>
4294 Uros Bizjak <uros@kss-loka.si>
f7288899 4295
456b8ce5
UB
4296 PR c/24101
4297 * init.c (read_original_filename): Temporarily set
4298 state.in_directive before calling _cpp_lex_direct for
4299 CPP_HASH tokens.
4300
5571f74f
JW
43012005-11-03 James E Wilson <wilson@specifix.com>
4302
4303 PR preprocessor/24202
4304 * files.c (_cpp_pop_file_buffer): Set buffer_valid to false.
4305
a63607ed
JM
43062005-11-04 Joseph S. Myers <joseph@codesourcery.com>
4307
4308 * include/cpplib.h (struct cpp_callbacks): Make error take
4309 va_list* parameter.
4310 * errors.c (cpp_error): Update call to callback.
4311
651ed942
AP
43122005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
4313
4314 PR preprocessor/22042
4315 * macro.c (_cpp_builtin_macro_text): Lower the needed max
4316 buffer size.
4317 (cpp_quote_string): Don't octalify non printable
4318 charactors.
4319
178b58b5
JM
43202005-11-03 Joseph S. Myers <joseph@codesourcery.com>
4321
4322 PR c++/17964
4323 * include/cpplib.h (struct cpp_options): Add client_diagnostic.
4324 (struct cpp_callbacks): Add error.
4325 * errors.c (cpp_error): If client_diagnostic, use error callback.
4326 * charset.c (convert_escape): Don't use %03o in diagnostic.
4327
3ee5ed11 43282005-10-21 James E Wilson <wilson@specifix.com>
6568f34b
JW
4329
4330 PR preprocessor/15220
4331 * files.c (_cpp_find_file): New parameter angle_brackets. Fix all
4332 callers. Pass to open_file_failed.
4333 (open_file_failed): New parameter angle_brackets. Fix all callers.
4334 Use in print_dep assignment.
4335 * init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
4336 * internal.h (_cpp_find_file): Add new parm to declaration.
f7288899 4337
077fc835
KH
43382005-10-08 Kazu Hirata <kazu@codesourcery.com>
4339
4340 * configure.ac: Require 64-bit int for arm*-*-*eabi*.
4341 * configure: Regenerate.
4342
cbc43ae0
ILT
43432005-10-04 Ian Lance Taylor <ian@airs.com>
4344
4345 PR preprocessor/13726
4346 * directives.c (check_eol_return_comments): New static function.
4347 (parse_include): Add buf parameter. Change all callers.
4348 (do_include_common): If not discard comments, turn on
4349 save_comments. Pass collected comments to include callback.
4350 * include/cpplib.h (struct cpp_callbacks): Add new parameter to
4351 include callback: cpp_token list.
4352
af15a2fe
JM
43532005-09-20 Joseph S. Myers <joseph@codesourcery.com>
4354
4355 * include/cpplib.h (struct cpp_options): Add extended_identifiers.
4356 * init.c (struct lang_flags, lang_defaults): Add
4357 extended_identifiers.
4358 (cpp_set_lang): Use it.
4359 * lex.c (forms_identifier_p): Check extended_identifiers.
4360
f5eab47e
JJ
43612005-08-30 Jakub Jelinek <jakub@redhat.com>
4362
4363 PR preprocessor/20348
4364 PR preprocessor/20356
4365 * files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and
4366 2004-06-05 changes.
4367
467129e6
KG
43682005-07-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4369
4370 * configure.ac (ACX_PROG_CC_WARNING_OPTS): add
4371 -Wmissing-format-attribute.
4372
4373 * configure: Regenerate.
4374
200031d1
KC
43752005-06-29 Kelley Cook <kcook@gcc.gnu.org>
4376
4377 * all files: Update FSF address in copyright headers.
4378 * makeucnid.c (write_copyright): Update outputted FSF address.
4379
f610dd5f
ZW
43802005-06-13 Zack Weinberg <zack@codesourcery.com>
4381
4382 * configure.ac: Invoke ZW_CREATE_DEPDIR and
4383 ZW_PROG_COMPILER_DEPENDENCIES.
4384 * aclocal.m4, configure: Regenerate.
4385 * Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE):
4386 New variables.
4387 (distclean): Clean up $(DEPDIR) and its contents.
4388 (.c.o): Use $(COMPILE).
4389 Include $(DEPDIR)/*.Po for most object->header dependencies.
4390
c3f829c1
GDR
43912005-05-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
4392
4393 * configure.ac: Check declarations for asprintf and vasprintf.
4394 * config.in: Regenerate.
4395 * configure: Likewise.
4396
4397 * charset.c (conversion_loop): Use XRESIZEVEC.
4398 (convert_no_conversion): Likewise.
4399 (convert_using_iconv): Likewise.
4400 (init_iconv_desc): Cast return value of alloca.
4401 (cpp_host_to_exec_charset): Use XNEWVEC.
4402 (emit_numeric_escape): Use XRESIZEVEC.
4403 (cpp_interpret_string): Use XNEWVEC.
4404 (cpp_interpret_string): Use XRESIZEVEC.
4405 (_cpp_interpret_identifier): Cast return value of alloca.
4406 (_cpp_convert_input): Use XNEWVEC and XRESIZEVEC.
4407 * directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC.
4408 (parse_include): Use XNEWVEC.
4409 (insert_pragma_entry): Rename local variable "new" to
f610dd5f 4410 "new_entry".
c3f829c1
GDR
4411 (save_registered_pragmas): Cast return value of xmemdup.
4412 (destringize_and_run): Same for alloca.
4413 (parse_assertion): Likewise.
4414 (do_assert): Cast allocated storage to proper type.
4415 (cpp_define): Likewise.
4416 (_cpp_define_builtin): Likewise.
4417 (cpp_undef): Likewise.
4418 (handle_assertion): Likewise.
4419 (cpp_push_buffer): Rename local variable "new" to "new_buffer".
4420 * expr.c (CPP_UPLUS): Cast value to type cpp_ttype.
4421 (CPP_UMINUS): Likewise.
4422 (struct cpp_operator): Rename from struct operator.
4423 (_cpp_expand_op_stack): Use XRESIZEVEC.
4424 * files.c (pch_open_file): Use XNEWVEC.
4425 (pch_open_file): Use XRESIZEVEC.
4426 (read_file_guts): Use XNEWVEC and XRESIZEVEC.
4427 (dir_name_of_file): Use XNEWVEC.
4428 (make_cpp_file): Use XCNEW.
4429 (make_cpp_dir): Likewise.
4430 (allocate_file_hash_entries): USE XNEWVEC.
4431 (cpp_included): Cast return value of htab_find_with_hash.
4432 (append_file_to_dir): Use XNEWVEC.
4433 (read_filename_string): Likewise. Use XRESIZEVEC too.
4434 (read_name_map): Cast return value of alloca. Use XRESIZEVEC.
4435 (remap_filename): Use XNEWVEC.
4436 (struct pchf_entry): Move definition out of struct pchf_data.
4437 (_cpp_save_file_entries): Use XCNEWVAR.
4438 (_cpp_read_file_entries): Use XNEWVAR.
4439 * identifiers.c (alloc_node): Use XOBNEW.
4440 * init.c (cpp_create_reader): Use XCNEW.
4441 (cpp_init_builtins): Cast of b->value to enum builtin_type.
4442 (read_original_directory): Cast return value of alloca.
4443 * lex.c (add_line_note): Use XRESIZEVEC.
4444 (warn_about_normalization): Use XNEWVEC.
4445 (_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype).
4446 (new_buff): Use XNEWVEC.
4447 * line-map.c (linemap_add): Use XRESIZEVEC.
4448 * macro.c (builtin_macro): Cast return value of alloca.
4449 (paste_tokens): Likewise.
4450 (expand_arg): Use XNEWVEC and XRESIZEVEC.
4451 (_cpp_save_parameter): Use XRESIZEVEC.
4452 (create_iso_definition): Cast allocated storage to proper type.
4453 (_cpp_create_definition): Likewise.
4454 (cpp_macro_definition): Use XRESIZEVEC.
4455 * makedepend.c (add_clm): Use XNEW.
4456 (add_dir): Likewise.
4457 * mkdeps.c (munge): Use XNEWVEC.
4458 (deps_init): Use XCNEW.
4459 (deps_add_target): Use XRESIZEVEC.
4460 (deps_add_default_target): Cast return value of alloca.
4461 (deps_add_dep): Use XRESIZEVEC.
4462 (deps_add_vpath): Likewise. Use XNEWVEC too.
4463 (deps_restore): Likewise.
4464 * pch.c (save_idents): Use XNEW and XNEWVEC.
4465 (cpp_save_state): Use XNEW.
4466 (count_defs): Cast return value of htab_find.
4467 (write_defs): Likewise.
4468 (cpp_write_pch_deps): Use XNEWVEC.
4469 (collect_ht_nodes): Use XRESIZEVEC.
4470 (cpp_valid_state): Use XNEWVEC.
4471 (save_macros): Use XRESIZEVEC. Cast return value of xmemdup.
4472 * symtab.c (ht_create): Use XCNEW.
4473 (ht_lookup_with_hash): Cast return value of obstack_copy0.
4474 (ht_expand): Use XCNEWVEC.
4475 * system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus.
4476 (bool): Do not define if __cplusplus.
4477
1ed17cd5
ZW
44782005-05-12 Zack Weinberg <zack@codesourcery.com>
4479
4480 * directives.c (#sccs table entry): Mark IN_I, consistent with #ident.
4481 (do_sccs): Delete function definition, #define to do_ident.
4482 (do_ident): Don't hardwire directive name.
4483
5a8c20ce
RK
44842005-05-12 Ryota Kunisawa <kunisawa@access.co.jp>
4485
4486 PR bootstrap/21230
4487 * configure: Regenerate.
4488
473c5bc9
AP
44892005-04-27 Andris Pavenis <pavenis@latnet.lv>
4490
4491 * files.c: Include io.h for DJGPP to get prototype of setmode.
4492
c1fc5047
PB
44932005-04-19 Per Bothner <per@bothner.com>
4494
4495 PR preprocessor/20907
4496 * line-map.c (linemap_line_start): Fix bug when we need to increse
4497 column_bits but can re-use the current line_map.
4498
042630ad
KG
44992005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4500
4501 * system.h (fopen, fdopen, freopen): Define these to the unlocked
4502 libiberty functions.
4503
0d667716
KG
45042005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4505
4506 * configure.ac (libcpp_UNLOCKED_FUNCS): New.
4507 (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
4508 * system.h (putchar, getc, getchar, clearerr, feof, fileno,
4509 fflush, fgetc, fgets, ferror, fread): Redefine to the associated
4510 _unlocked function.
4511 (fwrite_unlocked): Fix prototype.
1ed17cd5 4512
0d667716
KG
4513 * configure, config.in: Regenerate.
4514
cae064e7
JJ
45152005-04-05 Jakub Jelinek <jakub@redhat.com>
4516
4517 PR preprocessor/19475
4518 * macro.c (create_iso_definition): For < ISO C99, don't
4519 pedwarn if there is no whitespace between macro name and its
4520 replacement, but the replacement starts with a basic character
4521 set character.
4522
cbada204
AJ
45232005-03-28 Andreas Jaeger <aj@suse.de>
4524
4525 * lex.c (warn_about_normalization): Cast field width to int to
4526 avoid warning.
4527
f42eccdb
JM
45282005-03-19 Joseph S. Myers <joseph@codesourcery.com>
4529
4530 * configure.ac: Consistently use solaris2.1[0-9]* instead of
4531 solaris2.1[0-9].
4532 * configure: Regenerate.
4533
c79e602b
GK
45342005-03-15 Geoffrey Keating <geoffk@apple.com>
4535
4536 * charset.c (_cpp_valid_ucn): In identifiers, reject a partial
4537 UCN rather than printing an error.
4538
50668cf6
GK
45392005-03-14 Geoffrey Keating <geoffk@apple.com>
4540
6baba9bb
GK
4541 * lex.c (forms_identifier_p): Disable UCNs in C89 mode.
4542
45432005-03-14 Geoffrey Keating <geoffk@apple.com>
1ed17cd5 4544
50668cf6
GK
4545 * init.c (cpp_create_reader): Default warn_normalize to normalized_C.
4546 * charset.c: Update for new format of ucnid.h.
4547 (ucn_valid_in_identifier): Update for new format of ucnid.h.
4548 Add NST parameter, and update it; update callers.
4549 (cpp_valid_ucn): Add NST parameter, update callers. Replace abort
4550 with cpp_error.
4551 (convert_ucn): Pass normalize_state to cpp_valid_ucn.
4552 * internal.h (struct normalize_state): New.
4553 (INITIAL_NORMALIZE_STATE): New.
4554 (NORMALIZE_STATE_RESULT): New.
4555 (NORMALIZE_STATE_UPDATE_IDNUM): New.
4556 (_cpp_valid_ucn): New.
4557 * lex.c (warn_about_normalization): New.
4558 (forms_identifier_p): Add normalize_state parameter, update callers.
4559 (lex_identifier): Add normalize_state parameter, update callers. Keep
4560 the state current.
4561 (lex_number): Likewise.
4562 (_cpp_lex_direct): Pass normalize_state to subroutines. Check
4563 it with warn_about_normalization.
4564 * makeucnid.c: New.
4565 * ucnid.h: Replace.
4566 * ucnid.pl: Remove.
4567 * ucnid.tab: Make appropriate for input to makeucnid.c. Remove
4568 comments about obsolete version of C++.
4569 * include/cpplib.h (enum cpp_normalize_level): New.
4570 (struct cpp_options): Add warn_normalize field.
4571
47e20491
GK
45722005-03-11 Geoffrey Keating <geoffk@apple.com>
4573
4574 * directives.c (glue_header_name): Update call to cpp_spell_token.
4575 * internal.h (_cpp_interpret_identifier): New.
4576 * charset.c (_cpp_interpret_identifier): New.
4577 (_cpp_valid_ucn): Allow UCN version of '$'.
4578 * lex.c (lex_identifier): Add extra parameter to indicate if initial
4579 character was '$' or '\'. Support identifiers with UCNs.
4580 (forms_identifier_p): Allow UCNs.
4581 (_cpp_lex_direct): Pass extra parameter to lex_identifier.
4582 (utf8_to_ucn): New.
4583 (cpp_spell_token): Add FORSTRING parameter. Use it.
4584 (cpp_token_as_text): Update call to cpp_spell_token.
4585 (cpp_output_token): Write UCNs back out.
4586 (stringify_arg): Update call to cpp_spell_token.
4587 (paste_tokens): Likewise.
4588 (cpp_macro_definition): Likewise.
4589 * macro.c (stringify_arg): Likewise.
4590 (paste_tokens): Likewise.
4591 (cpp_macro_definition): Likewise.
4592 * include/cpplib.h: Add parameter to cpp_spell_token.
4593
73096711
JJ
45942005-03-04 Jakub Jelinek <jakub@redhat.com>
4595
4596 PR bootstrap/20282
4597 PR bootstrap/20305
4598 * macro.c (replace_args, cpp_get_token): Copy whole
4599 cpp_token_u instead of just cpp_string field from it.
4600
2203a881
DP
46012005-02-28 Devang Patel <dpatel@apple.com>
4602
4603 * directives.c (do_line): Save sysp early before line table is
4604 realloc'ed.
1ed17cd5 4605
c5ff069d
ZW
46062005-02-20 Zack Weinberg <zack@codesourcery.com>
4607
4608 PR 18785
4609 * charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
4610 (cpp_host_to_exec_charset): New function.
4611 * include/cpplib.h: Declare cpp_host_to_exec_charset.
4612
04c90eea
DP
46132005-02-19 Devang Patel <dpatel@apple.com>
4614
4615 * charset.c (_cpp_convert_input): Check '\r' before inserting
4616 '\n' at the end.
c5ff069d 4617
6da55c00
EC
46182005-02-15 Eric Christopher <echristo@redhat.com>
4619
4620 PR preprocessor/19077
4621 * macro.c (cpp_macro_definition): Move handling of whitespace
4622 to PREV_WHITE conditional. Remove overloading of len
4623 variable.
4624
31c3e631
KH
46252005-02-14 Kazu Hirata <kazu@cs.umass.edu>
4626
4627 * directives.c, files.c, init.c, internal.h, macro.c, pch.c,
4628 traditional.c: Update copyright.
4629
be0f1e54
PB
46302005-02-14 Paolo Bonzini <bonzini@gnu.org>
4631
4632 PR bootstrap/19818
4633 * configure.ac: Check for declaration of basename and getopt.
4634 * config.in: Regenerate.
4635 * configure: Regenerate.
4636 * internal.h (ustrcspn): New.
4637 * macro.c (create_iso_definition): Fix allocation of memory.
4638 (padding_token): Add cast to remove const-ness.
4639 * pch.c (cpp_read_state): Use ustrcspn.
4640
ecddfb39
MS
46412005-02-08 Mike Stump <mrs@apple.com>
4642
4643 * files.c (pchf_adder): Remove.
4644 (struct pchf_adder_info): Likewise.
4645 (_cpp_save_file_entries): Write out all files so that #import works.
4646
9fcdd891
JM
46472005-01-23 Joseph S. Myers <joseph@codesourcery.com>
4648
4649 * configure: Regenerate.
4650
ecfd72e7
TS
46512005-01-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
4652
4653 * include/cpplib.h (c_lang): Fix comment to say cpp_create_reader.
4654
6c25a4f7 4655 * include/cpplib.h: Also update copyright years.
c5ff069d 4656
942926ad
GK
46572005-01-03 Geoffrey Keating <geoffk@apple.com>
4658
4659 * files.c (_cpp_find_file): Add files found by search_path_exhausted
4660 to the list of all files.
4661
a2566ae9
GDR
46622005-01-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
4663
4664 * internal.h: Update references to Cpp lib filenames.
4665 * directives.c: Likewise.
4666 * init.c: Likewise.
4667 * macro.c: Likewise.
4668 * traditional.c: Likewise.
4669
1b449375
EB
46702004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr>
4671
4672 PR preprocessor/15167
4673 * files.c (destroy_cpp_file): New function.
4674 (should_stack_file): Make a new file if the
4675 compared file is still stacked.
4676
28303828
NN
46772004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
4678
c5ff069d 4679 PR preprocessor/17610
28303828
NN
4680 * directives.c (do_include_common): Error out if an empty filename
4681 is given for #include (or #include_next or #import).
4682
c812785a
RS
46832004-11-27 Roger Sayle <roger@eyesopen.com>
4684 Zack Weinberg <zack@codesourcery.com>
4685
4686 * internal.h: Replace all uses of uchar with unsigned char.
4687 * include/cpp-id-data.h: Likewise. Guard typedef of uchar
4688 with !IN_GCC, so uchar is only defined whilst building libcpp.
4689
f91eaa01
KC
46902004-11-24 Kelley Cook <kcook@gcc.gnu.org>
4691
4692 * aclocal.m4: Regenerate.
4693
f78ce0c2
RS
46942004-11-24 Roger Sayle <roger@eyesopen.com>
4695
4696 PR preprocessor/15824
4697 * configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h>
4698 directly, instead of the non-existant "system.h" and "ansidecl.h".
4699 * configure: Regenerate.
4700
b5b3e36a 47012004-11-23 Daniel Jacobowitz <dan@codesourcery.com>
c5ff069d 4702 Joseph Myers <joseph@codesourcery.com>
b5b3e36a
DJ
4703
4704 * internal.h (struct lexer_state): Add in_deferred_pragma.
4705 * directives.c (struct pragma_entry): Add allow_expansion.
4706 (insert_pragma_entry): Take allow_expansion flag.
4707 (register_pragma): Likewise.
4708 (cpp_register_pragma): Likewise.
4709 (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma.
4710 (do_pragma): Honor allow_expansion.
4711 (cpp_handle_deferred_pragma): Set in_deferred_pragma.
4712 * include/cpplib.h (cpp_register_pragma): Update prototype.
4713
a8e68029 47142004-11-18 Daniel Jacobowitz <dan@codesourcery.com>
c5ff069d 4715 Mark Mitchell <mark@codesourcery.com>
a8e68029
DJ
4716
4717 * configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set
4718 need_64bit_hwint=yes.
4719 * configure: Regenerate.
4720
50f47ee0
JM
47212004-11-09 Joseph S. Myers <joseph@codesourcery.com>
4722
4723 * Makefile.in ($(PACKAGE).pot): New rule. Depend on
4724 po/$(PACKAGE).pot.
4725 (po/$(PACKAGE).pot): Use ":" instead of "," in --keyword
4726 arguments. Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2.
4727 Remove local srcdir path from generated file.
4728
968e08d6 47292004-11-04 Zack Weinberg <zack@codesourcery.com>
c5ff069d 4730 Gerald Pfeifer <gerald@pfeifer.com>
968e08d6
ZW
4731
4732 * internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
4733 as well.
4734
3da3d587
ZW
47352004-10-27 Zack Weinberg <zack@codesourcery.com>
4736
4737 PR 18075
4738 * directives.c (do_pragma): Do not defer pragmas which are unknown.
4739 (cpp_handle_deferred_pragma): Add cast to silence warning.
4740
ac24fc25
JM
47412004-10-14 Joseph S. Myers <jsm@polyomino.org.uk>
4742
4743 * errors.c (_cpp_begin_message): Print "error: " for errors.
4744
7731405b
AJ
47452004-10-10 Andreas Jaeger <aj@suse.de>
4746
4747 * makedepend.c: Include mkdeps.h for prototype of deps_add_vpath.
4748 * Makefile.in (makedepend.o): Add dependency on mkdeps.h.
4749
646544e3
AP
47502004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
4751
4752 * pch.c (cpp_write_pch_state): Remove variable z as it is not
4753 used.
4754 (cpp_read_state): Remove unused variables, m, d and mac_count.
4755
67a74146
PB
47562004-09-29 Per Bothner <per@bothner.com>
4757
4758 * directives.c (cpp_handle_deferred_pragma): Save, clear and restore
4759 cb.line_change. Otherwise do_pragma will call the line_change
4760 call-back with a meaningless line number.
4761
018a4785
ZW
47622004-09-24 Zack Weinberg <zack@codesourcery.com>
4763
4764 * configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to
4765 programs cluster. Use ACX_PROG_CC_WARNING_OPTS,
4766 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS.
4767 * aclocal.m4, configure: Regenerate.
4768 * init.c: Include localedir.h.
4769 * Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables.
4770 (DEFS): Delete.
4771 (.c.o): Use $(ALL_CFLAGS).
4772 (localedir.h, localedir.hs): New rules.
4773 (clean): Use rm -rf to remove directories.
4774 (distclean): Also delete localedir.h and localedir.hs.
4775 (init.o): Update dependencies.
4776
88fa57d7
KC
47772004-09-22 Kelley Cook <kcook@gcc.gnu.org>
4778
4779 * Makefile.in (aclocal.m4): Update dependencies.
4780 * configure.ac (AC_CONFIG_MACRO_DIR): New.
4781 * aclocal.m4, configure: Regenerate.
4782
8f8e9aa5
ZW
47832004-09-17 Zack Weinberg <zack@codesourcery.com>
4784
a29f62d9
ZW
4785 * charset.c (_cpp_destroy_iconv, emit_numeric_escape)
4786 (_cpp_convert_input, _cpp_default_encoding): Add comments.
4787 Some other comments in this file also tweaked.
4788
8f8e9aa5
ZW
4789 * directives.c (do_pragma): Save current buffer position
4790 before lexing the pragma keywords; don't call
4791 _cpp_backup_tokens in the defer_pragmas case.
4792
a2981930
PB
47932004-09-15 Per Bothner <per@bothner.com>
4794
4795 * include/line-map.h (line_map_start): Add parameter names so
4796 preceding comment makes sense.
4797 (linemap_add): Remove from comment mention of non-existing parameter.
4798
21b11495
ZW
47992004-09-09 Matt Austern <austern@apple.com>
4800 Zack Weinberg <zack@codesourcery.com>
4801
4802 * include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
4803 prefixes throughout. Add entry for PRAGMA. Remove
4804 unnecessary "= 0" from EQ.
4805 (enum cpp_ttype): Adjust OP and TK definitions to restore
4806 prefixes, via token-paste.
4807 (CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
4808 Change from #defines to additional cpp_ttype enumerators.
4809 (struct cpp_options): Add defer_pragmas.
4810 (cpp_handle_deferred_pragma): Prototype new interface.
4811
4812 * internal.h (struct cpp_reader): Add directive_result.
4813 * directives.c (struct pragma_entry): Add is_internal field;
4814 give boolean fields type bool.
4815 (start_directive): Initialize pfile->directive_result.type.
4816 (_cpp_do__Pragma): Likewise.
4817 (run_directive): Do not crash if pfile->buffer->prev is NULL.
4818 (insert_pragma_entry): Add 'internal' argument; set new->is_internal
4819 from it.
4820 (register_pragma): New static function, bulk of former
4821 cpp_register_pragma here; add 'internal' argument, pass along
4822 to insert_pragma_entry.
4823 (cpp_register_pragma): Now a wrapper around register_pragma which
4824 always passes false for 'internal' argument.
4825 (_cpp_init_internal_pragmas): Call register_pragma directly, passing
4826 true for 'internal'.
4827 (do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
4828 an internal pragma, save text till the end of the line as a CPP_PRAGMA
4829 token instead of executing the pragma.
4830 (cpp_handle_deferred_pragma): New interface.
4831 * lex.c (token_spellings): Adjust OP and TK definitions to
4832 match changes to cpplib.h.
4833 (_cpp_lex_token): Check for a directive-result token and
4834 return it if present.
4835 (cpp_token_val_index): Handle CPP_PRAGMA.
4836 * macro.c (cpp_builtin_macro_text): Correct comment.
4837 (builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
4838
0fd9e8dd
SB
48392004-09-06 Serge Belyshev <belyshev@lubercy.com>
4840
4841 PR preprocessor/14699
4842 * symtab.c (ht_dump_statistics): Change type of sum_of_squares
4843 from size_t to double.
4844
39b8ce7f
AS
48452004-08-28 Andreas Schwab <schwab@suse.de>
4846 Andreas Jaeger <aj@suse.de>
4847
4848 * configure.ac: Set PACKAGE correctly.
4849 * configure: Regenerated.
4850
5d1f4b27
PB
48512004-08-25 Paolo Bonzini <bonzini@gnu.org>
4852
4853 * Makefile.in: Add back top_builddir.
4854
078e3ffe
PB
48552004-08-25 Paolo Bonzini <bonzini@gnu.org>
4856
4857 * configure.ac: Replace Automake macro invocations
4858 with manual Autoconf checks and substitutions.
4859 * configure: Regenerate.
4860 * aclocal.m4: Regenerate.
4861 * config.in: Regenerate.
4862 * Makefile.am: Removed.
4863 * Makefile.in: Heavy simplification and reorganization.
4864
b3f8d95d
MM
48652004-08-09 Mark Mitchell <mark@codesourcery.com>
4866
4867 * configure.ac (arm*-*-eabi*): New target.
4868 (arm*-*-symbianelf*): Likewise.
4869 * configure: Regenerated.
4870
72bb2c39
BI
48712004-07-24 Bernardo Innocenti <bernie@develer.com>
4872
4873 * internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove.
4874 * directives.c: Use XNEW-family macros from libiberty.
4875 * lex.c: Likewise.
4876 * macro.c: Likewise.
4877 * cpplib.h (cpp_deps_style): Export enum with name.
4878
21b11495 48792004-07-23 Matthias Klose <doko@debian.org>
72bb2c39 4880
21b11495 4881 * init.c (init_library): Use PACKAGE for the text domain.
85eac2a0 4882
a23ee064
AP
48832004-07-16 Andris Pavenis <pavenis@latnet.lv>
4884
4885 PR preprocessor/16366
4886 * internal.h (struct cpp_reader): New field dir_hash.
4887 * files.c (make_cpp_dir): Use dir_hash, not file_hash.
4888 (_cpp_init_files, _cpp_cleanup_files): Update for new field.
4889
a09d4744
NB
48902004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
4891
4892 PR preprocessor/16192
4893 PR preprocessor/15913
4894 PR preprocessor/15572
4895 * expr.c (_cpp_parse_expr): Handle remaining cases where an
4896 expression is missing.
4897 * init.c (post_options): Traditional cpp doesn't do // comments.
4898
f58f7def
PB
48992004-06-30 Per Bothner <per@bothner.com>
4900
4901 * include/line-map.h (fileline): Remove old typedef.
4902 * internal.h (struct cpp_reader): Use source_location typedef instead.
4903
e83d8d43
ZW
49042004-06-26 Zack Weinberg <zack@codesourcery.com>
4905
4906 Partially revert patch of 2004-06-05.
4907 * files.c (search_cache): Remove pfile argument. Don't check
4908 for file that would be found by "" or <> search here...
4909 (_cpp_find_file): ...do it here, before calling find_file_in_dir.
4910 Do not apply directory-of-current-file correction to files
4911 found by this check. Rearrange code slightly.
4912
c0d578e6
GK
49132004-06-21 Geoffrey Keating <geoffk@apple.com>
4914
4915 * files.c (should_stack_file): Correct swapped parameters to call
4916 to cb.read_pch.
4917 * pch.c (cpp_valid_state): Handle -fpreprocessed.
4918
159d5224
PB
49192004-06-15 Paolo Bonzini <bonzini@gnu.org>
4920
4921 * Makefile.in: Regenerate with automake 1.8.5.
4922 * aclocal.m4: Likewise.
4923 * configure: Regenerate.
4924
2fac9c01
ZW
49252004-06-11 Zack Weinberg <zack@codesourcery.com>
4926
4927 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
4928 * configure, config.in: Regenerate.
4929 * system.h: Unconditionally define bool as unsigned char,
4930 BOOL_BITFIELD as unsigned int.
4931 * .cvsignore: New file.
4932
d8044160
GK
49332004-06-09 Geoffrey Keating <geoffk@apple.com>
4934
4935 * traditional.c (push_replacement_text): Set macro->traditional.
4936 (save_replacement_text): Likewise.
4937 * pch.c (cpp_write_pch_state): Don't write list of defined macros.
4938 (struct save_macro_item): Delete.
4939 (struct save_macro_data): Use a character array not the previous
4940 structured format.
4941 (save_macros): Save macro as text not as internal structures.
4942 (cpp_prepare_state): Update for changes to save_macro_data.
4943 (cpp_read_state): Don't read macros defined in PCH. Restore
2cf22451 4944 -D macros as text.
d8044160
GK
4945 * macro.c (create_iso_definition): Honour alloc_subobject.
4946 Clear traditional flag.
4947 (_cpp_create_definition): Honour alloc_subobject.
4948 * lex.c (cpp_token_val_index): New.
4949 * internal.h: Include cpp-id-data.h.
4950 (uchar): Move definition to cpp-id-data.h.
4951 (U): Likewise.
4952 (cpp_macro): Likewise.
4953 * directives.c (struct answer): Move to cpp-id-data.h.
4954 (do_assert): Honour alloc_subobject.
2cf22451
ZW
4955
4956 * include/symtab.h (struct ht): Add field 'alloc_subobject'.
4957 * include/cpplib.h (struct cpp_string): Add GTY marker.
4958 (enum cpp_token_fld_kind): New.
4959 (struct cpp_token): Add GTY markers.
4960 (cpp_token_val_index): Prototype.
4961 (CPP_HASHNODE_VALUE_IDX): New.
4962 (struct cpp_hashnode): Don't skip fields of 'value' when marking.
4963 * include/cpp-id-data.h: New file.
d8044160 4964
0ca8e815
PB
49652004-06-09 Paolo Bonzini <bonzini@gnu.org>
4966
4967 * Makefile.am (all-local): New.
4968 * Makefile.in: Regenerate.
4969
b51fa00f
RS
49702004-06-06 Roger Sayle <roger@eyesopen.com>
4971
4972 * Makefile.am (LIBICONV): Declare.
4973 (makedepend_LDADD): Use LIBICONV.
4974 * Makefile.in: Regenerate.
4975
5e2f3f39
AP
49762004-06-05 Andrew Pinski <pinskia@physics.uc.edu>
4977
4978 * Makefile.am (LIBINTL): Declare
4979 (makedepend_LDADD): Use LIBINTL.
4980 * Makefile.in: Regenerate.
4981
c6e83800
ZW
49822004-06-05 Zack Weinberg <zack@codesourcery.com>
4983
4984 * Makefile.am: Add makedepend.
4985 * Makefile.in, aclocal.m4: Regenerate.
4986 * charset.c: Insert a space to avoid a warning.
4987 * directives.c: Include mkdeps.h.
4988 (_cpp_handle_directive): Reenable macro expander if appropriate.
4989 (undefine_macros): Inline body of _cpp_free_definition for speed.
4990 Do not call undef callback or _cpp_warn_if_unused_macro.
4991 (cpp_get_deps): New interface.
4992 * files.c (search_cache): Add pfile argument. Check for file
4993 that would be found by "" or <> search here...
4994 (_cpp_find_file): ...not here. Correct recorded start_dir of
4995 files found by directory-of-current-file search that would be
4996 found by "" or <> search.
4997 * init.c (cpp_add_dependency_target): Delete.
4998 * internal.h (struct lexer_state): Add discarding_output flag.
4999 * lex.c (lex_identifier): Compute hash function while scanning.
5000 * macro.c (cpp_scan_nooutput): Disable macro expansion outside
5001 directives.
5002 * makedepend.c: New file.
5003 * mkdeps.c (struct deps): Add vpath vector.
5004 (apply_vpath, deps_add_vpath): New function.
5005 (deps_free): Free vpath vector.
5006 (deps_add_dep, deps_add_target): Use apply_vpath.
5007 * symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH.
5008 (ht_lookup_with_hash): New function.
5009 * cpplib.h, mkdeps.h: Update prototypes.
5010 * symtab.h: Update prototypes.
5011 (HT_HASHSTEP, HT_FINISH): New macros.
5012
b453c95f
GK
50132004-05-29 Geoffrey Keating <geoffk@apple.com>
5014
5015 * symtab.c (ht_create): Set entries_owned.
5016 (ht_destroy): Honour entries_owned.
5017 (ht_expand): Likewise.
5018 (ht_load): New.
2cf22451
ZW
5019 * include/symtab.h (struct ht): New field 'entries_owned'
5020 (ht_load): New prototype.
b453c95f 5021
963e23c5
PB
50222004-05-26 Paolo Bonzini <bonzini@gnu.org>
5023
5024 PR bootstrap/15651
5025 * configure.ac: Fix m4 quoting when picking
5026 the size of HOST_WIDE_INT.
5027 * configure: Regenerate.
5028
0429bc77
PB
50292004-05-25 Paolo Bonzini <bonzini@gnu.org>
5030
5031 * Makefile.am: the correct directory for
5032 gettext include files is given by @INCINTL@.
5033 * Makefile.in: Regenerate.
5034
c86dd7db
PB
50352004-05-24 Paolo Bonzini <bonzini@gnu.org>
5036
5037 * system.h [!ENABLE_NLS]: dgettext takes two
5038 parameters.
5039
4f4e53dd
PB
50402004-05-23 Paolo Bonzini <bonzini@gnu.org>
5041
5042 Moved libcpp from the gcc subdirectory to the toplevel.
5043 * Makefile.am: New file.
5044 * Makefile.in: Regenerate.
5045 * configure.ac: New file.
5046 * configure: Regenerate.
5047 * config.in: Regenerate.
5048 * charset.c: Moved from gcc/cppcharset.c. Add note about
5049 brokenness of input charset detection. Adjust for change
5050 in name of cppucnid.h.
5051 * errors.c: Moved from gcc/cpperror.c. Do not include intl.h.
5052 * expr.c: Moved from gcc/cppexp.c.
5053 * files.c: Moved from gcc/cppfiles.c. Do not include intl.h.
5054 Remove #define of O_BINARY, it is in system.h.
5055 * identifiers.c: Moved from gcc/cpphash.c.
5056 * internal.h: Moved from gcc/cpphash.h. Change header
5057 guard name. All other files adjusted to match name change.
5058 * init.c: Moved from gcc/cppinit.c.
5059 (init_library) [ENABLE_NLS]: Call bindtextdomain.
5060 * lex.c: Moved from gcc/cpplex.c.
5061 * directives.c: Moved from gcc/cpplib.c.
5062 * macro.c: Moved from gcc/cppmacro.c.
5063 * pch.c: Moved from gcc/cpppch.c. Do not include intl.h.
5064 * traditional.c: Moved from gcc/cpptrad.c.
5065 * ucnid.h: Moved from gcc/cppucnid.h. Change header
5066 guard name.
5067 * ucnid.pl: Moved from gcc/cppucnid.pl.
5068 * ucnid.tab: Moved from gcc/cppucnid.tab. Change header
5069 guard name.
5070 * symtab.c: Moved from gcc/hashtable.c.
5071 * line-map.c: Moved from gcc. Do not include intl.h.
5072 * mkdeps.c: Moved from gcc.
5073 * system.h: New file.
2cf22451
ZW
5074 * include/cpplib.h: Moved from gcc. Change header guard name.
5075 * include/line-map.h: Moved from gcc. Change header guard name.
5076 * include/mkdeps.h: Moved from gcc. Change header guard name.
5077 * include/symtab.h: Moved from gcc/hashtable.h. Change header
5078 guard name.
818ab71a 5079\f
cbe34bb5 5080Copyright (C) 2004-2017 Free Software Foundation, Inc.
818ab71a
JJ
5081
5082Copying and distribution of this file, with or without modification,
5083are permitted in any medium without royalty provided the copyright
5084notice and this notice are preserved.