12008-12-31  Jakub Jelinek  <jakub@redhat.com>
2
3	PR c++/38647
4	* parser.c (cp_parser_primary_expression) <case RID_FUNCTION_NAME>:
5	Return error_mark_node if cp_parser_non_integral_constant_expression
6	returns true.
7
8	PR c++/38640
9	* semantics.c (finish_decltype_type): Handle TEMPLATE_PARM_INDEX.
10
112008-12-29  Jakub Jelinek  <jakub@redhat.com>
12
13	PR c++/38635
14	* parser.c (cp_parser_condition): Use cp_parser_require
15	instead of cp_lexer_consume_token to consume =.
16
17	PR c++/38637
18	* decl.c (start_enum): If enumtype is error_mark_node, exit early.
19
202008-12-28  Jakub Jelinek  <jakub@redhat.com>
21
22	PR c++/38650
23	* semantics.c (finish_omp_for): Don't add CLEANUP_POINT_EXPR
24	around volatile iteration var in condition and/or increment
25	expression.
26
272008-12-27  Jakub Jelinek  <jakub@redhat.com>
28
29	PR c++/38639
30	* pt.c (tsubst_omp_for_iterator): RECUR on whole init_expr instead of
31	just its type.
32
332008-12-21  Jason Merrill  <jason@redhat.com>
34
35	PR c++/38597
36	* name-lookup.c (arg_assoc_type): Handle DECLTYPE_TYPE.
37
382008-12-20  Jakub Jelinek  <jakub@redhat.com>
39	    Manuel L��pez-Ib����ez  <manu@gcc.gnu.org>
40
41	PR c++/36921
42	* c-common.c (warn_about_parentheses): Remove ARG_UNUSED from
43	arg_left.  Don't warn about X<=Y<=Z if comparison's type isn't
44	integral.
45
462008-12-19  Jakub Jelinek  <jakub@redhat.com>
47
48	PR c++/38577
49	* call.c (build_new_method_call): Handle call being COMPOUND_EXPR
50	or NOP_EXPR.
51
522008-12-18  Jakub Jelinek  <jakub@redhat.com>
53
54	PR c++/38427
55	* init.c (perform_member_init): For value-initialized
56	references call permerror instead of warning and don't emit any
57	INIT_EXPR.
58
592008-12-18  Jason Merrill  <jason@redhat.com>
60
61	PR c++/38485
62	* parser.c (cp_parser_token_starts_cast_expression): An EOF
63	can't start a cast-expression.
64
652008-12-17  Jason Merrill  <jason@redhat.com>
66
67	* semantics.c (describable_type): New function.
68	(finish_decltype_type): Use it for dependent exprs.
69	* cp-tree.h: Declare it.
70	* mangle.c (write_type) [DECLTYPE_TYPE]: Set skip_evaluation.
71	(write_expression): If skip_evaluation, use type stubs.
72	* tree.c (cp_tree_equal): Handle PARM_DECLs from different
73	declarations of a function.
74	* init.c (build_new): Do auto deduction if type is describable.
75	* decl.c (cp_finish_decl): Likewise.
76	* parser.c (cp_parser_omp_for_loop): Likewise.
77
782008-12-10  Jason Merrill  <jason@redhat.com>
79
80	PR c++/35319
81	* mangle.c (write_builtin_type): Add mangling for decimal floating 
82	point and fixed point types.
83	(write_type): Pass FIXED_POINT_TYPE along.
84
852008-12-09  Mark Mitchell  <mark@codesourcery.com>
86
87	PR c++/37971
88	* class.c (resolve_address_of_overloaded_function): Check
89	accessibility of member functions unless FLAGS indicates
90	otherwise.
91	* call.c (standard_conversion): Adjust flags passed to
92	instantiate_type.
93	(convert_default_arg): Do not perform access checks.
94	* cp-tree.h (tsubst_flags_t): Add tf_no_access_control.
95
962008-12-08  Steve Ellcey  <sje@cup.hp.com>
97
98	* decl2.c (mark_used): Remove assemble_external call.
99
1002008-12-08  Dodji Seketeli  <dodji@redhat.com>
101
102	PR debug/38390
103	* name-lookup.c (kept_level_p): Don't forget the case of levels
104	  having using directives.
105
1062008-12-08  Richard Henderson  <rth@redhat.com>
107
108	PR 38240
109	* class.c (finish_struct_bits): Use SET_TYPE_MODE.
110	* decl.c (record_unknown_type): Likewise.
111	(start_enum, finish_enum): Likewise.
112
1132008-12-05  Jakub Jelinek  <jakub@redhat.com>
114
115	PR c++/35336
116	* error.c (dump_expr): Handle BIT_FIELD_REF.
117
1182008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
119
120	PR bootstrap/38262
121	* Make-lang.in (cc1plus-dummy, cc1plus): Add BACKENDLIBS,
122	remove GMPLIBS.
123
1242008-12-04  Jason Merrill  <jason@redhat.com>
125
126	PR c++/37906
127	* decl.c (grok_special_member_properties): Set TYPE_HAS_COMPLEX_DFLT
128	here.
129	* class.c (check_bases_and_members): Rather than assuming any
130	user-declared default constructor is complex here.
131
1322008-12-04  Richard Guenther  <rguenther@suse.de>
133
134	PR c++/38334
135	* typeck.c (get_member_function_from_ptrfunc): Mark the vtbl
136	pointer access with TREE_NO_WARNING.
137
1382008-12-03  Jason Merrill  <jason@redhat.com>
139
140	PR c++/38232
141	* init.c (build_value_init): Do initial zero-initialization
142	of a class with an implicitly-defined constructor using
143	build_zero_init rather than in build_value_init.
144	(build_value_init_1): Fold into build_value_init.
145
146	PR c++/38256
147	* parser.c (cp_parser_conversion_type_id): Diagnose
148	'operator auto'	here.
149	* decl.c (grokdeclarator): Not here.
150
151	PR c++/38380
152	* decl.c (grokdeclarator): Only set DECL_NONCONVERTING_P
153	on explicit constructors.
154	* pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: Propagate
155	CONSTRUCTOR_IS_DIRECT_INIT.
156
1572008-12-02  Jason Merrill  <jason@redhat.com>
158
159	PR c++/35782, c++/37860
160	* call.c (build_user_type_conversion_1): Remember
161	list-initialization.
162	(convert_like_real): Likewise.
163	(build_over_call): Don't require the copy constructor
164	for copy-list-initialization.
165	* cp-tree.h (TARGET_EXPR_LIST_INIT_P): New macro.
166
167	PR c++/37234
168	* decl.c (cp_finish_decl): Handle =default and =delete for
169	templates, too.
170
1712008-12-01  Jakub Jelinek  <jakub@redhat.com>
172
173	PR c++/38257
174	* parser.c (cp_parser_omp_for_loop): Handle auto.
175	* pt.c (tsubst_omp_for_iterator): Likewise.
176
1772008-11-28  Jason Merrill  <jason@redhat.com>
178
179	PR c++/38233
180	* init.c (perform_member_init): Fix value-initialization.
181	(build_value_init_1): Add assert to catch cases that will break
182	in the gimplifier.
183	(build_default_init): Remove.
184	* cp-tree.h: Remove its prototype.
185	* pt.c (tsubst_expr) [DECL_EXPR]: Use build_value_init for
186	value-initialization.
187
188	PR c++/38278
189	* parser.c (cp_parser_class_name): Only call 
190	maybe_note_name_used_in_class if we actually found a class name.
191
1922008-11-25  Jason Merrill  <jason@redhat.com>
193
194	PR c++/28743
195	* decl2.c (check_classfn): Error rather than abort on parameter
196	list mismatch.
197
1982008-11-20  Jason Merrill  <jason@redhat.com>
199
200	PR c++/28513
201	* parser.c (cp_parser_class_name): Call maybe_note_name_used_in_class.
202
203	PR c++/37540
204	* call.c (build_over_call): Take the address of the function even
205	in a template.
206	(build_new_method_call): Remember the type of the called function
207	in a template.
208
2092008-11-19  Dodji Seketeli  <dodji@redhat.com>
210
211	PR c++/37142
212	* pt.c (coerce_template_template_parm): Use the more robust
213	uses_template_parms instead of dependent_type_p.
214
2152008-11-19  Dodji Seketeli  <dodji@redhat.com>
216
217	PR c++/35405
218	* pt.c (lookup_template_class): Check pointers before dereferencing
219	them.
220	* error.c (dump_template_decl): Likewise.
221
2222008-11-19  Jason Merrill  <jason@redhat.com>
223
224	PR c++/36410
225	* decl2.c (grokfield): Pass ATTR_FLAG_TYPE_IN_PLACE for a typedef
226	that names a class for linkage purposes.
227
228	PR c++/37563
229	* parser.c (cp_parser_pseudo_destructor_name): A pseudo-destructor
230	name is not a declaration.
231
232	PR c++/37256
233	* pt.c (instantiate_decl): Don't require a definition of
234	a template that is explicitly instantiated 'extern'.
235
2362008-11-18  Jason Merrill  <jason@redhat.com>
237	    Jakub Jelinek  <jakub@redhat.com>
238	
239	PR c++/37962
240	* parser.c (cp_parser_type_id): Complain about auto.
241	* decl.c (grokdeclarator): Complain about parameters and
242	conversion functions declared with auto.
243
244	* call.c (standard_conversion): Use CLASS_TYPE_P instead of
245	MAYBE_CLASS_TYPE_P.
246	* cp-tree.h (TYPE_NON_AGGREGATE_CLASS): Likewise.
247
2482008-11-17  Jakub Jelinek  <jakub@redhat.com>
249
250	PR c++/36089
251	* init.c (constant_value_1): Handle TREE_LIST init.
252
2532008-11-15  Jakub Jelinek  <jakub@redhat.com>
254
255	PR c++/37561
256	* typeck.c (cp_build_unary_op): Don't call get_unwidened.  Use
257	argtype instead of result_type.
258
2592008-11-14  Jason Merrill  <jason@redhat.com>
260
261	PR c++/38030
262	* semantics.c (finish_call_expr): Don't repeat arg-dep lookup
263	for a non-dependent call.
264
265	PR c++/37740
266	* call.c (build_aggr_conv): Increment i.
267
2682008-11-13  Jason Merrill  <jason@redhat.com>
269
270	PR c++/37932
271	* typeck2.c (process_init_constructor_record): Update bitfield
272	handling.
273	(check_narrowing): Update bitfield handling, print source type.
274	
2752008-11-12  Jakub Jelinek  <jakub@redhat.com>
276
277	PR c++/36478
278	Revert:
279	2007-05-07  Mike Stump  <mrs@apple.com>
280	* parser.c (check_empty_body): Add.
281	(cp_parser_iteration_statement): Add call to check_empty_body.
282
2832008-11-12  Jason Merrill  <jason@redhat.com>
284
285	PR c++/38007
286	* typeck.c (cp_build_modify_expr): Update bitfield handling.
287
2882008-11-12  Jakub Jelinek  <jakub@redhat.com>
289
290	PR c++/34269
291	* parser.c (cp_parser_simple_declaration): Don't commit
292	to tentative parse if parse errors were seen.
293
294	PR c++/35334
295	* error.c (dump_expr): Handle COMPLEX_EXPR.
296
2972008-11-10  Jakub Jelinek  <jakub@redhat.com>
298
299	PR c++/38021
300	* parser.c (cp_parser_enum_specifier): After parsing :,
301	parse definitely.  Don't return early if type specifier
302	is erroneous.
303
3042008-11-06  David Edelsohn  <edelsohn@gnu.org>
305
306	PR target/26397
307	* g++spec.c (LIBSTDCXX_STATIC): New.
308	(lang_spec_driver): Use LIBSTDCXX_STATIC when not
309	shared_libgcc.
310
3112008-11-05  Fabien Ch��ne <fabien@gcc.gnu.org>
312
313	PR c++/32519
314	* cp-tree.h: Fix DECL_NONSTATIC_MEMBER_P to handle member template
315	functions.
316
3172008-11-05  Richard Guenther  <rguenther@suse.de>
318
319	PR middle-end/37742
320	* decl.c (start_preparsed_function): Use the correct type for
321	building the RESULT_DECL.
322
3232008-10-31  Jakub Jelinek  <jakub@redhat.com>
324
325	PR c++/37967
326	* decl.c (grokdeclarator): Diagnose auto function decl without
327	late return type and late return type function decl where type
328	is not auto.
329
330	PR c++/37965
331	* decl.c (cp_finish_decl): Diagnose type_uses_auto type with
332	no initializer.
333
3342008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
335
336	PR 11492
337	* class.c (check_bitfield_decl): Rename min_precision to
338	tree_int_cst_min_precision.
339	* decl.c (finish_enum): Likewise.
340
3412008-10-29  Manuel L��pez-Ib����ez  <manu@gcc.gnu.org>
342
343	PR c++/26997
344	* parser.c (cp_parser_token_starts_cast_expression): New.
345	(cp_parser_cast_expression): Peek the next token to decide whether
346	this could be a parenthesized constructor or is definitely an
347	actual cast.
348
3492008-10-24  Manuel L��pez-Ib����ez  <manu@gcc.gnu.org>
350
351	PR c/7543
352	* typeck.c (build_x_binary_op): Update call to
353	warn_about_parentheses.
354	* parser.c (cp_parser_binary_expression): Add note about passing
355	the correct code for unary expressions.
356
3572008-10-24  Jakub Jelinek  <jakub@redhat.com>
358
359	* Make-lang.in (check-c++-subtargets): New alias for
360	check-g++-subtargets.
361	(lang_checks_parallelized): Add check-g++.
362	(check_g++_parallelize): New variable.
363
3642008-10-21  Richard Guenther  <rguenther@suse.de>
365
366	* semantics.c (simplify_aggr_init_exprs_r): Remove.
367	(expand_or_defer_fn): Do not walk the function body to
368	simplify aggr_init_exprs.
369
3702008-10-20  Manuel L��pez-Ib����ez  <manu@gcc.gnu.org>
371
372	PR c++/37004
373	* typeck.c (cp_common_type): New. The same as
374	type_after_usual_arithmetic_conversions but without promotions.
375	(type_after_usual_arithmetic_conversions): Do the promotions and
376	call cp_common_type.
377	(common_type): Make it behave like the C version of this
378	function. Do not handle pointer types.
379	(common_pointer_type): Move handling of pointer types from
380	common_type to here.
381	(cp_build_binary_op): Use common_pointer_type instead of
382	common_type in call to pointer_diff.
383	Use cp_common_type instead of common_type.
384	* cp-tree.h (common_pointer_type): Declare.
385
3862008-10-14  Jakub Jelinek  <jakub@redhat.com>
387
388	PR c++/37819
389	* cp-gimplify.c (cp_genericize_r): Only fold_convert COND_EXPR
390	arguments if they don't already have COND_EXPR's type.
391
3922008-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
393
394	PR c++/37650
395	* pt.c (push_template_decl_real): Check that current_template_parms
396	is not null.
397	(process_partial_specialization): Assert current_template_parms not
398	null.
399
4002008-10-13  Doug Evans  <dje@google.com>
401
402	* cp-tree.h (DECL_MAIN_P): Fix parentheses around expression.
403
4042008-10-10  Jakub Jelinek  <jakub@redhat.com>
405
406	PR c++/37146
407	* cp-gimplify.c (cp_genericize_r): Fix up bitfield operands of
408	COND_EXPR.
409
4102008-10-09  Jakub Jelinek  <jakub@redhat.com>
411
412	PR c++/37568
413	* semantics.c (finalize_nrv_r): Clear DECL_INITIAL instead of
414	setting it to error_mark_node.
415
4162008-10-07  Steve Ellcey  <sje@cup.hp.com>
417
418	* decl.c (start_cleanup_fn): Declare as inline.
419
4202008-10-06  Jason Merrill  <jason@redhat.com>
421
422	PR c++/37376, other mangling issues
423	* mangle.c (write_type): Update TYPE_PACK_EXPANSION mangling.
424	(write_member_name): Break out from...
425	(write_expression): ...here.  Handle dependent COMPONENT_REF.
426	(write_template_arg): Wrap an argument pack in 'I'/'E'.
427	(write_builtin_type): Update char16/32_t mangling.
428	(write_nested_name, write_prefix): Don't forget template args
429	for typename types.
430	* operators.def: Add ARROW_EXPR, update COMPONENT_REF and 
431	EXPR_PACK_EXPANSION.
432
4332008-10-06  Aldy Hernandez  <aldyh@redhat.com>
434
435	* typeck.c (build_x_indirect_ref): Add location argument.
436	(cp_build_binary_op): Pass location to warn_for_div_by_zero.
437	(cp_build_unary_op): Add location argument.
438	(cp_build_modify_expr): Same.
439	* class.c (build_base_path): Pass location to build_indirect_ref.
440	* semantics.c (handle_omp_for_class_iterator): Pass elocus to
441	build_modify_expr.
442
4432008-10-05  Dodji Seketeli  <dodji@redhat.com>
444
445	PR c++/37410
446	* cp-gimplify.c (cp_gimplify_expr): For each USING_STMT
447	make sure an IMPORTED_DECL node is added to the BLOCK_VARS list
448	of the innermost containing BLOCK.
449
4502008-10-03  Paolo Carlini  <paolo.carlini@oracle.com>
451
452	PR c++/37719
453	* error.c (dump_function_decl): Save the exceptions in case of
454	error about incompatible specifications in a specialization.
455
4562008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
457
458	* tree.c (lvalue_p_1): COMPOUND_LITERAL_EXPR is also an lvalue.
459
4602008-09-30  H.J. Lu  <hongjiu.lu@intel.com>
461
462	PR c++/37683
463	* parser.c (cp_parser_selection_statement): Fix uninitialized
464	variable.
465
4662008-09-30  Simon Martin  <simartin@users.sourceforge.net>
467
468	PR c++/37555
469	PR c++/37556
470	* decl.c (grokdeclarator): Set the type for typedefs to a
471	nested-name-specifier to error_mark_node.
472
4732008-09-30  Paolo Bonzini  <bonzini@gnu.org>
474
475	* parser.c (cp_parser_selection_statement): Implement here the
476	-Wempty-body warning for `if' and `else' statements.
477	* semantics.c (finish_if_stmt): Do not call empty_body_warning.
478
4792008-09-25  Paolo Carlini  <paolo.carlini@oracle.com>
480
481	PR c++/37649
482	* name-lookup.c (maybe_process_template_type_declaration): Check
483	return value of push_template_decl_real for error_mark_node.
484
4852008-09-24  Aldy Hernandez  <aldyh@redhat.com>
486
487	* semantics.c (finish_fname): Pass location to fname_decl.
488
4892008-09-23  Jakub Jelinek  <jakub@redhat.com>
490
491	PR c++/37533
492	* semantics.c (finish_omp_for): If processing_template_decl, just build
493	MODIFY_EXPR for init instead of calling cp_build_modify_expr.
494
4952008-09-23  Aldy Hernandez  <aldyh@redhat.com>
496
497	* typeck.c (build_array_ref): Pass location to cp_build_binary_op.
498	(get_member_function_from_ptrfunc): Same.
499	(build_x_binary_op): Same.
500	(build_binary_op): Same.
501	(cp_build_binary_op): New location argument.
502	(pointer_diff): Pass location to cp_build_binary_op.
503	(cp_truthvalue_conversion): Pass location to build_binary_op.
504	(convert_ptrmem): Pass location to cp_build_binary_op.
505	(cp_build_modify_expr): Same.
506	(build_ptrmemfunc): Same.
507	* init.c (expand_cleanup_for_base): Pass location to
508	c_common_truthvalue_conversion.
509	(build_new_1): Pass location to cp_build_binary_op.
510	(build_vec_delete_1): Pass location to *build_binary_op,
511	c_common_truthvalue_conversion.
512	(build_vec_init): Same.
513	(build_delete): Same.
514	* decl.c (compute_array_index_type): Same.
515	* call.c (build_new_op): Same.
516	* rtti.c (build_dynamic_cast_1): Same.
517	* cp-tree.h: Add argument to cp_build_binary_op.
518	* semantics.c (handle_omp_for_class_iterator): Pass location to
519	*build_binary_op, c_common_truthvalue_conversion.
520	* decl2.c (get_guard_cond): Same.
521
5222008-09-17  Richard Guenther  <rguenther@suse.de>
523
524	PR c++/22374
525	* rtti.c (build_dynamic_cast_1): Convert the COND_EXPR
526	result to the correct type.
527
5282008-09-17  H.J. Lu  <hongjiu.lu@intel.com>
529
530	PR c++/37450
531	* name-lookup.c (pushdecl_maybe_friend): Don't return the old
532	parameter for duplicate.
533
5342008-09-17  Jason Merrill  <jason@redhat.com>
535
536	PR c++/37588
537	* name-lookup.c (lookup_type_scope): Look through sk_function_parms.
538
5392008-09-17  Jakub Jelinek  <jakub@redhat.com>
540
541	PR c++/37552
542	* typeck.c (build_array_ref): Use protected_set_expr_location instead
543	of SET_EXPR_LOCATION when ret might not be an expression.
544
5452008-09-17  Jan Hubicka  <jh@suse.cz>
546
547	PR c++/18071
548	* cp/decl.c (start_method): Set DECL_NO_INLINE_WARNING_P.
549
5502008-09-16  Jakub Jelinek  <jakub@redhat.com>
551
552	PR c++/37531
553	* semantics.c (finish_compound_literal): Return error_mark_node if
554	type is errorneous.
555
556	PR c++/37532
557	* lex.c (init_reswords): Don't populate ridpointers for D_CONLY
558	reserved words.
559
5602008-09-15  Aldy Hernandez  <aldyh@redhat.com>
561
562	* decl.c (duplicate_decls): Call error_at.
563	(grokfndecl): New location argument.  Use location if available.
564	(grokdeclarator): Pass declarator location to grokfndecl.
565	* cp-tree.h (struct cp_declarator): Update comment for id_loc.
566	* decl2.c (check_classfn): Use error_at.
567	* parser.c (cp_parser_init_declarator): Set function_start_locus
568	to brace location.
569	(cp_parser_member_declaration): Set id_loc for function declarators.
570
5712008-09-09  Jan Hubicka  <jh@suse.cz>
572
573	PR middle-end/37500
574	* pt.c (tsubst_decl): Do not copy DECL_STRUCT_FUNCTION pointer.
575
5762008-09-09  Jakub Jelinek  <jakub@redhat.com>
577
578	PR c++/37417
579	* tree.c (array_type_nelts_top): Add size_one_node instead of
580	integer_one_node.
581
5822008-09-09  Jason Merrill  <jason@redhat.com>
583
584	PR c++/37439
585	* pt.c (tsubst_copy) [PARM_DECL]: Don't abort if the parm has
586	DECL_CONTEXT set.
587
5882008-09-09  Jakub Jelinek  <jakub@redhat.com>
589
590	PR c++/37389
591	* decl.c (build_enumerator): Handle previous value's DECL_INITIAL
592	being error_operand_p.  Don't clear value if it was error_mark_node.
593
5942008-09-09  Paolo Bonzini  <bonzini@gnu.org>
595
596	* cp-objcp-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
597	* cp-tree.h: Don't mention DECL_ANON_UNION_ELEMS.
598	* semantics.c (anon_aggr_type_p): Remove.
599
6002008-09-06  Jason Merrill  <jason@redhat.com>
601
602	PR c++/37302
603	* parser.c (cp_parser_parameter_declaration_list): Process the
604	PARM_DECLs as we go and push them.  Return a TREE_LIST.
605	(cp_parser_parameter_declaration_clause): Return a TREE_LIST.
606	(cp_parser_direct_declarator): Create a binding level and
607	suppress deprecated warnings in the parameter list.
608	(make_call_declarator): PARMS is now a tree.
609	* cp-tree.h (struct cp_declarator): Function parms are now a tree.
610	* decl.h (enum deprecated_states, deprecated_state): Move here.
611	* decl.c: From here.
612	(type_is_deprecated): New fn.
613	(grokparms): PARMLIST is a tree now.  Warn about parms that
614	use deprecated types.
615	* mangle.c (write_expression): Handle PARM_DECL, CALL_EXPR and
616	0-operand cast.
617	* pt.c (tsubst) [DECLTYPE_TYPE]: Set skip_evaluation.
618	(tsubst_copy) [PARM_DECL]: Handle a PARM_DECL used outside of a 
619	function.
620	* name-lookup.c (pushtag): Look through function parameter scopes.
621	(pushdecl_maybe_friend): Don't set DECL_CONTEXT on a PARM_DECL 
622	when we're parsing a function declarator.
623
6242008-09-05  Douglas Gregor  <doug.gregor@gmail.com>
625
626       PR c++/37342
627       * tree.c (cp_build_qualified_type_real): Deal with sharing of
628       TYPE_LANG_SPECIFIC in the canonical types of pointer-to-method
629       types.
630	
6312008-09-04  Ian Lance Taylor  <iant@google.com>
632
633	* parser.c (check_no_duplicate_clause): Change code parameter to
634	enum omp_clause_code.
635
6362008-09-03  Jakub Jelinek  <jakub@redhat.com>
637
638	PR c++/37348
639	* decl.c (cp_finish_decl): Only set
640	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P if decl is VAR_DECL.
641
642	PR c++/37189
643	* cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): New
644	extern decls.
645	* decl2.c (mark_used): If defer_mark_used_calls, push decl into
646	deferred_mark_used_calls vector and exit early.
647	* decl.c (defer_mark_used_calls, deferred_mark_used_calls): New
648	variables.
649	(finish_function): Set defer_mark_used_calls for the duration of the
650	function.  Call mark_used on any queued decls.
651
6522008-09-02  Jason Merrill  <jason@redhat.com>
653
654	PR c++/37208
655	* call.c (build_over_call): Make =delete work with SFINAE.
656	* class.c (resolve_address_of_overloaded_function): Likewise.
657
658	* cp-tree.h (struct lang_decl_flags): Rename threadprivate_p to
659	threadprivate_or_deleted_p.
660	(CP_DECL_THREADPRIVATE_P): Adjust.
661	(DECL_DELETED_FN): Likewise.
662	(SD_UNINITIALIZED, SD_INITIALIZED, SD_DEFAULTED): New macros.
663	(SD_DELETED): New macro.
664	* parser.c (cp_parser_init_declarator): Use them.
665	* decl.c (start_decl): Use them.
666
667	* decl2.c (mark_used): Give =deleted error even in sizeof.
668
669	* typeck2.c (check_narrowing): Downgrade narrowing error to
670	permerror.
671
6722008-09-02  Aldy Hernandez  <aldyh@redhat.com>
673
674	* typeck.c (build_array_ref): Use new location argument.
675	* class.c (build_vtbl_ref_1): Pass location to build_array_ref.
676	* call.c (build_new_op): Same.
677	* decl2.c (grok_array_decl): Same.
678	* cp-tree.h (build_array_ref): Add location argument to prototype.
679
6802008-09-01  Aldy Hernandez  <aldyh@redhat.com>
681
682	* typeck.c (build_x_indirect_ref): Add location argument.
683	* class.c (build_base_path): Pass location to build_indirect_ref.
684	* pt.c (tsubst_copy_and_build): Pass location to
685	finish_label_address_expr.
686	* parser.c (cp_parser_unary_expression): Same.
687
6882008-08-31  Jason Merrill  <jason@redhat.com>
689
690	Implement late-specified return type using 'auto'.
691	* cp-tree.h (struct cp_declarator): Add late_return_type field to
692	function declarator.
693	* parser.c (cp_parser_late_return_type_opt): New fn.
694	(cp_parser_direct_declarator): Use it.
695	(make_call_declarator): Put it in the declarator.
696	* decl.c (grokdeclarator): Splice in late-specified return type.
697	* pt.c (splice_late_return_type): New fn.
698
6992008-08-29  Michael Meissner  <gnu@the-meissners.org>
700
701	* decl.c (builtin_function_1): Take a bool argument to decide
702	whether to use pushdecl or pushdecl_top_level.
703	(duplicate_decls): Copy function specific target and optimization
704	options on duplicate declarations.
705	(cxx_builtin_function): Update builtin_function_1 call.
706	(cxx_builtin_function_ext_scope): New function, guarantee that the
707	declaration is done at global scope.
708
709	* cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
710	macro, define builtin function hook for delayed machine specific
711	builtins.
712
713	* cp-tree.h (cxx_builtin_function_ext_scope): Add declaration.
714
7152008-08-30  Jason Merrill  <jason@redhat.com>
716
717	PR c++/37288
718	* pt.c (dependent_type_p): Don't abort on auto outside of a template.
719
7202008-08-29  Jason Merrill  <jason@redhat.com>
721
722	Implement C++0x 'auto' semantics.
723	* decl.c (start_decl_1): Don't complain about auto being incomplete.
724	(cp_finish_decl): Deduce auto.
725	* init.c (build_new): Handle 'new auto'.
726	* typeck2.c (cxx_incomplete_type_diagnostic): Give a different
727	message for auto than for normal template type parms.
728	* pt.c (type_dependent_expression_p): Handle { }.
729	(make_auto): New function.
730	(listify_autos): New function.
731	(do_auto_deduction): New function.
732	(is_auto): New function.
733	(type_uses_auto): New function.
734	* cp-tree.h: Declare them.
735	* parser.c (cp_parser_decl_specifier_seq): In C++0x mode, don't
736	treat auto as a declspec.
737	(cp_parser_simple_type_specifier): It's a type-specifier.
738
7392008-08-29  Mark Mitchell  <mark@codesourcery.com>
740
741	* mangle.c (write_type): Add target-specific manglings for
742	non-fundamental types to the substitution table.
743	gcc/testsuite/
744
7452008-08-29  Jakub Jelinek  <jakub@redhat.com>
746
747	PR fortran/29635
748	PR fortran/23057
749	* name-lookup.c (do_using_directive, cp_emit_debug_info_for_using):
750	Adjust debug_hooks->imported_module_or_decl callers.
751
7522008-08-29  Jan Hubicka  <jh@suse.cz>
753
754	* cp-gimplify.c (cp_gimplify_expr): Add PRED_CONTINUE heuristic.
755
7562008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
757
758	PR c++/37260
759	* decl.c (reshape_init_r): Check init for error_mark_node.
760
7612008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
762
763	PR c++/17880
764	* semantics.c (maybe_convert_cond): Call verify_sequence_points.
765	(finish_return_stmt): Likewise.
766	(finish_switch_condition): Likewise.
767
7682008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
769
770	* cp-tree.h: Fix #error directive.
771
7722008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
773
774	* typeck.c (type_after_usual_arithmetic_conversions): Don't do the
775	usual arithmetic conversions on scoped enumeration types.
776	(common_type): Ditto.
777	(default_conversion): Don't perform integral promotions on scoped
778	enumeration types. 
779	(build_array_ref): Scoped enumeration types can't be used as
780	subscripts.
781	* decl.c (start_enum): If building a C++0x scoped enumeration,
782	enter its scope. If provided with an underlying type, check that
783	underlying type and set up the enumeration type accordingly.
784	(finish_enum): Only compute an underlying type if the underlying
785	type isn't already fixed, and only convert the enumerator values
786	now if we've just computed the underlying type. Finish the scope
787	of C++0x scoped enumerations.
788	(build_enumerator): For enumerations with a fixed underlying type,
789	check the enumerator values when the enumerator is defined.
790	(lookup_enumerator): New.
791	* call.c (standard_conversion): Don't allow assignment from
792	integers to scoped enumeration types, even with -fpermissive.
793	Don't convert from scoped enumerations to bool or any arithmetic
794	types.
795	(build_conditional_expr): Don't per the usual arithmetic
796	conversions for scoped enumeration types.
797	(convert_like_real): Check complain to see if we should
798	produce warnings.
799	* error.c (class_key_or_enum_as_string): Print scoped enums.
800	* cp-tree.h (MAYBE_CLASS_TYPE_P): Check CLASS_TYPE_P, not
801	TYPE_LANG_FLAG_5.
802	(INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P): New.
803	(SCOPED_ENUM_P): New.
804	(UNSCOPED_ENUM_P): New.
805	(SET_SCOPED_ENUM_P): New.
806	(ENUM_UNDERLYING_TYPE): New.
807	* pt.c (lookup_template_class): Update the instantiation of enum
808	types to deal with C++0x scoped enumerations and underlying
809	types.
810	* name-lookup.c (begin_scope): Deal with scoped enumeration
811	scopes.
812	(lookup_qualified_name): Deal with lookup into enumeration types.
813	* name-lookup.h (enum scope_kind): Add sk_scoped_enum.
814	* parser.c (cp_parser_class_or_namespace_name): Rename to...
815	(cp_parser_qualifying_entity): ... this. Also, in C++0x mode,
816	parse a type-name that can be an enumeration type.
817	(cp_parser_nested_name_specifier_opt): Update with C++0x grammar.
818	(cp_parser_elaborated_type_specifier): Parse the
819	optional `struct' or `class' following enum (in C++0x).
820	(cp_parser_enum_specifier): Parse C++0x scoped enumerations and
821	enum-base clauses.
822
8232008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
824
825	* typeck.c: Update all calls to pedwarn.
826	* decl.c: Likewise.
827	* call.c: Likewise.
828	* error.c: Likewise.
829	* pt.c: Likewise.
830	* name-lookup.c: Likewise.
831	* parser.c: Likewise.
832
8332008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
834
835	PR c++/35158
836	* parser.c (cp_parser_omp_for_loop): Handle parenthesized
837	initializers.
838
8392008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
840
841	* parser.c: Update all calls to inform.
842	* typeck.c: Likewise.
843	* init.c: Likewise.
844	* class.c: Likewise.
845	* call.c: Likewise.
846	* method.c: Likewise.
847	* friend.c: Likewise.
848	* typeck2.c: Likewise.
849	* pt.c: Likewise.
850	* name-lookup.c: Likewise.
851	* lex.c: Likewise.
852
8532008-08-19  Jakub Jelinek  <jakub@redhat.com>
854
855	PR debug/37156
856	* error.c (cp_print_error_function): Deal with recursive BLOCK trees.
857
8582008-08-18  Tomas Bily  <tbily@suse.cz>
859
860	* tree.c (cp_tree_equal): Use CONVERT_EXPR_CODE_P.
861
8622008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
863
864	* typeck.c: Update all callers of permerror.
865	* init.c: Likewise.
866	* class.c: Likewise.
867	* decl.c: Likewise.
868	* call.c: Likewise.
869	* except.c: Likewise.
870	* cvt.c: Likewise.
871	* typeck2.c: Likewise.
872	* pt.c: Likewise.
873	* semantics.c: Likewise.
874	* name-lookup.c: Likewise.
875	* lex.c: Likewise.
876	* decl2.c: Likewise.
877	* parser.c: Likewise.
878
8792008-08-14  Paolo Carlini  <paolo.carlini@oracle.com>
880
881	PR c++/34485
882	* pt.c (check_template_shadow): Change to return a bool.
883	* name-lookup.c (push_class_level_binding): Early return if
884	check_template_shadow returns false.
885	* cp-tree.h (check_template_shadow): Adjust declaration.
886
8872008-08-14  Paolo Carlini  <paolo.carlini@oracle.com>
888
889	PR c++/34600
890	* decl.c (grokdeclarator): In case of extern and initializer, return
891	error_mark_node after the error.
892
8932008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
894
895	PR 30551
896	* decl.c (grokfndecl): Call check_main_parameters_type only if
897	-Wmain.
898
8992008-08-12  Paolo Carlini  <paolo.carlini@oracle.com>
900
901	PR c++/37087
902	* parser.c (cp_parser_class_head): Early return error_mark_node in
903	case of global qualification of class name or qualified name that
904	does not name a class.
905
9062008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
907
908	PR c++/12242
909	* cvt.c (ocp_convert): Warn for out-of-range conversions to enum.
910
9112008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
912
913	PR 36901
914	* cp-tree.h (struct diagnostic_context, struct diagnostic_info):
915	Delete forward declarations. Check that toplev.h has not been
916	included before this file. Include toplev.h and diagnostic.h.
917	* error.c (cp_cpp_error): Use DK_PEDWARN.
918	(cxx_incomplete_type_diagnostic): Update declaration.
919	(cxx_incomplete_type_error): Use DK_ERROR.
920	* typeck2.c (cxx_incomplete_type_diagnostic): Take a diagnostic_t
921	as argument. Use emit_diagnostic.
922	(cxx_incomplete_type_error): Use DK_ERROR.
923	(add_exception_specifier): Use diagnostic_t instead of custom
924	codes.  
925	* typeck.c (complete_type_or_else): Update call to
926	cxx_incomplete_type_diagnostic.
927	* init.c (build_delete): Likewise.  
928	* call.c (diagnostic_fn_t): Remove unused typedef.
929	(build_temp): Pass a pointer to diagnostic_t.
930	(convert_like_real): Use emit_diagnostic.
931	(joust): Check return value of warning before giving informative
932	note.  
933	* friend.c (do_friend): Check return value of warning
934	before giving informative note.
935	* parser.c (cp_parser_template_id): Likewise.
936
9372008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
938
939	PR 7651
940	* class.c (check_bases_and_members): Warn with -Wuninitialized
941	instead of -Wextra.
942	
9432008-08-08  Volker Reichelt  <v.reichelt@netcologne.de>
944
945	PR c++/35985
946	* decl.c (xref_basetypes): Check base for MAYBE_CLASS_TYPE_P,
947	and make sure it is not a union.
948
9492008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
950
951	* semantics.c (finish_decltype_type): Initialize type.
952
9532008-08-07  Douglas Gregor  <doug.gregor@gmail.com>
954
955	* semantics.c (finish_decltype_type): Handle calls to function
956	pointers and references to functions properly.
957
9582008-08-06  Douglas Gregor  <doug.gregor@gmail.com>
959
960	PR c++/36460
961	* parser.c (cp_parser_template_argument): Don't assume that '>>'
962	following a type-id is an error when in C++0x mode.
963
9642008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
965
966	PR 26785
967	* decl.c (grokdeclarator): Use explicit location with permerror_at.
968
9692008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
970
971	PR 8715
972	* typeck.c (cp_build_binary_op): Move code to c-common.c.
973
9742008-08-05  Jason Merrill  <jason@redhat.com>
975
976	PR c++/37016
977	* decl.c (build_ptrmemfunc_type): Don't require structural
978	comparison of PMF types.
979	* tree.c (cp_build_qualified_type_real): Don't clear
980	a valid TYPE_PTRMEMFUNC_TYPE.
981	* typeck.c (cp_build_unary_op): Still do build_ptrmemfunc in
982	templates.
983
9842008-08-04  Jason Merrill  <jason@redhat.com>
985
986	PR c++/36963
987	* typeck2.c (check_narrowing): Allow narrowing conversion
988	from an explicit floating-point constant.
989
990	PR c++/37006
991	* pt.c (tsubst_decl): Leave DECL_INITIAL set on deleted
992	instantiations.
993
9942008-08-04  Simon Baldwin  <simonb@google.com>
995
996	PR c++/36999
997	* parser.c (cp_parser_elaborated_type_specifier): Warn only when
998	the declaration's id is followed by a semicolon.
999
10002008-07-31  Jakub Jelinek  <jakub@redhat.com>
1001
1002	PR c++/36405
1003	* rtti.c (get_tinfo_decl_dynamic, get_typeid): Call
1004	complete_type_or_else even for UNKNOWN_TYPE to get diagnostics.
1005
10062008-07-31  Jason Merrill  <jason@redhat.com>
1007
1008	PR c++/36633
1009	* init.c (build_new_1): Don't convert pointer to the data type
1010	until we're actually going to treat it as that type.
1011
1012	PR c++/11309
1013	* tree.c (build_aggr_init_expr): Split out...
1014	(build_cplus_new): ...from here.
1015	(stabilize_init): Don't mess with AGGR_INIT_EXPR either.
1016	* init.c (build_new_1): new T() means value-initialization,
1017	not default-initialization.
1018	(build_vec_init): Likewise.
1019	(build_value_init_1): Use build_aggr_init_expr.
1020
10212008-07-30  Dodji Seketeli  <dseketel@redhat.com>
1022
1023	PR c++/36767
1024	* decl2.c (fix_temporary_vars_context_r): New function.
1025	 (one_static_initialization_or_destruction): Make sure temporary
1026	 variables part of the initialiser have their DECL_CONTEXT()
1027	 properly set.
1028
10292008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1030
1031	PR 34389
1032	* typeck.c (build_binary_op): Encapsulate code into
1033	shorten_binary_op.
1034
10352008-07-29  Jakub Jelinek  <jakub@redhat.com>
1036
1037	PR c++/36852
1038	* tree.c (cplus_array_hash, build_cplus_array_type_1): Hash on
1039	TYPE_UID instead of pointers.
1040
10412008-07-29  Jan Hubicka  <jh@suse.cz>
1042
1043 	* optimize.c (maybe_clone_body): Remove DECL_INLINE.
1044	* decl.c (duplicate_decls): Likewise.
1045	(grokfndecl): Likewise.
1046	(start_method): Likewise.
1047	* method.c (make_thunk, make_alias_for, implicitly_declare_fn):
1048	Likewise.
1049	* pt.c (register_specialization, regenerate_decl_from_template):
1050	Likewise.
1051	* decl2.c (grokfield): Likewise.
1052
10532008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1054
1055	PR 34985
1056	* decl.c (duplicate_decls): Merge USED flags.
1057
10582008-07-27  Jason Merrill  <jason@redhat.com>
1059
1060	PR c++/36943
1061	* decl.c (reshape_init_r): Allow C++0x initializer lists.
1062
10632008-07-28  Richard Guenther  <rguenther@suse.de>
1064
1065	Merge from gimple-tuples-branch.
1066
1067	2008-07-22  Aldy Hernandez  <aldyh@redhat.com>
1068
1069	* cp-gimplify.c (gimplify_if_stmt): Set location on newly created
1070	COND_EXPR.
1071
1072	2008-07-18  Jakub Jelinek  <jakub@redhat.com>
1073
1074	* decl.c (finish_function): Call gimple_body after cp_genericize.
1075
1076	2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
1077
1078	* optimize.c: Include gimple.h instead of tree-gimple.h.
1079	* Make-lang.in (cp-gimplify.o): Depend on tree-iterator.h.
1080	* cp-gimplify.c: Rename tree-gimple.h to gimple.h.  Include
1081	tree-iterator.h.
1082
1083	2008-07-16  Jakub Jelinek  <jakub@redhat.com>
1084
1085	* optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE for the clone.
1086
1087	2008-07-14  Jakub Jelinek  <jakub@redhat.com>
1088
1089	* cp-gimplify.c (cp_gimplify_expr): Update comment.
1090
1091	2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
1092
1093	* cp-tree.h (union lang_tree_node): Rename GENERIC_NEXT to
1094	TREE_CHAIN.
1095	* cp-gimplify.c (cxx_omp_clause_apply_fn): Rename
1096	GIMPLE_MODIFY_STMT to MODIFY_EXPR.
1097	(cxx_omp_clause_copy_ctor): Same.
1098	(cxx_omp_clause_assign_op): Same.
1099
1100	2008-05-28  Jakub Jelinek  <jakub@redhat.com>
1101
1102	* cp-gimplify.c (cp_gimplify_omp_for): Add pre_p argument.  Tuplify.
1103	(cp_gimplify_expr): Adjust caller.
1104
1105	2008-05-11 Doug Kwan  <dougkwan@google.com>
1106
1107	* init.c (build_vec_delete): Add type conversion for argument
1108	0 of POINTER_PLUS_EXPR.
1109
1110	2008-04-29  Doug Kwan  <dougkwan@google.com>
1111
1112	* decl2 (File): Include "gimple.h"
1113	(cp_write_global_declarations): Use gimple_body instead of
1114	DECL_SAVED_TREE.
1115	* Make-lang.in (cp/decl2.o): Add $(GIMPLE_H)
1116
1117	2008-04-10  Diego Novillo  <dnovillo@google.com>
1118
1119	http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00913.html
1120
1121	* optimize.c (maybe_clone_body): Re-enable call to
1122	clone_body.
1123	* cp-gimplify.c (cp_gimplify_omp_for): Mark disabled
1124	code with call to gimple_unreachable.
1125	(cp_genericize): Fix handling of clone bodies.
1126
1127	2008-04-04  Diego Novillo  <dnovillo@google.com>
1128
1129	http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00413.html
1130
1131	* optimize.c (maybe_clone_body): Re-enable.
1132
1133	2008-02-19  Diego Novillo  <dnovillo@google.com>
1134		    Oleg Ryjkov  <olegr@google.com>
1135
1136	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
1137
1138	* cp-gimplify.c (gimplify_for_stmt): Change gimple_seq
1139	argument to gimple_seq *.  Update all users.
1140	(gimplify_must_not_throw_expr): Likewise.
1141
1142	2008-02-04  Oleg Ryjkov <olegr@google.com>
1143
1144	* except.c: Include gimple.h
1145	(cp_protect_cleanup_actions): Convert to tuples.
1146	* Make-lang.in (cp/except.o): Add dependency on gimple.h
1147
1148	2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
1149
1150	* cp-gimplify.c (gimplify_cp_loop): Call tree_annotate_all_with_locus
1151	instead of annotating each block manually.
1152
1153	2007-10-30  Aldy Hernandez  <aldyh@redhat.com>
1154
1155	* cp-gimplify.c (gimplify_cp_loop): Tuplify.
1156	(gimplify_for_stmt): Same.
1157	(gimplify_switch_stmt): Same.
1158	(cp_gimplify_expr): [FOR_STMT]: Do not call gimplify_for_stmt.  Return
1159	GS_OK.
1160	[WHILE_STMT]: Return GS_OK.
1161	[SWITCH_STMT]: Same.
1162	[CONTINUE_STMT]: Same.
1163	[BREAK_STMT]: Same.
1164	(cp_genericize): Set gimple_body() of cloned functions when needed.
1165
1166	2007-10-29  Aldy Hernandez  <aldy@quesejoda.com>
1167
1168	* cp-gimplify.c: Move build_gimple_eh_filter_tree here.
1169	(cp_gimplify_init_expr): Convert to tuples.
1170	(gimplify_must_not_throw_expr): Make function return a
1171	gimplify_status and convert to tuples.
1172
1173	2007-10-18  Aldy Hernandez  <aldy@quesejoda.com>
1174
1175	* cp-gimplify.c (genericize_try_block): Enable and do not call
1176	gimplify_stmt.
1177	(genericize_catch_block): Same.
1178	(genericize_eh_spec_block): Same.
1179	Rename gimple_build_eh_filter_tree to build_gimple_eh_filter_tree.
1180	(cp_gimplify_expr): Enable TRY_BLOCK, HANDLER, and EH_SPEC_BLOCK.
1181
1182	2007-10-16  Aldy Hernandez  <aldy@quesejoda.com>
1183
1184	* optimize.c (maybe_clone_body): Comment out call to clone_body.
1185	* decl.c (finish_function): Use gimple_body instead of
1186	DECL_SAVED_TREE.
1187	* cp-tree.h (cp_gimplify_expr): Last 2 arguments are sequences.
1188	* cp-gimplify.c (genericize_try_block): Comment out.
1189	(genericize_catch_block): Same.
1190	(genericize_eh_spec_block): Same.
1191	(gimplify_cp_loop): Comment out calls to gimplify_stmt.
1192	(gimplify_for_stmt): Comment out.
1193	(gimplify_switch_stmt): Comment out call to gimplify_stmt.
1194	(cp_gimplify_omp_for): Same.
1195	(gimplify_must_not_throw_expr): Argument pre_p is a sequence.
1196	Comment out call to gimplify_stmt and append_to_statement_list.
1197	Rename gimple_build_eh_filter_tree to build_gimple_eh_filter_tree.
1198	(cp_gimplify_init_expr): Arguments pre_p and post_p are sequences.
1199	(cp_gimplify_expr): Same.
1200	Comment out calls to genericize_*_block.  Comment out call to
1201	gimplify_for_stmt.
1202
12032008-07-27  H.J. Lu  <hongjiu.lu@intel.com>
1204
1205	PR c++/36944
1206	* class.c (type_has_user_provided_default_constructor): Handle
1207	default parameters.
1208
12092008-07-27  Paolo Carlini  <paolo.carlini@oracle.com>
1210
1211	* decl.c (push_library_fn): Add a parameter for the exceptions that
1212	the function may throw.
1213	(push_void_library_fn, push_throw_library_fn, expand_static_init):
1214	Adjust.
1215	(build_library_fn): Change to static.
1216	* cp-tree.h: Adjust declarations.
1217	* except.c (declare_nothrow_library_fn): New.
1218	(do_get_exception_ptr, do_begin_catch, do_free_exception,
1219	do_allocate_exception):  Use the latter, adjust the declarations
1220	(ie, add empty exception-specification), consistently with the
1221	actual implementation in libsupc++.
1222
12232008-07-25  Jan Hubicka  <jh@suse.cz>
1224
1225	* typeck.c (inline_conversion): Remove.
1226	(cp_build_function_call): Do not use inline_conversion.
1227	* decl.c (duplicate_decls): Do not insist on inline being declared
1228	early.
1229	(start_cleanup_fn): Do not assume that INLINE flags prevent function
1230	from being output.  We now remove static functions always.
1231	(finish_function): Do return warning on all static functions.
1232	* call.c (build_over_call): Do not use inline_conversion.
1233	* cp-tree.h (possibly_inlined_p): Declare.
1234	(inline_conversion): Remove.
1235	* pt.c (instantiate_decl): Use possibly_inlined_p predicate.
1236	* decl2.c (cp_write_global_declarations): Likewise.
1237	(mark_used): Likewise.
1238	(possibly_inlined_p): New functions.
1239
12402008-07-25  Jason Merrill  <jason@redhat.com>
1241
1242	* class.c (type_has_user_provided_default_constructor): Handle
1243	templates.
1244
12452008-07-23  Jan Hubicka  <jh@suse.cz>
1246
1247	* decl.c (duplicate_decls): Update comment and unit-at-a-time.
1248	(grogfndecl): Drop flag_inline_trees code.
1249	* pt.c (instantiate_decl): Drop flag_iline_trees code.
1250	* lex.c (cxx_init): Do not set unit-at-a-time.
1251
12522008-07-23  Jason Merrill  <jason@redhat.com>
1253
1254	* mangle.c (write_unqualified_name): Avoid infinite recursion when
1255	trying to mangle a decl with no name.
1256
1257	Implement defaulted/deleted functions as per N2346
1258	* cp-tree.h (struct lang_decl_flags): Add defaulted_p bitfield.
1259	(DECL_DELETED_FN): New macro.
1260	(DECL_DEFAULTED_FN): New macro.
1261	* class.c (user_provided_p): New fn.
1262	(defaultable_fn_p): New fn.
1263	(type_has_user_provided_constructor): New fn.
1264	(type_has_user_provided_default_constructor): New fn.
1265	(check_methods): A defaulted fn is still trivial.
1266	(check_bases_and_members): Likewise.
1267	* decl.c (grok_special_member_properties): Likewise.
1268	(duplicate_decls): Complain about redeclaring a function as deleted.
1269	(start_decl): initialized==2 means deleted.
1270	(cp_finish_decl): Handle deleted/defaulted semantics.
1271	* decl2.c (grokfield): Likewise.
1272	(mark_used): Check DECL_DEFAULTED_FN instead of DECL_ARTIFICIAL.
1273	Complain about using a deleted fn.
1274	* init.c (build_value_init_1): Use type_has_user_provided_constructor.
1275	(perform_member_init): Check for a user-provided default constructor
1276	even if TYPE_NEEDS_CONSTRUCTING.
1277	(build_new_1): Likewise.
1278	* call.c (build_over_call): Don't call mark_used twice.
1279	* method.c (implicitly_declare_fn): Set DECL_DEFAULTED_FN.
1280	* search.c (check_final_overrider): Check for deleted mismatch.
1281	* parser.c (cp_parser_init_declarator): Tell start_decl about =delete.
1282	(cp_parser_pure_specifier): Handle =default and =delete.
1283
1284	* error.c (maybe_warn_cpp0x): Suggest -std=gnu++0x as well.
1285
12862008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1287
1288	PR 35058
1289	* typeck.c: All calls to pedwarn changed.
1290	* decl.c: All calls to pedwarn changed.
1291	* call.c: All calls to pedwarn changed.
1292	* error.c: All calls to pedwarn changed.
1293	* typeck2.c: All calls to pedwarn changed.
1294	* pt.c: All calls to pedwarn changed.
1295	* name-lookup.c: All calls to pedwarn changed.
1296	* parser.c: All calls to pedwarn changed.
1297
12982008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1299
1300	* call.c: Fix comment typos.
1301	* class.c: Likewise.
1302	* cp-tree.h: Likewise.
1303	* cxx-pretty-print.c: Likewise.
1304	* decl.c: Likewise.
1305	* init.c: Likewise.
1306	* name-lookup.c: Likewise.
1307	* operators.def: Likewise.
1308	* parser.c: Likewise.
1309	* pt.c: Likewise.
1310	* tree.c: Likewise.
1311	* typeck.c: Likewise.
1312
13132008-07-21  Paolo Carlini  <paolo.carlini@oracle.com>
1314
1315	PR c++/36871
1316	PR c++/36872
1317	* semantics.c (classtype_has_nothrow_assign_or_copy_p): Only check
1318	copy constructors and copy assignment operators proper.
1319
13202008-07-21  Rafael ��vila de Esp��ndola  <espindola@google.com>
1321
1322	* parser.c (cp_token): Remove in_system_header.
1323	(eof_token): Remove in_system_header.
1324	(cp_lexer_get_preprocessor_token): Don't set in_system_header.
1325	(cp_lexer_set_source_position_from_token): Don't set in_system_header.
1326	(cp_parser_member_declaration):  Use in_system_header_at.
1327	* pt.c (lookup_template_class): Don't set DECL_IN_SYSTEM_HEADER.
1328	(pop_tinst_level): Don't set in_system_header.
1329	(instantiate_class_template): Don't set in_system_header.
1330	(instantiate_decl): Don't set in_system_header.
1331	(instantiate_pending_templates): Don't set in_system_header.
1332
13332008-07-21  Paolo Carlini  <paolo.carlini@oracle.com>
1334
1335	PR c++/36870
1336	* semantics.c (classtype_has_nothrow_assign_or_copy_p): Use
1337	TYPE_NOTHROW_P, not TREE_NOTHROW.
1338	(trait_expr_value): Likewise.
1339
13402008-07-18  Dodji Seketeli  <dseketel@redhat.com>
1341
1342	PR c++/36407
1343	* call.c (convert_like_real): Don't take the error code path
1344	  when a rvalue or base conversion has the bad_p field set.
1345
13462008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
1347
1348	* rtti.c (emit_support_tinfos): Add char16_type_node and
1349	char32_type_node.
1350	* typeck2.c (digest_init): Support char16_t and char32_t.
1351
13522008-07-18  Kavih R. Ghazi  <ghazi@caip.rutgers.edu>
1353
1354	* cvt.c (convert_to_void): Avoid C++ keywords.
1355	* decl.c (walk_namespaces_r, wrapup_globals_for_namespace):
1356	Likewise.
1357	* friend.c (is_friend): Likewise.
1358	* init.c (perform_member_init): Likewise.
1359	* mangle.c (write_template_prefix, write_template_template_param):
1360	Likewise.
1361	* name-lookup.c (do_namespace_alias, do_using_directive,
1362	parse_using_directive, ambiguous_decl, arg_assoc): Likewise.
1363	* parser.c (cp_parser_template_id, cp_parser_namespace_definition,
1364	cp_parser_objc_typename, cp_parser_objc_method_keyword_params):
1365	Likewise.
1366	* pt.c (is_specialization_of_friend, lookup_template_class,
1367	push_tinst_level, instantiate_class_template,
1368	tsubst_copy_and_build): Likewise.
1369	* tree.c (add_stmt_to_compound): Likewise.
1370	* typeck.c (finish_class_member_access_expr): Likewise.
1371
13722008-07-17  Julian Brown  <julian@codesourcery.com>
1373	    Mark Mitchell  <mark@codesourcery.com>
1374
1375	* decl2.c (determine_visibility): Allow target to override
1376	visibility of class data.
1377
13782008-07-17  Paolo Carlini  <paolo.carlini@oracle.com>
1379
1380	PR c++/36855
1381	* semantics.c (trait_expr_value): Update __has_trivial_destructor
1382	semantics to the current WP (N2691).
1383
13842008-07-16  Dodji Seketeli  <dseketel@redhat.com>
1385
1386	PR c++/13699
1387	* name-lookup.c (lookup_extern_c_fun_binding_in_all_ns): New function.
1388	(pushdecl_maybe_friend): Check if a redeclaration of extern C function
1389	complies with exception specification constraints.
1390
13912008-07-14  Jason Merrill  <jason@redhat.com>
1392
1393	* lex.c (init_reswords): Always set D_OBJC.
1394
13952008-07-11  Tom Tromey  <tromey@redhat.com>
1396	    Ian Lance Taylor  <iant@google.com>
1397
1398	* lex.c (struct resword, reswords): Don't define.
1399	(D_EXT, D_ASM, D_OBJC, D_CXX0X): Don't define.
1400	(init_reswords): Clarify mask code.  Use c_common_reswords rather
1401	than reswords.
1402
14032008-07-11  Dodji Seketeli  <dseketel@redhat.com>
1404
1405	PR c++/13101
1406	* decl.c (grokdeclarator): Warn about initializing variables
1407	of storage class 'extern' only after the type of the declarator
1408	has been properly computed.
1409
14102008-07-11  Dodji Seketeli  <dseketel@redhat.com>
1411
1412	PR c++/31754
1413	* cp-tree.h (struct cp_decl_specifier_seq): Add a location field. It
1414	carries the location of the primary type.
1415	* parser.c (cp_parser_check_type_definition): Update documentation.
1416	(cp_parser_check_for_definition_in_return_type,
1417	cp_parser_check_for_invalid_template_id,
1418	cp_parser_set_decl_spec_type,
1419	cp_parser_check_for_definition_in_return_type,
1420	cp_parser_diagnose_invalid_type_name,
1421	cp_parser_new_expression, cp_parser_explicit_instantiation,
1422	cp_parser_type_specifier, cp_parser_simple_type_specifier,
1423	cp_parser_omp_for_loop, cp_parser_pragma): Use location in error
1424	messages.
1425
14262008-07-11 Dodji Seketeli <dseketel@redhat.com>
1427
1428	PR c++/31754
1429	* pt.c, semantic.c:
1430	* semantic.c (qualified_name_lookup_error, finish_id_expression):
1431	Add a location_t parameter so that
1432	error message can have a more accurate location.
1433	* cp-tree.h: Updated prototype
1434	* pt.c (tsubst_qualified_id): Use location in error messages.
1435	* parser.c (cp_parser_postfix_expression,
1436	cp_parser_objc_statement, cp_parser_trait_expr,
1437	cp_parser_token_is_class_key,
1438	cp_parser_uncommitted_to_tentative_parse_p,
1439	cp_parser_check_for_invalid_template_id, cp_parser_is_string_literal,
1440	cp_parser_error, cp_parser_name_lookup_error,
1441	cp_parser_simulate_error, cp_parser_check_decl_spec,
1442	cp_parser_check_decl_spec, cp_parser_non_integral_constant_expression,
1443	cp_parser_diagnose_invalid_type_name,
1444	cp_parser_parse_and_diagnose_invalid_type_name,
1445	cp_parser_require_pragma_eol, cp_parser_make_typename_type,
1446	cp_parser_string_literal, cp_parser_primary_expression,
1447	cp_parser_primary_expression, cp_parser_unqualified_id,
1448	cp_parser_nested_name_specifier_opt, cp_parser_postfix_expression,
1449	cp_parser_postfix_dot_deref_expression, cp_parser_new_expression,
1450	cp_parser_direct_new_declarator, cp_parser_builtin_offsetof,
1451	cp_parser_label_for_labeled_statement, cp_parser_statement_seq_opt,
1452	cp_parser_jump_statement, cp_parser_block_declaration,
1453	cp_parser_simple_declaration, cp_parser_decl_specifier_seq,
1454	cp_parser_function_specifier_opt, cp_parser_decltype,
1455	cp_parser_mem_initializer_list, cp_parser_mem_initializer,
1456	cp_parser_mem_initializer_id, cp_parser_template_parameter,
1457	cp_parser_type_parameter, cp_parser_template_id,
1458	cp_parser_template_name, cp_parser_template_argument): Likewise.
1459
14602008-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
1461
1462	PR c++/36760
1463	* pt.c (tsubst_function_type): Remove warning for type qualifiers
1464	on function return type.
1465
14662008-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
1467
1468	PR c++/36760
1469	* pt.c (tsubst_function_type): Don't warn for type qualifiers
1470	on function return type in case of system header.
1471
14722008-07-09  Raksit Ashok <raksit@google.com>
1473
1474	* parser.c (cp_parser_postfix_expression): New warning based on flag
1475	warn_disallowed_functions.
1476
14772008-07-08  Simon Martin  <simartin@users.sourceforge.net>
1478
1479	PR c++/34963
1480	* decl.c (grokdeclarator): Reset storage_class and staticp for friend
1481	functions declared with a storage class qualifier.
1482
14832008-07-03  Richard Guenther  <rguenther@suse.de>
1484
1485	PR c++/36128
1486	* typeck.c (cp_build_function_call): Move code to verify
1487	builtin function arguments ...
1488	* call.c (build_cxx_call): ... here.
1489
14902008-07-02  Jason Merrill  <jason@redhat.com>
1491
1492	* Make-lang.in (cp/typeck2.o): Add $(REAL_H) dependency.
1493
1494	Implement WG21 N2672, Initializer List proposed wording
1495	* cp-tree.h (enum cp_tree_index): Add CPTI_INIT_LIST_TYPE.
1496	(struct lang_type_class): Add has_list_ctor bitfield.
1497	(TYPE_HAS_LIST_CTOR): New macro.
1498	(BRACE_ENCLOSED_INITIALIZER_P): Expect init_list_type_node.
1499	(CONSTRUCTOR_IS_DIRECT_INIT): New macro.
1500	(LOOKUP_NO_NARROWING): New macro.
1501	(LOOKUP_NO_COPY_CTOR_CONVERSION): New macro.
1502	* parser.c (cp_parse_braced_list): Split out from...
1503	(cp_parser_initializer_clause): ...here.
1504	(cp_parser_postfix_expression): Build up CONSTRUCTOR for compound
1505	literal here.
1506	(cp_lexer_next_token_is_not_keyword): New fn.
1507	(cp_parser_parenthesized_expression_list): Handle { }.
1508	(cp_parser_new_expression, cp_parser_new_initializer): Likewise.
1509	(cp_parser_assignment_expression, cp_parser_condition): Likewise.
1510	(cp_parser_jump_statement, cp_parser_simple_declaration): Likewise.
1511	(cp_parser_mem_initializer, cp_parser_init_declarator): Likewise.
1512	(cp_parser_initializer, cp_parser_functional_cast): Likewise.
1513	(cp_parser_omp_for_loop, cp_parser_cache_group): Likewise.
1514	(cp_parser_save_member_function_body): Likewise.
1515	* call.c (conversion_kind): Add ck_list, ck_aggr.
1516	(struct conversion): Add check_narrowing bitfield, conversion list.
1517	(build_list_conv): New fn.
1518	(build_aggr_conv): New fn.
1519	(implicit_conversion): Call them.
1520	(standard_conversion): Set check_narrowing if appropriate.
1521	(add_function_candidate): Handle LOOKUP_NO_COPY_CTOR_CONVERSION.
1522	(build_user_type_conversion_1): When converting from an init list,
1523	we allow additional conversions except when calling a copy ctor.
1524	(convert_like_real): Calling an explicit ctor for an init list is
1525	ill-formed.  Handle ck_list and ck_addr.  Check narrowing.
1526	(build_new_method_call): If CONSTRUCTOR_IS_DIRECT_INIT is set and
1527	class doesn't have a list ctor, break the {} into a TREE_LIST.
1528	(compare_ics): ck_list is better than other UDCs.
1529	(set_up_extended_ref_temp): Split out from initialize_reference.
1530	(is_std_init_list): New fn.
1531	(is_list_ctor): New fn.
1532	* decl.c (cxx_init_decl_processing): Create init_list_type_node.
1533	(reshape_init_array_1): Pass it to build_constructor.
1534	(reshape_init_class): Ditto.
1535	(initialize_artificial_var): Pass the appropriate type.
1536	(build_aggr_init_full_exprs): Split out from...
1537	(check_initializer): ...here.  Handle new semantics.
1538	(build_init_list_var_init): New subroutine of check_initializer.
1539	(grokdeclarator): Converting constructors can have more than one parm.
1540	(grok_special_member_properties): Set TYPE_HAS_LIST_CTOR.
1541	* init.c (expand_default_init): Only do digest_init for aggregates.
1542	* rtti.c (tinfo_base_init): Pass init_list_type_node to
1543	build_constructor_from_list.
1544	(generic_initializer, ptr_initializer): Ditto.
1545	(ptm_initializer, class_initializer): Ditto.
1546	(get_pseudo_ti_init): Ditto.
1547	* error.c (dump_type): Handle init_list_type_node.
1548	(maybe_warn_cpp0x): New fn.
1549	(maybe_varn_variadic_templates): Call it.
1550	* cvt.c (ocp_convert): Handle conversion from { }.
1551	* tree.c (build_array_of_n_type): New fn.
1552	* typeck2.c (store_init_value): Use init_list_type_node.
1553	(digest_init): Likewise.
1554	(check_narrowing): New fn.
1555	* semantics.c: (finish_compound_literal): Take CONSTRUCTOR instead
1556	of vector of constructor elts.  Handle non-aggregate types.  Make
1557	constant literals static.
1558	* pt.c: (tsubst_copy_and_build): Adjust.
1559	(unify): Handle { }.
1560	* name-lookup.c (arg_assoc_type): Handle init_list_type_node.
1561
15622008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
1563
1564	* typeck.c (comp_ptr_ttypes_real): Use vector_targets_convertible_p.
1565	(comp_ptr_ttypes_const): Likewise.
1566
15672008-07-01  Andrew Haley  <aph@redhat.com>
1568
1569	* decl.c (finish_constructor_body): Don't set the return value of
1570	the constructor if the constructor is that of a Java type.
1571
15722008-06-30  Jakub Jelinek  <jakub@redhat.com>
1573
1574	PR c++/36662
1575	* decl2.c (is_late_template_attribute): If the first attribute
1576	argument is IDENTIFIER_NODE, don't consider it when checking
1577	if arguments are value or type dependent.
1578
15792008-06-29  Paolo Carlini  <paolo.carlini@oracle.com>
1580
1581	PR c++/36655
1582	* pt.c (do_type_instantiation): In c++0x mode do not warn for
1583	extern template.
1584
15852008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1586
1587	* Make-lang.in (cp-warn): Delete $(CXX_COMPAT_WARN).
1588
15892008-06-28  Jakub Jelinek  <jakub@redhat.com>
1590
1591	PR c++/36364
1592	* repo.c (repo_emit_p): Put const static data members initialized
1593	by const expr into *.rpo file, just return 2 if IDENTIFIER_REPO_CHOSEN
1594	for it is 0.
1595
15962008-06-27  Paolo Carlini  <paolo.carlini@oracle.com>
1597
1598	PR c++/36655
1599	* pt.c (do_decl_instantiation): In c++0x mode do not warn for
1600	extern template.
1601
16022008-06-24  Jonathan Wakely  <jwakely.gcc@gmail.com>
1603
1604	PR c++/23194
1605	* typeck.c (cp_build_function_call): Show example syntax in
1606	diagnostic.
1607
16082008-06-21  Jonathan Wakely  <jwakely.gcc@gmail.com>
1609
1610	* typeck.c (composite_pointer_type_r, cxx_sizeof_expr,
1611	cxx_alignof_expr, check_template_keyword, cp_build_binary_op,
1612	pointer_diff, cp_build_unary_op, build_x_compound_expr_from_list,
1613	build_reinterpret_cast_1, cp_build_c_cast, check_return_expr): Change
1614	pedwarn to permerror.
1615	* init.c (perform_member_init, build_new_1, build_new): Likewise.
1616	* decl.c (warn_extern_redeclared_static, duplicate_decls,
1617	* identify_goto, check_previous_goto_1, check_goto, define_label,
1618	check_tag_decl, start_decl, check_class_member_definition_namespace,
1619	grokfndecl, grokdeclarator): Likewise.
1620	* except.c (check_handlers): Likewise.
1621	* typeck2.c (digest_init): Likewise.
1622	* pt.c (check_specialization_namespace,
1623	check_explicit_instantiation_namespace,
1624	maybe_process_partial_specialization, check_explicit_specialization,
1625	convert_template_argument, do_decl_instantiation,
1626	do_type_instantiation, instantiate_decl): Likewise.
1627	* semantics.c (finish_template_type_parm): Likewise.
1628	* name-lookup.c (pushdecl_maybe_friend,
1629	check_for_out_of_scope_variable): Likewise.
1630	* decl2.c (finish_static_data_member_decl, build_anon_union_vars,
1631	coerce_new_type): Likewise.
1632	* parser.c (cp_parser_nested_name_specifier_opt,
1633	cp_parser_mem_initializer, cp_parser_elaborated_type_specifier,
1634	cp_parser_class_head, cp_parser_check_class_key): Likewise.
1635	(cp_parser_parameter_declaration): Check flag_permissive instead of
1636	flag_pedantic_errors.
1637	* call.c (joust): Change pedwarn to warning.
1638	* friend.c (make_friend_class): Likewise.
1639
16402008-06-16  Jan Hubicka  <jh@suse.cz>
1641
1642	* method.c: Include cgraph.h.
1643	(use_thunk): Use cgraph_add_new_function instead of calling backend
1644	directly.
1645
16462008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1647
1648	* parser.c: Fix comment typo.
1649
16502008-06-14  Simon Martin  <simartin@users.sourceforge.net>
1651
1652	PR c++/35320
1653	* decl2.c (grokbitfield): Receive the list of attributes, pass it to
1654	grokdeclarator and apply it to the created declaration.
1655	* cp-tree.h (grokbitfield): Update prototype.
1656	* parser.c (cp_parser_member_declaration): Don't apply the attributes
1657	since they are now applied in grokbitfield. Adjusted the call to
1658	grokbitfield.
1659	(cp_parser_objc_class_ivars): Likewise.
1660
16612008-06-14  Simon Martin  <simartin@users.sourceforge.net>
1662
1663	PR c++/35317
1664	* class.c (type_requires_array_cookie): Do not consider delete[]
1665	operators with an ellipsis as second argument.
1666
16672008-06-09  Jakub Jelinek  <jakub@redhat.com>
1668
1669	PR c++/36408
1670	* semantics.c (stmt_expr_value_expr): Don't crash on empty
1671	STATEMENT_LIST.
1672
16732008-06-08  Paolo Carlini  <paolo.carlini@oracle.com>
1674
1675	 PR c++/35242
1676	 * pt.c (maybe_process_partial_specialization): Check the tree
1677	returned by push_template_decl for error_mark_node.
1678	* parser.c (cp_parser_class_head): Likewise, check the tree
1679	returned by the latter.
1680
16812008-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
1682
1683	 PR c++/35327
1684	 * decl.c (grokdeclarator): In case of wrong return type return
1685	immediately error_mark_node.
1686
16872008-06-06  Jakub Jelinek  <jakub@redhat.com>
1688
1689	* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
1690	dependent_omp_for_p, begin_omp_task, finish_omp_task,
1691	finish_omp_taskwait): New prototypes.
1692	(cxx_omp_clause_default_ctor): Add outer argument.
1693	(finish_omp_for): Add new clauses argument.
1694	* cp-gimplify.c (cxx_omp_finish_clause): New function.
1695	(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
1696	(cxx_omp_clause_default_ctor): Add outer argument.
1697	(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1698	* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1699	* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
1700	Add par_clauses argument.  If decl is present in parallel's
1701	lastprivate clause, change that clause to shared and add
1702	a lastprivate clause for decl to OMP_FOR_CLAUSES.
1703	Fix wording of error messages.  Adjust finish_omp_for caller.
1704	Add clauses argument.  Parse loops with random access iterators.
1705	(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
1706	functions.
1707	(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
1708	cp_parser_omp_for_loop callers.
1709	(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
1710	functions.
1711	(cp_parser_omp_clause_name): Handle collapse and untied
1712	clauses.
1713	(cp_parser_omp_clause_schedule): Handle auto schedule.
1714	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1715	and PRAGMA_OMP_CLAUSE_UNTIED.
1716	(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
1717	(OMP_TASK_CLAUSE_MASK): Define.
1718	(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
1719	(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1720	(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
1721	PRAGMA_OMP_TASKWAIT.
1722	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1723	OMP_CLAUSE_UNTIED.  Handle OMP_CLAUSE_LASTPRIVATE_STMT.
1724	(tsubst_omp_for_iterator): New function.
1725	(dependent_omp_for_p): New function.
1726	(tsubst_expr) <case OMP_FOR>: Use it.  Handle collapsed OMP_FOR
1727	loops.  Adjust finish_omp_for caller.  Handle loops with random
1728	access iterators.  Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1729	(tsubst_expr): Handle OMP_TASK.
1730	* semantics.c (cxx_omp_create_clause_info): New function.
1731	(finish_omp_clauses): Call it.  Handle OMP_CLAUSE_UNTIED and
1732	OMP_CLAUSE_COLLAPSE.
1733	(cxx_omp_predetermined_sharing): Removed.
1734	* semantics.c (finish_omp_for): Allow pointer iterators.  Use
1735	handle_omp_for_class_iterator and dependent_omp_for_p.  Handle
1736	collapsed for loops.  Adjust c_finish_omp_for caller.  Add new
1737	clauses argument.  Fix check for type dependent cond or incr.
1738	Set OMP_FOR_CLAUSES to clauses.  Use cp_convert instead of
1739	fold_convert to convert incr amount to difference_type.  Only
1740	fold if not in template.  If decl is mentioned in lastprivate
1741	clause, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle loops with random
1742	access iterators.  Adjust for OMP_FOR_{INIT,COND,INCR}
1743	changes.
1744	(finish_omp_threadprivate): Allow static class members of the
1745	current class.
1746	(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
1747	finish_omp_taskwait): New functions.
1748
1749	* parser.c (cp_parser_binary_expression): Add prec argument.
1750	(cp_parser_assignment_expression): Adjust caller.
1751	* cp-tree.h (outer_curly_brace_block): New prototype.
1752	* decl.c (outer_curly_brace_block): No longer static.
1753
17542008-06-02  Paolo Carlini  <paolo.carlini@oracle.com>
1755
1756	 PR c++/36404
1757	 * pt.c (push_template_decl_real): Consistently return error_mark_node
1758	on error.
1759
17602008-06-02  Tomas Bily  <tbily@suse.cz>
1761
1762	 * typeck.c (is_bitfield_expr_with_lowered_type): Use CASE_CONVERT.
1763	 (cp_build_unary_op): Likewise.
1764	 (cp_build_indirect_ref): Use CONVERT_EXPR_P.
1765	 (maybe_warn_about_returning_address_of_local): Likewise.
1766
17672008-05-29  Paolo Carlini  <paolo.carlini@oracle.com>
1768
1769	 PR c++/35243
1770	 * pt.c (tsubst_initializer_list): Consistently check the tree
1771	 returned by tsubst_pack_expansion for error_mark_node.
1772
17732008-05-27  Michael Matz  <matz@suse.de>
1774
1775	PR c++/27975
1776	* call.c (build_new_op): Make warning conditional on
1777	OPT_Wenum_compare.
1778
17792008-05-27  Alexandre Oliva  <aoliva@redhat.com>
1780
1781	PR c++/35909
1782	* call.c (convert_like_real): Convert bitfield to desired type
1783	before creating temporary.
1784
17852008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1786
1787	* Makefile.in: Adjusted dependencies on c-incpath.o.
1788
17892008-05-23  Jakub Jelinek  <jakub@redhat.com>
1790
1791	PR c++/36237
1792	* cp-gimplify.c (cxx_omp_clause_apply_fn): Call
1793	fold_build_cleanup_point_expr on build_call_a results.
1794
1795	PR c++/36308
1796	* semantics.c (omp_clause_info_fndecl): New function.
1797	(finish_omp_clauses): Use it.
1798
17992008-05-21  Jakub Jelinek  <jakub@redhat.com>
1800
1801	PR c++/36023
1802	* cp-tree.h (check_array_initializer): New prototype.
1803	* decl.c (check_array_initializer): New function.
1804	(check_initializer): Call it.
1805	* semantics.c (finish_compound_literal): Call it for ARRAY_TYPEs.
1806
18072008-05-21  Tom Tromey  <tromey@redhat.com>
1808
1809	* mangle.c (save_partially_mangled_name): Remove.
1810	(restore_partially_mangled_name): Likewise.
1811	(write_encoding): Update.
1812	(write_unqualified_name): Likewise.
1813	(start_mangling): Always use name_obstack.  Remove 'ident_p'
1814	argument.
1815	(get_identifier_nocopy): Remove.
1816	(finish_mangling_internal): Rename from finish_mangling.
1817	(finish_mangling): New function.
1818	(finish_mangling_get_identifier): Likewise.
1819	(partially_mangled_name, partially_mangled_name_len): Remove.
1820	(mangle_decl_string): Change return type.  Update.
1821	(mangle_decl, mangle_type_string, mangle_special_for_type,
1822	mangle_ctor_vtbl_for_type, mangle_thunk, mangle_guard_variable,
1823	mangle_ref_init_variable): Update.
1824
18252008-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
1826
1827	 PR c++/35331
1828	 * semantics.c (begin_class_definition): Extend checks on the first
1829	argument.
1830
18312008-05-12  Tomas Bily  <tbily@suse.cz>
1832
1833	 * typeck2.c (digest_init): Use CONVERT_EXPR_P.
1834	 * call.c (build_over_call): Likewise.
1835	 * error.c (dump_expr): Use CASE_CONVERT.
1836	 * class.c (fixed_type_or_null): Likewise.
1837
18382008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1839
1840	* parser.c (cp_parser_omp_clause_reduction): Add missing "expected"
1841	in error message.
1842	(cp_parser_omp_clause_schedule): Remove superfluous "expected"
1843	in error message.
1844
18452008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
1846
1847	* decl.c (duplicate_decls): Merge in DECL_PURE_P, TREE_READONLY,
1848	DECL_LOOPING_CONST_OR_PURE_P attributes.
1849	* rtti.c (build_dynamic_cast_1): Rename DECL_IS_PURE to
1850	DECL_PURE_P.
1851
18522008-05-02  Simon Baldwin  <simonb@google.com>
1853
1854	PR bootstrap/36108
1855	* typeck.c (build_array_ref): Remove warn_array_subscript_range.
1856
18572008-05-01  Simon Baldwin  <simonb@google.com>
1858
1859	* typeck.c (build_array_ref): Call warn_array_subscript_range.
1860
18612008-04-30  Jakub Jelinek  <jakub@redhat.com>
1862
1863	PR c++/35986
1864	* pt.c (more_specialized_fn): Stop the loop even if there are no
1865	arguments before ellipsis.
1866
18672008-04-29  Jakub Jelinek  <jakub@redhat.com>
1868
1869	PR c++/35650
1870	* parser.c (cp_parser_lookup_name): Look through single function
1871	OVERLOAD.
1872
1873	PR c++/35987
1874	* typeck.c (cp_build_modify_expr) <case PREINCREMENT_EXPR>: Don't build
1875	COMPOUND_EXPR if the second argument would be error_mark_node.
1876
18772008-04-28  Jason Merrill  <jason@redhat.com>
1878	    Liu Guanwei <liu_gw@163.com>
1879
1880	PR c++/57
1881	* parser.c (cp_parser_parameter_declaration): Handle < ambiguity
1882	in default arguments.
1883
18842008-04-25  Jan Hubicka  <jh@suse.cz>
1885
1886	* typeck.c (check_return_expr): Update.
1887	* decl.c (start_preparsed_function): Update.
1888	* method.c (use_thunk): Update.
1889
18902008-04-24  Jakub Jelinek  <jakub@redhat.com>
1891
1892	PR c++/35758
1893	* cp-tree.h (cp_reconstruct_complex_type): New prototype.
1894	* cp-objcp-common.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
1895	* decl2.c (is_late_template_attribute): Only make vector_size
1896	late tmpl attribute if argument is type or value dependent.
1897	(cp_reconstruct_complex_type): New function.
1898
18992008-04-24  Richard Guenther  <rguenther@suse.de>
1900
1901	* typeck.c (cp_build_function_call): Call
1902	check_builtin_function_arguments.
1903
19042008-04-23  Paolo Bonzini  <bonzini@gnu.org>
1905
1906	* typeck.c (get_member_function_from_ptrfunc): Don't set TREE_INVARIANT.
1907	(build_ptrmemfunc1): Don't set TREE_INVARIANT.
1908	* init.c (build_zero_init): Don't set TREE_INVARIANT.
1909	* class.c (build_base_path): Don't set TREE_INVARIANT.
1910	(build_vtbl_ref_1): Don't set TREE_INVARIANT.
1911	(build_vtbl_initializer): Don't set TREE_INVARIANT.
1912	* decl.c (build_enumerator): Don't set TREE_INVARIANT.
1913	* rtti.c (tinfo_base_init): Don't set TREE_INVARIANT.
1914	(generic_initializer): Don't set TREE_INVARIANT.
1915	(ptr_initializer): Don't set TREE_INVARIANT.
1916	(ptm_initializer): Don't set TREE_INVARIANT.
1917	(class_initializer): Don't set TREE_INVARIANT.
1918	* typeck2.c (process_init_constructor): Don't set TREE_INVARIANT.
1919	* pt.c (push_inline_template_parms_recursive): Don't set TREE_INVARIANT.
1920	(build_template_parm_index): Don't set TREE_INVARIANT.
1921	(reduce_template_parm_level): Don't set TREE_INVARIANT.
1922	(process_template_parm): Don't set TREE_INVARIANT.
1923
19242008-04-22  Jason Merrill  <jason@redhat.com>
1925
1926	PR c++/35316
1927	* semantics.c (finish_decltype_type): Check DECL_BIT_FIELD_TYPE
1928	to see if DECL_BIT_FIELD_TYPE should be used, not some other flag.
1929	* typeck.c (is_bitfield_expr_with_lowered_type): Likewise.
1930
19312008-04-22  Jakub Jelinek  <jakub@redhat.com>
1932
1933	PR c++/35747
1934	* semantics.c (finish_stmt_expr): Call pop_stmt_list even if the stmt
1935	expression is errorneous.
1936
19372008-04-21  Jason Merrill  <jason@redhat.com>
1938
1939	PR c++/35325
1940	* tree.c (cp_tree_equal): Handle FIXED_CST.
1941
1942	PR c++/35678
1943	* pt.c (template_template_parm_bindings_ok_p): Set
1944	processing_template_decl while in this function.
1945
19462008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
1947
1948	* cvt.c (type_promotes_to): Support char16_t and char32_t.
1949	* decl.c (grokdeclarator): Disallow signed/unsigned/short/long on
1950	char16_t and char32_t.
1951	* lex.c (reswords): Add char16_t and char32_t (for c++0x).
1952	* mangle.c (write_builtin_type): Mangle char16_t/char32_t as vendor
1953	extended builtin type "u8char{16,32}_t".
1954	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Support
1955	RID_CHAR{16,32}.
1956	(cp_lexer_print_token): Support CPP_STRING{16,32}.
1957	(cp_parser_is_string_literal): Idem.
1958	(cp_parser_string_literal): Idem.
1959	(cp_parser_primary_expression): Support CPP_CHAR{16,32} and
1960	CPP_STRING{16,32}.
1961	(cp_parser_simple_type_specifier): Support RID_CHAR{16,32}.
1962	* tree.c (char_type_p): Support char16_t and char32_t as char types.
1963	* typeck.c (string_conv_p): Support char16_t and char32_t.
1964
19652008-04-17  Jason Merrill  <jason@redhat.com>
1966
1967	PR c++/35773
1968	* call.c (build_user_type_conversion_1): Represent second step of
1969	copy-init with an rvalue conversion.
1970	(convert_like_real) [ck_user]: Don't implicitly add it here.
1971
19722008-04-15  Jakub Jelinek  <jakub@redhat.com>
1973
1974	PR c/35751
1975	* decl.c (layout_var_decl): If extern or static var has variable
1976	size, set TREE_TYPE (decl) to error_mark_node.
1977
19782008-04-16  Danny Smith  <dannysmith@users.sourceforge.net>
1979
1980	PR target/35921
1981	* optimize.c (maybe_clone_body): Copy DECL_DLLIMPORT_P flag
1982	to clone.
1983
19842008-04-09  Jason Merrill  <jason@redhat.com>
1985
1986	PR c++/35708
1987	* semantics.c (finish_compound_literal): Return a TARGET_EXPR,
1988	not a pushed variable.
1989
19902008-04-09  Volker Reichelt  <v.reichelt@netcologne.de>
1991
1992	* call.c (build_op_delete_call): Fix quotation in warning message.
1993	* decl.c (grokdeclarator): Quote keyword in error message.
1994	* pt.c (check_for_bare_parameter_packs): Fix quotation in error
1995	message.
1996
1997	* parser.c (cp_parser_check_type_definition): Print error string
1998	directly rather than using "%s".
1999	(cp_parser_postfix_expression): Fix quotation.
2000	(cp_parser_decltype): Likewise.
2001	(cp_parser_sizeof_operand): Fix quotation. Simplify.
2002
2003	* parser.c (cp_parser_non_integral_constant_expression): Build error
2004	message with CONCAT rather than using "%s".
2005	(cp_parser_primary_expression): Fix quotation.
2006	(cp_parser_postfix_expression): Likewise.
2007	(cp_parser_postfix_dot_deref_expression): Likewise.
2008	(cp_parser_unary_expression): Likewise.
2009	(cp_parser_new_expression): Likewise.
2010	(cp_parser_delete_expression): Likewise.
2011
2012	* parser.c (cp_parser_asm_specification_opt): Print CPP_CLOSE_PAREN
2013	as `)', not as `('.  Fix quotation.
2014	(cp_parser_consume_semicolon_at_end_of_statement): Fix quotation.
2015	(cp_parser_primary_expression): Likewise.
2016	(cp_parser_nested_name_specifier_opt): Likewise.
2017	(cp_parser_postfix_expression): Likewise.
2018	(cp_parser_postfix_open_square_expression): Likewise.
2019	(cp_parser_parenthesized_expression_list): Likewise.
2020	(cp_parser_pseudo_destructor_name): Likewise.
2021	(cp_parser_new_expression): Likewise.
2022	(cp_parser_direct_new_declarator): Likewise.
2023	(cp_parser_delete_expression): Likewise.
2024	(cp_parser_cast_expression): Likewise.
2025	(cp_parser_question_colon_clause): Likewise.
2026	(cp_parser_builtin_offsetof): Likewise.
2027	(cp_parser_trait_expr): Likewise.
2028	(cp_parser_label_for_labeled_statement): Likewise.
2029	(cp_parser_compound_statement): Likewise.
2030	(cp_parser_selection_statement): Likewise.
2031	(cp_parser_condition): Likewise.
2032	(cp_parser_iteration_statement): Likewise.
2033	(cp_parser_already_scoped_statement): Likewise.
2034	(cp_parser_simple_declaration): Likewise.
2035	(cp_parser_linkage_specification): Likewise.
2036	(cp_parser_static_assert): Likewise.
2037	(cp_parser_decltype): Likewise.
2038	(cp_parser_conversion_function_id): Likewise.
2039	(cp_parser_operator_function_id): Likewise.
2040	(cp_parser_operator): Likewise.
2041	(cp_parser_type_parameter): Likewise.
2042	(cp_parser_template_id): Likewise.
2043	(cp_parser_explicit_instantiation): Likewise.
2044	(cp_parser_explicit_specialization): Likewise.
2045	(cp_parser_enum_specifier): Likewise.
2046	(cp_parser_namespace_definition): Likewise.
2047	(cp_parser_namespace_alias_definition): Likewise.
2048	(cp_parser_using_declaration): Likewise.
2049	(cp_parser_using_directive): Likewise.
2050	(cp_parser_asm_definition): Likewise.
2051	(cp_parser_direct_declarator): Likewise.
2052	(cp_parser_ptr_operator): Likewise.
2053	(cp_parser_parameter_declaration_clause): Likewise.
2054	(cp_parser_initializer_clause): Likewise.
2055	(cp_parser_class_specifier): Likewise.
2056	(cp_parser_member_specification_opt): Likewise.
2057	(cp_parser_member_declaration): Likewise.
2058	(cp_parser_pure_specifier): Likewise.
2059	(cp_parser_constant_initializer): Likewise.
2060	(cp_parser_base_clause): Likewise.
2061	(cp_parser_exception_specification_opt): Likewise.
2062	(cp_parser_try_block): Likewise.
2063	(cp_parser_function_try_block): Likewise.
2064	(cp_parser_handler): Likewise.
2065	(cp_parser_throw_expression): Likewise.
2066	(cp_parser_asm_operand_list): Likewise.
2067	(cp_parser_attributes_opt): Likewise.
2068	(cp_parser_label_declaration): Likewise.
2069	(cp_parser_constructor_declarator_p): Likewise.
2070	(cp_parser_template_declaration_after_export): Likewise.
2071	(cp_parser_single_declaration): Likewise.
2072	(cp_parser_objc_message_expression): Likewise.
2073	(cp_parser_objc_message_args): Likewise.
2074	(cp_parser_objc_encode_expression): Likewise.
2075	(cp_parser_objc_defs_expression): Likewise.
2076	(cp_parser_objc_protocol_expression): Likewise.
2077	(cp_parser_objc_selector_expression): Likewise.
2078	(cp_parser_objc_protocol_refs_opt): Likewise.
2079	(cp_parser_objc_typename): Likewise.
2080	(cp_parser_objc_method_keyword_params): Likewise.
2081	(cp_parser_objc_superclass_or_category): Likewise.
2082	(cp_parser_objc_try_catch_finally_statement): Likewise.
2083	(cp_parser_objc_synchronized_statement): Likewise.
2084	(cp_parser_objc_throw_statement): Likewise.
2085	(cp_parser_omp_var_list_no_open): Likewise.
2086	(cp_parser_omp_clause_default): Likewise.
2087	(cp_parser_omp_clause_if): Likewise.
2088	(cp_parser_omp_clause_num_threads): Likewise.
2089	(cp_parser_omp_clause_reduction): Likewise.
2090	(cp_parser_omp_clause_schedule): Likewise.
2091	(cp_parser_omp_critical): Likewise.
2092	(cp_parser_omp_for_loop): Likewise.
2093	(cp_parser_omp_sections_scope): Likewise.
2094
2095	* parser.c (cp_parser_template_parameter_list): Simplify.
2096
20972008-04-07  James E. Wilson  <wilson@tuliptree.org>
2098
2099	* pt.c (tsubst_copy, case SIZEOF_EXPR): Initialize len.
2100
21012008-04-07  Jason Merrill  <jason@redhat.com>
2102
2103	PR c++/35734
2104	* class.c (type_has_user_nondefault_constructor): A template
2105	counts as a nondefault constructor.
2106
21072008-04-04  Paolo Bonzini  <bonzini@gnu.org>
2108
2109	* decl.c (cxx_push_function_context): Delete.
2110	(cxx_pop_function_context): Delete.
2111	(start_preparsed_function): Merge cxx_push_function_context (!f->decl
2112	code only).
2113	* cp-objcp-common.h (LANG_HOOKS_FUNCTION_INIT,
2114	LANG_HOOKS_FUNCTION_FINAL): Delete.
2115	(LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P): Rename to
2116	LANG_HOOKS_MISSING_NORETURN_OK_P.
2117	* cp-tree.h (cxx_push_function_context, cxx_pop_function_context):
2118	Delete prototype.
2119	* semantics.c (current_stmt_tree): Fix comment.
2120
21212008-04-03  Jakub Jelinek  <jakub@redhat.com>
2122
2123	PR c++/35741
2124	* semantics.c (finish_offsetof): Undo effect of convert_from_reference
2125	before calling fold_offsetof.
2126
21272008-04-03  Tom Tromey  <tromey@redhat.com>
2128
2129	* Make-lang.in (c++_OBJS): New variable.
2130
21312008-04-03  Paolo Bonzini  <bonzini@gnu.org>
2132
2133	* optimize.c (clone_body): New, from tree-inline.c.
2134
21352008-04-03  Paolo Bonzini  <bonzini@gnu.org>
2136
2137	 * method.c (synthesize_method): Use {push,pop}_function_context.
2138	 * name-lookup.c (push_to_top_level): Likewise.
2139	 * parser.c (cp_parser_late_parsing_for_member): Likewise.
2140
21412008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
2142
2143	PR c++/35578
2144	* parser.c (cp_parser_decl_specifier_seq): Add location to error
2145	message.
2146
21472008-03-27  Tom Tromey  <tromey@redhat.com>
2148
2149	* Make-lang.in: Revert automatic dependency patch.
2150
21512008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
2152
2153	PR obj-c++/35704
2154	* typeck.c (build_x_compound_expr): Use cp_build_compound_expr.
2155	(build_compound_expr): New, for compatibility with C
2156	build_compound_expr.
2157	(cp_build_compound_expr): Renamed from build_compound_expr.
2158	(build_c_cast): New, for compatibility with C build_c_cast.
2159	(cp_build_c_cast): Renamed from build_c_cast.
2160	* init.c (build_vec_delete_1): Fix calls to build_compound_expr.
2161	* decl.c (cxx_maybe_build_cleanup): Ditto.
2162	* cp-tree.h (build_compound_expr): Add C-compatibile prototype.
2163	(cp_build_compound_expr): Renamed from build_compound_expr.
2164	(build_c_cast): Add C-compatible prototype.
2165	(cp_build_c_cast): Renamed from build_c_cast.
2166	* typeck2.c (build_functional_cast): Use cp_build_c_cast.
2167	* parser.c (cp_parser_cast_expression): Fix call to build_c_cast.
2168
21692008-03-27  Douglas Gregor  <doug.gregor@gmail.com>
2170
2171	* pt.c (tsubst_copy) <case SIZEOF_EXPR>: Cope with
2172	tsubst_pack_expansion returning a pack expansion, or a TREE_VEC
2173	ending in a pack expansion, both of which can occur when
2174	substituting into a nested template.
2175	(tsubst_copy_and_build) <case SIZEOF_EXPR>: When we're
2176	instantiating the sizeof...(X) form, make tsubst_copy do the work.
2177	* parser.c (cp_parser_template_parameter): Deal with unnamed
2178	non-type template parameter packs identified by pack expansions in
2179	the parameter type.
2180
21812008-03-26  Jakub Jelinek  <jakub@redhat.com>
2182
2183	PR c++/35546
2184	* pt.c (apply_late_template_attributes): Don't call tsubst on
2185	first attribute argument if it is IDENTIFIER_NODE.
2186
2187	PR c++/35332
2188	* error.c (dump_expr): Pass {,UN}ORDERED_EXPR, UN{LT,LE,GT,GE,EQ}_EXPR
2189	and LTGT_EXPR to pp_expression.
2190
21912008-03-26  Douglas Gregor  <doug.gregor@gmail.com>
2192
2193	* pt.c (coerce_template_template_parm): Moved the body of the loop
2194	of coerce_template_template_parms here, to make iteration over a
2195	template argument pack simpler.
2196	Also, allow matching of a template parameter pack in the template
2197	template parameter to a template parameter in the template
2198	template argument.
2199	(coerce_template_template_parms): Deal with variadic template
2200	template parameters. Use coerce_template_template_parm.
2201	(unify): Make sure we coerce the template template argument's
2202	template arguments to the template template parameter's template
2203	parameters, not the other way around.
2204
22052008-03-25  Tom Tromey  <tromey@redhat.com>
2206
2207	* Make-lang.in: Remove .o targets.
2208	(cp/g++spec.o): Moved to cp/.  Reduce to variable setting.
2209	(GXX_OBJS): Update.
2210	(c++_OBJS): New variable.
2211	(CXX_TREE_H, CXX_PRETTY_PRINT_H): Remove.
2212
22132008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
2214
2215	* typeck.c (composite_pointer_type_r): Add SFINAE support.
2216	(composite_pointer_type): Ditto.
2217	(common_type): Fix call to composite_pointer_type.
2218	(cxx_sizeof_nowarn): New; used to be a macro.
2219	(cxx_sizeof_expr): Add SFINAE support.
2220	(cxx_alignof_expr): Ditto.
2221	(decay_conversion): Fix calls for SFINAE support.
2222	(rationalize_conditional_expr): Add SFINAE support.
2223	(build_class_member_access_expr): Ditto.
2224	(finish_class_member_access_expr): Ditto.
2225	(build_x_indirect_ref): Ditto.
2226	(build_indirect_ref): Original version renamed to
2227	cp_build_indirect_ref; new version provides a bridge from
2228	c-common.
2229	(cp_build_indirect_ref): Was build_indirect_ref; added SFINAE
2230	support.
2231	(get_member_function_from_ptrfunc): Fix calls for SFINAE support.
2232	(build_function_call): Original version renamed to
2233	cp_build_function_call; new version provides a bridge from
2234	c-common.
2235	(cp_build_function_call): Was build_function_call; added SFINAE
2236	support.
2237	(convert_arguments): Add SFINAE support.
2238	(build_x_binary_op): Ditto.
2239	(build_binary_op): Original version renamed to cp_build_binary_op;
2240	new version provides a bridge from c-common.
2241	(cp_build_binary_op): Was build_binary_op; added SFINAE support.
2242	(pointer_diff): Fix calls for SFINAE.
2243	(build_x_unary_op): Add SFINAE support.
2244	(condition_conversion): Fix calls for SFINAE.
2245	(build_unary_op): Original version renamed to cp_build_unary_op;
2246	new version provides a bridge from c-common.
2247	(cp_build_unary_op): Was build_unary_op; added SFINAE support.
2248	(unary_complex_lvalue): Fix calls for SFINAE.
2249	(build_x_conditional_expr): Add SFINAE support.
2250	(build_x_compound_expr_from_list): Fix calls for SFINAE.
2251	(build_x_compound_expr): Add SFINAE support.
2252	(convert_ptrmem): Fix calls for SFINAE.
2253	(build_static_cast_1): Add SFINAE support.
2254	(build_static_cast): Ditto.
2255	(build_reinterpret_cast_1): Ditto.
2256	(build_reinterpret_cast): Ditto.
2257	(build_const_cast_1): Ditto.
2258	(build_const_cast): Ditto.
2259	(build_c_cast): Ditto.
2260	(build_modify_expr): Original version renamed to
2261	cp_build_modify_expr; new version provides a bridge from c-common.
2262	(cp_build_modify_expr): Was build_modify_expr; added SFINAE
2263	support.
2264	(build_x_modify_expr): Add SFINAE support.
2265	(build_ptrmemfunc): Fix calls for SFINAE.
2266	(convert_for_assignment): Add SFINAE support.
2267	(convert_for_initialization): Ditto.
2268	(check_return_expr): Fix calls for SFINAE.
2269	(lvalue_or_else): Add SFINAE support.
2270	* init.c (perform_member_init): Fix calls for SFINAE.
2271	(emit_mem_initializers): Ditto.
2272	(expand_virtual_init): Ditto.
2273	(expand_cleanup_for_base): Ditto.
2274	(build_aggr_init): Add SFINAE support.
2275	(expand_default_init): Ditto.
2276	(expand_aggr_init_1): Fix calls for SFINAE.
2277	(build_offset_ref): Ditto.
2278	(build_new_1): Add SFINAE support.
2279	(build_new): Ditto.
2280	(build_vec_delete_1): Fix calls for SFINAE.
2281	(get_temp_regvar): Ditto.
2282	(build_vec_init): Add SFINAE support.
2283	(build_dtor_call): Fix calls for SFINAE.
2284	(build_delete): Ditto.
2285	(push_base_cleanups): Ditto.
2286	(build_vec_delete_1): Ditto.
2287	* class.c (build_base_path): Fix calls for SFINAE.
2288	(build_simple_base_path): Ditto.
2289	(convert_to_base_statically): Ditto.
2290	(build_vfn_ref): Ditto.
2291	(resolve_address_of_overloaded_function): Ditto.
2292	* decl.c (check_initializer): Fix calls for SFINAE.
2293	(register_dtor_fn): Ditto.
2294	(compute_array_index_type): Ditto.
2295	(finish_enum): Ditto.
2296	(start_preparsed_function): Ditto.
2297	(cxx_maybe_build_cleanup): Ditto.
2298	* call.c (convert_like): Add COMPLAIN argument.
2299	(convert_like_with_context): Ditto.
2300	(build_this): Fix calls for SFINAE.
2301	(build_user_type_conversion): Ditto.
2302	(resolve_args): Ditto.
2303	(build_new_function_call): Add SFINAE support.
2304	(build_operator_new_call): Fix calls for SFINAE.
2305	(build_object_call): Add SFINAE support.
2306	(build_conditional_expr): Ditto.
2307	(build_new_op): Ditto.
2308	(build_op_delete_call): Fix calls for SFINAE.
2309	(build_temp): Ditto.
2310	(convert_like_real): Add SFINAE support.
2311	(build_x_va_arg): Fix calls for SFINAE.
2312	(convert_default_arg): Ditto.
2313	(build_over_call): Add SFINAE support.
2314	(build_java_interface_fn_ref): Fix calls for SFINAE.
2315	(build_special_member_call): Add SFINAE support.
2316	(build_new_method_call): Ditto.
2317	(perform_implicit_conversion): Ditto.
2318	(perform_direct_initialization_if_possible): Ditto.
2319	(initialize_reference): Fix calls for SFINAE.
2320	* method.c (do_build_assign_ref): Fix calls for SFINAE.
2321	* rtti.c (build_headof): Fix calls for SFINAE.
2322	(get_tinfo_decl_dynamic): Ditto.
2323	(get_typeid): Ditto.
2324	(build_dynamic_cast_1): Add SFINAE support.
2325	(build_dynamic_cast): Ditto.
2326	(tinfo_base_init): Fix calls for SFINAE.
2327	* except.c (do_get_exception_ptr): Fix calls for SFINAE.
2328	(do_end_catch): Ditto.
2329	(initialize_handler_parm): Ditto.
2330	(expand_start_catch_block): Ditto.
2331	(do_allocate_exception): Ditto.
2332	(do_free_exception): Ditto.
2333	(build_throw): Ditto.
2334	* cvt.c (build_up_reference): Fix calls for SFINAE.
2335	(convert_to_reference): Ditto.
2336	(ocp_convert): Ditto.
2337	(convert_to_void): Add SFINAE support.
2338	* tree.c (build_dummy_object): Fix calls for SFINAE.
2339	(stabilize_expr): Ditto.
2340	* cp-tree.h (build_conditional_expr): Add tsubst_flags_t
2341	parameter.
2342	(build_new_method_call): Ditto.
2343	(build_special_member_call): Ditto.
2344	(build_new_op): Ditto.
2345	(perform_implicit_conversion): Ditto.
2346	(perform_direct_initialization_if_possible): Ditto.
2347	(convert_to_void): Ditto.
2348	(build_aggr_init): Ditto.
2349	(build_new): Ditto.
2350	(build_vec_init): Ditto.
2351	(build_dynamic_cast): Ditto.
2352	(finish_call_expr): Ditto
2353	(cxx_sizeof_or_alignof_expr): Add COMPLAIN parameter.
2354	(cxx_sizeof_nowarn): Remove macro; add function declaration.
2355	(build_class_member_access_expr): Add tsubst_flags_t parameter.
2356	(finish_class_member_access_expr): Ditto.
2357	(build_x_indirect_ref): Ditto.
2358	(cp_build_indirect_ref): New.
2359	(cp_build_function_call): Add tsubst_flags_t parameter.
2360	(build_x_unary_op): Ditto.
2361	(cp_build_unary_op): New.
2362	(build_x_conditional_expr): Add tsubst_flags_t parameter.
2363	(build_x_compound_expr): Ditto.
2364	(build_compound_expr): Ditto.
2365	(build_static_cast): Ditto.
2366	(build_reinterpret_cast): Ditto.
2367	(build_const_cast): Ditto.
2368	(build_c_cast): Ditto.
2369	(build_x_modify_expr): Ditto.
2370	(cp_build_modify_expr): New.
2371	(convert_for_initialization): Add tsubst_flags_t parameter.
2372	(cp_build_binary_op): Remove macro; add function declaration.
2373	(invalid_nonstatic_memfn_p): Add tsubst_flags_t parameter.
2374	(lvalue_or_else): Ditto.
2375	(build_functional_cast): Ditto.
2376	* typeck2.c (digest_init): Fix calls for SFINAE.
2377	(process_init_constructor_array): Ditto.
2378	(process_init_constructor_record): Ditto.
2379	(build_x_arrow): Ditto.
2380	(build_m_component_ref): Ditto.
2381	(build_functional_cast): Add SFINAE support.
2382	* pt.c (tsubst_copy_and_build): Add (more) SFINAE support.
2383	* semantics.c (simplify_loop_decl_cond): Fix calls for SFINAE.
2384	(finish_expr_stmt): Ditto.
2385	(finish_for_expr): Ditto.
2386	(finish_asm_stmt): Ditto.
2387	(finish_non_static_data_member): Ditto.
2388	(finish_qualified_id_expr): Ditto.
2389	(finish_call_expr): Add SFINAE support.
2390	(finish_increment_expr): Fix calls for SFINAE.
2391	(finish_unary_op_expr): Ditto.
2392	(simplify_aggr_init_expr): Ditto.
2393	(finish_omp_clauses): Ditto.
2394	(finish_omp_for): Ditto.
2395	(finish_omp_barrier): Ditto.
2396	(finish_omo_flush): Ditto.
2397	* decl2.c (grok_array_decl): Fix calls or SFINAE.
2398	(build_anon_union_vars): Ditto.
2399	(get_guard_cond): Ditto.
2400	(set_guard): Ditto.
2401	(one_static_initialization_or_destruction): Ditto.
2402	(do_static_initialization_or_destruction): Ditto.
2403	(generate_ctor_or_dtor_function): Ditto.
2404	(build_offset_ref_call_from_tree): Ditto.
2405	* parser.c (cp_parser_postfix_expression): Fix calls for SFINAE.
2406	(cp_parser_postfix_dot_deref_expression): Ditto.
2407	(cp_parser_unary_expression): Ditto.
2408	(cp_parser_new_expression): Ditto.
2409	(cp_parser_cast_expression): Ditto.
2410	(cp_parser_binary_expression): Ditto.
2411	(cp_parser_question_colon_clause): Ditto.
2412	(cp_parser_assignment_expression): Ditto.
2413	(cp_parser_expression): Ditto.
2414	(cp_parser_builtin_offsetof): Ditto.
2415	(cp_parser_template_argument): Ditto.
2416	(cp_parser_functional_cast): Ditto.
2417
24182008-03-24  Tom Tromey  <tromey@redhat.com>
2419
2420	* lex.c (handle_pragma_interface): Don't copy the filename.
2421	(handle_pragma_implementation): Copy filename using xstrdup.
2422
24232008-03-21  Paolo Carlini  <pcarlini@suse.de>
2424
2425	* cp-tree.h (IS_AGGR_TYPE): Rename to MAYBE_CLASS_TYPE_P.
2426	(SET_IS_AGGR_TYPE): Rename to SET_CLASS_TYPE_P.
2427	(IS_AGGR_TYPE_CODE): Rename to RECORD_OR_UNION_CODE_P.
2428	(PROMOTES_TO_AGGR_TYPE): Remove.
2429	(CLASS_TYPE_P, TYPE_NON_AGGREGATE_CLASS): Adjust.
2430	* typeck.c (unary_complex_lvalue, build_modify_expr,
2431	convert_for_initialization): Adjust.
2432	* init.c (is_aggr_type): Remove.
2433	(is_class_type): Add.
2434	(build_offset_ref, build_new_1, build_vec_delete_1, build_vec_init,
2435	build_delete): Adjust.
2436	* lex.c (make_aggr_type): Remove.
2437	(make_class_type): Add.
2438	(cxx_make_type): Adjust.
2439	* class.c (finish_struct_1, fixed_type_or_null, is_empty_class):
2440	Adjust.
2441	* decl.c (build_typename_type, make_typename_type,
2442	make_unbound_class_template, cxx_init_decl_processing,
2443	check_tag_decl, groktypename, start_decl_1, layout_var_decl,
2444	check_initializer, cp_finish_decl, build_ptrmemfunc_type, grokparms,
2445	grok_op_properties, xref_tag, check_function_type): Adjust.
2446	* call.c (check_dtor_name, standard_conversion, implicit_conversion,
2447	add_builtin_candidate, add_builtin_candidates,
2448	build_user_type_conversion_1, convert_like_real, build_cxx_call,
2449	is_subseq, compare_ics): Adjust.
2450	* method.c (use_thunk): Adjust.
2451	* rtti.c (build_dynamic_cast_1, create_pseudo_type_info,
2452	create_tinfo_types): Adjust.
2453	* cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
2454	build_up_reference, convert_to_reference, convert_from_reference,
2455	ocp_convert, build_expr_type_conversion): Adjust.
2456	* tree.c (bind_template_template_parm, error_type): Adjust.
2457	* dump.c (cp_dump_tree): Adjust.
2458	* search.c (lookup_member): Adjust.
2459	* friend.c (make_friend_class, do_friend): Adjust.
2460	* typeck2.c (store_init_value, process_init_constructor_array,
2461	process_init_constructor_record, build_x_arrow, build_m_component_ref,
2462	build_functional_cast): Adjust.
2463	* pt.c (finish_member_template_decl, process_template_parm,
2464	lookup_template_class, tsubst_function_type, tsubst,
2465	tsubst_copy_and_build, get_template_base, bt_instantiate_type_proc):
2466	Adjust.
2467	* semantics.c (begin_class_definition, finish_base_specifier,
2468	finish_typeof, cxx_omp_predetermined_sharing, finish_decltype_type):
2469	Adjust.
2470	* name-lookup.c (constructor_name_p, push_overloaded_decl,
2471	do_class_using_decl, lookup_qualified_name,
2472	maybe_process_template_type_declaration): Adjust.
2473	* decl2.c (grok_array_decl, check_member_template,
2474	constrain_class_visibility): Adjust.
2475	* parser.c (cp_parser_class_name): Adjust.
2476
24772008-03-18  Paolo Bonzini  <bonzini@gnu.org>
2478
2479	 * cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
2480
24812008-03-17  Jason Merrill  <jason@redhat.com>
2482
2483	PR c++/35548
2484	* call.c (reference_binding): Check LOOKUP_NO_TEMP_BIND when binding
2485	a temp directly to a reference as per DR391.
2486
24872008-03-12  Richard Guenther  <rguenther@suse.de>
2488
2489	PR c++/35469
2490	Revert:
2491	2008-02-04  Richard Guenther  <rguenther@suse.de>
2492
2493	 PR java/35035
2494	 * decl.c (record_builtin_java_type): Make jboolean a
2495	 integer type again where its mode doesn't match that of bool.
2496
2497	2008-01-25  Richard Guenther  <rguenther@suse.de>
2498
2499	 PR c++/33887
2500	 * decl.c (record_builtin_java_type): Make __java_boolean
2501	 a variant of bool.
2502	 * typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check
2503	 after TYPE_MAIN_VARIANT check.
2504
25052008-03-10  Jakub Jelinek  <jakub@redhat.com>
2506
2507	PR c++/35328
2508	* semantics.c (finish_omp_clauses): Look through NOP_EXPR even
2509	if errorcount.
2510
2511	PR c++/35337
2512	* semantics.c (finish_omp_clauses): Use %qD instead of %qE for
2513	DECL_P in not a variable and appears more than once error messages.
2514
25152008-03-07  Paolo Bonzini  <bonzini@gnu.org>
2516
2517	Revert:
2518
2519	2008-02-06  Douglas Gregor  <doug.gregor@gmail.com>
2520
2521	PR c++/35049
2522	PR c++/35096
2523	* typeck.c (structural_comptypes): Call cp_comptypes.
2524	(comptypes): New; called from the C/C++ common bits to perform
2525	strict checks.
2526	(cp_comptypes): Renamed from comptypes, which is already used,
2527	with a different signature, by the C++ front end.
2528	(build_reinterpret_cast_1): Call cp_comptypes.
2529	(ptr_reasonably_similar): Ditto.
2530	* decl.c (decls_match): Ditto.
2531	* cvt.c (convert_to_reference): Ditto.
2532	* cp-tree.h (same_type_p): Ditto.
2533	(same_or_base_type_p): Ditto.
2534	(comptypes): Rename to cp_comptypes.
2535	* pt.c (canonical_type_parameter): Call cp_comptypes.
2536
25372008-03-07  Paolo Bonzini  <bonzini@gnu.org>
2538
2539	* cp-objcp-common.c (cxx_types_compatible_p): Remove obsolete
2540	test for equivalence between pointer and references.
2541
25422008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2543
2544	PR 24924
2545	* class.c (finish_struct_anon): Use permerror instead of pedwarn.
2546	(check_field_decls): Likewise.
2547	(note_name_declared_in_class): Likewise.
2548	* call.c (build_new_op): Likewise.
2549	(convert_like_real): Likewise.
2550	(build_over_call): Likewise.
2551	* lex.c (unqualified_fn_lookup_error): Likewise.
2552	* parser.c (cp_parser_template_id): Likewise.
2553	* cvt.c (warn_ref_binding): Likewise.
2554	(convert_to_reference): Likewise.
2555	(ocp_convert): Likewise.
2556	(convert_to_void): Use error instead of pedwarn.
2557	* error.c (cp_cpp_error): Use pedantic_warning_kind.
2558	* decl.c (compute_array_index_type): Use constant_expression_error.
2559
25602008-03-01  Douglas Gregor  <doug.gregor@gmail.com>
2561
2562	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Note
2563	that auto is either a storage class or a simple type specifier,
2564	depending on the dialect.
2565	(cp_parser_decl_specifier_seq): Complain about `auto' as a storage
2566	specifier in C++98 mode, error in C++0x mode (since we don't
2567	support auto as a type specifier, yet).
2568	(cp_parser_storage_class_specifier_opt): Don't treat `auto' as a
2569	storage specifier in C++0x mode.
2570	(cp_parser_simple_type_specifier): Parse `auto' as a
2571	simple-type-specifier, but error because we don't support it yet.
2572
25732008-02-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2574
2575	* parser.c (cp_parser_nonclass_name): New.
2576	(cp_parser_pseudo_destructor_name): Use it instead of
2577	cp_parser_type_name.
2578	(cp_parser_type_name): Move code to cp_parser_nonclass_name.
2579
25802008-02-29  Tom Tromey  <tromey@redhat.com>
2581
2582	* parser.c (struct cp_token) <input_file_stack_index>: Remove.
2583	(cp_lexer_get_preprocessor_token): Update.
2584	(cp_lexer_set_source_position_from_token): Don't call
2585	restore_input_file_stack.
2586	* lex.c (cxx_init): Don't use push_srcloc or pop_srcloc.
2587
25882008-02-28  Richard Guenther  <rguenther@suse.de>
2589
2590	Revert:
2591	2008-02-26  Richard Guenther  <rguenther@suse.de>
2592
2593	* decl.c (duplicate_decls): Remove decl from global mapping
2594	before ggc_freeing it.
2595
25962008-02-27  Jakub Jelinek  <jakub@redhat.com>
2597
2598	PR c++/35368
2599	* rtti.c: Include c-pragma.h.
2600	(push_abi_namespace, pop_abi_namespace): New functions.
2601	(build_dynamic_cast_1, tinfo_base_init, get_pseudo_ti_index,
2602	create_tinfo_types, emit_support_tinfos): Use them.
2603	* Make-lang.in (cp/rtti.o): Depend on $(C_PRAGMA_H).
2604
26052008-02-26  Jason Merrill  <jason@redhat.com>
2606
2607	PR c++/35315
2608	* decl.c (grokdeclarator): Allow a typedef of an unnamed struct
2609	to name the struct for linkage purposes even if it has attributes.
2610	(start_decl): In that case, set ATTR_FLAG_TYPE_IN_PLACE.
2611
26122008-02-26  Tom Tromey  <tromey@redhat.com>
2613
2614	* parser.c (eof_token): Remove old location code.
2615	(check_empty_body): Remove test of USE_MAPPED_LOCATION.
2616	* decl2.c (generate_ctor_or_dtor_function): Remove old location
2617	code.
2618	(cp_write_global_declarations): Likewise.
2619	* lex.c (cxx_init): Remove old location code.
2620	(handle_pragma_implementation): Remove test of
2621	USE_MAPPED_LOCATION.
2622	* pt.c (tsubst): Remove old location code.
2623	* error.c (cp_print_error_function): Remove test of
2624	USE_MAPPED_LOCATION.
2625	* decl.c (pop_label): Remove old location code.
2626	(finish_function): Likewise.
2627
26282008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2629
2630	PR 26264
2631	* call.c (magic_varargs_p):  Remove BUILT_IN_STDARG_START.
2632
26332008-02-26  Richard Guenther  <rguenther@suse.de>
2634
2635	* decl.c (duplicate_decls): Remove decl from global mapping
2636	before ggc_freeing it.
2637
26382008-02-26  Paolo Carlini  <pcarlini@suse.de>
2639
2640	 PR c++/35323
2641	 * name-lookup.c (arg_assoc_type): Handle FIXED_POINT_TYPE.
2642
26432008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2644
2645	* typeck.c (build_class_member_access_expr): Add appropriate
2646	OPT_W* parameter to warning.
2647	(build_reinterpret_cast_1): Likewise.
2648	* name-lookup.c (push_overloaded_decl): Likewise.
2649
26502008-02-25  Paolo Carlini  <pcarlini@suse.de>
2651
2652	 PR c++/35333
2653	 * error.c (dump_expr): Handle CONJ_EXPR.
2654
26552008-02-25  Paolo Carlini  <pcarlini@suse.de>
2656
2657	 PR c++/35338
2658	 * error.c (dump_type): Handle FIXED_POINT_TYPE.
2659	(dump_expr): Handle FIXED_CST.
2660
26612008-02-24  Jason Merrill  <jason@redhat.com>
2662
2663	* parser.c (cp_parser_declaration): Handle "inline namespace".
2664	(cp_parser_namespace_definition): Likewise.
2665
2666	PR c++/33486
2667	* name-lookup.c (arg_assoc_namespace): Look down into inline
2668	namespaces, too.
2669
26702008-02-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2671
2672	* typeck.c (check_for_casting_away_constness): Use 1 single
2673	argument, the type of cast, to decide what diagnostics generate.
2674	(build_static_cast_1): Remove unused code. Update call to
2675	check_for_casting_away_constness.
2676	(build_reinterpret_cast_1): Update call to
2677	check_for_casting_away_constness.
2678	(build_const_cast_1): Likewise.
2679
26802008-02-24  Paolo Carlini  <pcarlini@suse.de>
2681
2682	* error.c (dump_expr): Don't deal directly with NEW_EXPR (and
2683	VEC_NEW_EXPR), forward to pp_expression.
2684	* cxx-pretty-print.c (pp_cxx_new_expression): Fix FIXME.
2685
26862008-02-24  Danny Smith  <dannysmith@users.sourceforge.net>
2687
2688	PR c++/34749
2689	* friend.c (do_friend): Call cplus_decl_attributes earlier.
2690
26912008-02-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2692
2693	PR C++/34715
2694	* decl.c (duplicate_decls): Merge DECL_DISREGARD_INLINE_LIMITS for
2695	template decls' function decl.
2696
26972008-02-22  Paolo Carlini  <pcarlini@suse.de>
2698
2699	PR c++/35282
2700	Revert:
2701	2008-02-14  Paolo Carlini  <pcarlini@suse.de>
2702
2703	 PR c++/28743
2704	 * pt.c (determine_specialization): In case of function templates,
2705	when the type of DECL does not match FN there is no match.
2706
27072008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2708
2709	PR c/19999
2710	* typeck.c (build_binary_op): Warn about floating point
2711	comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
2712
27132008-02-19  Jason Merrill  <jason@redhat.com>
2714
2715	PR c++/34950
2716	* pt.c (resolve_overloaded_unification): Set processing_template_decl
2717	while we look for possible bindings.
2718
27192008-02-19  Jakub Jelinek  <jakub@redhat.com>
2720
2721	PR c++/35028
2722	* cp-gimplify.c (cxx_omp_clause_apply_fn): Handle vararg copy ctors.
2723
2724	PR c++/34964
2725	PR c++/35244
2726	* semantics.c (finish_omp_threadprivate): Do nothing for error_operand_p
2727	vars.  Afterwards ensure v is VAR_DECL.
2728
2729	PR c++/35078
2730	* parser.c (cp_parser_omp_for_loop): If DECL has REFERENCE_TYPE, don't
2731	call cp_finish_decl.
2732	* semantics.c (finish_omp_for): Fail if DECL doesn't have integral type
2733	early.
2734
27352008-02-15  Douglas Gregor  <doug.gregor@gmail.com>
2736
2737	PR c++/35023
2738	PR c++/35024
2739	PR c++/35026
2740	* pt.c (finish_member_template_decl): If the type in a TYPE_DECL
2741	is error_mark_node, return an error early.
2742	(find_parameter_packs_r): Pass the pointer set along to recursive
2743	calls of cp_walk_subtrees; don't try to manage the pointer set
2744	ourselves.
2745	(uses_parameter_packs): Pass the pointer set to cp_walk_tree.
2746	(make_pack_expansion): Ditto.
2747	(check_for_bare_parameter_packs): Ditto. Also, don't bother taking
2748	a second pass through the tree with find_parameter_packs_r; that
2749	second pass no longer does anything.
2750	(push_template_decl_real): If we have an erroneous declaration,
2751	set its type to error_mark_node before returning an error.
2752
27532008-02-14  Douglas Gregor  <doug.gregor@gmail.com>
2754
2755	PR c++/34050
2756	* pt.c (tsubst_initializer_list): Deal with the use of
2757	VOID_TYPE_NODE to indicate value-initialization of the bases.
2758
27592008-02-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2760	    Jason Merrill  <jason@redhat.com>
2761
2762	PR c++/5645
2763	PR c++/11159
2764	* class.c (type_has_user_nondefault_constructor): New fn.
2765	* cp-tree.h: Declare it.
2766	* init.c (emit_mem_initializers): Use it for -W warning about
2767	missing base initializer.
2768
27692008-02-14  Paolo Carlini  <pcarlini@suse.de>
2770
2771	 PR c++/28743
2772	 * pt.c (determine_specialization): In case of function templates,
2773	when the type of DECL does not match FN there is no match.
2774
27752008-02-13  Jakub Jelinek  <jakub@redhat.com>
2776	    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2777
2778	PR c++/35138
2779	* parser.c (cp_parser_pseudo_destructor_name): If next tokens
2780	are not identifier :: ~, return before calling cp_parser_type_name.
2781
27822008-02-13  Jason Merrill  <jason@redhat.com>
2783
2784	PR c++/34962, c++/34937, c++/34939
2785	* decl2.c (is_late_template_attribute): Always defer attributes
2786	vector_size and weak.
2787
2788	PR c++/34774
2789	* pt.c (value_dependent_expression_p): Look into DECL_INITIAL
2790	of enumerators, too.
2791
27922008-02-12  Jason Merrill  <jason@redhat.com>
2793
2794	PR c++/34824
2795	* call.c (convert_like_real): Pass LOOKUP_NO_CONVERSION to build_temp
2796	if we're doing conversions to call a user-defined conversion function.
2797
27982008-02-12  Steven Bosscher  <steven@gcc.gnu.org>
2799
2800	PR c++/29048
2801	* semantics.c (finish_qualified_id_expr): Avoid duplicate access
2802	check here, too.
2803
28042008-02-12  Jakub Jelinek  <jakub@redhat.com>
2805
2806	PR c++/34862
2807	* init.c (build_new_1): Don't create placement_expr before
2808	constructing alloc_call.  Verify that the pointer is passed by
2809	value to operator new.
2810
28112008-02-11  Jason Merrill  <jason@redhat.com>
2812
2813	PR c++/35097
2814	* pt.c (tsubst): Don't look up a template typedef in an explicit
2815	specialization.
2816
28172008-02-11  Douglas Gregor  <doug.gregor@gmail.com>
2818
2819	PR c++/35113
2820	* tree.c (cp_build_qualified_type_real): When building a
2821	cv-qualified array type, build it as a unique type with
2822	build_cplus_array_type_1 and then adopt the unqualified type's
2823	main variant.
2824
28252008-02-11  Paolo Carlini  <pcarlini@suse.de>
2826
2827	PR c++/35077
2828	* decl.c (groktypename): Check grokdeclarator return.
2829
28302008-02-10  Jason Merrill  <jason@redhat.com>
2831
2832	PR c++/34094
2833	* decl2.c (cp_write_global_declarations): Don't write out static
2834	data members with DECL_IN_AGGR_P set.
2835
28362008-02-08  Jason Merrill  <jason@redhat.com>
2837
2838	PR c++/35116
2839	* tree.c (build_target_expr_with_type): Handle void initializer.
2840	(bot_manip): Remap slot before recursing.
2841
28422008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2843
2844	PR other/35107
2845	* Make-lang.in (cc1plus-dummy, cc1plus): Add $(GMPLIBS).
2846
28472008-02-06  Alexandre Oliva  <aoliva@redhat.com>
2848
2849	PR c++/35056
2850	* tree.c: Include tree-flow.h.
2851	(build_target_expr): Check type compatibility.
2852	* Make-lang.in (cp/tree.o): Depend on $(TREE_FLOW_H).
2853	* call.c (convert_like_real): Convert bitfield to expected type.
2854
28552008-02-06  Douglas Gregor  <doug.gregor@gmail.com>
2856
2857	PR c++/35049
2858	PR c++/35096
2859	* typeck.c (structural_comptypes): Call cp_comptypes.
2860	(comptypes): New; called from the C/C++ common bits to perform
2861	strict checks.
2862	(cp_comptypes): Renamed from comptypes, which is already used,
2863	with a different signature, by the C++ front end.
2864	(build_reinterpret_cast_1): Call cp_comptypes.
2865	(ptr_reasonably_similar): Ditto.
2866	* decl.c (decls_match): Ditto.
2867	* cvt.c (convert_to_reference): Ditto.
2868	* cp-tree.h (same_type_p): Ditto.
2869	(same_or_base_type_p): Ditto.
2870	(comptypes): Rename to cp_comptypes.
2871	* pt.c (canonical_type_parameter): Call cp_comptypes.
2872
28732008-02-05  Jakub Jelinek  <jakub@redhat.com>
2874
2875	PR c++/33553
2876	* pt.c (tsubst) <case INTEGER_TYPE>: Don't issue error if max is
2877	value dependent expression.
2878
28792008-02-05  Douglas Gregor  <doug.gregor@gmail.com>
2880
2881	PR c++/35074
2882	* decl2.c (save_template_attributes): When we're modifying the
2883	TYPE_MAIN_VARIANT to add new attributes, be sure to also modify
2884	all of the other variants to add those same attributes. Otherwise,
2885	the main variant will be inconsistent with those other variants.
2886
28872008-02-04  Richard Guenther  <rguenther@suse.de>
2888
2889	PR java/35035
2890	* decl.c (record_builtin_java_type): Make jboolean a
2891	integer type again where its mode doesn't match that of bool.
2892
28932008-02-02  Jason Merrill  <jason@redhat.com>
2894	    Mark Mitchell  <mark@codesourcery.com>
2895
2896	PR c++/33916
2897	* init.c (build_value_init_1): New function.
2898	(build_value_init): New function.
2899	* typeck2.c (build_functional_cast): Call it.
2900	* cp-gimplify.c (cp_gimplify_init_expr): Handle its output.
2901
2902	* cp-tree.h (TYPE_HAS_USER_CONSTRUCTOR): Rename from
2903	TYPE_HAS_CONSTRUCTOR.
2904	* class.c (finish_struct_bits, maybe_warn_about_overly_private_class,
2905	add_implicitly_declared_members): Adjust.
2906	(check_field_decls): Adjust. Remove warnings about reference/const
2907	in class without constructor.
2908	(check_bases_and_members): Adjust.  Give those warnings here instead.
2909	* decl.c (fixup_anonymous_aggr): Adjust.
2910	(check_initializer): Adjust, clarify logic slightly.
2911	(grok_special_member_properties): Adjust, only set if user-provided.
2912	* rtti.c (create_tinfo_types): Don't set.
2913	* cvt.c (ocp_convert): Remove exception for vtable_entry_type et al.
2914	Use same_type_ignoring_top_level_qualifiers_p.
2915	* pt.c (check_explicit_specialization): Adjust.
2916	(instantiate_class_template): Adjust.
2917
29182008-01-31  Douglas Gregor  <doug.gregor@gmail.com>
2919	    Jakub Jelinek  <jakub@redhat.com>
2920
2921	PR c++/34935
2922	PR c++/34936
2923	* typeck.c (structural_comptypes): Handle comparisons of
2924	VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and
2925	REAL_TYPE nodes.
2926	* mangle.c (write_builtin_type): Map down to the canonical type,
2927	which will be one of the predefined type nodes.
2928
29292008-01-29  Michael Meissner  <michael.meissner@amd.com>
2930
2931	PR 35004
2932	* cp-tree.h (struct full_lang_decl): Make tree_code bitfield 16
2933	bits to allow for expansion of the number of middle end tree
2934	codes.
2935
29362008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
2937
2938	PR c++/34055
2939	PR c++/34103
2940	PR c++/34219
2941	PR c++/34606
2942	PR c++/34753
2943	PR c++/34754
2944	PR c++/34755
2945	PR c++/34919
2946	PR c++/34961
2947	* typeck.c (check_return_expr): Tweak call to
2948	check_for_bare_parameter_packs.
2949	* class.c (add_method): Be careful with error_mark_nodes.
2950	* cp-tree.h (check_for_bare_parameter_packs): Remove "*" from
2951	signature.
2952	* pt.c (struct find_parameter_pack_data): Remove
2953	SET_PACKS_TO_ERROR.
2954	(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
2955	(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
2956	(make_pack_expansion): Ditto.
2957	(check_for_bare_parameter_packs): Parameter is now a tree, not a
2958	tree*.
2959	(process_template_parm): Tweak call to
2960	check_for_bare_parameter_packs.
2961	(push_template_decl_real): Tweak calls to
2962	check_for_bare_parameter_packs. If bare parameter packs are found
2963	in the list of exceptions, clear out that list after giving an
2964	error.
2965	* semantics.c (finish_cond): Tweak call to
2966	check_for_bare_parameter_packs.
2967	(finish_expr_stmt): Ditto.
2968	(finish_for_expr): Ditto.
2969	(finish_switch_cond): Ditto.
2970	(finish_mem_initializers): Ditto.
2971	(finish_member_declaration): Ditto.
2972	(finish_static_assert): Check for bare parameter packs in the
2973	condition.
2974	* decl2.c (cplus_decl_attributes): Check for bare parameter packs in the
2975	attributes of a declaration.
2976	* parser.c (cp_parser_using_declaration): Tweak call to
2977	check_for_bare_parameter_packs.
2978	(cp_parser_base_clause): Ditto.
2979
29802008-01-28  Jason Merrill  <jason@redhat.com>
2981
2982	PR c++/35007
2983	* class.c (build_base_path): Fix !want_pointer case.
2984
29852008-01-27  Jason Merrill  <jason@redhat.com>
2986
2987	PR c++/27177
2988	* class.c (build_base_path): Fix previous change.
2989
29902008-01-26  Jakub Jelinek  <jakub@redhat.com>
2991
2992	PR c++/34965
2993	* error.c (dump_expr): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
2994	and TRUTH_XOR_EXPR.
2995
29962008-01-26  Richard Guenther  <rguenther@suse.de>
2997
2998	PR c++/34235
2999	* typeck.c (build_binary_op): Remove code to shorten compares.
3000
30012008-01-25  Richard Guenther  <rguenther@suse.de>
3002
3003	PR c++/33887
3004	* decl.c (record_builtin_java_type): Make __java_boolean
3005	a variant of bool.
3006	* typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check
3007	after TYPE_MAIN_VARIANT check.
3008
30092008-01-25  Jason Merrill  <jason@redhat.com>
3010
3011	PR c++/27177
3012	* class.c (build_base_path): Don't mess with virtual access if
3013	skip_evaluation.
3014	* call.c (standard_conversion): Don't check whether source type
3015	is complete.
3016
3017	* decl2.c (is_late_template_attribute): Don't defer attribute
3018	visibility just because the type is dependent.
3019
30202008-01-25  Jason Merrill  <jason@redhat.com>
3021	    Mark Mitchell  <mark@codesourcery.com>
3022
3023	PR c++/31780
3024	* call.c (standard_conversion): Allow conversion from integer/real
3025	to complex.
3026	(compare_ics): Such a conversion is worse than a normal arithmetic
3027	conversion.
3028
30292008-01-25  Richard Guenther  <rguenther@suse.de>
3030
3031	PR c++/33887
3032	* cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define
3033	to true.
3034
30352008-01-24  Paolo Carlini  <pcarlini@suse.de>
3036
3037	 PR c++/34603
3038	 * pt.c (push_template_decl_real): Return error_mark_node in case
3039	of template definition of non-template.
3040
30412008-01-24  Jason Merrill  <jason@redhat.com>
3042
3043	PR c++/34913
3044	* decl2.c (is_late_template_attribute): Defer any attribute with
3045	dependent args.  Also defer type attributes if the type is dependent.
3046
30472008-01-22  Jakub Jelinek  <jakub@redhat.com>
3048	    Alexandre Oliva  <aoliva@redhat.com>
3049
3050	PR c++/33984
3051	* call.c (reference_binding): For bitfields use the declared bitfield
3052	type.
3053	(add_builtin_candidates): Likewise.
3054	* class.c (layout_class_type): For bitfields copy over the
3055	original type quals.
3056
30572008-01-22  Jason Merrill  <jason@redhat.com>
3058
3059	PR c++/28560
3060	* decl.c (groktypename): Also ignore attributes on dependent
3061	possibly-class types.
3062
3063	PR c++/34912
3064	* friend.c (do_friend): Check for prior declaration of a friend
3065	function of a local class.
3066	* name-lookup.c (lookup_name_innermost_nonclass_level):
3067	No longer static.
3068	* name-lookup.h: Declare it.
3069
30702008-01-22  Tom Tromey  <tromey@redhat.com>
3071
3072	PR c++/34829:
3073	* init.c (build_new_1): Only disallow Java aggregates.
3074
30752008-01-22  Jakub Jelinek  <jakub@redhat.com>
3076
3077	PR c++/34607
3078	* semantics.c (finish_omp_for): Don't call c_finish_omp_for
3079	if decl or init is error_mark_node.
3080
3081	PR c++/34918
3082	* error.c (dump_expr): Handle VECTOR_CST.
3083
30842008-01-21  Jason Merrill  <jason@redhat.com>
3085
3086	PR c++/33959
3087	* pt.c (tsubst_aggr_type): Make sure our context is complete.
3088
3089	PR c++/34573
3090	* pt.c (retrieve_local_specialization): Robustify.
3091	(tsubst_pack_expansion, tsubst_decl): Remove redundant checks.
3092
3093	PR c++/34846
3094	* pt.c (tsubst): Only call retrieve_local_specialization if the
3095	original typedef was in a function template.
3096
3097	PR c++/34196
3098	* decl.c (wrap_cleanups_r): Set TRY_CATCH_IS_CLEANUP.
3099
31002008-01-21  Richard Guenther  <rguenther@suse.de>
3101
3102	PR c++/34850
3103	* error.c (cp_print_error_function): Deal with recursive
3104	BLOCK trees.
3105
31062008-01-20  Paolo Carlini  <pcarlini@suse.de>
3107
3108	 PR c++/34891
3109	 * error.c (dump_expr): Deal with VIEW_CONVERT_EXPR.
3110
31112008-01-20  Paolo Carlini  <pcarlini@suse.de>
3112
3113	 PR c++/34776
3114	PR c++/34486
3115	 * name-lookup.c (do_class_using_decl): Do not call constructor_name_p
3116	on non-IS_AGGR_TYPE scope.
3117	(constructor_name_p): Assert IS_AGGR_TYPE.
3118
31192008-01-18  Ian Lance Taylor  <iant@google.com>
3120
3121	PR c++/33407
3122	* decl.c (duplicate_decls): Copy DECL_IS_OPERATOR_NEW flag.
3123	(grok_op_properties): For NEW_EXPR and VEC_NEW_EXPR set
3124	DECL_IS_OPERATOR_NEW flag.
3125
31262008-01-16  Richard Guenther  <rguenther@suse.de>
3127
3128	PR c++/33819
3129	* typeck.c (is_bitfield_expr_with_lowered_type): Recurse
3130	for conversions to type variants.
3131
31322008-01-15  Andreas Tobler  <a.tobler@schweiz.org>
3133
3134	* parser.c (cp_parser_template_parameter): Fix C90 issue with mixing
3135	declaration and code.  Update copyright year.
3136
31372008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
3138
3139	PR c++/34399
3140	* friend.c (do_friend): Don't query TYPE_BEING_DEFINED unless we
3141	know we have a class type.
3142
31432008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
3144
3145	PR c++/34751
3146	* pt.c (coerce_template_parameter_pack): When substituting into
3147	the type of a non-type template parameter pack. use the
3148	deduced/substituted arguments.
3149	* parser.c (declarator_can_be_parameter_pack): A pointer-to-member
3150	can be a parameter pack with the ellipsis following it.  When we
3151	have an erroneous declaration, allow it to be a parameter pack.
3152	(cp_parser_template_parameter): Complain about default
3153	arguments on non-type template parameter packs, and parse them
3154	using the new cp_parser_default_argument.
3155	(cp_parser_parameter_declaration): Complain about parameter packs
3156	with default arguments. Move parsing of default arguments into a
3157	new function, cp_parser_default_argument.
3158	(cp_parser_default_argument): New; extracted from
3159	cp_parser_parameter_declaration.
3160
31612008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
3162
3163	PR c++/34051
3164	PR c++/34055
3165	PR c++/34102
3166	PR c++/34103
3167	* typeck.c (check_return_expr): If there are bare parameter packs
3168	in the return value, set it to error_mark_node.
3169	* tree.c (cp_walk_subtrees): Walk USING_DECL nodes.
3170	* pt.c (find_parameter_packs_r): Look at the type of
3171	IDENTIFIER_NODEs (e.g., for user-defined conversions).
3172	(check_for_bare_parameter_packs): Flip the result: now returns
3173	TRUE when there were bare parameter packs, FALSE otherwise.
3174	(push_template_decl_real): Deal with flipped result of
3175	check_for_bare_parameter_packs.
3176	* semantics.c (finish_cond): If there are bare parameter packs in
3177	the conditional, set it to error_mark_node.
3178	(finish_expr_stmt): If there are bare parameter packs in the
3179	expression, set it to error_mark_node.
3180	(finish_for_expr): Ditto.
3181	(finish_switch_cond): If there are bare parameter packs in
3182	the conditional, set it to error_mark_node.
3183	(finish_mem_initializers): If there are bare parameter packs in
3184	the member initializer, set it to error_mark_node.
3185	(finish_member_declaration): Check the attributes of the
3186	declaration for bare parameter packs, and remove the attributes if
3187	any have bare parameter packs.
3188	* parser.c (cp_parser_using_declaration): Check the using
3189	declaration for bare parameter packs.
3190	(cp_parser_base_clause): If there are bare parameter packs in a
3191	base specifier, don't add it to the chain.
3192
31932008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
3194
3195	PR c++/34314
3196	* error.c (dump_simple_decl): Display ellipsis for template
3197	non-type parameter packs.
3198	(dump_decl): Display ellipsis for template type parameter packs.
3199	(dump_template_decl): Display ellipsis for template template
3200	parameter packs.
3201	* pt.c (redeclare_class_template): When redeclaring a class
3202	template, check for collisions between template parameters and
3203	template parameter packs.
3204
32052008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
3206
3207	PR c++/33964
3208	* pt.c (process_partial_specialization): Don't mark template
3209	parameters that occur in non-deduced contexts.
3210	(struct pair_fn_data): Add include_nondeduced_p.
3211	(for_each_template_parm_r): Only visit non-deduced contexts if
3212	include_nondeduced_p is set.
3213	(for_each_template_parm): Added parameter include_nondeduced_p,
3214	which states whether template parameters found in non-deduced
3215	contexts should be visited.
3216	(uses_template_parms): Visit all template parameters, even those
3217	in non-deduced contexts.
3218
32192008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
3220
3221	PR c++/34052
3222	* pt.c (check_default_tmpl_args): Check for parameter packs that
3223	aren't at the end of a primary template.
3224	(push_template_decl_real): Remove check for parameter packs that
3225	aren't at the end of a primary template; that now happens in
3226	check_default_tmpl_args.
3227	* semantics.c (finish_template_template_parm): Use
3228	check_default_tmpl_args to check for errors in the template
3229	parameter list.
3230
32312008-01-12  Doug Kwan  <dougkwan@google.com>
3232
3233	* decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
3234	instead of OPT_Wreturn_type in warning due to ignored return type
3235	qualifiers.
3236	* pt.c: (tsubst_function_type): Use OPT_Wignored_qualifiers
3237	instead of OPT_Wreturn_type in warning due to ignored return type
3238	qualifiers.
3239
32402008-01-08  Jakub Jelinek  <jakub@redhat.com>
3241
3242	PR c++/33890
3243	* semantics.c (finish_omp_for): Don't call
3244	fold_build_cleanup_point_expr if processing_template_decl.
3245
32462008-01-04  Paolo Carlini  <pcarlini@suse.de>
3247	    Jakub Jelinek  <jakub@redhat.com>
3248
3249	PR c++/34611
3250	* error.c (dump_template_argument): Deal with TREE_LIST.
3251
32522008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
3253
3254	* parser.c (cp_parser_check_decl_spec): Don't warn about "long
3255	long" in C++0x mode; change the warning to note that "long long"
3256	is only unsupported in C++98 mode.
3257
3258
3259Copyright (C) 2008 Free Software Foundation, Inc.
3260
3261Copying and distribution of this file, with or without modification,
3262are permitted in any medium without royalty provided the copyright
3263notice and this notice are preserved.
3264