ChangeLog revision 146895
12005-05-19  Release Manager
2
3	* GCC 3.4.4 released.
4
52005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
6
7	PR c++/21427
8	Backport 2005-03-01  Nathan Sidwell  <nathan@codesourcery.com>
9	* class.c (update_vtable_entry_for_fn): Don't crash on invalid
10	covariancy. 
11
12	* cp-tree.h (THUNK_TARGET): Expand comment.
13	* method.c (use_thunk): Make sure we also use the target, if that
14	is a thunk.
15
16	Backport 2005-02-11  Nathan Sidwell  <nathan@codesourcery.com>
17	* class.c (update_vtable_entry_for_fn): Walk the covariant's binfo
18	chain rather than using lookup_base.
19
202005-05-04  Mark Mitchell  <mark@codesourcery.com>
21
22	Backport:
23	2004-12-21  Mark Mitchell  <mark@codesourcery.com>
24	PR c++/19034
25	* tree.c (cp_tree_equal): Handle OVERLOAD.
26
272005-05-02  Mark Mitchell  <mark@codesourcery.com>
28
29	Revert:
30	2005-05-01  Mark Mitchell  <mark@codesourcery.com>
31	* typeck.c (unary_complex_lvalue): In a template, always refuse
32	simplifications.
33
342005-05-01  Mark Mitchell  <mark@codesourcery.com>
35
36	Backport:
37	2005-02-22  Mark Mitchell  <mark@codesourcery.com>
38	PR c++/19991
39	* init.c (decl_constant_value): Iterate if the value of a decl
40	is itself a constant.
41
422005-05-01  Mark Mitchell  <mark@codesourcery.com>
43
44	Backport:
45        2004-12-22  Mark Mitchell  <mark@codesourcery.com>
46	PR c++/18464
47	* call.c (build_this): In templates, do not bother with
48	build_unary_op.
49	* typeck.c (unary_complex_lvalue): In a template, always refuse
50	simplifications.
51
522005-04-25  Roger Sayle  <roger@eyesopen.com>
53	    Mark Mitchell  <mark@codesourcery.com>
54
55	PR c++/20995
56	Partial backport from mainline.
57	2004-09-27  Mark Mitchell  <mark@codesourcery.com>
58	* tree.c (fold_if_not_in_template): New function.
59	* cp-tree.h (fold_if_not_in_template): Prototype here.
60	* call.c (build_conditional_expr): Use fold_if_not_in_template.
61	* typeck.c (build_binary_op): Likewise.
62
632005-04-16  Mark Mitchell  <mark@codesourcery.com>
64
65	PR c++/21025
66	* typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
67	which sizeof/alignof is dependent, rather than just whether we are
68	processing_template_decl.
69	
702005-04-06  Jason Merrill  <jason@redhat.com>
71
72	PR c++/19312
73	* tree.c (stabilize_init): Don't bother trying to stabilize
74	something with no side-effects.
75
762005-04-04  Mark Mitchell  <mark@codesourcery.com>
77
78	PR c++/20679
79	* parser.c (cp_parser_template_name): Fix thinko.
80
812005-04-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
82
83	PR c++/18644
84	* call.c (build_new_op): Remove check for -Wsynth.
85
862005-03-21  Paolo Carlini  <pcarlini@suse.de>
87
88	PR c++/20147
89	* semantics.c (finish_stmt_expr_expr): Return immediately
90	if error_operand_p (expr).
91
922005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
93
94	PR c++/20240
95	* decl.c (decls_match): Compare context of VAR_DECL.
96
972005-03-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
98
99	PR c++/20333
100	* parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
101	Check the return value of cp_parser_nested_name_specifier.
102
1032005-03-08  Mark Mitchell  <mark@codesourcery.com>
104
105	PR c++/20142
106	* init.c (build_vec_init): When determining whether or not the
107	element type has an asignment operator, look through all array
108	dimensions. 
109
1102005-03-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
111
112	PR c++/19311
113	* init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
114	* pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
115	for OFFSET_TYPE.
116	* typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
117	Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
118	(build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
119	template.
120
1212005-03-02  Alexandre Oliva  <aoliva@redhat.com>
122
123	* name-lookup.c (push_overloaded_decl): Don't error if the new
124	decl matches the old one.
125	* decl.c (redeclaration_error_message): Likewise.
126
1272005-02-24  Jakub Jelinek  <jakub@redhat.com>
128
129	PR c++/20175
130	* decl.c (reshape_init): Don't warn about missing braces if STRING_CST
131	initializes a char/wchar_t array.
132
1332005-02-21  Alexandre Oliva  <aoliva@redhat.com>
134
135	PR c++/20028
136	* class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
137	template along with TYPE_SIZE.
138
1392005-02-14  Mark Mitchell  <mark@codesourcery.com>
140
141	* decl.c (reshape_init): Use explicit quotes in error message
142	instead of %q.
143	
1442005-02-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
145
146	PR c++/14479
147	PR c++/19487
148	* pt.c (maybe_check_template_type): Remove.
149	* cp-tree.h (maybe_check_template_type): Remove prototype.
150	* name-lookup.c (maybe_process_template_type_declaration): Don't
151	use maybe_check_template_type.
152
1532005-02-10  Mark Mitchell  <mark@codesourcery.com>
154
155	PR c++/19755
156	* decl.c (reshape_init): Issue warnings about missing braces.
157
1582005-02-09  Mark Mitchell  <mark@codesourcery.com>
159
160	* parser.c (cp_parser_unqualified_id): Initialize type_decl.
161
162	PR c++/19787
163	* call.c (initialize_reference): Robustify.
164
165	PR c++/19762
166	* parser.c (cp_parser_unqualified_id): Avoid creating destructor
167	names with invalid types.
168
169	PR c++/19739
170	* parser.c (cp_parser_attributes_list): Allow empty lists.
171
1722005-02-08  Mark Mitchell  <mark@codesourcery.com>
173
174	PR c++/19733
175	* cvt.c (convert_to_void): Issue errors about pseudo-destructor
176	expressions.
177
1782005-02-01  Alexandre Oliva  <aoliva@redhat.com>
179
180	PR c++/18757
181	PR c++/19366
182	PR c++/19499
183	* parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
184	Issue an error when creating the template id.
185	* pt.c (fn_type_unification): Return early if the explicit
186	template arg list is an error_mark_node.
187
1882005-01-27  J"orn Rennecke <joern.rennecke@st.com>
189
190	PR c++/18370
191	* parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
192
1932005-01-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
194
195	PR c++/19375
196	* semantics.c (finish_id_expression): Disable access checking for
197	already lookuped FIELD_DECL.
198
1992005-01-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
200
201	PR c++/19258
202	* parser.c (cp_parser_late_parsing_default_args): Handle friend
203	defined in class.
204	* pt.c (push_access_scope, pop_access_scope): Likewise.
205
2062005-01-15  Jakub Jelinek  <jakub@redhat.com>
207
208	PR c++/19263
209	* typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
210	of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
211	Store code to *pcode.
212
2132004-12-28  Jakub Jelinek  <jakub@redhat.com>
214
215	PR c++/18384, c++/18327
216	* decl.c (reshape_init_array): Use UHWI type for max_index_cst
217	and index.  Convert max_index to size_type_node if it isn't
218	host_integerp (, 1).
219
2202004-12-23  Alexandre Oliva  <aoliva@redhat.com>
221
222	PR c++/18962
223	* pt.c (check_explicit_specialization): Use the argument list from
224	the definition in a template function specialization definition.
225
2262004-12-23  Alexandre Oliva  <aoliva@redhat.com>
227
228	PR c++/18757
229	* parser.c (cp_parser_template_id): Don't create a CPP_TEMPLATE_ID
230	if parsing failed.
231
2322004-12-17  Nathan Sidwell  <nathan@codesourcery.com>
233
234	PR c++/18975
235	* method.c (do_build_copy_constructor): Refactor. Don't const
236	qualify a mutable field.
237	(do_build_assign_ref): Likewise.
238
2392004-12-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
240
241	PR c++/18731
242	* parser.c (cp_parser_class_head): Reject typedef-name in class head.
243
2442004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
245
246	PR c++/16681
247	* init.c (build_zero_init): Build a RANGE_EXPR for an array
248	initializer.
249
2502004-12-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
251
252	PR c++/18100
253	* name-lookup.c (push_class_level_binding): Diagnose nested
254	class template with the same name as enclosing class.
255
2562004-12-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
257
258	PR c++/17011, c++/17971
259	* pt.c (tsubst_copy) <FIELD_DECL case>: Check and diagnose
260	invalid field.
261	(tsubst_copy_and_build) <COMPONENT_REF case>: Check
262	error_mark_node after member substitution.
263	* semantics.c (finish_id_expression): Call
264	finish_non_static_data_member for dependent FIELD_DECL.
265
2662004-12-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
267
268	PR c++/18123
269	* parser.c (cp_parser_type_specifier): Don't create new enum
270	type if it is not in the form 'enum [identifier] { [...] };'.
271	Catch template declaration of enum. 
272
2732004-12-01  Nathan Sidwell  <nathan@codesourcery.com>
274
275	PR c++/17431
276	* call.c (standard_conversion): Add FLAGS parameter. Do not allow
277	derived to base conversion when checking constructor
278	accessibility.
279	(implicit_conversion): Pass FLAGS to standard_conversion.
280	(check_constructir_callable): Disallow conversion functions.
281
2822004-11-12  Mark Mitchell  <mark@codesourcery.com>
283
284	PR c++/18389
285	* decl.c (start_decl): Make sure to set *pop_scope_p.  Return
286	error_mark_node to indicate errors.
287
288	PR c++/18436
289	* pt.c (tsubst_copy_and_build): Do not do Koenig lookup when an
290	unqualified name resolves to a member function.
291
292	PR c++/18407
293	* pt.c (tsubst_copy_and_build): Handle qualified names used from a
294	derived class correctly.
295
2962004-11-04  Release Manager
297
298	* GCC 3.4.3 released.
299
3002004-10-31  Mark Mitchell  <mark@codesourcery.com>
301
302	PR c++/15172
303	* typeck2.c (store_init_value): Use split_nonconstant_init even
304	for types that require construction.
305	
3062004-10-28  Mark Mitchell  <mark@codesourcery.com>
307
308	PR c++/17132
309	* pt.c (instantiate_class_template): Increment
310	processing_template_decl when substituting into a member class
311	template.
312
3132004-10-27  Mark Mitchell  <mark@codesourcery.com>
314
315	PR c++/18140
316	* parser.c (cp_parser_next_token_ends_template_argument_p): Do not
317	include ">>".
318
3192004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
320
321	PR c++/13560
322	* error.c (cp_error_at): Output the context as it might be
323	different file as the other location.
324
3252004-10-26  Mark Mitchell  <mark@codesourcery.com>
326
327	PR c++/18093
328	* search.c (current_scope): Return the innermost non-block scope,
329	not the innermost non-block, non-namespace scope.
330	(at_namespace_scope_p): Adjust accordingly.
331	(dfs_accessible_post): Do not pass namespaces to is_friend.
332	(dfs_walk_once_accessible_r): Likewise.
333	* decl.c (grokvardecl): Adjust call to current_scope.
334	(build_enumerator): Likewise.
335	* parser.c (cp_parser_using_declaration): Likewise.
336	(cp_parser_direct_declarator): Use at_namespace_scope_p instead of
337	current_scope.
338	(cp_parser_class_head): Adjust call to current_scope.
339	* name-lookup.c (do_namespace_alias): Set the DECL_CONTEXT for the
340	alias.
341
342	PR c++/18020
343	* pt.c (tusbst_copy_and_build): Resolve enumeration constants to
344	their underlying values.
345
3462004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
347
348	PR c++/16301
349	* name-lookup.c (parse_using_directive): If we have a
350	error_mark_node, do not set the decl namespace associations
351	on it.
352
3532004-10-14  Mark Mitchell  <mark@codesourcery.com>
354
355	PR c++/17976
356	* decl.c (cp_finish_decl): Do not call expand_static_init more
357	than once for a single variable.
358
3592004-10-11  Mark Mitchell  <mark@codesourcery.com>
360
361	PR c++/15786
362	* parser.c (cp_parser_declarator): Add member_p parameter. 
363	(cp_parser_condition): Adjust calls to cp_parser_declarator.
364	(cp_parser_explicit_instantiation): Likewise.
365	(cp_parser_init_declarator): Likewise.
366	(cp_parser_direct_declarator): Add member_p parameter.  Do not
367	parse tentatively when parsing the parameters to a member.
368	(cp_parser_type_id): Adjust calls to cp_parser_declarator.
369	(cp_parser_parameter_declaration): Likewise.
370	(cp_parser_member_declaration): Likewise.
371	(cp_parser_exception_declaration): Likewise.
372
3732004-10-11  Mark Mitchell  <mark@codesourcery.com>
374
375	* decl2.c (finish_anon_union): Robustify.
376
3772004-10-10  Mark Mitchell  <mark@codesourcery.com>
378
379	PR c++/17393
380	* decl.c (grokdeclarator): Robustify error-recovery on invalid
381	declarations.
382
3832004-10-09  Mark Mitchell  <mark@codesourcery.com>
384
385	PR c++/17821
386	* parser.c (cp_parser_postfix_dot_deref_expression): If the
387	pseduo-destructor-name production does not work, fall back to the
388	ordinary production.
389
390	PR c++/17826
391	* tree.c (cp_tree_equal): Handle a BASELINK.
392
3932004-10-09  Mark Mitchell  <mark@codesourcery.com>
394
395	PR c++/17524
396	* cp-tree.h (check_var_type): New function.
397	* decl.c (check_var_type): New function, split out from ...
398	(grokdeclarator): ... here.
399	* pt.c (tsubst_decl): Use check_var_type.
400
401	PR c++/17685
402	* decl.c (grokdeclarator): Disallow declarations of operators as
403	non-functions.
404	
4052004-10-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
406
407	PR c++/17868
408	* error.c (dump_expr): Add missing case for RDIV_EXPR.
409
4102004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
411
412	PR c++/17829
413	* parser.c (cp_parser_postfix_expression): Inhibit Koenig when
414	unqualified lookup finds a member function.
415
4162004-09-28  Roger Sayle  <roger@eyesopen.com>
417
418	PR driver/17537
419	* g++spec.c (lang_specific_driver): Unrecognized libraries, other
420	than -lc and -lm, may require linking against libstc++.
421
4222004-09-27  Mark Mitchell  <mark@codesourcery.com>
423
424	PR c++/17585
425	* cp-tree.h (shared_member_p): Declare.
426	* search.c (shared_member_p): Give it external linkage.
427	* semantics.c (finish_qualified_id_expr): Use it.
428	(finish_id_expression): Likewise.
429
4302004-09-22  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
431
432	PR c++/14179
433	* parser.c (cp_parser_initializer): Speed up parsing of simple
434	literals as initializers.
435
4362004-09-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
437
438	PR c++/14179
439	* decl.c (reshape_init): Extract array handling into...
440	(reshape_init_array): New function. Use integers instead of trees
441	for indices. Handle out-of-range designated initializers.
442
4432004-09-16  Mark Mitchell  <mark@codesourcery.com>
444
445	PR c++/17501
446	* parser.c (cp_parser_nested_name_specifier): Do not resolve
447	typename types if the user explicitly said "typename".
448
4492004-09-13  Mark Mitchell  <mark@codesourcery.com>
450
451	PR c++/16162
452	* parser.c (cp_parser_id_expression): Correct value for
453	is_declarator.
454	(cp_parser_nested_name_specifier_opt): Look through typenames as
455	necessary.
456	(cp_parser_template_name): Honor check_dependency_p.
457
4582004-09-13  Mark Mitchell  <mark@codesourcery.com>
459
460	PR c++/17327
461	* pt.c (unify): Add ENUMERAL_TYPE case.  Replace sorry with
462	gcc_unreacable.
463
4642004-09-06  Release Manager
465
466	* GCC 3.4.2 released.
467
4682004-08-25  Roger Sayle  <roger@eyesopen.com>
469
470	PR middle-end/16693
471	PR tree-optimization/16372
472	* decl.c (finish_enum): Make the precision of the enumerated type
473	the same width as the underlying integer type.
474
4752004-08-24  Jason Merrill  <jason@redhat.com>
476
477	PR c++/16851
478	* tree.c (stabilize_init): See through a COMPOUND_EXPR.
479
480	PR c++/15461
481	* semantics.c (nullify_returns_r): Replace a DECL_STMT
482	for the NRV with an INIT_EXPR.
483
4842004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
485
486	PR c++/16889
487	* (is_subobject_of_p): Resurrect & optimize.
488	(lookup_field_r): Use it.
489
4902004-08-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
491
492	PR c++/16706
493	* search.c (friend_accessible_p): Increment processing_template_decl
494	when deal with TEMPLATE_DECL of SCOPE.
495
4962004-08-23  Janis Johnson  <janis187@us.ibm.com>
497
498	Backports from mainline:
499
500	2004-02-27  Ziemowit Laski  <zlaski@apple.com>
501	2004-03-24  Ziemowit Laski  <zlaski@apple.com>
502
503	* Make-lang.in (cp/mangle.o): Depend on $(TARGET_H).
504        * mangle.c (write_type): Add call to 'mangle_fundamental_type'
505        target hook.
506	* tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs.
507
5082004-08-19  Mark Mitchell  <mark@codesourcery.com>
509
510	PR c++/15890
511	* pt.c (push_template_decl_real): Disallow template allocation
512	functions with fewer than two parameters.
513
5142004-08-18  Mark Mitchell  <mark@codesourcery.com>
515
516	PR c++/17068
517	* pt.c (dependent_template_p): Treat IDENTIFIER_NODEs as
518	dependent.
519
5202004-08-17  Mark Mitchell  <mark@codesourcery.com>
521
522	PR c++/16246
523	* pt.c (unify): Make sure that non-type arguments have the same
524	type as the corresponding parameter.
525
5262004-08-12  Mark Mitchell  <mark@codesourcery.com>
527
528	PR c++/16273
529	* class.c (count_depth_data): New type.
530	(dfs_depth_post): New function.
531	(dfs_depth_q): Likewise.
532	(find_final_overrider_data_s): Change type of vpath.
533	Add vpath_list.
534	(dfs_find_final_overrider_1): New function.
535	(dfs_find_final_overrider): Use it.
536	(dfs_find_final_overrider_q): Adjust use of vpath.
537	(dfs_find_final_overrider_post): Likewise.
538	(find_final_overrider): Use dfs_depth.  Allocate and deallocate
539	vpath_list.
540
5412004-08-12 Jan Beulich <jbeulich@novell.com>
542
543	* parser.c (cp_parser_asm_definition): Properly consume scope operator
544	tokens preceding the clobbers. Don't check for scope operator
545	following inputs. Simplify inputs handling to match that now used for
546	clobbers.
547
5482004-08-11  Mark Mitchell  <mark@codesourcery.com>
549
550	PR c++/16698
551	* except.c (build_throw): Allocate cleanup_type and the function
552	for __cxa_throw separately.
553
5542004-08-11  Mark Mitchell  <mark@codesourcery.com>
555
556	PR c++/16717
557	* semantics.c (expand_body): Do not update static_ctors and
558	static_dtors here.
559	(expand_or_defer_fn): Do it here, instead.
560
561	PR c++/16853
562	* call.c (standard_conversion): Do not accept conversions between
563	pointers to members if the class types are unrelated.
564
565	PR c++/16870
566	* pt.c (tsubst): Just return the unknown_type_node.
567
568	PR c++/16964
569	* parser.c (cp_parser_class_specifier): Robustify.
570
571	PR c++/16904
572	* pt.c (tsubst_copy_and_build): Complain about invalid
573	qualification.
574
575	PR c++/16929
576	* pt.c (tsubst_default_argument): Clear out current_class_ptr and
577	current_class_ref while tsubsting.
578	
5792004-08-01  Mark Mitchell  <mark@codesourcery.com>
580
581	PR c++/16224
582	* name-lookup.c (decl_namespace): Remove.
583	(current_decl_namespace): Use decl_namespace_context instead of
584	decl_namespace.
585	(push_decl_namespace): Likewise.
586	(arg_assoc_class): Likewise.
587	(arg_assoc_type): Likewise.
588	* pt.c (check_specialization_namespace): New function.
589	(maybe_process_partial_specialization): Use it.
590	(register_specialization): Likewise.
591
5922004-08-01  Mark Mitchell  <mark@codesourcery.com>
593
594	PR c++/16489
595	* cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): New macro.
596	* call.c (null_ptr_cst_p): Handle variables with constant
597	initializers.
598	* pt.c (convert_nontype_argument): Use
599	DECL_INTEGRAL_CONSTANT_VAR_P.
600	* semantics.c (finish_id_expression): Likewise.
601
602	PR c++/16529
603	* decl.c (duplicate_decls): Reject duplicate namespace
604	declarations.
605
606	PR c++/16810
607	* typeck.c (build_ptrmemfunc): Loosen assertion.
608
6092004-07-28  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
610
611	PR c++/13092
612	* init.c (build_offset_ref): Build SCOPE_REF with non-null
613	TREE_TYPE for non-dependent names.
614	* typeck.c (build_x_unary_op): Handle non-dependent SCOPE_REF.
615	* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
616	unknown_type_node as its TREE_TYPE.
617	* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
618	* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
619	(dump_expr) <SCOPE_REF case>: Likewise.
620
6212004-07-21  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
622
623	PR c++/16175
624	* error.c (dump_type) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Output
625	cv qualifier.
626
6272004-07-20  Mark Mitchell  <mark@codesourcery.com>
628
629	(cp_parser_simple_type_specifier): Fix typo.
630	
631	PR c++/16637
632	* parser.c (cp_parser_simple_type_specifier): Do not record usage
633	of globally-qualified names.
634
6352004-07-12  Andrew Pinski  <apinski@apple.com>
636
637	PR c++/16475
638	Revert:
639	2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
640		PR c++/16276
641		* rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
642        	is not public.
643
644
6452004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
646
647	PR c++/16276
648	* rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
649	is not public.
650
6512004-07-01  Release Manager
652
653	* GCC 3.4.1 released.
654
6552004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
656
657	PR C++/16174
658	* call.c (build_temp): Declare.
659	(check_constructor_callable): New.
660	(reference_binding): Only set CHECK_COPY_CONSTRUCTOR if not for
661	CONSTRUCTOR_CALLABLE.
662	(convert_like_real, initialize_reference): Use
663	check_constructor_callable.
664	* cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): New.
665	(LOOKUP_*): Renumber.
666
6672004-06-25  Jan Hubicka  <jh@suse.cz>
668
669	PR C++/14865
670	* decl2.c (maybe_emit_vtables):  Always import_export_vtable for the
671	reachability analysis.
672
6732004-06-22  Jan Hubicka  <jh@suse.cz>
674
675	PR C++/14950
676	* pt.c (instantiate_decl): Clean TI_PENDING_TEMPLATE_FLAG before
677	expanding the function.
678
6792004-06-21  Nathan Sidwell  <nathan@codesourcery.com>
680
681	PR c++/3518
682	* pt.c (check_cv_quals_for_unify): Ignore bogus CV quals at outer
683	level.
684	
685	PR c++/14007
686	* pt.c (check_cv_quals_for_unify): Correct logic for disallowed
687	cv-qualifier unification.
688	* tree.c (cp_build_qualified_type_real): Renable DR295 logic.
689
6902004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
691
692	PR c++/15967
693	* search.c (build_new_1): Robustify.
694
6952004-06-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
696
697	PR c++/15947
698	* parser.c (cp_parser_template_name): Ctors/dtors never need a
699	template keyword to disambiguate.
700
7012004-06-14  Mark Mitchell  <mark@codesourcery.com>
702
703	PR c++/15096
704	* decl.c (grokdeclarator): Ignore pointer-to-members when
705	computing template depth.
706
707	PR c++/14930
708	* name-lookup.c (pushtag): Do not try to put class declarations in
709	explicit specialization scopes.
710
711i2004-06-11  Mark Mitchell  <mark@codesourcery.com>
712
713	PR c++/15862
714	* name-lookup.c (unqualified_namespace_lookup): Do not ignore type
715	bindings for undeclared built-ins.
716
7172004-06-10  Jason Merrill  <jason@redhat.com>
718
719	PR c++/15875
720	Revert:
721	2004-06-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
722	* init.c (build_offset_ref): Build SCOPE_REF with non-null
723	TREE_TYPE for non-dependent names.
724	* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
725	unknown_type_node as its TREE_TYPE.
726	* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
727	* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
728	(dump_expr) <SCOPE_REF case>: Likewise.
729
7302004-06-10  Mark Mitchell  <mark@codesourcery.com>
731
732	PR c++/15227
733	* parser.c (cp_parser_direct_declarator): Robustify.
734
735	PR c++/15877
736	* pt.c (tsubst_copy): Use decl_constant_value on enumeration
737	constants in non-dependent contexts.
738
739	PR c++/14211
740	PR c++/15076
741	* typeck.c (build_static_cast): Wrap casts in NON_LVALUE_EXPR when
742	necessary.
743
7442004-06-09  Mark Mitchell  <mark@codesourcery.com>
745
746	Revert:
747	PR c++/15815
748	2004-06-07  Mark Mitchell  <mark@codesourcery.com>
749	* lex.c (handle_pragma_interface): Deprecate.
750	(handle_pragma_implementation): Likewise.
751
7522004-06-07  Dan Kegel  <dank@kegel.com>
753
754	PR c++/14808
755	* method.c (make_alias_for_thunk, use_thunk): Use TARGET_IS_PE_COFF
756	instead of __CYWGIN__ and __MINGW32__.
757
7582004-06-07  Mark Mitchell  <mark@codesourcery.com>
759
760	PR c++/15815
761	* lex.c (handle_pragma_interface): Deprecate.
762	(handle_pragma_implementation): Likewise.
763
764	PR c++/15766
765	* parser.c (cp_parser_iteration_statement): Fix typo in error
766	message.
767
768	PR c++/14777
769	* pt.c (tsubst_default_argument): Do not defer access checks
770	while substituting into the default argument.
771
772	PR c++/15554
773	* pt.c (tsubst_copy): Do not try to substitute for an enumeration
774	constant in a non-dependent context. 
775	
776	PR c++/15057
777	* except.c (build_throw): Ensure that temp_expr has been
778	initialized.
779
7802004-06-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
781
782	PR c++/15503
783	* parser.c (cp_parser_mem_initializer_id): Gracefully reject
784	'typename', and accept 'template'.
785
7862004-06-01  Jason Merrill  <jason@redhat.com>
787
788	PR c++/15142
789	* call.c (call_builtin_trap): Remove type parm.
790	(convert_arg_to_ellipsis): Change a non-POD argument to integer type.
791	(build_x_va_arg): Dereference a null pointer for a non-POD argument.
792
7932004-06-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
794
795	PR c++/13092
796	* init.c (build_offset_ref): Build SCOPE_REF with non-null
797	TREE_TYPE for non-dependent names.
798	* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
799	unknown_type_node as its TREE_TYPE.
800	* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
801	* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
802	(dump_expr) <SCOPE_REF case>: Likewise.
803
8042004-06-01  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
805
806	PR c++/14932
807	* parser.c (cp_parser_postfix_expression): Allow subscript
808	operator in offsetof.
809
8102004-05-31  Mark Mitchell  <mark@codesourcery.com>
811
812	PR c++/15701
813	* friend.c (add_friend): Do not try to perform access checks for
814	functions from dependent classes.
815
816	PR c++/15742
817	* call.c (build_over_call): Set
818	current_function_returns_abnormally even in template functions.
819
820	PR c++/15696
821	* cp-tree.h (invalid_nonstatic_memfn_p): New function.
822	* cvt.c (convert_to_void): Use it.
823	* typeck.c (invalid_nonstatic_memfn_p): New function.
824	(decay_conversion): Use it.
825
826	PR c++/15625
827	* pt.c (tsubst_decl): Set DECL_FRIEND_CONTEXT for instantiated
828	templates.
829
830	PR c++/15629
831	* name-lookup.c (arg_assoc_class): Do not find template
832	specializations.
833
834	PR c++/15209
835	* tree.c (lvalue_p_1): Only consider the right-hand side of "."
836	expressions when determining whether or not an express is packed.
837
8382004-05-28  Mark Mitchell  <mark@codesourcery.com>
839
840	PR c++/15083
841	* decl2.c (delete_sanity): Set TREE_SIDE_EFFECTS on a DELETE_EXPR,
842	even in a templat.e
843	* init.c (build_new): Likewise.
844
845	PR c++/15640
846	* name-lookup.c (arg_assoc): Robustify.
847
848	PR c++/15471
849	* typeck.c (unary_complex_lvalue): Use context_for_name_lookup
850	when determining the scope to use for a pointer to member.
851	(lookup_anon_field): Give it external linkage.
852	* cp-tree.h (lookup_anon_field): Declare it.
853	* expr.c (cplus_expand_constant): Use it.
854
855	PR c++/14668
856	* parser.c (cp_parser_simple_type_specifier): Call
857	maybe_note_name_used_in_class.
858
8592004-05-23  Mark Mitchell  <mark@codesourcery.com>
860
861	PR c++/15044
862	* parser.c (cp_parser_class_head): Robustify.
863
864	PR c++/15317
865	* parser.c (cp_parser_decl_specifier_seq): Correct error in
866	comment.
867	(cp_parser_constructor_declarator_p): Treat attributes
868	as decl-specifiers.
869
870	PR c++/15329
871	* typeck.c (build_unary_op): Do not attempt to resolve casts to
872	base classes in templates.
873
874	PR c++/15165
875	* pt.c (instantiate_template): Robustify.
876
877	PR c++/15025
878	* decl.c (xref_tag): Issue errors about redeclaring template
879	classes as non-template classes.
880
881	PR c++/14821
882	* name-lookup.c (supplement_binding): Allow redefinitions of
883	namespace aliases.
884
885	PR c++/14883
886	* parser.c (cp_parser_template_argument): Robustify.
887
8882004-05-22  Mark Mitchell  <mark@codesourcery.com>
889
890	PR c++/15285
891	PR c++/15299
892	* pt.c (build_non_dependent_expr): Expand the set of tree nodes
893	recognized as overloaded functions.
894
895	PR c++/15507
896	* class.c (layout_nonempty_base_or_field): Do not try to avoid
897	layout conflicts for unions.
898
899	PR c++/15542
900	* typeck.c (build_x_unary_op): Instantiate template class
901	specializations before looking for "operator &".
902
903	PR c++/15427
904	* typeck.c (complete_type): Layout non-dependent array types, even
905	in templates.
906
907	PR c++/15287
908	* typeck.c (build_unary_op): Do not optimize "&x[y]" when in a
909	template.
910
9112004-04-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
912
913	PR c++/15064
914	* parser.c (cp_parser_postfix_expression): typeid operator cannot be
915	used in integral constant expressions.
916
9172004-04-18  Release Manager
918
919	* GCC 3.4.0 released.
920
9212004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
922
923	PR c++/14808
924	* method.c (make_alias_for_thunk): Just return function decl
925	for one_only functions if __CYGWIN__ or __MINGW32__
926	(use_thunk): Don't put function and thunk in same one_only
927	section if __CYGWIN__ or __MINGW32__.
928
9292004-04-08  Jakub Jelinek  <jakub@redhat.com>
930
931	* decl2.c (mark_used): Don't segfault if cfun != NULL but
932	current_function_decl == NULL.
933
9342004-04-01  Mark Mitchell  <mark@codesourcery.com>
935
936	PR c++/14803
937	* typeck.c (get_delta_difference): Call fold before returning the
938	value.
939
9402004-04-01  Richard Henderson  <rth@redhat.com>
941
942        PR c++/14804
943        * decl.c (cp_finish_decl): Preserve TREE_READONLY more often.
944        * typeck2.c (split_nonconstant_init): Clear TREE_READONLY.
945
9462004-04-01  Mark Mitchell  <mark@codesourcery.com>
947
948	PR c++/14810
949	* name-lookup.c (maybe_push_cleanup_level): Robustify.
950
9512004-03-30  Mark Mitchell  <mark@codesourcery.com>
952
953	PR c++/14724
954	* decl.c (start_decl_1): Do not decide whether or not to create a
955	new cleanup level until after the type has been completed.
956
957	PR c++/14763
958	* pt.c (tsubst_default_argument): Clear current_function_decl.
959
9602004-03-28  Jan Hubicka  <jh@suse.cz>
961
962	PR C++/14639
963	* method.c (use_think): Do not mark thunk as referenced.
964
9652004-03-21  Mark Mitchell  <mark@codesourcery.com>
966
967	PR c++/14616
968	* decl.c (cp_finish_decl): Compute the size of arrays declared in
969	templates, if their type is non-dependent.
970
9712004-03-19  Mark Mitchell  <mark@codesourcery.com>
972
973	* call.c (build_op_delete_call): Do not forget the placement
974	arguments when iterating through mutiple delete operators.
975
976	* cp-tree.h (svaed_scope): Remove last_parms.
977	(NEW_DELETE_OPNAME_P): New macro.
978	(last_function_parms): Remove.
979	(do_friend): Adjust prototype.
980	* decl.c (grokparms): Return the PARM_DECLs directly, rather than
981	using last_function_parms.
982	(grokfndecl): Take the PARM_DECLs as an argument, rather than
983	using last_function_parms.
984	(grokdeclarator): Adjust accordingly.  Do not form METHOD_TYPEs
985	for class-specific operator new and operator delete.
986	(grok_op_properties): Do not look for allocation functions with
987	METHOD_TYPEs.
988	(start_function): Use DECL_ARGUMENTS instead of
989	last_function_parms.
990	* decl.h (last_function_parms): Do not declare.
991	* decl2.c (grokclassfn): Do not use last_function_parms.
992	* friend.c (do_friend): Remove parmdecls parameter.
993	* name-lookup.c (push_to_top_level): Do not save last_function_parms.
994	(pop_from_top_level): Do not restore it.
995	* pt.c (check_explicit_specialization): Do not adjust
996	last_function_parms.
997
998	* name-lookup.c (do_local_using_decl): Create a local binding for
999	types brought in via using declarations.
1000
1001	* name-lookup.c (lookup_arg_dependent): Handle block-scope
1002	function declarations correctly.
1003
1004	* semantics.c (finish_id_expression): Correct handling of
1005	conversion operators to dependent types.
1006
1007	* typeck.c (lookup_destructor): Allow the use of destructors from
1008	base classes.
1009	
10102004-03-19  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1011
1012	PR c++/14545
1013	* parser.c (cp_parser_functional_cast): A cast to anything
1014	but integral or enumaration type is not an integral constant
1015	expression.
1016	* pt.c (value_dependent_expression_p): Handle cast expressions
1017	without operands (such as "int()").
1018
10192004-03-18  Mark Mitchell  <mark@codesourcery.com>
1020
1021	* semantics.c (finish_pseudo_destructor_expr): Allow differing
1022	cv-qualification between the type named by the
1023	pseudo-destructor-name and the object-type.
1024
1025	* search.c (accessible_base_p): Handle non-proper bases.
1026
1027	* name-lookup.c (do_nonmember_using_decl): If a using declaration
1028	refers to a single overloaded function, set the type of the
1029	function.
1030	* tree.c (lvalue_type): Simplify.
1031	* typeck.c (type_unknown_p): Do not assume all OVERLOADs have an
1032	unknown type.
1033	(build_unary_op): Handle OVERLOADs with known types.
1034
1035	* decl.c (duplicate_decls): Do not destroy DECL_ARGUMENTS for
1036	function templates.
1037
1038	* parser.c (cp_parser_postfix_expression): Handle the use of
1039	"typename" in non-dependent contexts.  Convert appropriately when
1040	when using a qualified name after "->" or ".".
1041
1042	* call.c (conditional_conversion): Honor the requirement that some
1043	conversions refer to the original object.
1044
1045	* call.c (build_conditional_expr): Do not call force_rvalue for
1046	operands of void_type when the conditional expression itself has
1047	void type.
1048	* name-lookup.c (pushdecl): Don't consider a declaration of a
1049	function named "main" to be an overload of a type named "main".
1050	* parser.c (cp_parser_template_name): Perform name lookup when the
1051	template name is proceeded by "template" if the qualifying scope
1052	is non-dependent.
1053	* typeck.c (composite_pointer_type_r): Correctly handle
1054	pointer-to-member types.
1055	(build_const_cast): Likewise.
1056
10572004-03-16  Mark Mitchell  <mark@codesourcery.com>
1058
1059	PR c++/14586
1060	* cp-tree.h (build_new_op): Change prototype.
1061	(build_x_binary_op): Likewise.
1062	* call.c (build_new_op): Add overloaded_p parameter.
1063	* decl2.c (grok_array_decl): Adjust call to build_new_op.
1064	* parser.c (cp_parser_binary_expression): Note that uses of
1065	overloaded operators prevents an expression from being considered
1066	an integral constant.
1067	* pt.c (tsubst_copy_and_build): Adjust calls to build_new_op and/or
1068	build_x_binary_op.
1069	* semantics.c (finish_call_expr): Likewise.
1070	* typeck.c (rationalize_conditional_expr): Likewise.
1071	(build_x_indirect_ref): Likewise.
1072	(build_x_binary_op): Likewise.
1073	(build_x_unary_op): Likewise.
1074	(build_x_compound_expr): Likewise.
1075	(build_modify_expr): Likewise.
1076	* typeck2.c (build_x_arrow): Likewise.
1077
10782004-03-13  Mark Mitchell  <mark@codesourcery.com>
1079
1080	PR c++/14550
1081	* parser.c (cp_parser_non_integral_constant_expression): Encode
1082	more of the idiom that surrounded calls to this function within
1083	the function itself
1084	(cp_parser_primary_expression): Adjust accordingly.
1085	(cp_parser_postfix_expression): Likewise.
1086	(cp_parser_unary_expression): Likewise.
1087	(cp_parser_cast_expression): Likewise.
1088	(cp_parser_assignment_expression): Likewise.
1089	(cp_parser_expression): Likewise.
1090	(cp_parser_new_expression): Note that new-expressions are not
1091	allowed in integral constant expressions.
1092	(cp_parser_delete_expression): Likewise.
1093
10942004-03-11  Mark Mitchell  <mark@codesourcery.com>
1095
1096	PR c++/14476
1097	* decl.c (xref_tag): Do not create dummy ENUMERAL_TYPEs.
1098
10992004-03-10  Mark Mitchell  <mark@codesourcery.com>
1100
1101	PR c++/14510
1102	* decl.c (xref_tag): Disregard non-type declarations when
1103	looking up a tagged type. 
1104
11052004-03-10  Jason Merrill  <jason@redhat.com>
1106
1107	PR c++/14452
1108	* tree.c (stabilize_init): Return whether or not it worked.
1109	* init.c (build_new_1): If not, use a sentry.
1110	* cp-tree.h: Adjust prototype.
1111
11122004-03-09  Nathan Sidwell  <nathan@garibaldi.home>
1113
1114	PR c++/14397
1115	* call.c (convert_like_real): Build a const qualified temporary,
1116	when testing ctor access.
1117
11182004-03-09  Mark Mitchell  <mark@codesourcery.com>
1119
1120	* call.c (initialize_reference): Fix typo.
1121
11222004-03-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1123
1124	PR c++/14409
1125	* pt.c (determine_specialization): For member templates, match also
1126	constness.
1127
1128	PR c++/14448
1129	* parser.c (cp_parser_initializer_clause): Fold initializer if it is
1130	non-dependent.
1131	* pt.c (tsubst_copy_and_build): Handle NOP_EXPRs.
1132
11332004-03-09  Mark Mitchell  <mark@codesourcery.com>
1134
1135	PR c++/14230
1136	* call.c (initialize_reference): Handle initializers that are
1137	class-member access expressions applies to rvalues.
1138
1139	PR c++/14432
1140	* name-lookup.c (supplement_binding): Ignore functions that are
1141	marked DECL_ANTICIPATED.
1142
11432004-03-08  Mark Mitchell  <mark@codesourcery.com>
1144
1145	PR c++/14401
1146	* class.c (check_field_decls): Complain about non-static data
1147	members of reference type in unions.  Propagate
1148	CLASSTYPE_REF_FIELDS_NEED_INIT and
1149	CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
1150	data members.
1151	* init.c (perform_member_init): Complain about mbmers with const
1152	type that are not explicitly initialized.
1153
11542004-03-08  Jason Merrill  <jason@redhat.com>
1155
1156	PR c++/13170
1157	* decl.c (xref_tag): Remove attribute handling.
1158	* cp-tree.h: Adjust prototype.
1159	* decl.c, parser.c, rtti.c: Adjust callers.
1160	* parser.c (cp_parser_class_head): Pass back attributes in the
1161	class head.
1162	(cp_parser_class_specifier): Adjust.
1163
11642004-03-08  Matt Austern  <austern@apple.com>
1165
1166	PR debug/14079
1167	* name-lookup.c (add_decl_to_level): Add extern variables, as well
1168	as static, to static_decls array.
1169	
11702004-03-01  Jason Merrill  <jason@redhat.com>
1171
1172	PR c++/13944
1173	* except.c (do_free_exception): Remove #if 0 wrapper.
1174	(build_throw): Use it if we elide a copy into the
1175	exception object.
1176
1177	* tree.c (stabilize_call): Fix thinko.
1178
1179	* init.c (build_new_1): Preevaluate initializer.  Simplify EH code.
1180	(build_init): Call a constructor rather than call build_aggr_init
1181	for classes.
1182	* except.c (stabilize_throw_expr): Remove.
1183	(build_throw): Use stabilize_init instead of stabilize_throw_expr.
1184	* tree.c (stabilize_call, stabilize_init): New fns.
1185	* call.c (build_over_call): A constructor no longer returns the
1186	address of the object.
1187
11882004-03-01  Mark Mitchell  <mark@codesourcery.com>
1189
1190	PR c++/14324
1191	* lex.c (retrofit_lang_decl): Treat entities with no linkage as
1192	having C++ linkage for name-mangling purposes.
1193
1194	PR c++/14260
1195	* parser.c (cp_parser_direct_declarator): Recognize constructor
1196	declarators that use a template-id to name the class being
1197	constructed.
1198
1199	PR c++/14337
1200	* pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
1201	(tsubst_expr): Do not call tsubst_copy, even when
1202	processing_template_decl.	
1203
12042004-03-01  Mark Mitchell  <mark@codesourcery.com>
1205
1206	PR c++/14369
1207	* pt.c (build_non_dependent_expr): Do not create a
1208	NON_DEPENDENT_EXPR for a THROW_EXPR.
1209
1210	PR c++/14360
1211	* parser.c (cp_parser_postfix_expression): Do not perform Koenig
1212	lookup if ordinary name-lookup finds a non-function.
1213	* pt.c (tsubst_copy_and_build): Likewise.
1214
1215	PR c++/14361
1216	* parser.c (cp_parser_late_parsing_default_args): Check that there
1217	are no extra tokens after the end of the default-argument
1218	expression.
1219
1220	PR c++/14359
1221	Backport 2004-02-12  Mark Mitchell  <mark@codesourcery.com>
1222	* decl.c (redeclaration_error_message): Correct handling of
1223	templates.
1224	* pt.c (tsubst_friend_declaration): Adjust code to determine
1225	whether or not a friend template is a definition.
1226	(tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs.
1227
12282004-03-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1229
1230	PR c++/14369
1231	* error.c (dump_expr): Handle THROW_EXPR.
1232
12332004-02-29  Mark Mitchell  <mark@codesourcery.com>
1234
1235	PR c++/14138
1236	* name-lookup.h (push_scope): Change prototype.
1237	* name-lookup.c (push_scope): Do not reenter the current class
1238	scope.
1239	* decl.c (grokfndecl): Check return code from push_scope before
1240	calling pop_scope.
1241	* decl2.c (check_classfn): Likewise.
1242	* parser.c (cp_parser_conversion_function_id): Likewise.
1243	(cp_parser_init_declarator): Likewise.
1244	(cp_parser_direct_declarator): Likewise.
1245	(cp_parser_class_specifier): Likewise.
1246	(cp_parser_class_head): Likewise.
1247	(cp_parser_lookup_name): Likewise.
1248	(cp_parser_constructor_declarator_p): Likewise.
1249	* pt.c (instantiate_class_template): Likewise.
1250	(resolve_typename_type): Likewise.
1251
12522004-02-27  Mark Mitchell  <mark@codesourcery.com>
1253
1254	PR debug/12103
1255	* class.c (update_vtable_entry_for_fn): Do not go through
1256	covariance machinery if the type returned by an overrider is the
1257	same as the original.
1258
12592004-02-27  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1260
1261	PR c++/14284
1262	* pt.c (dependent_type_p_r): A template template parameter is a
1263	dependent type.
1264
12652004-02-26  Mark Mitchell  <mark@codesourcery.com>
1266
1267	PR c++/14278
1268	* parser.c (cp_parser_parameter_declaration_list): Commit
1269	to fewer tentative parses.
1270
12712004-02-26  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1272
1273	PR c++/14246
1274	* mangle.c (write_template_arg_literal): Don't rely on identity for
1275	boolean constants.
1276
12772004-02-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1278
1279	PR c++/14250
1280	* cvt.c (build_expr_type_conversion): Type must be complete before
1281	looking up for conversions.
1282
12832004-02-20  Mark Mitchell  <mark@codesourcery.com>
1284
1285	PR c++/14199
1286	* pt.c (tsubst_copy): Call mark_used for a PARM_DECL.
1287
1288	PR c++/14173
1289	* semantics.c (begin_class_definition): Set TYPE_PACKED correctly
1290	for all type variants.
1291
12922004-02-19  Mark Mitchell  <mark@codesourcery.com>
1293
1294	PR c++/14186
1295	* name-lookup.c (push_class_level_binding): Do not complain about
1296	adding a binding for a member whose name is the same as the
1297	enclosing class if the member is located in a base class of the
1298	current class.
1299
13002004-02-19  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1301
1302	PR c++/14181
1303	* parser.c (cp_parser_new_expression): Parse an ill-formed 
1304	direct-new-declarator after a parenthesized type-id to emit good
1305	diagnostic.
1306
13072004-02-17  Mark Mitchell  <mark@codesourcery.com>
1308
1309	PR c++/11326
1310	* cp-tree.h (abi_version_at_least): Remove.
1311	* mangle.c: Include flags.h.
1312
13132004-02-15  Mark Mitchell  <mark@codesourcery.com>
1314
1315	PR c++/13971
1316	* call.c (build_conditional_expr): Handle conversions between
1317	class types which result in differently cv-qualified type
1318	variants.
1319
1320	PR c++/14086
1321	* class.c (delete_duplicate_fields_1): Remove.
1322	(delete_duplicate_fields): Likewise.
1323	(finish_struct_anon): Remove check for members with the same name
1324	as their enclosing class.
1325	(check_field_decls): Do not call duplicate_fields.
1326	* decl.c (grokdeclarator): Remove check for static data members
1327	with the same name as their enclosing class.
1328	* name-lookup.c (push_class_level_binding): Check for members with
1329	the same name as their enclosing class.
1330
13312004-02-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1332
1333	PR c++/14085
1334	* error.c (dump_decl): Handle TEMPLATE_TYPE_PARM.
1335
13362004-02-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1337
1338	PR c++/13635
1339	* pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
1340	has full set of arguments.
1341
13422004-02-13  Mark Mitchell  <mark@codesourcery.com>
1343
1344	PR c++/14122
1345	* cp-tree.h (delete_sanity): Change prototype.
1346	* decl2.c (delete_sanity): Make doing_vec a bool, not an int.
1347	Remove dead code.  Adjust code to warn about deleting an array.
1348	* typekc.c (decay_conversion): Use build_address and build_nop.
1349
1350	PR c++/14108
1351	* search.c (accessible_p): Do not check access in thunks.
1352
13532004-02-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1354
1355	PR c++/13927
1356	* error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations.
1357
13582004-02-13  Mark Mitchell  <mark@codesourcery.com>
1359
1360	PR c++/14083
1361	* call.c (build_conditional_expr): Call force_rvalue on the
1362	non-void operand in the case that one result is a throw-expression
1363	and the other is not.
1364
13652004-02-13  Ian Lance Taylor  <ian@wasabisystems.com>
1366
1367	PR c++/9851
1368	* parser.c (cp_parser_pseudo_destructor_name): Check for errors on
1369	the type name and look ahead for ::~, and bail out early with a
1370	better error message if the parse is going to fail.
1371
13722004-02-10  Mark Mitchell  <mark@codesourcery.com>
1373
1374	* typeck.c (lookup_destructor): Fix typo in error message.
1375
13762004-02-07  Zack Weinberg  <zack@codesourcery.com>
1377
1378	Bug 13856
1379	* optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
1380	* decl.c (duplicate_decls, start_function): Likewise.
1381
13822004-02-07  Zack Weinberg  <zack@codesourcery.com>
1383
1384	* name-lookup.c (pushdecl): Issue shadow warnings directly.
1385	* parser.c (free_parser_stacks): Delete.
1386
13872004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
1388
1389	* rtti.c, tree.c: Update copyright.
1390
13912003-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1392
1393	PR c++/14033
1394	* decl.c (require_complete_types_for_parms): Do not insert
1395	error_mark_node in the parameter list.
1396
13972003-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1398
1399	PR c++/14028
1400	* parser.c (cp_parser_enclosed_template_argument_list): Emit straight
1401	error when terminator can not be found.
1402
14032004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
1404
1405	Make-lang.in (po-generated):  Delete.
1406
14072004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1408
1409	PR middle-end/13750
1410	Revert:
1411	2004-01-15  Geoffrey Keating  <geoffk@apple.com>
1412	PR pch/13361
1413	* cp/lex.c (handle_pragma_interface): Duplicate string from tree.
1414	(handle_pragma_implementation): Likewise.
1415
14162004-02-05  Mark Mitchell  <mark@codesourcery.com>
1417
1418	PR c++/13714
1419	* typeck.c (lookup_destructor): Tweak error message.
1420
14212004-02-05  Paul Brook  <paul@codesourcery.com>
1422
1423	Backport from mainline.
1424
1425	2003-11-05  Mark Mitchell  <mark@codesourcery.com>
1426
1427	* decl.c (cxx_push_function_context): Do not set
1428	current_function_is_thunk.
1429	* method.c (use_thunk): Set CALL_FROM_THUNK on the call to the
1430	actual function.
1431
14322004-02-04  Mark Mitchell  <mark@codesourcery.com>
1433
1434	PR c++/13932
1435	* call.c (convert_like_real): Use "converting" rather than
1436	"argument" as the descriptive keyword to
1437	dubious_conversion_warnings.
1438	* typeck.c (convert_for_assignment): Do not call
1439	dubious_conversion_warnings.
1440
14412004-02-04  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1442
1443	PR c++/13086
1444	* init.c (build_delete): Emit a more informative error message in
1445	case of an incomplete type, and on the correct source line.
1446
14472004-02-04  Mark Mitchell  <mark@codesourcery.com>
1448
1449	PR c++/9941
1450	* rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
1451	linkage for the typeinfo name string.
1452
1453	PR c++/13969
1454	* cp-tree.h (fold_non_dependent_expr): New function.
1455	* parser.c (cp_parser_fold_non_dependent_expr): Remove.
1456	(cp_parser_template_argument): Use fold_non_dependent_expr.
1457	(cp_parser_direct_declarator): Likewise.
1458	* pt.c (fold_non_dependent_expr): New function.
1459	(convert_nontype_argument): Use it.
1460	(tsubst_qualified_id): Simplify.
1461	(tsubst_copy_and_build): Likewise.
1462
14632003-02-04  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1464
1465	PR c++/13997
1466	* pt.c (more_specialized_class): Increase processing_template_decl
1467	while partial ordering.
1468
14692004-02-03  Mark Mitchell  <mark@codesourcery.com>
1470
1471	PR c++/13950
1472	* parser.c (cp_parser_class_name): Robustify.
1473
1474	PR c++/13970
1475	* parser.c (cp_parser_cache_group): Do not consume the EOF token.
1476
14772004-02-03  Mark Mitchell  <mark@codesourcery.com>
1478
1479	PR c++/13925
1480	* decl.c (start_function): Do not call pushdecl for any
1481	instantiation or specialization of a primary template.
1482
1483	PR c++/14002
1484	* semantics.c (finish_id_expression): Do not return an
1485	IDENTIFIER_NODE when lookup finds a PARM_DECL.
1486
1487	PR c++/13978
1488	* pt.c (build_non_dependent_expr): Do not build
1489	NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.
1490
1491	PR c++/13968
1492	* semantics.c (finish_id_expression): Do not return an
1493	IDENTIFIER_NODE when lookup finds a VAR_DECL.
1494
1495	PR c++/13975
1496	* parser.c (cp_parser_simple_declaration): When skipping to the
1497	end of the statement swallow the terminating semicolon.
1498
14992004-02-02  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1500
1501	DR206
1502	PR c++/13813
1503	* decl.c (grokdeclarator): Check immediatly type completeness for
1504	non-dependent types.
1505
15062004-01-30  Mark Mitchell  <mark@codesourcery.com>
1507
1508	PR c++/13113
1509	* init.c (build_offset_ref): Improve error recovery for invalid
1510	uses of non-static member functions.
1511
1512	PR c++/13854
1513	* cp-tree.h (cp_build_type_attribute_variant): New function.
1514	* class.c (build_clone): Use cp_build_type_attribute_variant.
1515	* decl.c (duplicate_decls): Likewise.
1516	* pt.c (copy_default_args_to_explicit_spec): Likewise.
1517	(tsubst_function_type): Likewise.
1518	* tree.c (build_exception_variant): Check attributes before
1519	concluding that two types are the same.
1520	(cp_build_type-attribute_variant): New method.
1521	* typeck.c (merge_types): Use cp_build_type_attribute_variant.
1522
1523	PR c++/13907
1524	* call.c (convert_class_to_reference): Keep better track of
1525	pedantically invalid user-defined conversions.
1526
15272004-02-02  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1528
1529	PR c++/13957
1530	* pt.c (tsubst_qualified_id): Improved error message when a type
1531	is expected but	not found.
1532
15332004-01-30  Michael Matz  <matz@suse.de>
1534
1535	* parser.c (cp_parser_labeled_statement): Accept case ranges.
1536
15372004-01-28  Jan Hubicka  <jh@suse.czi
1538
1539	* semantics.c (expand_body)  Do emit_associated_thunks before
1540	expansion.
1541
15422004-01-30  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1543
1544	PR c++/13683
1545	* call.c (convert_arg_to_ellipsis): Don't emit a warning if within
1546	a sizeof expression.block
1547
15482004-01-29  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1549
1550	* parser.c (cp_parser_template_id): Parse tentatively `[:' after a
1551	template name as it was `<::' (digraph typo).
1552	(cp_parser_nth_token_starts_template_argument_list_p): New function.
1553	(cp_parser_id_expression): Use it.
1554	(cp_parser_nested_name_specifier_opt): Likewise.
1555	(cp_parser_template_name): Likewise.
1556	(cp_parser_class_name): Likewise.
1557	(cp_lexer_get_preprocessor_token): Use c_lex_with_flags.
1558
15592004-01-29  Mark Mitchell  <mark@codesourcery.com>
1560
1561	PR c++/13883
1562	* mangle.c (write_encoding): Correct encoding of member template
1563	constructors.
1564
15652004-01-28  Mark Mitchell  <mark@codesourcery.com>
1566
1567	PR c++/13791
1568	* typeck.c (merge_types): Do not merge attributes into
1569	TYPENAME_TYPEs.
1570
15712004-01-28  Mark Mitchell  <mark@codesourcery.com>
1572
1573	PR c++/13736
1574	* parser.c (cp_parser_direct_declarator): Do not prevent
1575	backtracking inside a parenthesized declarator.
1576	(cp_parser_parameter_declaration): Fix typo in comment.
1577
15782004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1579
1580	* cp-tree.h (language_function, lang_type_header): Use
1581	BOOL_BITFIELD.
1582	* name-lookup.h (cp_binding_level): Likewise.
1583
15842004-01-26  Mark Mitchell  <mark@codesourcery.com>
1585
1586	PR c++/13663
1587	* semantics.c (finish_for_expr): Check for unresolved overloaded
1588	functions.
1589
15902004-01-26  Mark Mitchell  <mark@codesourcery.com>
1591
1592	* class.c (add_method): Just check processing_template_decl to
1593	determine whether or not we are within a template.
1594	* decl2.c (maybe_retrofit_in_chrg): Likewise.
1595	* init.c (decl_constant_value): Check the type of the declaration,
1596	not TREE_READONLY.
1597	* name-lookup.c (maybe_push_to_top_level): Rename to ...
1598	(push_to_top_level): ... this.
1599	* name-lookup.h (maybe_push_to_top_level): Do not declare it.
1600	* pt.c (push_template_decl_real): Reorder condition for speed.
1601	(convert_template_argument): Use dependency-checking functions in
1602	place of uses_template_parms.
1603	(lookup_template_class): Avoid calling uses_template_parms more
1604	than once.
1605	(uses_template_parms): Reimplement, using dependency-checking
1606	functions.
1607	(instantiate_class_template): Use push_to_top_level, not
1608	maybe_push_to_top_level.
1609	(type_unification_real): Simplify.
1610	(type_dependent_expression_p): Handle OFFSET_REFs and
1611	TEMPLATE_DECLs.
1612	(any_dependent_template_arguments_p): Handle multiple levels of
1613	template argument.
1614	* semantics.c (expand_or_defer_fn): Do not check
1615	uses_template_parms for template instantiations.
1616	* typeck.c (comptypes): Avoid calling cp_type_quals.
1617
16182004-01-25  Mark Mitchell  <mark@codesourcery.com>
1619
1620	PR c++/13833
1621	* call.c (build_over_call): Do not convert arguments when
1622	processing a template.
1623	* pt.c (build_non_dependent_expr): Do not build a
1624	NON_DEPENDENT_EXPR for arithmetic constants.
1625
16262004-01-25  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1627
1628	PR c++/13810
1629	* parser.c (cp_parser_type_parameter): When cp_parser_id_expression
1630	returns a TYPE_DECL. no further lookup is required.
1631	* semantics.c (check_template_template_default_arg): A TYPE_DECL
1632	is invalid. Rework to give better diagnostics.
1633
16342004-01-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1635
1636	PR c++/13797
1637	* pt.c (instantiate_class_template): Add an error_mark_node
1638	check.
1639	(tsubst_decl) <TEMPLATE_DECL case>: Likewise.
1640
16412004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
1642
1643	* call.c: Update copyright.
1644	* class.c: Likewise.
1645	* decl2.c: Likewise.
1646	* except.c: Likewise.
1647	* expr.c: Likewise.
1648	* init.c: Likewise.
1649	* mangle.c: Likewise.
1650	* optimize.c: Likewise.
1651	* typeck.c: Likewise.
1652	* typeck2.c: Likewise.
1653
16542004-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
1655
1656	PR c++/13701
1657	* decl.c (finish_function): Move the call to
1658	finish_fname_decls below the call to
1659	finish_eh_spec_block.
1660
16612004-01-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1662
1663	* parser.c (cp_parser_class_specifier): Prevent garbage collection.
1664
16652004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
1666
1667	* Make-lang.in: Replace $(docdir) with doc.
1668	(c++.info, c++.srcinfo): Dummy entry.
1669	(c++.man, c++.srcman): New rules.
1670	(c++.install-man): Revamp rule.
1671
16722004-01-19  Kelley Cook  <kcook@gcc.gnu.org>
1673
1674	* Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
1675	CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
1676	immediate $(shell) instead of deferred backquote.
1677
16782004-01-19  Mark Mitchell  <mark@codesourcery.com>
1679
1680	PR c++/13651
1681	* parser.c (cp_parser_postfix_expression): When encountering
1682	incomplete type on left-hand side of "->" or ".", treat the entire
1683	expression as erroneous.
1684
16852004-01-19  Mark Mitchell  <mark@codesourcery.com>
1686
1687	PR c++/13592
1688	* call.c (build_field_call): Remove.
1689	(n_build_method_call): Likewise.
1690	(build_method_call): Likewise.
1691	(build_new_method_call): Do not call build_field_call.
1692	* class.c (n_build_method_call): Remove.
1693	(print_class_statistics): Do not print it.
1694	* cp-tree.h (build_method_call): Remove declaration.
1695	(finish_object_call_expr): Likewise.
1696	(build_new_1): Do not use build_method_call.
1697	* parser.c (cp_parser_postfix_expression): Use finish_call_expr
1698	when the function appearing on the right-hand-side of "." or "->"
1699	is not actually a function.
1700	* pt.c (tsubst_copy_and_build): Likewise.
1701	* semantics.c (finish_object_call_expr): Remove.
1702
17032004-01-18  Mark Mitchell  <mark@codesourcery.com>
1704
1705	PR c++/13710
1706	* pt.c (tsubst): Use finish_typeof.
1707
17082004-01-18  Jason Merrill  <jason@redhat.com>
1709
1710	PR c++/11725
1711	* except.c (build_throw): In a template, set
1712	current_function_returns_abnormally.
1713
17142004-01-17  Fred Fish  <fnf@intrinsity.com>
1715
1716	PR c++/11895
1717	* decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
1718	except don't call array_type_nelts() with a VECTOR_TYPE.
1719
17202004-01-16  Jan Hubicka  <jh@suse.cz>
1721
1722	* mangle.c (write_mangled_name): Remove inline modifier.
1723
17242004-01-16  Mark Mitchell  <mark@codesourcery.com>
1725
1726	PR c++/13574
1727	* decl.c (compute_array_index_type): Fix grammar in comment.
1728	* init.c (build_zero_init): Handle zero-sized arrays correctly.
1729
1730	PR c++/13178
1731	* call.c (name_as_c_string): Print conversion operator names
1732	correctly.
1733
1734	PR c++/13478
1735	* call.c (initialize_reference): Pass -1 for inner parameter to
1736	convert_like_real.
1737
17382004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1739
1740	PR c++/13407
1741	* parser.c (cp_parser_base_specifier): Check for an invalid
1742	keyword `typename' and emit an user-friendly error message.
1743
17442004-01-15  Geoffrey Keating  <geoffk@apple.com>
1745
1746	PR pch/13361
1747	* cp/lex.c (handle_pragma_interface): Duplicate string from tree.
1748	(handle_pragma_implementation): Likewise.
1749
17502004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1751
1752	PR c++/9259
1753	* typeck.c (build_class_member_access_expr): Allow to access members
1754	of the currently open class.
1755	(finish_class_member_access_expr): Likewise.
1756
17572004-01-15  Alexandre Oliva  <aoliva@redhat.com>
1758
1759	PR c++/13659
1760	* name-lookup.c (validate_nonmember_using_decl): Take scope and
1761	name by value, instead of computing them.
1762	(do_local_using_decl, do_toplevel_using_decl): Add scope and name
1763	arguments.  Pass them to validate_nonmember_using_decl.
1764	* name-lookup.h (do_local_using_decl): Adjust.
1765	(do_toplevel_using_decl): Likewise.
1766	* parser.c (cp_parser_using_declaration): Likewise.
1767	* pt.c (tsubst_expr): Likewise.
1768
17692004-01-15  Alexandre Oliva  <aoliva@redhat.com>
1770
1771	PR c++/13594
1772	PR c++/13658
1773	* name-lookup.c (qualified_lookup_using_namespace): Search
1774	strongly-associated namespaces first, and only then try other
1775	namespaces.
1776
17772004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
1778
1779	* Make-lang.in (c++.srcextra): Dummy entry.
1780
17812004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1782
1783	PR c++/8856
1784	* parser.c (cp_parser_template_name): Don't try to parse a
1785	conversion-function-id, as it cannot be a template-name.
1786	(cp_parser_simple_type_specifier): Check for invalid template-ids
1787	even after a built-in type.
1788
17892004-01-14  Jan Hubicka  <jh@suse.cz>
1790
1791	PR c++/12850
1792	* pt.c (instantiate_decl):  Do not increase function_depth.
1793
17942004-01-14  Danny Smith  <dannysmith@users,sourceforge.net>
1795
1796	PR c++/9021
1797  	PR c++/11005
1798	* parser.c (cp_parser_elaborated_type_specifier): Warn about
1799	attributes and discard.
1800	* decl.c (xref_tag): Don't overwite existing attributes with
1801	NULL_TREE.
1802
18032004-01-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1804
1805	PR c++/12335
1806	* parser.c (cp_parser_lookup_name): Return error_mark_node if there
1807	is no destructor while looking up a BIT_NOT_EXPR.
1808
18092004-01-13  Ian Lance Taylor  <ian@wasabisystems.com>
1810
1811	* cxxfilt.c: Remove unused file.
1812
18132004-01-14  Jan Hubicka  <jh@suse.cz>
1814
1815	Partial fix to PR c++/12850
1816	* decl2.c (mark_used): Do not proactively instantiate templates
1817	when compiling in unit-at-a-time or not optimizing.
1818	* optimize.c (maybe_clone_body): Do not increase function depth.
1819
18202004-01-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1821
1822	PR c++/13474
1823	* pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
1824
18252003-01-12  Steven Bosscher  <stevenb@suse.de>
1826
1827	PR c++/13558
1828	* parser.c (cp_parser_member_declaration): Any non-type is also
1829	not a class or a function.
1830
18312004-01-12  Jason Merrill  <jason@redhat.com>
1832
1833	PR c++/12815
1834	* class.c (build_base_path): Do not mark vtable references as
1835	TREE_CONSTANT.
1836	(build_vtbl_ref_1): Likewise.
1837
18382004-01-12  Richard Henderson  <rth@redhat.com>
1839
1840	PR opt/10776
1841	* typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
1842	(store_init_value): Use it.
1843	* decl.c (check_initializer): Expect full initialization code
1844	from store_init_value.
1845	* init.c (expand_aggr_init_1): Likewise.
1846	* decl2.c (maybe_emit_vtables): Abort if runtime init needed.
1847
18482004-01-12  Mark Mitchell  <mark@codesourcery.com>
1849
1850	* class.c (layout_class_type): For non-POD class types, also copy
1851	the DECL_SIZE and DECL_MODE of fields to the base class type.
1852
18532004-01-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1854
1855	PR c++/13289
1856	* pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
1857	calling regenerate_decl_from_template.
1858
18592004-01-12  Scott Brumbaugh  <scottb.lists@verizon.net>
1860
1861	PR c++/4100
1862	* parser.c (cp_parser_decl_specifier_seq): Add check for a friend
1863	decl-specifier occurring along with a class definition.
1864
18652004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
1866
1867	* parser.c (cp_parser_decl_specifier_seq): Add parenthetical
1868	clauses to comments describing declares_class_or_enum.
1869	(cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
1870	false.
1871
18722004-01-12  Jan Hubicka  <jh@suse.cz>
1873
1874	* pt.c (for_each_template_parm): Do not check for duplicates.
1875	(for_each_template_parm): Use walk_tree duplicate checking code.
1876
18772004-01-11  Ian Lance Taylor  <ian@wasabisystems.com>
1878
1879	PR c++/3478
1880	* parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
1881	is error_mark_node, don't add any more decl_specs.
1882	(cp_parser_init_declarator): After committing to a declaration, if
1883	the decl_specifiers start with error_mark_node, issue an error and
1884	change the type to "int".
1885
18862004-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
1887
1888	PR bootstrap/7817
1889	* Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
1890
18912004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1892
1893	DR 337
1894	PR c++/9256
1895	* pt.c (tsubst): Substitution must fail if we are attempting to
1896	create an array with element type that is an abstract class type.
1897	* decl.c (cp_finish_decl): Strip pointers and array types recursively
1898	before calling abstract_virtuals_error.
1899
19002004-01-09  Alexandre Oliva  <aoliva@redhat.com>
1901
1902	* name-lookup.c (qualified_lookup_using_namespace): Consider
1903	strong using directives even if we've already found a binding.
1904
19052004-01-09  Mark Mitchell  <mark@codesourcery.com>
1906
1907	* cp-tree.h (cxx_expand_expr): Change prototype.
1908	* expr.c (cxx_expand_expr): Add alt_rtl parameter.
1909
19102004-01-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1911
1912	PR c++/12573
1913	* pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
1914	looking into them recursively. They can be there because of the
1915	new __offsetof__ extension.
1916
19172004-01-07  Zack Weinberg  <zack@codesourcery.com>
1918
1919	* parser.c (cp_parser_save_member_function_body): Mark the
1920	definition static.
1921
19222004-01-05  Mark Mitchell  <mark@codesourcery.com>
1923
1924	PR c++/13057
1925	* class.c (build_clone): Copy type attributes from the original
1926	function to the clone.
1927
1928	PR c++/12815
1929	* class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
1930	references as constant.
1931
1932	PR c++/12132
1933	* parser.c (cp_parser_explicit_instantiation): Improve error
1934	recovery.
1935	(cp_parser_require): Improve indication of the error location.
1936
1937	PR c++/13451
1938	* parser.c (cp_parser_class_head): Reorder logic to check for
1939	invalid qualification.
1940
19412004-01-04  Mark Mitchell  <mark@codesourcery.com>
1942
1943	PR c++/13157
1944	* name-lookup.c (lookup_using_namespace): Remove spacesp
1945	parameter.
1946	(unqualified_namespace_lookup): Likewise.
1947	(lookup_qualified_name): Adjust accordingly.
1948	(lookup_name_real): Likewise.
1949	(lookup_arg_dependent): Do not eliminate the namespace of the
1950	functions found by unqualified name lookup unless that is the
1951	current namespace.
1952
19532004-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
1954
1955	* semantics.c (push_deferring_access_checks): Fix format.
1956	(resume_deferring_access_checks): Likewise.
1957	(stop_deferring_access_checks): Likewise.
1958	(pop_deferring_access_checks): Likewise.
1959	(get_deferred_access_checks): Likewise.
1960	(pop_to_parent_deferring_access_checks): Likewise.
1961	(perform_deferred_access_checks): Likewise.
1962	(perform_or_defer_access_check): Likewise.
1963
19642004-01-04  Richard Henderson  <rth@redhat.com>
1965
1966	* call.c (build_over_call): Don't create a save_expr of an
1967	aggregate, but rather its address.
1968
19692004-01-04  Mark Mitchell  <mark@codesourcery.com>
1970
1971	PR c++/13529
1972	* parser.c (cp_parser_postfix_expression): Allow "." to appear in
1973	an offsetof expression.
1974
1975	* parser.c (cp_parser_parameter_declaration): Fix comment.
1976
1977	PR c++/12226
1978	* call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
1979	(reference_binding): Set it when appropriate.
1980	(build_temp): New function, split out from ...
1981	(convert_like_real): ... here.  Honor CHECK_COPY_CONSTRUCTOR_P.
1982	(initialize_reference): Likewise.
1983
1984	PR c++/13536
1985	* parser.c (cp_parser): Add in_type_id_in_expr_p.
1986	(cp_parser_new): Initialize it.
1987	(cp_parser_postfix_expression): Set it.
1988	(cp_parser_sizeof_operand): Likewise.
1989	(cp_parser_parameteR_declaration): Do not commit early to tenative
1990	parsers when in_type_id_in_expr_p is set.
1991
19922004-01-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1993
1994	PR c++/13094
1995	* parser.c (cp_parser_template_argument): Don't call
1996	make_unbound_class_template directly.
1997	(cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
1998	UNBOUND_CLASS_TEMPLATE tree node.
1999
20002004-01-02  Richard Sandiford  <rsandifo@redhat.com>
2001
2002	PR target/12729
2003	* method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
2004
20052004-01-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2006
2007	PR c++/13520
2008	* cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
2009	(DECL_FUNCTION_TEMPLATE_P): Use it.
2010	(DECL_CLASS_TEMPLATE_P): Likewise.
2011	* parser.c (cp_parser_lookup_name): Add is_template parameter.
2012	(cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
2013	(cp_parser_template_name): Likewise.
2014	(cp_parser_elaborated_type_specifier): Likewise.
2015	(cp_parser_namespace_name): Likewise.
2016	(cp_parser_class_name): Likewise.
2017	(cp_parser_lookup_name_simple): Likewise.
2018
2019See ChangeLog.3 for earlier changes.
2020