OSDN Git Service

Apply https://gcc.gnu.org/ml/gcc-patches/2012-09/msg00777/aarch64-int-iterators-backp...
[pf3gnuchains/gcc-fork.git] / libcpp / ChangeLog
1 2013-04-11  Release Manager
2
3         * GCC 4.7.3 released.
4
5 2013-04-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6
7         PR target/56771
8         * configure.ac: Require 64-bit int for arm*-*-rtems[.0-9]*.
9         * configure: Regenerate.
10
11 2012-09-20  Release Manager
12
13         * GCC 4.7.2 released.
14
15 2012-06-14  Release Manager
16
17         * GCC 4.7.1 released.
18
19 2012-03-22  Release Manager
20
21         * GCC 4.7.0 released.
22
23 2012-02-14  Walter Lee  <walt@tilera.com>
24
25         * configure.ac: Require 64-bit hwint for tilegx and tilepro.
26         * configure: Regenerate.
27
28 2012-01-09  Richard Guenther  <rguenther@suse.de>
29
30         * macro.c (_cpp_builtin_macro_text): Remove unused variable map.
31
32 2012-01-09  Gary Funck  <gary@intrepid.com>
33
34         PR preprocessor/33919
35         * files.c (_cpp_get_file_name): New. Implement file name
36         access function.
37         * internal.h (_cpp_get_file_name): New prototype.
38         * macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
39         to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
40
41 2012-01-03  Olivier Hainque  <hainque@adacore.com>
42
43         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
44
45 2011-12-20  Joseph Myers  <joseph@codesourcery.com>
46
47         * include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
48         (CLK_STDC1X): Change to CLK_STDC11.
49         * init.c (lang_defaults): Update comments.
50         (cpp_init_builtins): Update language tests.  Use 201112L for C11
51         __STDC_VERSION__.
52
53 2011-12-20  Andreas Schwab  <schwab@linux-m68k.org>
54
55         * configure: Regenerate.
56
57 2011-12-19  Andreas Schwab  <schwab@linux-m68k.org>
58
59         * configure: Regenerate.
60
61 2011-12-07  Jakub Jelinek  <jakub@redhat.com>
62
63         PR bootstrap/50237
64         * internal.h (_cpp_init_lexer): New prototype.
65         * init.c (init_library): Call it.
66         * lex.c (init_vectorized_lexer): Remove constructor attribute,
67         add inline keyword.
68         (HAVE_init_vectorized_lexer): Define.
69         (_cpp_init_lexer): New function.
70
71 2011-12-03  Dodji Seketeli  <dodji@redhat.com>
72
73         * macro.c (tokens_buff_remove_last_token)
74         (tokens_buff_put_token_to): Add an 'inline' function specifier to
75         the prototype.
76
77 2011-11-22   Diego Novillo  <dnovillo@google.com>
78
79         * include/line-map.h (linemap_dump): Declare.
80         (line_table_dump): Declare.
81         * line-map.c (linemap_dump): New.
82         (line_table_dump): New.
83
84 2011-11-21  Ed Smith-Rowland  <3dw4rd@verizon.net>
85
86         PR c++/50958
87         * expr.c (cpp_userdef_char_remove_type): Fix typo.
88
89 2011-11-03  Michael Matz  <matz@suse.de>
90
91         PR bootstrap/50857
92         * configure.ac: Check for -fno-exceptions -fno-rtti.
93         * configure: Regenerate.
94         * Makefile.in (NOEXCEPTION_FLAGS): New flag.
95         (ALL_CXXFLAGS): Use it.
96
97 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
98
99         * internal.h (uxstrdup, ustrchr): Return const unsigned char *.
100
101 2011-11-02  Jason Merrill  <jason@redhat.com>
102
103         PR c++/50810
104         * configure.ac: Add -Wno-narrowing to warning options.
105
106 2011-10-31  Jason Merrill  <jason@redhat.com>
107
108         PR libstdc++/1773
109         * init.c (cpp_init_builtins): Set __cplusplus for C++11.
110
111         PR c++/50920
112         * include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
113         CLK_GNUCXX0X to CLK_GNUCXX11.
114
115 2011-10-26  Ed Smith-Rowland  <3dw4rd@verizon.net>
116
117         Implement C++11 user-defined literals.
118         * expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
119         cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
120         cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
121         cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
122         (cpp_classify_number): Classify unrecognized tokens as user-defined
123         literals.
124         * include/cpplib.h: Add new tokens for user-defined literals.
125         * init.c: Add new preprocessor flag (cxx11).
126         * lex.c: (lex_string, lex_raw_string): Handle user-defined literals
127         including concatenation and promotion with suffixes.
128
129 2011-10-24  Dodji Seketeli  <dodji@redhat.com>
130
131         * line-map.c (linemap_macro_map_lookup): Fix logic.
132
133 2011-10-24  Dodji Seketeli  <dodji@redhat.com>
134
135         * include/line-map.h (linemap_expand_location): Take a line table
136         parameter.  Update comment.
137         (linemap_resolve_location): Update comment.
138         (linemap_expand_location_full): Remove.
139         * line-map.c (linemap_resolve_location):  Handle reserved
140         locations; return a NULL map in those cases.
141         (linemap_expand_location): If location is reserved, return a
142         zeroed expanded location.  Update comment.  Take a line table to
143         assert that the function takes non-virtual locations only.
144         (linemap_expand_location_full): remove.
145         (linemap_dump_location): Handle the fact that
146         linemap_resolve_location can return NULL line maps when the
147         location resolves to a reserved location.
148
149         * line-map.c (linemap_macro_map_lookup): Fix logic.
150
151 2011-10-22  Dodji Seketeli  <dodji@redhat.com>
152
153         PR bootstrap/50778
154         * include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
155         context to act upon.
156         * lex.c (_cpp_remaining_tokens_num_in_context): Likewise.  Update
157         comment.
158         (cpp_token_from_context_at): Likewise.
159         (cpp_peek_token): Use the context to peek tokens from.
160
161 2011-10-20  Dodji Seketeli  <dodji@redhat.com>
162
163         PR bootstrap/50801
164         * lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
165         number of tokens.
166
167 2011-10-18  Dodji Seketeli  <dodji@redhat.com>
168
169         PR bootstrap/50760
170         * include/line-map.h (struct linemap_stats): Change the type of
171         the members from size_t to long.
172         * macro.c (macro_arg_token_iter_init): Unconditionally initialize
173         iter->location_ptr.
174
175 2011-10-17  Dodji Seketeli  <dodji@redhat.com>
176
177         * line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
178         variable without using it if ENABLE_CHECKING is not defined.  Mark
179         the LOCATION parameter as being unused.
180
181 2011-10-15  Tom Tromey  <tromey@redhat.com>
182             Dodji Seketeli  <dodji@redhat.com>
183
184         * include/line-map.h (struct line_maps::alloced_size_for_request):
185         New member.
186         * line-map.c (new_linemap): Use set->alloced_size_for_request to
187         get the actual allocated size of line maps.
188
189 2011-10-15  Tom Tromey  <tromey@redhat.com>
190             Dodji Seketeli  <dodji@redhat.com>
191
192         * line-map.h (struct linemap_stats): Declare new struct.
193         (linemap_get_statistics): Declare ...
194         * line-map.c (linemap_get_statistics):  ... new function.
195         * macro.c (num_expanded_macros_counter, num_macro_tokens_counter):
196         Declare new counters.
197         (enter_macro_context, replace_args): Update
198         num_macro_tokens_counter.
199         (cpp_get_token_1): Update num_expanded_macros_counter.
200
201 2011-10-15  Tom Tromey  <tromey@redhat.com>
202             Dodji Seketeli  <dodji@redhat.com>
203
204         * include/cpplib.h (struct cpp_options)<debug>: New struct member.
205         * include/line-map.h (linemap_dump_location): Declare ...
206         * line-map.c (linemap_dump_location): ... new function.
207
208 2011-10-15  Tom Tromey  <tromey@redhat.com>
209             Dodji Seketeli  <dodji@redhat.com>
210
211         * include/cpplib.h (struct cpp_options)<track_macro_expansion>:
212         New option.
213         * internal.h (struct macro_context): New struct.
214         (enum context_tokens_kind): New enum.
215         (struct cpp_context)<tokens_kind>: New member of type enum
216         context_tokens_kind.
217         (struct cpp_context)<macro>: Remove this.  Replace it with an enum
218         of macro and  macro_context.
219         (struct cpp_context)<direct_p>: Remove.
220         (_cpp_remaining_tokens_num_in_context): Declare new function.
221         * directives.c (destringize_and_run): Adjust.
222         * lex.c (_cpp_remaining_tokens_num_in_context)
223         (_cpp_token_from_context_at): Define new functions
224         (cpp_peek_token): Use them.
225         * init.c (cpp_create_reader): Initialize the base context to zero.
226         (_cpp_token_from_context_at): Define new static function.
227         (cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and
228         _cpp_token_from_context_at.
229         * macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New
230         members.
231         (enum macro_arg_token_kind): New enum.
232         (struct macro_arg_token_iter): New struct.
233         (maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context)
234         (alloc_expanded_arg_mem, ensure_expanded_arg_room)
235         (delete_macro_args, set_arg_token, get_arg_token_location)
236         (arg_token_ptr_at, macro_arg_token_iter_init)
237         (macro_arg_token_iter_get_token)
238         (macro_arg_token_iter_get_location, macro_arg_token_iter_forward)
239         (expanded_token_index, tokens_buff_new, tokens_buff_count)
240         (tokens_buff_last_token_ptr, tokens_buff_put_token_to)
241         (tokens_buff_add_token, tokens_buff_remove_last_token)
242         (reached_end_of_context, consume_next_token_from_context): New
243         static functions.
244         (cpp_get_token_1): New static function. Split and extended from
245         cpp_get_token.  Use reached_end_of_context and
246         consume_next_token_from_context.  Unify its return point.  Move
247         the location tweaking from cpp_get_token_with_location in here.
248         (cpp_get_token): Use cpp_get_token_1
249         (stringify_arg): Use the new arg_token_at.
250         (paste_all_tokens): Support tokens coming from extended tokens
251         contexts.
252         (collect_args): Return the number of collected arguments, by
253         parameter.  Store virtual locations of tokens that constitute the
254         collected args.
255         (funlike_invocation_p): Return the number of collected arguments,
256         by parameter.
257         (enter_macro_context): Add a parameter for macro expansion point.
258         Pass it to replace_args and to the "used" cpp callback.  Get the
259         number of function-like macro arguments from funlike_invocation_p,
260         pass it to the new delete_macro_args to free the memory used by
261         macro args.  When -ftrack-macro-expansion is in effect, for macros
262         that have no arguments, create a macro map for the macro expansion
263         and use it to allocate proper virtual locations for tokens
264         resulting from the expansion.  Push an extended tokens context
265         containing the tokens resulting from macro expansion and their
266         virtual locations.
267         (replace_args): Rename the different variables named 'count' into
268         variables with more meaningful names.  Create a macro map;
269         allocate virtual locations of tokens resulting from this
270         expansion.  Use macro_arg_token_iter to iterate over tokens of a
271         given macro.  Handle the case of the argument of
272         -ftrack-macro-expansion being < 2.  Don't free macro arguments
273         memory resulting from expand_arg here, as these are freed by the
274         caller of replace_arg using delete_macro_args now.  Push extended
275         token context.
276         (next_context, push_ptoken_context, _cpp_push_token_context)
277         (_cpp_push_text_context): Properly initialize the context.
278         (expand_arg): Use the new alloc_expanded_arg_mem,
279         push_extended_tokens_context, cpp_get_token_1, and set_arg_token.
280         (_cpp_pop_context): Really free the memory held by the context.
281         Handle freeing memory used by extended tokens contexts.
282         (cpp_get_token_with_location): Use cpp_get_token_1.
283         (cpp_sys_macro_p): Adjust.
284         (_cpp_backup_tokens): Support the new kinds of token contexts.
285         * traditional.c (recursive_macro): Adjust.
286
287 2011-10-15  Tom Tromey  <tromey@redhat>
288             Dodji Seketeli  <dodji@redhat.com>
289
290         * include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum
291         member.
292         (MAX_SOURCE_LOCATION): New constant.
293         (struct line_map_ordinary, struct line_map_macro): New structs.
294         (struct line_map): Turn this into a union of the two above.  Add
295         comments.
296         (struct maps_info): New struct.
297         (struct line_maps)<info_ordinary, info_macro>: Two new fields.
298         These now carry the map information that was previously scattered
299         in struct line_maps.
300         (struct map_info::allocated): Fix comment.
301         (MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME)
302         (ORDINARY_MAP_STARTING_LINE_NUMBER)
303         (ORDINARY_MAP_INCLUDER_FILE_INDEX)
304         (ORDINARY_MAP_IN_SYSTEM_HEADER_P)
305         (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO)
306         (MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS)
307         (MACRO_MAP_EXPANSION_POINT_LOCATION)
308         (LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO)
309         (LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE)
310         (LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP)
311         (LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED)
312         (LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE)
313         (LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP)
314         (LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED)
315         (LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE)
316         (LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP)
317         (LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT)
318         (LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map
319         information.
320         (linemap_check_ordinary, linemap_assert)
321         (linemap_location_before_p): New macros.
322         (linemap_position_for_line_and_column)
323         (linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token)
324         (linemap_macro_expansion_map_p)
325         (linemap_macro_map_loc_to_def_point)
326         (linemap_macro_map_loc_unwind_once)
327         (linemap_macro_map_loc_to_exp_point, linemap_step_out_once)
328         (linemap_get_source_line linemap_get_source_column)
329         (linemap_map_get_macro_name, linemap_get_file_path)
330         (linemap_location_in_system_header_p)
331         (linemap_location_from_macro_expansion_p): Declare new functions.
332         (SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION)
333         (LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this
334         accessors act on ordinary maps only.
335         (INCLUDED_FROM): Return NULL for main files; use the new
336         accessors.
337         (LINEMAP_POSITION_FOR_COLUMN): Use the new accessors.
338         (struct expanded_location): Move here from gcc/input.h
339         (linemap_resolve_location, linemap_expand_location)
340         (linemap_expand_location_full): Declare new functions.
341         * line-map.c: Include cpplib.h, internal.h
342         (linemap_enter_macro, linemap_add_macro_token)
343         (linemap_get_expansion_line, linemap_get_expansion_filename): New
344         functions that are private to libcpp.
345         (linemap_assert): New macro.
346         (linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point)
347         (linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point)
348         (linemap_macro_map_loc_unwind_toward_spelling)
349         (linemap_macro_map_loc_to_exp_point)
350         (first_map_in_common_1, first_map_in_common): New static
351         functions.
352         (new_linemap): Define new static functions.  Extracted and
353         enhanced from ...
354         (linemap_add): ... here.  Use linemap_assert in lieu of abort
355         previously.
356         (linemap_tracks_macro_expansion_locs_p)
357         (linemap_add_macro_token, linemap_macro_expansion_map_p)
358         (linemap_check_ordinary, linemap_macro_map_loc_to_exp_point)
359         (linemap_macro_map_loc_to_def_point)
360         (linemap_macro_map_loc_unwind_once)
361         (linemap_step_out_once, linemap_map_get_index)
362         (linemap_get_source_line,linemap_get_source_column)
363         (linemap_get_file_path, linemap_map_get_macro_name)
364         (linemap_location_in_system_header_p)
365         (linemap_location_originated_from_system_header_p)
366         (linemap_location_from_macro_expansion_p)
367         (linemap_tracks_macro_expansion_locs_p)
368         (linemap_resolve_location, linemap_expand_location)
369         (linemap_expand_location_full)
370         (linemap_tracks_macro_expansion_locs_p)
371         (linemap_position_for_line_and_column, linemap_compare_locations):
372         Define new public functions.
373         (linemap_init): Initialize ordinary and macro maps information in
374         the map set.
375         (linemap_check_files_exited): Use the new accessors.
376         (linemap_free): Remove this dead code.
377         (linemap_line_start): Assert this uses an ordinary map.  Adjust to
378         use the new ordinary map accessors and data structures.  Don't
379         overflow past the lowest possible macro token's location.
380         (linemap_position_for_column): Assert the ordinary maps of the map
381         set are really ordinary.  Use ordinary map accessors.
382         (linemap_lookup): Keep the same logic but generalize to allow
383         lookup of both ordinary and macro maps.  Do not crash when called
384         with an empty line table.
385         * directives-only.c (_cpp_preprocess_dir_only): Adjust to use the
386         new API of line-map.h.
387         * directives.c (start_directive, do_line, do_linemarker)
388         (do_linemarker): Likewise.
389         * files.c (_cpp_find_file, _cpp_stack_include, open_file_failed)
390         (make_cpp_dir, cpp_make_system_header): Likewise.
391         * init.c (cpp_read_main_file): Likewise.
392         * internal.h (CPP_INCREMENT_LINE): Likewise.
393         (linemap_enter_macro, linemap_add_macro_token)
394         (linemap_get_expansion_line, linemap_get_expansion_filename): New
395         functions private to libcpp.
396         * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment)
397         (skip_line_comment, skip_whitespace, lex_raw_string)
398         (_cpp_lex_direct): Likewise.
399         * macro.c (_cpp_builtin_macro_text): Likewise.
400         (_cpp_aligned_alloc): Initialize the new name member of the macro.
401         * traditional.c (copy_comment, _cpp_scan_out_logical_line):
402         Likewise.
403         * errors.c (cpp_diagnostic): Adjust to new linemap API.
404
405 2011-08-28  Dodji Seketeli  <dodji@redhat.com>
406
407         * line-map.c (linemap_add): Assert that reason must not be
408         LC_RENAME when called for the first time on a "main input file".
409
410 2011-08-22  Gabriel Charette  <gchare@google.com>
411
412         * init.c (cpp_create_reader): Inititalize forced_token_location_p.
413         * internal.h (struct cpp_reader): Add field forced_token_location_p.
414         * lex.c (_cpp_lex_direct): Use forced_token_location_p.
415         (cpp_force_token_locations): New.
416         (cpp_stop_forcing_token_locations): New.
417
418 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
419
420         PR libstdc++/1773
421         * init.c (cpp_init_builtins): Define __cplusplus 19971L.
422
423 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
424
425         * include/cpplib.h (struct cpp_options): Fix typo.
426
427 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
428
429         * include/cpplib.h (struct cpp_options): Add rliterals.
430         * init.c  (struct lang_flags, lang_defaults): Add rliterals.
431         (cpp_set_lang): Set rliterals option.
432         (cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__.
433         * lex.c (_cpp_lex_direct): Only accept raw strings if rliterals.
434
435 2011-08-15  Gabriel Charette  <gchare@google.com>
436
437         * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove.
438         Update all users to use linemap_position_for_column instead.
439
440 2011-07-28  Gabriel Charette  <gchare@google.com>
441
442         * include/line-map.h (struct line_maps):
443         Remove unused field last_listed. Update all users.
444
445 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
446
447         * configure.ac: Set need_64bit_hwint to yes for x86 targets.
448         * configure: Regenerated.
449
450 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
451
452         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
453
454 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
455             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
456
457         PR bootstrap/49794
458         * configure.ac: Test AM_ICONV with CXX.
459         * configure: Regenerate.
460         * system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++.
461
462 2011-07-15  Dodji Seketeli  <dodji@redhat.com>
463
464         * directives.c (struct if_stack): Use source_location as type
465         here.
466         * include/cpplib.h (struct cpp_callbacks)<include, define, undef,
467         indent, def_pragma, used_define, used_undef>: Properly use
468         source_location as parameter type, rather than unsigned int.
469
470 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
471
472         PR target/39150
473         * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
474         like i[34567]86-*-solaris2.1[0-9]*.
475         * configure: Regenerate.
476
477 2011-06-16  Jason Merrill  <jason@redhat.com>
478
479         PR c++/45399
480         * lex.c (lex_raw_string): Don't check for embedded NUL.
481
482 2011-06-06  Dodji Seketeli  <dodji@redhat.com>
483
484         PR preprocessor/48532
485         * directives.c (do_pragma): Don't forget the invocation location
486         when parsing the pragma name of a namespaced pragma directive.
487
488 2011-05-29  John Tytgat  <John.Tytgat@aaug.net>
489
490         * files.c (read_file_guts): Add test on non-zero value of S_ISREG.
491
492 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
493
494         PR target/49104
495         * lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
496         is defined.  Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
497
498 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
499
500         * system.h (ENUM_BITFIELD): Remove.
501
502 2011-04-24  Jakub Jelinek  <jakub@redhat.com>
503
504         PR preprocessor/48740
505         * lex.c (lex_raw_string): When raw string ends with
506         ??) followed by raw prefix and ", ensure it is preprocessed
507         with ??) rather than ??].
508
509 2011-04-20  Jim Meyering  <meyering@redhat.com>
510
511         * files.c (destroy_cpp_file): Remove useless if-before-free.
512         * init.c (cpp_destroy): Likewise.
513         * macro.c (replace_args): Likewise.
514         * pch.c (cpp_valid_state): Likewise.
515
516 2011-03-25  Kai Tietz  <ktietz@redhat.com>
517
518         * files.c (file_hash_eq): Use filename_cmp
519         instead of strcmp.
520         (nonexistent_file_hash_eq): Likewise.
521         (remap_filename): Likewise.
522         Handle absolute DOS-path,
523         (append_file_to_dir): Check for IS_DIR_SEPARATOR
524         instead of slash.
525         (read_name_map): Likewise.
526         * linemap.c (linemap_add): Use filename_cmp
527         instead of strcmp.
528         * mkdeps.c (apply_vpath): Use filename_ncmp
529         instead of strncmp.
530         (deps_restore): Use filename_cmp instead of
531         strcmp.
532         * init.c (read_original_directory): Use
533         IS_DIR_SEPARATOR instead of checking for slash.
534
535 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
536
537         PR preprocessor/48192
538         * directives.c (do_ifdef): Do not consider conditional macros as
539         being defined.
540         (do_ifndef): Ditto.
541         * expr.c (parse_defined): Ditto.
542
543 2011-03-18  Richard Henderson  <rth@redhat.com>
544
545         PR bootstrap/45381
546         * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5.
547
548 2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
549             Jakub Jelinek  <jakub@redhat.com>
550
551         PR preprocessor/39213
552         * directives.c (end_directive): Call _cpp_remove_overlay for deferred
553         pragmas as well in traditional mode.
554
555 2010-11-17  Ian Lance Taylor  <iant@google.com>
556
557         PR bootstrap/45538
558         * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS.  Remove switch of
559         AC_LANG based on ENABLE_BUILD_WITH_CXX.
560
561 2010-11-16  Kai Tietz  <kai.tietz@onevision.com>
562
563         PR preprocessor/17349
564         * lex.c (save_comment): Handle in argument passing c++
565         comments special.
566
567 2010-11-02  Ian Lance Taylor  <iant@google.com>
568
569         * configure.ac: Use AC_SYS_LARGEFILE.
570         * configure: Rebuild.
571         * config.in: Rebuild.
572
573 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
574
575         * line-map.h (source_location): Remove obsolete comment
576         mentioning location_s.
577
578 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
579
580         PR preprocessor/45362
581         * directives.c (cpp_pop_definition): Make static.
582         (do_pragma_push_macro): Reworked to store text
583         definition.
584         (do_pragma_pop_macro): Add free text definition.
585         (cpp_push_definition): Removed.
586         * include/cpplib.h (cpp_push_definition): Removed.
587         (cpp_pop_definition): Likewise.
588         * internal.h (def_pragma_macro): Remove member 'value'
589         and add new members 'definition', 'line',
590         'syshdr', 'sued' and 'is_undef'.
591         * pch.c (_cpp_restore_pushed_macros): Rework to work
592         on text definition and store additional macro flags.
593         (_cpp_save_pushed_macros): Likewise.
594
595 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
596
597         * include/cpplib.h (cpp_options): Rename warn_deprecated,
598         warn_traditional, warn_long_long and pedantic.
599         * directives.c (directive_diagnostics, _cpp_handle_directive):
600         Update names of cpp_options members.
601         * expr.c (cpp_classify_number, eval_token): Update names of
602         cpp_options members.
603         * init.c (cpp_create_reader, post_options): Update names of
604         cpp_options members.
605         * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
606         cpp_options members.
607         * macro.c (parse_params): Update names of cpp_options members.
608
609 2010-09-15  Ian Lance Taylor  <iant@google.com>
610
611         * init.c: Fix type name in comment.
612
613 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
614
615         PR preprocessor/45457
616         * expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if
617         needed.
618         * directives.c (do_ifdef, do_ifndef): Likewise.
619
620 2010-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
621
622         * system.h [HAVE_INTTYPES_H]: Include inttypes.h.
623
624 2010-08-24  Richard Henderson  <rth@redhat.com>
625
626         PR bootstrap/45376
627         * configure.ac (HAVE_SSE4): New check.
628         * configure, config.in: Rebuild.
629         * lex.c (search_line_sse42): Omit if !HAVE_SSE4.
630
631 2010-08-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
632
633         * lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
634         etc. on Solaris 2/x86.
635
636 2010-08-21  Richard Henderson  <rth@redhat.com>
637             Andi Kleen <ak@linux.intel.com>
638             David S. Miller  <davem@davemloft.net>
639
640         * configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
641         (ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
642         (ptrdiff_t): Check via AC_CHECK_TYPE.
643         * config.in, configure: Rebuild.
644         * system.h: Include stdint.h, if available.
645         * lex.c (WORDS_BIGENDIAN): Provide default.
646         (acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
647         acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
648         search_line_sse2, search_line_sse42, init_vectorized_lexer,
649         search_line_fast): New.
650         (_cpp_clean_line): Use search_line_fast.  Restructure the fast
651         loop to make it clear when we're leaving the loop.  Stay in the
652         fast loop for non-trigraph '?'.
653
654 2010-06-11  Jakub Jelinek  <jakub@redhat.com>
655
656         * include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro
657         callback.
658         (enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER.
659         (cpp_macro_definition): Remove const qual from second argument.
660         * macro.c (enter_macro_context): Call user_builtin_macro callback for
661         NODE_BUILTIN !NODE_USED macros.
662         (warn_of_redefinition): Likewise.  Remove const qual from second
663         argument.
664         (cpp_macro_definition): Likewise.
665         * pch.c (write_macdef, save_macros): Call user_builtin_macro callback
666         for NODE_BUILTIN !NODE_USED macros.
667
668 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
669
670         * include/cpplib.h (struct cpp_options): Remove show_column.
671         * init.c (cpp_create_reader, post_options): Don't set show_column.
672
673 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
674
675         PR bootstrap/44432
676         * configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++,
677         check that C++ compiler works.
678         * configure: Regenerate.
679
680 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
681
682         * include/symtab.h (ht_identifier_ptr): New.
683
684 2010-06-03  Joern Rennecke <joern.rennecke@embecosm.com>
685             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
686
687         PR bootstrap/42798
688         * configure.ac: Check for declaration of 'basename(char *)'.
689         * configure: Regenerate.
690         * config.in: Regenerate.
691
692 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
693
694         * include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X.
695         * init.c (lang_defaults): Add entries for new language variants.
696         (cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X
697         variants.
698
699 2010-04-09  Manuel López-Ibáñez <manu@gcc.gnu.org>
700
701         PR cpp/43195
702         * files.c (report_missing_guard): Test for #pragma once.
703
704 2010-04-07  Simon Baldwin  <simonb@google.com>
705
706         * directives.c (do_diagnostic): Add warning reason argument,
707         call appropriate error reporting function for code.
708         (directive_diagnostics): Call specific warning functions with
709         warning reason where appropriate.
710         (do_error, do_warning, do_pragma_dependency): Add warning reason
711         argument to do_diagnostic calls.
712         * macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
713         _cpp_create_definition): Call specific warning functions with
714         warning reason where appropriate.
715         * Makefile.in: Add new diagnostic functions to gettext translations.
716         * include/cpplib.h (struct cpp_callbacks): Add warning reason code
717         to error callback.
718         (CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
719         CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
720         (CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
721         CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
722         CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
723         CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
724         CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
725         CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
726         CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
727         warning reason codes.
728         (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
729         cpp_warning_with_line, cpp_pedwarning_with_line,
730         cpp_warning_with_line_syshdr): New specific error reporting functions.
731         * pch.c (cpp_valid_state): Call specific warning functions with
732         warning reason where appropriate.
733         * errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
734         diagnostic handlers.
735         (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
736         cpp_warning_with_line, cpp_pedwarning_with_line,
737         cpp_warning_with_line_syshdr): New specific error reporting functions.
738         * expr.c (cpp_classify_number, eval_token, num_unary_op): Call
739         specific warning functions with warning reason where appropriate.
740         * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
741         warn_about_normalization, lex_identifier_intern, lex_identifier,
742         _cpp_lex_direct): Ditto.
743         * charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
744         narrow_str_to_charconst): Ditto.
745
746 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
747
748         PR preprocessor/43642
749         * lex.c (lex_raw_string): Change type of TYPE variable to
750         unsigned char.
751
752 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
753
754         * aclocal.m4: Regenerate.
755
756 2010-03-29  Jason Merrill  <jason@redhat.com>
757
758         More N3077 raw string changes
759         * charset.c (cpp_interpret_string): Don't transform UCNs in raw
760         strings.
761         * lex.c (bufring_append): Split out from...
762         (lex_raw_string): ...here.  Undo trigraph and line splicing
763         transformations.  Do process line notes in multi-line literals.
764         (_cpp_process_line_notes): Ignore notes that were already handled.
765
766         Some raw string changes from N3077
767         * charset.c (cpp_interpret_string): Change inner delimiters to ().
768         * lex.c (lex_raw_string): Likewise.  Also disallow '\' in delimiter.
769
770 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
771
772         * init.c (read_original_filename): Don't call read_original_directory
773         if _cpp_handle_directive returns 0.
774
775 2010-01-01  Joseph Myers  <joseph@codesourcery.com>
776
777         PR preprocessor/41947
778         * expr.c (cpp_classify_number): Give error for hexadecimal
779         floating-point constant with no digits before or after point.
780
781 2009-11-20  Arnaud Charlet  <charlet@adacore.com>
782
783         * macro.c (enter_macro_context): Call cb.used callback if defined.
784         * directives.c (do_idef, do_ifndef): Ditto.
785         * include/cpplib.h (struct cpp_callbacks): Add used callback.
786
787 2009-11-11  Kai Tietz  <kai.tietz@onevision.com>
788
789         * directives.c (do_pragma_push_macro): New pragma handler.
790         (do_pragma_pop_macro): Likewise.
791         (_cpp_init_internal_pragmas): Add push_macro and
792         pop_macro handler to internal pragmas.
793         (lex_macro_node_from_str): Removed.
794         (cpp_push_definition): Replace lex_macro_node_from_str
795         by _cpp_lex_identifier.
796         (cpp_pop_definition): Likewise.
797         * internal.h (_cpp_lex_identifier): New prototype.
798         (def_pragma_macro): New structure.
799         (cpp_reader): New member pushed_macros.
800         * lex.c (_cpp_lex_identifier): New function.
801         (lex_identifier_intern): New function.
802         * init.c (cpp_create_reader): Initialize pushed_macros
803         member.
804         (cpp_destroy): Free elements in pushed_macros member.
805         * pch.c (_cpp_save_pushed_macros): New function.
806         (_cpp_restore_pushed_macros): Likewise.
807         (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
808         (cpp_read_state): Use _cpp_restore_pushed_macros.
809
810 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
811
812         * charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
813         (_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
814         and char32_cset_desc.
815         (converter_for_type): Handle CPP_UTF8STRING.
816         (cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
817         * directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
818         (parse_include): Reject raw strings.
819         * include/cpplib.h (CPP_UTF8STRING): New token type.
820         * internal.h (struct cpp_reader): Add utf8_cset_desc field.
821         * lex.c (lex_raw_string): New function.
822         (lex_string): Handle u8 string literals, call lex_raw_string
823         for raw string literals.
824         (_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
825         sequences.
826         * macro.c (stringify_arg): Handle CPP_UTF8STRING.
827
828 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
829
830         PR preprocessor/41543
831         * include/line-map.h (RESERVED_LOCATION_COUNT): Define.
832         * line-map.c (linemap_init): Initialize highest_location and
833         highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
834
835 2009-10-09  Jason Merrill  <jason@redhat.com>
836
837         * charset.c (_cpp_valid_ucn): Update C++0x restrictions.
838
839 2009-10-09  Neil Vachharajani <nvachhar@google.com>
840
841         * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and
842         sccs.
843
844 2009-09-23  Loren J. Rittle  <ljrittle@acm.org>
845
846         * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h.
847         * configure: Rebuilt.
848
849 2009-09-22  Richard Guenther  <rguenther@suse.de>
850
851         PR pch/38987
852         * files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
853
854 2009-09-18  Chris Demetriou  <cgd@google.com>
855
856         PR preprocessor/28435:
857         * include/cpplib.h (struct cpp_options): Add new member
858         deps.need_preprocessor_output.
859         * files.c (open_file_failed): If preprocessor output is needed
860         always report an error.
861
862 2009-09-13  Kai Tietz  <kai.tietz@onevision.com>
863
864         * configure.ac: Set for i?86-w64-mingw*
865         need_64bit_hwint to yes.
866         * configure: Regenerated.
867
868 2009-09-10  Jason Merrill  <jason@redhat.com>
869
870         * directives.c (cpp_define): constify.
871
872 2009-09-02  Ian Lance Taylor  <iant@google.com>
873
874         * macro.c (stringify_arg): Escape CPP_WCHAR tokens.
875
876 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
877
878         * configure.ac (AC_PREREQ): Bump to 2.64.
879
880 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
881
882         * aclocal.m4: Regenerate.
883         * config.in: Regenerate.
884         * configure: Regenerate.
885
886 2009-08-17  Tom Tromey  <tromey@redhat.com>
887
888         PR preprocessor/41067:
889         * charset.c (convert_escape): Add missing ":" to error text.
890
891 2009-07-27  Douglas B Rupp  <rupp@gnat.com>
892
893         * include/cpplib.h (INO_T_CPP): New macro.
894         (struct cpp_dir): Use it.
895
896 2009-07-20  Jerry Quinn  <jlquinn@optonline.net>
897
898         PR regression/40800
899         * configure.ac: Use = instead of == for testing
900         ENABLE_BUILD_WITH_CXX.
901         * configure: Rebuild.
902
903 2009-07-17  Jerry Quinn  <jlquinn@optonline.net>
904
905         * directives.c (do_linemarker, do_line): Use CPP_STRING for
906         ignored enum value.
907         * files.c (find_file_in_dir): Add cast from void* to char*.
908         * symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
909         * Makefile.in: (WARN_CFLAGS): Use general and C-specific
910         warnings.
911         (CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
912         ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
913         COMPILER_FLAGS): New.
914         (DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
915         (COMPILE.base): Use COMPILER instead of CC.  Use COMPILER_FLAGS
916         instead of ALL_CFLAGS.
917         * configure.ac: Invoke AC_PROG_CXX.  Separate C-specific warnings
918         from other warnings.  Add -Wc++-compat to C-specific warnings.
919         Check for --enable-build-with-cxx.  Set and substitute
920         ENABLE_BUILD_WITH_CXX.  Invoke ZW_PROG_COMPILER_DEPENDENCIES
921         according to ENABLE_BUILD_WITH_CXX.  Invoke AC_LANG before
922         AC_CHECK_HEADERS.
923         * configure: Rebuild.
924         * include/cpp-id-data.h: Remove extern "C".
925         * include/line-map.h: Likewise.
926         * include/mkdeps.h: Likewise.
927         * include/symtab.h: Likewise.
928         * internal.h: Likewise.
929
930 2009-06-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
931
932         * directives.c (parse_include): Add location argument. Update all
933         calls.
934         (parse_answer): Likewise.
935         (do_include_common): Error with exact location.
936         (parse_assertion): Likewise.
937
938 2009-06-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
939
940         * expr.c (num_div_op): Take explicit location.
941
942 2009-06-17  Ian Lance Taylor  <iant@google.com>
943
944         * include/cpplib.h (progname): Don't declare.
945
946 2009-06-12  Ian Lance Taylor  <iant@google.com>
947
948         * include/cpplib.h (struct cpp_options): Add
949         warn_cxx_operator_names field.
950         (NODE_WARN_OPERATOR): Define.
951         (struct cpp_hashnode): Increase flags field to 10 bits, decrease
952         type to 6 bits.
953         * init.c (mark_named_operators): Add flags parameter.
954         (cpp_post_options): Pick flags value to pass to
955         mark_named_operators.
956         * lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that
957         identifier is an operator name in C++.
958
959 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
960
961         * include/line-map.h (LAST_SOURCE_COLUMN): New.
962
963 2009-06-01  Ian Lance Taylor  <iant@google.com>
964
965         * include/cpp-id-data.h: Add extern "C".
966         * include/line-map.h: Likewise.
967         * include/mkdeps.h: Likewise.
968         * include/symtab.h: Likewise.
969         * internal.h: Likewise.
970
971 2009-05-15  Ian Lance Taylor  <iant@google.com>
972
973         * include/cpplib.h (enum cpp_builtin_type): Rename from enum
974         builtin_type.  Change all uses.
975
976 2009-05-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
977
978         PR cpp/36674
979         * directives (do_linemarker): Compensate for the increment in
980         location that occurs when we reach the end of line.
981         * files (_cpp_stack_include): Mention _cpp_find_file in the
982         comment.
983
984 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
985
986         * include/cpplib.h (enum cpp_token_fld_kind): Add
987         CPP_TOKEN_FLD_TOKEN_NO.
988         (struct cpp_macro_arg, struct cpp_identifier): Define.
989         (union cpp_token_u): Use struct cpp_identifier for identifiers.
990         Use struct cpp_macro_arg for macro arguments.  Add token_no for
991         CPP_PASTE token numbers.
992         * directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
993         do_pragma_poison, parse_assertion): Use val.node.node in place of
994         val.node.
995         * expr.c (parse_defined, eval_token): Use val.node.node in place
996         of val.node.
997         * lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
998         cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
999         cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
1000         place of val.arg_no.  Use val.node.node in place of val.node.
1001         * macro.c (replace_args, cpp_get_token, parse_params,
1002         lex_expansion_token, create_iso_definition, cpp_macro_definition):
1003         Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
1004         Use val.node.node in place of val.node.
1005
1006 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
1007
1008         * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte
1009         UTF-8 sequences.
1010
1011 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1012
1013         PR preprocessor/39559
1014         * expr.c (cpp_interpret_integer): Use a pedwarn for decimal
1015         constants larger than intmax_t in C99 mode.
1016
1017 2009-04-21  Taras Glek <tglek@mozilla.com>
1018
1019         * include/cpp-id-data.h: Update GTY annotations to new syntax.
1020         * include/cpplib.h: Likewise.
1021         * include/line-map.h: Likewise.
1022         * include/symtab.h: Likewise.
1023
1024 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1025
1026         PR c++/14875
1027         * lex.c (cpp_type2name): Take a flags parameter. Call
1028         cpp_named_operator2name for named operators and cpp_digraph2name
1029         for digraphs.
1030         (cpp_digraph2name): New.
1031         (cpp_spell_token): Use it.
1032         (cpp_output_token): Likewise.
1033         * include/cpplib.h (cpp_type2name): Update declaration.
1034         * init.c (cpp_named_operator2name): New.
1035         * internal.h (cpp_named_operator2name): Declare.
1036
1037 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1038
1039         PR c++/13358
1040         * init.c (cpp_create_reader): Wlong_long is disabled by default.
1041         * expr.c (cpp_classify_number): Give different messages for C and
1042         C++ front-ends.
1043
1044 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
1045
1046         PR preprocessor/20078
1047         * include/cpp-id-data.h (struct cpp_macro): Add extra_tokens
1048         field.
1049         * include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define.
1050         (struct cpp_token): Change flags to unsigned short.
1051         * lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens.
1052         (_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens.
1053         (cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE
1054         tokens.
1055         * macro.c (macro_real_token_count): New.
1056         (enter_macro_context, replace_args): Use macro_real_token_count.
1057         (create_iso_definition): Record whitespace surrounding and digraph
1058         spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH.
1059         Set extra_tokens and save CPP_PASTE tokens with arg_no set for
1060         multiple consecutive ## tokens.
1061         (_cpp_create_definition): Initialize extra_tokens.
1062         (cpp_macro_definition): Use macro_real_token_count.
1063
1064 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1065
1066         * directives.c (parse_include): Pass true to check_eol.
1067
1068 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1069
1070         PR preprocessor/39646
1071         * include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM.
1072         * line-map.c (linemap_add): Handle LC_RENAME_VERBATIM.
1073         * directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in
1074         place of LC_RENAME.
1075
1076 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1077
1078         PR preprocessor/39647
1079         * directives.c (check_eol): Add parameter expand.
1080         (do_undef, parse_include, do_line, do_linemarker, do_ident,
1081         do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef,
1082         do_else, do_endif, do_assert, do_unassert): All callers changed.
1083         Pass true from do_line, false elsewhere.
1084
1085 2009-04-12  Joseph Myers  <joseph@codesourcery.com>
1086
1087         PR preprocessor/31869
1088         * macro.c (stringify_arg): Handle NULL source token in padding
1089         token where previous padding token did not have source token with
1090         preceding whitespace.
1091
1092 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
1093
1094         * Makefile.in: Change copyright header to refer to version
1095         3 of the GNU General Public License and to point readers at the
1096         COPYING3 file and the FSF's license web page.
1097         * charset.c: Likewise.
1098         * directives-only.c: Likewise.
1099         * directives.c: Likewise.
1100         * errors.c: Likewise.
1101         * expr.c: Likewise.
1102         * files.c: Likewise.
1103         * identifiers.c: Likewise.
1104         * include/cpp-id-data.h: Likewise.
1105         * include/cpplib.h: Likewise.
1106         * include/line-map.h: Likewise.
1107         * include/mkdeps.h: Likewise.
1108         * include/symtab.h: Likewise.
1109         * init.c: Likewise.
1110         * internal.h: Likewise.
1111         * lex.c: Likewise.
1112         * line-map.c: Likewise.
1113         * macro.c: Likewise.
1114         * makeucnid.c: Likewise.
1115         * mkdeps.c: Likewise.
1116         * pch.c: Likewise.
1117         * symtab.c: Likewise.
1118         * system.h: Likewise.
1119         * traditional.c: Likewise.
1120         * ucnid.tab: Likewise.
1121         * ucnid.h: Regenerate.
1122
1123 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
1124
1125         PR c/39027
1126         * include/cpplib.h (CPP_N_DEFAULT): Define.
1127         * expr.c (interpret_float_suffix): Recognize d or D for double,
1128         return new value for default.
1129         (cpp_classify_number): Issue pedwarn for use of d or D in suffix.
1130
1131         PR c/33466
1132         * expr.c (interpret_float_suffix): Reject invalid suffix that uses
1133         letters from decimal float and fixed-point suffixes.
1134
1135 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1136
1137         PR preprocessor/15638
1138         * files.c (_cpp_find_file): Call open_file_failed after diagnosing
1139         invalid PCH.
1140         (open_file_failed): Make error for missing file fatal.
1141         * include/cpplib.h (CPP_DL_FATAL): Define.
1142
1143 2009-03-30  Sergiy Vyshnevetskiy  <serg@vostok.net>
1144
1145         PR preprocessor/31932:
1146         * internal.h: Don't mention HAVE_ICONV_H.
1147         * configure, config.in: Rebuild.
1148         * configure.ac: Don't check for iconv.h.
1149
1150 2009-03-30  Tom Tromey  <tromey@redhat.com>
1151
1152         PR preprocessor/39512:
1153         * line-map.c (linemap_init): Initialize 'reallocator' field.
1154
1155 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
1156
1157         PR target/39558
1158         * macro.c (cpp_get_token): If macro_to_expand returns NULL
1159         and used some tokens, add CPP_PADDING before next token.
1160
1161 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
1162
1163         PR preprocessor/34695
1164         * makedepend.c: Remove.
1165         * Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove.
1166         (all, clean, TAGS_SOURCES, include): Remove makedepend handling.
1167         * directives.c (cpp_errors): Remove.
1168         * errors.c (print_location, _cpp_begin_message, v_message):
1169         Remove.
1170         (cpp_error, cpp_error_with_line): Always use error callback.
1171         (cpp_error, cpp_error_with_line, cpp_errno): Return bool.
1172         * include/cpplib.h (cpp_options): Remove pedantic_errors,
1173         inhibit_warnings, warn_system_headers, inhibit_errors,
1174         warnings_are_errors, client_diagnostic.
1175         (cpp_callbacks): Add extra arguments to error callback; make it
1176         return bool.
1177         (cpp_finish): Return void.
1178         (cpp_destroy): Remove inaccurate comment about return value.
1179         (cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove.
1180         (CPP_DL_NOTE): Define.
1181         * include/line-map.h (linemap_print_containing_files): Remove.
1182         * init.c (cpp_finish): Do not check for or return number of
1183         errors.
1184         * internal.h (cpp_reader): Remove errors field.
1185         * line-map.c (linemap_print_containing_files): Remove.
1186         * macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message
1187         about previous definition.  Only emit it if previous diagnostic
1188         was emitted.
1189
1190 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
1191
1192         * Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not
1193         mkinstalldirs.
1194
1195 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
1196
1197         * include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
1198
1199 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
1200
1201         * lex.c (lex_string): Return a CPP_LESS token for missing '>' in a
1202         header name.
1203         (_cpp_lex_direct): Handle this.
1204
1205 2009-02-15  Richard Guenther  <rguenther@suse.de>
1206
1207         Revert last change.
1208
1209 2009-02-13  Richard Guenther  <rguenther@suse.de>
1210
1211         * configure.ac: Enable LFS.
1212         * configure: Re-generate.
1213         * config.in: Likewise.
1214
1215 2009-01-05  Ben Elliston  <bje@au.ibm.com>
1216
1217         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
1218         (.po.pox): Likewise.
1219         (po/$(PACKAGE).pot): Likewise.
1220
1221 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
1222
1223         PR target/37033
1224         * pch.c (cpp_valid_state): Improve message for poisoned symbols.
1225         Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.
1226
1227 2008-11-29  Joseph Myers  <joseph@codesourcery.com>
1228
1229         * lex.c (cpp_token_len): Use 6 as default length.
1230
1231 2008-10-31  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1232
1233         * expr.c (struct op): Add location.
1234         (_cpp_parse_expr): Propagate locations throught the stack
1235         of expressions.
1236         (reduce): Likewise.
1237         (check_promotion): Use explicit location in errors.
1238
1239 2008-10-05  Matthew Gingell  <gingell@adacore.com>
1240             Arnaud Charlet  <charlet@adacore.com>
1241
1242         * include/cpplib.h (cpp_comments, cpp_comment_table): New structs.
1243         (cpp_get_comments): New function.
1244         * internal.h (struct cpp_reader): Add comments field.
1245         * init.c (cpp_destroy): Free comments.
1246         * lex.c (store_comment, cpp_get_comments): New functions.
1247         (comments): New struct.
1248         (save_comment): Store comments in comments struct.
1249
1250 2008-09-18  Simon Baldwin  <simonb@google.com>
1251
1252         * include/cpplib.h (struct cpp_options): Add new boolean flag
1253         warn_builtin_macro_redefined.
1254         * init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
1255         * (struct builtin_operator): Split out from previous struct builtin,
1256         enhance extra const correctness.
1257         * (struct builtin_macro): Split out from previous struct builtin, add
1258         new always_warn_if_redefined flag, enhance const correctness.
1259         * (mark_named_operators): Use struct builtin_operator.
1260         * (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
1261         to builtins selectively.
1262         * macro.c (warn_of_redefinition): Return false if a builtin macro
1263         is not flagged with NODE_WARN.
1264
1265 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
1266
1267         PR preprocessor/36649
1268         * files.c (struct report_missing_guard_data): New type.
1269         (report_missing_guard): Put paths into an array instead of printing
1270         them right away.  Return 1 rather than 0.
1271         (report_missing_guard_cmp): New function.
1272         (_cpp_report_missing_guards): Sort and print paths gathered by
1273         report_missing_guard callback.
1274
1275 2008-07-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1276
1277         PR 28079
1278         * directives.c (strtolinenum): Handle overflow.
1279         (do_line): Give a warning if line number overflowed.
1280         (do_linemarker): Update call to strtolinenum.
1281
1282 2008-07-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1283
1284         * include/line-map.h (linenum_type): New typedef.
1285         (struct line_map): Use it.
1286         (SOURCE_LINE): Second arguments is a LOCATION not a LINE.
1287         (SOURCE_COLUMN): Likewise.
1288         * macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store
1289         source_location values in a variable of type linenum_type.
1290         * directives.c (struct if_stack): Use linenum_type.
1291         (strtoul_for_line): Rename as strtolinenum.
1292         (do_line): Use linenum_type.
1293         (do_linemarker): Use linenum_type and strtolinenum.
1294         (_cpp_do_file_change): Use linenum_t.
1295         * line-map.c (linemap_add): Likewise.
1296         (linemap_line_start): Likewise.
1297         * traditional.c (struct fun_macro): 'line' is a source_location.
1298         * errors.c (print_location): Use linenum_type.
1299         * directives-only.c (_cpp_preprocess_dir_only): Likewise.
1300         * internal.h (CPP_INCREMENT_LINE): Likewise.
1301         * lex.c (_cpp_skip_block_comment): Use source_location.
1302         
1303 2008-07-14  Ben Elliston  <bje@au.ibm.com>
1304
1305         * include/cpplib.h (NODE_CONDITIONAL): New.
1306         (struct cpp_callbacks): New macro_to_expand field.
1307         (struct cpp_hashnode): Adjust size of flags and type fields.
1308         (cpp_peek_token): Prototype.
1309         * lex.c (cpp_peek_token): New function.
1310         (_cpp_temp_token): Protect pre-existing lookaheads.
1311         * macro.c (cpp_get_token): Expand any conditional macros.
1312         (_cpp_backup_tokens_direct): New.
1313         (_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
1314         (warn_of_redefinition): Silently allow redefined conditional
1315         macros.
1316         (_cpp_create_definition): Remove the conditional flag when a user
1317         defines one of the conditional macros.
1318         * internal.h (_cpp_backup_tokens_direct): New prototype.
1319
1320 2008-06-13  Andrew Haley  <aph@redhat.com>
1321
1322         PR preprocessor/33305
1323         * macro.c (replace_args): Print a warning for empty macro
1324         arguments in C89 and C++.
1325
1326 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1327
1328         * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.
1329         * configure: Regenerate.
1330
1331 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1332
1333         * Makefile.in (datarootdir): New variable.
1334
1335 2008-06-12  H.J. Lu  <hongjiu.lu@intel.com>
1336
1337         PR preprocessor/36479
1338         * charset.c (cpp_interpret_string_notranslate): Also set
1339         narrow_cset_desc.width.
1340
1341 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1342
1343         * configure.ac (parisc*64*-*-*): Remove.
1344         * configure: Regenerate.
1345
1346 2008-05-30  Tom Tromey  <tromey@redhat.com>
1347
1348         PR preprocessor/36320:
1349         * internal.h (_cpp_parse_expr): Update.
1350         * expr.c (_cpp_parse_expr): Add 'is_if' argument.  Update error
1351         messages.
1352         * directives.c (do_if): Update.
1353         (do_elif): Require expression if processing group.
1354
1355 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1356
1357         * include/cpplib.h (struct cpp_dir): Add new field, canonical_name.
1358
1359 2008-05-21  Tom Tromey  <tromey@redhat.com>
1360
1361         PR preprocessor/27777:
1362         * lex.c (cpp_output_line_to_string): New function.
1363         * internal.h (_cpp_begin_message): Don't declare.
1364         * errors.c (_cpp_begin_message): Now static.
1365         * include/cpplib.h (cpp_output_line_to_string): Declare.
1366         * directives.c (do_diagnostic): Rewrote.  Use
1367         cpp_output_line_to_string.  Don't use _cpp_begin_message.
1368
1369 2008-05-21  Tom Tromey  <tromey@redhat.com>
1370
1371         * include/symtab.h (HT_ALLOCED): Remove.
1372         (ht_purge): Declare.
1373         * symtab.c (DELETED): New define.
1374         (ht_lookup): Update comment.
1375         (ht_lookup_with_hash): Handle deleted entries.  Remove HT_ALLOCED
1376         code.  Use subobject allocator for strings, if it exists.
1377         (ht_expand): Handle deleted entries.
1378         (ht_forall): Likewise.
1379         (ht_purge): New function.
1380         (ht_dump_statistics): Print deletion statistics.
1381
1382 2008-05-13  Tom Tromey  <tromey@redhat.com>
1383
1384         PR preprocessor/22168:
1385         * include/cpplib.h (struct cpp_options) <objc>: Update
1386         documentation.
1387         * expr.c (eval_token): Warn for use of assertions.
1388         * directives.c (directive_diagnostics): Warn about extensions.
1389         (DEPRECATED): New define.
1390         (DIRECTIVE_TABLE): Use it.
1391
1392 2008-05-06  Tom Tromey  <tromey@redhat.com>
1393
1394         PR preprocessor/35313, PR preprocessor/36088:
1395         * expr.c (optab) <QUERY, COMMA>: Set precedence to 4.
1396         (reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON.
1397
1398 2008-05-04  David S. Miller  <davem@davemloft.net>
1399
1400         * configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
1401         * configure: Regenerate.
1402
1403 2008-04-22  Daniel Franke  <franke.daniel@gmail.com>
1404
1405         * include/cpplib.h (cpp_define_formatted): New.
1406         * directives.c (cpp_define_formatted): New.
1407
1408 2008-04-21  Tom Tromey  <tromey@redhat.com>
1409
1410         PR libcpp/33415:
1411         * charset.c (_cpp_convert_input): Add buffer_start argument.
1412         Ignore UTF-8 BOM if seen.
1413         * internal.h (_cpp_convert_input): Add argument.
1414         * files.c (struct _cpp_file) <buffer_start>: New field.
1415         (destroy_cpp_file): Free buffer_start, not buffer.
1416         (_cpp_pop_file_buffer): Likewise.
1417         (read_file_guts): Update.
1418
1419 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
1420
1421         * include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal.
1422         * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
1423         (struct cpp_options): Added uliterals.
1424         (cpp_interpret_string): Update prototype.
1425         (cpp_interpret_string_notranslate): Idem.
1426         * charset.c (init_iconv_desc): New width member in cset_converter.
1427         (cpp_init_iconv): Add support for char{16,32}_cset_desc.
1428         (convert_ucn): Idem.
1429         (emit_numeric_escape): Idem.
1430         (convert_hex): Idem.
1431         (convert_oct): Idem.
1432         (convert_escape): Idem.
1433         (converter_for_type): New function.
1434         (cpp_interpret_string): Use converter_for_type, support u and U prefix.
1435         (cpp_interpret_string_notranslate): Match changed prototype.
1436         (wide_str_to_charconst): Use converter_for_type.
1437         (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
1438         * directives.c (linemarker_dir): Macro U changed to UC.
1439         (parse_include): Idem.
1440         (register_pragma_1): Idem.
1441         (restore_registered_pragmas): Idem.
1442         (get__Pragma_string): Support CPP_STRING{16,32}.
1443         * expr.c (eval_token): Support CPP_CHAR{16,32}.
1444         * init.c (struct lang_flags): Added uliterals.
1445         (lang_defaults): Idem.
1446         * internal.h (struct cset_converter) <width>: New field.
1447         (struct cpp_reader) <char16_cset_desc>: Idem.
1448         (struct cpp_reader) <char32_cset_desc>: Idem.
1449         * lex.c (digraph_spellings): Macro U changed to UC.
1450         (OP, TK): Idem.
1451         (lex_string): Add support for u'...', U'...', u"..." and U"...".
1452         (_cpp_lex_direct): Idem.
1453         * macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
1454         (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
1455
1456 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
1457
1458         PR bootstrap/35457
1459         * aclocal.m4: Regenerate.
1460         * configure: Regenerate.
1461
1462 2008-04-17  Tom Tromey  <tromey@redhat.com>
1463
1464         PR libcpp/34866:
1465         * errors.c (cpp_error): Don't reference a token before the start
1466         of the current run.
1467
1468 2008-04-16  Tom Tromey  <tromey@redhat.com>
1469
1470         * Makefile.in (TAGS_SOURCES): New variable.
1471         (TAGS): New target.
1472
1473 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1474
1475         * configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-*
1476         and shbe-*-*.
1477         * configure: Rebuilt.
1478
1479 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
1480
1481         * include/cpplib.h (struct cpp_callbacks): Add used_define,
1482         used_undef and before_define.
1483         (NODE_USED): Define.
1484         * directives.c (do_define, do_undef, undefine_macros, do_ifdef,
1485         do_ifndef, cpp_pop_definition): Handle new flag and use new
1486         callbacks.
1487         * expr.c (parse_defined): Handle new flag and use new callbacks.
1488         * macro.c (enter_macro_context, _cpp_free_definition): Handle new
1489         flag and use new callbacks.
1490
1491 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
1492
1493         PR pch/13675
1494         * files.c (struct _cpp_file): Remove pch field.
1495         (pch_open_file): Don't set file->pch, just file->pchname.
1496         (should_stack_file): After pfile->cb.read_pch call
1497         free pchname and clear pchname, don't close file->fd.
1498         Test file->pchname instead of file->pch.  Don't close fd after cb.
1499         (_cpp_stack_include): Test file->pchname instead of file->pch.
1500
1501 2008-03-28  Tom Tromey  <tromey@redhat.com>
1502
1503         * Makefile.in (POSTCOMPILE): New variable.
1504         (.c.o): Use it.
1505
1506 2008-03-13  Tom Tromey  <tromey@redhat.com>
1507
1508         PR libcpp/35322:
1509         * directives.c (destringize_and_run): Set pfile->directive.
1510
1511 2008-03-06  Markus Milleder  <markus.milleder@generali.at>
1512
1513         PR preprocessor/35458
1514         * mkdeps.c (munge): Quote '#' with a '\'.
1515
1516 2008-02-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1517
1518         PR preprocessor/35379
1519         * mkdeps.c (deps_write): Ensure the first target always appears
1520         in the first column, without leading backslash newline.  Avoid
1521         some more extra whitespace.
1522
1523 2008-02-25  Thiemo Seufer <ths@mips.com>
1524
1525         * Makefile.in ($(srcdir)/config.in): Depend on configure.ac.
1526
1527 2008-02-19  Tom Tromey  <tromey@redhat.com>
1528
1529         * traditional.c (lex_identifier): Use CPP_HASHNODE.
1530         * lex.c (lex_identifier): Use CPP_HASHNODE.
1531         * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in
1532         do-while.
1533         * identifiers.c (alloc_node): Change return type.
1534         (_cpp_init_hashtable): Don't cast 'alloc_node'.
1535         (proxy_assertion_broken): New declaration.
1536         (cpp_forall_identifiers): Move comment.
1537         * line-map.c (linemap_add): Comment fix.
1538         (linemap_line_start): Indentation fix.
1539
1540 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
1541
1542         PR preprocessor/34692
1543         * macro.c (collect_args): Add pragma_buff argument.  Push
1544         CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather
1545         than into arguments.  Reset prevent_expansion and parsing_args
1546         state at CPP_PRAGMA_EOL/CPP_EOF.
1547         (funlike_invocation_p): Add pragma_buff argument, pass it through
1548         to collect_args.
1549         (enter_macro_context): Add result argument.  Adjust
1550         funlike_invocation_p caller.  Emit all deferred pragma tokens
1551         gathered during collect_args before the expansion, add a padding
1552         token.  Return 2 instead of 1 if any pragma tokens were prepended.
1553         (cpp_get_token): If enter_macro_context returns 2, don't return
1554         a padding token, instead cycle to grab CPP_PRAGMA token.
1555         * directives.c (_cpp_handle_directive): If was_parsing_args
1556         in deferred pragma, leave parsing_args and prevent_expansion as is.
1557
1558 2008-01-22  Tom Tromey  <tromey@redhat.com>
1559
1560         PR c++/34859
1561         * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and
1562         __STDC_CONSTANT_MACROS.
1563
1564 2008-01-07  Fred Fish  <fnf@specifix.com>
1565
1566         PR preprocessor/30363
1567         * traditional.c (replace_args_and_push): Add local variable
1568         cxtquote, calculate the replacement text size assuming a 
1569         worst case of every input character quoted with backslash,
1570         and properly handle output quoting of quote characters in
1571         actual arguments used in function-like macros.
1572
1573 2008-01-03  Tom Tromey  <tromey@redhat.com>
1574
1575         PR preprocessor/34602
1576         * directives.c (do_line): Don't try to spell EOF token.
1577         (do_linemarker): Add comment.
1578
1579 2007-12-11  DJ Delorie  <dj@redhat.com>
1580
1581         * charset.c (convert_using_iconv): Close out any shift states,
1582         returning to the initial state.
1583
1584 2007-12-06  Tom Tromey  <tromey@redhat.com>
1585
1586         PR c/29172
1587         * internal.h (struct cpp_reader) <file_hash_entries>: Changed
1588         type.
1589         <file_hash_entries_allocated, file_hash_entries_used>: Removed.
1590         * files.c (FILE_HASH_POOL_SIZE): New macro.
1591         (struct file_hash_entry_pool): New.
1592         (destroy_all_cpp_files): New function.
1593         (allocate_file_hash_entries): Allocate a file_hash_entry_pool.
1594         (new_file_hash_entry): Update.
1595         (free_file_hash_entries): New function.
1596         (_cpp_cleanup_files): Call free_file_hash_entries and
1597         destroy_all_cpp_files.
1598         (cpp_clear_file_cache): New function.
1599         * include/cpplib.h (cpp_clear_file_cache): Declare.
1600
1601 2007-12-03  Tom Tromey  <tromey@redhat.com>
1602
1603         PR preprocessor/34288
1604         * configure.ac, config.in: Rebuilt.
1605         * configure.ac: Check for ssize_t.
1606
1607 2007-11-30  Tom Tromey  <tromey@redhat.com>
1608
1609         PR preprocessor/32868
1610         * macro.c (_cpp_create_definition): Special case
1611         __STDC_FORMAT_MACROS.
1612
1613 2007-11-16  Michael Matz  <matz@suse.de>
1614
1615         * files.c (search_path_head): Fix check for absolute paths.
1616
1617 2007-11-11  Tom Tromey  <tromey@redhat.com>
1618
1619         PR c++/17557
1620         * include/cpplib.h (cpp_included_before): Declare.
1621         * files.c (struct file_hash_entry) <location>: New field.
1622         (_cpp_find_file): Initialize new field.
1623         (make_cpp_dir): Likewise.
1624         (cpp_included_before): New function.
1625
1626 2007-11-01  Tom Tromey  <tromey@redhat.com>
1627
1628         PR preprocessor/30805
1629         * macro.c (paste_tokens): Handle padding token.
1630         (paste_tokens): Don't abort unless padding has PASTE_LEFT flag.
1631
1632 2007-10-31  Tom Tromey  <tromey@redhat.com>
1633
1634         PR preprocessor/30786
1635         * macro.c (builtin_macro): Return result of _cpp_do__Pragma.
1636         * directives.c (_cpp_do__Pragma): Return error status.
1637         * internal.h (_cpp_do__Pragma): Update.
1638         * directives.c (get__Pragma_string): Back up if EOF seen.
1639
1640 2007-09-06  Tom Tromey  <tromey@redhat.com>
1641
1642         * internal.h (struct cpp_reader) <invocation_location>: New
1643         field.
1644         (struct cpp_reader) <set_invocation_location>: Likewise.
1645         * init.c (cpp_set_line_map): New function.
1646         * line-map.c (linemap_add): Use linemap's allocator.
1647         * include/line-map.h (GTY): Define.
1648         (line_map_realloc): New typedef.
1649         (struct line_map): Mark with GTY.
1650         (struct line_maps): Likewise.
1651         (struct line_maps) <maps>: Likewise.
1652         (struct line_maps) <reallocator>: New field.
1653         * include/symtab.h (GTY): Conditionally define.
1654         * include/cpplib.h (cpp_set_line_map): Declare.
1655         (cpp_get_token_with_location): Declare.
1656         * macro.c (cpp_get_token): Set invocation_location on the reader.
1657         (cpp_get_token_with_location): New function.
1658
1659 2007-08-30  Chao-ying Fu  <fu@mips.com>
1660
1661         * expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur,
1662         ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk.
1663         (cpp_classify_number): Support decimal fixed-point constants without
1664         exponents.
1665         Warn about fixed-point constants when -pedantic.
1666         * include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change
1667         comments to support fixed-point values.
1668         (CPP_N_FRACT, CPP_N_ACCUM): Define.
1669
1670 2007-08-18  Tom Tromey  <tromey@redhat.com>
1671
1672         PR preprocessor/32974
1673         * directives.c (parse_include): Don't check for EOL when
1674         processing #pragma dependency.
1675
1676 2007-07-30  Ollie Wild  <aaw@google.com>
1677
1678         * directives-only.c: New file.
1679         * internal.h (struct _cpp_dir_only_callbacks): New.
1680         (_cpp_preprocess_dir_only): New function.
1681         * directives.c (_cpp_handle_directive): Check directives_only before
1682         disabling execution of indented directives.
1683         * files.c (_cpp_stack_file): Add directives_only check.
1684         * include/cpplib.h (struct cpp_options): Add directives_only.
1685         (cpp_init_special_builtins): New function.
1686         * init.c (cpp_init_special_builtins): New function.
1687         (cpp_init_builtins): Move builtin_array initialization to
1688         cpp_init_special_builtins.
1689         (post_options): Check directives_only before setting
1690         pfile->state.prevent_expansion = 1.
1691         * macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
1692         is expanded inside a directive while -fdirectives-only is enabled.
1693         * Makefile.in (libcpp_a_OBJS): Add directives-only.o.
1694         (libcpp_a_SOURCES): Add directives-only.c.
1695
1696 2007-07-04  Uros Bizjak  <ubizjak@gmail.com>
1697
1698         * traditional.c (_cpp_scan_out_logical_line): Initialize
1699         fmacro.args, fmacro.node, fmacro.offset, fmacro.line and
1700         fmacro.args to prevent 'may be used uninitialized' warning.
1701
1702 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
1703
1704         * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q):
1705         Add new constants.
1706         * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q'
1707         suffixes.  Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q
1708         for 'q' or 'Q' suffixes.
1709
1710 2007-06-17  Danny Smith  <dannysmith@users.sourceforge.net
1711
1712         * files.c (open_file): Correct typo.
1713
1714 2007-06-16  Vladimir Prus  <vladimir@codesourcery.com>
1715
1716         * files.c (open_file): Prevent the call
1717         for stat from overwriting errno.
1718
1719 2007-06-09  Vladimir Prus  <vladimir@codesourcery.com>
1720
1721         * files.c (open_file): Account for the
1722         fact that on windows, opening a directory gives
1723         EACCES.
1724
1725 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
1726
1727         PR preprocessor/23479
1728         * expr.c (cpp_classify_number): Implement 0b-prefixed binary
1729         integer constants.
1730         (append_digit): Likewise.
1731         * include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed
1732         binary integer constants.
1733
1734 2007-05-31  Dave Korn  <dave.korn@artimi.com>
1735
1736         PR preprocessor/14331
1737         * lex.c (_cpp_get_fresh_line):  Don't warn if no newline at EOF.
1738
1739 2007-05-24  Ollie Wild  <aaw@google.com>
1740
1741         * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER.
1742         * pch.c (cpp_write_pch_deps): Save __COUNTER__ state.
1743         (cpp_write_pch_state): Save __COUNTER__ state.
1744         (cpp_valid_state): Check valid __COUNTER__ state.
1745         (cpp_read_state): Read new __COUNTER__ state.
1746         * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator.
1747         * init.c (builtin_array): Add __COUNTER__/BT_COUNTER.
1748         * internal.h (struct cpp_reader): Add counter member.
1749
1750 2007-05-23  Simon Martin  <simartin@users.sourceforge.net>
1751
1752         PR preprocessor/20077
1753         * macro.c (create_iso_definition): Fixed the method to determine
1754         whether the token-pasting operator appears at the beginning or the end
1755         of a macro.
1756
1757 2007-05-21  Ian Lance Taylor  <iant@google.com>
1758
1759         * internal.h (struct cpp_reader): Add new fields:
1760         nonexistent_file_hash and nonexistent_file_ob.
1761         * files.c: Include "obstack.h".
1762         (find_file_in_dir): Before trying to open the file, look up the
1763         path name in the hash table of nonexistent files.  After failing
1764         to open the file, add the path name to the hash table.
1765         (_cpp_find_file): Cache the results of looking up the file name
1766         starting with the quote and bracket chain heads, if we can.
1767         (nonexistent_file_hash_eq): New static function.
1768         (_cpp_init_files): Initialize pfile->nonexistent_file_hash and
1769         pfile->nonexistent_file_ob.
1770         (_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
1771         pfile->nonexistent_file_ob.
1772
1773 2007-05-14  Janis Johnson  <janis187@us.ibm.com>
1774
1775         * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic.
1776
1777         PR c/31924
1778         * expr.c (interpret_float_suffix): Check for invalid suffix.
1779
1780 2007-05-02  Eric Christopher  <echristo@apple.com>
1781
1782         * expr.c (num_div_op): Don't overflow if the result is
1783         zero.
1784
1785 2007-05-02  Tom Tromey  <tromey@redhat.com>
1786
1787         PR preprocessor/28709
1788         * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
1789
1790 2007-03-30  Michael Meissner  <michael.meissner@amd.com>
1791
1792         * directives.c (lex_macro_node_from_str): Fix alloca call to be
1793         type correct.
1794
1795 2007-03-30  Richard Henderson  <rth@redhat.com>
1796
1797         * directives.c (lex_macro_node_from_str): New.
1798         (cpp_push_definition, cpp_pop_definition): New.
1799         * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
1800
1801 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1802
1803         * Makefile.in: Add dummy install-pdf target.
1804
1805 2007-01-30  Tom Tromey  <tromey@redhat.com>
1806
1807         PR preprocessor/30468
1808         * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
1809         './'.
1810
1811 2007-01-30  Tom Tromey  <tromey@redhat.com>
1812
1813         PR preprocessor/29966
1814         * macro.c (lex_expansion_token): Save and restore cpp_reader's
1815         cur_token.
1816         (_cpp_create_definition): Don't restore cur_token here.
1817         * lex.c (_cpp_lex_token): Added assertion.
1818
1819 2007-01-27  Tom Tromey  <tromey@redhat.com>
1820
1821         * configure: Rebuilt.
1822
1823 2007-01-12  Tom Tromey  <tromey@redhat.com>
1824
1825         PR preprocessor/28227
1826         * directives.c (lex_macro_node): Added 'is_def_or_undef'
1827         argument.
1828         (do_define): Update.
1829         (do_undef): Update.
1830         (do_ifdef): Update.
1831         (do_ifndef): Update.
1832
1833 2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
1834
1835         * configure: Regenerate.
1836
1837 2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
1838
1839         * configure: Regenerate.
1840
1841 2007-01-04  Tom Tromey  <tromey@redhat.com>
1842
1843         PR preprocessor/28165
1844         * internal.h (cpp_in_primary_file): New function.
1845         * directives.c (do_include_next): Use cpp_in_primary_file.
1846         (do_pragma_once): Likewise.
1847         (do_pragma_system_header): Likewise.
1848
1849 2006-12-29  Ian Lance Taylor  <iant@google.com>
1850
1851         * lex.c (_cpp_clean_line): Add uses of __builtin_expect.  Don't
1852         look backward at the end of the line unless we saw a backslash.
1853
1854 2006-12-29  Jakub Jelinek  <jakub@redhat.com>
1855
1856         PR preprocessor/29612
1857         * directives.c (do_linemarker): Set pfile->buffer->sysp always, not
1858         only when new_sysp is non-zero.
1859
1860 2006-12-28  Tom Tromey  <tromey@redhat.com>
1861
1862         PR preprocessor/30001
1863         * charset.c (_cpp_convert_input): Check that to.len is greater
1864         than zero.
1865
1866 2006-11-20  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1867
1868         * configure.ac (need_64bit_hwint): Need 64bit hwint for SPU.
1869         * configure: Rebuilt.
1870
1871 2006-11-01      Douglas Gregor <doug.gregor@gmail.com>
1872
1873         * include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
1874         for experimental C++0x mode.
1875         * init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
1876         adopted the preprocessor changes introduced in C99.
1877
1878 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
1879
1880         * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
1881         depending on --enable-targets=all.
1882         * configure: Regenerate.
1883
1884 2006-10-12  Jakub Jelinek  <jakub@redhat.com>
1885
1886         PR preprocessor/28709
1887         * macro.c (paste_tokens): Do error reporting here, use BUF with the
1888         spelled LHS token as opposed to spelling it again.
1889         (paste_all_tokens): Don't report errors here, just break on failure.
1890
1891 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
1892
1893         * Makefile.in: Added empty "pdf" target.
1894
1895 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
1896
1897         * configure.ac: Make need_64_bit_hwint case for x86-darwin
1898         match exactly the glob in gcc/config.gcc.
1899         * configure: Regenerate.
1900
1901 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
1902
1903         PR c/28768
1904         PR preprocessor/14634
1905         * lex.c (lex_string): Pedwarn for unterminated literals.
1906
1907 2006-09-08  Eric Christopher  <echristo@apple.com>
1908
1909         * configure.ac: Add 64-bit HWI support for i?86-darwin.
1910
1911 2006-08-14  Steve Ellcey  <sje@cup.hp.com>
1912
1913         PR c++/28288
1914         PR c++/14556
1915         * include/cpplib.h: Remove <?, >?, <?=, and >?= tokens.
1916         (CPP_LAST_EQ): Change.
1917         (CPP_LAST_PUNCTUATOR): Change.
1918         * expr.c (cpp_operator): Remove MIN and MAX.
1919         (reduce): Remove CPP_MIN and CPP_MAX.
1920         (num_binary_op): Ditto.
1921         * lex.c (_cpp_lex_direct): Ditto.
1922         (cpp_avoid_paste): Remove ? as legal symbol after > or <.
1923
1924 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
1925
1926         PR preprocessor/27746
1927         * directives.c (do_pragma): Handle pragma with valid namespace
1928         and invalid name coming from macro expansion.
1929         * directives.c (destringize_and_run): Initialize next field in
1930         context.
1931
1932         PR c/27747
1933         PR c++/27748
1934         * directives.c (destringize_and_run): Set NO_EXPAND on the
1935         tokens.
1936
1937         * macro.c (_cpp_backup_tokens): Fix comment typo.
1938
1939 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
1940
1941         * Makefile.in (CATALOGS): Add po/ prefix.
1942         * configure: Regenerated.
1943
1944 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
1945
1946         * Makefile.in: Add install-html target. Add install-html to .PHONY
1947
1948 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
1949
1950         * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
1951         * files.c (_cpp_get_file_stat): New function.
1952         * include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
1953         * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
1954         * internal.h (_cpp_get_file_stat): Prototype.
1955         (struct cpp_buffer): Add timestamp.
1956
1957 2006-01-23  Jakub Jelinek  <jakub@redhat.com>
1958
1959         PR preprocessor/25717
1960         * init.c (cpp_init_builtins): If __STDC__ will not change value
1961         between system headers and other sources, define it as a normal
1962         macro rather than a builtin.
1963         * macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
1964         cpp_in_system_header condition.
1965
1966 2006-01-05  Paolo Bonzini  <bonzini@gnu.org>
1967
1968         * Makefile.in: Use -MMD instead of -MD.
1969
1970 2006-01-04  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
1971             Richard Henderson  <rth@redhat.com>
1972
1973         Merge from gomp branch:
1974         * directives.c (struct pragma_entry): Add is_deferred.  Add ident
1975         entry to value union.
1976         (end_directive): Don't eat the line if in_deferred_pragma.
1977         (run_directive): Remove pragma hacks.
1978         (insert_pragma_entry): Remove.
1979         (new_pragma_entry): New.
1980         (register_pragma_1): Split out of register_pragma.  Only handle
1981         the lookup tree and return the new entry.
1982         (cpp_register_pragma): Fill in the pragma entry here.
1983         (cpp_register_deferred_pragma): New.
1984         (register_pragma_internal): New.
1985         (_cpp_init_internal_pragmas): Use register_pragma_internal.
1986         (do_pragma): Allow pragma expansion after namespace.  For deferred
1987         pragmas, don't slurp the line into a string.
1988         (destringize_and_run): Save tokens for deferred pragmas.
1989         (cpp_handle_deferred_pragma): Remove.
1990         * macro.c (builtin_macro): Remove pragma token hack.
1991         (_cpp_push_token_context): Rename from push_token_context and export.
1992         * internal.h (struct lexer_state): Add pragma_allow_expansion.
1993         (_cpp_push_token_context): Declare.
1994         * lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
1995         a token.  Update the line number correctly if so.
1996         (_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
1997         (cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
1998         * include/cpplib.h (PRAGMA_EOL): New.
1999         (CPP_TOKEN_FLD_PRAGMA): New.
2000         (struct cpp_token): Add val.pragma.
2001         (struct cpp_options): Remove defer_pragmas.
2002         (cpp_handle_deferred_pragma): Remove.
2003         (cpp_register_deferred_pragma): Declare.
2004
2005 2006-01-01  Jakub Jelinek  <jakub@redhat.com>
2006
2007         PR c++/25294
2008         * directives.c (do_pragma): If pragma line ends with multi-line
2009         block comment, end the saved deferred pragma string before that
2010         comment.  Handle embedded '\0' chars on the pragma line.
2011
2012 2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2013
2014         PR c++/23333
2015         * include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
2016
2017 2005-12-07  Jon Grimm  <jgrimm2@us.ibm.com>
2018             Ben Elliston  <bje@au.ibm.com>
2019
2020         * include/cpplib.h (CPP_N_DFLOAT): New.
2021         * expr.c (interpret_float_suffix): Identify df, dd, and dl
2022         suffixes as decimal floating point constants.
2023         (cpp_classify_number): Disallow hexadecimal DFP constants.
2024
2025 2005-11-14  Gerald Pfeifer  <gerald@pfeifer.com>
2026             Ian Lance Taylor  <ian@airs.com>
2027
2028         * include/cpplib.h (struct cpp_callbacks): Annotate error with
2029         ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
2030
2031 2005-11-09  Per Bothner  <per@bothner.com>
2032             Uros Bizjak  <uros@kss-loka.si>
2033
2034         PR c/24101
2035         * init.c (read_original_filename): Temporarily set
2036         state.in_directive before calling _cpp_lex_direct for
2037         CPP_HASH tokens.
2038
2039 2005-11-03  James E Wilson  <wilson@specifix.com>
2040
2041         PR preprocessor/24202
2042         * files.c (_cpp_pop_file_buffer): Set buffer_valid to false.
2043
2044 2005-11-04  Joseph S. Myers  <joseph@codesourcery.com>
2045
2046         * include/cpplib.h (struct cpp_callbacks): Make error take
2047         va_list* parameter.
2048         * errors.c (cpp_error): Update call to callback.
2049
2050 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
2051
2052         PR preprocessor/22042
2053         * macro.c (_cpp_builtin_macro_text): Lower the needed max
2054         buffer size.
2055         (cpp_quote_string): Don't octalify non printable
2056         charactors.
2057
2058 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
2059
2060         PR c++/17964
2061         * include/cpplib.h (struct cpp_options): Add client_diagnostic.
2062         (struct cpp_callbacks): Add error.
2063         * errors.c (cpp_error): If client_diagnostic, use error callback.
2064         * charset.c (convert_escape): Don't use %03o in diagnostic.
2065
2066 2005-10-21  James E Wilson  <wilson@specifix.com>
2067
2068         PR preprocessor/15220
2069         * files.c (_cpp_find_file): New parameter angle_brackets.  Fix all
2070         callers.  Pass to open_file_failed.
2071         (open_file_failed): New parameter angle_brackets.  Fix all callers.
2072         Use in print_dep assignment.
2073         * init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
2074         * internal.h (_cpp_find_file): Add new parm to declaration.
2075
2076 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
2077
2078         * configure.ac: Require 64-bit int for arm*-*-*eabi*.
2079         * configure: Regenerate.
2080
2081 2005-10-04  Ian Lance Taylor  <ian@airs.com>
2082
2083         PR preprocessor/13726
2084         * directives.c (check_eol_return_comments): New static function.
2085         (parse_include): Add buf parameter.  Change all callers.
2086         (do_include_common): If not discard comments, turn on
2087         save_comments.  Pass collected comments to include callback.
2088         * include/cpplib.h (struct cpp_callbacks): Add new parameter to
2089         include callback: cpp_token list.
2090
2091 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
2092
2093         * include/cpplib.h (struct cpp_options): Add extended_identifiers.
2094         * init.c (struct lang_flags, lang_defaults): Add
2095         extended_identifiers.
2096         (cpp_set_lang): Use it.
2097         * lex.c (forms_identifier_p): Check extended_identifiers.
2098
2099 2005-08-30  Jakub Jelinek  <jakub@redhat.com>
2100
2101         PR preprocessor/20348
2102         PR preprocessor/20356
2103         * files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and
2104         2004-06-05 changes.
2105
2106 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2107
2108         * configure.ac (ACX_PROG_CC_WARNING_OPTS): add
2109         -Wmissing-format-attribute.
2110
2111         * configure: Regenerate.
2112
2113 2005-06-29  Kelley Cook  <kcook@gcc.gnu.org>
2114
2115         * all files: Update FSF address in copyright headers.
2116         * makeucnid.c (write_copyright): Update outputted FSF address.
2117
2118 2005-06-13  Zack Weinberg  <zack@codesourcery.com>
2119
2120         * configure.ac: Invoke ZW_CREATE_DEPDIR and
2121         ZW_PROG_COMPILER_DEPENDENCIES.
2122         * aclocal.m4, configure: Regenerate.
2123         * Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE):
2124         New variables.
2125         (distclean): Clean up $(DEPDIR) and its contents.
2126         (.c.o): Use $(COMPILE).
2127         Include $(DEPDIR)/*.Po for most object->header dependencies.
2128
2129 2005-05-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2130
2131         * configure.ac: Check declarations for asprintf and vasprintf.
2132         * config.in: Regenerate.
2133         * configure: Likewise.
2134
2135         * charset.c (conversion_loop): Use XRESIZEVEC.
2136         (convert_no_conversion): Likewise.
2137         (convert_using_iconv): Likewise.
2138         (init_iconv_desc): Cast return value of alloca.
2139         (cpp_host_to_exec_charset): Use XNEWVEC.
2140         (emit_numeric_escape): Use XRESIZEVEC.
2141         (cpp_interpret_string): Use XNEWVEC.
2142         (cpp_interpret_string): Use XRESIZEVEC.
2143         (_cpp_interpret_identifier): Cast return value of alloca.
2144         (_cpp_convert_input): Use XNEWVEC and XRESIZEVEC.
2145         * directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC.
2146         (parse_include): Use XNEWVEC.
2147         (insert_pragma_entry): Rename local variable "new" to
2148         "new_entry".
2149         (save_registered_pragmas): Cast return value of xmemdup.
2150         (destringize_and_run): Same for alloca.
2151         (parse_assertion): Likewise.
2152         (do_assert): Cast allocated storage to proper type.
2153         (cpp_define): Likewise.
2154         (_cpp_define_builtin): Likewise.
2155         (cpp_undef): Likewise.
2156         (handle_assertion): Likewise.
2157         (cpp_push_buffer): Rename local variable "new" to "new_buffer".
2158         * expr.c (CPP_UPLUS): Cast value to type cpp_ttype.
2159         (CPP_UMINUS): Likewise.
2160         (struct cpp_operator): Rename from struct operator.
2161         (_cpp_expand_op_stack): Use XRESIZEVEC.
2162         * files.c (pch_open_file): Use XNEWVEC.
2163         (pch_open_file): Use XRESIZEVEC.
2164         (read_file_guts): Use XNEWVEC and XRESIZEVEC.
2165         (dir_name_of_file): Use XNEWVEC.
2166         (make_cpp_file): Use XCNEW.
2167         (make_cpp_dir): Likewise.
2168         (allocate_file_hash_entries): USE XNEWVEC.
2169         (cpp_included): Cast return value of htab_find_with_hash.
2170         (append_file_to_dir): Use XNEWVEC.
2171         (read_filename_string): Likewise. Use XRESIZEVEC too.
2172         (read_name_map): Cast return value of alloca.  Use XRESIZEVEC.
2173         (remap_filename): Use XNEWVEC.
2174         (struct pchf_entry): Move definition out of struct pchf_data.
2175         (_cpp_save_file_entries): Use XCNEWVAR.
2176         (_cpp_read_file_entries): Use XNEWVAR.
2177         * identifiers.c (alloc_node): Use XOBNEW.
2178         * init.c (cpp_create_reader): Use XCNEW.
2179         (cpp_init_builtins): Cast of b->value to enum builtin_type.
2180         (read_original_directory): Cast return value of alloca.
2181         * lex.c (add_line_note): Use XRESIZEVEC.
2182         (warn_about_normalization): Use XNEWVEC.
2183         (_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype).
2184         (new_buff): Use XNEWVEC.
2185         * line-map.c (linemap_add): Use XRESIZEVEC.
2186         * macro.c (builtin_macro): Cast return value of alloca.
2187         (paste_tokens): Likewise.
2188         (expand_arg): Use XNEWVEC and XRESIZEVEC.
2189         (_cpp_save_parameter): Use XRESIZEVEC.
2190         (create_iso_definition): Cast allocated storage to proper type.
2191         (_cpp_create_definition): Likewise.
2192         (cpp_macro_definition): Use XRESIZEVEC.
2193         * makedepend.c (add_clm): Use XNEW.
2194         (add_dir): Likewise.
2195         * mkdeps.c (munge): Use XNEWVEC.
2196         (deps_init): Use XCNEW.
2197         (deps_add_target): Use XRESIZEVEC.
2198         (deps_add_default_target): Cast return value of alloca.
2199         (deps_add_dep): Use XRESIZEVEC.
2200         (deps_add_vpath): Likewise.  Use XNEWVEC too.
2201         (deps_restore): Likewise.
2202         * pch.c (save_idents): Use XNEW and XNEWVEC.
2203         (cpp_save_state): Use XNEW.
2204         (count_defs): Cast return value of htab_find.
2205         (write_defs): Likewise.
2206         (cpp_write_pch_deps): Use XNEWVEC.
2207         (collect_ht_nodes): Use XRESIZEVEC.
2208         (cpp_valid_state): Use XNEWVEC.
2209         (save_macros): Use XRESIZEVEC.  Cast return value of xmemdup.
2210         * symtab.c (ht_create): Use XCNEW.
2211         (ht_lookup_with_hash): Cast return value of obstack_copy0.
2212         (ht_expand): Use XCNEWVEC.
2213         * system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus.
2214         (bool): Do not define if __cplusplus.
2215
2216 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
2217
2218         * directives.c (#sccs table entry): Mark IN_I, consistent with #ident.
2219         (do_sccs): Delete function definition, #define to do_ident.
2220         (do_ident): Don't hardwire directive name.
2221
2222 2005-05-12  Ryota Kunisawa  <kunisawa@access.co.jp>
2223
2224         PR bootstrap/21230
2225         * configure: Regenerate.
2226
2227 2005-04-27  Andris Pavenis  <pavenis@latnet.lv>
2228
2229         * files.c: Include io.h for DJGPP to get prototype of setmode.
2230
2231 2005-04-19  Per Bothner  <per@bothner.com>
2232
2233         PR preprocessor/20907
2234         * line-map.c (linemap_line_start): Fix bug when we need to increse
2235         column_bits but can re-use the current line_map.
2236
2237 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2238
2239         * system.h (fopen, fdopen, freopen): Define these to the unlocked
2240         libiberty functions.
2241
2242 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2243
2244         * configure.ac (libcpp_UNLOCKED_FUNCS): New.
2245         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
2246         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
2247         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
2248         _unlocked function.
2249         (fwrite_unlocked): Fix prototype.
2250
2251         * configure, config.in: Regenerate.
2252
2253 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
2254
2255         PR preprocessor/19475
2256         * macro.c (create_iso_definition): For < ISO C99, don't
2257         pedwarn if there is no whitespace between macro name and its
2258         replacement, but the replacement starts with a basic character
2259         set character.
2260
2261 2005-03-28  Andreas Jaeger  <aj@suse.de>
2262
2263         * lex.c (warn_about_normalization): Cast field width to int to
2264         avoid warning.
2265
2266 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
2267
2268         * configure.ac: Consistently use solaris2.1[0-9]* instead of
2269         solaris2.1[0-9].
2270         * configure: Regenerate.
2271
2272 2005-03-15  Geoffrey Keating  <geoffk@apple.com>
2273
2274         * charset.c (_cpp_valid_ucn): In identifiers, reject a partial
2275         UCN rather than printing an error.
2276
2277 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
2278
2279         * lex.c (forms_identifier_p): Disable UCNs in C89 mode.
2280
2281 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
2282
2283         * init.c (cpp_create_reader): Default warn_normalize to normalized_C.
2284         * charset.c: Update for new format of ucnid.h.
2285         (ucn_valid_in_identifier): Update for new format of ucnid.h.
2286         Add NST parameter, and update it; update callers.
2287         (cpp_valid_ucn): Add NST parameter, update callers.  Replace abort
2288         with cpp_error.
2289         (convert_ucn): Pass normalize_state to cpp_valid_ucn.
2290         * internal.h (struct normalize_state): New.
2291         (INITIAL_NORMALIZE_STATE): New.
2292         (NORMALIZE_STATE_RESULT): New.
2293         (NORMALIZE_STATE_UPDATE_IDNUM): New.
2294         (_cpp_valid_ucn): New.
2295         * lex.c (warn_about_normalization): New.
2296         (forms_identifier_p): Add normalize_state parameter, update callers.
2297         (lex_identifier): Add normalize_state parameter, update callers.  Keep
2298         the state current.
2299         (lex_number): Likewise.
2300         (_cpp_lex_direct): Pass normalize_state to subroutines.  Check
2301         it with warn_about_normalization.
2302         * makeucnid.c: New.
2303         * ucnid.h: Replace.
2304         * ucnid.pl: Remove.
2305         * ucnid.tab: Make appropriate for input to makeucnid.c.  Remove
2306         comments about obsolete version of C++.
2307         * include/cpplib.h (enum cpp_normalize_level): New.
2308         (struct cpp_options): Add warn_normalize field.
2309
2310 2005-03-11  Geoffrey Keating  <geoffk@apple.com>
2311
2312         * directives.c (glue_header_name): Update call to cpp_spell_token.
2313         * internal.h (_cpp_interpret_identifier): New.
2314         * charset.c (_cpp_interpret_identifier): New.
2315         (_cpp_valid_ucn): Allow UCN version of '$'.
2316         * lex.c (lex_identifier): Add extra parameter to indicate if initial
2317         character was '$' or '\'.  Support identifiers with UCNs.
2318         (forms_identifier_p): Allow UCNs.
2319         (_cpp_lex_direct): Pass extra parameter to lex_identifier.
2320         (utf8_to_ucn): New.
2321         (cpp_spell_token): Add FORSTRING parameter.  Use it.
2322         (cpp_token_as_text): Update call to cpp_spell_token.
2323         (cpp_output_token): Write UCNs back out.
2324         (stringify_arg): Update call to cpp_spell_token.
2325         (paste_tokens): Likewise.
2326         (cpp_macro_definition): Likewise.
2327         * macro.c (stringify_arg): Likewise.
2328         (paste_tokens): Likewise.
2329         (cpp_macro_definition): Likewise.
2330         * include/cpplib.h: Add parameter to cpp_spell_token.
2331
2332 2005-03-04  Jakub Jelinek  <jakub@redhat.com>
2333
2334         PR bootstrap/20282
2335         PR bootstrap/20305
2336         * macro.c (replace_args, cpp_get_token): Copy whole
2337         cpp_token_u instead of just cpp_string field from it.
2338
2339 2005-02-28  Devang Patel  <dpatel@apple.com>
2340
2341         * directives.c (do_line): Save sysp early before line table is
2342         realloc'ed.
2343
2344 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
2345
2346         PR 18785
2347         * charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
2348         (cpp_host_to_exec_charset): New function.
2349         * include/cpplib.h: Declare cpp_host_to_exec_charset.
2350
2351 2005-02-19  Devang Patel  <dpatel@apple.com>
2352
2353         * charset.c (_cpp_convert_input): Check '\r' before inserting
2354         '\n' at the end.
2355
2356 2005-02-15  Eric Christopher  <echristo@redhat.com>
2357
2358         PR preprocessor/19077
2359         * macro.c (cpp_macro_definition): Move handling of whitespace
2360         to PREV_WHITE conditional. Remove overloading of len
2361         variable.
2362
2363 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2364
2365         * directives.c, files.c, init.c, internal.h, macro.c, pch.c,
2366         traditional.c: Update copyright.
2367
2368 2005-02-14  Paolo Bonzini  <bonzini@gnu.org>
2369
2370         PR bootstrap/19818
2371         * configure.ac: Check for declaration of basename and getopt.
2372         * config.in: Regenerate.
2373         * configure: Regenerate.
2374         * internal.h (ustrcspn): New.
2375         * macro.c (create_iso_definition): Fix allocation of memory.
2376         (padding_token): Add cast to remove const-ness.
2377         * pch.c (cpp_read_state): Use ustrcspn.
2378
2379 2005-02-08  Mike Stump  <mrs@apple.com>
2380
2381         * files.c (pchf_adder): Remove.
2382         (struct pchf_adder_info): Likewise.
2383         (_cpp_save_file_entries): Write out all files so that #import works.
2384
2385 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
2386
2387         * configure: Regenerate.
2388
2389 2005-01-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2390
2391         * include/cpplib.h (c_lang): Fix comment to say cpp_create_reader.
2392
2393         * include/cpplib.h: Also update copyright years.
2394
2395 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
2396
2397         * files.c (_cpp_find_file): Add files found by search_path_exhausted
2398         to the list of all files.
2399
2400 2005-01-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2401
2402         * internal.h: Update references to Cpp lib filenames.
2403         * directives.c: Likewise.
2404         * init.c: Likewise.
2405         * macro.c: Likewise.
2406         * traditional.c: Likewise.
2407
2408 2004-12-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
2409
2410         PR preprocessor/15167
2411         * files.c (destroy_cpp_file): New function.
2412         (should_stack_file): Make a new file if the
2413         compared file is still stacked.
2414
2415 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
2416
2417         PR preprocessor/17610
2418         * directives.c (do_include_common): Error out if an empty filename
2419         is given for #include (or #include_next or #import).
2420
2421 2004-11-27  Roger Sayle  <roger@eyesopen.com>
2422             Zack Weinberg  <zack@codesourcery.com>
2423
2424         * internal.h: Replace all uses of uchar with unsigned char.
2425         * include/cpp-id-data.h: Likewise.  Guard typedef of uchar
2426         with !IN_GCC, so uchar is only defined whilst building libcpp.
2427
2428 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
2429
2430         * aclocal.m4: Regenerate.
2431
2432 2004-11-24  Roger Sayle  <roger@eyesopen.com>
2433
2434         PR preprocessor/15824
2435         * configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h>
2436         directly, instead of the non-existant "system.h" and "ansidecl.h".
2437         * configure: Regenerate.
2438
2439 2004-11-23  Daniel Jacobowitz  <dan@codesourcery.com>
2440             Joseph Myers  <joseph@codesourcery.com>
2441
2442         * internal.h (struct lexer_state): Add in_deferred_pragma.
2443         * directives.c (struct pragma_entry): Add allow_expansion.
2444         (insert_pragma_entry): Take allow_expansion flag.
2445         (register_pragma): Likewise.
2446         (cpp_register_pragma): Likewise.
2447         (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma.
2448         (do_pragma): Honor allow_expansion.
2449         (cpp_handle_deferred_pragma): Set in_deferred_pragma.
2450         * include/cpplib.h (cpp_register_pragma): Update prototype.
2451
2452 2004-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
2453             Mark Mitchell  <mark@codesourcery.com>
2454
2455         * configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set
2456         need_64bit_hwint=yes.
2457         * configure: Regenerate.
2458
2459 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
2460
2461         * Makefile.in ($(PACKAGE).pot): New rule.  Depend on
2462         po/$(PACKAGE).pot.
2463         (po/$(PACKAGE).pot): Use ":" instead of "," in --keyword
2464         arguments.  Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2.
2465         Remove local srcdir path from generated file.
2466
2467 2004-11-04  Zack Weinberg  <zack@codesourcery.com>
2468             Gerald Pfeifer  <gerald@pfeifer.com>
2469
2470         * internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
2471         as well.
2472
2473 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
2474
2475         PR 18075
2476         * directives.c (do_pragma): Do not defer pragmas which are unknown.
2477         (cpp_handle_deferred_pragma): Add cast to silence warning.
2478
2479 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
2480
2481         * errors.c (_cpp_begin_message): Print "error: " for errors.
2482
2483 2004-10-10  Andreas Jaeger  <aj@suse.de>
2484
2485         * makedepend.c: Include mkdeps.h for prototype of deps_add_vpath.
2486         * Makefile.in (makedepend.o): Add dependency on mkdeps.h.
2487
2488 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2489
2490         * pch.c (cpp_write_pch_state): Remove variable z as it is not
2491         used.
2492         (cpp_read_state): Remove unused variables, m, d and mac_count.
2493
2494 2004-09-29  Per Bothner  <per@bothner.com>
2495
2496         * directives.c (cpp_handle_deferred_pragma):  Save, clear and restore
2497         cb.line_change.  Otherwise do_pragma will call the line_change
2498         call-back with a meaningless line number.
2499
2500 2004-09-24  Zack Weinberg  <zack@codesourcery.com>
2501
2502         * configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to
2503         programs cluster. Use ACX_PROG_CC_WARNING_OPTS,
2504         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS.
2505         * aclocal.m4, configure: Regenerate.
2506         * init.c: Include localedir.h.
2507         * Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables.
2508         (DEFS): Delete.
2509         (.c.o): Use $(ALL_CFLAGS).
2510         (localedir.h, localedir.hs): New rules.
2511         (clean): Use rm -rf to remove directories.
2512         (distclean): Also delete localedir.h and localedir.hs.
2513         (init.o): Update dependencies.
2514
2515 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2516
2517         * Makefile.in (aclocal.m4): Update dependencies.
2518         * configure.ac (AC_CONFIG_MACRO_DIR): New.
2519         * aclocal.m4, configure: Regenerate.
2520
2521 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
2522
2523         * charset.c (_cpp_destroy_iconv, emit_numeric_escape)
2524         (_cpp_convert_input, _cpp_default_encoding): Add comments.
2525         Some other comments in this file also tweaked.
2526
2527         * directives.c (do_pragma): Save current buffer position
2528         before lexing the pragma keywords; don't call
2529         _cpp_backup_tokens in the defer_pragmas case.
2530
2531 2004-09-15  Per Bothner  <per@bothner.com>
2532
2533         * include/line-map.h (line_map_start):  Add parameter names so
2534         preceding comment makes sense.
2535         (linemap_add):  Remove from comment mention of non-existing parameter.
2536
2537 2004-09-09  Matt Austern  <austern@apple.com>
2538             Zack Weinberg  <zack@codesourcery.com>
2539
2540         * include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
2541         prefixes throughout.  Add entry for PRAGMA.  Remove
2542         unnecessary "= 0" from EQ.
2543         (enum cpp_ttype): Adjust OP and TK definitions to restore
2544         prefixes, via token-paste.
2545         (CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
2546         Change from #defines to additional cpp_ttype enumerators.
2547         (struct cpp_options): Add defer_pragmas.
2548         (cpp_handle_deferred_pragma): Prototype new interface.
2549
2550         * internal.h (struct cpp_reader): Add directive_result.
2551         * directives.c (struct pragma_entry): Add is_internal field;
2552         give boolean fields type bool.
2553         (start_directive): Initialize pfile->directive_result.type.
2554         (_cpp_do__Pragma): Likewise.
2555         (run_directive): Do not crash if pfile->buffer->prev is NULL.
2556         (insert_pragma_entry): Add 'internal' argument; set new->is_internal
2557         from it.
2558         (register_pragma): New static function, bulk of former
2559         cpp_register_pragma here; add 'internal' argument, pass along
2560         to insert_pragma_entry.
2561         (cpp_register_pragma): Now a wrapper around register_pragma which
2562         always passes false for 'internal' argument.
2563         (_cpp_init_internal_pragmas): Call register_pragma directly, passing
2564         true for 'internal'.
2565         (do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
2566         an internal pragma, save text till the end of the line as a CPP_PRAGMA
2567         token instead of executing the pragma.
2568         (cpp_handle_deferred_pragma): New interface.
2569         * lex.c (token_spellings): Adjust OP and TK definitions to
2570         match changes to cpplib.h.
2571         (_cpp_lex_token): Check for a directive-result token and
2572         return it if present.
2573         (cpp_token_val_index): Handle CPP_PRAGMA.
2574         * macro.c (cpp_builtin_macro_text): Correct comment.
2575         (builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
2576
2577 2004-09-06  Serge Belyshev  <belyshev@lubercy.com>
2578
2579         PR preprocessor/14699
2580         * symtab.c (ht_dump_statistics): Change type of sum_of_squares
2581         from size_t to double.
2582
2583 2004-08-28  Andreas Schwab  <schwab@suse.de>
2584             Andreas Jaeger <aj@suse.de>
2585
2586         * configure.ac: Set PACKAGE correctly.
2587         * configure: Regenerated.
2588
2589 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
2590
2591         * Makefile.in: Add back top_builddir.
2592
2593 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
2594
2595         * configure.ac: Replace Automake macro invocations
2596         with manual Autoconf checks and substitutions.
2597         * configure: Regenerate.
2598         * aclocal.m4: Regenerate.
2599         * config.in: Regenerate.
2600         * Makefile.am: Removed.
2601         * Makefile.in: Heavy simplification and reorganization.
2602
2603 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
2604
2605         * configure.ac (arm*-*-eabi*): New target.
2606         (arm*-*-symbianelf*): Likewise.
2607         * configure: Regenerated.
2608
2609 2004-07-24  Bernardo Innocenti  <bernie@develer.com>
2610
2611         * internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove.
2612         * directives.c: Use XNEW-family macros from libiberty.
2613         * lex.c: Likewise.
2614         * macro.c: Likewise.
2615         * cpplib.h (cpp_deps_style): Export enum with name.
2616
2617 2004-07-23  Matthias Klose  <doko@debian.org>
2618
2619         * init.c (init_library): Use PACKAGE for the text domain.
2620
2621 2004-07-16  Andris Pavenis  <pavenis@latnet.lv>
2622
2623         PR preprocessor/16366
2624         * internal.h (struct cpp_reader): New field dir_hash.
2625         * files.c (make_cpp_dir): Use dir_hash, not file_hash.
2626         (_cpp_init_files, _cpp_cleanup_files): Update for new field.
2627
2628 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
2629
2630         PR preprocessor/16192
2631         PR preprocessor/15913
2632         PR preprocessor/15572
2633         * expr.c (_cpp_parse_expr): Handle remaining cases where an
2634         expression is missing.
2635         * init.c (post_options): Traditional cpp doesn't do // comments.
2636
2637 2004-06-30  Per Bothner  <per@bothner.com>
2638
2639         * include/line-map.h (fileline):  Remove old typedef.
2640         * internal.h (struct cpp_reader):  Use source_location typedef instead.
2641
2642 2004-06-26  Zack Weinberg  <zack@codesourcery.com>
2643
2644         Partially revert patch of 2004-06-05.
2645         * files.c (search_cache): Remove pfile argument.  Don't check
2646         for file that would be found by "" or <> search here...
2647         (_cpp_find_file): ...do it here, before calling find_file_in_dir.
2648         Do not apply directory-of-current-file correction to files
2649         found by this check.  Rearrange code slightly.
2650
2651 2004-06-21  Geoffrey Keating  <geoffk@apple.com>
2652
2653         * files.c (should_stack_file): Correct swapped parameters to call
2654         to cb.read_pch.
2655         * pch.c (cpp_valid_state): Handle -fpreprocessed.
2656
2657 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2658
2659         * Makefile.in: Regenerate with automake 1.8.5.
2660         * aclocal.m4: Likewise.
2661         * configure: Regenerate.
2662
2663 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
2664
2665         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
2666         * configure, config.in: Regenerate.
2667         * system.h: Unconditionally define bool as unsigned char,
2668         BOOL_BITFIELD as unsigned int.
2669         * .cvsignore: New file.
2670
2671 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
2672
2673         * traditional.c (push_replacement_text): Set macro->traditional.
2674         (save_replacement_text): Likewise.
2675         * pch.c (cpp_write_pch_state): Don't write list of defined macros.
2676         (struct save_macro_item): Delete.
2677         (struct save_macro_data): Use a character array not the previous
2678         structured format.
2679         (save_macros): Save macro as text not as internal structures.
2680         (cpp_prepare_state): Update for changes to save_macro_data.
2681         (cpp_read_state): Don't read macros defined in PCH.  Restore
2682         -D macros as text.
2683         * macro.c (create_iso_definition): Honour alloc_subobject.
2684         Clear traditional flag.
2685         (_cpp_create_definition): Honour alloc_subobject.
2686         * lex.c (cpp_token_val_index): New.
2687         * internal.h: Include cpp-id-data.h.
2688         (uchar): Move definition to cpp-id-data.h.
2689         (U): Likewise.
2690         (cpp_macro): Likewise.
2691         * directives.c (struct answer): Move to cpp-id-data.h.
2692         (do_assert): Honour alloc_subobject.
2693
2694         * include/symtab.h (struct ht): Add field 'alloc_subobject'.
2695         * include/cpplib.h (struct cpp_string): Add GTY marker.
2696         (enum cpp_token_fld_kind): New.
2697         (struct cpp_token): Add GTY markers.
2698         (cpp_token_val_index): Prototype.
2699         (CPP_HASHNODE_VALUE_IDX): New.
2700         (struct cpp_hashnode): Don't skip fields of 'value' when marking.
2701         * include/cpp-id-data.h: New file.
2702
2703 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
2704
2705         * Makefile.am (all-local): New.
2706         * Makefile.in: Regenerate.
2707
2708 2004-06-06  Roger Sayle  <roger@eyesopen.com>
2709
2710         * Makefile.am (LIBICONV): Declare.
2711         (makedepend_LDADD): Use LIBICONV.
2712         * Makefile.in: Regenerate.
2713
2714 2004-06-05  Andrew Pinski  <pinskia@physics.uc.edu>
2715
2716         * Makefile.am (LIBINTL): Declare
2717         (makedepend_LDADD): Use LIBINTL.
2718         * Makefile.in: Regenerate.
2719
2720 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
2721
2722         * Makefile.am: Add makedepend.
2723         * Makefile.in, aclocal.m4: Regenerate.
2724         * charset.c: Insert a space to avoid a warning.
2725         * directives.c: Include mkdeps.h.
2726         (_cpp_handle_directive): Reenable macro expander if appropriate.
2727         (undefine_macros): Inline body of _cpp_free_definition for speed.
2728         Do not call undef callback or _cpp_warn_if_unused_macro.
2729         (cpp_get_deps): New interface.
2730         * files.c (search_cache): Add pfile argument.  Check for file
2731         that would be found by "" or <> search here...
2732         (_cpp_find_file): ...not here.  Correct recorded start_dir of
2733         files found by directory-of-current-file search that would be
2734         found by "" or <> search.
2735         * init.c (cpp_add_dependency_target): Delete.
2736         * internal.h (struct lexer_state): Add discarding_output flag.
2737         * lex.c (lex_identifier): Compute hash function while scanning.
2738         * macro.c (cpp_scan_nooutput): Disable macro expansion outside
2739         directives.
2740         * makedepend.c: New file.
2741         * mkdeps.c (struct deps): Add vpath vector.
2742         (apply_vpath, deps_add_vpath): New function.
2743         (deps_free): Free vpath vector.
2744         (deps_add_dep, deps_add_target): Use apply_vpath.
2745         * symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH.
2746         (ht_lookup_with_hash): New function.
2747         * cpplib.h, mkdeps.h: Update prototypes.
2748         * symtab.h: Update prototypes.
2749         (HT_HASHSTEP, HT_FINISH): New macros.
2750
2751 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2752
2753         * symtab.c (ht_create): Set entries_owned.
2754         (ht_destroy): Honour entries_owned.
2755         (ht_expand): Likewise.
2756         (ht_load): New.
2757         * include/symtab.h (struct ht): New field 'entries_owned'
2758         (ht_load): New prototype.
2759
2760 2004-05-26  Paolo Bonzini  <bonzini@gnu.org>
2761
2762         PR bootstrap/15651
2763         * configure.ac: Fix m4 quoting when picking
2764         the size of HOST_WIDE_INT.
2765         * configure: Regenerate.
2766
2767 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2768
2769         * Makefile.am: the correct directory for
2770         gettext include files is given by @INCINTL@.
2771         * Makefile.in: Regenerate.
2772
2773 2004-05-24  Paolo Bonzini  <bonzini@gnu.org>
2774
2775         * system.h [!ENABLE_NLS]: dgettext takes two
2776         parameters.
2777
2778 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2779
2780         Moved libcpp from the gcc subdirectory to the toplevel.
2781         * Makefile.am: New file.
2782         * Makefile.in: Regenerate.
2783         * configure.ac: New file.
2784         * configure: Regenerate.
2785         * config.in: Regenerate.
2786         * charset.c: Moved from gcc/cppcharset.c.  Add note about
2787         brokenness of input charset detection.  Adjust for change
2788         in name of cppucnid.h.
2789         * errors.c: Moved from gcc/cpperror.c.  Do not include intl.h.
2790         * expr.c: Moved from gcc/cppexp.c.
2791         * files.c: Moved from gcc/cppfiles.c.  Do not include intl.h.
2792         Remove #define of O_BINARY, it is in system.h.
2793         * identifiers.c: Moved from gcc/cpphash.c.
2794         * internal.h: Moved from gcc/cpphash.h.  Change header
2795         guard name.  All other files adjusted to match name change.
2796         * init.c: Moved from gcc/cppinit.c.
2797         (init_library) [ENABLE_NLS]: Call bindtextdomain.
2798         * lex.c: Moved from gcc/cpplex.c.
2799         * directives.c: Moved from gcc/cpplib.c.
2800         * macro.c: Moved from gcc/cppmacro.c.
2801         * pch.c: Moved from gcc/cpppch.c.  Do not include intl.h.
2802         * traditional.c: Moved from gcc/cpptrad.c.
2803         * ucnid.h: Moved from gcc/cppucnid.h.  Change header
2804         guard name.
2805         * ucnid.pl: Moved from gcc/cppucnid.pl.
2806         * ucnid.tab: Moved from gcc/cppucnid.tab.  Change header
2807         guard name.
2808         * symtab.c: Moved from gcc/hashtable.c.
2809         * line-map.c: Moved from gcc.  Do not include intl.h.
2810         * mkdeps.c: Moved from gcc.
2811         * system.h: New file.
2812         * include/cpplib.h: Moved from gcc.  Change header guard name.
2813         * include/line-map.h: Moved from gcc.  Change header guard name.
2814         * include/mkdeps.h: Moved from gcc.  Change header guard name.
2815         * include/symtab.h: Moved from gcc/hashtable.h.  Change header
2816         guard name.