12004-09-06  Release Manager
2
3	* GCC 3.4.2 released.
4
52004-08-25  Roger Sayle  <roger@eyesopen.com>
6
7	PR middle-end/16693
8	PR tree-optimization/16372
9	* decl.c (finish_enum): Make the precision of the enumerated type
10	the same width as the underlying integer type.
11
122004-08-24  Jason Merrill  <jason@redhat.com>
13
14	PR c++/16851
15	* tree.c (stabilize_init): See through a COMPOUND_EXPR.
16
17	PR c++/15461
18	* semantics.c (nullify_returns_r): Replace a DECL_STMT
19	for the NRV with an INIT_EXPR.
20
212004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
22
23	PR c++/16889
24	* (is_subobject_of_p): Resurrect & optimize.
25	(lookup_field_r): Use it.
26
272004-08-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
28
29	PR c++/16706
30	* search.c (friend_accessible_p): Increment processing_template_decl
31	when deal with TEMPLATE_DECL of SCOPE.
32
332004-08-23  Janis Johnson  <janis187@us.ibm.com>
34
35	Backports from mainline:
36
37	2004-02-27  Ziemowit Laski  <zlaski@apple.com>
38	2004-03-24  Ziemowit Laski  <zlaski@apple.com>
39
40	* Make-lang.in (cp/mangle.o): Depend on $(TARGET_H).
41        * mangle.c (write_type): Add call to 'mangle_fundamental_type'
42        target hook.
43	* tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs.
44
452004-08-19  Mark Mitchell  <mark@codesourcery.com>
46
47	PR c++/15890
48	* pt.c (push_template_decl_real): Disallow template allocation
49	functions with fewer than two parameters.
50
512004-08-18  Mark Mitchell  <mark@codesourcery.com>
52
53	PR c++/17068
54	* pt.c (dependent_template_p): Treat IDENTIFIER_NODEs as
55	dependent.
56
572004-08-17  Mark Mitchell  <mark@codesourcery.com>
58
59	PR c++/16246
60	* pt.c (unify): Make sure that non-type arguments have the same
61	type as the corresponding parameter.
62
632004-08-12  Mark Mitchell  <mark@codesourcery.com>
64
65	PR c++/16273
66	* class.c (count_depth_data): New type.
67	(dfs_depth_post): New function.
68	(dfs_depth_q): Likewise.
69	(find_final_overrider_data_s): Change type of vpath.
70	Add vpath_list.
71	(dfs_find_final_overrider_1): New function.
72	(dfs_find_final_overrider): Use it.
73	(dfs_find_final_overrider_q): Adjust use of vpath.
74	(dfs_find_final_overrider_post): Likewise.
75	(find_final_overrider): Use dfs_depth.  Allocate and deallocate
76	vpath_list.
77
782004-08-12 Jan Beulich <jbeulich@novell.com>
79
80	* parser.c (cp_parser_asm_definition): Properly consume scope operator
81	tokens preceding the clobbers. Don't check for scope operator
82	following inputs. Simplify inputs handling to match that now used for
83	clobbers.
84
852004-08-11  Mark Mitchell  <mark@codesourcery.com>
86
87	PR c++/16698
88	* except.c (build_throw): Allocate cleanup_type and the function
89	for __cxa_throw separately.
90
912004-08-11  Mark Mitchell  <mark@codesourcery.com>
92
93	PR c++/16717
94	* semantics.c (expand_body): Do not update static_ctors and
95	static_dtors here.
96	(expand_or_defer_fn): Do it here, instead.
97
98	PR c++/16853
99	* call.c (standard_conversion): Do not accept conversions between
100	pointers to members if the class types are unrelated.
101
102	PR c++/16870
103	* pt.c (tsubst): Just return the unknown_type_node.
104
105	PR c++/16964
106	* parser.c (cp_parser_class_specifier): Robustify.
107
108	PR c++/16904
109	* pt.c (tsubst_copy_and_build): Complain about invalid
110	qualification.
111
112	PR c++/16929
113	* pt.c (tsubst_default_argument): Clear out current_class_ptr and
114	current_class_ref while tsubsting.
115
1162004-08-01  Mark Mitchell  <mark@codesourcery.com>
117
118	PR c++/16224
119	* name-lookup.c (decl_namespace): Remove.
120	(current_decl_namespace): Use decl_namespace_context instead of
121	decl_namespace.
122	(push_decl_namespace): Likewise.
123	(arg_assoc_class): Likewise.
124	(arg_assoc_type): Likewise.
125	* pt.c (check_specialization_namespace): New function.
126	(maybe_process_partial_specialization): Use it.
127	(register_specialization): Likewise.
128
1292004-08-01  Mark Mitchell  <mark@codesourcery.com>
130
131	PR c++/16489
132	* cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): New macro.
133	* call.c (null_ptr_cst_p): Handle variables with constant
134	initializers.
135	* pt.c (convert_nontype_argument): Use
136	DECL_INTEGRAL_CONSTANT_VAR_P.
137	* semantics.c (finish_id_expression): Likewise.
138
139	PR c++/16529
140	* decl.c (duplicate_decls): Reject duplicate namespace
141	declarations.
142
143	PR c++/16810
144	* typeck.c (build_ptrmemfunc): Loosen assertion.
145
1462004-07-28  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
147
148	PR c++/13092
149	* init.c (build_offset_ref): Build SCOPE_REF with non-null
150	TREE_TYPE for non-dependent names.
151	* typeck.c (build_x_unary_op): Handle non-dependent SCOPE_REF.
152	* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
153	unknown_type_node as its TREE_TYPE.
154	* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
155	* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
156	(dump_expr) <SCOPE_REF case>: Likewise.
157
1582004-07-21  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
159
160	PR c++/16175
161	* error.c (dump_type) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Output
162	cv qualifier.
163
1642004-07-20  Mark Mitchell  <mark@codesourcery.com>
165
166	(cp_parser_simple_type_specifier): Fix typo.
167
168	PR c++/16637
169	* parser.c (cp_parser_simple_type_specifier): Do not record usage
170	of globally-qualified names.
171
1722004-07-12  Andrew Pinski  <apinski@apple.com>
173
174	PR c++/16475
175	Revert:
176	2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
177		PR c++/16276
178		* rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
179        	is not public.
180
181
1822004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
183
184	PR c++/16276
185	* rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
186	is not public.
187
1882004-07-01  Release Manager
189
190	* GCC 3.4.1 released.
191
1922004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
193
194	PR C++/16174
195	* call.c (build_temp): Declare.
196	(check_constructor_callable): New.
197	(reference_binding): Only set CHECK_COPY_CONSTRUCTOR if not for
198	CONSTRUCTOR_CALLABLE.
199	(convert_like_real, initialize_reference): Use
200	check_constructor_callable.
201	* cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): New.
202	(LOOKUP_*): Renumber.
203
2042004-06-25  Jan Hubicka  <jh@suse.cz>
205
206	PR C++/14865
207	* decl2.c (maybe_emit_vtables):  Always import_export_vtable for the
208	reachability analysis.
209
2102004-06-22  Jan Hubicka  <jh@suse.cz>
211
212	PR C++/14950
213	* pt.c (instantiate_decl): Clean TI_PENDING_TEMPLATE_FLAG before
214	expanding the function.
215
2162004-06-21  Nathan Sidwell  <nathan@codesourcery.com>
217
218	PR c++/3518
219	* pt.c (check_cv_quals_for_unify): Ignore bogus CV quals at outer
220	level.
221
222	PR c++/14007
223	* pt.c (check_cv_quals_for_unify): Correct logic for disallowed
224	cv-qualifier unification.
225	* tree.c (cp_build_qualified_type_real): Renable DR295 logic.
226
2272004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
228
229	PR c++/15967
230	* search.c (build_new_1): Robustify.
231
2322004-06-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
233
234	PR c++/15947
235	* parser.c (cp_parser_template_name): Ctors/dtors never need a
236	template keyword to disambiguate.
237
2382004-06-14  Mark Mitchell  <mark@codesourcery.com>
239
240	PR c++/15096
241	* decl.c (grokdeclarator): Ignore pointer-to-members when
242	computing template depth.
243
244	PR c++/14930
245	* name-lookup.c (pushtag): Do not try to put class declarations in
246	explicit specialization scopes.
247
248i2004-06-11  Mark Mitchell  <mark@codesourcery.com>
249
250	PR c++/15862
251	* name-lookup.c (unqualified_namespace_lookup): Do not ignore type
252	bindings for undeclared built-ins.
253
2542004-06-10  Jason Merrill  <jason@redhat.com>
255
256	PR c++/15875
257	Revert:
258	2004-06-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
259	* init.c (build_offset_ref): Build SCOPE_REF with non-null
260	TREE_TYPE for non-dependent names.
261	* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
262	unknown_type_node as its TREE_TYPE.
263	* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
264	* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
265	(dump_expr) <SCOPE_REF case>: Likewise.
266
2672004-06-10  Mark Mitchell  <mark@codesourcery.com>
268
269	PR c++/15227
270	* parser.c (cp_parser_direct_declarator): Robustify.
271
272	PR c++/15877
273	* pt.c (tsubst_copy): Use decl_constant_value on enumeration
274	constants in non-dependent contexts.
275
276	PR c++/14211
277	PR c++/15076
278	* typeck.c (build_static_cast): Wrap casts in NON_LVALUE_EXPR when
279	necessary.
280
2812004-06-09  Mark Mitchell  <mark@codesourcery.com>
282
283	Revert:
284	PR c++/15815
285	2004-06-07  Mark Mitchell  <mark@codesourcery.com>
286	* lex.c (handle_pragma_interface): Deprecate.
287	(handle_pragma_implementation): Likewise.
288
2892004-06-07  Dan Kegel  <dank@kegel.com>
290
291	PR c++/14808
292	* method.c (make_alias_for_thunk, use_thunk): Use TARGET_IS_PE_COFF
293	instead of __CYWGIN__ and __MINGW32__.
294
2952004-06-07  Mark Mitchell  <mark@codesourcery.com>
296
297	PR c++/15815
298	* lex.c (handle_pragma_interface): Deprecate.
299	(handle_pragma_implementation): Likewise.
300
301	PR c++/15766
302	* parser.c (cp_parser_iteration_statement): Fix typo in error
303	message.
304
305	PR c++/14777
306	* pt.c (tsubst_default_argument): Do not defer access checks
307	while substituting into the default argument.
308
309	PR c++/15554
310	* pt.c (tsubst_copy): Do not try to substitute for an enumeration
311	constant in a non-dependent context.
312
313	PR c++/15057
314	* except.c (build_throw): Ensure that temp_expr has been
315	initialized.
316
3172004-06-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
318
319	PR c++/15503
320	* parser.c (cp_parser_mem_initializer_id): Gracefully reject
321	'typename', and accept 'template'.
322
3232004-06-01  Jason Merrill  <jason@redhat.com>
324
325	PR c++/15142
326	* call.c (call_builtin_trap): Remove type parm.
327	(convert_arg_to_ellipsis): Change a non-POD argument to integer type.
328	(build_x_va_arg): Dereference a null pointer for a non-POD argument.
329
3302004-06-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
331
332	PR c++/13092
333	* init.c (build_offset_ref): Build SCOPE_REF with non-null
334	TREE_TYPE for non-dependent names.
335	* pt.c (type_dependent_expression_p): Handle SCOPE_REF with
336	unknown_type_node as its TREE_TYPE.
337	* cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
338	* error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
339	(dump_expr) <SCOPE_REF case>: Likewise.
340
3412004-06-01  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
342
343	PR c++/14932
344	* parser.c (cp_parser_postfix_expression): Allow subscript
345	operator in offsetof.
346
3472004-05-31  Mark Mitchell  <mark@codesourcery.com>
348
349	PR c++/15701
350	* friend.c (add_friend): Do not try to perform access checks for
351	functions from dependent classes.
352
353	PR c++/15742
354	* call.c (build_over_call): Set
355	current_function_returns_abnormally even in template functions.
356
357	PR c++/15696
358	* cp-tree.h (invalid_nonstatic_memfn_p): New function.
359	* cvt.c (convert_to_void): Use it.
360	* typeck.c (invalid_nonstatic_memfn_p): New function.
361	(decay_conversion): Use it.
362
363	PR c++/15625
364	* pt.c (tsubst_decl): Set DECL_FRIEND_CONTEXT for instantiated
365	templates.
366
367	PR c++/15629
368	* name-lookup.c (arg_assoc_class): Do not find template
369	specializations.
370
371	PR c++/15209
372	* tree.c (lvalue_p_1): Only consider the right-hand side of "."
373	expressions when determining whether or not an express is packed.
374
3752004-05-28  Mark Mitchell  <mark@codesourcery.com>
376
377	PR c++/15083
378	* decl2.c (delete_sanity): Set TREE_SIDE_EFFECTS on a DELETE_EXPR,
379	even in a templat.e
380	* init.c (build_new): Likewise.
381
382	PR c++/15640
383	* name-lookup.c (arg_assoc): Robustify.
384
385	PR c++/15471
386	* typeck.c (unary_complex_lvalue): Use context_for_name_lookup
387	when determining the scope to use for a pointer to member.
388	(lookup_anon_field): Give it external linkage.
389	* cp-tree.h (lookup_anon_field): Declare it.
390	* expr.c (cplus_expand_constant): Use it.
391
392	PR c++/14668
393	* parser.c (cp_parser_simple_type_specifier): Call
394	maybe_note_name_used_in_class.
395
3962004-05-23  Mark Mitchell  <mark@codesourcery.com>
397
398	PR c++/15044
399	* parser.c (cp_parser_class_head): Robustify.
400
401	PR c++/15317
402	* parser.c (cp_parser_decl_specifier_seq): Correct error in
403	comment.
404	(cp_parser_constructor_declarator_p): Treat attributes
405	as decl-specifiers.
406
407	PR c++/15329
408	* typeck.c (build_unary_op): Do not attempt to resolve casts to
409	base classes in templates.
410
411	PR c++/15165
412	* pt.c (instantiate_template): Robustify.
413
414	PR c++/15025
415	* decl.c (xref_tag): Issue errors about redeclaring template
416	classes as non-template classes.
417
418	PR c++/14821
419	* name-lookup.c (supplement_binding): Allow redefinitions of
420	namespace aliases.
421
422	PR c++/14883
423	* parser.c (cp_parser_template_argument): Robustify.
424
4252004-05-22  Mark Mitchell  <mark@codesourcery.com>
426
427	PR c++/15285
428	PR c++/15299
429	* pt.c (build_non_dependent_expr): Expand the set of tree nodes
430	recognized as overloaded functions.
431
432	PR c++/15507
433	* class.c (layout_nonempty_base_or_field): Do not try to avoid
434	layout conflicts for unions.
435
436	PR c++/15542
437	* typeck.c (build_x_unary_op): Instantiate template class
438	specializations before looking for "operator &".
439
440	PR c++/15427
441	* typeck.c (complete_type): Layout non-dependent array types, even
442	in templates.
443
444	PR c++/15287
445	* typeck.c (build_unary_op): Do not optimize "&x[y]" when in a
446	template.
447
4482004-04-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
449
450	PR c++/15064
451	* parser.c (cp_parser_postfix_expression): typeid operator cannot be
452	used in integral constant expressions.
453
4542004-04-18  Release Manager
455
456	* GCC 3.4.0 released.
457
4582004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
459
460	PR c++/14808
461	* method.c (make_alias_for_thunk): Just return function decl
462	for one_only functions if __CYGWIN__ or __MINGW32__
463	(use_thunk): Don't put function and thunk in same one_only
464	section if __CYGWIN__ or __MINGW32__.
465
4662004-04-08  Jakub Jelinek  <jakub@redhat.com>
467
468	* decl2.c (mark_used): Don't segfault if cfun != NULL but
469	current_function_decl == NULL.
470
4712004-04-01  Mark Mitchell  <mark@codesourcery.com>
472
473	PR c++/14803
474	* typeck.c (get_delta_difference): Call fold before returning the
475	value.
476
4772004-04-01  Richard Henderson  <rth@redhat.com>
478
479        PR c++/14804
480        * decl.c (cp_finish_decl): Preserve TREE_READONLY more often.
481        * typeck2.c (split_nonconstant_init): Clear TREE_READONLY.
482
4832004-04-01  Mark Mitchell  <mark@codesourcery.com>
484
485	PR c++/14810
486	* name-lookup.c (maybe_push_cleanup_level): Robustify.
487
4882004-03-30  Mark Mitchell  <mark@codesourcery.com>
489
490	PR c++/14724
491	* decl.c (start_decl_1): Do not decide whether or not to create a
492	new cleanup level until after the type has been completed.
493
494	PR c++/14763
495	* pt.c (tsubst_default_argument): Clear current_function_decl.
496
4972004-03-28  Jan Hubicka  <jh@suse.cz>
498
499	PR C++/14639
500	* method.c (use_think): Do not mark thunk as referenced.
501
5022004-03-21  Mark Mitchell  <mark@codesourcery.com>
503
504	PR c++/14616
505	* decl.c (cp_finish_decl): Compute the size of arrays declared in
506	templates, if their type is non-dependent.
507
5082004-03-19  Mark Mitchell  <mark@codesourcery.com>
509
510	* call.c (build_op_delete_call): Do not forget the placement
511	arguments when iterating through mutiple delete operators.
512
513	* cp-tree.h (svaed_scope): Remove last_parms.
514	(NEW_DELETE_OPNAME_P): New macro.
515	(last_function_parms): Remove.
516	(do_friend): Adjust prototype.
517	* decl.c (grokparms): Return the PARM_DECLs directly, rather than
518	using last_function_parms.
519	(grokfndecl): Take the PARM_DECLs as an argument, rather than
520	using last_function_parms.
521	(grokdeclarator): Adjust accordingly.  Do not form METHOD_TYPEs
522	for class-specific operator new and operator delete.
523	(grok_op_properties): Do not look for allocation functions with
524	METHOD_TYPEs.
525	(start_function): Use DECL_ARGUMENTS instead of
526	last_function_parms.
527	* decl.h (last_function_parms): Do not declare.
528	* decl2.c (grokclassfn): Do not use last_function_parms.
529	* friend.c (do_friend): Remove parmdecls parameter.
530	* name-lookup.c (push_to_top_level): Do not save last_function_parms.
531	(pop_from_top_level): Do not restore it.
532	* pt.c (check_explicit_specialization): Do not adjust
533	last_function_parms.
534
535	* name-lookup.c (do_local_using_decl): Create a local binding for
536	types brought in via using declarations.
537
538	* name-lookup.c (lookup_arg_dependent): Handle block-scope
539	function declarations correctly.
540
541	* semantics.c (finish_id_expression): Correct handling of
542	conversion operators to dependent types.
543
544	* typeck.c (lookup_destructor): Allow the use of destructors from
545	base classes.
546
5472004-03-19  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
548
549	PR c++/14545
550	* parser.c (cp_parser_functional_cast): A cast to anything
551	but integral or enumaration type is not an integral constant
552	expression.
553	* pt.c (value_dependent_expression_p): Handle cast expressions
554	without operands (such as "int()").
555
5562004-03-18  Mark Mitchell  <mark@codesourcery.com>
557
558	* semantics.c (finish_pseudo_destructor_expr): Allow differing
559	cv-qualification between the type named by the
560	pseudo-destructor-name and the object-type.
561
562	* search.c (accessible_base_p): Handle non-proper bases.
563
564	* name-lookup.c (do_nonmember_using_decl): If a using declaration
565	refers to a single overloaded function, set the type of the
566	function.
567	* tree.c (lvalue_type): Simplify.
568	* typeck.c (type_unknown_p): Do not assume all OVERLOADs have an
569	unknown type.
570	(build_unary_op): Handle OVERLOADs with known types.
571
572	* decl.c (duplicate_decls): Do not destroy DECL_ARGUMENTS for
573	function templates.
574
575	* parser.c (cp_parser_postfix_expression): Handle the use of
576	"typename" in non-dependent contexts.  Convert appropriately when
577	when using a qualified name after "->" or ".".
578
579	* call.c (conditional_conversion): Honor the requirement that some
580	conversions refer to the original object.
581
582	* call.c (build_conditional_expr): Do not call force_rvalue for
583	operands of void_type when the conditional expression itself has
584	void type.
585	* name-lookup.c (pushdecl): Don't consider a declaration of a
586	function named "main" to be an overload of a type named "main".
587	* parser.c (cp_parser_template_name): Perform name lookup when the
588	template name is proceeded by "template" if the qualifying scope
589	is non-dependent.
590	* typeck.c (composite_pointer_type_r): Correctly handle
591	pointer-to-member types.
592	(build_const_cast): Likewise.
593
5942004-03-16  Mark Mitchell  <mark@codesourcery.com>
595
596	PR c++/14586
597	* cp-tree.h (build_new_op): Change prototype.
598	(build_x_binary_op): Likewise.
599	* call.c (build_new_op): Add overloaded_p parameter.
600	* decl2.c (grok_array_decl): Adjust call to build_new_op.
601	* parser.c (cp_parser_binary_expression): Note that uses of
602	overloaded operators prevents an expression from being considered
603	an integral constant.
604	* pt.c (tsubst_copy_and_build): Adjust calls to build_new_op and/or
605	build_x_binary_op.
606	* semantics.c (finish_call_expr): Likewise.
607	* typeck.c (rationalize_conditional_expr): Likewise.
608	(build_x_indirect_ref): Likewise.
609	(build_x_binary_op): Likewise.
610	(build_x_unary_op): Likewise.
611	(build_x_compound_expr): Likewise.
612	(build_modify_expr): Likewise.
613	* typeck2.c (build_x_arrow): Likewise.
614
6152004-03-13  Mark Mitchell  <mark@codesourcery.com>
616
617	PR c++/14550
618	* parser.c (cp_parser_non_integral_constant_expression): Encode
619	more of the idiom that surrounded calls to this function within
620	the function itself
621	(cp_parser_primary_expression): Adjust accordingly.
622	(cp_parser_postfix_expression): Likewise.
623	(cp_parser_unary_expression): Likewise.
624	(cp_parser_cast_expression): Likewise.
625	(cp_parser_assignment_expression): Likewise.
626	(cp_parser_expression): Likewise.
627	(cp_parser_new_expression): Note that new-expressions are not
628	allowed in integral constant expressions.
629	(cp_parser_delete_expression): Likewise.
630
6312004-03-11  Mark Mitchell  <mark@codesourcery.com>
632
633	PR c++/14476
634	* decl.c (xref_tag): Do not create dummy ENUMERAL_TYPEs.
635
6362004-03-10  Mark Mitchell  <mark@codesourcery.com>
637
638	PR c++/14510
639	* decl.c (xref_tag): Disregard non-type declarations when
640	looking up a tagged type.
641
6422004-03-10  Jason Merrill  <jason@redhat.com>
643
644	PR c++/14452
645	* tree.c (stabilize_init): Return whether or not it worked.
646	* init.c (build_new_1): If not, use a sentry.
647	* cp-tree.h: Adjust prototype.
648
6492004-03-09  Nathan Sidwell  <nathan@garibaldi.home>
650
651	PR c++/14397
652	* call.c (convert_like_real): Build a const qualified temporary,
653	when testing ctor access.
654
6552004-03-09  Mark Mitchell  <mark@codesourcery.com>
656
657	* call.c (initialize_reference): Fix typo.
658
6592004-03-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
660
661	PR c++/14409
662	* pt.c (determine_specialization): For member templates, match also
663	constness.
664
665	PR c++/14448
666	* parser.c (cp_parser_initializer_clause): Fold initializer if it is
667	non-dependent.
668	* pt.c (tsubst_copy_and_build): Handle NOP_EXPRs.
669
6702004-03-09  Mark Mitchell  <mark@codesourcery.com>
671
672	PR c++/14230
673	* call.c (initialize_reference): Handle initializers that are
674	class-member access expressions applies to rvalues.
675
676	PR c++/14432
677	* name-lookup.c (supplement_binding): Ignore functions that are
678	marked DECL_ANTICIPATED.
679
6802004-03-08  Mark Mitchell  <mark@codesourcery.com>
681
682	PR c++/14401
683	* class.c (check_field_decls): Complain about non-static data
684	members of reference type in unions.  Propagate
685	CLASSTYPE_REF_FIELDS_NEED_INIT and
686	CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
687	data members.
688	* init.c (perform_member_init): Complain about mbmers with const
689	type that are not explicitly initialized.
690
6912004-03-08  Jason Merrill  <jason@redhat.com>
692
693	PR c++/13170
694	* decl.c (xref_tag): Remove attribute handling.
695	* cp-tree.h: Adjust prototype.
696	* decl.c, parser.c, rtti.c: Adjust callers.
697	* parser.c (cp_parser_class_head): Pass back attributes in the
698	class head.
699	(cp_parser_class_specifier): Adjust.
700
7012004-03-08  Matt Austern  <austern@apple.com>
702
703	PR debug/14079
704	* name-lookup.c (add_decl_to_level): Add extern variables, as well
705	as static, to static_decls array.
706
7072004-03-01  Jason Merrill  <jason@redhat.com>
708
709	PR c++/13944
710	* except.c (do_free_exception): Remove #if 0 wrapper.
711	(build_throw): Use it if we elide a copy into the
712	exception object.
713
714	* tree.c (stabilize_call): Fix thinko.
715
716	* init.c (build_new_1): Preevaluate initializer.  Simplify EH code.
717	(build_init): Call a constructor rather than call build_aggr_init
718	for classes.
719	* except.c (stabilize_throw_expr): Remove.
720	(build_throw): Use stabilize_init instead of stabilize_throw_expr.
721	* tree.c (stabilize_call, stabilize_init): New fns.
722	* call.c (build_over_call): A constructor no longer returns the
723	address of the object.
724
7252004-03-01  Mark Mitchell  <mark@codesourcery.com>
726
727	PR c++/14324
728	* lex.c (retrofit_lang_decl): Treat entities with no linkage as
729	having C++ linkage for name-mangling purposes.
730
731	PR c++/14260
732	* parser.c (cp_parser_direct_declarator): Recognize constructor
733	declarators that use a template-id to name the class being
734	constructed.
735
736	PR c++/14337
737	* pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
738	(tsubst_expr): Do not call tsubst_copy, even when
739	processing_template_decl.
740
7412004-03-01  Mark Mitchell  <mark@codesourcery.com>
742
743	PR c++/14369
744	* pt.c (build_non_dependent_expr): Do not create a
745	NON_DEPENDENT_EXPR for a THROW_EXPR.
746
747	PR c++/14360
748	* parser.c (cp_parser_postfix_expression): Do not perform Koenig
749	lookup if ordinary name-lookup finds a non-function.
750	* pt.c (tsubst_copy_and_build): Likewise.
751
752	PR c++/14361
753	* parser.c (cp_parser_late_parsing_default_args): Check that there
754	are no extra tokens after the end of the default-argument
755	expression.
756
757	PR c++/14359
758	Backport 2004-02-12  Mark Mitchell  <mark@codesourcery.com>
759	* decl.c (redeclaration_error_message): Correct handling of
760	templates.
761	* pt.c (tsubst_friend_declaration): Adjust code to determine
762	whether or not a friend template is a definition.
763	(tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs.
764
7652004-03-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
766
767	PR c++/14369
768	* error.c (dump_expr): Handle THROW_EXPR.
769
7702004-02-29  Mark Mitchell  <mark@codesourcery.com>
771
772	PR c++/14138
773	* name-lookup.h (push_scope): Change prototype.
774	* name-lookup.c (push_scope): Do not reenter the current class
775	scope.
776	* decl.c (grokfndecl): Check return code from push_scope before
777	calling pop_scope.
778	* decl2.c (check_classfn): Likewise.
779	* parser.c (cp_parser_conversion_function_id): Likewise.
780	(cp_parser_init_declarator): Likewise.
781	(cp_parser_direct_declarator): Likewise.
782	(cp_parser_class_specifier): Likewise.
783	(cp_parser_class_head): Likewise.
784	(cp_parser_lookup_name): Likewise.
785	(cp_parser_constructor_declarator_p): Likewise.
786	* pt.c (instantiate_class_template): Likewise.
787	(resolve_typename_type): Likewise.
788
7892004-02-27  Mark Mitchell  <mark@codesourcery.com>
790
791	PR debug/12103
792	* class.c (update_vtable_entry_for_fn): Do not go through
793	covariance machinery if the type returned by an overrider is the
794	same as the original.
795
7962004-02-27  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
797
798	PR c++/14284
799	* pt.c (dependent_type_p_r): A template template parameter is a
800	dependent type.
801
8022004-02-26  Mark Mitchell  <mark@codesourcery.com>
803
804	PR c++/14278
805	* parser.c (cp_parser_parameter_declaration_list): Commit
806	to fewer tentative parses.
807
8082004-02-26  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
809
810	PR c++/14246
811	* mangle.c (write_template_arg_literal): Don't rely on identity for
812	boolean constants.
813
8142004-02-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
815
816	PR c++/14250
817	* cvt.c (build_expr_type_conversion): Type must be complete before
818	looking up for conversions.
819
8202004-02-20  Mark Mitchell  <mark@codesourcery.com>
821
822	PR c++/14199
823	* pt.c (tsubst_copy): Call mark_used for a PARM_DECL.
824
825	PR c++/14173
826	* semantics.c (begin_class_definition): Set TYPE_PACKED correctly
827	for all type variants.
828
8292004-02-19  Mark Mitchell  <mark@codesourcery.com>
830
831	PR c++/14186
832	* name-lookup.c (push_class_level_binding): Do not complain about
833	adding a binding for a member whose name is the same as the
834	enclosing class if the member is located in a base class of the
835	current class.
836
8372004-02-19  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
838
839	PR c++/14181
840	* parser.c (cp_parser_new_expression): Parse an ill-formed
841	direct-new-declarator after a parenthesized type-id to emit good
842	diagnostic.
843
8442004-02-17  Mark Mitchell  <mark@codesourcery.com>
845
846	PR c++/11326
847	* cp-tree.h (abi_version_at_least): Remove.
848	* mangle.c: Include flags.h.
849
8502004-02-15  Mark Mitchell  <mark@codesourcery.com>
851
852	PR c++/13971
853	* call.c (build_conditional_expr): Handle conversions between
854	class types which result in differently cv-qualified type
855	variants.
856
857	PR c++/14086
858	* class.c (delete_duplicate_fields_1): Remove.
859	(delete_duplicate_fields): Likewise.
860	(finish_struct_anon): Remove check for members with the same name
861	as their enclosing class.
862	(check_field_decls): Do not call duplicate_fields.
863	* decl.c (grokdeclarator): Remove check for static data members
864	with the same name as their enclosing class.
865	* name-lookup.c (push_class_level_binding): Check for members with
866	the same name as their enclosing class.
867
8682004-02-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
869
870	PR c++/14085
871	* error.c (dump_decl): Handle TEMPLATE_TYPE_PARM.
872
8732004-02-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
874
875	PR c++/13635
876	* pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
877	has full set of arguments.
878
8792004-02-13  Mark Mitchell  <mark@codesourcery.com>
880
881	PR c++/14122
882	* cp-tree.h (delete_sanity): Change prototype.
883	* decl2.c (delete_sanity): Make doing_vec a bool, not an int.
884	Remove dead code.  Adjust code to warn about deleting an array.
885	* typekc.c (decay_conversion): Use build_address and build_nop.
886
887	PR c++/14108
888	* search.c (accessible_p): Do not check access in thunks.
889
8902004-02-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
891
892	PR c++/13927
893	* error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations.
894
8952004-02-13  Mark Mitchell  <mark@codesourcery.com>
896
897	PR c++/14083
898	* call.c (build_conditional_expr): Call force_rvalue on the
899	non-void operand in the case that one result is a throw-expression
900	and the other is not.
901
9022004-02-13  Ian Lance Taylor  <ian@wasabisystems.com>
903
904	PR c++/9851
905	* parser.c (cp_parser_pseudo_destructor_name): Check for errors on
906	the type name and look ahead for ::~, and bail out early with a
907	better error message if the parse is going to fail.
908
9092004-02-10  Mark Mitchell  <mark@codesourcery.com>
910
911	* typeck.c (lookup_destructor): Fix typo in error message.
912
9132004-02-07  Zack Weinberg  <zack@codesourcery.com>
914
915	Bug 13856
916	* optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
917	* decl.c (duplicate_decls, start_function): Likewise.
918
9192004-02-07  Zack Weinberg  <zack@codesourcery.com>
920
921	* name-lookup.c (pushdecl): Issue shadow warnings directly.
922	* parser.c (free_parser_stacks): Delete.
923
9242004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
925
926	* rtti.c, tree.c: Update copyright.
927
9282003-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
929
930	PR c++/14033
931	* decl.c (require_complete_types_for_parms): Do not insert
932	error_mark_node in the parameter list.
933
9342003-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
935
936	PR c++/14028
937	* parser.c (cp_parser_enclosed_template_argument_list): Emit straight
938	error when terminator can not be found.
939
9402004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
941
942	Make-lang.in (po-generated):  Delete.
943
9442004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
945
946	PR middle-end/13750
947	Revert:
948	2004-01-15  Geoffrey Keating  <geoffk@apple.com>
949	PR pch/13361
950	* cp/lex.c (handle_pragma_interface): Duplicate string from tree.
951	(handle_pragma_implementation): Likewise.
952
9532004-02-05  Mark Mitchell  <mark@codesourcery.com>
954
955	PR c++/13714
956	* typeck.c (lookup_destructor): Tweak error message.
957
9582004-02-05  Paul Brook  <paul@codesourcery.com>
959
960	Backport from mainline.
961
962	2003-11-05  Mark Mitchell  <mark@codesourcery.com>
963
964	* decl.c (cxx_push_function_context): Do not set
965	current_function_is_thunk.
966	* method.c (use_thunk): Set CALL_FROM_THUNK on the call to the
967	actual function.
968
9692004-02-04  Mark Mitchell  <mark@codesourcery.com>
970
971	PR c++/13932
972	* call.c (convert_like_real): Use "converting" rather than
973	"argument" as the descriptive keyword to
974	dubious_conversion_warnings.
975	* typeck.c (convert_for_assignment): Do not call
976	dubious_conversion_warnings.
977
9782004-02-04  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
979
980	PR c++/13086
981	* init.c (build_delete): Emit a more informative error message in
982	case of an incomplete type, and on the correct source line.
983
9842004-02-04  Mark Mitchell  <mark@codesourcery.com>
985
986	PR c++/9941
987	* rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
988	linkage for the typeinfo name string.
989
990	PR c++/13969
991	* cp-tree.h (fold_non_dependent_expr): New function.
992	* parser.c (cp_parser_fold_non_dependent_expr): Remove.
993	(cp_parser_template_argument): Use fold_non_dependent_expr.
994	(cp_parser_direct_declarator): Likewise.
995	* pt.c (fold_non_dependent_expr): New function.
996	(convert_nontype_argument): Use it.
997	(tsubst_qualified_id): Simplify.
998	(tsubst_copy_and_build): Likewise.
999
10002003-02-04  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1001
1002	PR c++/13997
1003	* pt.c (more_specialized_class): Increase processing_template_decl
1004	while partial ordering.
1005
10062004-02-03  Mark Mitchell  <mark@codesourcery.com>
1007
1008	PR c++/13950
1009	* parser.c (cp_parser_class_name): Robustify.
1010
1011	PR c++/13970
1012	* parser.c (cp_parser_cache_group): Do not consume the EOF token.
1013
10142004-02-03  Mark Mitchell  <mark@codesourcery.com>
1015
1016	PR c++/13925
1017	* decl.c (start_function): Do not call pushdecl for any
1018	instantiation or specialization of a primary template.
1019
1020	PR c++/14002
1021	* semantics.c (finish_id_expression): Do not return an
1022	IDENTIFIER_NODE when lookup finds a PARM_DECL.
1023
1024	PR c++/13978
1025	* pt.c (build_non_dependent_expr): Do not build
1026	NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.
1027
1028	PR c++/13968
1029	* semantics.c (finish_id_expression): Do not return an
1030	IDENTIFIER_NODE when lookup finds a VAR_DECL.
1031
1032	PR c++/13975
1033	* parser.c (cp_parser_simple_declaration): When skipping to the
1034	end of the statement swallow the terminating semicolon.
1035
10362004-02-02  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1037
1038	DR206
1039	PR c++/13813
1040	* decl.c (grokdeclarator): Check immediatly type completeness for
1041	non-dependent types.
1042
10432004-01-30  Mark Mitchell  <mark@codesourcery.com>
1044
1045	PR c++/13113
1046	* init.c (build_offset_ref): Improve error recovery for invalid
1047	uses of non-static member functions.
1048
1049	PR c++/13854
1050	* cp-tree.h (cp_build_type_attribute_variant): New function.
1051	* class.c (build_clone): Use cp_build_type_attribute_variant.
1052	* decl.c (duplicate_decls): Likewise.
1053	* pt.c (copy_default_args_to_explicit_spec): Likewise.
1054	(tsubst_function_type): Likewise.
1055	* tree.c (build_exception_variant): Check attributes before
1056	concluding that two types are the same.
1057	(cp_build_type-attribute_variant): New method.
1058	* typeck.c (merge_types): Use cp_build_type_attribute_variant.
1059
1060	PR c++/13907
1061	* call.c (convert_class_to_reference): Keep better track of
1062	pedantically invalid user-defined conversions.
1063
10642004-02-02  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1065
1066	PR c++/13957
1067	* pt.c (tsubst_qualified_id): Improved error message when a type
1068	is expected but	not found.
1069
10702004-01-30  Michael Matz  <matz@suse.de>
1071
1072	* parser.c (cp_parser_labeled_statement): Accept case ranges.
1073
10742004-01-28  Jan Hubicka  <jh@suse.czi
1075
1076	* semantics.c (expand_body)  Do emit_associated_thunks before
1077	expansion.
1078
10792004-01-30  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1080
1081	PR c++/13683
1082	* call.c (convert_arg_to_ellipsis): Don't emit a warning if within
1083	a sizeof expression.block
1084
10852004-01-29  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1086
1087	* parser.c (cp_parser_template_id): Parse tentatively `[:' after a
1088	template name as it was `<::' (digraph typo).
1089	(cp_parser_nth_token_starts_template_argument_list_p): New function.
1090	(cp_parser_id_expression): Use it.
1091	(cp_parser_nested_name_specifier_opt): Likewise.
1092	(cp_parser_template_name): Likewise.
1093	(cp_parser_class_name): Likewise.
1094	(cp_lexer_get_preprocessor_token): Use c_lex_with_flags.
1095
10962004-01-29  Mark Mitchell  <mark@codesourcery.com>
1097
1098	PR c++/13883
1099	* mangle.c (write_encoding): Correct encoding of member template
1100	constructors.
1101
11022004-01-28  Mark Mitchell  <mark@codesourcery.com>
1103
1104	PR c++/13791
1105	* typeck.c (merge_types): Do not merge attributes into
1106	TYPENAME_TYPEs.
1107
11082004-01-28  Mark Mitchell  <mark@codesourcery.com>
1109
1110	PR c++/13736
1111	* parser.c (cp_parser_direct_declarator): Do not prevent
1112	backtracking inside a parenthesized declarator.
1113	(cp_parser_parameter_declaration): Fix typo in comment.
1114
11152004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1116
1117	* cp-tree.h (language_function, lang_type_header): Use
1118	BOOL_BITFIELD.
1119	* name-lookup.h (cp_binding_level): Likewise.
1120
11212004-01-26  Mark Mitchell  <mark@codesourcery.com>
1122
1123	PR c++/13663
1124	* semantics.c (finish_for_expr): Check for unresolved overloaded
1125	functions.
1126
11272004-01-26  Mark Mitchell  <mark@codesourcery.com>
1128
1129	* class.c (add_method): Just check processing_template_decl to
1130	determine whether or not we are within a template.
1131	* decl2.c (maybe_retrofit_in_chrg): Likewise.
1132	* init.c (decl_constant_value): Check the type of the declaration,
1133	not TREE_READONLY.
1134	* name-lookup.c (maybe_push_to_top_level): Rename to ...
1135	(push_to_top_level): ... this.
1136	* name-lookup.h (maybe_push_to_top_level): Do not declare it.
1137	* pt.c (push_template_decl_real): Reorder condition for speed.
1138	(convert_template_argument): Use dependency-checking functions in
1139	place of uses_template_parms.
1140	(lookup_template_class): Avoid calling uses_template_parms more
1141	than once.
1142	(uses_template_parms): Reimplement, using dependency-checking
1143	functions.
1144	(instantiate_class_template): Use push_to_top_level, not
1145	maybe_push_to_top_level.
1146	(type_unification_real): Simplify.
1147	(type_dependent_expression_p): Handle OFFSET_REFs and
1148	TEMPLATE_DECLs.
1149	(any_dependent_template_arguments_p): Handle multiple levels of
1150	template argument.
1151	* semantics.c (expand_or_defer_fn): Do not check
1152	uses_template_parms for template instantiations.
1153	* typeck.c (comptypes): Avoid calling cp_type_quals.
1154
11552004-01-25  Mark Mitchell  <mark@codesourcery.com>
1156
1157	PR c++/13833
1158	* call.c (build_over_call): Do not convert arguments when
1159	processing a template.
1160	* pt.c (build_non_dependent_expr): Do not build a
1161	NON_DEPENDENT_EXPR for arithmetic constants.
1162
11632004-01-25  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1164
1165	PR c++/13810
1166	* parser.c (cp_parser_type_parameter): When cp_parser_id_expression
1167	returns a TYPE_DECL. no further lookup is required.
1168	* semantics.c (check_template_template_default_arg): A TYPE_DECL
1169	is invalid. Rework to give better diagnostics.
1170
11712004-01-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1172
1173	PR c++/13797
1174	* pt.c (instantiate_class_template): Add an error_mark_node
1175	check.
1176	(tsubst_decl) <TEMPLATE_DECL case>: Likewise.
1177
11782004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
1179
1180	* call.c: Update copyright.
1181	* class.c: Likewise.
1182	* decl2.c: Likewise.
1183	* except.c: Likewise.
1184	* expr.c: Likewise.
1185	* init.c: Likewise.
1186	* mangle.c: Likewise.
1187	* optimize.c: Likewise.
1188	* typeck.c: Likewise.
1189	* typeck2.c: Likewise.
1190
11912004-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
1192
1193	PR c++/13701
1194	* decl.c (finish_function): Move the call to
1195	finish_fname_decls below the call to
1196	finish_eh_spec_block.
1197
11982004-01-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1199
1200	* parser.c (cp_parser_class_specifier): Prevent garbage collection.
1201
12022004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
1203
1204	* Make-lang.in: Replace $(docdir) with doc.
1205	(c++.info, c++.srcinfo): Dummy entry.
1206	(c++.man, c++.srcman): New rules.
1207	(c++.install-man): Revamp rule.
1208
12092004-01-19  Kelley Cook  <kcook@gcc.gnu.org>
1210
1211	* Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
1212	CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
1213	immediate $(shell) instead of deferred backquote.
1214
12152004-01-19  Mark Mitchell  <mark@codesourcery.com>
1216
1217	PR c++/13651
1218	* parser.c (cp_parser_postfix_expression): When encountering
1219	incomplete type on left-hand side of "->" or ".", treat the entire
1220	expression as erroneous.
1221
12222004-01-19  Mark Mitchell  <mark@codesourcery.com>
1223
1224	PR c++/13592
1225	* call.c (build_field_call): Remove.
1226	(n_build_method_call): Likewise.
1227	(build_method_call): Likewise.
1228	(build_new_method_call): Do not call build_field_call.
1229	* class.c (n_build_method_call): Remove.
1230	(print_class_statistics): Do not print it.
1231	* cp-tree.h (build_method_call): Remove declaration.
1232	(finish_object_call_expr): Likewise.
1233	(build_new_1): Do not use build_method_call.
1234	* parser.c (cp_parser_postfix_expression): Use finish_call_expr
1235	when the function appearing on the right-hand-side of "." or "->"
1236	is not actually a function.
1237	* pt.c (tsubst_copy_and_build): Likewise.
1238	* semantics.c (finish_object_call_expr): Remove.
1239
12402004-01-18  Mark Mitchell  <mark@codesourcery.com>
1241
1242	PR c++/13710
1243	* pt.c (tsubst): Use finish_typeof.
1244
12452004-01-18  Jason Merrill  <jason@redhat.com>
1246
1247	PR c++/11725
1248	* except.c (build_throw): In a template, set
1249	current_function_returns_abnormally.
1250
12512004-01-17  Fred Fish  <fnf@intrinsity.com>
1252
1253	PR c++/11895
1254	* decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
1255	except don't call array_type_nelts() with a VECTOR_TYPE.
1256
12572004-01-16  Jan Hubicka  <jh@suse.cz>
1258
1259	* mangle.c (write_mangled_name): Remove inline modifier.
1260
12612004-01-16  Mark Mitchell  <mark@codesourcery.com>
1262
1263	PR c++/13574
1264	* decl.c (compute_array_index_type): Fix grammar in comment.
1265	* init.c (build_zero_init): Handle zero-sized arrays correctly.
1266
1267	PR c++/13178
1268	* call.c (name_as_c_string): Print conversion operator names
1269	correctly.
1270
1271	PR c++/13478
1272	* call.c (initialize_reference): Pass -1 for inner parameter to
1273	convert_like_real.
1274
12752004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1276
1277	PR c++/13407
1278	* parser.c (cp_parser_base_specifier): Check for an invalid
1279	keyword `typename' and emit an user-friendly error message.
1280
12812004-01-15  Geoffrey Keating  <geoffk@apple.com>
1282
1283	PR pch/13361
1284	* cp/lex.c (handle_pragma_interface): Duplicate string from tree.
1285	(handle_pragma_implementation): Likewise.
1286
12872004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1288
1289	PR c++/9259
1290	* typeck.c (build_class_member_access_expr): Allow to access members
1291	of the currently open class.
1292	(finish_class_member_access_expr): Likewise.
1293
12942004-01-15  Alexandre Oliva  <aoliva@redhat.com>
1295
1296	PR c++/13659
1297	* name-lookup.c (validate_nonmember_using_decl): Take scope and
1298	name by value, instead of computing them.
1299	(do_local_using_decl, do_toplevel_using_decl): Add scope and name
1300	arguments.  Pass them to validate_nonmember_using_decl.
1301	* name-lookup.h (do_local_using_decl): Adjust.
1302	(do_toplevel_using_decl): Likewise.
1303	* parser.c (cp_parser_using_declaration): Likewise.
1304	* pt.c (tsubst_expr): Likewise.
1305
13062004-01-15  Alexandre Oliva  <aoliva@redhat.com>
1307
1308	PR c++/13594
1309	PR c++/13658
1310	* name-lookup.c (qualified_lookup_using_namespace): Search
1311	strongly-associated namespaces first, and only then try other
1312	namespaces.
1313
13142004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
1315
1316	* Make-lang.in (c++.srcextra): Dummy entry.
1317
13182004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1319
1320	PR c++/8856
1321	* parser.c (cp_parser_template_name): Don't try to parse a
1322	conversion-function-id, as it cannot be a template-name.
1323	(cp_parser_simple_type_specifier): Check for invalid template-ids
1324	even after a built-in type.
1325
13262004-01-14  Jan Hubicka  <jh@suse.cz>
1327
1328	PR c++/12850
1329	* pt.c (instantiate_decl):  Do not increase function_depth.
1330
13312004-01-14  Danny Smith  <dannysmith@users,sourceforge.net>
1332
1333	PR c++/9021
1334  	PR c++/11005
1335	* parser.c (cp_parser_elaborated_type_specifier): Warn about
1336	attributes and discard.
1337	* decl.c (xref_tag): Don't overwite existing attributes with
1338	NULL_TREE.
1339
13402004-01-14  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1341
1342	PR c++/12335
1343	* parser.c (cp_parser_lookup_name): Return error_mark_node if there
1344	is no destructor while looking up a BIT_NOT_EXPR.
1345
13462004-01-13  Ian Lance Taylor  <ian@wasabisystems.com>
1347
1348	* cxxfilt.c: Remove unused file.
1349
13502004-01-14  Jan Hubicka  <jh@suse.cz>
1351
1352	Partial fix to PR c++/12850
1353	* decl2.c (mark_used): Do not proactively instantiate templates
1354	when compiling in unit-at-a-time or not optimizing.
1355	* optimize.c (maybe_clone_body): Do not increase function depth.
1356
13572004-01-13  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1358
1359	PR c++/13474
1360	* pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
1361
13622003-01-12  Steven Bosscher  <stevenb@suse.de>
1363
1364	PR c++/13558
1365	* parser.c (cp_parser_member_declaration): Any non-type is also
1366	not a class or a function.
1367
13682004-01-12  Jason Merrill  <jason@redhat.com>
1369
1370	PR c++/12815
1371	* class.c (build_base_path): Do not mark vtable references as
1372	TREE_CONSTANT.
1373	(build_vtbl_ref_1): Likewise.
1374
13752004-01-12  Richard Henderson  <rth@redhat.com>
1376
1377	PR opt/10776
1378	* typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
1379	(store_init_value): Use it.
1380	* decl.c (check_initializer): Expect full initialization code
1381	from store_init_value.
1382	* init.c (expand_aggr_init_1): Likewise.
1383	* decl2.c (maybe_emit_vtables): Abort if runtime init needed.
1384
13852004-01-12  Mark Mitchell  <mark@codesourcery.com>
1386
1387	* class.c (layout_class_type): For non-POD class types, also copy
1388	the DECL_SIZE and DECL_MODE of fields to the base class type.
1389
13902004-01-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1391
1392	PR c++/13289
1393	* pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
1394	calling regenerate_decl_from_template.
1395
13962004-01-12  Scott Brumbaugh  <scottb.lists@verizon.net>
1397
1398	PR c++/4100
1399	* parser.c (cp_parser_decl_specifier_seq): Add check for a friend
1400	decl-specifier occurring along with a class definition.
1401
14022004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
1403
1404	* parser.c (cp_parser_decl_specifier_seq): Add parenthetical
1405	clauses to comments describing declares_class_or_enum.
1406	(cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
1407	false.
1408
14092004-01-12  Jan Hubicka  <jh@suse.cz>
1410
1411	* pt.c (for_each_template_parm): Do not check for duplicates.
1412	(for_each_template_parm): Use walk_tree duplicate checking code.
1413
14142004-01-11  Ian Lance Taylor  <ian@wasabisystems.com>
1415
1416	PR c++/3478
1417	* parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
1418	is error_mark_node, don't add any more decl_specs.
1419	(cp_parser_init_declarator): After committing to a declaration, if
1420	the decl_specifiers start with error_mark_node, issue an error and
1421	change the type to "int".
1422
14232004-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
1424
1425	PR bootstrap/7817
1426	* Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
1427
14282004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1429
1430	DR 337
1431	PR c++/9256
1432	* pt.c (tsubst): Substitution must fail if we are attempting to
1433	create an array with element type that is an abstract class type.
1434	* decl.c (cp_finish_decl): Strip pointers and array types recursively
1435	before calling abstract_virtuals_error.
1436
14372004-01-09  Alexandre Oliva  <aoliva@redhat.com>
1438
1439	* name-lookup.c (qualified_lookup_using_namespace): Consider
1440	strong using directives even if we've already found a binding.
1441
14422004-01-09  Mark Mitchell  <mark@codesourcery.com>
1443
1444	* cp-tree.h (cxx_expand_expr): Change prototype.
1445	* expr.c (cxx_expand_expr): Add alt_rtl parameter.
1446
14472004-01-08  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1448
1449	PR c++/12573
1450	* pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
1451	looking into them recursively. They can be there because of the
1452	new __offsetof__ extension.
1453
14542004-01-07  Zack Weinberg  <zack@codesourcery.com>
1455
1456	* parser.c (cp_parser_save_member_function_body): Mark the
1457	definition static.
1458
14592004-01-05  Mark Mitchell  <mark@codesourcery.com>
1460
1461	PR c++/13057
1462	* class.c (build_clone): Copy type attributes from the original
1463	function to the clone.
1464
1465	PR c++/12815
1466	* class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
1467	references as constant.
1468
1469	PR c++/12132
1470	* parser.c (cp_parser_explicit_instantiation): Improve error
1471	recovery.
1472	(cp_parser_require): Improve indication of the error location.
1473
1474	PR c++/13451
1475	* parser.c (cp_parser_class_head): Reorder logic to check for
1476	invalid qualification.
1477
14782004-01-04  Mark Mitchell  <mark@codesourcery.com>
1479
1480	PR c++/13157
1481	* name-lookup.c (lookup_using_namespace): Remove spacesp
1482	parameter.
1483	(unqualified_namespace_lookup): Likewise.
1484	(lookup_qualified_name): Adjust accordingly.
1485	(lookup_name_real): Likewise.
1486	(lookup_arg_dependent): Do not eliminate the namespace of the
1487	functions found by unqualified name lookup unless that is the
1488	current namespace.
1489
14902004-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
1491
1492	* semantics.c (push_deferring_access_checks): Fix format.
1493	(resume_deferring_access_checks): Likewise.
1494	(stop_deferring_access_checks): Likewise.
1495	(pop_deferring_access_checks): Likewise.
1496	(get_deferred_access_checks): Likewise.
1497	(pop_to_parent_deferring_access_checks): Likewise.
1498	(perform_deferred_access_checks): Likewise.
1499	(perform_or_defer_access_check): Likewise.
1500
15012004-01-04  Richard Henderson  <rth@redhat.com>
1502
1503	* call.c (build_over_call): Don't create a save_expr of an
1504	aggregate, but rather its address.
1505
15062004-01-04  Mark Mitchell  <mark@codesourcery.com>
1507
1508	PR c++/13529
1509	* parser.c (cp_parser_postfix_expression): Allow "." to appear in
1510	an offsetof expression.
1511
1512	* parser.c (cp_parser_parameter_declaration): Fix comment.
1513
1514	PR c++/12226
1515	* call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
1516	(reference_binding): Set it when appropriate.
1517	(build_temp): New function, split out from ...
1518	(convert_like_real): ... here.  Honor CHECK_COPY_CONSTRUCTOR_P.
1519	(initialize_reference): Likewise.
1520
1521	PR c++/13536
1522	* parser.c (cp_parser): Add in_type_id_in_expr_p.
1523	(cp_parser_new): Initialize it.
1524	(cp_parser_postfix_expression): Set it.
1525	(cp_parser_sizeof_operand): Likewise.
1526	(cp_parser_parameteR_declaration): Do not commit early to tenative
1527	parsers when in_type_id_in_expr_p is set.
1528
15292004-01-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1530
1531	PR c++/13094
1532	* parser.c (cp_parser_template_argument): Don't call
1533	make_unbound_class_template directly.
1534	(cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
1535	UNBOUND_CLASS_TEMPLATE tree node.
1536
15372004-01-02  Richard Sandiford  <rsandifo@redhat.com>
1538
1539	PR target/12729
1540	* method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
1541
15422004-01-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1543
1544	PR c++/13520
1545	* cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
1546	(DECL_FUNCTION_TEMPLATE_P): Use it.
1547	(DECL_CLASS_TEMPLATE_P): Likewise.
1548	* parser.c (cp_parser_lookup_name): Add is_template parameter.
1549	(cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
1550	(cp_parser_template_name): Likewise.
1551	(cp_parser_elaborated_type_specifier): Likewise.
1552	(cp_parser_namespace_name): Likewise.
1553	(cp_parser_class_name): Likewise.
1554	(cp_parser_lookup_name_simple): Likewise.
1555
1556See ChangeLog.3 for earlier changes.
1557