xref: /netbsd-src/external/gpl3/gcc/dist/libcpp/ChangeLog (revision b7b7574d3bf8eeb51a1fa3977b59142ec6434a55)
12014-05-22  Release Manager
2
3	* GCC 4.8.3 released.
4
52014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6
7	Backport from mainline
8	2013-11-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9
10	* lex.c (search_line_fast): Correct for little endian.
11
122014-03-06  Jakub Jelinek  <jakub@redhat.com>
13
14	Backport from mainline
15	2014-02-19  Jakub Jelinek  <jakub@redhat.com>
16
17	PR preprocessor/58844
18	* macro.c (enter_macro_context): Only push
19	macro_real_token_count (macro) tokens rather than
20	macro->count tokens, regardless of
21	CPP_OPTION (pfile, track-macro-expansion).
22
23	2014-02-07  Jakub Jelinek  <jakub@redhat.com>
24
25	PR preprocessor/56824
26	* line-map.c (linemap_compare_locations): Look through adhoc locations
27	for both l0 and l1.
28
292014-03-06  Jakub Jelinek  <jakub@redhat.com>
30
31	PR preprocessor/60400
32	Backport from mainline
33	2013-06-24  Dehao Chen  <dehao@google.com>
34
35	* files.c (_cpp_stack_include): Fix the highest_location when header
36	file is guarded by #ifndef and is included twice.
37
382013-10-16  Release Manager
39
40	* GCC 4.8.2 released.
41
422013-05-31  Release Manager
43
44	* GCC 4.8.1 released.
45
462013-04-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
47
48	PR target/56771
49	* configure.ac: Require 64-bit int for arm*-*-rtems*.
50	* configure: Regenerate.
51
522013-03-22  Release Manager
53
54	* GCC 4.8.0 released.
55
562013-03-06  Jakub Jelinek  <jakub@redhat.com>
57
58	PR middle-end/56461
59	* internal.h (struct cpp_buffer): Add to_free field.
60	(_cpp_pop_file_buffer): Add third argument.
61	* files.c (_cpp_stack_file): Set buffer->to_free.
62	(_cpp_pop_file_buffer): Add to_free argument.  Free to_free
63	if non-NULL, and if equal to file->buffer_start, also clear
64	file->buffer{,_start,_valid}.
65	* directives.c (_cpp_pop_buffer): Pass buffer->to_free
66	to _cpp_pop_file_buffer.
67
682013-03-01  Jakub Jelinek  <jakub@redhat.com>
69
70	PR middle-end/56461
71	* files.c (_cpp_save_file_entries): Free result at the end.
72	* pch.c (cpp_string_free): New function.
73	(cpp_save_state): Use it in htab_create call.
74	(cpp_write_pch_deps): Free ss->defs.  Destroy ss->definedhash.
75
762013-02-28  Jakub Jelinek  <jakub@redhat.com>
77
78	* files.c (_cpp_find_file): If returning early, before storing
79	something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
80	on it.  Access *hash_slot using void * type rather than
81	struct file_hash_entry * to avoid aliasing issues.
82
83	* configure.ac: Don't define ENABLE_CHECKING whenever
84	--enable-checking is seen, instead use similar --enable-checking=yes
85	vs. --enable-checking=release default as gcc/ subdir has and
86	define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
87	Define ENABLE_VALGRIND_CHECKING if requested.
88	* lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
89	struct first in the allocated buffer and result->base after it.
90	(_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
91	instead of buff->base.
92	* config.in: Regenerated.
93	* configure: Regenerated.
94
952013-02-13  Ed Smith-Rowland  <3dw4rd@verizon.net>
96
97	PR c++/55582
98	* libcpp/lex.c (lex_raw_string): Allow string literal with suffix
99	beginning with 's' to be parsed as a C++11 user-defined literal.
100
1012013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
102
103	Update copyright years.
104
1052013-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
106
107	PR c++/54526 (again)
108	* lex.c (_cpp_lex_direct): In C++11 mode, implement 2.5 p3, bullet 2.
109
1102013-01-03  Marc Glisse  <marc.glisse@inria.fr>
111
112	PR bootstrap/50177
113	* line-map.c (get_combined_adhoc_loc): Cast from extern "C" type.
114	(new_linemap): Likewise.
115	(linemap_enter_macro): Likewise.
116
1172012-12-03  Jakub Jelinek  <jakub@redhat.com>
118
119	PR bootstrap/55380
120	PR other/54691
121	* files.c (read_file_guts): Allocate extra 16 bytes instead of
122	1 byte at the end of buf.  Pass size + 16 instead of size
123	to _cpp_convert_input.
124	* charset.c (_cpp_convert_input): Reallocate if there aren't
125	at least 16 bytes beyond to.len in the buffer.  Clear 16 bytes
126	at to.text + to.len.
127
1282012-11-21  Steve Ellcey  <sellcey@mips.com>
129
130	PR pch/55399
131	* files.c (pch_open_file): Fix check for implicit_preinclude.
132
1332012-11-16  Simon Baldwin  <simonb@google.com>
134
135	* include/cpplib.h (struct cpp_options): Add canonical_system_headers.
136	* files.c (find_file_in_dir): Call maybe_shorter_path() only if
137	canonical_system_headers is set.
138	* init.c (cpp_create_reader): Initialize canonical_system_headers.
139	* configure.ac: Add new --enable-canonical-system-headers.
140	* configure: Regenerate.
141	* config.in: Regenerate.
142
1432012-11-09  Ed Smith-Rowland  <3dw4rd@verizon.net>
144
145	PR c++/54413
146	* include/cpplib.h (cpp_interpret_float_suffix): Add cpp_reader* arg.
147	(cpp_interpret_int_suffix): Add cpp_reader* arg.
148	* init.c (cpp_create_reader): Iitialize new flags.
149	* expr.c (interpret_float_suffix): Use new flags.
150	(cpp_interpret_float_suffix): Add cpp_reader* arg.
151	(interpret_int_suffix): Use new flags.
152	(cpp_interpret_int_suffix): Add cpp_reader* arg.
153	(cpp_classify_number): Adjust calls to interpret_x_suffix.
154
1552012-10-23  Ian Bolton  <ian.bolton@arm.com>
156	    Jim MacArthur  <jim.macarthur@arm.com>
157	    Marcus Shawcroft  <marcus.shawcroft@arm.com>
158	    Nigel Stephens  <nigel.stephens@arm.com>
159	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
160	    Richard Earnshaw  <rearnsha@arm.com>
161	    Sofiane Naci  <sofiane.naci@arm.com>
162	    Stephen Thomas  <stephen.thomas@arm.com>
163	    Tejas Belagod  <tejas.belagod@arm.com>
164	    Yufeng Zhang  <yufeng.zhang@arm.com>
165
166	* configure.ac: Enable AArch64.
167	* configure: Regenerate.
168
1692012-10-23  Joseph Myers  <joseph@codesourcery.com>
170
171	* files.c (struct _cpp_file): Add implicit_preinclude.
172	(pch_open_file): Allow a previously opened implicitly included
173	file.
174	(_cpp_find_file): Add implicit_preinclude argument.  Free file and
175	do not call open_file_failed if implicit_preinclude.  Store
176	implicit_preinclude value.
177	(_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date):
178	Update calls to _cpp_find_file.
179	(_cpp_stack_include): Handle IT_DEFAULT.
180	(cpp_push_default_include): New.
181	* include/cpplib.h (cpp_push_default_include): Declare.
182	* init.c (cpp_read_main_file): Update call to _cpp_find_file.
183	* internal.h (enum include_type): Add IT_DEFAULT.
184	(_cpp_find_file): Update prototype.
185
1862012-10-15  Tobias Burnus  <burnus@net-b.de>
187
188	* files.c (read_file_guts, _cpp_save_file_entries): Free memory
189	before returning.
190	* lex.c (warn_about_normalization): Ditto.
191	* mkdeps.c (deps_save): Ditto.
192	* pch.c (cpp_valid_state): Ditto.
193
1942012-10-04  Florian Weimer  <fweimer@redhat.com>
195
196	* directives.c (do_pragma_warning_or_error): New.
197	(do_pragma_warning): New.
198	(do_pragma_error): New.
199	(_cpp_init_internal_pragmas): Register new pragmas.
200
2012012-09-25  Dehao Chen  <dehao@google.com>
202
203	PR middle-end/54704
204	* line-map.c (location_adhoc_data_hash): Fix the hash function.
205
2062012-09-25  Dehao Chen  <dehao@google.com>
207
208	PR middle-end/54645
209	* include/line-map.h (location_adhoc_data): Move location_adhoc_data
210	into GC.
211	(location_adhoc_data_map): Likewise.
212	(line_maps): Likewise.
213	(rebuild_location_adhoc_htab): New Function.
214	* line-map.c (+rebuild_location_adhoc_htab): new Funcion.
215	(get_combined_adhoc_loc): Move location_adhoc_data into GC.
216	(location_adhoc_data_fini): Likewise.
217	(linemap_init): Likewise.
218	(location_adhoc_data_init): Remove Function.
219
2202012-09-19  Dehao Chen  <dehao@google.com>
221
222	* include/line-map.h (MAX_SOURCE_LOCATION): New value.
223	(location_adhoc_data_fini): New.
224	(get_combined_adhoc_loc): New.
225	(get_data_from_adhoc_loc): New.
226	(get_location_from_adhoc_loc): New.
227	(location_adhoc_data_map): New.
228	(COMBINE_LOCATION_DATA): New.
229	(IS_ADHOC_LOC): New.
230	(expanded_location): New field.
231	(line_maps): New field.
232	* line-map.c (location_adhoc_data): New.
233	(location_adhoc_data_hash): New.
234	(location_adhoc_data_eq): New.
235	(location_adhoc_data_update): New.
236	(get_combined_adhoc_loc): New.
237	(get_data_from_adhoc_loc): New.
238	(get_location_from_adhoc_loc): New.
239	(location_adhoc_data_init): New.
240	(location_adhoc_data_fini): New.
241	(linemap_init): Initialize location_adhoc_data.
242	(linemap_lookup): Change to use new location.
243	(linemap_ordinary_map_lookup): Likewise.
244	(linemap_macro_map_lookup): Likewise.
245	(linemap_macro_map_loc_to_def_point): Likewise.
246	(linemap_macro_map_loc_unwind_toward_spel): Likewise.
247	(linemap_get_expansion_line): Likewise.
248	(linemap_get_expansion_filename): Likewise.
249	(linemap_location_in_system_header_p): Likewise.
250	(linemap_location_from_macro_expansion_p): Likewise.
251	(linemap_macro_loc_to_spelling_point): Likewise.
252	(linemap_macro_loc_to_def_point): Likewise.
253	(linemap_macro_loc_to_exp_point): Likewise.
254	(linemap_resolve_location): Likewise.
255	(linemap_unwind_toward_expansion): Likewise.
256	(linemap_unwind_to_first_non_reserved_loc): Likewise.
257	(linemap_expand_location): Likewise.
258	(linemap_dump_location): Likewise.
259	(linemap_line_start): Likewise.
260
2612012-05-25  Dodji Seketeli  <dodji@redhat.com>
262
263	PR preprocessor/53469
264	* directives.c (do_pragma): Use the virtual location for the
265	pragma token, instead of its spelling location.
266
2672012-08-14   Diego Novillo  <dnovillo@google.com>
268
269	Merge from cxx-conversion branch.  Configury.
270
271	* Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
272	* configure.ac: Likewise.
273	* configure: Regenerate.
274
2752012-08-14   Lawrence Crowl  <crowl@google.com>
276
277	Merge from cxx-conversion branch.  New C++ hash table.
278
279	* include/symtab.h (typedef struct ht hash_table): Change the typedef
280	name to cpp_hash_table.  Update all users of the typedef.
281
2822012-07-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
283
284	* include/line-map.h (line_map_macro): Use the "atomic" GTY option
285	for the macro_locations field.
286
2872011-06-19  Uros Bizjak  <ubizjak@gmail.com>
288
289	* lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
290	__builtin_ia32_pcmpestri128 instead of asm.
291
2922012-06-04  Dimitrios Apostolou <jimis@gmx.net>
293
294	* line-map.c (linemap_enter_macro): Don't zero max_column_hint in
295	every macro. This improves performance by reducing the number of
296	reallocations when track-macro-expansion is on.
297
2982012-06-04  Dodji Seketeli  <dodji@redhat.com>
299
300	PR preprocessor/53463
301	* line-map.c (linemap_location_in_system_header_p): For built-in
302	macro tokens, check the first expansion point location that is not
303	for a token coming from a built-in macro.
304
3052012-05-29  Joseph Myers  <joseph@codesourcery.com>
306
307	* directives.c: Fix typos.
308	* include/line-map.h: Fix typos.
309	* line-map.c: Fix typos.
310	* macro.c: Fix typos.
311
3122012-05-25  Dodji Seketeli  <dodji@redhat.com>
313
314	PR bootstrap/53459
315	* lex.c (search_line_fast): Avoid unused local typedefs to simulate
316	a static assertion.
317
3182012-05-29  Dodji Seketeli  <dodji@redhat.com>
319
320	PR preprocessor/53229
321	* internal.h (cpp_reader::set_invocation_location): Remove.
322	(cpp_reader::about_to_expand_macro_p): New member flag.
323	* directives.c (do_pragma):  Remove Kludge as
324	pfile->set_invocation_location is no more.
325	* macro.c (cpp_get_token_1): Do away with the use of
326	cpp_reader::set_invocation_location.  Just collect the macro
327	expansion point when we are about to expand the top-most macro.
328	Do not override cpp_reader::about_to_expand_macro_p.
329	This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
330	properly handle locations of expansion points.
331	(cpp_get_token_with_location): Adjust, as
332	cpp_reader::set_invocation_location is no more.
333	(paste_tokens): Take a virtual location parameter for
334	the LHS of the pasting operator.  Use it in diagnostics.  Update
335	comments.
336	(paste_all_tokens): Tighten the assert.  Propagate the location of
337	the expansion point when no virtual locations are available.
338	Pass the virtual location to paste_tokens.
339	(in_macro_expansion_p): New static function.
340	(enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
341	flag until we really start expanding the macro.
342
3432012-05-16  Dodji Seketeli  <dodji@redhat.com>
344
345	PR preprocessor/7263
346	* include/cpplib.h (cpp_classify_number): Take a location
347	parameter.
348	* expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic
349	macros that take a location parameter.
350	(cpp_classify_number): Take a (virtual) location parameter.  Use
351	it for diagnostics.  Adjust comments.
352	(eval_token): Take a location parameter.  Pass it to
353	cpp_classify_number and to diagnostic routines.
354	(_cpp_parse_expr): Use virtual locations of tokens when parsing
355	expressions.  Pass a virtual location to eval_token and to
356	diagnostic routines.
357
3582012-05-10  Tristan Gingold  <gingold@adacore.com>
359
360	* expr.c (interpret_float_suffix): Add a guard.
361
3622012-05-02  Dodji Seketeli  <dodji@redhat.com>
363
364	Properly initialize cpp_context in destringize_and_run
365	* directives.c (destringize_and_run): Properly initialize the new
366	context.
367	* macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
368	the initial base context, which has the same life time as the
369	current instance of cpp_file.
370
3712012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
372	    Dodji Seketeli  <dodji@seketeli.org>
373
374	PR c++/52974
375	* libcpp/files.c (maybe_shorter_path): New.
376	(find_file_in_dir): Use it.
377
3782012-04-30  Dodji Seketeli  <dodji@redhat.com>
379
380	Switch -ftrack-macro-expansion=2 on by default.
381	* init.c (cpp_create_reader): Switch -ftrack-macro-expansion=2 on
382	by default.  Add comments.
383
384	Strip "<built-in>" loc from displayed expansion context
385	* include/line-map.h (linemap_unwind_toward_expansion): Fix typo
386	in comment.
387	(linemap_unwind_to_first_non_reserved_loc): Declare new function.
388	* line-map.c (linemap_unwind_to_first_non_reserved_loc): Define
389	new function.
390
391	Fix expansion point loc for macro-like tokens
392	* macro.c (macro_of_context): New static function.
393	(_cpp_push_token_context, push_extended_tokens_context): If the
394	macro argument is NULL, it means we are continuing the expansion
395	of the current macro, if any.  Update comments.
396	(_cpp_pop_context): Re-enable expansion of the macro only when we
397	are really out of the context of the current expansion.
398
399	Fix token pasting with -ftrack-macro-expansion
400	* macro.c (paste_all_tokens): Put the token resulting from pasting
401	into an extended token context with -ftrack-macro-location is in
402	effect.
403
404	Fix cpp_sys_macro_p with -ftrack-macro-expansion
405	* macro.c (cpp_sys_macro_p):  Support -ftrack-macro-expansion.
406
4072012-04-29  Dodji Seketeli  <dodji@redhat.com>
408
409	* lex.c (lex_raw_string): Change C++ style comments into C style
410	comments.
411    	(lex_string): Likewise.
412
4132012-04-27   Ollie Wild  <aaw@google.com>
414
415	* include/cpplib.h (struct cpp_options): Add new field,
416	warn_literal_suffix.
417	(CPP_W_LITERAL_SUFFIX): New enum.
418	* init.c (cpp_create_reader): Default initialization of
419	warn_literal_suffix.
420	* lex.c (lex_raw_string): Treat user-defined literals which don't
421	begin with '_' as separate tokens and produce a warning.
422	(lex_string): Ditto.
423
4242012-04-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
425
426	* line-map.c (linemap_resolve_location): Synchronize comments with
427	those in line-map.h.
428	* include/line-map.h (linemap_resolve_location): Fix spelling in
429	comment.
430
4312012-03-22  Richard Earnshaw  <rearnsha@arm.com>
432
433	* lex.c (search_line_fast): Provide Neon-optimized version for ARM.
434
4352012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
436
437	* lex.c: Remove Solaris 8 reference.
438
4392012-02-14  Walter Lee  <walt@tilera.com>
440
441	* configure.ac: Require 64-bit hwint for tilegx and tilepro.
442	* configure: Regenerate.
443
4442012-01-09  Richard Guenther  <rguenther@suse.de>
445
446	* macro.c (_cpp_builtin_macro_text): Remove unused variable map.
447
4482012-01-09  Gary Funck  <gary@intrepid.com>
449
450	PR preprocessor/33919
451	* files.c (_cpp_get_file_name): New. Implement file name
452	access function.
453	* internal.h (_cpp_get_file_name): New prototype.
454	* macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
455	to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
456
4572012-01-03  Olivier Hainque  <hainque@adacore.com>
458
459	* system.h: Prior to #define, #undef fopen and freopen unconditionally.
460
4612011-12-20  Joseph Myers  <joseph@codesourcery.com>
462
463	* include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
464	(CLK_STDC1X): Change to CLK_STDC11.
465	* init.c (lang_defaults): Update comments.
466	(cpp_init_builtins): Update language tests.  Use 201112L for C11
467	__STDC_VERSION__.
468
4692011-12-20  Andreas Schwab  <schwab@linux-m68k.org>
470
471	* configure: Regenerate.
472
4732011-12-19  Andreas Schwab  <schwab@linux-m68k.org>
474
475	* configure: Regenerate.
476
4772011-12-07  Jakub Jelinek  <jakub@redhat.com>
478
479	PR bootstrap/50237
480	* internal.h (_cpp_init_lexer): New prototype.
481	* init.c (init_library): Call it.
482	* lex.c (init_vectorized_lexer): Remove constructor attribute,
483	add inline keyword.
484	(HAVE_init_vectorized_lexer): Define.
485	(_cpp_init_lexer): New function.
486
4872011-12-03  Dodji Seketeli  <dodji@redhat.com>
488
489	* macro.c (tokens_buff_remove_last_token)
490	(tokens_buff_put_token_to): Add an 'inline' function specifier to
491	the prototype.
492
4932011-11-22   Diego Novillo  <dnovillo@google.com>
494
495	* include/line-map.h (linemap_dump): Declare.
496	(line_table_dump): Declare.
497	* line-map.c (linemap_dump): New.
498	(line_table_dump): New.
499
5002011-11-21  Ed Smith-Rowland  <3dw4rd@verizon.net>
501
502	PR c++/50958
503	* expr.c (cpp_userdef_char_remove_type): Fix typo.
504
5052011-11-03  Michael Matz  <matz@suse.de>
506
507	PR bootstrap/50857
508	* configure.ac: Check for -fno-exceptions -fno-rtti.
509	* configure: Regenerate.
510	* Makefile.in (NOEXCEPTION_FLAGS): New flag.
511	(ALL_CXXFLAGS): Use it.
512
5132011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
514
515	* internal.h (uxstrdup, ustrchr): Return const unsigned char *.
516
5172011-11-02  Jason Merrill  <jason@redhat.com>
518
519	PR c++/50810
520	* configure.ac: Add -Wno-narrowing to warning options.
521
5222011-10-31  Jason Merrill  <jason@redhat.com>
523
524	PR libstdc++/1773
525	* init.c (cpp_init_builtins): Set __cplusplus for C++11.
526
527	PR c++/50920
528	* include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
529	CLK_GNUCXX0X to CLK_GNUCXX11.
530
5312011-10-26  Ed Smith-Rowland  <3dw4rd@verizon.net>
532
533	Implement C++11 user-defined literals.
534	* expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
535	cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
536	cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
537	cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
538	(cpp_classify_number): Classify unrecognized tokens as user-defined
539	literals.
540	* include/cpplib.h: Add new tokens for user-defined literals.
541	* init.c: Add new preprocessor flag (cxx11).
542	* lex.c: (lex_string, lex_raw_string): Handle user-defined literals
543	including concatenation and promotion with suffixes.
544
5452011-10-24  Dodji Seketeli  <dodji@redhat.com>
546
547	* line-map.c (linemap_macro_map_lookup): Fix logic.
548
5492011-10-24  Dodji Seketeli  <dodji@redhat.com>
550
551	* include/line-map.h (linemap_expand_location): Take a line table
552	parameter.  Update comment.
553	(linemap_resolve_location): Update comment.
554	(linemap_expand_location_full): Remove.
555	* line-map.c (linemap_resolve_location):  Handle reserved
556	locations; return a NULL map in those cases.
557	(linemap_expand_location): If location is reserved, return a
558	zeroed expanded location.  Update comment.  Take a line table to
559	assert that the function takes non-virtual locations only.
560	(linemap_expand_location_full): remove.
561	(linemap_dump_location): Handle the fact that
562	linemap_resolve_location can return NULL line maps when the
563	location resolves to a reserved location.
564
565	* line-map.c (linemap_macro_map_lookup): Fix logic.
566
5672011-10-22  Dodji Seketeli  <dodji@redhat.com>
568
569	PR bootstrap/50778
570	* include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
571	context to act upon.
572	* lex.c (_cpp_remaining_tokens_num_in_context): Likewise.  Update
573	comment.
574	(cpp_token_from_context_at): Likewise.
575	(cpp_peek_token): Use the context to peek tokens from.
576
5772011-10-20  Dodji Seketeli  <dodji@redhat.com>
578
579	PR bootstrap/50801
580	* lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
581	number of tokens.
582
5832011-10-18  Dodji Seketeli  <dodji@redhat.com>
584
585	PR bootstrap/50760
586	* include/line-map.h (struct linemap_stats): Change the type of
587    	the members from size_t to long.
588	* macro.c (macro_arg_token_iter_init): Unconditionally initialize
589    	iter->location_ptr.
590
5912011-10-17  Dodji Seketeli  <dodji@redhat.com>
592
593	* line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
594    	variable without using it if ENABLE_CHECKING is not defined.  Mark
595    	the LOCATION parameter as being unused.
596
5972011-10-15  Tom Tromey  <tromey@redhat.com>
598	    Dodji Seketeli  <dodji@redhat.com>
599
600	* include/line-map.h (struct line_maps::alloced_size_for_request):
601	New member.
602	* line-map.c (new_linemap): Use set->alloced_size_for_request to
603	get the actual allocated size of line maps.
604
6052011-10-15  Tom Tromey  <tromey@redhat.com>
606	    Dodji Seketeli  <dodji@redhat.com>
607
608	* line-map.h (struct linemap_stats): Declare new struct.
609	(linemap_get_statistics): Declare ...
610	* line-map.c (linemap_get_statistics):  ... new function.
611	* macro.c (num_expanded_macros_counter, num_macro_tokens_counter):
612	Declare new counters.
613	(enter_macro_context, replace_args): Update
614	num_macro_tokens_counter.
615	(cpp_get_token_1): Update num_expanded_macros_counter.
616
6172011-10-15  Tom Tromey  <tromey@redhat.com>
618	    Dodji Seketeli  <dodji@redhat.com>
619
620	* include/cpplib.h (struct cpp_options)<debug>: New struct member.
621	* include/line-map.h (linemap_dump_location): Declare ...
622	* line-map.c (linemap_dump_location): ... new function.
623
6242011-10-15  Tom Tromey  <tromey@redhat.com>
625	    Dodji Seketeli  <dodji@redhat.com>
626
627	* include/cpplib.h (struct cpp_options)<track_macro_expansion>:
628	New option.
629	* internal.h (struct macro_context): New struct.
630	(enum context_tokens_kind): New enum.
631	(struct cpp_context)<tokens_kind>: New member of type enum
632	context_tokens_kind.
633	(struct cpp_context)<macro>: Remove this.  Replace it with an enum
634	of macro and  macro_context.
635	(struct cpp_context)<direct_p>: Remove.
636	(_cpp_remaining_tokens_num_in_context): Declare new function.
637	* directives.c (destringize_and_run): Adjust.
638	* lex.c (_cpp_remaining_tokens_num_in_context)
639	(_cpp_token_from_context_at): Define new functions
640	(cpp_peek_token): Use them.
641	* init.c (cpp_create_reader): Initialize the base context to zero.
642	(_cpp_token_from_context_at): Define new static function.
643	(cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and
644	_cpp_token_from_context_at.
645	* macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New
646	members.
647	(enum macro_arg_token_kind): New enum.
648	(struct macro_arg_token_iter): New struct.
649	(maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context)
650	(alloc_expanded_arg_mem, ensure_expanded_arg_room)
651	(delete_macro_args, set_arg_token, get_arg_token_location)
652	(arg_token_ptr_at, macro_arg_token_iter_init)
653	(macro_arg_token_iter_get_token)
654	(macro_arg_token_iter_get_location, macro_arg_token_iter_forward)
655	(expanded_token_index, tokens_buff_new, tokens_buff_count)
656	(tokens_buff_last_token_ptr, tokens_buff_put_token_to)
657	(tokens_buff_add_token, tokens_buff_remove_last_token)
658	(reached_end_of_context, consume_next_token_from_context): New
659	static functions.
660	(cpp_get_token_1): New static function. Split and extended from
661	cpp_get_token.  Use reached_end_of_context and
662	consume_next_token_from_context.  Unify its return point.  Move
663	the location tweaking from cpp_get_token_with_location in here.
664	(cpp_get_token): Use cpp_get_token_1
665	(stringify_arg): Use the new arg_token_at.
666	(paste_all_tokens): Support tokens coming from extended tokens
667	contexts.
668	(collect_args): Return the number of collected arguments, by
669	parameter.  Store virtual locations of tokens that constitute the
670	collected args.
671	(funlike_invocation_p): Return the number of collected arguments,
672	by parameter.
673	(enter_macro_context): Add a parameter for macro expansion point.
674	Pass it to replace_args and to the "used" cpp callback.  Get the
675	number of function-like macro arguments from funlike_invocation_p,
676	pass it to the new delete_macro_args to free the memory used by
677	macro args.  When -ftrack-macro-expansion is in effect, for macros
678	that have no arguments, create a macro map for the macro expansion
679	and use it to allocate proper virtual locations for tokens
680	resulting from the expansion.  Push an extended tokens context
681	containing the tokens resulting from macro expansion and their
682	virtual locations.
683	(replace_args): Rename the different variables named 'count' into
684	variables with more meaningful names.  Create a macro map;
685	allocate virtual locations of tokens resulting from this
686	expansion.  Use macro_arg_token_iter to iterate over tokens of a
687	given macro.  Handle the case of the argument of
688	-ftrack-macro-expansion being < 2.  Don't free macro arguments
689	memory resulting from expand_arg here, as these are freed by the
690	caller of replace_arg using delete_macro_args now.  Push extended
691	token context.
692	(next_context, push_ptoken_context, _cpp_push_token_context)
693	(_cpp_push_text_context): Properly initialize the context.
694	(expand_arg): Use the new alloc_expanded_arg_mem,
695	push_extended_tokens_context, cpp_get_token_1, and set_arg_token.
696	(_cpp_pop_context): Really free the memory held by the context.
697	Handle freeing memory used by extended tokens contexts.
698	(cpp_get_token_with_location): Use cpp_get_token_1.
699	(cpp_sys_macro_p): Adjust.
700	(_cpp_backup_tokens): Support the new kinds of token contexts.
701	* traditional.c (recursive_macro): Adjust.
702
7032011-10-15  Tom Tromey  <tromey@redhat>
704	    Dodji Seketeli  <dodji@redhat.com>
705
706	* include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum
707	member.
708	(MAX_SOURCE_LOCATION): New constant.
709	(struct line_map_ordinary, struct line_map_macro): New structs.
710    	(struct line_map): Turn this into a union of the two above.  Add
711	comments.
712	(struct maps_info): New struct.
713	(struct line_maps)<info_ordinary, info_macro>: Two new fields.
714	These now carry the map information that was previously scattered
715	in struct line_maps.
716	(struct map_info::allocated): Fix comment.
717	(MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME)
718	(ORDINARY_MAP_STARTING_LINE_NUMBER)
719	(ORDINARY_MAP_INCLUDER_FILE_INDEX)
720	(ORDINARY_MAP_IN_SYSTEM_HEADER_P)
721	(ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO)
722	(MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS)
723	(MACRO_MAP_EXPANSION_POINT_LOCATION)
724	(LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO)
725	(LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE)
726	(LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP)
727	(LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED)
728	(LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE)
729	(LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP)
730	(LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED)
731	(LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE)
732	(LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP)
733	(LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT)
734	(LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map
735	information.
736	(linemap_check_ordinary, linemap_assert)
737	(linemap_location_before_p): New macros.
738	(linemap_position_for_line_and_column)
739	(linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token)
740	(linemap_macro_expansion_map_p)
741	(linemap_macro_map_loc_to_def_point)
742	(linemap_macro_map_loc_unwind_once)
743	(linemap_macro_map_loc_to_exp_point, linemap_step_out_once)
744	(linemap_get_source_line linemap_get_source_column)
745	(linemap_map_get_macro_name, linemap_get_file_path)
746	(linemap_location_in_system_header_p)
747	(linemap_location_from_macro_expansion_p): Declare new functions.
748	(SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION)
749	(LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this
750	accessors act on ordinary maps only.
751	(INCLUDED_FROM): Return NULL for main files; use the new
752	accessors.
753	(LINEMAP_POSITION_FOR_COLUMN): Use the new accessors.
754	(struct expanded_location): Move here from gcc/input.h
755	(linemap_resolve_location, linemap_expand_location)
756	(linemap_expand_location_full): Declare new functions.
757	* line-map.c: Include cpplib.h, internal.h
758	(linemap_enter_macro, linemap_add_macro_token)
759	(linemap_get_expansion_line, linemap_get_expansion_filename): New
760	functions that are private to libcpp.
761	(linemap_assert): New macro.
762	(linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point)
763	(linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point)
764	(linemap_macro_map_loc_unwind_toward_spelling)
765	(linemap_macro_map_loc_to_exp_point)
766	(first_map_in_common_1, first_map_in_common): New static
767	functions.
768	(new_linemap): Define new static functions.  Extracted and
769	enhanced from ...
770	(linemap_add): ... here.  Use linemap_assert in lieu of abort
771	previously.
772	(linemap_tracks_macro_expansion_locs_p)
773	(linemap_add_macro_token, linemap_macro_expansion_map_p)
774	(linemap_check_ordinary, linemap_macro_map_loc_to_exp_point)
775	(linemap_macro_map_loc_to_def_point)
776	(linemap_macro_map_loc_unwind_once)
777	(linemap_step_out_once, linemap_map_get_index)
778	(linemap_get_source_line,linemap_get_source_column)
779	(linemap_get_file_path, linemap_map_get_macro_name)
780	(linemap_location_in_system_header_p)
781	(linemap_location_originated_from_system_header_p)
782	(linemap_location_from_macro_expansion_p)
783	(linemap_tracks_macro_expansion_locs_p)
784	(linemap_resolve_location, linemap_expand_location)
785	(linemap_expand_location_full)
786	(linemap_tracks_macro_expansion_locs_p)
787	(linemap_position_for_line_and_column, linemap_compare_locations):
788	Define new public functions.
789	(linemap_init): Initialize ordinary and macro maps information in
790	the map set.
791	(linemap_check_files_exited): Use the new accessors.
792	(linemap_free): Remove this dead code.
793	(linemap_line_start): Assert this uses an ordinary map.  Adjust to
794	use the new ordinary map accessors and data structures.  Don't
795	overflow past the lowest possible macro token's location.
796	(linemap_position_for_column): Assert the ordinary maps of the map
797	set are really ordinary.  Use ordinary map accessors.
798	(linemap_lookup): Keep the same logic but generalize to allow
799	lookup of both ordinary and macro maps.  Do not crash when called
800	with an empty line table.
801	* directives-only.c (_cpp_preprocess_dir_only): Adjust to use the
802	new API of line-map.h.
803	* directives.c (start_directive, do_line, do_linemarker)
804	(do_linemarker): Likewise.
805	* files.c (_cpp_find_file, _cpp_stack_include, open_file_failed)
806	(make_cpp_dir, cpp_make_system_header): Likewise.
807	* init.c (cpp_read_main_file): Likewise.
808	* internal.h (CPP_INCREMENT_LINE): Likewise.
809	(linemap_enter_macro, linemap_add_macro_token)
810	(linemap_get_expansion_line, linemap_get_expansion_filename): New
811	functions private to libcpp.
812	* lex.c (_cpp_process_line_notes, _cpp_skip_block_comment)
813	(skip_line_comment, skip_whitespace, lex_raw_string)
814	(_cpp_lex_direct): Likewise.
815	* macro.c (_cpp_builtin_macro_text): Likewise.
816	(_cpp_aligned_alloc): Initialize the new name member of the macro.
817	* traditional.c (copy_comment, _cpp_scan_out_logical_line):
818	Likewise.
819	* errors.c (cpp_diagnostic): Adjust to new linemap API.
820
8212011-08-28  Dodji Seketeli  <dodji@redhat.com>
822
823	* line-map.c (linemap_add): Assert that reason must not be
824	LC_RENAME when called for the first time on a "main input file".
825
8262011-08-22  Gabriel Charette  <gchare@google.com>
827
828	* init.c (cpp_create_reader): Inititalize forced_token_location_p.
829	* internal.h (struct cpp_reader): Add field forced_token_location_p.
830	* lex.c (_cpp_lex_direct): Use forced_token_location_p.
831	(cpp_force_token_locations): New.
832	(cpp_stop_forcing_token_locations): New.
833
8342011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
835
836	PR libstdc++/1773
837	* init.c (cpp_init_builtins): Define __cplusplus 19971L.
838
8392011-08-18  Joseph Myers  <joseph@codesourcery.com>
840
841	* include/cpplib.h (struct cpp_options): Fix typo.
842
8432011-08-18  Joseph Myers  <joseph@codesourcery.com>
844
845	* include/cpplib.h (struct cpp_options): Add rliterals.
846	* init.c  (struct lang_flags, lang_defaults): Add rliterals.
847	(cpp_set_lang): Set rliterals option.
848	(cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__.
849	* lex.c (_cpp_lex_direct): Only accept raw strings if rliterals.
850
8512011-08-15  Gabriel Charette  <gchare@google.com>
852
853	* include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove.
854	Update all users to use linemap_position_for_column instead.
855
8562011-07-28  Gabriel Charette  <gchare@google.com>
857
858	* include/line-map.h (struct line_maps):
859	Remove unused field last_listed. Update all users.
860
8612011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
862
863	* configure.ac: Set need_64bit_hwint to yes for x86 targets.
864	* configure: Regenerated.
865
8662011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
867
868	* system.h [__cplusplus]: Wrap C function declarations in extern "C".
869
8702011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
871	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
872
873	PR bootstrap/49794
874	* configure.ac: Test AM_ICONV with CXX.
875	* configure: Regenerate.
876	* system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++.
877
8782011-07-15  Dodji Seketeli  <dodji@redhat.com>
879
880	* directives.c (struct if_stack): Use source_location as type
881	here.
882	* include/cpplib.h (struct cpp_callbacks)<include, define, undef,
883	indent, def_pragma, used_define, used_undef>: Properly use
884	source_location as parameter type, rather than unsigned int.
885
8862011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
887
888	PR target/39150
889	* configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
890	like i[34567]86-*-solaris2.1[0-9]*.
891	* configure: Regenerate.
892
8932011-06-16  Jason Merrill  <jason@redhat.com>
894
895	PR c++/45399
896	* lex.c (lex_raw_string): Don't check for embedded NUL.
897
8982011-06-06  Dodji Seketeli  <dodji@redhat.com>
899
900	PR preprocessor/48532
901	* directives.c (do_pragma): Don't forget the invocation location
902	when parsing the pragma name of a namespaced pragma directive.
903
9042011-05-29  John Tytgat  <John.Tytgat@aaug.net>
905
906	* files.c (read_file_guts): Add test on non-zero value of S_ISREG.
907
9082011-05-22  Uros Bizjak  <ubizjak@gmail.com>
909
910	PR target/49104
911	* lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
912	is defined.  Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
913
9142011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
915
916	* system.h (ENUM_BITFIELD): Remove.
917
9182011-04-24  Jakub Jelinek  <jakub@redhat.com>
919
920	PR preprocessor/48740
921	* lex.c (lex_raw_string): When raw string ends with
922	??) followed by raw prefix and ", ensure it is preprocessed
923	with ??) rather than ??].
924
9252011-04-20  Jim Meyering  <meyering@redhat.com>
926
927	* files.c (destroy_cpp_file): Remove useless if-before-free.
928	* init.c (cpp_destroy): Likewise.
929	* macro.c (replace_args): Likewise.
930	* pch.c (cpp_valid_state): Likewise.
931
9322011-03-25  Kai Tietz  <ktietz@redhat.com>
933
934	* files.c (file_hash_eq): Use filename_cmp
935	instead of strcmp.
936	(nonexistent_file_hash_eq): Likewise.
937	(remap_filename): Likewise.
938	Handle absolute DOS-path,
939	(append_file_to_dir): Check for IS_DIR_SEPARATOR
940	instead of slash.
941	(read_name_map): Likewise.
942	* linemap.c (linemap_add): Use filename_cmp
943	instead of strcmp.
944	* mkdeps.c (apply_vpath): Use filename_ncmp
945	instead of strncmp.
946	(deps_restore): Use filename_cmp instead of
947	strcmp.
948	* init.c (read_original_directory): Use
949	IS_DIR_SEPARATOR instead of checking for slash.
950
9512011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
952
953	PR preprocessor/48192
954	* directives.c (do_ifdef): Do not consider conditional macros as
955	being defined.
956	(do_ifndef): Ditto.
957	* expr.c (parse_defined): Ditto.
958
9592011-03-18  Richard Henderson  <rth@redhat.com>
960
961	PR bootstrap/45381
962	* lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5.
963
9642011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
965            Jakub Jelinek  <jakub@redhat.com>
966
967	PR preprocessor/39213
968	* directives.c (end_directive): Call _cpp_remove_overlay for deferred
969	pragmas as well in traditional mode.
970
9712010-11-17  Ian Lance Taylor  <iant@google.com>
972
973	PR bootstrap/45538
974	* configure.ac: Use AC_USE_SYSTEM_EXTENSIONS.  Remove switch of
975	AC_LANG based on ENABLE_BUILD_WITH_CXX.
976
9772010-11-16  Kai Tietz  <kai.tietz@onevision.com>
978
979	PR preprocessor/17349
980	* lex.c (save_comment): Handle in argument passing c++
981	comments special.
982
9832010-11-02  Ian Lance Taylor  <iant@google.com>
984
985	* configure.ac: Use AC_SYS_LARGEFILE.
986	* configure: Rebuild.
987	* config.in: Rebuild.
988
9892010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
990
991	* line-map.h (source_location): Remove obsolete comment
992	mentioning location_s.
993
9942010-09-29  Kai Tietz  <kai.tietz@onevision.com>
995
996	PR preprocessor/45362
997	* directives.c (cpp_pop_definition): Make static.
998	(do_pragma_push_macro): Reworked to store text
999	definition.
1000	(do_pragma_pop_macro): Add free text definition.
1001	(cpp_push_definition): Removed.
1002	* include/cpplib.h (cpp_push_definition): Removed.
1003	(cpp_pop_definition): Likewise.
1004	* internal.h (def_pragma_macro): Remove member 'value'
1005	and add new members 'definition', 'line',
1006	'syshdr', 'sued' and 'is_undef'.
1007	* pch.c (_cpp_restore_pushed_macros): Rework to work
1008	on text definition and store additional macro flags.
1009	(_cpp_save_pushed_macros): Likewise.
1010
10112010-09-29  Joseph Myers  <joseph@codesourcery.com>
1012
1013	* include/cpplib.h (cpp_options): Rename warn_deprecated,
1014	warn_traditional, warn_long_long and pedantic.
1015	* directives.c (directive_diagnostics, _cpp_handle_directive):
1016	Update names of cpp_options members.
1017	* expr.c (cpp_classify_number, eval_token): Update names of
1018	cpp_options members.
1019	* init.c (cpp_create_reader, post_options): Update names of
1020	cpp_options members.
1021	* internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
1022	cpp_options members.
1023	* macro.c (parse_params): Update names of cpp_options members.
1024
10252010-09-15  Ian Lance Taylor  <iant@google.com>
1026
1027	* init.c: Fix type name in comment.
1028
10292010-08-31  Jakub Jelinek  <jakub@redhat.com>
1030
1031	PR preprocessor/45457
1032	* expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if
1033	needed.
1034	* directives.c (do_ifdef, do_ifndef): Likewise.
1035
10362010-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1037
1038	* system.h [HAVE_INTTYPES_H]: Include inttypes.h.
1039
10402010-08-24  Richard Henderson  <rth@redhat.com>
1041
1042	PR bootstrap/45376
1043	* configure.ac (HAVE_SSE4): New check.
1044	* configure, config.in: Rebuild.
1045	* lex.c (search_line_sse42): Omit if !HAVE_SSE4.
1046
10472010-08-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1048
1049	* lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
1050	etc. on Solaris 2/x86.
1051
10522010-08-21  Richard Henderson  <rth@redhat.com>
1053	    Andi Kleen <ak@linux.intel.com>
1054	    David S. Miller  <davem@davemloft.net>
1055
1056	* configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
1057	(ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
1058	(ptrdiff_t): Check via AC_CHECK_TYPE.
1059	* config.in, configure: Rebuild.
1060	* system.h: Include stdint.h, if available.
1061	* lex.c (WORDS_BIGENDIAN): Provide default.
1062	(acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
1063	acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
1064	search_line_sse2, search_line_sse42, init_vectorized_lexer,
1065	search_line_fast): New.
1066	(_cpp_clean_line): Use search_line_fast.  Restructure the fast
1067	loop to make it clear when we're leaving the loop.  Stay in the
1068	fast loop for non-trigraph '?'.
1069
10702010-06-11  Jakub Jelinek  <jakub@redhat.com>
1071
1072	* include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro
1073	callback.
1074	(enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER.
1075	(cpp_macro_definition): Remove const qual from second argument.
1076	* macro.c (enter_macro_context): Call user_builtin_macro callback for
1077	NODE_BUILTIN !NODE_USED macros.
1078	(warn_of_redefinition): Likewise.  Remove const qual from second
1079	argument.
1080	(cpp_macro_definition): Likewise.
1081	* pch.c (write_macdef, save_macros): Call user_builtin_macro callback
1082	for NODE_BUILTIN !NODE_USED macros.
1083
10842010-06-10  Joseph Myers  <joseph@codesourcery.com>
1085
1086	* include/cpplib.h (struct cpp_options): Remove show_column.
1087	* init.c (cpp_create_reader, post_options): Don't set show_column.
1088
10892010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
1090
1091	PR bootstrap/44432
1092	* configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++,
1093	check that C++ compiler works.
1094	* configure: Regenerate.
1095
10962010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1097
1098	* include/symtab.h (ht_identifier_ptr): New.
1099
11002010-06-03  Joern Rennecke <joern.rennecke@embecosm.com>
1101	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1102
1103	PR bootstrap/42798
1104	* configure.ac: Check for declaration of 'basename(char *)'.
1105	* configure: Regenerate.
1106	* config.in: Regenerate.
1107
11082010-04-25  Joseph Myers  <joseph@codesourcery.com>
1109
1110	* include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X.
1111	* init.c (lang_defaults): Add entries for new language variants.
1112	(cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X
1113	variants.
1114
11152010-04-09  Manuel López-Ibáñez <manu@gcc.gnu.org>
1116
1117	PR cpp/43195
1118	* files.c (report_missing_guard): Test for #pragma once.
1119
11202010-04-07  Simon Baldwin  <simonb@google.com>
1121
1122	* directives.c (do_diagnostic): Add warning reason argument,
1123	call appropriate error reporting function for code.
1124	(directive_diagnostics): Call specific warning functions with
1125	warning reason where appropriate.
1126	(do_error, do_warning, do_pragma_dependency): Add warning reason
1127	argument to do_diagnostic calls.
1128	* macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
1129	_cpp_create_definition): Call specific warning functions with
1130	warning reason where appropriate.
1131	* Makefile.in: Add new diagnostic functions to gettext translations.
1132	* include/cpplib.h (struct cpp_callbacks): Add warning reason code
1133	to error callback.
1134	(CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
1135	CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
1136	(CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
1137	CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
1138	CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
1139	CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
1140	CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
1141	CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
1142	CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
1143	warning reason codes.
1144	(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
1145	cpp_warning_with_line, cpp_pedwarning_with_line,
1146	cpp_warning_with_line_syshdr): New specific error reporting functions.
1147	* pch.c (cpp_valid_state): Call specific warning functions with
1148	warning reason where appropriate.
1149	* errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
1150	diagnostic handlers.
1151	(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
1152	cpp_warning_with_line, cpp_pedwarning_with_line,
1153	cpp_warning_with_line_syshdr): New specific error reporting functions.
1154	* expr.c (cpp_classify_number, eval_token, num_unary_op): Call
1155	specific warning functions with warning reason where appropriate.
1156	* lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
1157	warn_about_normalization, lex_identifier_intern, lex_identifier,
1158	_cpp_lex_direct): Ditto.
1159	* charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
1160	narrow_str_to_charconst): Ditto.
1161
11622010-04-06  Jakub Jelinek  <jakub@redhat.com>
1163
1164	PR preprocessor/43642
1165	* lex.c (lex_raw_string): Change type of TYPE variable to
1166	unsigned char.
1167
11682010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1169
1170	* aclocal.m4: Regenerate.
1171
11722010-03-29  Jason Merrill  <jason@redhat.com>
1173
1174	More N3077 raw string changes
1175	* charset.c (cpp_interpret_string): Don't transform UCNs in raw
1176	strings.
1177	* lex.c (bufring_append): Split out from...
1178	(lex_raw_string): ...here.  Undo trigraph and line splicing
1179	transformations.  Do process line notes in multi-line literals.
1180	(_cpp_process_line_notes): Ignore notes that were already handled.
1181
1182	Some raw string changes from N3077
1183	* charset.c (cpp_interpret_string): Change inner delimiters to ().
1184	* lex.c (lex_raw_string): Likewise.  Also disallow '\' in delimiter.
1185
11862010-02-11  Jakub Jelinek  <jakub@redhat.com>
1187
1188	* init.c (read_original_filename): Don't call read_original_directory
1189	if _cpp_handle_directive returns 0.
1190
11912010-01-01  Joseph Myers  <joseph@codesourcery.com>
1192
1193	PR preprocessor/41947
1194	* expr.c (cpp_classify_number): Give error for hexadecimal
1195	floating-point constant with no digits before or after point.
1196
11972009-11-20  Arnaud Charlet  <charlet@adacore.com>
1198
1199	* macro.c (enter_macro_context): Call cb.used callback if defined.
1200	* directives.c (do_idef, do_ifndef): Ditto.
1201	* include/cpplib.h (struct cpp_callbacks): Add used callback.
1202
12032009-11-11  Kai Tietz  <kai.tietz@onevision.com>
1204
1205	* directives.c (do_pragma_push_macro): New pragma handler.
1206	(do_pragma_pop_macro): Likewise.
1207	(_cpp_init_internal_pragmas): Add push_macro and
1208	pop_macro handler to internal pragmas.
1209	(lex_macro_node_from_str): Removed.
1210	(cpp_push_definition): Replace lex_macro_node_from_str
1211	by _cpp_lex_identifier.
1212	(cpp_pop_definition): Likewise.
1213	* internal.h (_cpp_lex_identifier): New prototype.
1214	(def_pragma_macro): New structure.
1215	(cpp_reader): New member pushed_macros.
1216	* lex.c (_cpp_lex_identifier): New function.
1217	(lex_identifier_intern): New function.
1218	* init.c (cpp_create_reader): Initialize pushed_macros
1219	member.
1220	(cpp_destroy): Free elements in pushed_macros member.
1221	* pch.c (_cpp_save_pushed_macros): New function.
1222	(_cpp_restore_pushed_macros): Likewise.
1223	(_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
1224	(cpp_read_state): Use _cpp_restore_pushed_macros.
1225
12262009-10-19  Jakub Jelinek  <jakub@redhat.com>
1227
1228	* charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
1229	(_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
1230	and char32_cset_desc.
1231	(converter_for_type): Handle CPP_UTF8STRING.
1232	(cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
1233	* directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
1234	(parse_include): Reject raw strings.
1235	* include/cpplib.h (CPP_UTF8STRING): New token type.
1236	* internal.h (struct cpp_reader): Add utf8_cset_desc field.
1237	* lex.c (lex_raw_string): New function.
1238	(lex_string): Handle u8 string literals, call lex_raw_string
1239	for raw string literals.
1240	(_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
1241	sequences.
1242	* macro.c (stringify_arg): Handle CPP_UTF8STRING.
1243
12442009-10-14  Jakub Jelinek  <jakub@redhat.com>
1245
1246	PR preprocessor/41543
1247	* include/line-map.h (RESERVED_LOCATION_COUNT): Define.
1248	* line-map.c (linemap_init): Initialize highest_location and
1249	highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
1250
12512009-10-09  Jason Merrill  <jason@redhat.com>
1252
1253	* charset.c (_cpp_valid_ucn): Update C++0x restrictions.
1254
12552009-10-09  Neil Vachharajani <nvachhar@google.com>
1256
1257	* directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and
1258	sccs.
1259
12602009-09-23  Loren J. Rittle  <ljrittle@acm.org>
1261
1262	* configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h.
1263	* configure: Rebuilt.
1264
12652009-09-22  Richard Guenther  <rguenther@suse.de>
1266
1267	PR pch/38987
1268	* files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
1269
12702009-09-18  Chris Demetriou  <cgd@google.com>
1271
1272	PR preprocessor/28435:
1273	* include/cpplib.h (struct cpp_options): Add new member
1274	deps.need_preprocessor_output.
1275	* files.c (open_file_failed): If preprocessor output is needed
1276	always report an error.
1277
12782009-09-13  Kai Tietz  <kai.tietz@onevision.com>
1279
1280	* configure.ac: Set for i?86-w64-mingw*
1281	need_64bit_hwint to yes.
1282	* configure: Regenerated.
1283
12842009-09-10  Jason Merrill  <jason@redhat.com>
1285
1286	* directives.c (cpp_define): constify.
1287
12882009-09-02  Ian Lance Taylor  <iant@google.com>
1289
1290	* macro.c (stringify_arg): Escape CPP_WCHAR tokens.
1291
12922009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1293
1294	* configure.ac (AC_PREREQ): Bump to 2.64.
1295
12962009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1297
1298	* aclocal.m4: Regenerate.
1299	* config.in: Regenerate.
1300	* configure: Regenerate.
1301
13022009-08-17  Tom Tromey  <tromey@redhat.com>
1303
1304	PR preprocessor/41067:
1305	* charset.c (convert_escape): Add missing ":" to error text.
1306
13072009-07-27  Douglas B Rupp  <rupp@gnat.com>
1308
1309	* include/cpplib.h (INO_T_CPP): New macro.
1310	(struct cpp_dir): Use it.
1311
13122009-07-20  Jerry Quinn  <jlquinn@optonline.net>
1313
1314	PR regression/40800
1315	* configure.ac: Use = instead of == for testing
1316	ENABLE_BUILD_WITH_CXX.
1317	* configure: Rebuild.
1318
13192009-07-17  Jerry Quinn  <jlquinn@optonline.net>
1320
1321	* directives.c (do_linemarker, do_line): Use CPP_STRING for
1322	ignored enum value.
1323	* files.c (find_file_in_dir): Add cast from void* to char*.
1324	* symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
1325	* Makefile.in: (WARN_CFLAGS): Use general and C-specific
1326	warnings.
1327	(CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
1328	ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
1329	COMPILER_FLAGS): New.
1330	(DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
1331	(COMPILE.base): Use COMPILER instead of CC.  Use COMPILER_FLAGS
1332	instead of ALL_CFLAGS.
1333	* configure.ac: Invoke AC_PROG_CXX.  Separate C-specific warnings
1334	from other warnings.  Add -Wc++-compat to C-specific warnings.
1335	Check for --enable-build-with-cxx.  Set and substitute
1336	ENABLE_BUILD_WITH_CXX.  Invoke ZW_PROG_COMPILER_DEPENDENCIES
1337	according to ENABLE_BUILD_WITH_CXX.  Invoke AC_LANG before
1338	AC_CHECK_HEADERS.
1339	* configure: Rebuild.
1340	* include/cpp-id-data.h: Remove extern "C".
1341	* include/line-map.h: Likewise.
1342	* include/mkdeps.h: Likewise.
1343	* include/symtab.h: Likewise.
1344	* internal.h: Likewise.
1345
13462009-06-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1347
1348	* directives.c (parse_include): Add location argument. Update all
1349	calls.
1350	(parse_answer): Likewise.
1351	(do_include_common): Error with exact location.
1352	(parse_assertion): Likewise.
1353
13542009-06-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1355
1356	* expr.c (num_div_op): Take explicit location.
1357
13582009-06-17  Ian Lance Taylor  <iant@google.com>
1359
1360	* include/cpplib.h (progname): Don't declare.
1361
13622009-06-12  Ian Lance Taylor  <iant@google.com>
1363
1364	* include/cpplib.h (struct cpp_options): Add
1365	warn_cxx_operator_names field.
1366	(NODE_WARN_OPERATOR): Define.
1367	(struct cpp_hashnode): Increase flags field to 10 bits, decrease
1368	type to 6 bits.
1369	* init.c (mark_named_operators): Add flags parameter.
1370	(cpp_post_options): Pick flags value to pass to
1371	mark_named_operators.
1372	* lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that
1373	identifier is an operator name in C++.
1374
13752009-06-01  Aldy Hernandez  <aldyh@redhat.com>
1376
1377	* include/line-map.h (LAST_SOURCE_COLUMN): New.
1378
13792009-06-01  Ian Lance Taylor  <iant@google.com>
1380
1381	* include/cpp-id-data.h: Add extern "C".
1382	* include/line-map.h: Likewise.
1383	* include/mkdeps.h: Likewise.
1384	* include/symtab.h: Likewise.
1385	* internal.h: Likewise.
1386
13872009-05-15  Ian Lance Taylor  <iant@google.com>
1388
1389	* include/cpplib.h (enum cpp_builtin_type): Rename from enum
1390	builtin_type.  Change all uses.
1391
13922009-05-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1393
1394	PR cpp/36674
1395	* directives (do_linemarker): Compensate for the increment in
1396	location that occurs when we reach the end of line.
1397	* files (_cpp_stack_include): Mention _cpp_find_file in the
1398	comment.
1399
14002009-05-10  Joseph Myers  <joseph@codesourcery.com>
1401
1402	* include/cpplib.h (enum cpp_token_fld_kind): Add
1403	CPP_TOKEN_FLD_TOKEN_NO.
1404	(struct cpp_macro_arg, struct cpp_identifier): Define.
1405	(union cpp_token_u): Use struct cpp_identifier for identifiers.
1406	Use struct cpp_macro_arg for macro arguments.  Add token_no for
1407	CPP_PASTE token numbers.
1408	* directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
1409	do_pragma_poison, parse_assertion): Use val.node.node in place of
1410	val.node.
1411	* expr.c (parse_defined, eval_token): Use val.node.node in place
1412	of val.node.
1413	* lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
1414	cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
1415	cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
1416	place of val.arg_no.  Use val.node.node in place of val.node.
1417	* macro.c (replace_args, cpp_get_token, parse_params,
1418	lex_expansion_token, create_iso_definition, cpp_macro_definition):
1419	Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
1420	Use val.node.node in place of val.node.
1421
14222009-05-03  Joseph Myers  <joseph@codesourcery.com>
1423
1424	* charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte
1425	UTF-8 sequences.
1426
14272009-04-25  Joseph Myers  <joseph@codesourcery.com>
1428
1429	PR preprocessor/39559
1430	* expr.c (cpp_interpret_integer): Use a pedwarn for decimal
1431	constants larger than intmax_t in C99 mode.
1432
14332009-04-21  Taras Glek <tglek@mozilla.com>
1434
1435	* include/cpp-id-data.h: Update GTY annotations to new syntax.
1436	* include/cpplib.h: Likewise.
1437	* include/line-map.h: Likewise.
1438	* include/symtab.h: Likewise.
1439
14402009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1441
1442	PR c++/14875
1443	* lex.c (cpp_type2name): Take a flags parameter. Call
1444	cpp_named_operator2name for named operators and cpp_digraph2name
1445	for digraphs.
1446	(cpp_digraph2name): New.
1447	(cpp_spell_token): Use it.
1448	(cpp_output_token): Likewise.
1449	* include/cpplib.h (cpp_type2name): Update declaration.
1450	* init.c (cpp_named_operator2name): New.
1451	* internal.h (cpp_named_operator2name): Declare.
1452
14532009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1454
1455	PR c++/13358
1456	* init.c (cpp_create_reader): Wlong_long is disabled by default.
1457	* expr.c (cpp_classify_number): Give different messages for C and
1458	C++ front-ends.
1459
14602009-04-19  Joseph Myers  <joseph@codesourcery.com>
1461
1462	PR preprocessor/20078
1463	* include/cpp-id-data.h (struct cpp_macro): Add extra_tokens
1464	field.
1465	* include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define.
1466	(struct cpp_token): Change flags to unsigned short.
1467	* lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens.
1468	(_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens.
1469	(cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE
1470	tokens.
1471	* macro.c (macro_real_token_count): New.
1472	(enter_macro_context, replace_args): Use macro_real_token_count.
1473	(create_iso_definition): Record whitespace surrounding and digraph
1474	spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH.
1475	Set extra_tokens and save CPP_PASTE tokens with arg_no set for
1476	multiple consecutive ## tokens.
1477	(_cpp_create_definition): Initialize extra_tokens.
1478	(cpp_macro_definition): Use macro_real_token_count.
1479
14802009-04-18  Joseph Myers  <joseph@codesourcery.com>
1481
1482	* directives.c (parse_include): Pass true to check_eol.
1483
14842009-04-18  Joseph Myers  <joseph@codesourcery.com>
1485
1486	PR preprocessor/39646
1487	* include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM.
1488	* line-map.c (linemap_add): Handle LC_RENAME_VERBATIM.
1489	* directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in
1490	place of LC_RENAME.
1491
14922009-04-18  Joseph Myers  <joseph@codesourcery.com>
1493
1494	PR preprocessor/39647
1495	* directives.c (check_eol): Add parameter expand.
1496	(do_undef, parse_include, do_line, do_linemarker, do_ident,
1497	do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef,
1498	do_else, do_endif, do_assert, do_unassert): All callers changed.
1499	Pass true from do_line, false elsewhere.
1500
15012009-04-12  Joseph Myers  <joseph@codesourcery.com>
1502
1503	PR preprocessor/31869
1504	* macro.c (stringify_arg): Handle NULL source token in padding
1505	token where previous padding token did not have source token with
1506	preceding whitespace.
1507
15082009-04-09  Jakub Jelinek  <jakub@redhat.com>
1509
1510	* Makefile.in: Change copyright header to refer to version
1511	3 of the GNU General Public License and to point readers at the
1512	COPYING3 file and the FSF's license web page.
1513	* charset.c: Likewise.
1514	* directives-only.c: Likewise.
1515	* directives.c: Likewise.
1516	* errors.c: Likewise.
1517	* expr.c: Likewise.
1518	* files.c: Likewise.
1519	* identifiers.c: Likewise.
1520	* include/cpp-id-data.h: Likewise.
1521	* include/cpplib.h: Likewise.
1522	* include/line-map.h: Likewise.
1523	* include/mkdeps.h: Likewise.
1524	* include/symtab.h: Likewise.
1525	* init.c: Likewise.
1526	* internal.h: Likewise.
1527	* lex.c: Likewise.
1528	* line-map.c: Likewise.
1529	* macro.c: Likewise.
1530	* makeucnid.c: Likewise.
1531	* mkdeps.c: Likewise.
1532	* pch.c: Likewise.
1533	* symtab.c: Likewise.
1534	* system.h: Likewise.
1535	* traditional.c: Likewise.
1536	* ucnid.tab: Likewise.
1537	* ucnid.h: Regenerate.
1538
15392009-04-01  Janis Johnson  <janis187@us.ibm.com>
1540
1541	PR c/39027
1542	* include/cpplib.h (CPP_N_DEFAULT): Define.
1543	* expr.c (interpret_float_suffix): Recognize d or D for double,
1544	return new value for default.
1545	(cpp_classify_number): Issue pedwarn for use of d or D in suffix.
1546
1547	PR c/33466
1548	* expr.c (interpret_float_suffix): Reject invalid suffix that uses
1549	letters from decimal float and fixed-point suffixes.
1550
15512009-03-31  Joseph Myers  <joseph@codesourcery.com>
1552
1553	PR preprocessor/15638
1554	* files.c (_cpp_find_file): Call open_file_failed after diagnosing
1555	invalid PCH.
1556	(open_file_failed): Make error for missing file fatal.
1557	* include/cpplib.h (CPP_DL_FATAL): Define.
1558
15592009-03-30  Sergiy Vyshnevetskiy  <serg@vostok.net>
1560
1561	PR preprocessor/31932:
1562	* internal.h: Don't mention HAVE_ICONV_H.
1563	* configure, config.in: Rebuild.
1564	* configure.ac: Don't check for iconv.h.
1565
15662009-03-30  Tom Tromey  <tromey@redhat.com>
1567
1568	PR preprocessor/39512:
1569	* line-map.c (linemap_init): Initialize 'reallocator' field.
1570
15712009-03-30  Jakub Jelinek  <jakub@redhat.com>
1572
1573	PR target/39558
1574	* macro.c (cpp_get_token): If macro_to_expand returns NULL
1575	and used some tokens, add CPP_PADDING before next token.
1576
15772009-03-29  Joseph Myers  <joseph@codesourcery.com>
1578
1579	PR preprocessor/34695
1580	* makedepend.c: Remove.
1581	* Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove.
1582	(all, clean, TAGS_SOURCES, include): Remove makedepend handling.
1583	* directives.c (cpp_errors): Remove.
1584	* errors.c (print_location, _cpp_begin_message, v_message):
1585	Remove.
1586	(cpp_error, cpp_error_with_line): Always use error callback.
1587	(cpp_error, cpp_error_with_line, cpp_errno): Return bool.
1588	* include/cpplib.h (cpp_options): Remove pedantic_errors,
1589	inhibit_warnings, warn_system_headers, inhibit_errors,
1590	warnings_are_errors, client_diagnostic.
1591	(cpp_callbacks): Add extra arguments to error callback; make it
1592	return bool.
1593	(cpp_finish): Return void.
1594	(cpp_destroy): Remove inaccurate comment about return value.
1595	(cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove.
1596	(CPP_DL_NOTE): Define.
1597	* include/line-map.h (linemap_print_containing_files): Remove.
1598	* init.c (cpp_finish): Do not check for or return number of
1599	errors.
1600	* internal.h (cpp_reader): Remove errors field.
1601	* line-map.c (linemap_print_containing_files): Remove.
1602	* macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message
1603	about previous definition.  Only emit it if previous diagnostic
1604	was emitted.
1605
16062009-03-28  Joseph Myers  <joseph@codesourcery.com>
1607
1608	* Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not
1609	mkinstalldirs.
1610
16112009-03-18  Jakub Jelinek  <jakub@redhat.com>
1612
1613	* include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
1614
16152009-02-21  Joseph Myers  <joseph@codesourcery.com>
1616
1617	* lex.c (lex_string): Return a CPP_LESS token for missing '>' in a
1618	header name.
1619	(_cpp_lex_direct): Handle this.
1620
16212009-02-15  Richard Guenther  <rguenther@suse.de>
1622
1623	Revert last change.
1624
16252009-02-13  Richard Guenther  <rguenther@suse.de>
1626
1627	* configure.ac: Enable LFS.
1628	* configure: Re-generate.
1629	* config.in: Likewise.
1630
16312009-01-05  Ben Elliston  <bje@au.ibm.com>
1632
1633	* Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
1634	(.po.pox): Likewise.
1635	(po/$(PACKAGE).pot): Likewise.
1636
16372008-12-10  Alexandre Oliva  <aoliva@redhat.com>
1638
1639	PR target/37033
1640	* pch.c (cpp_valid_state): Improve message for poisoned symbols.
1641	Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.
1642
16432008-11-29  Joseph Myers  <joseph@codesourcery.com>
1644
1645	* lex.c (cpp_token_len): Use 6 as default length.
1646
16472008-10-31  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1648
1649	* expr.c (struct op): Add location.
1650	(_cpp_parse_expr): Propagate locations throught the stack
1651	of expressions.
1652	(reduce): Likewise.
1653	(check_promotion): Use explicit location in errors.
1654
16552008-10-05  Matthew Gingell  <gingell@adacore.com>
1656	    Arnaud Charlet  <charlet@adacore.com>
1657
1658	* include/cpplib.h (cpp_comments, cpp_comment_table): New structs.
1659	(cpp_get_comments): New function.
1660	* internal.h (struct cpp_reader): Add comments field.
1661	* init.c (cpp_destroy): Free comments.
1662	* lex.c (store_comment, cpp_get_comments): New functions.
1663	(comments): New struct.
1664	(save_comment): Store comments in comments struct.
1665
16662008-09-18  Simon Baldwin  <simonb@google.com>
1667
1668	* include/cpplib.h (struct cpp_options): Add new boolean flag
1669	warn_builtin_macro_redefined.
1670	* init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
1671	* (struct builtin_operator): Split out from previous struct builtin,
1672	enhance extra const correctness.
1673	* (struct builtin_macro): Split out from previous struct builtin, add
1674	new always_warn_if_redefined flag, enhance const correctness.
1675	* (mark_named_operators): Use struct builtin_operator.
1676	* (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
1677	to builtins selectively.
1678	* macro.c (warn_of_redefinition): Return false if a builtin macro
1679	is not flagged with NODE_WARN.
1680
16812008-07-31  Jakub Jelinek  <jakub@redhat.com>
1682
1683	PR preprocessor/36649
1684	* files.c (struct report_missing_guard_data): New type.
1685	(report_missing_guard): Put paths into an array instead of printing
1686	them right away.  Return 1 rather than 0.
1687	(report_missing_guard_cmp): New function.
1688	(_cpp_report_missing_guards): Sort and print paths gathered by
1689	report_missing_guard callback.
1690
16912008-07-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1692
1693	PR 28079
1694	* directives.c (strtolinenum): Handle overflow.
1695	(do_line): Give a warning if line number overflowed.
1696	(do_linemarker): Update call to strtolinenum.
1697
16982008-07-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1699
1700	* include/line-map.h (linenum_type): New typedef.
1701	(struct line_map): Use it.
1702	(SOURCE_LINE): Second arguments is a LOCATION not a LINE.
1703	(SOURCE_COLUMN): Likewise.
1704	* macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store
1705	source_location values in a variable of type linenum_type.
1706	* directives.c (struct if_stack): Use linenum_type.
1707	(strtoul_for_line): Rename as strtolinenum.
1708	(do_line): Use linenum_type.
1709	(do_linemarker): Use linenum_type and strtolinenum.
1710	(_cpp_do_file_change): Use linenum_t.
1711	* line-map.c (linemap_add): Likewise.
1712	(linemap_line_start): Likewise.
1713	* traditional.c (struct fun_macro): 'line' is a source_location.
1714	* errors.c (print_location): Use linenum_type.
1715	* directives-only.c (_cpp_preprocess_dir_only): Likewise.
1716	* internal.h (CPP_INCREMENT_LINE): Likewise.
1717	* lex.c (_cpp_skip_block_comment): Use source_location.
1718
17192008-07-14  Ben Elliston  <bje@au.ibm.com>
1720
1721	* include/cpplib.h (NODE_CONDITIONAL): New.
1722	(struct cpp_callbacks): New macro_to_expand field.
1723	(struct cpp_hashnode): Adjust size of flags and type fields.
1724	(cpp_peek_token): Prototype.
1725	* lex.c (cpp_peek_token): New function.
1726	(_cpp_temp_token): Protect pre-existing lookaheads.
1727	* macro.c (cpp_get_token): Expand any conditional macros.
1728	(_cpp_backup_tokens_direct): New.
1729	(_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
1730	(warn_of_redefinition): Silently allow redefined conditional
1731	macros.
1732	(_cpp_create_definition): Remove the conditional flag when a user
1733	defines one of the conditional macros.
1734	* internal.h (_cpp_backup_tokens_direct): New prototype.
1735
17362008-06-13  Andrew Haley  <aph@redhat.com>
1737
1738	PR preprocessor/33305
1739	* macro.c (replace_args): Print a warning for empty macro
1740	arguments in C89 and C++.
1741
17422008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1743
1744	* Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.
1745	* configure: Regenerate.
1746
17472008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1748
1749	* Makefile.in (datarootdir): New variable.
1750
17512008-06-12  H.J. Lu  <hongjiu.lu@intel.com>
1752
1753	PR preprocessor/36479
1754	* charset.c (cpp_interpret_string_notranslate): Also set
1755	narrow_cset_desc.width.
1756
17572008-06-07  Joseph Myers  <joseph@codesourcery.com>
1758
1759	* configure.ac (parisc*64*-*-*): Remove.
1760	* configure: Regenerate.
1761
17622008-05-30  Tom Tromey  <tromey@redhat.com>
1763
1764	PR preprocessor/36320:
1765	* internal.h (_cpp_parse_expr): Update.
1766	* expr.c (_cpp_parse_expr): Add 'is_if' argument.  Update error
1767	messages.
1768	* directives.c (do_if): Update.
1769	(do_elif): Require expression if processing group.
1770
17712008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1772
1773	* include/cpplib.h (struct cpp_dir): Add new field, canonical_name.
1774
17752008-05-21  Tom Tromey  <tromey@redhat.com>
1776
1777	PR preprocessor/27777:
1778	* lex.c (cpp_output_line_to_string): New function.
1779	* internal.h (_cpp_begin_message): Don't declare.
1780	* errors.c (_cpp_begin_message): Now static.
1781	* include/cpplib.h (cpp_output_line_to_string): Declare.
1782	* directives.c (do_diagnostic): Rewrote.  Use
1783	cpp_output_line_to_string.  Don't use _cpp_begin_message.
1784
17852008-05-21  Tom Tromey  <tromey@redhat.com>
1786
1787	* include/symtab.h (HT_ALLOCED): Remove.
1788	(ht_purge): Declare.
1789	* symtab.c (DELETED): New define.
1790	(ht_lookup): Update comment.
1791	(ht_lookup_with_hash): Handle deleted entries.  Remove HT_ALLOCED
1792	code.  Use subobject allocator for strings, if it exists.
1793	(ht_expand): Handle deleted entries.
1794	(ht_forall): Likewise.
1795	(ht_purge): New function.
1796	(ht_dump_statistics): Print deletion statistics.
1797
17982008-05-13  Tom Tromey  <tromey@redhat.com>
1799
1800	PR preprocessor/22168:
1801	* include/cpplib.h (struct cpp_options) <objc>: Update
1802	documentation.
1803	* expr.c (eval_token): Warn for use of assertions.
1804	* directives.c (directive_diagnostics): Warn about extensions.
1805	(DEPRECATED): New define.
1806	(DIRECTIVE_TABLE): Use it.
1807
18082008-05-06  Tom Tromey  <tromey@redhat.com>
1809
1810	PR preprocessor/35313, PR preprocessor/36088:
1811	* expr.c (optab) <QUERY, COMMA>: Set precedence to 4.
1812	(reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON.
1813
18142008-05-04  David S. Miller  <davem@davemloft.net>
1815
1816	* configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
1817	* configure: Regenerate.
1818
18192008-04-22  Daniel Franke  <franke.daniel@gmail.com>
1820
1821	* include/cpplib.h (cpp_define_formatted): New.
1822	* directives.c (cpp_define_formatted): New.
1823
18242008-04-21  Tom Tromey  <tromey@redhat.com>
1825
1826	PR libcpp/33415:
1827	* charset.c (_cpp_convert_input): Add buffer_start argument.
1828	Ignore UTF-8 BOM if seen.
1829	* internal.h (_cpp_convert_input): Add argument.
1830	* files.c (struct _cpp_file) <buffer_start>: New field.
1831	(destroy_cpp_file): Free buffer_start, not buffer.
1832	(_cpp_pop_file_buffer): Likewise.
1833	(read_file_guts): Update.
1834
18352008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
1836
1837	* include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal.
1838	* include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
1839	(struct cpp_options): Added uliterals.
1840	(cpp_interpret_string): Update prototype.
1841	(cpp_interpret_string_notranslate): Idem.
1842	* charset.c (init_iconv_desc): New width member in cset_converter.
1843	(cpp_init_iconv): Add support for char{16,32}_cset_desc.
1844	(convert_ucn): Idem.
1845	(emit_numeric_escape): Idem.
1846	(convert_hex): Idem.
1847	(convert_oct): Idem.
1848	(convert_escape): Idem.
1849	(converter_for_type): New function.
1850	(cpp_interpret_string): Use converter_for_type, support u and U prefix.
1851	(cpp_interpret_string_notranslate): Match changed prototype.
1852	(wide_str_to_charconst): Use converter_for_type.
1853	(cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
1854	* directives.c (linemarker_dir): Macro U changed to UC.
1855	(parse_include): Idem.
1856	(register_pragma_1): Idem.
1857	(restore_registered_pragmas): Idem.
1858	(get__Pragma_string): Support CPP_STRING{16,32}.
1859	* expr.c (eval_token): Support CPP_CHAR{16,32}.
1860	* init.c (struct lang_flags): Added uliterals.
1861	(lang_defaults): Idem.
1862	* internal.h (struct cset_converter) <width>: New field.
1863	(struct cpp_reader) <char16_cset_desc>: Idem.
1864	(struct cpp_reader) <char32_cset_desc>: Idem.
1865	* lex.c (digraph_spellings): Macro U changed to UC.
1866	(OP, TK): Idem.
1867	(lex_string): Add support for u'...', U'...', u"..." and U"...".
1868	(_cpp_lex_direct): Idem.
1869	* macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
1870	(stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
1871
18722008-04-18  Paolo Bonzini  <bonzini@gnu.org>
1873
1874	PR bootstrap/35457
1875	* aclocal.m4: Regenerate.
1876	* configure: Regenerate.
1877
18782008-04-17  Tom Tromey  <tromey@redhat.com>
1879
1880	PR libcpp/34866:
1881	* errors.c (cpp_error): Don't reference a token before the start
1882	of the current run.
1883
18842008-04-16  Tom Tromey  <tromey@redhat.com>
1885
1886	* Makefile.in (TAGS_SOURCES): New variable.
1887	(TAGS): New target.
1888
18892008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1890
1891	* configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-*
1892	and shbe-*-*.
1893	* configure: Rebuilt.
1894
18952008-04-02  Joseph Myers  <joseph@codesourcery.com>
1896
1897	* include/cpplib.h (struct cpp_callbacks): Add used_define,
1898	used_undef and before_define.
1899	(NODE_USED): Define.
1900	* directives.c (do_define, do_undef, undefine_macros, do_ifdef,
1901	do_ifndef, cpp_pop_definition): Handle new flag and use new
1902	callbacks.
1903	* expr.c (parse_defined): Handle new flag and use new callbacks.
1904	* macro.c (enter_macro_context, _cpp_free_definition): Handle new
1905	flag and use new callbacks.
1906
19072008-04-01  Jakub Jelinek  <jakub@redhat.com>
1908
1909	PR pch/13675
1910	* files.c (struct _cpp_file): Remove pch field.
1911	(pch_open_file): Don't set file->pch, just file->pchname.
1912	(should_stack_file): After pfile->cb.read_pch call
1913	free pchname and clear pchname, don't close file->fd.
1914	Test file->pchname instead of file->pch.  Don't close fd after cb.
1915	(_cpp_stack_include): Test file->pchname instead of file->pch.
1916
19172008-03-28  Tom Tromey  <tromey@redhat.com>
1918
1919	* Makefile.in (POSTCOMPILE): New variable.
1920	(.c.o): Use it.
1921
19222008-03-13  Tom Tromey  <tromey@redhat.com>
1923
1924	PR libcpp/35322:
1925	* directives.c (destringize_and_run): Set pfile->directive.
1926
19272008-03-06  Markus Milleder  <markus.milleder@generali.at>
1928
1929	PR preprocessor/35458
1930	* mkdeps.c (munge): Quote '#' with a '\'.
1931
19322008-02-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1933
1934	PR preprocessor/35379
1935	* mkdeps.c (deps_write): Ensure the first target always appears
1936	in the first column, without leading backslash newline.  Avoid
1937	some more extra whitespace.
1938
19392008-02-25  Thiemo Seufer <ths@mips.com>
1940
1941	* Makefile.in ($(srcdir)/config.in): Depend on configure.ac.
1942
19432008-02-19  Tom Tromey  <tromey@redhat.com>
1944
1945	* traditional.c (lex_identifier): Use CPP_HASHNODE.
1946	* lex.c (lex_identifier): Use CPP_HASHNODE.
1947	* include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in
1948	do-while.
1949	* identifiers.c (alloc_node): Change return type.
1950	(_cpp_init_hashtable): Don't cast 'alloc_node'.
1951	(proxy_assertion_broken): New declaration.
1952	(cpp_forall_identifiers): Move comment.
1953	* line-map.c (linemap_add): Comment fix.
1954	(linemap_line_start): Indentation fix.
1955
19562008-01-25  Jakub Jelinek  <jakub@redhat.com>
1957
1958	PR preprocessor/34692
1959	* macro.c (collect_args): Add pragma_buff argument.  Push
1960	CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather
1961	than into arguments.  Reset prevent_expansion and parsing_args
1962	state at CPP_PRAGMA_EOL/CPP_EOF.
1963	(funlike_invocation_p): Add pragma_buff argument, pass it through
1964	to collect_args.
1965	(enter_macro_context): Add result argument.  Adjust
1966	funlike_invocation_p caller.  Emit all deferred pragma tokens
1967	gathered during collect_args before the expansion, add a padding
1968	token.  Return 2 instead of 1 if any pragma tokens were prepended.
1969	(cpp_get_token): If enter_macro_context returns 2, don't return
1970	a padding token, instead cycle to grab CPP_PRAGMA token.
1971	* directives.c (_cpp_handle_directive): If was_parsing_args
1972	in deferred pragma, leave parsing_args and prevent_expansion as is.
1973
19742008-01-22  Tom Tromey  <tromey@redhat.com>
1975
1976	PR c++/34859
1977	* macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and
1978	__STDC_CONSTANT_MACROS.
1979
19802008-01-07  Fred Fish  <fnf@specifix.com>
1981
1982	PR preprocessor/30363
1983	* traditional.c (replace_args_and_push): Add local variable
1984	cxtquote, calculate the replacement text size assuming a
1985	worst case of every input character quoted with backslash,
1986	and properly handle output quoting of quote characters in
1987	actual arguments used in function-like macros.
1988
19892008-01-03  Tom Tromey  <tromey@redhat.com>
1990
1991	PR preprocessor/34602
1992	* directives.c (do_line): Don't try to spell EOF token.
1993	(do_linemarker): Add comment.
1994
19952007-12-11  DJ Delorie  <dj@redhat.com>
1996
1997	* charset.c (convert_using_iconv): Close out any shift states,
1998	returning to the initial state.
1999
20002007-12-06  Tom Tromey  <tromey@redhat.com>
2001
2002	PR c/29172
2003	* internal.h (struct cpp_reader) <file_hash_entries>: Changed
2004	type.
2005	<file_hash_entries_allocated, file_hash_entries_used>: Removed.
2006	* files.c (FILE_HASH_POOL_SIZE): New macro.
2007	(struct file_hash_entry_pool): New.
2008	(destroy_all_cpp_files): New function.
2009	(allocate_file_hash_entries): Allocate a file_hash_entry_pool.
2010	(new_file_hash_entry): Update.
2011	(free_file_hash_entries): New function.
2012	(_cpp_cleanup_files): Call free_file_hash_entries and
2013	destroy_all_cpp_files.
2014	(cpp_clear_file_cache): New function.
2015	* include/cpplib.h (cpp_clear_file_cache): Declare.
2016
20172007-12-03  Tom Tromey  <tromey@redhat.com>
2018
2019	PR preprocessor/34288
2020	* configure.ac, config.in: Rebuilt.
2021	* configure.ac: Check for ssize_t.
2022
20232007-11-30  Tom Tromey  <tromey@redhat.com>
2024
2025	PR preprocessor/32868
2026	* macro.c (_cpp_create_definition): Special case
2027	__STDC_FORMAT_MACROS.
2028
20292007-11-16  Michael Matz  <matz@suse.de>
2030
2031	* files.c (search_path_head): Fix check for absolute paths.
2032
20332007-11-11  Tom Tromey  <tromey@redhat.com>
2034
2035	PR c++/17557
2036	* include/cpplib.h (cpp_included_before): Declare.
2037	* files.c (struct file_hash_entry) <location>: New field.
2038	(_cpp_find_file): Initialize new field.
2039	(make_cpp_dir): Likewise.
2040	(cpp_included_before): New function.
2041
20422007-11-01  Tom Tromey  <tromey@redhat.com>
2043
2044	PR preprocessor/30805
2045	* macro.c (paste_tokens): Handle padding token.
2046	(paste_tokens): Don't abort unless padding has PASTE_LEFT flag.
2047
20482007-10-31  Tom Tromey  <tromey@redhat.com>
2049
2050	PR preprocessor/30786
2051	* macro.c (builtin_macro): Return result of _cpp_do__Pragma.
2052	* directives.c (_cpp_do__Pragma): Return error status.
2053	* internal.h (_cpp_do__Pragma): Update.
2054	* directives.c (get__Pragma_string): Back up if EOF seen.
2055
20562007-09-06  Tom Tromey  <tromey@redhat.com>
2057
2058	* internal.h (struct cpp_reader) <invocation_location>: New
2059	field.
2060	(struct cpp_reader) <set_invocation_location>: Likewise.
2061	* init.c (cpp_set_line_map): New function.
2062	* line-map.c (linemap_add): Use linemap's allocator.
2063	* include/line-map.h (GTY): Define.
2064	(line_map_realloc): New typedef.
2065	(struct line_map): Mark with GTY.
2066	(struct line_maps): Likewise.
2067	(struct line_maps) <maps>: Likewise.
2068	(struct line_maps) <reallocator>: New field.
2069	* include/symtab.h (GTY): Conditionally define.
2070	* include/cpplib.h (cpp_set_line_map): Declare.
2071	(cpp_get_token_with_location): Declare.
2072	* macro.c (cpp_get_token): Set invocation_location on the reader.
2073	(cpp_get_token_with_location): New function.
2074
20752007-08-30  Chao-ying Fu  <fu@mips.com>
2076
2077	* expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur,
2078	ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk.
2079	(cpp_classify_number): Support decimal fixed-point constants without
2080	exponents.
2081	Warn about fixed-point constants when -pedantic.
2082	* include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change
2083	comments to support fixed-point values.
2084	(CPP_N_FRACT, CPP_N_ACCUM): Define.
2085
20862007-08-18  Tom Tromey  <tromey@redhat.com>
2087
2088	PR preprocessor/32974
2089	* directives.c (parse_include): Don't check for EOL when
2090	processing #pragma dependency.
2091
20922007-07-30  Ollie Wild  <aaw@google.com>
2093
2094	* directives-only.c: New file.
2095	* internal.h (struct _cpp_dir_only_callbacks): New.
2096	(_cpp_preprocess_dir_only): New function.
2097	* directives.c (_cpp_handle_directive): Check directives_only before
2098	disabling execution of indented directives.
2099	* files.c (_cpp_stack_file): Add directives_only check.
2100	* include/cpplib.h (struct cpp_options): Add directives_only.
2101	(cpp_init_special_builtins): New function.
2102	* init.c (cpp_init_special_builtins): New function.
2103	(cpp_init_builtins): Move builtin_array initialization to
2104	cpp_init_special_builtins.
2105	(post_options): Check directives_only before setting
2106	pfile->state.prevent_expansion = 1.
2107	* macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
2108	is expanded inside a directive while -fdirectives-only is enabled.
2109	* Makefile.in (libcpp_a_OBJS): Add directives-only.o.
2110	(libcpp_a_SOURCES): Add directives-only.c.
2111
21122007-07-04  Uros Bizjak  <ubizjak@gmail.com>
2113
2114	* traditional.c (_cpp_scan_out_logical_line): Initialize
2115	fmacro.args, fmacro.node, fmacro.offset, fmacro.line and
2116	fmacro.args to prevent 'may be used uninitialized' warning.
2117
21182007-07-03  Uros Bizjak  <ubizjak@gmail.com>
2119
2120	* include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q):
2121	Add new constants.
2122	* expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q'
2123	suffixes.  Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q
2124	for 'q' or 'Q' suffixes.
2125
21262007-06-17  Danny Smith  <dannysmith@users.sourceforge.net
2127
2128	* files.c (open_file): Correct typo.
2129
21302007-06-16  Vladimir Prus  <vladimir@codesourcery.com>
2131
2132	* files.c (open_file): Prevent the call
2133	for stat from overwriting errno.
2134
21352007-06-09  Vladimir Prus  <vladimir@codesourcery.com>
2136
2137	* files.c (open_file): Account for the
2138        fact that on windows, opening a directory gives
2139        EACCES.
2140
21412007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
2142
2143	PR preprocessor/23479
2144	* expr.c (cpp_classify_number): Implement 0b-prefixed binary
2145	integer constants.
2146	(append_digit): Likewise.
2147	* include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed
2148	binary integer constants.
2149
21502007-05-31  Dave Korn  <dave.korn@artimi.com>
2151
2152	PR preprocessor/14331
2153	* lex.c (_cpp_get_fresh_line):  Don't warn if no newline at EOF.
2154
21552007-05-24  Ollie Wild  <aaw@google.com>
2156
2157	* macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER.
2158	* pch.c (cpp_write_pch_deps): Save __COUNTER__ state.
2159	(cpp_write_pch_state): Save __COUNTER__ state.
2160	(cpp_valid_state): Check valid __COUNTER__ state.
2161	(cpp_read_state): Read new __COUNTER__ state.
2162	* include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator.
2163	* init.c (builtin_array): Add __COUNTER__/BT_COUNTER.
2164	* internal.h (struct cpp_reader): Add counter member.
2165
21662007-05-23  Simon Martin  <simartin@users.sourceforge.net>
2167
2168	PR preprocessor/20077
2169	* macro.c (create_iso_definition): Fixed the method to determine
2170	whether the token-pasting operator appears at the beginning or the end
2171	of a macro.
2172
21732007-05-21  Ian Lance Taylor  <iant@google.com>
2174
2175	* internal.h (struct cpp_reader): Add new fields:
2176	nonexistent_file_hash and nonexistent_file_ob.
2177	* files.c: Include "obstack.h".
2178	(find_file_in_dir): Before trying to open the file, look up the
2179	path name in the hash table of nonexistent files.  After failing
2180	to open the file, add the path name to the hash table.
2181	(_cpp_find_file): Cache the results of looking up the file name
2182	starting with the quote and bracket chain heads, if we can.
2183	(nonexistent_file_hash_eq): New static function.
2184	(_cpp_init_files): Initialize pfile->nonexistent_file_hash and
2185	pfile->nonexistent_file_ob.
2186	(_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
2187	pfile->nonexistent_file_ob.
2188
21892007-05-14  Janis Johnson  <janis187@us.ibm.com>
2190
2191        * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic.
2192
2193	PR c/31924
2194	* expr.c (interpret_float_suffix): Check for invalid suffix.
2195
21962007-05-02  Eric Christopher  <echristo@apple.com>
2197
2198	* expr.c (num_div_op): Don't overflow if the result is
2199	zero.
2200
22012007-05-02  Tom Tromey  <tromey@redhat.com>
2202
2203	PR preprocessor/28709
2204	* macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
2205
22062007-03-30  Michael Meissner  <michael.meissner@amd.com>
2207
2208	* directives.c (lex_macro_node_from_str): Fix alloca call to be
2209	type correct.
2210
22112007-03-30  Richard Henderson  <rth@redhat.com>
2212
2213	* directives.c (lex_macro_node_from_str): New.
2214	(cpp_push_definition, cpp_pop_definition): New.
2215	* include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
2216
22172007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2218
2219	* Makefile.in: Add dummy install-pdf target.
2220
22212007-01-30  Tom Tromey  <tromey@redhat.com>
2222
2223	PR preprocessor/30468
2224	* mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
2225	'./'.
2226
22272007-01-30  Tom Tromey  <tromey@redhat.com>
2228
2229	PR preprocessor/29966
2230	* macro.c (lex_expansion_token): Save and restore cpp_reader's
2231	cur_token.
2232	(_cpp_create_definition): Don't restore cur_token here.
2233	* lex.c (_cpp_lex_token): Added assertion.
2234
22352007-01-27  Tom Tromey  <tromey@redhat.com>
2236
2237	* configure: Rebuilt.
2238
22392007-01-12  Tom Tromey  <tromey@redhat.com>
2240
2241	PR preprocessor/28227
2242	* directives.c (lex_macro_node): Added 'is_def_or_undef'
2243	argument.
2244	(do_define): Update.
2245	(do_undef): Update.
2246	(do_ifdef): Update.
2247	(do_ifndef): Update.
2248
22492007-01-11  Paolo Bonzini  <bonzini@gnu.org>
2250
2251	* configure: Regenerate.
2252
22532007-01-11  Paolo Bonzini  <bonzini@gnu.org>
2254
2255	* configure: Regenerate.
2256
22572007-01-04  Tom Tromey  <tromey@redhat.com>
2258
2259	PR preprocessor/28165
2260	* internal.h (cpp_in_primary_file): New function.
2261	* directives.c (do_include_next): Use cpp_in_primary_file.
2262	(do_pragma_once): Likewise.
2263	(do_pragma_system_header): Likewise.
2264
22652006-12-29  Ian Lance Taylor  <iant@google.com>
2266
2267	* lex.c (_cpp_clean_line): Add uses of __builtin_expect.  Don't
2268	look backward at the end of the line unless we saw a backslash.
2269
22702006-12-29  Jakub Jelinek  <jakub@redhat.com>
2271
2272	PR preprocessor/29612
2273	* directives.c (do_linemarker): Set pfile->buffer->sysp always, not
2274	only when new_sysp is non-zero.
2275
22762006-12-28  Tom Tromey  <tromey@redhat.com>
2277
2278	PR preprocessor/30001
2279	* charset.c (_cpp_convert_input): Check that to.len is greater
2280	than zero.
2281
22822006-11-20  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2283
2284	* configure.ac (need_64bit_hwint): Need 64bit hwint for SPU.
2285	* configure: Rebuilt.
2286
22872006-11-01	Douglas Gregor <doug.gregor@gmail.com>
2288
2289	* include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
2290	for experimental C++0x mode.
2291	* init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
2292	adopted the preprocessor changes introduced in C99.
2293
22942006-10-29  Joseph Myers  <joseph@codesourcery.com>
2295
2296	* configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
2297	depending on --enable-targets=all.
2298	* configure: Regenerate.
2299
23002006-10-12  Jakub Jelinek  <jakub@redhat.com>
2301
2302	PR preprocessor/28709
2303	* macro.c (paste_tokens): Do error reporting here, use BUF with the
2304	spelled LHS token as opposed to spelling it again.
2305	(paste_all_tokens): Don't report errors here, just break on failure.
2306
23072006-10-10  Brooks Moses  <bmoses@stanford.edu>
2308
2309	* Makefile.in: Added empty "pdf" target.
2310
23112006-09-22  Geoffrey Keating  <geoffk@apple.com>
2312
2313	* configure.ac: Make need_64_bit_hwint case for x86-darwin
2314	match exactly the glob in gcc/config.gcc.
2315	* configure: Regenerate.
2316
23172006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
2318
2319	PR c/28768
2320	PR preprocessor/14634
2321	* lex.c (lex_string): Pedwarn for unterminated literals.
2322
23232006-09-08  Eric Christopher  <echristo@apple.com>
2324
2325	* configure.ac: Add 64-bit HWI support for i?86-darwin.
2326
23272006-08-14  Steve Ellcey  <sje@cup.hp.com>
2328
2329	PR c++/28288
2330	PR c++/14556
2331	* include/cpplib.h: Remove <?, >?, <?=, and >?= tokens.
2332	(CPP_LAST_EQ): Change.
2333	(CPP_LAST_PUNCTUATOR): Change.
2334	* expr.c (cpp_operator): Remove MIN and MAX.
2335	(reduce): Remove CPP_MIN and CPP_MAX.
2336	(num_binary_op): Ditto.
2337	* lex.c (_cpp_lex_direct): Ditto.
2338	(cpp_avoid_paste): Remove ? as legal symbol after > or <.
2339
23402006-06-09  Jakub Jelinek  <jakub@redhat.com>
2341
2342	PR preprocessor/27746
2343	* directives.c (do_pragma): Handle pragma with valid namespace
2344	and invalid name coming from macro expansion.
2345	* directives.c (destringize_and_run): Initialize next field in
2346	context.
2347
2348	PR c/27747
2349	PR c++/27748
2350	* directives.c (destringize_and_run): Set NO_EXPAND on the
2351	tokens.
2352
2353	* macro.c (_cpp_backup_tokens): Fix comment typo.
2354
23552006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
2356
2357	* Makefile.in (CATALOGS): Add po/ prefix.
2358	* configure: Regenerated.
2359
23602006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
2361
2362	* Makefile.in: Add install-html target. Add install-html to .PHONY
2363
23642006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
2365
2366	* macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
2367	* files.c (_cpp_get_file_stat): New function.
2368	* include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
2369	* init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
2370	* internal.h (_cpp_get_file_stat): Prototype.
2371	(struct cpp_buffer): Add timestamp.
2372
23732006-01-23  Jakub Jelinek  <jakub@redhat.com>
2374
2375	PR preprocessor/25717
2376	* init.c (cpp_init_builtins): If __STDC__ will not change value
2377	between system headers and other sources, define it as a normal
2378	macro rather than a builtin.
2379	* macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
2380	cpp_in_system_header condition.
2381
23822006-01-05  Paolo Bonzini  <bonzini@gnu.org>
2383
2384	* Makefile.in: Use -MMD instead of -MD.
2385
23862006-01-04  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
2387	    Richard Henderson  <rth@redhat.com>
2388
2389	Merge from gomp branch:
2390	* directives.c (struct pragma_entry): Add is_deferred.  Add ident
2391	entry to value union.
2392	(end_directive): Don't eat the line if in_deferred_pragma.
2393	(run_directive): Remove pragma hacks.
2394	(insert_pragma_entry): Remove.
2395	(new_pragma_entry): New.
2396	(register_pragma_1): Split out of register_pragma.  Only handle
2397	the lookup tree and return the new entry.
2398	(cpp_register_pragma): Fill in the pragma entry here.
2399	(cpp_register_deferred_pragma): New.
2400	(register_pragma_internal): New.
2401	(_cpp_init_internal_pragmas): Use register_pragma_internal.
2402	(do_pragma): Allow pragma expansion after namespace.  For deferred
2403	pragmas, don't slurp the line into a string.
2404	(destringize_and_run): Save tokens for deferred pragmas.
2405	(cpp_handle_deferred_pragma): Remove.
2406	* macro.c (builtin_macro): Remove pragma token hack.
2407	(_cpp_push_token_context): Rename from push_token_context and export.
2408	* internal.h (struct lexer_state): Add pragma_allow_expansion.
2409	(_cpp_push_token_context): Declare.
2410	* lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
2411	a token.  Update the line number correctly if so.
2412	(_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
2413	(cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
2414	* include/cpplib.h (PRAGMA_EOL): New.
2415	(CPP_TOKEN_FLD_PRAGMA): New.
2416	(struct cpp_token): Add val.pragma.
2417	(struct cpp_options): Remove defer_pragmas.
2418	(cpp_handle_deferred_pragma): Remove.
2419	(cpp_register_deferred_pragma): Declare.
2420
24212006-01-01  Jakub Jelinek  <jakub@redhat.com>
2422
2423	PR c++/25294
2424	* directives.c (do_pragma): If pragma line ends with multi-line
2425	block comment, end the saved deferred pragma string before that
2426	comment.  Handle embedded '\0' chars on the pragma line.
2427
24282005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2429
2430	PR c++/23333
2431	* include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
2432
24332005-12-07  Jon Grimm  <jgrimm2@us.ibm.com>
2434	    Ben Elliston  <bje@au.ibm.com>
2435
2436	* include/cpplib.h (CPP_N_DFLOAT): New.
2437	* expr.c (interpret_float_suffix): Identify df, dd, and dl
2438	suffixes as decimal floating point constants.
2439	(cpp_classify_number): Disallow hexadecimal DFP constants.
2440
24412005-11-14  Gerald Pfeifer  <gerald@pfeifer.com>
2442	    Ian Lance Taylor  <ian@airs.com>
2443
2444	* include/cpplib.h (struct cpp_callbacks): Annotate error with
2445	ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
2446
24472005-11-09  Per Bothner  <per@bothner.com>
2448	    Uros Bizjak  <uros@kss-loka.si>
2449
2450	PR c/24101
2451	* init.c (read_original_filename): Temporarily set
2452	state.in_directive before calling _cpp_lex_direct for
2453	CPP_HASH tokens.
2454
24552005-11-03  James E Wilson  <wilson@specifix.com>
2456
2457	PR preprocessor/24202
2458	* files.c (_cpp_pop_file_buffer): Set buffer_valid to false.
2459
24602005-11-04  Joseph S. Myers  <joseph@codesourcery.com>
2461
2462	* include/cpplib.h (struct cpp_callbacks): Make error take
2463	va_list* parameter.
2464	* errors.c (cpp_error): Update call to callback.
2465
24662005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
2467
2468	PR preprocessor/22042
2469	* macro.c (_cpp_builtin_macro_text): Lower the needed max
2470	buffer size.
2471	(cpp_quote_string): Don't octalify non printable
2472	charactors.
2473
24742005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
2475
2476	PR c++/17964
2477	* include/cpplib.h (struct cpp_options): Add client_diagnostic.
2478	(struct cpp_callbacks): Add error.
2479	* errors.c (cpp_error): If client_diagnostic, use error callback.
2480	* charset.c (convert_escape): Don't use %03o in diagnostic.
2481
24822005-10-21  James E Wilson  <wilson@specifix.com>
2483
2484	PR preprocessor/15220
2485	* files.c (_cpp_find_file): New parameter angle_brackets.  Fix all
2486	callers.  Pass to open_file_failed.
2487	(open_file_failed): New parameter angle_brackets.  Fix all callers.
2488	Use in print_dep assignment.
2489	* init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
2490	* internal.h (_cpp_find_file): Add new parm to declaration.
2491
24922005-10-08  Kazu Hirata  <kazu@codesourcery.com>
2493
2494	* configure.ac: Require 64-bit int for arm*-*-*eabi*.
2495	* configure: Regenerate.
2496
24972005-10-04  Ian Lance Taylor  <ian@airs.com>
2498
2499	PR preprocessor/13726
2500	* directives.c (check_eol_return_comments): New static function.
2501	(parse_include): Add buf parameter.  Change all callers.
2502	(do_include_common): If not discard comments, turn on
2503	save_comments.  Pass collected comments to include callback.
2504	* include/cpplib.h (struct cpp_callbacks): Add new parameter to
2505	include callback: cpp_token list.
2506
25072005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
2508
2509	* include/cpplib.h (struct cpp_options): Add extended_identifiers.
2510	* init.c (struct lang_flags, lang_defaults): Add
2511	extended_identifiers.
2512	(cpp_set_lang): Use it.
2513	* lex.c (forms_identifier_p): Check extended_identifiers.
2514
25152005-08-30  Jakub Jelinek  <jakub@redhat.com>
2516
2517	PR preprocessor/20348
2518	PR preprocessor/20356
2519	* files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and
2520	2004-06-05 changes.
2521
25222005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2523
2524	* configure.ac (ACX_PROG_CC_WARNING_OPTS): add
2525	-Wmissing-format-attribute.
2526
2527	* configure: Regenerate.
2528
25292005-06-29  Kelley Cook  <kcook@gcc.gnu.org>
2530
2531	* all files: Update FSF address in copyright headers.
2532	* makeucnid.c (write_copyright): Update outputted FSF address.
2533
25342005-06-13  Zack Weinberg  <zack@codesourcery.com>
2535
2536	* configure.ac: Invoke ZW_CREATE_DEPDIR and
2537	ZW_PROG_COMPILER_DEPENDENCIES.
2538	* aclocal.m4, configure: Regenerate.
2539	* Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE):
2540	New variables.
2541	(distclean): Clean up $(DEPDIR) and its contents.
2542	(.c.o): Use $(COMPILE).
2543	Include $(DEPDIR)/*.Po for most object->header dependencies.
2544
25452005-05-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2546
2547	* configure.ac: Check declarations for asprintf and vasprintf.
2548	* config.in: Regenerate.
2549	* configure: Likewise.
2550
2551	* charset.c (conversion_loop): Use XRESIZEVEC.
2552	(convert_no_conversion): Likewise.
2553	(convert_using_iconv): Likewise.
2554	(init_iconv_desc): Cast return value of alloca.
2555	(cpp_host_to_exec_charset): Use XNEWVEC.
2556	(emit_numeric_escape): Use XRESIZEVEC.
2557	(cpp_interpret_string): Use XNEWVEC.
2558	(cpp_interpret_string): Use XRESIZEVEC.
2559	(_cpp_interpret_identifier): Cast return value of alloca.
2560	(_cpp_convert_input): Use XNEWVEC and XRESIZEVEC.
2561	* directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC.
2562	(parse_include): Use XNEWVEC.
2563	(insert_pragma_entry): Rename local variable "new" to
2564	"new_entry".
2565	(save_registered_pragmas): Cast return value of xmemdup.
2566	(destringize_and_run): Same for alloca.
2567	(parse_assertion): Likewise.
2568	(do_assert): Cast allocated storage to proper type.
2569	(cpp_define): Likewise.
2570	(_cpp_define_builtin): Likewise.
2571	(cpp_undef): Likewise.
2572	(handle_assertion): Likewise.
2573	(cpp_push_buffer): Rename local variable "new" to "new_buffer".
2574	* expr.c (CPP_UPLUS): Cast value to type cpp_ttype.
2575	(CPP_UMINUS): Likewise.
2576	(struct cpp_operator): Rename from struct operator.
2577	(_cpp_expand_op_stack): Use XRESIZEVEC.
2578	* files.c (pch_open_file): Use XNEWVEC.
2579	(pch_open_file): Use XRESIZEVEC.
2580	(read_file_guts): Use XNEWVEC and XRESIZEVEC.
2581	(dir_name_of_file): Use XNEWVEC.
2582	(make_cpp_file): Use XCNEW.
2583	(make_cpp_dir): Likewise.
2584	(allocate_file_hash_entries): USE XNEWVEC.
2585	(cpp_included): Cast return value of htab_find_with_hash.
2586	(append_file_to_dir): Use XNEWVEC.
2587	(read_filename_string): Likewise. Use XRESIZEVEC too.
2588	(read_name_map): Cast return value of alloca.  Use XRESIZEVEC.
2589	(remap_filename): Use XNEWVEC.
2590	(struct pchf_entry): Move definition out of struct pchf_data.
2591	(_cpp_save_file_entries): Use XCNEWVAR.
2592	(_cpp_read_file_entries): Use XNEWVAR.
2593	* identifiers.c (alloc_node): Use XOBNEW.
2594	* init.c (cpp_create_reader): Use XCNEW.
2595	(cpp_init_builtins): Cast of b->value to enum builtin_type.
2596	(read_original_directory): Cast return value of alloca.
2597	* lex.c (add_line_note): Use XRESIZEVEC.
2598	(warn_about_normalization): Use XNEWVEC.
2599	(_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype).
2600	(new_buff): Use XNEWVEC.
2601	* line-map.c (linemap_add): Use XRESIZEVEC.
2602	* macro.c (builtin_macro): Cast return value of alloca.
2603	(paste_tokens): Likewise.
2604	(expand_arg): Use XNEWVEC and XRESIZEVEC.
2605	(_cpp_save_parameter): Use XRESIZEVEC.
2606	(create_iso_definition): Cast allocated storage to proper type.
2607	(_cpp_create_definition): Likewise.
2608	(cpp_macro_definition): Use XRESIZEVEC.
2609	* makedepend.c (add_clm): Use XNEW.
2610	(add_dir): Likewise.
2611	* mkdeps.c (munge): Use XNEWVEC.
2612	(deps_init): Use XCNEW.
2613	(deps_add_target): Use XRESIZEVEC.
2614	(deps_add_default_target): Cast return value of alloca.
2615	(deps_add_dep): Use XRESIZEVEC.
2616	(deps_add_vpath): Likewise.  Use XNEWVEC too.
2617	(deps_restore): Likewise.
2618	* pch.c (save_idents): Use XNEW and XNEWVEC.
2619	(cpp_save_state): Use XNEW.
2620	(count_defs): Cast return value of htab_find.
2621	(write_defs): Likewise.
2622	(cpp_write_pch_deps): Use XNEWVEC.
2623	(collect_ht_nodes): Use XRESIZEVEC.
2624	(cpp_valid_state): Use XNEWVEC.
2625	(save_macros): Use XRESIZEVEC.  Cast return value of xmemdup.
2626	* symtab.c (ht_create): Use XCNEW.
2627	(ht_lookup_with_hash): Cast return value of obstack_copy0.
2628	(ht_expand): Use XCNEWVEC.
2629	* system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus.
2630	(bool): Do not define if __cplusplus.
2631
26322005-05-12  Zack Weinberg  <zack@codesourcery.com>
2633
2634	* directives.c (#sccs table entry): Mark IN_I, consistent with #ident.
2635	(do_sccs): Delete function definition, #define to do_ident.
2636	(do_ident): Don't hardwire directive name.
2637
26382005-05-12  Ryota Kunisawa  <kunisawa@access.co.jp>
2639
2640	PR bootstrap/21230
2641	* configure: Regenerate.
2642
26432005-04-27  Andris Pavenis  <pavenis@latnet.lv>
2644
2645	* files.c: Include io.h for DJGPP to get prototype of setmode.
2646
26472005-04-19  Per Bothner  <per@bothner.com>
2648
2649	PR preprocessor/20907
2650	* line-map.c (linemap_line_start): Fix bug when we need to increse
2651	column_bits but can re-use the current line_map.
2652
26532005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2654
2655	* system.h (fopen, fdopen, freopen): Define these to the unlocked
2656	libiberty functions.
2657
26582005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2659
2660	* configure.ac (libcpp_UNLOCKED_FUNCS): New.
2661	(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
2662	* system.h (putchar, getc, getchar, clearerr, feof, fileno,
2663	fflush, fgetc, fgets, ferror, fread): Redefine to the associated
2664	_unlocked function.
2665	(fwrite_unlocked): Fix prototype.
2666
2667	* configure, config.in: Regenerate.
2668
26692005-04-05  Jakub Jelinek  <jakub@redhat.com>
2670
2671	PR preprocessor/19475
2672	* macro.c (create_iso_definition): For < ISO C99, don't
2673	pedwarn if there is no whitespace between macro name and its
2674	replacement, but the replacement starts with a basic character
2675	set character.
2676
26772005-03-28  Andreas Jaeger  <aj@suse.de>
2678
2679	* lex.c (warn_about_normalization): Cast field width to int to
2680	avoid warning.
2681
26822005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
2683
2684	* configure.ac: Consistently use solaris2.1[0-9]* instead of
2685	solaris2.1[0-9].
2686	* configure: Regenerate.
2687
26882005-03-15  Geoffrey Keating  <geoffk@apple.com>
2689
2690	* charset.c (_cpp_valid_ucn): In identifiers, reject a partial
2691	UCN rather than printing an error.
2692
26932005-03-14  Geoffrey Keating  <geoffk@apple.com>
2694
2695	* lex.c (forms_identifier_p): Disable UCNs in C89 mode.
2696
26972005-03-14  Geoffrey Keating  <geoffk@apple.com>
2698
2699	* init.c (cpp_create_reader): Default warn_normalize to normalized_C.
2700	* charset.c: Update for new format of ucnid.h.
2701	(ucn_valid_in_identifier): Update for new format of ucnid.h.
2702	Add NST parameter, and update it; update callers.
2703	(cpp_valid_ucn): Add NST parameter, update callers.  Replace abort
2704	with cpp_error.
2705	(convert_ucn): Pass normalize_state to cpp_valid_ucn.
2706	* internal.h (struct normalize_state): New.
2707	(INITIAL_NORMALIZE_STATE): New.
2708	(NORMALIZE_STATE_RESULT): New.
2709	(NORMALIZE_STATE_UPDATE_IDNUM): New.
2710	(_cpp_valid_ucn): New.
2711	* lex.c (warn_about_normalization): New.
2712	(forms_identifier_p): Add normalize_state parameter, update callers.
2713	(lex_identifier): Add normalize_state parameter, update callers.  Keep
2714	the state current.
2715	(lex_number): Likewise.
2716	(_cpp_lex_direct): Pass normalize_state to subroutines.  Check
2717	it with warn_about_normalization.
2718	* makeucnid.c: New.
2719	* ucnid.h: Replace.
2720	* ucnid.pl: Remove.
2721	* ucnid.tab: Make appropriate for input to makeucnid.c.  Remove
2722	comments about obsolete version of C++.
2723	* include/cpplib.h (enum cpp_normalize_level): New.
2724	(struct cpp_options): Add warn_normalize field.
2725
27262005-03-11  Geoffrey Keating  <geoffk@apple.com>
2727
2728	* directives.c (glue_header_name): Update call to cpp_spell_token.
2729	* internal.h (_cpp_interpret_identifier): New.
2730	* charset.c (_cpp_interpret_identifier): New.
2731	(_cpp_valid_ucn): Allow UCN version of '$'.
2732	* lex.c (lex_identifier): Add extra parameter to indicate if initial
2733	character was '$' or '\'.  Support identifiers with UCNs.
2734	(forms_identifier_p): Allow UCNs.
2735	(_cpp_lex_direct): Pass extra parameter to lex_identifier.
2736	(utf8_to_ucn): New.
2737	(cpp_spell_token): Add FORSTRING parameter.  Use it.
2738	(cpp_token_as_text): Update call to cpp_spell_token.
2739	(cpp_output_token): Write UCNs back out.
2740	(stringify_arg): Update call to cpp_spell_token.
2741	(paste_tokens): Likewise.
2742	(cpp_macro_definition): Likewise.
2743	* macro.c (stringify_arg): Likewise.
2744	(paste_tokens): Likewise.
2745	(cpp_macro_definition): Likewise.
2746	* include/cpplib.h: Add parameter to cpp_spell_token.
2747
27482005-03-04  Jakub Jelinek  <jakub@redhat.com>
2749
2750	PR bootstrap/20282
2751	PR bootstrap/20305
2752	* macro.c (replace_args, cpp_get_token): Copy whole
2753	cpp_token_u instead of just cpp_string field from it.
2754
27552005-02-28  Devang Patel  <dpatel@apple.com>
2756
2757	* directives.c (do_line): Save sysp early before line table is
2758	realloc'ed.
2759
27602005-02-20  Zack Weinberg  <zack@codesourcery.com>
2761
2762	PR 18785
2763	* charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
2764	(cpp_host_to_exec_charset): New function.
2765	* include/cpplib.h: Declare cpp_host_to_exec_charset.
2766
27672005-02-19  Devang Patel  <dpatel@apple.com>
2768
2769	* charset.c (_cpp_convert_input): Check '\r' before inserting
2770	'\n' at the end.
2771
27722005-02-15  Eric Christopher  <echristo@redhat.com>
2773
2774	PR preprocessor/19077
2775	* macro.c (cpp_macro_definition): Move handling of whitespace
2776	to PREV_WHITE conditional. Remove overloading of len
2777	variable.
2778
27792005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2780
2781	* directives.c, files.c, init.c, internal.h, macro.c, pch.c,
2782	traditional.c: Update copyright.
2783
27842005-02-14  Paolo Bonzini  <bonzini@gnu.org>
2785
2786	PR bootstrap/19818
2787	* configure.ac: Check for declaration of basename and getopt.
2788	* config.in: Regenerate.
2789	* configure: Regenerate.
2790	* internal.h (ustrcspn): New.
2791	* macro.c (create_iso_definition): Fix allocation of memory.
2792	(padding_token): Add cast to remove const-ness.
2793	* pch.c (cpp_read_state): Use ustrcspn.
2794
27952005-02-08  Mike Stump  <mrs@apple.com>
2796
2797	* files.c (pchf_adder): Remove.
2798	(struct pchf_adder_info): Likewise.
2799	(_cpp_save_file_entries): Write out all files so that #import works.
2800
28012005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
2802
2803	* configure: Regenerate.
2804
28052005-01-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2806
2807	* include/cpplib.h (c_lang): Fix comment to say cpp_create_reader.
2808
2809	* include/cpplib.h: Also update copyright years.
2810
28112005-01-03  Geoffrey Keating  <geoffk@apple.com>
2812
2813	* files.c (_cpp_find_file): Add files found by search_path_exhausted
2814	to the list of all files.
2815
28162005-01-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2817
2818	* internal.h: Update references to Cpp lib filenames.
2819	* directives.c: Likewise.
2820	* init.c: Likewise.
2821	* macro.c: Likewise.
2822	* traditional.c: Likewise.
2823
28242004-12-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
2825
2826	PR preprocessor/15167
2827	* files.c (destroy_cpp_file): New function.
2828	(should_stack_file): Make a new file if the
2829	compared file is still stacked.
2830
28312004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
2832
2833	PR preprocessor/17610
2834	* directives.c (do_include_common): Error out if an empty filename
2835	is given for #include (or #include_next or #import).
2836
28372004-11-27  Roger Sayle  <roger@eyesopen.com>
2838	    Zack Weinberg  <zack@codesourcery.com>
2839
2840	* internal.h: Replace all uses of uchar with unsigned char.
2841	* include/cpp-id-data.h: Likewise.  Guard typedef of uchar
2842	with !IN_GCC, so uchar is only defined whilst building libcpp.
2843
28442004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
2845
2846	* aclocal.m4: Regenerate.
2847
28482004-11-24  Roger Sayle  <roger@eyesopen.com>
2849
2850	PR preprocessor/15824
2851	* configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h>
2852	directly, instead of the non-existant "system.h" and "ansidecl.h".
2853	* configure: Regenerate.
2854
28552004-11-23  Daniel Jacobowitz  <dan@codesourcery.com>
2856	    Joseph Myers  <joseph@codesourcery.com>
2857
2858	* internal.h (struct lexer_state): Add in_deferred_pragma.
2859	* directives.c (struct pragma_entry): Add allow_expansion.
2860	(insert_pragma_entry): Take allow_expansion flag.
2861	(register_pragma): Likewise.
2862	(cpp_register_pragma): Likewise.
2863	(_cpp_init_internal_pragmas): Update calls to cpp_register_pragma.
2864	(do_pragma): Honor allow_expansion.
2865	(cpp_handle_deferred_pragma): Set in_deferred_pragma.
2866	* include/cpplib.h (cpp_register_pragma): Update prototype.
2867
28682004-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
2869	    Mark Mitchell  <mark@codesourcery.com>
2870
2871	* configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set
2872	need_64bit_hwint=yes.
2873	* configure: Regenerate.
2874
28752004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
2876
2877	* Makefile.in ($(PACKAGE).pot): New rule.  Depend on
2878	po/$(PACKAGE).pot.
2879	(po/$(PACKAGE).pot): Use ":" instead of "," in --keyword
2880	arguments.  Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2.
2881	Remove local srcdir path from generated file.
2882
28832004-11-04  Zack Weinberg  <zack@codesourcery.com>
2884	    Gerald Pfeifer  <gerald@pfeifer.com>
2885
2886	* internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
2887	as well.
2888
28892004-10-27  Zack Weinberg  <zack@codesourcery.com>
2890
2891	PR 18075
2892	* directives.c (do_pragma): Do not defer pragmas which are unknown.
2893	(cpp_handle_deferred_pragma): Add cast to silence warning.
2894
28952004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
2896
2897	* errors.c (_cpp_begin_message): Print "error: " for errors.
2898
28992004-10-10  Andreas Jaeger  <aj@suse.de>
2900
2901	* makedepend.c: Include mkdeps.h for prototype of deps_add_vpath.
2902	* Makefile.in (makedepend.o): Add dependency on mkdeps.h.
2903
29042004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2905
2906	* pch.c (cpp_write_pch_state): Remove variable z as it is not
2907	used.
2908	(cpp_read_state): Remove unused variables, m, d and mac_count.
2909
29102004-09-29  Per Bothner  <per@bothner.com>
2911
2912	* directives.c (cpp_handle_deferred_pragma):  Save, clear and restore
2913	cb.line_change.  Otherwise do_pragma will call the line_change
2914	call-back with a meaningless line number.
2915
29162004-09-24  Zack Weinberg  <zack@codesourcery.com>
2917
2918	* configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to
2919	programs cluster. Use ACX_PROG_CC_WARNING_OPTS,
2920	ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS.
2921	* aclocal.m4, configure: Regenerate.
2922	* init.c: Include localedir.h.
2923	* Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables.
2924	(DEFS): Delete.
2925	(.c.o): Use $(ALL_CFLAGS).
2926	(localedir.h, localedir.hs): New rules.
2927	(clean): Use rm -rf to remove directories.
2928	(distclean): Also delete localedir.h and localedir.hs.
2929	(init.o): Update dependencies.
2930
29312004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2932
2933	* Makefile.in (aclocal.m4): Update dependencies.
2934	* configure.ac (AC_CONFIG_MACRO_DIR): New.
2935	* aclocal.m4, configure: Regenerate.
2936
29372004-09-17  Zack Weinberg  <zack@codesourcery.com>
2938
2939	* charset.c (_cpp_destroy_iconv, emit_numeric_escape)
2940	(_cpp_convert_input, _cpp_default_encoding): Add comments.
2941	Some other comments in this file also tweaked.
2942
2943	* directives.c (do_pragma): Save current buffer position
2944	before lexing the pragma keywords; don't call
2945	_cpp_backup_tokens in the defer_pragmas case.
2946
29472004-09-15  Per Bothner  <per@bothner.com>
2948
2949	* include/line-map.h (line_map_start):  Add parameter names so
2950	preceding comment makes sense.
2951	(linemap_add):  Remove from comment mention of non-existing parameter.
2952
29532004-09-09  Matt Austern  <austern@apple.com>
2954	    Zack Weinberg  <zack@codesourcery.com>
2955
2956	* include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
2957	prefixes throughout.  Add entry for PRAGMA.  Remove
2958	unnecessary "= 0" from EQ.
2959	(enum cpp_ttype): Adjust OP and TK definitions to restore
2960	prefixes, via token-paste.
2961	(CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
2962	Change from #defines to additional cpp_ttype enumerators.
2963	(struct cpp_options): Add defer_pragmas.
2964	(cpp_handle_deferred_pragma): Prototype new interface.
2965
2966	* internal.h (struct cpp_reader): Add directive_result.
2967	* directives.c (struct pragma_entry): Add is_internal field;
2968	give boolean fields type bool.
2969	(start_directive): Initialize pfile->directive_result.type.
2970	(_cpp_do__Pragma): Likewise.
2971	(run_directive): Do not crash if pfile->buffer->prev is NULL.
2972	(insert_pragma_entry): Add 'internal' argument; set new->is_internal
2973	from it.
2974	(register_pragma): New static function, bulk of former
2975	cpp_register_pragma here; add 'internal' argument, pass along
2976	to insert_pragma_entry.
2977	(cpp_register_pragma): Now a wrapper around register_pragma which
2978	always passes false for 'internal' argument.
2979	(_cpp_init_internal_pragmas): Call register_pragma directly, passing
2980	true for 'internal'.
2981	(do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
2982	an internal pragma, save text till the end of the line as a CPP_PRAGMA
2983	token instead of executing the pragma.
2984	(cpp_handle_deferred_pragma): New interface.
2985	* lex.c (token_spellings): Adjust OP and TK definitions to
2986	match changes to cpplib.h.
2987	(_cpp_lex_token): Check for a directive-result token and
2988	return it if present.
2989	(cpp_token_val_index): Handle CPP_PRAGMA.
2990	* macro.c (cpp_builtin_macro_text): Correct comment.
2991	(builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
2992
29932004-09-06  Serge Belyshev  <belyshev@lubercy.com>
2994
2995	PR preprocessor/14699
2996	* symtab.c (ht_dump_statistics): Change type of sum_of_squares
2997	from size_t to double.
2998
29992004-08-28  Andreas Schwab  <schwab@suse.de>
3000	    Andreas Jaeger <aj@suse.de>
3001
3002	* configure.ac: Set PACKAGE correctly.
3003	* configure: Regenerated.
3004
30052004-08-25  Paolo Bonzini  <bonzini@gnu.org>
3006
3007	* Makefile.in: Add back top_builddir.
3008
30092004-08-25  Paolo Bonzini  <bonzini@gnu.org>
3010
3011	* configure.ac: Replace Automake macro invocations
3012	with manual Autoconf checks and substitutions.
3013	* configure: Regenerate.
3014	* aclocal.m4: Regenerate.
3015	* config.in: Regenerate.
3016	* Makefile.am: Removed.
3017	* Makefile.in: Heavy simplification and reorganization.
3018
30192004-08-09  Mark Mitchell  <mark@codesourcery.com>
3020
3021	* configure.ac (arm*-*-eabi*): New target.
3022	(arm*-*-symbianelf*): Likewise.
3023	* configure: Regenerated.
3024
30252004-07-24  Bernardo Innocenti  <bernie@develer.com>
3026
3027	* internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove.
3028	* directives.c: Use XNEW-family macros from libiberty.
3029	* lex.c: Likewise.
3030	* macro.c: Likewise.
3031	* cpplib.h (cpp_deps_style): Export enum with name.
3032
30332004-07-23  Matthias Klose  <doko@debian.org>
3034
3035	* init.c (init_library): Use PACKAGE for the text domain.
3036
30372004-07-16  Andris Pavenis  <pavenis@latnet.lv>
3038
3039	PR preprocessor/16366
3040	* internal.h (struct cpp_reader): New field dir_hash.
3041	* files.c (make_cpp_dir): Use dir_hash, not file_hash.
3042	(_cpp_init_files, _cpp_cleanup_files): Update for new field.
3043
30442004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
3045
3046	PR preprocessor/16192
3047	PR preprocessor/15913
3048	PR preprocessor/15572
3049	* expr.c (_cpp_parse_expr): Handle remaining cases where an
3050	expression is missing.
3051	* init.c (post_options): Traditional cpp doesn't do // comments.
3052
30532004-06-30  Per Bothner  <per@bothner.com>
3054
3055	* include/line-map.h (fileline):  Remove old typedef.
3056	* internal.h (struct cpp_reader):  Use source_location typedef instead.
3057
30582004-06-26  Zack Weinberg  <zack@codesourcery.com>
3059
3060	Partially revert patch of 2004-06-05.
3061	* files.c (search_cache): Remove pfile argument.  Don't check
3062	for file that would be found by "" or <> search here...
3063	(_cpp_find_file): ...do it here, before calling find_file_in_dir.
3064	Do not apply directory-of-current-file correction to files
3065	found by this check.  Rearrange code slightly.
3066
30672004-06-21  Geoffrey Keating  <geoffk@apple.com>
3068
3069	* files.c (should_stack_file): Correct swapped parameters to call
3070	to cb.read_pch.
3071	* pch.c (cpp_valid_state): Handle -fpreprocessed.
3072
30732004-06-15  Paolo Bonzini  <bonzini@gnu.org>
3074
3075	* Makefile.in: Regenerate with automake 1.8.5.
3076	* aclocal.m4: Likewise.
3077	* configure: Regenerate.
3078
30792004-06-11  Zack Weinberg  <zack@codesourcery.com>
3080
3081	* configure.ac: Don't invoke ACX_HEADER_STDBOOL.
3082	* configure, config.in: Regenerate.
3083	* system.h: Unconditionally define bool as unsigned char,
3084	BOOL_BITFIELD as unsigned int.
3085	* .cvsignore: New file.
3086
30872004-06-09  Geoffrey Keating  <geoffk@apple.com>
3088
3089	* traditional.c (push_replacement_text): Set macro->traditional.
3090	(save_replacement_text): Likewise.
3091	* pch.c (cpp_write_pch_state): Don't write list of defined macros.
3092	(struct save_macro_item): Delete.
3093	(struct save_macro_data): Use a character array not the previous
3094	structured format.
3095	(save_macros): Save macro as text not as internal structures.
3096	(cpp_prepare_state): Update for changes to save_macro_data.
3097	(cpp_read_state): Don't read macros defined in PCH.  Restore
3098	-D macros as text.
3099	* macro.c (create_iso_definition): Honour alloc_subobject.
3100	Clear traditional flag.
3101	(_cpp_create_definition): Honour alloc_subobject.
3102	* lex.c (cpp_token_val_index): New.
3103	* internal.h: Include cpp-id-data.h.
3104	(uchar): Move definition to cpp-id-data.h.
3105	(U): Likewise.
3106	(cpp_macro): Likewise.
3107	* directives.c (struct answer): Move to cpp-id-data.h.
3108	(do_assert): Honour alloc_subobject.
3109
3110	* include/symtab.h (struct ht): Add field 'alloc_subobject'.
3111	* include/cpplib.h (struct cpp_string): Add GTY marker.
3112	(enum cpp_token_fld_kind): New.
3113	(struct cpp_token): Add GTY markers.
3114	(cpp_token_val_index): Prototype.
3115	(CPP_HASHNODE_VALUE_IDX): New.
3116	(struct cpp_hashnode): Don't skip fields of 'value' when marking.
3117	* include/cpp-id-data.h: New file.
3118
31192004-06-09  Paolo Bonzini  <bonzini@gnu.org>
3120
3121	* Makefile.am (all-local): New.
3122	* Makefile.in: Regenerate.
3123
31242004-06-06  Roger Sayle  <roger@eyesopen.com>
3125
3126	* Makefile.am (LIBICONV): Declare.
3127	(makedepend_LDADD): Use LIBICONV.
3128	* Makefile.in: Regenerate.
3129
31302004-06-05  Andrew Pinski  <pinskia@physics.uc.edu>
3131
3132	* Makefile.am (LIBINTL): Declare
3133	(makedepend_LDADD): Use LIBINTL.
3134	* Makefile.in: Regenerate.
3135
31362004-06-05  Zack Weinberg  <zack@codesourcery.com>
3137
3138	* Makefile.am: Add makedepend.
3139	* Makefile.in, aclocal.m4: Regenerate.
3140	* charset.c: Insert a space to avoid a warning.
3141	* directives.c: Include mkdeps.h.
3142	(_cpp_handle_directive): Reenable macro expander if appropriate.
3143	(undefine_macros): Inline body of _cpp_free_definition for speed.
3144	Do not call undef callback or _cpp_warn_if_unused_macro.
3145	(cpp_get_deps): New interface.
3146	* files.c (search_cache): Add pfile argument.  Check for file
3147	that would be found by "" or <> search here...
3148	(_cpp_find_file): ...not here.  Correct recorded start_dir of
3149	files found by directory-of-current-file search that would be
3150	found by "" or <> search.
3151	* init.c (cpp_add_dependency_target): Delete.
3152	* internal.h (struct lexer_state): Add discarding_output flag.
3153	* lex.c (lex_identifier): Compute hash function while scanning.
3154	* macro.c (cpp_scan_nooutput): Disable macro expansion outside
3155	directives.
3156	* makedepend.c: New file.
3157	* mkdeps.c (struct deps): Add vpath vector.
3158	(apply_vpath, deps_add_vpath): New function.
3159	(deps_free): Free vpath vector.
3160	(deps_add_dep, deps_add_target): Use apply_vpath.
3161	* symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH.
3162	(ht_lookup_with_hash): New function.
3163	* cpplib.h, mkdeps.h: Update prototypes.
3164	* symtab.h: Update prototypes.
3165	(HT_HASHSTEP, HT_FINISH): New macros.
3166
31672004-05-29  Geoffrey Keating  <geoffk@apple.com>
3168
3169	* symtab.c (ht_create): Set entries_owned.
3170	(ht_destroy): Honour entries_owned.
3171	(ht_expand): Likewise.
3172	(ht_load): New.
3173	* include/symtab.h (struct ht): New field 'entries_owned'
3174	(ht_load): New prototype.
3175
31762004-05-26  Paolo Bonzini  <bonzini@gnu.org>
3177
3178	PR bootstrap/15651
3179	* configure.ac: Fix m4 quoting when picking
3180	the size of HOST_WIDE_INT.
3181	* configure: Regenerate.
3182
31832004-05-25  Paolo Bonzini  <bonzini@gnu.org>
3184
3185	* Makefile.am: the correct directory for
3186	gettext include files is given by @INCINTL@.
3187	* Makefile.in: Regenerate.
3188
31892004-05-24  Paolo Bonzini  <bonzini@gnu.org>
3190
3191	* system.h [!ENABLE_NLS]: dgettext takes two
3192	parameters.
3193
31942004-05-23  Paolo Bonzini  <bonzini@gnu.org>
3195
3196	Moved libcpp from the gcc subdirectory to the toplevel.
3197	* Makefile.am: New file.
3198	* Makefile.in: Regenerate.
3199	* configure.ac: New file.
3200	* configure: Regenerate.
3201	* config.in: Regenerate.
3202	* charset.c: Moved from gcc/cppcharset.c.  Add note about
3203	brokenness of input charset detection.  Adjust for change
3204	in name of cppucnid.h.
3205	* errors.c: Moved from gcc/cpperror.c.  Do not include intl.h.
3206	* expr.c: Moved from gcc/cppexp.c.
3207	* files.c: Moved from gcc/cppfiles.c.  Do not include intl.h.
3208	Remove #define of O_BINARY, it is in system.h.
3209	* identifiers.c: Moved from gcc/cpphash.c.
3210	* internal.h: Moved from gcc/cpphash.h.  Change header
3211	guard name.  All other files adjusted to match name change.
3212	* init.c: Moved from gcc/cppinit.c.
3213	(init_library) [ENABLE_NLS]: Call bindtextdomain.
3214	* lex.c: Moved from gcc/cpplex.c.
3215	* directives.c: Moved from gcc/cpplib.c.
3216	* macro.c: Moved from gcc/cppmacro.c.
3217	* pch.c: Moved from gcc/cpppch.c.  Do not include intl.h.
3218	* traditional.c: Moved from gcc/cpptrad.c.
3219	* ucnid.h: Moved from gcc/cppucnid.h.  Change header
3220	guard name.
3221	* ucnid.pl: Moved from gcc/cppucnid.pl.
3222	* ucnid.tab: Moved from gcc/cppucnid.tab.  Change header
3223	guard name.
3224	* symtab.c: Moved from gcc/hashtable.c.
3225	* line-map.c: Moved from gcc.  Do not include intl.h.
3226	* mkdeps.c: Moved from gcc.
3227	* system.h: New file.
3228	* include/cpplib.h: Moved from gcc.  Change header guard name.
3229	* include/line-map.h: Moved from gcc.  Change header guard name.
3230	* include/mkdeps.h: Moved from gcc.  Change header guard name.
3231	* include/symtab.h: Moved from gcc/hashtable.h.  Change header
3232	guard name.
3233