12006-12-31  Simon Martin  <simartin@users.sourceforge.net>
2
3	PR c++/29731
4	* parser.c (cp_parser_primary_expression): Return error_mark_node when
5	a statement-expression is found outside of a function body.
6
72006-12-28  Kazu Hirata  <kazu@codesourcery.com>
8
9	* cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
10	Remove.
11
12	* decl2.c: Fix a comment typo.
13
142006-12-21  Andrew Pinski  <pinskia@gmail.com>
15
16	PR C++/30225
17	* decl.c (cxx_builtin_function): Only copy the decl if adding
18	it to the std namespace.
19
202006-12-21  Andrew Pinski  <pinskia@gmail.com>
21
22	PR C++/30168
23	* optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
24
252006-12-22  Kazu Hirata  <kazu@codesourcery.com>
26
27	* decl.c: Fix a coment typo.
28
292006-12-18  Ian Lance Taylor  <iant@google.com>
30
31	* decl.c (start_preparsed_function): Add support for
32	-Wmissing-declarations.
33
342006-12-16  Simon Martin  <simartin@users.sourceforge.net>
35
36	PR c++/29475
37	* cp-tree.h (struct deferred_access_check): New structure to represent a
38	deferred access check. It replaces the previous representation as a tree.
39	(get_deferred_access_checks): Return a vector of struct
40	deferred_access_check instead of a tree list.
41	(perform_access_checks): Take a vector of struct deferred_access_check
42	instead of a tree list.
43	* semantics.c (struct deferred_access): Store the deferred access checks
44	as a vector of struct deferred_access_check instead of a tree list.
45	(push_deferring_access_checks): Handle the change in struct
46	deferred_access.
47	(get_deferred_access_checks): Likewise.
48	(pop_to_parent_deferring_access_checks): Likewise.
49	(perform_or_defer_access_check): Likewise.
50	(perform_access_checks): Take a vector of struct deferred_access_check
51	instead of a tree list.
52	* parser.c (struct tree_check): New structure to store various data
53	associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.
54	(struct cp_token): Changed the value field to be a union with a pointer to
55	a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
56	tokens and a tree field for all other tokens.
57	(eof_token): Adjusted due to the change in struct cp_token.
58	(cp_lexer_get_preprocessor_token): Likewise.
59	(cp_lexer_purge_token): Likewise.
60	(cp_lexer_purge_tokens_after): Likewise.
61	(cp_lexer_print_token): Likewise.
62	(cp_parser_error): Likewise.
63	(cp_parser_identifier): Likewise.
64	(cp_parser_string_literal): Likewise.
65	(cp_parser_primary_expression): Likewise.
66	(cp_parser_unqualified_id): Likewise.
67	(cp_parser_parenthesized_expression_list): Likewise.
68	(cp_parser_storage_class_specifier_opt): Likewise.
69	(cp_parser_function_specifier_opt): Likewise.
70	(cp_parser_type_specifier): Likewise.
71	(cp_parser_simple_type_specifier): Likewise.
72	(cp_parser_initializer_list): Likewise.
73	(cp_parser_member_specification_opt): Likewise.
74	(cp_parser_attribute_list): Likewise.
75	(cp_parser_objc_expression): Likewise.
76	(cp_parser_objc_protocol_qualifiers): Likewise.
77	(cp_parser_objc_selector): Likewise.
78	(cp_parser_objc_declaration): Likewise.
79	(cp_parser_objc_statement): Likewise.
80	(cp_parser_omp_clause_name): Likewise.
81	(cp_parser_omp_clause_default): Likewise.
82	(cp_parser_omp_clause_schedule): Likewise.
83	(cp_parser_omp_parallel): Likewise.
84	(cp_parser_initial_pragma): Likewise.
85	(pragma_lex): Likewise.
86	(cp_parser_pre_parsed_nested_name_specifier): Likewise.
87	(cp_parser_nested_name_specifier_opt): Likewise.
88	Use cp_token::u::tree_check_value to save the token's value, the
89	associated deferred checks and its qualifying scope.
90	(cp_parser_template_id): Likewise.
91	(cp_parser_template_declaration_after_export): Adjusted the call to
92	get_deferred_access_checks.
93	(cp_parser_init_declarator): Take the access checks as a vector of struct
94	deferred_access_check instead of a tree list.
95	(cp_parser_single_declaration): Likewise.
96	(cp_parser_perform_template_parameter_access_checks): Likewise.
97	(cp_parser_simple_declaration): Adjusted the call to
98	cp_parser_init_declarator.
99	(cp_parser_explicit_specialization): Adjusted the call to
100	cp_parser_single_declaration.
101
1022006-12-13  Ian Lance Taylor  <iant@google.com>
103
104	PR c++/19564
105	PR c++/19756
106	* parser.c (cp_parser_expression_stack_entry): Add field
107	lhs_type.
108	(cp_parser_binary_expression): Track tree code of left hand side
109	of expression.  Use it when calling build_x_binary_op.
110	(cp_parser_selection_statement): Add if_p parameter.  Change all
111	callers.  Warn about ambiguous else.
112	(cp_parser_statement): Add if_p parameter.  Change all callers.
113	(cp_parser_implicitly_scoped_statement): Likewise.
114	* typeck.c (build_x_binary_op): Add parameters arg1_code and
115	arg2_code.  Change all callers.  Call warn_about_parentheses.
116	* cp-tree.h (build_x_binary_op): Update declaration.
117
1182006-12-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
119
120	* decl.c (build_enumerator): Update error message to match C
121	front-end.
122
1232006-12-11  Jan Hubicka  <jh@suse.cz>
124
125	* decl2.c (var_finalized_p): Update for renamed varpool functions.
126
1272006-12-09  Zack Weinberg  <zackw@panix.com>
128
129	* parser.c (yydebug, enum pragma_omp_clause): Delete.
130
1312006-12-07  Mark Mitchell  <mark@codesourcery.com>
132
133	PR c++/29732
134	* cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
135	(explicit_class_specialization_p): Declare.
136	* pt.c (explicit_class_specialization_p): New function.
137	* parser.c (cp_parser_init_declarator): Check correct number of
138	template parameters for in-class function definitions.
139	(cp_parser_check_declrator_template_parameters): Stop looking for
140	template classes when we find an explicit specialization.
141
1422006-12-07  Lee Millward  <lee.millward@codesourcery.com>
143
144	PR c++/29980
145	* cp_parser_elaborated_type_specifier: Check
146	the return value of check_elaborated_type_specifier.
147
1482006-12-06  Mark Mitchell  <mark@codesourcery.com>
149
150	PR c++/29730
151	* parser.c (cp_parser_init_declarator): Reject initialization of
152	functions.
153
1542006-12-05  Mark Mitchell  <mark@codesourcery.com>
155
156	PR c++/29729
157	* decl2.c (check_member_template): Move check for member
158	templates in local classes to ...
159	* parser.c (cp_parser_template_declaration_after_export):
160	... here.
161
162	PR c++/29728
163	* decl.c (check_array_designated_initializer): New function.
164	(maybe_deduce_size_from_array_init): Use it.
165	(reshape_init_array): Likewise.
166
1672006-12-05  Aldy Hernandez  <aldyh@redhat.com>
168
169	Merge from gimple-tuples-branch.
170
171	2006-10-05  Aldy Hernandez  <aldyh@redhat.com>
172
173	* cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
174	(cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
175	(cxx_omp_clause_copy_ctor): Same.
176	(cxx_omp_clause_assign_op): Same.
177
178	2006-09-28  Aldy Hernandez  <aldyh@redhat.com>
179
180	* cp-tree.h (union lang_tree_node): Gimple statements do not
181	have a TREE_CHAIN.
182	(TREE_INDIRECT_USING): Look in base.
183
1842006-12-04  Jan Hubicka  <jh@suse.cz>
185
186	* cp-objcp-common.c (cp_expr_size): Return NULL in the case
187	size is undefined.
188
1892006-12-04  Mark Mitchell  <mark@codesourcery.com>
190
191	PR c++/29733
192	* pt.c (tsubst_decl): Disallow variables of function type.
193
194	PR c++/29632
195	* call.c (add_builtin_candidate): Do not permit NULL pointer
196	constants to be compared with template parameters.
197
1982006-12-04  Eric Botcazou  <ebotcazou@adacore.com>
199
200	* pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
201	Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
202
2032006-12-03  Richard Henderson  <rth@redhat.com>
204	    Andrew Pinski  <pinskia@gmail.com>
205
206	PR C++/14329
207	* error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
208
2092006-12-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
210
211	PR C++/30033
212	* decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
213
2142006-12-02  Kazu Hirata  <kazu@codesourcery.com>
215
216	* name-lookup.c: Follow spelling conventions.
217
2182006-12-01  Geoffrey Keating  <geoffk@apple.com>
219
220	* decl.c (poplevel): Check DECL_INITIAL invariant.
221	(duplicate_decls): Preserve DECL_INITIAL when eliminating
222	a new definition in favour of an old declaration.
223	(start_preparsed_function): Define and document value of
224	DECL_INITIAL before and after routine.
225	(finish_function): Check DECL_INITIAL invariant.
226	* parser.c
227	(cp_parser_function_definition_from_specifiers_and_declarator):
228	Skip duplicate function definitions.
229
2302006-12-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
231
232	PR c++/30022
233	* typeck.c (type_after_usual_arithmetic_conversions):
234	Fix assertion for vector types.
235	(build_binary_op): Use temporary for inner type of vector types.
236
2372006-12-01  Ryan Mansfield  <rmansfield@qnx.com>
238
239	PR c++/29066
240	* typeck.c (build_binary_op):  Fix pointer to member function
241	comparison for ptrmemfunc_vbit_in_delta targets.
242
2432006-12-01  Dirk Mueller  <dmueller@suse.de>
244
245	PR c++/18313
246	* decl.c (grokdeclarator): Warn for type qualifiers on return
247	type for non-dependent types.
248	* pt.c (tsubst_function_type): Warn for type qualifiers on
249	return type for dependent types.
250
2512006-11-30  Geoffrey Keating  <geoffk@apple.com>
252
253	* rtti.c (get_tinfo_decl): Handle return value from
254	pushdecl_top_level_and_finish.
255
2562006-11-29  Lee Millward  <lee.millward@codesourcery.com>
257
258	PR c++/29022
259	* parser.c (cp_parser_class_head): Move processing
260	of any base classes to...
261	(cp_parser_class_specifier) ...here. Take an extra
262	tree* parameter for any base classes. Only process
263	them if the opening brace was found.
264
2652006-11-28  Jakub Jelinek  <jakub@redhat.com>
266
267	PR c++/29735
268	* decl.c (grokfndecl): Check main's type after applying
269	attributes, not before.
270
2712006-11-27  Mark Mitchell  <mark@codesourcery.com>
272
273	* class.c (build_vcall_offset_vtbl_entries): Do not add vcall
274	entries for a primary construction virtual table.
275
2762006-11-26  Mark Mitchell  <mark@codesourcery.com>
277
278	PR c++/29886
279	* parser.c (cp_parser): Add in_function_body.
280	(cp_parser_new): Initialize it.
281	(cp_parser_primary_expression): Use parser->in_function_body
282	instead of at_function_scope_p.
283	(cp_parser_asm_definition): Likewise.
284	(cp_parser_direct_declarator): Likewise.
285	(cp_parser_class_specifier): Clear parser->in_function_body.
286	(cp_parser_constructor_declarator_p): Use parser->in_function_body
287	instead of at_function_scope_p.
288	(cp_parser_function_body_after_declarator): Set
289	parser->in_function_body.
290
2912006-11-21      Douglas Gregor <doug.gregor@gmail.com>
292
293	* cp-tree.def (STATIC_ASSERT): New.
294	* cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
295	* error.c (dump_decl): Handle STATIC_ASSERT.
296	* cp-tree.h (STATIC_ASSERT_CONDITION): New.
297	(STATIC_ASSERT_MESSAGE): New.
298	(STATIC_ASSERT_SOURCE_LOCATION): New.
299	(struct tree_static_assert): New.
300	(enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
301	(union lang_tree_node): Add static_assertion.
302	(finish_static_assert): Declare.
303	* cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
304	(pp_cxx_declaration): Handle STATIC_ASSERT.
305	* pt.c (instantiate_class_template): Handle
306	STATIC_ASSERT members.
307	(tsubst_expr): Handle STATIC_ASSERT statements.
308	* semantics.c (finish_static_assert): New.
309	* lex.c (D_CPP0X): New.
310	(reswords): Add static_assert keyword.
311	(init_reswords): If not flag_cpp0x, mask out C++0x keywords.
312	* parser.c (cp_parser_block_declaration): Parse static
313	assertions.
314	(cp_parser_static_assert): New.
315	(cp_parser_member_declaration): Parse static assertions.
316
3172006-11-21  Jakub Jelinek  <jakub@redhat.com>
318
319	PR c++/29570
320	* decl.c (cp_finish_decl): Check for value dependent brace enclosed
321	scalar initializer.
322
323	PR c++/29734
324	* cp-tree.h (WANT_VECTOR): Define.
325	(WANT_ARITH): Add WANT_VECTOR.
326	* cvt.c (build_expr_type_conversion): Handle vector types.
327	* typeck.c (build_unary_op): Add WANT_VECTOR to
328	build_expr_type_conversion flags.
329
3302006-11-20  Simon Martin  <simartin@users.sourceforge.net>
331
332	PR c++/29475
333	* cp-tree.h (enforce_access, perform_or_defer_access_check): Added an
334	extra argument that represents the declaration to use to print
335	potential error messages.
336	* init.c (build_offset_ref): Adjusted the call to
337	perform_or_defer_access_check.
338	* class.c (alter_access, resolve_address_of_overloaded_function):
339	Likewise.
340	* decl.c (make_typename_type, make_unbound_class_template): Likewise.
341	* search.c (lookup_member): Likewise.
342	* friend.c (add_friend): Likewise.
343	* parser.c (cp_parser_template_id,
344	cp_parser_pre_parsed_nested_name_specifier): Likewise.
345	* semantics.c (finish_non_static_data_member,
346	check_accessibility_of_qualified_id, finish_id_expression): Likewise.
347	(pop_to_parent_deferring_access_checks, perform_access_checks,
348	perform_or_defer_access_check): Adjusted the call to enforce_access.
349	* call.c (enforce_access): Use the new extra argument to build the
350	error message.
351	(build_op_delete_call): Adjusted the call to
352	perform_or_defer_access_check.
353	(build_over_call): Likewise.
354
3552006-11-16  Dirk Mueller  <dmueller@suse.de>
356
357	* name-lookup.c (begin_scope): Use GGC_CNEW instead of
358	GGC_NEW and memset.
359
3602006-11-13  Roger Sayle  <roger@eyesopen.com>
361
362	* rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
363	base type info initializer has the correct type.
364
3652006-11-13  Mark Mitchell  <mark@codesourcery.com>
366
367	PR c++/29518
368	* pt.c (coerce_template_parms): Do not skip_evaluation while
369	substituting template arguments.
370
3712006-11-11  Richard Guenther  <rguenther@suse.de>
372
373	* typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
374	FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
375
3762006-11-03  Roger Sayle  <roger@eyesopen.com>
377
378	* call.c (build_op_delete_call): Test user-visible type against
379	size_type_node, instead of against the internal type, sizetype.
380	* class.c (type_requires_array_cookie): Likewise.
381	* mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special
382	handling of TYPE_IS_SIZETYPE.
383	* typeck.c (type_after_usual_arithmetic_conversions): Remove
384	special case handling of TYPE_IS_SIZETYPE.
385	(comptypes): Likewise.
386
3872006-11-01  Danny Smith  <dannysmith@users.sourceforge.net>
388
389	* decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
390	if targetm.cxx.use_atexit_for cxa_atexit.
391	(start_cleanup_fn): Likewise.
392	(register_dtor_fn): Likewise.
393
3942006-09-25  Geoffrey Keating  <geoffk@apple.com>
395
396	* decl2.c (cp_write_global_declarations): Rename from
397	cp_finish_file.
398	* cp-lang.c (finish_file): Don't call cp_finish_file.
399	* cp-tree.h (cp_write_global_declarations): Rename from
400	cp_finish_file.
401	* cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
402	cp_write_global_declarations.
403
4042006-10-31  Geoffrey Keating  <geoffk@apple.com>
405
406	* name-lookup.c (get_anonymous_namespace_name): New.
407	(push_namespace_with_attribs): Use get_anonymous_namespace_name.
408	* decl2.c (start_objects): Update for rename of
409	get_file_function_name_long.
410
4112006-10-30  Dirk Mueller  <dmueller@suse.de>
412
413	PR c++/28704
414	* decl.c (grokdeclarator): Duplicate diagnostic message
415	for easier translation.
416	* decl.c (grokdeclarator): Fix line-wrapping.
417
4182006-10-30  Dirk Mueller  <dmueller@suse.de>
419
420	PR c++/6321
421	* decl.c (grokfndecl): Use check_main_parameter_types.
422
4232006-10-30  Dirk Mueller  <dmueller@suse.de>
424
425	PR c++/28669
426	* decl.c (grokfndecl): Duplicate warning message for
427	easier translation.
428
4292006-10-30  Dirk Mueller  <dmueller@suse.de>
430
431	* typeck.c (build_unary_op): Fix indenting. Use G_().
432
4332006-10-29  Dirk Mueller  <dmueller@suse.de>
434
435	PR c++/29089
436	* typeck.c (build_unary_op): Duplicate warning message
437	for easier translation.
438
4392006-10-29  Dirk Mueller  <dmueller@suse.de>
440
441	PR c++/16307
442	* typeck.c (build_array_ref): Warn for char subscriptions
443	on pointers.
444
4452006-10-29  Kazu Hirata  <kazu@codesourcery.com>
446
447	* decl.c: Fix a comment typo.
448
4492006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
450
451	PR C++/29295
452	* typeck.c (build_unary_op): Use same_type_p when comparing to
453	boolean type.
454
4552006-10-29  Dirk Mueller  <dmueller@suse.de>
456
457	PR c++/29033
458	* typeck.c (build_binary_op): Duplicate warning message
459	for better translation.
460
4612006-10-23  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
462
463	* decl.c (builtin_function_1): Move common code to
464	add_builtin_function.
465	(builtin_function): Rename to cxx_builtin_function.
466	Change the signature.
467	* call.c: Include langhooks.h.
468	(build_java_interface_fn_ref):  Replace calls to
469	builtin_function with add_builtin_function.
470	* Make-lang.in (cp/call.o): Depend on langhooks.h.
471	* cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
472	cxx_builtin_function.
473	* cp-tree.h (builtin_function): Rename to cxx_builtin_function.
474	Change the signature.
475
4762006-10-22  Nathan Sidwell  <nathan@codesourcery.com>
477
478	PR c++/20647
479	* rtti.c (tinfo_base_init): The type info string is always global.
480
4812006-10-20  Lee Millward  <lee.millward@codesourcery.com>
482	    Mark Mitchell <mark@codesourcery.com>
483
484	PR c++/28053
485	* decl2.c (grokbitfield): Detect invalid non-integral
486	types earlier when possible.
487
4882006-10-18  Mark Shinwell  <shinwell@codesourcery.com>
489
490	PR c++/26884
491	* typeck2.c (digest_init): Raise error upon attempts to
492	initialize arrays with variables.
493
4942006-10-17  Lee Millward  <lee.millward@codesourcery.com>
495
496	PR c++/27952
497	* cp-tree.h (xref_basetypes): Return bool instead of void.
498	* decl.c (xref_basetypes): Adjust definition. Return false
499	if the class bases are invalid.
500	* parser.c (cp_parser_class_head): Check the return value
501	from xref_basetypes.
502
5032006-10-17  Mark Mitchell  <mark@codesourcery.com>
504
505	PR c++/28261
506	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
507	comment.
508
509	PR c++/28261
510	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
511	function.
512	(cp_parser_constructor_declarator_p): Use it.
513	(cp_parser_check_type_definition): Return a value indicating
514	whether or not the definition is valid.
515	(cp_parser_enum_specifier): Skip invalid enum definitions.
516
5172006-10-17  Mark Mitchell  <mark@codesourcery.com>
518
519	PR c++/29039
520	* typeck2.c (build_functional_cast): Don't zero-initialize
521	non-PODs; instead, call their constructors.
522	* method.c (synthesize_method): Always build mem-initializers, if
523	we're synthesizing the default constructor.
524
5252006-10-17  Mark Mitchell  <mark@codesourcery.com>
526
527	PR c++/27270
528	* decl.c (reshape_init_class): Move check for designated
529	to ...
530	* parser.c (cp_parser_initializer_list): ... here.
531	* pt.c (tsubst_copy_and_build): Use finish_compound_literal.
532
5332006-10-16  Mark Mitchell  <mark@codesourcery.com>
534
535	PR c++/27270
536	* typeck2.c (process_init_constructor_array): Reword comment.
537	* pt.c (tsubst_copy_and_built): Call reshape_init before calling
538	digest_init.
539
540	PR c++/29408
541	* parser.c (cp_parser_using_declaration): Stop parsing when
542	something goes wrong with an access declaration.
543
544	PR c++/29435
545	* typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
546	types when their sizes are required.  Refine test for VLAs.
547
548	PR c++/28211
549	* parser.c (cp_parser_template_argument): Don't consider "&var" a
550	possible constant-expression.
551	* pt.c (convert_nontype_argument): Refine handling of arguments of
552	pointer type.
553
5542006-10-13  Mark Mitchell  <mark@codesourcery.com>
555
556	PR c++/28506
557	* parser.c (function_declarator_p): New function.
558	(cp_parser_init_declarator): Use it.
559	(cp_parser_member_declaration): Likewise.
560
5612006-10-12  Mark Mitchell  <mark@codesourcery.com>
562
563	PR c++/29318
564	* rtti.c (get_tinfo_decl): Refuse to create type info objects for
565	variably modified types.
566
5672006-10-12 Lee Millward <lee.millward@codesourcery.com>
568
569       PR c++/27961
570       * decl.c (start_decl): Return error_mark_node if a
571       function is initialized like a variable.
572       (check_var_type): If a variable of field is declared void,
573       set the type to error_mark_node.
574       (grokdeclarator): Check the return type of check_var_type.
575       * class.c (finish_struct_1): Robustify.
576
5772006-10-11  Mark Mitchell  <mark@codesourcery.com>
578
579	PR c++/29175
580	* decl.c (check_initializer): Issue errors about trying to
581	initialize arrays whose elements have variable size.
582
5832006-10-11  Lee Millward  <lee.millward@codesourcery.com>
584
585	PR c++/29024
586	* cp-tree (struct cp_decl_specifier_seq): Rename to
587	conflicting_specifiers_p
588	* parser.c (cp_parser_set_storage_class): Set
589	conflicting_specifiers_p for the input decl specifier
590	if a typedef specifier is present. Rename uses of
591	multiple_specifiers_p to conflicting_specifiers_p.
592	(cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
593	class specifier has already been set for this declaration,
594	set conflicting_specifiers_p to true on the decl_specs.
595	* decl.c (grokdeclarator): Rename uses of
596	multiple_specifiers_p to conflicting_specifiers_p.
597
5982006-10-10  Brooks Moses  <bmoses@stanford.edu>
599
600	* Make-lang.in: Added "c++.pdf" target support.
601
6022006-10-10  Richard Guenther  <rguenther@suse.de>
603
604	PR rtl-optimization/29323
605	* decl.c (finish_function): Set TREE_NOTHROW only for
606	functions that bind local.
607
6082006-10-09  Richard Henderson  <rth@redhat.com>
609
610	Revert emutls patch.
611
6122006-10-04  Richard Henderson  <rth@redhat.com>
613	    Jakub Jelinek  <jakub@redhat.com>
614
615	* decl.c (grokvardecl): Don't error if !have_tls.
616	(grokdeclarator): Likewise.
617	* parser.c (cp_parser_omp_threadprivate): Likewise.
618
6192006-10-03  Mark Mitchell  <mark@codesourcery.com>
620
621	PR c++/29020
622	* friend.c (do_friend): Improve comments; add assertion.
623	* parser.c (cp_parser_nested_name_specifier_opt): Resolve
624	typenames for qualified names used in declarations, even when
625	caching qualified name lookup.
626
627	PR c++/29138
628	* decl2.c (grokfield): Don't handle access declarations here.
629	* parser.c (cp_parser_using_declaration): Handle access
630	declarations too.
631	(cp_parser_block_declaration): Adjust calls to
632	cp_parser_using_declaration.
633	(cp_parser_member_declaration): Likewise.  Use
634	cp_parser_using_declaration to look for access_declarations.
635
6362006-10-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
637
638	PR c++/29291
639	* init.c (build_new): Check for invalid init.
640
6412006-10-02  Mark Mitchell  <mark@codesourcery.com>
642
643	PR c++/29226
644	* typeck.c (cxx_sizeof_or_alignof_type): Tidy.  In templates, do
645	not try to actually evaluate sizeof for a VLA type.
646
6472006-10-01  Mark Mitchell  <mark@codesourcery.com>
648
649	PR c++/29105
650	* pt.c (tsubst_baselink): Substituteinto the qualifying scope.
651	* semantics.c (baselink_for_fns): Build a baselink, even when
652	processing a template.
653
654	PR c++/29080
655	* parser.c (cp_parser_postfix_dot_deref_expression): Use
656	BASELINK_ACCESS_BINFO as the qualifying scope when calling
657	adjust_result_of_qualified_name_lookup.
658
6592006-09-25  Lee Millward  <lee.millward@codesourcery.com>
660
661	PR c++/27329
662	PR c++/26938
663	* cp-tree.h (redeclare_class_template): Adjust declaration
664	to return bool instead of void.
665	* pt.c (redeclare_class_template): Update definition.
666	Return false on error.
667	* decl.c (xref_tag): Return error_mark_node if
668	redeclare_class_template returned false.
669
670	PR c++/27667
671	* cp-tree.h (begin_specialization): Return bool
672	instead of void.
673	* pt.c (check_specialization_scope): Likwise.
674	Adjust comment. Return false if a specialization
675	isn't permitted in the current scope.
676	(begin_specialization): Use the return value of
677	check_specialization_scope.
678	* parser.c (cp_parser_explicit_specialization): If
679	begin_specialization returned false, skip the rest
680	of the specialization.
681
6822006-09-21  Mark Mitchell  <mark@codesourcery.com>
683
684	PR c++/29016
685	* typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
686	BASELINK.
687
6882006-09-21  Lee Millward  <lee.millward@codesourcery.com>
689
690	PR c++/28861
691	* decl.c (shadow_tag): Return error_mark_node
692	if maybe_process_partial_specialization failed.
693
694	PR c++/28303
695	* decl.c (grokdeclarator): Return error_mark_node on
696	declaration with two or more data types.
697
6982006-09-20  Danny Smith  <dannysmith@users.sourceforge.net>
699
700	PR target/27650
701	* class.c (check_for_override): Remove dllimport from virtual
702	methods.
703
7042006-09-18  Steven Bosscher  <steven@gcc.gnu.org>
705
706	PR c++/29087
707	* parser.c (cp_parser_labeled_statement): Return nothing.  Do
708	not take in_statement_expr and in_compound as arguments.  Rename
709	to cp_parser_label_for_labeled_statement.  Parse only the label,
710	not the statement.
711	(cp_parser_statement): Parse the statement of a labeled-statement
712	from here, using tail recursion.
713
7142006-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
715
716	PR C++/29002
717	* init.c (build_zero_init): If we have an error mark node for
718	the array size, return.
719
7202006-09-10  Mark Mitchell  <mark@codesourcery.com>
721
722	PR c++/28991
723	* cp-objcp-common.c (cxx_staticp): New function.
724	* cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
725	* cp-tree.h (cxx_staticp): New function.
726
7272006-09-09  Jason Merrill  <jason@redhat.com>
728
729	PR c++/28996
730	* cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
731
7322006-09-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
733
734	PR c++/28858
735	* parser.c (cp_parser_skip_until_found): Rename to
736	cp_parser_skip_to_end_of_template_parameter_list.  Remove last two
737	parameters.  Track levels of '< ... >'.  Stop at '{', '}', or ';'.
738	Reorganize.  Adjust comment.
739	(cp_parser_template_declaration_after_export): Adjust call.
740	(cp_parser_enclosed_template_argument_list): Likewise.
741
7422006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
743
744	PR C++/28906
745	* init.c (build_new_1): Build a distinct type copy
746	for the array type that was returned from
747	build_cplus_array_type.
748
7492006-09-07  Jason Merrill  <jason@redhat.com>
750
751	PR c++/27371
752	* cvt.c (convert_to_void): Enable previous change.
753
754	PR c++/26957
755	* method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
756	parms.
757
7582006-09-07  Simon Martin  <simartin@users.sourceforge.net>
759
760	PR c++/28284
761	* pt.c (fold_non_dependent_expr): Make sure expr is not
762	dereferenced if it is NULL.
763
7642006-09-06  Zak Kipling  <zak@transversal.com>
765
766	PR c++/26195
767	* decl.c (make_rtl_for_nonlocal_decl),
768	(start_preparsed_function): Don't use lbasename on
769	input_filename when calling get_fileinfo.
770	* semantics.c (begin_class_definition): Likewise.
771	* lex.c (cxx_make_type): Likewise.
772	(handle_pragma_interface): Call get_fileinfo on input_filename,
773	not on the parameter to the directive.
774
7752006-09-06  Mark Mitchell  <mark@codesourcery.com>
776
777	PR c++/28903
778	* pt.c (tsubst): Use fold_non_dependent_expr to fold array
779	dimensions.
780
781	PR c++/28886
782	* pt.c (unify): Avoid unnecessary calls to fold_build2 for array
783	dimensions.
784
7852006-09-06  Jason Merrill  <jason@redhat.com>
786
787	PR c++/27371
788	* cvt.c (convert_to_void): Strip useless TARGET_EXPR.
789	* cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
790	* tree.c (build_cplus_new): Set it.
791
792	PR c++/26696
793	* cvt.c (convert_to_void): Replace a subexpression with no side
794	effects with void_zero_node.
795	* tree.c (is_overloaded_fn): Look through COMPONENT_REF.
796	(get_first_fn): Ditto.
797	* decl.c (grokdeclarator): No need to look through COMPONENT_REF.
798
7992006-09-05  Jason Merrill  <jason@redhat.com>
800
801	PR c++/26571
802	* parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
803	where the name is a type used incorrectly.
804
805	PR c++/26671
806	* typeck.c (maybe_warn_about_returning_address_of_local): Look
807	through COMPONENT_REF and ARRAY_REF.
808
809	PR c++/26102
810	* name-lookup.c (do_class_using_decl): Try to find the base even
811	if bases_dependent_p.
812	* pt.c (type_dependent_expression_p): A USING_DECL is dependent.
813
814	PR c++/19809
815	* pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
816
8172006-09-04  Nathan Sidwell  <nathan@codesourcery.com>
818
819	PR 23287 Revert my 2006-09-01 patch.
820	* parser.c: Reverted.
821	* pt.c: Reverted.
822
8232006-09-02  Lee Millward  <lee.millward@codesourcery.com>
824
825	PR c++/27670
826	PR c++/27493
827	PR c++/27494
828	PR c++/27397
829	* parser.c (cp_parser_template_parameter_list): Add
830	invalid template parameters to the parameter list as
831	error_mark_node.
832
8332006-09-02  Jakub Jelinek  <jakub@redhat.com>
834
835	PR c++/28878
836	* except.c (build_throw): Only set current_function_returns_abnormally
837	if cfun is not NULL.
838
839	PR c++/26917
840	* repo.c (repo_file): Remove.
841	(open_repo_file, reopen_repo_file_for_write): Return fopened
842	FILE * instead of setting global repo_file variable.
843	(init_repo): Adjust caller.
844	(finish_repo): Likewise.  Return instead of goto out before
845	reopen_repo_file_for_write has been called.
846
8472006-09-01  Nathan Sidwell  <nathan@codesourcery.com>
848
849	PR c++/28705
850	* semantics.c (finish_call_expr): Add assert.
851	* name-lookup.c (lookup_arg_dependent): Check we found an overload
852	or an object.
853
854	PR c++/23287
855	* parser.c (cp_parser_id_expression): Add member_p
856	argument. Update all callers.
857	(cp_parser_unqualified_id): Likewise.  Lookup a destructor name in
858	the object's scope, if valid.
859	(cp_parser_global_scope_opt): Add object_scope_valid_p.  Update
860	callers.
861	(cp_parser_postfix_dot_deref_expression): Set object_scope.
862	* pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
863
8642006-08-30  Jason Merrill  <jason@redhat.com>
865
866	PR c++/26670
867	* class.c (check_field_decls): Don't unset TYPE_PACKED until all
868	the fields have been processed.
869
8702006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
871
872	PR C++/28349
873	* call.c (build_x_va_arg): Remove the reference type
874	from the type before creating the pointer type.
875
8762006-08-29  J"orn Rennecke  <joern.rennecke@st.com>
877
878	PR c++/28139
879	* except.c (expand_start_catch_block): Use correct types for bitwise
880	copy.
881
8822006-08-28  Jason Merrill  <jason@redhat.com>
883
884	PR c++/26670
885	* class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
886	fields can't be packed.
887
888	PR c++/26577
889	* cvt.c (convert_to_void): Don't automatically load from volatiles
890	of TREE_ADDRESSABLE type.
891
8922006-08-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
893
894	PR c++/28860
895	* cp-tree.h (maybe_process_partial_specialization): Return
896	tree instead of void.
897	* parser.c (cp_parser_class_head): Use return value of
898	maybe_process_partial_specialization.
899	* pt.c (maybe_process_partial_specialization): Return error_mark_node
900	for broken specializations, TYPE otherwise.  Check for template
901	template parameters.
902
9032006-08-27  Mark Mitchell  <mark@codesourcery.com>
904
905	PR c++/28058
906	* pt.c (register_specialization): Return error_mark_node for
907	specialization-after-instantiation.
908	* decl2.c (mark_used): Mark the main function used when one of its
909	clones is used.
910
9112006-08-27  Lee Millward  <lee.millward@codesourcery.com>
912
913	PR c++/26573
914	* class.c (check_field_decls): Don't issue error about
915	local classes containing static data members.
916
9172006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
918
919	PR c++/24009
920	* parser.c (struct cp_token): Add input_file_stack_index.
921	(eof_token): Update.
922	(cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
923	(cp_lexer_set_source_position_from_token): Restore input file
924	stack.
925
9262006-08-26  Lee Millward  <lee.millward@codesourcery.com>
927
928	PR c++/28736
929	PR c++/28737
930	PR c++/28738
931	* pt.c (process_template_parm): Store invalid template
932	parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
933	(push_inline_template_parms_recursive): Check for template
934	parameters having a TREE_VALUE of error_mark_node rather than
935	check the parameter itself.
936	(mangle_class_name_for_template): Likewise.
937	(comp_template_parms): When comparing the individual template
938	parameters, return 1 if either is error_mark_node.
939	(current_template_args): Robustify.
940	(redeclare_class_template): Likewise.
941
9422006-08-26  Mark Mitchell  <mark@codesourcery.com>
943
944	PR c++/28588
945	* class.c (resolve_address_of_overloaded_function): Add
946	access_path parameter.  Perform access checks.
947	(instantiate_type): Adjust call to
948	resolve_address_of_overloaded_function.  Remove unnecessary code.
949	* tree.c (is_overloaded_fn): Document.  Return 2 when there are
950	acutally multiple functions.
951	(really_overloaded_fn): Use is_overloaded_fn.
952	* mangle.c (write_expression): Handle BASELINKs.
953	* cp-tree.h (really_overloaded_fn): Return bool.
954	(baselink_for_fns): Declare.
955	* search.c (lookup_member): Check access for single static
956	functions here.
957	* pt.c (convert_nontype_argument_function): Handle BASELINKs.
958	(tsubst_copy_and_build): Generate BASELINKs for template-ids.
959	* semantics.c (finish_call_expr): Use baselink_for_fns.
960	(baselink_for_fns): New function.
961	(finish_id_expression): Use it.
962	* parser.c (cp_parser_template_argument): Don't strip BASELINKs.
963
964	PR c++/28595
965	* pt.c (tsubst): Issue errors about attempts to create VLAs at
966	template-instantiation time.
967
9682006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
969
970	PR c++/28853
971	* typeck2.c (cxx_incomplete_type_diagnostic): Handle template
972	template parameters.  Improve error message for template type
973	parameters.
974
975	PR c++/28852
976	* cp-tree.h (grok_op_properties): Return bool instead of void.
977	* decl.c (grokfndecl): Discard invalid operator declarations.
978	(copy_fn_p): Revert change for PR 27547.
979	(grok_op_properties): Return error status (true on success).
980	* pt.c (tsubst_decl): Discard invalid operator declarations.
981
9822006-08-25  Mark Mitchell  <mark@codesourcery.com>
983
984	PR c++/28056
985	* decl.c (grokdeclarator): Disallow declarations with qualified
986	names in local scopes.
987
9882006-08-25  Nathan Sidwell  <nathan@codesourcery.com>
989
990	PR c++/27787
991	* decl.c (make_typename_type): Only try and resolve it when
992	context is not dependent.  Refactor.
993	* decl2.c (check_classfn): Push to class scope before looking for
994	the function.
995
9962006-08-24  Danny Smith   <dannysmith@users.sourceforge.net>
997
998	PR driver/28528
999	* g++spec.c (lang_specific_driver): Always check if we need to
1000	swallow a space-separated  arg to '-x'.
1001	* lang-specs.h: Don't create ouput files for '-xc++-header'
1002	if -fsyntax-only.
1003
10042006-08-23  Jason Merrill  <jason@redhat.com>
1005
1006	PR c++/27714
1007	* pt.c (push_template_decl_real): A friend template with class
1008	scope isn't primary.
1009
10102006-08-23  Benjamin Smedberg <benjamin@smedbergs.us>
1011
1012	PR c++/28687
1013	* rtti.c (build_dynamic_cast, build_dynamic_cast_1):
1014	Move -fno-rtti check to be more specific.
1015
10162006-08-22  Jason Merrill  <jason@redhat.com>
1017
1018	PR c++/23372
1019	* call.c (build_over_call): Don't make a copy here if build_call
1020	will make one too.
1021
10222006-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
1023
1024	PR C++/28450
1025	* cp/init.c (build_zero_init): Handle VECTOR_TYPE and
1026	COMPLEX_TYPEs.
1027
10282006-08-22  Simon Martin  <simartin@users.sourceforge.net>
1029
1030	PR c++/28420
1031	* parser.c (cp_parser_postfix_expression): Make sure that the
1032	saved value for parser->type_definition_forbidden_message is
1033	restored before returning to avoid an invalid free().
1034
10352006-08-22  Jason Merrill  <jason@redhat.com>
1036
1037	PR c++/28659
1038	* typeck.c (merge_types): If either of the types have the right
1039	attributes, return that one.
1040
1041	* tree.c (cp_build_type_attribute_variant): Make sure we aren't
1042	doing this to class types.
1043	* typeck.c (original_type): Deal with type quals properly.
1044
10452006-08-21  Jason Merrill  <jason@redhat.com>
1046
1047	PR c++/27115
1048	* semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
1049	just leave the expression as it is.
1050	(finish_stmt_expr): If the statement-expression has class type,
1051	wrap it in a TARGET_EXPR.
1052	* cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
1053	CLEANUP_POINT_EXPR.
1054	* except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.
1055
10562006-08-21  Lee Millward  <lee.millward@codesourcery.com>
1057
1058	PR c++/26269
1059	* decl.c (duplicate_decls): Return early if either
1060	newdecl or olddecl is error_mark_node.
1061
1062	 PR c++/28505
1063	* decl.c (grokdeclarator): Return early after
1064	issuing diagnostic about an incomplete type.
1065
1066	PR c++/28741
1067	* tree.c (decl_anon_ns_mem_p): Robustify.
1068	* decl2.c (determine_visibility): Likewise.
1069
10702006-08-20  Mark Mitchell  <mark@codesourcery.com>
1071
1072	PR c++/28341
1073	* tree.c (cast_valid_in_integral_constant_expression_p): New
1074	function.
1075	* cp-tree.h (tsubst_copy_and_build): Adjust prototype.
1076	* pt.c (tsubst_expr): Add integral_constant_expression_p
1077	parameter.
1078	(fold_non_dependent_expr): Adjust callers of
1079	tsubst_{expr,copy_and_build}.
1080	(tsubst_friend_function): Likewise.
1081	(tsubst_template_arg): Likewise.
1082	(tsubst_default_argument): Likewise.
1083	(tsubst_decl): Likewise.
1084	(tsubst): Likewise.
1085	(tsubst_omp_clasuses): Likewise.
1086	(regenerate_decl_fromp_template): Likewise.
1087	(instantiate_decl): Likewise.
1088	(tsubst_initializer_list): Likewise.
1089	(tsubst_enum): Likewise.
1090	(tsubst_expr): Use RECUR throughout.
1091	(tsubst_copy_and_build): Change definition of RECUR.  Do not allow
1092	invalid casts in integral constant expressions.
1093	* parser.c (cp_parser_postfix_expression): Use
1094	cast_valid_in_integral_constant_expression_p.
1095	(cp_parser_cast_expression): Likewise.
1096	(cp_parser_functional_cast): Likewise.
1097
1098	PR c++/28346
1099	* pt.c (tsubst_qualified_id): Do not strip references from
1100	OFFSET_REFs.
1101
11022006-08-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1103
1104	PR c++/28606
1105	* parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
1106	Fix formatting.
1107	(cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
1108	for valid type-names.
1109	(cp_parser_unqualified_id): Fix error handling for destructors.
1110
1111	PR c++/28710
1112	* decl.c (xref_tag): Improve error message.  Return early on error.
1113
1114	PR c++/28711
1115	* pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify.
1116
11172006-08-17  Paolo Bonzini  <bonzini@gnu.org>
1118
1119	PR c++/28573
1120	* semantics.c (finish_offsetof): Add new argument to fold_offsetof.
1121
11222006-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
1123
1124	PR c++/28302
1125	* typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call
1126	perform_integral_promotions for non integral type.
1127
11282006-08-16  Jason Merrill  <jason@redhat.com>
1129
1130	PR c++/28385
1131	* pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
1132	if arg is a function.
1133
11342006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1135
1136	PR c++/28593
1137	* init.c (build_new): Return early on invalid placement.
1138
11392006-08-15  Lee Millward  <lee.millward@codesourcery.com>
1140
1141	PR c++/28594
1142	* pt.c (process_template_parm): Robustify.
1143
11442006-08-14  Steve Ellcey  <sje@cup.hp.com>
1145
1146	PR c++/28288
1147	PR c++/14556
1148	* operators.def: Remove <?, ?>, <?=, and >?= operators.
1149	* parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
1150	(cp_parser_warn_min_max): Remove.
1151
11522006-08-11  Jason Merrill  <jason@redhat.com>
1153
1154	PR c++/28559
1155	* parser.c (cp_parser_elaborated_type_specifier): Also ignore
1156	attributes applied to a TYPENAME_TYPE.
1157
11582006-08-09  Lee Millward  <lee.millward@codesourcery.com>
1159
1160	PR c++/28637
1161	* pt.c (coerce_template_parms): Copy across the
1162	invalid template arguments to the new template inner arguments.
1163	(retrieve_specialization): Robustify.
1164
1165	PR c++/28638
1166	* pt.c (coerce_template_template_parms): Robustify.
1167
1168	PR c++/28639
1169	* error.c (dump_template_parms): Robustify.
1170
1171	PR c++/28640
1172	* pt.c (redeclare_class_template): Robustify.
1173
1174	PR c++/28641
1175	* pt.c (type_unification_real): Robustify.
1176
11772006-08-03  Lee Millward  <lee.millward@codesourcery.com>
1178
1179	PR c++/28347
1180	* decl.c (start_decl): Return error_mark_node if a
1181	diagnostic was issed for an invalid typedef initialization.
1182
11832006-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1184
1185	PR c++/27508
1186	* parser.c (cp_parser_unqualified_id): Check for invalid scopes
1187	when parsing destructor names.
1188
1189	PR c++/28274
1190	* decl.c (duplicate_decls): Call check_default_args here.
1191	(start_preparsed_function): Do not call check_default_args.
1192	* name-lookup.c (pushdecl_maybe_friend): Only call
1193	check_default_args if duplicate_decls got bypassed.
1194
11952006-08-02  Richard Guenther  <rguenther@suse.de>
1196
1197	PR c++/28479
1198	Revert
1199	2006-07-05  Richard Guenther  <rguenther@suse.de>
1200	Andrew Pinski  <pinskia@gcc.gnu.org>
1201
1202	PR c++/27084
1203	* cp-objcp-common.c (cxx_types_compatible_p): Ignore
1204	top level qualifiers for pointer type comparisons.
1205
12062006-08-02  Mark Mitchell  <mark@codesourcery.com>
1207
1208	PR c++/28557
1209	* pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
1210
12112006-07-31  Mark Mitchell  <mark@codesourcery.com>
1212
1213	PR c++/28523
1214	* tree.c (stabilize_expr): Tweak documentation.  Add assertion.
1215	(stabilize_call): Tweak documentation.
1216	(stabilize_init): Only call stabilize_call for calls.
1217
12182006-08-01  Steve Ellcey  <sje@cup.hp.com>
1219
1220	PR c++/28432
1221	* decl2.c (check_classfn): Remove early return.
1222	* search.c (lookup_member): Return NULL with bad type.
1223
12242006-08-01  Steve Ellcey  <sje@cup.hp.com>
1225
1226	PR c++/28256
1227	* decl.c (check_initializer): Check for 1 initializer on scalar types.
1228
12292006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
1230
1231	PR debug/23336
1232	* pt.c (tsubst_copy_and_build): Mark used enum types.
1233	* semantics.c (finish_id_expression): Likewise.
1234
12352006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1236
1237	PR c++/6634
1238	* decl.c (grokdeclarator): Check whether "long" or "short" was
1239	specified for non-integral types.
1240
12412006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1242
1243	* Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1244
12452006-07-28  Lee Millward  <lee.millward@codesourcery.com>
1246
1247	PR c++/27668
1248	PR c++/27962
1249	* pt.c (process_template_parm) Store invalid template
1250	parameters as error_mark_node in the paramater list.
1251	(push_inline_template_parms_recursive): Handle invalid
1252	template parameters.
1253	(comp_template_parms): Likewise.
1254	(check_default_tmpl_arg): Likewise.
1255	(coerce_template_template_parms): Likewise.
1256	(mangle_class_name_for_template): Likewise.
1257	(tsubst_template_parms): Likewise.
1258	* error.c (dump_template_argument_list): Likewise.
1259
12602006-07-28  Kazu Hirata  <kazu@codesourcery.com>
1261
1262	* cp-tree.h: Fix a comment typo.
1263
12642006-07-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1265
1266	PR c++/27572
1267	* decl.c (grokdeclarator): Return error_mark_node after invalid
1268	typedef.
1269
12702006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
1271
1272	PR c++/28460
1273	* decl.c (grokvardecl): Use FROB_CONTEXT.
1274	* pt.c (register_specialization): Likewise.
1275
12762006-07-23  Mark Mitchell  <mark@codesourcery.com>
1277
1278	PR c++/28025
1279	* cp-tree.h (LOOKUP_HIDDEN): New macro.  Reformat comments.
1280	* name-lookup.c (unqualified_namespace_lookup): There is no way to
1281	have a hidden name in non-namespace scopes.
1282	* pt.c (tsubst_friend_class): Look for hidden names.
1283	* decl.c (lookup_and_check_tag): Fix typo in comment.
1284
1285	* semantics.c (finish_compound_literal): Fix typo in comment.
1286
12872006-07-21  Jason Merrill  <jason@redhat.com>
1288
1289	* decl2.c (determine_visibility): Don't propagate visibility from
1290	type to decl.
1291	(constrain_class_visibility): Don't warn in system headers.
1292	Don't warn about pointer fields.
1293
12942006-07-20  Mike Stump  <mrs@apple.com>
1295
1296	* decl2.c (determine_visibility_from_class): Don't use hidden
1297	visibility for explicit instantiations.
1298
12992006-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1300
1301	PR c++/28250
1302	* pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to
1303	valid decls.  Cleanup.
1304
1305	PR c++/28363
1306	* semantics.c (check_template_template_default_arg): Simplify
1307	error handling.
1308
13092006-07-20  Jason Merrill  <jason@redhat.com>
1310
1311	PR c++/28407
1312	* decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
1313	const variables with implicit internal linkage.
1314	* tree.c (decl_linkage): Only return lk_external if it's set.
1315
1316	PR c++/28409
1317	* decl2.c (constrain_visibility): Ignore the anonymous namespace
1318	for extern "C" decls.
1319	(VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
1320
1321	* decl2.c (constrain_visibility): Remove specified and reason
1322	parameters.  Don't touch decls that already have explicit visibility.
1323	(determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
1324	template.
1325	(determine_visibility_from_class): Reverse sense of
1326	DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
1327	(constrain_class_visibility): Only complain about member visibility
1328	if the member type is another class.  Don't change visibility of the
1329	current class.
1330
13312006-07-19  Mark Mitchell  <mark@codesourcery.com>
1332
1333	PR c++/28338
1334	* decl.c (layout_var_decl): Don't call push_local_name here.
1335	(initialize_artificial_var): Assert artificiality.
1336	(cp_finish_decl): Call push_local_name here.
1337
13382006-07-18  Mark Mitchell  <mark@codesourcery.com>
1339
1340	PR c++/28337
1341	* typeck.c (build_binary_op): Short-circuit pointer arithmetic in
1342	templates.
1343
13442006-07-18  Mark Mitchell  <mark@codesourcery.com>
1345
1346	PR c++/28048
1347	* semantics.c (check_accessibility_of_qualified_id): Robustify.
1348
1349	PR c++/28235
1350	* pt.c (tsubst_decl): Handling substitutions into a static data
1351	member from within the scope of the tempalte itself.
1352
13532006-07-18  Lee Millward  <lee.millward@gmail.com>
1354
1355	PR c++/28258
1356	* method.c (locate_copy): Check for non_reference
1357	returning error_mark_node.
1358
1359	PR c++/28260
1360	* decl.c (duplicate_decls): Return error_mark_node
1361	on ambiguous declaration.
1362
13632006-07-18  Steve Ellcey  <sje@cup.hp.com>
1364
1365	PR c++/27495
1366	* search.c (adjust_result_of_qualified_name_lookup): Change
1367	assert to part of if statement.
1368
13692006-07-17  Steve Ellcey  <sje@cup.hp.com>
1370
1371	PR c++/28291
1372	* decl.c (reshape_init_class): Return error_mark_node on error.
1373
13742006-07-17  Steve Ellcey  <sje@cup.hp.com>
1375
1376	PR c++/28304
1377	* decl2.c (check_classfn): Return NULL_TREE on error.
1378
13792006-07-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1380
1381	PR c++/28250
1382	* name-lookup.c (pushdecl_maybe_friend): Return early on
1383	error_mark_node.
1384	* except.c (expand_start_catch_block): Use error_mark_node instead
1385	of NULL_TREE for invalid decls.
1386	* parser.c (cp_parser_exception_declaration): Return error_mark_node
1387	on invalid catch parameter. Simplify.
1388
13892006-07-16  Jakub Jelinek  <jakub@redhat.com>
1390
1391	PR c++/28370
1392	* decl2.c (note_vague_linkage_var): Removed.
1393	(finish_static_data_member_decl): Add decl to pending_statics vector
1394	directly.  Do it even for non-public decls.
1395
13962006-07-15  Lee Millward  <lee.millward@gmail.com>
1397
1398	PR c++/28292
1399	* decl2.c (acceptable_java_type): Robustify. Use
1400	proper Boolean return type instead of return 1.
1401	(check_java_method): Don't issue error about
1402	type not being an acceptable Java parameter if
1403	it's error_mark_node.
1404
1405	PR c++/28269
1406	* parser.c (cp_parser_elaborated_type_specifier):
1407	Return early if an invalid type was detected.
1408
14092006-07-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1410
1411	PR c++/28249
1412	* parser.c (cp_parser_check_decl_spec): New function.
1413	(cp_parser_decl_specifier_seq): Factor out check for repeated
1414	decl-specifiers into cp_parser_check_decl_spec. Use it.
1415	(cp_parser_type_specifier_seq): Use it.
1416
1417	PR c++/28294
1418	* semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs
1419	only.
1420
1421	PR c++/28387
1422	* decl2.c (cplus_decl_attributes): Check for invalid decls.
1423
14242006-07-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1425
1426	PR c++/28343
1427	* decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
1428	* decl2.c (grokfield): Likewise.
1429
14302006-07-12  Geoffrey Keating  <geoffk@apple.com>
1431
1432	* decl2.c (determine_visibility): Don't change visibility of
1433	function locals because of -fvisibility-inlines-hidden.
1434
14352006-07-12  Jason Merrill  <jason@redhat.com>
1436
1437	PR c++/28217
1438	* semantics.c (note_decl_for_pch): Don't premangle templates.
1439
14402006-07-12  Martin Michlmayr  <tbm@cyrius.com>
1441
1442	* typeck.c (string_conv_p): Remove spurious quotation mark in
1443	warning.
1444
14452006-07-07  Lee Millward  <lee.millward@gmail.com>
1446	    Andrew Pinski  <pinskia@gmail.com>
1447
1448	PR c++/27820
1449	* decl.c (define_label): Return error_mark_node on error.
1450	* semantics.c (finish_label_stmt): Don't call
1451	add_stmt for invalid labels.
1452
14532006-07-06  Jason Merrill  <jason@redhat.com>
1454
1455	PR c++/28279
1456	* decl2.c (finish_static_data_member_decl): Don't assert
1457	TREE_PUBLIC.
1458
14592006-07-05  Jason Merrill  <jason@redhat.com>
1460
1461	PR c++/13983
1462	PR c++/17519
1463	* class.c (check_field_decls): Check TYPE_PACKED after
1464	stripping array types.
1465	(finish_struct_bits): Don't copy TYPE_SIZE here.
1466
1467	PR c++/18681
1468	* friend.c (is_friend): Fix DR 45 implementation.
1469
14702006-07-05  Richard Guenther  <rguenther@suse.de>
1471	Andrew Pinski  <pinskia@gcc.gnu.org>
1472
1473	PR c++/27084
1474	* cp-objcp-common.c (cxx_types_compatible_p): Ignore
1475	top level qualifiers for pointer type comparisons.
1476
14772006-07-01  Jason Merrill  <jason@redhat.com>
1478
1479	PR c++/28215
1480	* method.c (make_thunk): Unset DECL_USE_TEMPLATE and
1481	DECL_TEMPLATE_INFO.
1482
14832006-06-30  Jason Merrill  <jason@redhat.com>
1484
1485	PR c++/26577
1486	* call.c (build_new_method_call): Force evaluation of the
1487	instance pointer, not the object.
1488
14892006-06-30  Kazu Hirata  <kazu@codesourcery.com>
1490
1491	* decl2.c: Fix a comment typo.
1492
14932006-06-30  Jason Merrill  <jason@redhat.com>
1494
1495	PR c++/18698
1496	* decl2.c (grokfield): Only try to treat the decl as an access
1497	declaration if the scope is a class.
1498
14992006-06-29  Jason Merrill  <jason@redhat.com>
1500
1501	PR c++/26905
1502	PR c++/26612
1503	PR c++/27000
1504	PR c++/26984
1505	PR c++/19134
1506	* decl2.c (determine_visibility): Overhaul.
1507	(determine_visibility_from_class): Likewise.
1508	(min_vis_r, type_visibility, constrain_visibility): New fns.
1509	(constrain_visibility_for_template): Likewise.
1510	(constrain_class_visibility): Likewise.
1511	* decl.c (cp_finish_decl): Call determine_visibility for function
1512	decls, too.
1513	* name-lookup.c (pushtag): Call determine_visibility.
1514	* decl.c (duplicate_decls): Don't copy visibility from template to
1515	specialization.
1516	* pt.c (check_explicit_specialization): Likewise.
1517	(lookup_template_class, tsubst_decl): Call determine_visibility.
1518	* class.c (finish_struct_1): Call constrain_class_visibility.
1519
1520	PR c++/26905
1521	PR c++/21675
1522	PR c++/17470
1523	* parser.c (cp_parser_explicit_instantiation): Pass the attributes
1524	to grokdeclarator.
1525	(cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
1526	(cp_parser_enum_specifier): Likewise.
1527	(cp_parser_elaborated_type_specifier): Apply attributes if this
1528	declares only the class.
1529	(cp_parser_class_specifier): Apply leading attributes immediately.
1530	* semantics.c (begin_class_definition): Add attributes parameter,
1531	apply them to the type.
1532
1533	PR c++/21581
1534	PR c++/25915
1535	* tree.c (decl_anon_ns_mem_p): New function.
1536	* cp-tree.h: Declare it.
1537	* decl2.c (determine_visibility): Make anonymous namespace
1538	members static.
1539	(min_vis_r, constrain_visibility): Likewise.
1540	* rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
1541	pseudo-types.
1542	* decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
1543	global_namespace.
1544	* name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
1545	on anonymous namespaces.
1546
15472006-06-28  Jason Merrill  <jason@redhat.com>
1548
1549	PR c++/27424
1550	* pt.c (convert_template_argument): Pass all template arguments
1551	on to coerce_template_template_parms.
1552
15532006-06-25  Lee Millward  <lee.millward@gmail.com>
1554	    Mark Mitchell <mark@codesuorcery.com>
1555
1556	PR c++/28054
1557	* decl2.c (grokbitfied): Remove check for grokdeclarator
1558	returning NULL_TREE, instead check for error_mark_node
1559	to indicate failure.
1560	* decl.c (grokdeclarator): Adjust block comment.
1561
15622006-06-25  Lee Millward  <lee.millward@gmail.com>
1563
1564	PR c++/28051
1565	* mangle.c (mangle_conv_op_name_for_type): Check for
1566	invalid types.
1567	* name-lookup.c (push_class_level_binding): Robustify.
1568	(do_class_using_decl): Return early if name is error_mark_node.
1569
15702006-06-23  Steve Ellcey  <sje@cup.hp.com>
1571
1572	PR c++/28114
1573	* name-lookup.c (pushtag): Return if we have error_mark_node.
1574
15752006-06-23  Steve Ellcey  <sje@cup.hp.com>
1576
1577	PR c++/27019
1578	* typeck2.c (process_init_constructor_array): Set ce->value on errors.
1579
15802006-06-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1581
1582	PR c++/28112
1583	* parser.c (cp_parser_attribute_list): Skip attributes with invalid
1584	arguments.  Fix comment.
1585
1586	PR c++/11468
1587	* init.c (build_new_1): Handle error_mark_nodes returned by
1588	build_java_class_ref.
1589	(build_java_class_ref): Do not abort compilation, but return
1590	error_mark_node.  Improve error message.  Fix indentation.
1591
15922006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
1593
1594	PR target/27789
1595	* decl.c (start_decl): Check that dllimports are not initialized.
1596
15972006-06-22  Lee Millward  <lee.millward@gmail.com>
1598
1599	PR c++/27805
1600	* typeck2.c (build_m_component_ref): Use error_operand_p.
1601
1602	PR c++/27821
1603	* decl.c (grokdeclarator): Return error_mark_node on
1604	invalid uses of the scope resolution operator.
1605
16062006-06-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1607
1608	PR c++/28111
1609	* pt.c (determine_specialization): Check for invalid decls.
1610
1611	PR c++/28110
1612	* pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid
1613	parameters.
1614
1615	PR c++/28109
1616	* rtti.c (get_tinfo_decl_dynamic): Robustify.
1617
16182006-06-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1619
1620	PR c++/28052
1621	* init.c (push_base_cleanups): Skip members with invalid types.
1622	* typeck.c (build_class_member_access_expr): Robustify.
1623
16242006-06-19  Mark Mitchell  <mark@codesourcery.com>
1625
1626	* pt.c (instantiate_template): Fix typo in comment.
1627
16282006-06-19  Richard Guenther  <rguenther@suse.de>
1629
1630	* parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
1631	power-of-two token vector size.
1632
16332006-06-16  Mark Mitchell  <mark@codesourcery.com>
1634
1635	PR c++/28016
1636	* decl.c (cp_finsh_decl): Do not emit uninstantiated static data
1637	members.
1638
1639	PR c++/27979
1640	* call.c (standard_conversion): Strip cv-qualifiers from bitfield
1641	types.
1642
1643	PR c++/27884
1644	* decl.c (have_extern_spec): Remove.
1645	(start_decl): Do not check have_extern_spec.
1646	(start_function): Likewise.
1647	* cp-tree.h (have_extern_spec): Remove.
1648	* parser.c (cp_parser_linkage_specification): Don't set
1649	have_extern_spec.
1650	(cp_parser_init_declarator): Likewise.
1651	(cp_parser_parameter_declaration): Do not treat parameters as
1652	within the scope of an unbraced linkage specification.
1653
16542006-06-15  Mark Mitchell  <mark@codesourcery.com>
1655
1656	PR c++/27689
1657	* cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New
1658	macro.
1659	* pt.c (unify): Use it.
1660
1661	PR c++/27666
1662	* call.c (build_conditional_expr): Robustify.
1663
1664	PR c++/27640
1665	* pt.c (instantiate_template): Set processing_template_decl to
1666	zero while performing substitutions.
1667
16682006-06-14  Mark Mitchell  <mark@codesourcery.com>
1669
1670	PR c++/27665
1671	* parser.c (cp_parser_unqualified_id): Use constructor_name_p to
1672	identify destructors.
1673	(cp_parser_nested_name_specifier_opt): Remove invalid
1674	optimization.
1675	(cp_parser_template_id): Refine heuristic for determining whether
1676	we are entering a scope.
1677
1678	PR c++/27648
1679	* parser.c (cp_parser_declarator): Robustify.
1680
1681	PR c++/26559
1682	* pt.c (tsubst_expr): Use finish_omp_atomic.
1683	(value_dependent_expression_p): All CALL_EXPRs are dependent.
1684	* semantics.c (finish_omp_atomic): Rework to use standard
1685	paradigms for handling non-dependent expressions.
1686
16872006-06-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1688
1689	* typeck.c (build_modify_expr): Tidy diagnostic message.
1690
16912006-06-14  Mark Mitchell  <mark@codesourcery.com>
1692
1693	PR c++/28018
1694	* typeck.c (build_modify_expr): Disallow array assignment.
1695
16962006-06-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1697
1698	* cp-tree.def: Fix typo.
1699
17002006-06-13  Mark Mitchell  <mark@codesourcery.com>
1701
1702	PR c++/27227
1703	* decl.c (decls_match): Allow an extern "C" variable declarations
1704	from different namespaces to match.
1705	(duplicate_decls): Disallow redeclaring a variable with a
1706	different linkage specification.
1707
17082006-06-13  Jakub Jelinek  <jakub@redhat.com>
1709
1710	PR middle-end/27793
1711	* cp-tree.h (cxx_int_tree_map): New struct.
1712	(struct language_function): Add extern_decl_map field.
1713	* name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping
1714	to cp_function_chain->extern_decl_map hash table instead of
1715	copying over DECL_UID.
1716	* cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
1717	functions.
1718	(cp_genericize_r): Remap DECL_EXTERN local decls using
1719	cp_function_chain->extern_decl_map hash table.
1720	* decl.c (finish_function): Clear extern_decl_map.
1721
17222006-06-12  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1723
1724	PR c++/27601
1725	* semantics.c (finish_offsetof): Handle pseudo-destructors.
1726
1727	PR c++/27933
1728	* name-lookup.c (lookup_qualified_name): Always return error_mark_node
1729	if lookup fails.
1730
1731	PR c++/27951
1732	* decl2.c (finish_anon_union): Return early if build_anon_union_vars
1733	fails.
1734
17352006-06-12  Roger Sayle  <roger@eyesopen.com>
1736
1737	PR c++/21210
1738	* typeck2.c (build_functional_cast): Use cp_convert to construct
1739	non-aggregate initializers instead of the user-level build_c_cast.
1740
17412006-06-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1742
1743	PR c++/27601
1744	* cp-tree.h (finish_offsetof): Add prototype.
1745	* semantics.c (finish_offsetof): New function.
1746	* parser.c (cp_parser_builtin_offsetof): Call it instead of
1747	fold_offsetof.
1748	* pt.c (tsubst_copy_and_build): Likewise.
1749
17502006-06-06  Mark Mitchell  <mark@codesourcery.com>
1751
1752	PR c++/27177
1753	* call.c (standard_conversion): Require that the derived type be
1754	complete when performing a derived-to-base conversion.
1755
17562006-06-04  Mark Mitchell  <mark@codesourcery.com>
1757
1758	PR c++/27819
1759	* decl.c (cp_finish_decl): Process initializers for static data
1760	members with non-dependent initializers, even in templates.
1761
1762	PR c++/27722
1763	* decl.c (maybe_deduce_size_from_array_init): If the declaration
1764	is erroneous, give it an erroneous type.
1765	(layout_var_decl): If the type is erroneous, give up.
1766	(check_initializer): Likewise.
1767
1768	PR c++/27807
1769	* cp-tree.h (TYPE_OBJ_P): New macro.
1770	(TYPE_PTROB_P): Use it.
1771	(TYPE_REF_OBJ_P): Likewise.
1772	* semantics.c (finish_compound_literal): Do not permit compound
1773	literals of non-object types.
1774
1775	PR c++/27806
1776	* typeck.c (original_type): Robustify.
1777
17782006-06-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1779
1780	PR c++/27804
1781	* init.c (constant_value_1): Return decl instead of error_mark_node
1782	for invalid initializers.
1783
17842006-06-01  Andrew Pinski  <pinskia@physics.uc.edu>
1785
1786	PR c++/27592
1787	* rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
1788	on operand of the COND_EXPR for the null pointer check.
1789
17902006-06-01  Andrew Pinski  <pinskia@physics.uc.edu>
1791
1792	PR c++/26740
1793	* typeck.c (build_unary_op): Mark the function as being used.
1794
17952006-06-01  Alexandre Oliva  <aoliva@redhat.com>
1796
1797	PR c++/26660
1798	* parser.c (cp_parser_initial_pragma): Read one more token for
1799	caller after reading PCH file in.
1800
18012006-05-31  Mark Mitchell  <mark@codesourcery.com>
1802
1803	PR c++/27801
1804	* call.c (perform_implicit_conversion): Do not actually perform
1805	conversions in templates.
1806
1807	PR c++/26496
1808	* call.c (resolve_args): Check for invalid uses of bound
1809	non-static member functions.
1810	* init.c (build_offset_ref): Return error_mark_node for errors.
1811
1812	PR c++/27385
1813	* decl.c (reshape_init): Robustify.
1814	(reshape_init_array_1): Likewise.
1815
18162006-05-30  Mark Mitchell  <mark@codesourcery.com>
1817
1818	PR c++/27808
1819	* parser.c (cp_parser_decl_specifier_seq): Issue errors about
1820	"friend" specifiers that do not appear in class scopes.
1821
1822	PR c++/27803
1823	* class.c (check_bitfield_decl): Ensure that all bitfields have
1824	integral type.
1825
18262006-05-29  Kazu Hirata  <kazu@codesourcery.com>
1827
1828	* pt.c (convert_nontype_argument): Fix a typo in an error
1829	message.
1830
18312006-05-28  Kazu Hirata  <kazu@codesourcery.com>
1832
1833	* decl.c, decl2.c, parser.c: Fix comment typos.  Follow
1834	spelling conventions.
1835
18362006-05-24  Mark Mitchell  <mark@codesourcery.com>
1837
1838	PR c++/20103
1839	* decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
1840	error_mark_node to indicate an initialization is OK.
1841	(start_decl): Likewise.  Adjust call to start_decl_1.
1842	(start_decl_1): Add initialized parameter.  Simplify.
1843	* except.c (initialize_handler_parm): Adjust call to
1844	setart_decl_1.
1845	(expand_start_catch_block): Let cp_finish_decl initialize catch
1846	parameters.
1847	* cp-tree.h (start_decl_1): Adjust prototype.
1848	* pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
1849	(instantiate_decl): Let cp_finish_decl handle initialization.
1850	* semantics.c (finish_compound_literal): Create a temporary
1851	variable for the literal.
1852	* typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
1853	cases.
1854	* decl2.c (finish_static_data_member_decl): Don't set
1855	DECL_INITIAL.
1856	(grokfield): Do not try to initialize functions.
1857
18582006-05-23  Mark Mitchell  <mark@codesourcery.com>
1859
1860	PR c++/20173
1861	* pt.c (determine_specialization): Disallow partial
1862	specializations of templates.
1863
18642006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1865
1866	PR c++/27716
1867	* typeck.c (build_modify_expr): Test arguments for error_operand_p.
1868
1869	* decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
1870
18712006-05-21  Mark Mitchell  <mark@codesourcery.com>
1872
1873	PR c++/27210
1874	* cp-tree.h (cp_save_expr): New function.
1875	* init.c (build_new): Correct logic for zero-element array
1876	warning.  Use cp_save_expr.
1877	* tree.c (cp_save_expr): New function.
1878
18792006-05-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1880
1881	PR c++/27398
1882	* decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
1883	or void_type_node.
1884
18852006-05-19  Mike Stump  <mrs@apple.com>
1886
1887	* typeck.c (default_conversion): Remove static.
1888
18892006-05-19  Mark Mitchell  <mark@codesourcery.com>
1890
1891	PR c++/26433
1892	* cp-tree.h (begin_function_try_block): Change prototype.
1893	(finish_function_handler_sequence): Likewise.
1894	* parser.c (cp_parser_function_try_block): Adjust calls.
1895	* pt.c (tsubst_expr): Adjust calls.
1896	* semantics.c (begin_function_try_block): Create an artificial
1897	outer scope.
1898	(finish_function_handler_sequence): Close it.
1899
19002006-05-18  Mark Mitchell  <mark@codesourcery.com>
1901
1902	PR c++/27471
1903	PR c++/27506
1904	* typeck.c (decay_conversion): Convert bitfields to their declared
1905	types here.  Improve documentation.  Avoid use of cp_convert.
1906	(default_conversion): Make it static.  Perform integral promotions
1907	before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
1908	conversions.
1909	* init.c (build_init): Remove.
1910	(expand_default_init): Do not call rvalue.
1911	* call.c (null_ptr_cst_p): Robustify.
1912	(build_conditional_expr): Tidy.
1913	* except.c (build_throw): Do not perform lvalue-to-rvalue
1914	conversion on operand before initializing temporary.
1915	* tree.c (convert.h): Include it.
1916	(convert_bitfield_to_declared_type): Use convert_to_integer, not
1917	cp_convert.
1918	(rvalue): Don't convert bitfields to their declared type here.
1919	* cp-tree.h (build_init): Remove.
1920	(default_conversion): Likewise.
1921	* typeck2.c (build_m_component_ref): Do not perform
1922	lvalue-to-rvalue, function-to-pointer, or array-to-pointer
1923	conversions here.  Correct error message.
1924
19252006-05-17  Mark Mitchell  <mark@codesourcery.com>
1926
1927	PR c++/26122
1928	* decl2.c (check_member_template): Remove checks for virtual
1929	functions.
1930	* parser.c (cp_parser_function_specifier_opt): Complain about
1931	virtual templates.
1932	(cp_parser_pure_specifier): Likewise.
1933
1934	PR c++/26068
1935	* parser.c (cp_parser_set_storage_class): Check for
1936	invalid uses of storage classes on unbraced linkage
1937	specifications.
1938	(cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
1939	to cp_parser_set_storage_class.
1940
19412006-05-17  Jakub Jelinek  <jakub@redhat.com>
1942
1943	PR c++/27491
1944	* semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
1945	on CONSTRUCTORs.
1946
1947	PR middle-end/27415
1948	* parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
1949	on combined parallel workshare constructs.
1950	* pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
1951
19522006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1953
1954	PR driver/26885
1955	* Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
1956
19572006-05-15  Mark Mitchell  <mark@codesourcery.com>
1958
1959	PR c++/27339
1960	* cp-tree.h (perform_access_checks): New function.
1961	* semantics.c (perform_access_checks): New function.
1962	(perform_deferred_access_checks): Use it.
1963	* parser.c (cp_parser_simple_declaration): Adjust call to
1964	cp_parser_init_declarator.
1965	(cp_parser_type_parameter): Do not defer checks in default
1966	arguments.
1967	(cp_parser_explicit_specialization): Adjust call to
1968	cp_parser_single_declaration.
1969	(cp_parser_init_declarator): Perform template-parameter access
1970	checks.
1971	(cp_parser_parameter_declaration): Do not defer checks for
1972	template parameter default arguments.
1973	(cp_parser_template_declaration_after_export): Gather access
1974	checks for template parameters, and pass them to
1975	cp_parser_single_declaration.
1976	(cp_parser_template_parameter_access_checks): New function.
1977	(cp_parser_single_declaration): Add checks parameter.
1978
1979	PR c++/27505
1980	* call.c (convert_like_real): Convert bitfields to their declared
1981	types when forming an rvalue.
1982	* tree.c (convert_bitfield_to_declared_type): New function.
1983	(rvalue): Use it.
1984	* cp-tree.h (convert_bitfield_to_declare_type): Declare it.
1985
19862006-05-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1987
1988	PR c++/27582
1989	* pt.c (any_dependent_template_arguments_p): Return early on invalid
1990	argument list.
1991
1992	PR c++/27581
1993	* search.c (adjust_result_of_qualified_name_lookup): Skip on
1994	invalid context_class.
1995
1996	PR c++/27315
1997	* pt.c (do_decl_instantiation): Return early on invalid decl.
1998
1999	PR c++/27559
2000	* pt.c (push_template_decl_real): Return error_mark_node instead
2001	of broken decl.
2002
2003	PR c++/27496
2004	* pt.c (tsubst_friend_class): Return early on invalid friend
2005	declarations.
2006
20072006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2008
2009	* Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
2010	(cp/decl2.o): Likewise.
2011	(cp/typeck.o): Likewise.
2012	(cp/cvt.o): Likewise.
2013	(cp/parser.o): Likewise.
2014	(cp/call.o): Replace target.h with $(TARGET_H).
2015
20162006-05-14  Alexandre Oliva  <aoliva@redhat.com>
2017
2018	* pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
2019	COMPONENT_REF alone.
2020
20212006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2022
2023	PR c++/27547
2024	* decl.c (copy_fn_p): Return early on non-member functions.
2025
20262006-05-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2027
2028	PR c++/27447
2029	* decl2.c (build_memfn_type): Skip invalid functions and class types.
2030
20312006-05-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2032
2033	PR c++/27427
2034	* pt.c (convert_nontype_argument): Return early on invalid arguments.
2035
2036	* pt.c (process_template_parm): Remove superfluous temporary.
2037
2038	PR c++/27430
2039	* pt.c (process_template_parm): Handle erroneous non-type parameters.
2040
2041	PR c++/27423
2042	* typeck.c (convert_for_initialization): Skip erroneous types.
2043
2044	PR c++/27422
2045	* typeck.c (convert_arguments): Return early on args with
2046	invalid types.
2047
20482006-05-03  Aldy Hernandez  <aldyh@redhat.com>
2049
2050	PR/21391
2051	* typeck.c (build_static_cast_1): Save casted types in used types
2052	hash table.
2053	(build_reinterpret_cast_1): Same.
2054	* rtti.c (build_dynamic_cast_1): Same.
2055
20562006-05-04  Jakub Jelinek  <jakub@redhat.com>
2057
2058	PR c++/27359
2059	* parser.c (cp_parser_omp_for_loop): Only call
2060	cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
2061	called.
2062
20632006-05-02  Mark Mitchell  <mark@codesourcery.com>
2064
2065	PR c++/27102
2066	* decl.c (grokdeclarator): Robustify checks for defining members
2067	of incomplete types.
2068
2069	PR c++/27309
2070	* class.c (add_method): Call grok_special_member_properties.
2071	* decl.c (grokdeclarator): Don't call it here.
2072	(copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
2073	assignment operator.  Set TYPE_HAS_CONSTURCTOR if DECL is a
2074	constructor.
2075	(start_method): Don't call grok_special_member_properties.
2076	* method.c (implicitly_declare_fn): Likewise.
2077	* pt.c (instantiate_class_template): Likewise.
2078	* decl2.c (grokfield): Likewise.
2079
20802006-05-02  Jakub Jelinek  <jakub@redhat.com>
2081
2082	PR middle-end/27337
2083	* cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
2084	* cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
2085	* cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
2086
20872006-04-30  Mark Mitchell  <mark@codesourcery.com>
2088
2089	PR c++/27094
2090	* pt.c (tsubst_default_argument): Increment function_depth around
2091	call to tsubst_expr.
2092	* parser.c (cp_parser_parameter_declaration): Likewise.
2093	* decl2.c (mark_used): Tidy.
2094
20952006-04-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2096
2097	PR c++/27278
2098	* decl.c (grok_op_properties): Skip operators with invalid args
2099	when checking for class-type or enum-type args.
2100
21012006-04-29  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2102
2103	PR c++/27279
2104	* decl.c (copy_fn_p): Skip functions with invalid first arg.
2105
21062006-04-27  Mark Mitchell  <mark@codesourcery.com>
2107
2108	PR c++/27292
2109	* tree.c (rvalue): Convert bitfields to their declared types.
2110
2111	PR c++/27102
2112	* typeck2.c (cxx_incomplete_type_diagnostic): Handle
2113	TYPENAME_TYPE.
2114
21152006-04-24  Mark Mitchell  <mark@codesourcery.com>
2116
2117	PR c++/27292
2118	* typeck.c (decay_conversion): Don't adjust bitfield types.
2119	(perform_integral_promotions): Treat bitfield enums as enums, not
2120	as short integer types.
2121	* tree.c (rvalue): Convert bitfields to their correct types.
2122
21232006-04-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2124
2125	PR c++/19963
2126	* class.c (layout_class_type): Skip fields with invalid types.
2127
21282006-04-23  Mark Mitchell  <mark@codesourcery.com>
2129
2130	PR c++/26912
2131	* cp-tree.h (build_this_parm): Declare.
2132	(grok_method_quals): Remove.
2133	(build_memfn_type): Declare.
2134	(build_artificial_parm): Declare.
2135	(do_friend): Remove quals parameter.
2136	* decl.c (build_this_parm): New function.
2137	(grokfndecl): Use it.  Do not pass quals to grokclassfn.
2138	(grokdeclarator): Rename quals to memfn_quals.  Avoid allocating
2139	unnecessary TYPE_DECLs.  Correct qualification of member function
2140	types.  Tidy.
2141	* method.c (implicitly_declare_fn): Use build_this_parm.
2142	* friend.c (do_friend): Remove quals parameter.
2143	* decl2.c (grok_method_quals): Remove.
2144	(build_memfn_type): New function.
2145	(build_artificial_parm): Give it external linkage.
2146	(grokclassfn): Remove quals parameter.  Do not build "this"
2147	PARM_DECL here.
2148
2149	PR c++/26534
2150	* cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
2151	* typeck.c (is_bitfield_expr_with_lowered_type): New function.
2152	(decay_conversion): Convert bitfield expressions to the correct
2153	type.
2154	(build_modify_expr): Remove spurious conversions.
2155	* class.c (layout_class_type): Modify the type of bitfields to
2156	indicate a limited range.
2157	* call.c (standard_conversion): Adjust the type of bitfield
2158	expressions used in an rvalue context.
2159	(build_conditional_expr): Likewise.
2160
21612006-04-22  Kazu Hirata  <kazu@codesourcery.com>
2162
2163	* decl.c: Fix comment typos.
2164
21652006-04-21  Eric Christopher  <echristo@apple.com>
2166
2167	* decl.c: Fix typo in function name.
2168
21692006-04-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2170
2171	PR c++/26558
2172	* parser.c (cp_parser_class_name): Check for invalid typenames.
2173	Rearrange code.
2174
2175	PR c++/26739
2176	* pt.c (tsubst_friend_function): Return early if
2177	pushdecl_namespace_level fails.
2178
2179	PR c++/26036
2180	* typeck.c (convert_arguments): Return error_mark_node instead of
2181	error_mark_list.
2182	* cp-tree.h (error_mark_list): Remove declaration.
2183	* decl.c (error_mark_list): Remove definition.
2184	(cxx_init_decl_processing): Do not initialize error_mark_list.
2185
2186	PR c++/10385
2187	* rtti.c (build_dynamic_cast_1): Check for invalid conversions
2188	before calling convert_to_reference.
2189	* cvt.c (convert_to_reference): Assert that reftype is a
2190	REFERENCE_TYPE.
2191
21922006-04-19  Mark Mitchell  <mark@codesourcery.com>
2193
2194	PR c++/27102
2195	* class.c (currently_open_class): Tidy.
2196	* decl.c (grokdeclarator): If we encounter an erroneous
2197	declarator, assume that we have already issued an error message
2198	and return.  Return error_mark_node instead of NULL_TREE in more
2199	places.  Issue errors about function definitions that do not have
2200	a function declarator.  Check for complete types for all function
2201	definitions.
2202	* cp-tree.h (cp_error_declarator): Remove.
2203	(currently_open_class): Change return type.
2204	* parser.c (cp_parser_id_expression): Add optional_p parameter.
2205	(cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
2206	(cp_parser_id_expression): Likewise.
2207	(cp_parser_unqualified_id): If the name is optional, return
2208	NULL_TREE.
2209	(cp_parser_postfix_dot_deref_expression): Adjust calls.
2210	(cp_parser_type_parameter): Likewise.
2211	(cp_parser_unqualified_id): Likewise.
2212	(cp_parser_direct_declarator): Likewise.
2213	(cp_parser_declarator_id): Add optional_p parameter.
2214	(cp_parser_function_definition_from_specifiers_and_declarator):
2215	Assume that start_function indicates failure only if it has issued
2216	an error.
2217	(cp_parser_omp_var_list_no_open): Adjust calls.
2218
22192006-04-17  Janis Johnson  <janis187@us.ibm.com>
2220
2221	PR c++/26114, c++/26115
2222	* typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
2223	* class.c (check_field_decls): Ditto.
2224
22252006-04-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2226
2227	* init.c (build_offset_ref): Remove superfluous temporary.
2228
22292006-04-16  Mark Mitchell  <mark@codesourcery.com>
2230
2231	PR c++/26365
2232	* typeck.c (finish_class_member_access_expr): Robustify
2233
22342006-04-15  Kazu Hirata  <kazu@codesourcery.com>
2235
2236	* Make-lang.in (cp/pt.o): Depend on vecprim.h.
2237	* pt.c: Include vecprim.h.
2238	(inline_parm_levels): Change the type to VEC(int,heap) *.
2239	(inline_parm_levels_used): Remove.
2240	(maybe_begin_member_template_processing,
2241	maybe_end_member_template_processing): Use VEC instead of
2242	VARRAY.
2243
2244	* cp/call.c: Fix comment typos.
2245
22462006-04-12  Mark Mitchell  <mark@codesourcery.com>
2247
2248	* parser.c (cp_parser_init_declarator): Initialize local variables
2249	aggressively.
2250
22512006-04-12  Roger Sayle  <roger@eyesopen.com>
2252
2253	* parser.c (cp_parser_init_declarator): Initialise
2254	is_parenthesized_init to false to avoid compiler warning.
2255
22562006-04-11  Mark Mitchell  <mark@codesourcery.com>
2257
2258	* cp-tree.h (build_operator_new_call): Adjust prototype.
2259	(build_new_method_call): Likewise.
2260	(build_op_delete_call): Likewise.
2261	* init.c (build_raw_new_expr): New function.
2262	(build_new_1): Pass information as parameters, rather than
2263	bundling it into a NEW_EXPR.
2264	(build_new): Adjust accordingly.
2265	(build_vec_delete_1): Adjust for changes to build_op_delete_call.
2266	(build_delete): Likewise.
2267	* decl.c (finish_destructor_body): Likewise.
2268	* call.c (build_operator_new_call): Return the allocation function
2269	used.
2270	(build_op_delete_call): Take allocation function as parameter.
2271	(build_special_member_call): Adjust call to build_new_method_call.
2272	(build_new_method_call): Return function called.
2273	* pt.c (tsubst_copy_and_build): Adjust call to
2274	build_new_method_call.
2275	* semantics.c (finish_call_expr): Likewise.
2276	* parser.c (cp_parser_postfix_expression): Likewise.
2277	* typeck2.c (cxx_incomplete_type_diagnostic): Refer to
2278	"incomplete", not "undefined", types.
2279
2280	PR c++/26295
2281	* decl.c (grokdeclarator): Remove namespace-handling code for
2282	pointers-to-members.
2283	* parser.c (cp_parser_ptr_operator): Check for qualified names
2284	using namespaces.
2285
2286	PR c++/26122
2287	* parser.c (cp_parser_init_declarator): Adjust logic for deciding
2288	whether or not to look for a pure-specifier.
2289	(cp_parser_member_declaration): Likewise.
2290
22912006-04-08  Kazu Hirata  <kazu@codesourcery.com>
2292
2293	* decl2.c, pt.c, semantics.c: Fix comment typos.
2294
22952006-04-06  Roger Sayle  <roger@eyesopen.com>
2296
2297	* call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
2298
22992006-04-05  Jason Merrill  <jason@redhat.com>
2300
2301	* name-lookup.c (push_namespace_with_attribs): Temporarily disable
2302	default hidden visibility for anonymous namespace.
2303
23042006-03-29  Roger Sayle  <roger@eyesopen.com>
2305
2306	PR c++/22494
2307	* init.c (build_vec_delete_1): Convert BASE pointer's type to
2308	the base pointer type to avoid a type mismatch in the EQ_EXPR.
2309
23102006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
2311
2312	* search.c (maybe_suppress_debug_info): If
2313	flag_emit_class_debug_always then don't suppress.
2314
23152006-03-22  Jason Merrill  <jason@redhat.com>
2316
2317	* name-lookup.c (push_namespace_with_attribs): Only apply hidden
2318	visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
2319
23202006-03-21  Jakub Jelinek  <jakub@redhat.com>
2321
2322	PR c++/26691
2323	* cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
2324
23252006-03-21  Jason Merrill  <jason@redhat.com>
2326
2327	PR c++/21581
2328	* parser.c (cp_parser_declaration): Support attributes on
2329	anonymous namespaces.
2330	* name-lookup.c (push_namespace_with_attribs): Anonymous
2331	namespaces default to hidden visibility.
2332
23332006-03-20  Jason Merrill  <jason@redhat.com>
2334
2335	PR c++/21764, c++/19238
2336	* decl.c (cp_finish_decl): Call determine_visibility later.
2337	(start_preparsed_function): Likewise.
2338	* cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
2339	(TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
2340	* name-lookup.h (struct cp_binding_level): Add has_visibility
2341	bitfield.
2342	* name-lookup.c: Include c-pragma.h.
2343	(push_namespace_with_attribs): Split out from push_namespace.
2344	Push visibility if appropriate.  Set TREE_PUBLIC on namespaces.
2345	(leave_scope): Pop visibility if appropriate.
2346	* decl2.c (determine_visibility_from_class): Split out from...
2347	(determine_visibility): ...here.  Handle function scope and
2348	nested classes.
2349	(import_export_decl): Move visibility handling to
2350	determine_visibility_from_class.
2351	* parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
2352	attributes on namespace declarations.
2353
23542006-03-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2355
2356	PR c++/6634
2357	* decl.c (grokdeclarator): Do not accept long long double.
2358	Reorganize checks for invalid (combinations of) type modifiers.
2359	Quote modifiers in messages.
2360
23612006-03-09  Jason Merrill  <jason@redhat.com>
2362
2363	PR c++/16387, c++/16389
2364	* typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
2365	(cxx_sizeof_or_alignof_expr): Split out from here.
2366
23672006-03-09  Diego Novillo  <dnovillo@redhat.com>
2368
2369	Merge from gomp-20050608-branch
2370
2371	2006-02-02  Diego Novillo  <dnovillo@redhat.com>
2372
2373		* decl.c (pop_labels_1): Use appropriate pointer casting.
2374		(poplevel_named_label_1): Likewise.
2375		(named_label_entry_hash): Likewise.
2376		(named_label_entry_eq): Likewise.
2377		(check_goto): Likewise.
2378		(define_label): Likewise.
2379
2380	2006-01-26  Diego Novillo  <dnovillo@redhat.com>
2381
2382		* cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
2383		of TREE_BLOCK.
2384		* pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
2385		instead of TREE_CODE/TREE_OPERAND.
2386		* semantics.c: Likewise.
2387		* parser.c: Likewise.
2388
2389	2005-11-10  Diego Novillo  <dnovillo@redhat.com>
2390
2391		* parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
2392		target does not support TLS.
2393
2394	2005-11-09  Jakub Jelinek  <jakub@redhat.com>
2395
2396		* decl.c (redeclaration_error_message): Don't error about
2397		DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
2398		(olddecl).
2399
2400	2005-11-08  Jakub Jelinek  <jakub@redhat.com>
2401
2402		PR c++/24735
2403		* semantics.c (finish_omp_barrier, finish_omp_flush): New
2404		  functions.
2405		* parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
2406		(cp_parser_omp_flush): Call finish_omp_flush.
2407		* cp-tree.h (finish_omp_barrier, finish_omp_flush): New
2408		  prototypes.
2409
2410		PR c++/24734
2411		* pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
2412
2413	2005-11-03  Jakub Jelinek  <jakub@redhat.com>
2414
2415		* semantics.c (finish_omp_threadprivate): Error on class-scope
2416		variables.
2417
2418	2005-11-02  Jakub Jelinek  <jakub@redhat.com>
2419
2420		* parser.c (cp_parser_omp_all_clauses): If some clause
2421		type is not allowed, don't remove just one of the
2422		clauses, but all clauses added in that loop round.
2423
2424		* semantics.c (finish_omp_clauses): Fix function
2425		comment. Don't handle non-const or mutable specially,
2426		as const and not mutable is predetermined shared and
2427		that leads to double error. Don't ICE if copyin var is
2428		PARM_DECL.
2429
2430		PR c++/24613
2431		* parser.c (cp_parser_pragma): Diagnose
2432		PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
2433		construct.
2434
2435		* semantics.c (finish_omp_threadprivate): Error if V
2436		  is automatic variable or has incomplete type.
2437
2438	2005-11-01  Diego Novillo  <dnovillo@redhat.com>
2439
2440		* parser.c (cp_parser_omp_all_clauses): Use
2441		OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
2442
2443	2005-11-01  Diego Novillo  <dnovillo@redhat.com>
2444
2445		* parser.c (cp_parser_omp_all_clauses): When emitting an
2446		error message, remove the invalid clause from the list.
2447
2448	2005-10-31  Diego Novillo  <dnovillo@redhat.com>
2449
2450		* parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
2451		combined parallel+workshare directives.
2452
2453	2005-10-31  Richard Henderson  <rth@redhat.com>
2454
2455		* cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
2456		Use cxx_omp_clause_dtor.
2457		* cp-tree.h (CP_OMP_CLAUSE_INFO): New.
2458		(cxx_omp_clause_dtor): New.
2459		* cp-gimplify.c (cxx_omp_clause_apply_fn): New.
2460		(cxx_omp_clause_default_ctor): Use it.
2461		(cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
2462		Likewise.
2463		(cxx_omp_clause_dtor): New.
2464		* semantics.c (finish_omp_clauses): Rewrite cdtor
2465		checking to fill in CP_OMP_CLAUSE_INFO.  Don't
2466		specialcase LASTPRIVATE for removal.
2467		(cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
2468		cxx_omp_clause_assign_op): Move to cp-gimplify.c.
2469
2470	2005-10-28  Jakub Jelinek  <jakub@redhat.com>
2471
2472		* semantics.c (finish_omp_threadprivate): If
2473		  DECL_RTL_SET_P, call make_decl_rtl again so that
2474		  encode_section_info can update SYMBOL_REF's flags.
2475
2476	2005-10-26  Jakub Jelinek  <jakub@redhat.com>
2477
2478		* semantics.c (finish_omp_for): Don't segfault if COND
2479		or INCR is NULL.  If not calling c_finish_omp_for
2480		right away and one of COND and INCR is NULL, issue
2481		error and don't expand anything.
2482
2483		PR c++/24512
2484		* cp-tree.h (finish_omp_for): Add PRE_BODY argument.
2485		* semantics.c (finish_omp_for): Likewise.  Set
2486		OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
2487		into the current statement list if not processing
2488		template decl or pass it to c_finish_omp_for.
2489
2490		* parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
2491		into PRE_BODY statement list.  Pass it to finish_omp_for.
2492		* pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also
2493		OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
2494		finish_omp_for.  Put all the statements into sk_omp
2495		scope.
2496
2497	2005-10-25  Jakub Jelinek  <jakub@redhat.com>
2498
2499		PR c++/24516
2500		* parser.c (struct cp_parser): Rename in_iteration_statement
2501		field to in_statement.
2502		(IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
2503		(IN_OMP_BLOCK, IN_OMP_FOR): Change values.
2504		(cp_parser_new, cp_parser_begin_omp_structured_block,
2505		cp_parser_end_omp_structured_block,
2506		cp_parser_omp_for_loop): Adjust for
2507		in_iteration_statement renaming.
2508		(cp_parser_selection_statement): Save
2509		parser->in_iteration, or it temporarily with
2510		IN_SWITCH_STMT for the
2511		cp_parser_implicitly_scoped_statement call.
2512		(cp_parser_iteration_statement): Adjust for
2513		in_iteration_statement renaming.  Use
2514		IN_ITERATION_STMT rather than true.
2515		(cp_parser_jump_statement): Adjust for
2516		in_iteration_statement renaming and new values.  Don't
2517		error on break in a switch statement within OMP_FOR or
2518		OpenMP structured block.
2519
2520		PR c++/24513
2521		* parser.c (cp_parser_cache_group): Don't stop if next
2522		token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
2523		well.  If current token is CPP_PRAGMA, consume
2524		everything until CPP_PRAGMA_EOL inclusive.
2525
2526	2005-10-24  Jakub Jelinek  <jakub@redhat.com>
2527
2528		PR c++/24502
2529		* semantics.c (finish_omp_for): Handle MODOP_EXPR in
2530		addition to MODIFY_EXPR.
2531
2532	2005-10-23  Richard Henderson  <rth@redhat.com>
2533
2534		* cp-gimplify.c (struct cp_gimplify_ctx): Remove.
2535		(bc_label): New.
2536		(begin_bc_block, finish_bc_block): Use it.
2537		(push_context, pop_context): Remove.
2538		(cp_genericize): Don't use them.  Assert bc_label is null.
2539		* semantics.c (finish_omp_clauses): Create a fake data
2540		element of TYPE for probing ctors.
2541
2542	2005-10-23  Richard Henderson  <rth@redhat.com>
2543
2544		* cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
2545		(LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
2546		(LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
2547		(LANG_HOOKS_OMP_CLAUSE_DTOR): New.
2548		* semantics.c (finish_omp_clauses): Look through
2549		arrays when looking up special member calls.  Also
2550		remove FIRSTPRIVATE when LASTPRIVATE fails.
2551		(cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
2552		(cxx_omp_clause_assign_op): New.
2553		* cp-tree.h: Declare them.
2554
2555	2005-10-21  Richard Henderson  <rth@redhat.com>
2556
2557		* decl.c (check_previous_goto_1): Return false if error.
2558		(check_switch_goto): Likewise.
2559		(finish_case_label): Don't emit the case label on error.
2560		* parser.c (struct cp_parser): Revert
2561		in_switch_statement_p changes.
2562		(cp_parser_labeled_statement,
2563		cp_parser_selection_statement): Likewise.
2564		(cp_parser_begin_omp_structured_block): Don't save...
2565		(cp_parser_end_omp_structured_block): or restore
2566		in_switch_statement_p.
2567
2568	2005-10-21  Richard Henderson  <rth@redhat.com>
2569
2570		* semantics.c (finish_omp_threadprivate): Set
2571		decl_flags.u2sel when necessary.
2572
2573	2005-10-21  Richard Henderson  <rth@redhat.com>
2574
2575		* decl.c (poplevel_named_label_1): Restore creation of the
2576		bad_decls list.
2577		(decl_jump_unsafe): Check for error_mark_node types.
2578		(check_goto): Don't check cdtor_label.  Don't use identify_goto.
2579		* semantics.c (finish_return_stmt): Do check_omp_return before
2580		converting to cdtor_label goto.
2581
2582	2005-10-21  Richard Henderson  <rth@redhat.com>
2583
2584		PR c++/24451
2585		* decl.c (check_omp_return): Return false on error.
2586		* cp-tree.h (check_omp_return): Update decl.
2587		* semantics.c (finish_return_stmt): Avoid adding
2588		return on error.
2589
2590	2005-10-21  Richard Henderson  <rth@redhat.com>
2591
2592		* cp-tree.h (struct language_function): Remove
2593		x_named_label_uses.
2594		Change x_named_labels to a hashtable.
2595		(check_omp_return): Declare.
2596		* decl.c (struct named_label_use_entry): Rename from
2597		named_label_use_list.  Remove label_decl.
2598		(struct named_label_entry): Rename from
2599		named_label_list.  Remove old_value and next.  Change
2600		in_try_scope and in_catch_scope to bool. Add
2601		in_omp_scope.
2602		(pop_labels_1): New.
2603		(pop_labels): Use it.
2604		(pop_local_label, poplevel_named_label_1): New.
2605		(poplevel): Use them.
2606		(named_label_entry_hash, named_label_entry_eq): New.
2607		(make_label_decl): Create named_labels.  Move label
2608		creation bits from lookup_label.
2609		(declare_local_label): Tidy.
2610		(identify_goto): Split out from ...
2611		(check_previous_goto_1): Add exited_omp argument.
2612		Handle omp scopes.
2613
2614		(use_label): Merge into...
2615		(check_goto): ... here.  Handle omp scopes.
2616		(check_omp_return): New.
2617		(check_previous_gotos): Merge into...
2618		(define_label): ... here.
2619		(save_function_data): Remove x_named_label_uses reference.
2620		(finish_function): Likewise.
2621		* name-lookup.h (sk_omp): New.
2622		* name-lookup.c (begin_scope): Handle it.
2623		* parser.c (cp_parser_omp_for): Don't create extra
2624		compound stmt.
2625
2626		(cp_parser_omp_sections): Likewise.
2627		* semantics.c (finish_return_stmt): Call check_omp_return.
2628		(begin_omp_structured_block): Use sk_omp.
2629		(finish_omp_structured_block): Use do_poplevel.  Don't build a
2630		MUST_NOT_THROW expression here.
2631		(begin_omp_parallel, finish_omp_parallel): Don't create extra
2632		compound statements.
2633
2634	2005-10-21  Diego Novillo  <dnovillo@redhat.com>
2635
2636		PR 24455
2637		* cp/cp-tree.h (struct lang_decl_flags): Add field
2638		threadprivate_p.
2639		(CP_DECL_IS_THREADPRIVATE): Define.
2640		* cp/semantics.c (finish_omp_threadprivate): Set.  Do
2641		not error out if CP_DECL_IS_THREADPRIVATE is set
2642		already.
2643		* cp/decl.c (duplicate_decls): Merge
2644		CP_DECL_THREADPRIVATE_P.
2645
2646	2005-10-20  Richard Henderson  <rth@redhat.com>
2647
2648		* cp-gimplify.c (cp_gimplify_omp_for): New.
2649		(cp_gimplify_expr): Call it.
2650		* cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
2651		* parser.c (struct cp_parser): Rename
2652		in_iteration_statement_p to in_iteration_statement and
2653		change to unsigned char.  Similarly with
2654		in_switch_statement.  Update all users.
2655		(IN_OMP_BLOCK, IN_OMP_FOR): New.
2656		(cp_parser_labeled_statement): Diagnose case labels
2657		binding closer to an openmp block nested than the
2658		switch.
2659		(cp_parser_jump_statement): Diagnose break and
2660		continue labels binding closer to an openmp block than
2661		an iteration or switch.
2662		(cp_parser_omp_for_loop): Mark in_iteration_statement
2663		for an omp for.
2664		(cp_parser_begin_omp_structured_block): New.
2665		(cp_parser_end_omp_structured_block): New.
2666		(cp_parser_omp_structured_block): Use them.
2667		(cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
2668		(cp_parser_omp_parallel): Likewise.
2669
2670	2005-10-20  Richard Henderson  <rth@redhat.com>
2671
2672		* semantics.c (begin_omp_structured_block): New.
2673		(finish_omp_structured_block): New.
2674		(begin_omp_parallel, finish_omp_parallel): Use them.
2675		* parser.c (cp_parser_omp_structured_block): Likewise.
2676		(cp_parser_omp_for): Likewise.
2677		(cp_parser_omp_sections_scope): Likewise.
2678		* cp-tree.h: Declare them.
2679
2680	2005-10-20  Richard Henderson  <rth@redhat.com>
2681
2682		* parser.c (cp_parser_omp_master): Return the statement.
2683		(cp_parser_omp_ordered): Likewise.
2684		(cp_parser_omp_construct): Set the locus for them.
2685
2686	2005-10-19  Richard Henderson  <rth@redhat.com>
2687
2688		* semantics.c (finish_omp_atomic): Revert to
2689		uses_template_parms.
2690
2691	2005-10-19  Richard Henderson  <rth@redhat.com>
2692
2693		* semantics.c (finish_omp_clauses): Avoid
2694		DECL_THREAD_LOCAL_P on a PARM_DECL.  Remove some
2695		stub asserts guaranteed to fail.
2696
2697	2005-10-19  Richard Henderson  <rth@redhat.com>
2698
2699		* cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
2700		(finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
2701		* parser.c (cp_parser_omp_clause_copyin): Remove.
2702		(cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
2703		Call finish_omp_clauses.
2704		(cp_parser_omp_clause_if): Don't do error checking here.
2705		(cp_parser_omp_clause_num_threads): Likewise.
2706		(cp_parser_omp_clause_schedule): Likewise.
2707		(cp_parser_omp_atomic): Use finish_omp_atomic.
2708		(cp_parser_omp_for_loop): Don't discard DECL_EXPR.
2709		Don't decompose assignment statment here.  Use
2710		finish_omp_for.
2711
2712		* pt.c (tsubst_omp_clauses): New.
2713		(tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
2714		OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
2715		* semantics.c (finish_omp_clauses): New.
2716		(begin_omp_parallel, finish_omp_parallel): Know Less about the
2717		internals of the stmt_list stack.
2718		(finish_omp_for, finish_omp_atomic): New.
2719
2720	2005-10-18  Jakub Jelinek  <jakub@redhat.com>
2721
2722		* semantics.c (cxx_omp_predetermined_sharing): New function.
2723		* cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
2724		* cp-objcp-common.h
2725		(LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
2726
2727	2005-10-18  Richard Henderson  <rth@redhat.com>
2728
2729		* parser.c (cp_parser_omp_single): Use make_node and accessors
2730		instead of build.
2731
2732	2005-10-17  Richard Henderson  <rth@redhat.com>
2733
2734		* parser.c (cp_parser_omp_for_loop): Handle declarations.
2735
2736	2005-10-12  Richard Henderson  <rth@redhat.com>
2737
2738		* Make-lang.in (CXX_C_OBJS): Add c-omp.o.
2739		* cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
2740		(finish_omp_threadprivate): Declare.
2741		* parser.c (struct cp_lexer): Add in_pragma.
2742		(cp_lexer_consume_token): Don't consume a PRAGMA_EOL
2743		when in_pragma.
2744		(cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
2745		(cp_parser_skip_to_end_of_statement): Likewise.
2746		(cp_parser_skip_to_end_of_block_or_statement): Likewise.
2747		(cp_parser_skip_to_closing_brace): Likewise.
2748		(cp_parser_skip_to_pragma_eol): Reset in_pragma.
2749		(cp_parser_require_pragma_eol): New.
2750		(cp_parser_statement): Add in_compound argument;
2751		update all callers.
2752		Restart if a non-statement pragma seen outside a
2753		compound.
2754		(cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
2755		(cp_parser_declaration_seq_opt): Likewise.
2756		(cp_parser_member_specification_opt): Likewise.
2757		(cp_parser_function_definition_after_decl): Likewise.
2758		(cp_parser_skip_until_found): Likewise.
2759		(cp_parser_cache_group): Likewise.
2760		(enum pragma_omp_clause, cp_parser_omp_clause_name,
2761		check_no_duplicate_clause,
2762		cp_parser_omp_var_list_no_open,
2763		cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
2764		cp_parser_omp_clause_default, cp_parser_omp_clause_if,
2765		cp_parser_omp_clause_nowait,
2766		cp_parser_omp_clause_num_threads,
2767		cp_parser_omp_clause_ordered,
2768		cp_parser_omp_clause_reduction,
2769		cp_parser_omp_clause_schedule,
2770		cp_parser_omp_all_clauses,
2771		cp_parser_omp_structured_block, cp_parser_omp_atomic,
2772		cp_parser_omp_barrier, cp_parser_omp_critical,
2773		cp_parser_omp_flush, cp_parser_omp_for_loop,
2774		cp_parser_omp_for, cp_parser_omp_master,
2775		cp_parser_omp_ordered, cp_parser_omp_sections_scope,
2776		cp_parser_omp_sections, cp_parser_omp_parallel,
2777		cp_parser_omp_single, cp_parser_omp_threadprivate,
2778		cp_parser_omp_construct): New.
2779		(cp_parser_pragma): Handle OpenMP pragmas.
2780		* semantics.c (finish_omp_threadprivate): New.
2781		(begin_omp_parallel, finish_omp_parallel): New.
2782
2783	2005-10-11  Richard Henderson  <rth@redhat.com>
2784
2785		* parser.c (struct cp_token): Add pragma_kind.
2786		(eof_token): Initialize it.
2787		(cp_lexer_handle_pragma): Remove.
2788		(cp_parser_initial_pragma): New.
2789		(cp_lexer_new_main): Use it.
2790		(cp_lexer_get_preprocessor_token): Initialize pragma_kind.
2791		(cp_lexer_print_token): Don't handle CPP_PRAGMA.
2792		(cp_parser_skip_to_pragma_eol): New.
2793		(cp_parser_error): Use it.
2794		(pragma_lex): New.
2795
2796	2005-10-09  Richard Henderson  <rth@redhat.com>
2797
2798		* lex.c (parse_strconst_pragma): Update for c_lex name change.
2799		(handle_pragma_java_exceptions): Likewise.
2800		* parser.c (cp_lexer_new_main): Likewise.
2801
2802	2005-10-06  Richard Henderson  <rth@redhat.com>
2803
2804		* parser.c (cp_lexer_new_main): Comment out defer_pragmas.
2805		(cp_lexer_handle_pragma): Comment out
2806		cpp_handle_deferred_pragma.
2807
2808	2005-10-01  Richard Henderson  <rth@redhat.com>
2809
2810		* name-lookup.c (lookup_name): Remove prefer_type argument.
2811		(lookup_name_prefer_type): New function.
2812		* name-lookup.h (lookup_name_prefer_type): Declare it.
2813		* decl.c (lookup_and_check_tag): Use it.
2814		* pt.c (tsubst_friend_class): Likewise. Update for
2815		lookup_name change.
2816		(lookup_template_class, tsubst_copy_and_build): Likewise.
2817
28182006-03-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2819
2820	PR c++/15759
2821	* tree.c (bot_manip): Don't call mark_used.
2822
28232006-03-02  Mike Stump  <mrs@apple.com>
2824
2825	* decl2.c (import_export_decl): Remove redundant call to
2826	targetm.cxx.key_method_may_be_inline ().
2827
28282006-03-02  Richard Sandiford  <richard@codesourcery.com>
2829
2830	* decl.c (start_decl): Use have_global_bss_p when deciding
2831	whether to make the decl common.
2832
28332006-03-01  Mike Stump  <mrs@apple.com>
2834
2835	PR darwin/25908
2836	* decl2.c (import_export_decl): Fix ABI breakage on darwin.
2837
28382006-02-24  Geoffrey Keating  <geoffk@apple.com>
2839
2840	* except.c (expand_start_catch_block): Handle
2841	flag_use_cxa_get_exception_ptr.
2842
28432006-02-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2844
2845	PR c++/26291
2846	* decl.c (grok_op_properties): Check for ellipsis in arguments of
2847	operators.
2848
28492006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2850
2851	* Make-lang.in (C++): Remove.
2852	(.PHONY): Remove C++.
2853
28542006-02-18  Mark Mitchell  <mark@codesourcery.com>
2855
2856	PR c++/26266
2857	* cp-tree.h (cp_finish_decl): Adjust declaration.
2858	(grokbitfield): Likewise.
2859	(finish_static_data_member_decl): Likewise.
2860	* init.c (constant_value_1): Ensure processing_template_decl when
2861	folding non-dependent initializers for static data members of
2862	dependent types.  Return error_mark_node for erroneous
2863	initailizers.
2864	* class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.
2865	* decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.
2866	(cp_finish_decl): Add init_const_expr_p parameter.  Set
2867	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
2868	(finish_decl): Adjust call to cp_finish_decl.
2869	(compute_array_index_type): Robustify.
2870	(start_method): Use finish_decl, not cp_finish_decl.
2871	* rtti.c (emit_tinfo_decl): Likewise.
2872	* except.c (initialize_handler_parm): Adjust call to
2873	cp_finish_decl.
2874	(expand_start_catch_block): Likewise.
2875	* cvt.c (build_up_reference): Adjust call to cp_finish_decl.
2876	* pt.c (instantiate_class_template): Adjust call to
2877	finish_static_data_member_decl.
2878	(tsubst_expr): Use finish_decl, not cp_finish_decl.
2879	(instantiate_decl): Adjust call to cp_finish_decl.
2880	* name-lookup.c (pushdecl_top_level_1): Use finish_decl, not
2881	cp_finish_decl.
2882	* decl2.c (finish_static_data_member_decl): Add init_const_expr_p
2883	parameter.
2884	(grokfield): Likewise.
2885	* parser.c (cp_parser_condition): Check for constant initializers.
2886	(cp_parser_init_declarator): Adjust calls to grokfield and
2887	cp_finish_decl.  Don't set
2888	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
2889	(cp_parser_member_declaration): Likewise.
2890	(cp_parser_objc_class_ivars): Likewise.
2891
28922006-02-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2893
2894	* call.c (standard_conversion): Return NULL instead of 0.
2895	(build_user_type_conversion_1): Likewise.
2896	(tourney): Likewise.
2897	* decl.c (redeclaration_error_message): Likewise.
2898	* error.c (language_to_string): Likewise.
2899
29002006-02-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2901
2902	* cp-tree.h (warn_hidden): Remove prototype.
2903	* class.c (warn_hidden): Make static.
2904
2905	* cp-tree.h (build_type_conversion): Remove prototype.
2906	* cvt.c (build_type_conversion): Add prototype, make static.
2907
2908	* cp-tree.h (push_tinst_level): Remove prototype.
2909	(pop_tinst_level): Likewise.
2910	* pt.c (push_tinst_level): Add prototype, make static.
2911	(pop_tinst_level): Likewise.
2912
29132006-02-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2914
2915	* decl.c (grokdeclarator): Return NULL_TREE instead of 0.
2916	* typeck.c (unary_complex_lvalue): Likewise.
2917
29182006-02-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2919
2920	* lex.c (parse_strconst_pragma): Return error_mark_node instead of
2921	"(tree)-1" to indicate failure.  Simplify.
2922	(handle_pragma_interface): Test for error_mark_node instead of
2923	"(tree)-1".
2924	(handle_pragma_implementation): Likewise.
2925
29262006-02-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2927
2928	PR c++/26151
2929	* parser.c (cp_parser_decl_specifier_seq): Check for duplicate
2930	decl-specifiers.  Remove extra check for duplicate 'friend'.
2931	* decl.c (grokdeclarator): Remove check for duplicate
2932	decl-specifiers.  Set longlong together with long_p.
2933
29342006-02-12  Jason Merrill  <jason@redhat.com>
2935
2936	PR c++/24996
2937	* except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
2938	TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
2939
29402006-02-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2941
2942	* class.c (debug_class): Remove extern.
2943	(debug_thunks): Likewise.
2944
29452006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2946
2947	* typeck.c (string_conv_p): Don't test for flag_const_strings.
2948
29492006-02-08  Jason Merrill  <jason@redhat.com>
2950
2951	PR c++/25979
2952	* cp-gimplify.c (cp_gimplify_expr): Don't call
2953	cp_gimplify_init_expr for MODIFY_EXPRs.
2954	* typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.
2955
29562006-02-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2957
2958	PR c++/26071
2959	* decl.c (grokdeclarator): Set dname also for destructor.
2960
2961	PR c++/26070
2962	* decl.c (grokdeclarator): Clear storage_class together with staticp.
2963
29642006-02-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2965
2966	* cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.
2967	(cp_build_qualified_type): Propogate renaming.
2968	* call.c (convert_like_real): Likewise.
2969	* cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.
2970	* decl.c (make_typename_type, grokdeclarator): Likewise.
2971	* pt.c (tsubst_friend_function, instantiate_class_template,
2972	tsubst_default_argument, instantiate_decl,
2973	tsubst_initializer_list, tsubst_enum): Likewise.
2974	* semantics.c (finish_template_type): Likewise.
2975	* typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.
2976
29772006-02-07  Dirk Mueller  <dmueller@suse.com>
2978
2979	* typeck.c (build_binary_op): Annotate div-by-zero
2980	warnings to make -Wno-div-by-zero have an effect.
2981
29822006-02-07  Mark Mitchell  <mark@codesourcery.com>
2983
2984	PR c++/9737
2985	* pt.c (coerce_template_template_parms): Do not templates with
2986	excess default arguments to match template template parameters
2987	with fewer parameters.
2988	(coerce_template_parms): Add use_default_args parameter; use
2989	default arguments only when true.
2990	(lookup_template_class): Adjust call to coerce_template_parms.
2991	(fn_type_unification): Likewise.
2992	(unify): Likewise.
2993	(get_bindings): Likewise.
2994	(dependent_type_p): Add assertions.
2995
29962006-02-06  Roger Sayle  <roger@eyesopen.com>
2997
2998	* decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
2999	* rtti.c (typeinfo_in_lib_p): Likewise.
3000	* cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
3001	* name-lookup.c (arg_assoc_type): Likewise.
3002
30032006-02-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3004
3005	* cp-tree.h (tf_warn_or_error): New substituion flag.
3006	(cp_build_qualified_type): Use it.
3007	* call.c (convert_like_real): Likewise.
3008	* cvt.c (cp_convert_to_pointer): Likewise.
3009	(convert_to_reference): Likewise.
3010	* decl.c (make_typename_type): Likewise.
3011	(grokdeclarator): Likewise.
3012	* pt.c (tsubst_friend_function): Likewise.
3013	(tsubst_friend_class): Likewise.
3014	(instantiate_class_template): Likewise.
3015	(tsubst_default_argument): Likewise.
3016	(instantiate_decl): Likewise.
3017	(tsubst_initializer_list): Likewise.
3018	(tsubst_enum): Likewise.
3019	* semantics.c (finish_template_type): Likewise.
3020	* typeck.c (build_ptrmemfunc): Likewise.
3021	(convert_for_assignment): Likewise.
3022
30232006-02-03  Lee Millward  <lee.millward@gmail.com>
3024
3025	* typeck.c (string_conv_p): Pass appropiate
3026	OPT_Wxxxx values when calling warning().
3027	(build_array_ref, cxx_mark_addressable): Likewise.
3028	(check_return_expr): Likewise.
3029
3030	* init.c (perform_member_init): Likewise.
3031	(sort_mem_initializers, emit_mem_initializers): Likewise.
3032
3033	* class.c (check_field_decls): Likewise.
3034	(warn_about_ambiguous_bases): Likewise.
3035
3036	* decl.c (pop_label, poplevel): Likewise.
3037	(duplicate_decls, grok_op_properties): Likewise.
3038	(start_preparsed_function, finish_function): Likewise.
3039
3040	* name-lookup.c (pushdecl_maybe_friend): Likewise.
3041	(pushdecl_maybe_friend): Likewise.
3042
3043	* parser.c (cp_parser_warn_min_max): Likewise.
3044	(cp_parser_cast_expression): Likewise.
3045
3046	* method.c (lazily_declare_fn): Likewise.
3047	* cvt.c (convert_to_void): Likewise.
3048	* mangle.c (finish_mangling): Likewise.
3049	* cp-gimplify.c (gimplify_expr_stmt): Likewise.
3050
30512006-02-03  Mark Mitchell  <mark@codesourcery.com>
3052
3053	* name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
3054	not IDENTIFIER_OPNAME_P.
3055
30562006-01-31  Mark Mitchell  <mark@codesourcery.com>
3057
3058	PR c++/25342
3059	* cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise
3060	documentation.
3061	* pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,
3062	not TREE_VALUE.
3063	(instantiate_class_template): Simplify.
3064	(verify_class_unification): Remove.
3065	(unify): Document parameters.  Use INNERMOST_TEMPLATE_ARGS to
3066	permit multiple levels of template arguments.
3067	(more_specialized_class): Simplify.
3068	(get_class_bindings): Pass full arguments to unify.  Fold
3069	verify_class_unification into this function.  Return full
3070	arguments.
3071	(most_specialized_class): Adjust for changes to
3072	get_class_bindings.  Issue errors here for ambiguity.  Return the
3073	fully deduced arguments for the most specialized class, in
3074	addition to the partial specialization.
3075
30762006-01-31  Ben Elliston  <bje@au.ibm.com>
3077
3078	* mangle.c: Comment fix.
3079
30802006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3081
3082	* Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
3083	* repo.c (extract_string, afgets): Use cast when converting from
3084	void *.
3085
30862006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3087
3088	* call.c (alloc_conversion): Use cast when converting from void *.
3089	(alloc_conversions): Likewise.
3090	(add_candidate): Likewise.
3091	(print_z_candidates): Likewise.
3092	(add_warning): Likewise.
3093	* pt.c (retrieve_local_specialization): Likewise.
3094	(process_partial_specialization): Likewise.
3095	(mangle_class_name_for_template): Likewise.
3096	(tsubst_template_args): Likewise.
3097	* typeck2.c (pat_calc_hash): Likewise.
3098	(pat_compare): Likewise.
3099	(abstract_virtuals_error): Likewise.
3100	* class.c (method_name_cmp): Likewise.
3101	(resort_method_name_cmp): Likewise.
3102	(get_vfield_name): Likewise.
3103	* decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.
3104	* lex.c (init_reswords): Likewise.
3105	* rtti.c (create_pseudo_type_info): Likewise.
3106	* search.c (dfs_lookup_base): Likewise.
3107	(dfs_dcast_hint_pre): Likewise.
3108	(dfs_dcast_hint_post): Likewise.
3109	* tree.c (hash_tree_cons): Likewise.
3110	* repo.c (extract_string): Likewise.
3111	(afgets): Likewise.
3112	* cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.
3113	* g++spec.c (lang_specific_driver): Likewise.
3114
31152006-01-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3116
3117	* call.c (joust): Pass option code to warning.  Use inform for
3118	explanation.
3119	* class.c (check_bases): Likewise.
3120	(maybe_warn_about_overly_private_class): Likewise.
3121	(check_field_decls): Likewise.
3122	(layout_empty_base): Likewise.
3123	(layout_virtual_bases): Likewise.
3124	(layout_class_type): Likewise.
3125
31262006-01-28  Mark Mitchell  <mark@codesourcery.com>
3127
3128	PR c++/25999
3129	* decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
3130	here, not ...
3131	(start_function): ... here.
3132
31332006-01-28  Mark Mitchell  <mark@codesourcery.com>
3134
3135	PR c++/25855
3136	* class.c (resolve_address_of_overloaded_function): Adjust use of
3137	return value from most_specialized_instantiation.
3138	* pt.c (determine_specialization): Avoid multiple calls to
3139	get_bindings.
3140	(most_specialized_instantiation): When a tie occurs, set the
3141	current presumed champion to the next template.  Return the
3142	TREE_LIST node containing the template, rather than the template
3143	itself.
3144	(most_specialized): Remove.
3145	* name-lookup.c (push_overloaded_decl): When duplicate_decls
3146	indicates a failed redeclaration, report that to callers.
3147
31482006-01-26  Jason Merrill  <jason@redhat.com>
3149
3150	PR c++/16021
3151	* name-lookup.c (parse_using_directive): Require strong using to
3152	name a nested namespace.
3153
31542006-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3155
3156	Revert:
3157	* cp-tree.h (do_poplevel): Remove prototype.
3158	* semantics.c (do_poplevel): Add prototype.  Make static.
3159
3160	Revert:
3161	* cp-tree.h (default_conversion): Remove prototype.
3162	* typeck.c (default_conversion): Make static.
3163
31642006-01-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3165
3166	* cp-tree.h (get_primary_binfo): Remove prototype.
3167	(push_using_decl): Likewise.
3168	(current_template_args): Likewise.
3169	(more_specialized_class): Likewise.
3170	(mark_class_instantiated): Likewise.
3171	(default_conversion): Likewise.
3172	(pfn_from_ptrmemfunc): Likewise.
3173	* class.c (get_primary_binfo): Add prototype, make static, simplify.
3174	* name-lookup.c (push_using_decl): Make static.
3175	* pt.c (current_template_args): Likewise.
3176	(more_specialized_class): Likewise.
3177	(mark_class_instantiated): Likewise.
3178	* typeck.c (default_conversion): Make static.
3179	(pfn_from_ptrmemfunc): Add prototype, make static.
3180
31812006-01-24  Dirk Mueller  <dmueller@suse.de>
3182
3183	* typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
3184
31852006-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3186
3187	PR c++/25552
3188	* parser.c (cp_parser_unqualified_id): Check that destructor name
3189	and scope match.
3190	* call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
3191	Adjust comment.  Return early if possible.
3192	Use same_type_p to compare types.
3193	* typeck.c (lookup_destructor): Adjust call to check_dtor_name.
3194
31952006-01-24  Mark Mitchell  <mark@codesourcery.com>
3196
3197	* semantics.c: Remove outdated comment.
3198
31992006-01-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3200
3201	* cp-tree.h (do_poplevel): Remove prototype.
3202	* semantics.c (do_poplevel): Add prototype.  Make static.
3203
3204	* cp-tree.h (original_type): Remove prototype.
3205	* typeck.c (original_type): Make static.
3206
3207	* cp-tree.h (declare_global_var): Remove prototype.
3208	* decl.c (declare_global_var): Make static.
3209
3210	* cp-tree.h (implicitly_declare_fn): Remove prototype.
3211	* method.c (implicitly_declare_fn): Make static.
3212
3213	* cp-tree.h (fold_decl_constant_value): Remove prototype.
3214	* pt.c (fold_decl_constant_value): Make static.
3215
3216	* cp-tree.h (build_x_delete): Remove prototype.
3217	* init.c (build_vec_delete_1): Call build_op_delete_call directly
3218	and not via build_x_delete.
3219	(build_x_delete): Remove.
3220
3221	* cp-tree.h (get_vtt_name): Remove prototype.
3222	* class.c (get_vtt_name): Remove.
3223	(build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
3224
32252006-01-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3226
3227	* rtti.c (build_dynamic_cast): Fix comment.
3228
32292006-01-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3230
3231	PR c++/10891
3232	* rtti.c (build_dynamic_cast): Reject dynamic_cast use if
3233	-fno-rtti.
3234
32352006-01-21  Mark Mitchell  <mark@codesourcery.com>
3236
3237	PR c++/25895
3238	* class.c (build_base_path): Generate a NOP_EXPR instead of a
3239	COMPONENT_REF if the base and derived classes are at the same
3240	address.
3241
3242	PR c++/25856
3243	* decl.c (begin_destructor_body): Robustify.
3244
3245	PR c++/25858
3246	* parser.c (cp_parser_direct_declarator): Robustify.
3247
32482006-01-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3249
3250	* parser.c (cp_lexer_next_token_is_keyword): Simplify.
3251
3252	* parser.c (clear_decl_specs): Remove prototype.
3253
3254	* parser.c (cp_parser_expression_fn): Remove.
3255
3256	* call.c (add_builtin_candidates): Remove superfluous return.
3257	* name-lookup.c (do_toplevel_using_decl): Likewise.
3258	* parser.c (cp_parser_type_specifier_seq): Likewise.
3259	(cp_parser_save_default_args): Likewise.
3260
32612006-01-20  Dirk Mueller  <dmueller@suse.com>
3262
3263	PR c++/5520
3264	* semantics.c (finish_if_stmt): Call empty_body_warning.
3265	* parser.c (cp_parser_implicitly_scoped_statement):
3266	Mark empty statement with an empty stmt.
3267
32682006-01-19  Mark Mitchell  <mark@codesourcery.com>
3269
3270	PR c++/22136
3271	* name-lookup.c (do_class_using_decl): Don't try to look up base
3272	classes in templates with dependent base types.
3273
32742006-01-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3275
3276	PR c++/25854
3277	* pt.c (maybe_process_partial_specialization): Return early on
3278	error_mark_node.
3279
32802006-01-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3281
3282	PR c++/16829
3283	* decl.c (start_preparsed_function): Check default arguments
3284	unconditionally.
3285	* name-lookup.c (pushdecl_maybe_friend): Check default arguments
3286	of all functions and function templates.
3287	* parser.c (cp_parser_late_parsing_default_args): Check default
3288	arguments.
3289	* decl2.c (check_default_args): Set missing default arguments to
3290	error_mark_node.
3291
32922006-01-18  Mark Mitchell  <mark@codesourcery.com>
3293
3294	PR c++/25836
3295	* cp-tree.h (push_class_stack): New function.
3296	(pop_class_stack): Likewise.
3297	* class.c (class_stack_node): Add hidden field.
3298	(pushclass): Clear it.
3299	(push_class_stack): New function.
3300	(pop_class_stack): Likewise.
3301	(currently_open_class): Ignore hidden classes.
3302	(currently_open_derived_class): Likewise.
3303	* name-lookup.c (push_to_top_level): Call push_class_stack.
3304	(pop_from_top_level): Call pop_class_stack.
3305
33062006-01-18  Kazu Hirata  <kazu@codesourcery.com>
3307
3308	* tree.c (find_tree_t, find_tree): Remove.
3309	* cp-tree.h: Remove the prototype for find_tree.
3310
33112006-01-18  Jakub Jelinek  <jakub@redhat.com>
3312
3313	* search.c (lookup_conversions_r): Fix a pasto.
3314
33152006-01-17  Eric Christopher  <echristo@apple.com>
3316
3317	* call.c (convert_like_real): When issuing conversion
3318	warnings, depend on OPT_Wconversion.
3319	* cvt.c (build_expr_type_conversion): Ditto.
3320
33212006-01-17  Kazu Hirata  <kazu@codesourcery.com>
3322
3323	* name-lookup.c (lookup_namespace_name): Remove.
3324	* name-lookup.h: Remove the prototype for
3325	lookup_namespace_name.
3326
33272006-01-17  Jakub Jelinek  <jakub@redhat.com>
3328
3329	PR c/25682
3330	* decl.c (compute_array_index_type): After issuing not an integral
3331	constant-expression error, set size to 1 to avoid ICEs later on.
3332
33332006-01-16  Ian Lance Taylor  <ian@airs.com>
3334
3335	* parser.c: Include "cgraph.h".
3336	(cp_parser_asm_definition): Call cgraph_add_asm_node rather than
3337	assemble_asm.
3338
33392006-01-16  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
3340
3341	* g++spec.c (lang_specific_spec_functions): Remove.
3342
33432006-01-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3344
3345	* decl.c (check_initializer): Fix thinko.
3346
33472006-01-14  Mark Mitchell  <mark@codesourcery.com>
3348
3349	PR c++/25663
3350	* parser.c (cp_parser_direct_declarator): Use cp_parser_error
3351	instead of error.
3352
33532006-01-13  Jason Merrill  <jason@redhat.com>
3354
3355	* pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.
3356
3357	* name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.
3358	* pt.c (check_explicit_specialization): Likewise.
3359
33602006-01-12  Jason Merrill  <jason@redhat.com>
3361
3362	PR libstdc++/24660
3363	* pt.c (check_explicit_specialization): Handle namespace
3364	association.
3365	* name-lookup.c (set_decl_namespace): Likewise.
3366
33672006-01-12  Nathan Sidwell  <nathan@codesourcery.com>
3368
3369	PR c++/24824
3370	* class.c (handle_using_decl): Pass correct scope to
3371	cp_emit_debug_info_for_using.
3372
33732006-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3374
3375	PR c++/25386
3376	* tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
3377	packedness.
3378
33792006-01-06  Gabriel Dos Reis  <gdr@integrablesolutions.net>
3380
3381	* parser.c (cp_parser_primary_expression): Document the grammar
3382	for the built-in offsetof, a GNU extension.
3383
33842006-01-04  Zdenek Dvorak <dvorakz@suse.cz>
3385
3386	PR c++/25632
3387	* init.c (constant_value_1): Unshare use of DECL_INITIAL.  Fix a typo
3388	in condition.
3389
33902006-01-04  Chris Lattner  <sabre@gnu.org>
3391
3392	* typeck2.c: update copyright to 2006
3393	(split_nonconstant_init_1):  Set TREE_CONSTANT to true.
3394
33952006-01-04  Mark Mitchell  <mark@codesourcery.com>
3396
3397	PR c++/24782
3398	* parser.c (cp_parser_nested_name_specifier_opt): Preserve access
3399	checks, even when parsing tentatively.
3400
34012006-01-04  Richard Henderson  <rth@redhat.com>
3402
3403	Merge from gomp branch.
3404	* lex.c (handle_pragma_java_exceptions): Fix whitespace.
3405	* parser.c (struct cp_token): Add pragma_kind.
3406	(eof_token): Update to match.
3407	(struct cp_lexer): Add in_pragma; rearrange next for better packing.
3408	(cp_parser_initial_pragma): New.
3409	(cp_lexer_new_main): Use it.  Don't bother clearing
3410	c_lex_return_raw_strings.
3411	(cp_lexer_get_preprocessor_token): Always initialize keyword
3412	and pragma_kind fields.  Handle CPP_PRAGMA.
3413	(cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
3414	in_pragma is set.
3415	(cp_lexer_handle_pragma): Remove.  Update callers to cp_parser_pragma.
3416	(cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
3417	(cp_parser_skip_to_pragma_eol): New.
3418	(cp_parser_error): Use it.
3419	(cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
3420	rearrange with switch statement.
3421	(cp_parser_skip_to_end_of_statement): Likewise.
3422	(cp_parser_skip_to_end_of_block_or_statement): Likewise.
3423	(cp_parser_skip_to_closing_brace): Likewise.
3424	(cp_parser_skip_until_found): Likewise.
3425	(cp_parser_statement): Add in_compound argument; update callers.
3426	Use it to decide how to handle pragma parsing.
3427	(cp_parser_labeled_statement): Add in_compound argument; pass
3428	it on to cp_parser_statement.
3429	(cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
3430	(cp_parser_declaration_seq_opt): Likewise.
3431	(cp_parser_parameter_declaration): Likewise.
3432	(cp_parser_member_specification_opt): Likewise.
3433	(cp_parser_function_definition_after_decl): Likewise.
3434	(cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
3435	(cp_parser_pragma): New.
3436	(pragma_lex): New.
3437
34382006-01-04  Dirk Mueller <dmueller@suse.com>
3439
3440	* decl.c (finish_constructor_body): create simple
3441	compound stmt instead of a if(1) { } construct.
3442
34432006-01-03  Mark Mitchell  <mark@codesourcery.com>
3444
3445	PR c++/25492
3446	* name-lookup.c (push_class_level_binding): When a derived class
3447	provides a type binding, eliminate any type binding from a base
3448	class.
3449
3450	PR c++/25625
3451	* repo.c (repo_emit_p): Always instantiate static data members
3452	initialized by constant expressions, so that there values are
3453	available.
3454
34552006-01-02  Mark Mitchell  <mark@codesourcery.com>
3456
3457	PR c++/25635
3458	* class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
3459	conversion operator.
3460	* decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
3461
3462	PR c++/25638
3463	* class.c (add_method): Never associate more than one destructor
3464	with a single class.
3465
3466	PR c++/25637
3467	* cp-tree.h (do_friend): Adjust prototype.
3468	* decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
3469	(grokdeclarator): Likewise.  Refine check for invalid
3470	declarations/definitions of member functions outside of their own
3471	class.
3472	* friend.c (do_friend): Make funcdef_flag a bool, not an int.
3473
3474	PR c++/25633
3475	* parser.c (cp_parser_mem_initializer_list): Check result of
3476	cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
3477	(cp_parser_mem_initializer): Return error_mark_node for failure.
3478
3479	PR c++/25634
3480	* parser.c (cp_parser_template_parameter_list): Call
3481	begin_template_parm_list and end_template_parm_list here.
3482	(cp_parser_type_parameter): Not here.
3483	(cp_parser_template_declaration_after_export): Or here.
3484	(cp_parser_elaborated_type_specifier): Call
3485	cp_parser_check_template_parameters.
3486
3487	* tree.c (build_target_expr_with_type): Use force_target_expr.
3488
3489	* decl2.c (mark_used): Fix typo in comment.
3490
34912006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3492
3493	* parser.c (cp_parser_using_declaration): Skip name-lookup on
3494	invalid scope.
3495
3496
3497
3498Copyright (C) 2006 Free Software Foundation, Inc.
3499
3500Copying and distribution of this file, with or without modification,
3501are permitted in any medium without royalty provided the copyright
3502notice and this notice are preserved.
3503