12001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
2
3	* call.c (build_user_type_conversion_1): Use my_friendly_assert
4	rather than if ... abort.
5	* cvt.c (convert_to_reference): Likewise.
6	* semantics.c (setup_vtbl_ptr): Likewise.
7	* pt.c (lookup_template_class): Comment typo.
8
92001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
10
11	PR c++/5125
12	* pt.c (push_template_decl_real): Make sure DECL has
13	DECL_LANG_SPECIFIC.
14
152001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16
17	PR c++/335
18	* init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
19	for non-reference fields.
20	* typeck.c (require_complete_type): Use resolve_offset_ref).
21
222001-12-26  Nathan Sidwell  <nathan@codesourcery.com>
23
24	PR c++/196
25	* parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
26
272001-12-24  Nathan Sidwell  <nathan@codesourcery.com>
28
29	PR c++/160
30	* typeck.c (build_modify_expr): Remove old unreachable code & tidy
31	up. Don't stabilize_references when initializing a reference.
32
332001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34
35	* decl2.c (lang_f_options): Const-ify.
36
372001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
38
39	* config-lang.in (diff_excludes): Remove.
40
412001-12-19  Nathan Sidwell  <nathan@codesourcery.com>
42
43	PR c++/90
44	* typeck.c (build_function_call_real): Use original function
45	expression for errors.
46
472001-12-18  Jason Merrill  <jason@redhat.com>
48
49	PR c++/3242
50	* class.c (add_method): Do compare 'this' quals when trying to match a
51	used function.  Don't defer to another used function.
52
532001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
54
55	* pt.c (instantiate_clone): Remove, fold into ...
56	(instantiate_template): ... here. Simplify by removing mutual
57	recursion.
58	* typeck2.c (build_m_component_ref): Don't cv qualify the function
59	pointed to by a pointer to function.
60	* class.c (delete_duplicate_fields_1): Typo.
61
622001-12-18  Jason Merrill  <jason@redhat.com>
63
64	C++ ABI change: destroy value arguments in caller.
65	* semantics.c (genrtl_start_function, genrtl_finish_function): Don't
66	create an extra binding level for the parameters.
67	* decl.c (store_parm_decls): Don't do parameter cleanups.
68
692001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
70
71	* call.c (build_new_method_call): Use '%#V'.
72	* error.c (cv_to_string): Use V parameter to determine padding.
73
742001-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
75
76	* call.c, decl2.c, init.c: Use "built-in" and "bit-field"
77	spellings in messages.
78
792001-12-17  Zack Weinberg  <zack@codesourcery.com>
80
81	* cp-tree.h: Delete #defines for cp_error, cp_warning,
82	cp_pedwarn, and cp_compiler_error.
83	* call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
84	except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
85	rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
86	typeck2.c: Change calls to the above macros to use their
87	language-independent equivalents: error, warning, pedwarn, and
88	internal_error respectively.
89
902001-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
91
92	* decl2.c (finish_file): Remove back_end_hook.
93
942001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
95
96	* ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
97	cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
98	pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
99
1002001-12-15  Joseph S. Myers  <jsm28@cam.ac.uk>
101
102	* lang-options.h: Use American spelling in messages.
103
1042001-12-13  Jason Merrill  <jason@redhat.com>
105
106	* Make-lang.in (parse.h): Separate rule, just depend on parse.c.
107
108	Use cleanups to run base and member destructors.
109	* init.c (push_base_cleanups): New function, split out from...
110	(build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
111	* decl.c (finish_destructor_body): Move vbase destruction code to
112	push_base_cleanups.
113	(begin_function_body, finish_function_body): New fns.
114	(finish_function): Move [cd]tor handling and call_poplevel to
115	finish_function_body.
116	(pushdecl): Skip the new level.
117	* semantics.c (genrtl_try_block): Don't call end_protect_partials.
118	(setup_vtbl_ptr): Call push_base_cleanups.
119	* method.c (synthesize_method): Call {begin,end}_function_body.
120	* pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
121	* cp-tree.h: Declare new fns.
122	* parse.y (function_body, .begin_function_body): New nonterminals.
123	(fndef, pending_inline, function_try_block): Use function_body.
124	(ctor_initializer_opt, function_try_block): No longer has a value.
125	(base_init): Remove .set_base_init token.
126	(.set_base_init, compstmt_or_error): Remove.
127	* Make-lang.in (parse.c): Expect two fewer s/r conflicts.
128
129	* optimize.c (maybe_clone_body): Fix parameter updating.
130
1312001-12-12  Jason Merrill  <jason@redhat.com>
132
133	* decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
134	* semantics.c (genrtl_start_function): Don't pass
135	parms_have_cleanups or push an extra binding level.
136	(genrtl_finish_function): Lose cleanup_label cruft.
137
138	* cp-tree.h (struct cp_language_function): Remove x_ctor_label.
139	(ctor_label): Remove.
140	* semantics.c (finish_return_stmt): Lose ctor_label support.
141	* decl.c (finish_constructor_body, mark_lang_function): Likewise.
142	* typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
143	dtor_label.
144
145	* call.c (build_new_method_call): Let resolves_to_fixed_type_p
146	check for [cd]tors.
147	* class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
148
149	* decl.c (finish_function): Check VMS_TARGET, not VMS.
150
151	* decl.c (start_cleanup_fn): Remove redundant pushlevel.
152	(end_cleanup_fn): And poplevel.
153
154	* semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
155	if we're in a template.
156
1572001-12-12  Jakub Jelinek  <jakub@redhat.com>
158
159	* cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
160	ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
161	THIS_NAME_P): Delete.
162	* spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
163	THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
164	with internal naming scheme.
165	* error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
166
1672001-12-12  Nathan Sidwell  <nathan@codesourcery.com>
168
169	* decl.c (grokdeclarator): Deprecated implicit typename use.
170
1712001-12-11  Nathan Sidwell  <nathan@codesourcery.com>
172
173	PR g++/51
174	* parse.y (frob_specs): Indicate it is a language linkage which
175	contained the extern.
176	* decl.c (grokdeclarator): Allow extern language linkage with
177	other specifiers.
178
1792001-12-10  Nathan Sidwell  <nathan@codesourcery.com>
180
181	PR g++/72
182	* decl.c (add_binding): Don't reject duplicate typedefs involving
183	template parameters.
184
1852001-12-10  Neil Booth  <neil@daikokuya.demon.co.uk>
186
187	* parse.y, semantics.c: Similarly.
188
1892001-12-09  Nathan Sidwell  <nathan@codesourcery.com>
190
191	PR g++/87
192	* cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
193	(copy_args_p): Rename to ...
194	(copy_fn_p): ... here.
195	(grok_special_member_properties): New function.
196	(grok_op_properties): Lose VIRTUALP parameter.
197	(copy_assignment_arg_p): Remove.
198	* call.c (build_over_call): Use copy_fn_p.
199	* decl.c (grokfndecl): Reformat. Adjust call to
200	grok_op_properties.
201	(copy_args_p): Rename to ...
202	(copy_fn_p): ... here. Reject template functions. Check for pass
203	by value.
204	(grok_special_member_properties): Remember special functions.
205	(grok_ctor_properties): Don't remember them here, just check.
206	(grok_op_properties): Likewise.
207	(start_method): Call grok_special_member_properties.
208	* decl2.c (grokfield): Likewise.
209	(copy_assignment_arg_p): Remove.
210	(grok_function_init): Don't remember abstract assignment here.
211	* pt.c (instantiate_class_template): Call
212	grok_special_member_properties.
213	(tsubst_decl): Adjust grok_op_properties call.
214
2152001-12-08  Aldy Hernandez  <aldyh@redhat.com>
216
217	* lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
218	RID_TYPES_COMPATIBLE_P.
219
2202001-12-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
221
222	* semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
223	call to build_aggr_init.
224	* cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
225
2262001-12-08  Neil Booth  <neil@daikokuya.demon.co.uk>
227
228	* parse.y: Replace uses of the string non-terminal with STRING.
229	Don't perform string concatentaion here.
230	(string): Remove non-terminal.
231	* semantics.c (finish_asm_stmt): Don't concatenate strings here.
232
2332001-12-05  Jason Merrill  <jason@redhat.com>
234
235	* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
236	(LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
237	* tree.c (cp_start_inlining, cp_end_inlining): New fns.
238	* pt.c (push_tinst_level): No longer static.
239	* cp-tree.h: Declare them.
240
241	* init.c (resolve_offset_ref): Don't check access for the base
242	conversion to access a FIELD_DECL.
243
244	* cp-tree.h (TYPE_REFFN_P): New macro.
245	* decl.c (bad_specifiers): Check it, too.
246
247	* rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
248	on the __*_type_info type if we haven't seen a definition.
249
2502001-12-05  Neil Booth  <neil@daikokuya.demon.co.uk>
251
252	* decl.c: Include c-common.h.
253	(shadow_warning): Move to c-common.c.
254
2552001-12-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
256
257	* decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
258
2592001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
260
261	* pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
262
2632001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
264
265	PR g++/164
266	* init.c (sort_base_init): Allow binfos to be directly specified.
267	* method.c (do_build_copy_constructor): Explicitly convert to the
268	base instance.
269	(do_build_assign_ref): Likewise.
270
2712001-12-03  Hans-Peter Nilsson  <hp@bitrange.com>
272
273	* decl.c (xref_basetypes): Don't use C99 construct in tag_code
274	declaration and initialization.
275
2762001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
277
278	* typeck2.c: Remove leading capital from diagnostic messages, as
279	per GNU coding standards.
280
2812001-12-03  Mumit Khan  <khan@nanotech.wisc.edu>
282
283	PR c++/3394
284	* decl.c (xref_basetypes): Handle attributes between
285	'class' and name.
286
2872001-12-03  Nathan Sidwell  <nathan@codesourcery.com>
288
289	PR g++/3381
290	* parse.y (named_complex_class_head_sans_basetype): Add new
291	reduction.
292	* Make-lang.in (parse.c): Adjust expected conflict count.
293
2942001-12-03  Jason Merrill  <jason@redhat.com>
295
296	* class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
297	immediate binfos for our virtual bases.
298
2992001-12-02  Neil Booth  <neil@daikokuya.demon.co.uk>
300
301	* call.c (build_java_interface_fn_ref): Similarly.
302	* except.c (is_admissible_throw_operand): Similarly.
303	* init.c (build_java_class_ref): Similarly.
304	* xref.c (open_xref_file): Similarly.
305
3062001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
307
308	* class.c (finish_struct): Remove trailing periods from messages.
309	* decl.c (check_tag_decl): Similarly.
310	* lex.c (cxx_set_yydebug): Similarly.
311	* typeck2.c (friendly_abort): Similarly.
312
3132001-11-29  Mark Mitchell  <mark@codesourcery.com>
314
315	PR c++/3048
316	* cp-tree.h (ovl_member): Remove.
317	* decl2.c (merge_functions): Handle extern "C" functions
318	specially.
319	* tree.c (ovl_member): Remove.
320
3212001-11-29  Mark Mitchell  <mark@codesourcery.com>
322
323	PR c++/4842
324	* class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
325	FUNCTION_DECL, as input.
326	(mark_overriders): Remove.
327	(warn_hidden): Rework for the new ABI.
328
3292001-11-29  Mark Mitchell  <mark@codesourcery.com>
330
331	PR c++/3471
332	* call.c (convert_like_real): Do not build additional temporaries
333	for rvalues of class type.
334
3352001-11-28  Nathan Sidwell  <nathan@codesourcery.com>
336
337	* cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
338	(ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
339	(PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
340	(DERIVED_FROM_P): Likewise.
341	(enum base_access): Renumber, add ba_quiet bit mask.
342	(get_binfo): Remove.
343	(get_base_distance): Remove.
344	(binfo_value): Remove.
345	(ACCESSIBLY_DERIVED_FROM_P): Remove.
346	* call.c (standard_conversion): Use lookup_base.
347	* class.c (strictly_overrides): Likewise.
348	(layout_virtual_bases): Likewise.
349	(warn_about_ambiguous_direct_bases): Likewise.
350	(is_base_of_enclosing_class): Likewise.
351	(add_vcall_offset_vtbl_entries_1): Likewise.
352	* cvt.c (build_up_reference): Adjust comment.
353	* init.c (build_member_call): Reformat.
354	* search.c (get_binfo): Remove.
355	(get_base_distance_recursive): Remove.
356	(get_base_distance): Remove.
357	(lookup_base_r): Tweak.
358	(lookup_base): Add ba_quiet control. Complete the types here.
359	(covariant_return_p): Use lookup_base.
360	* tree.c (binfo_value): Remove.
361	(maybe_dummy_object): Use lookup_base.
362	* typeck.c (build_static_cast): Use lookup_base.
363	(get_delta_difference): Likewise.
364	* typeck2.c (binfo_or_else): Use lookup_base.
365	(build_scoped_ref): Add back error_mark_check.
366	(build_m_component_ref): Use lookup_base.
367
3682001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
369
370	* Make-lang.in (c++.generated-manpages): New dummy target.
371
3722001-11-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
373
374	* Make-lang.in (cp-lang.o): Depends on c-common.h.
375	* cp-lang.c (c-common.h): Include.
376	(LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
377	* decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
378	* expr.c (init_cplus_expand): Don't set lang_expand_constant.
379
3802001-11-26  Neil Booth  <neil@daikokuya.demon.co.uk>
381
382	* decl2.c (c_language): Move to c-common.c.
383	* lex.c (cxx_post_options, cxx_init_options): Use c-common.c
384	functions.
385	(cxx_init): Update.
386
3872001-11-26  Jason Merrill  <jason@redhat.com>
388
389	* call.c (joust): Remove COND_EXPR hack.
390
3912001-11-25  Aldy Hernandez  <aldyh@redhat.com>
392
393	* search.c (lookup_base_r): Declare bk in variable declaration
394	space.
395
3962001-11-25  Nathan Sidwell  <nathan@codesourcery.com>
397
398	PR g++/3145
399	* class.c (build_vbase_pointer): Remove.
400	(build_vbase_path): Remove.
401	(build_base_path): New function.
402	* cp-tree.h (base_access, base_kind): New enumerations.
403	(build_base_path): Declare.
404	(convert_pointer_to_real): Remove.
405	(convert_pointer_to): Remove.
406	(lookup_base): Declare.
407	(convert_pointer_to_vbase): Remove.
408	* call.c (build_scoped_method_call): Use lookup_base &
409	build_base_path instead of convert_pointer_to_real,
410	get_base_distance & get_binfo.
411	(build_over_call): Likewise.
412	* cvt.c (cp_convert_to_pointer): Likewise.
413	(convert_to_pointer_force): Likewise.
414	(build_up_reference): Likewise.
415	(convert_pointer_to_real): Remove.
416	(convert_pointer_to): Remove.
417	* init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
418	instead of convert_pointer_to_vbase & build_vbase_path.
419	(emit_base_init): Use build_base_path instead of
420	convert_pointer_to_real.
421	(expand_virtual_init): Lose unrequired conversions.
422	(resolve_offset_ref): Use lookup_base and build_base_path
423	instead of convert_pointer_to.
424	* rtti.c (build_dynamic_cast_1): Use lookup_base &
425	build_base_path instead of get_base_distance & build_vbase_path.
426	* search.c (get_vbase_1): Remove.
427	(get_vbase): Remove.
428	(convert_pointer_to_vbase): Remove.
429	(lookup_base_r): New function.
430	(lookup_base): New function.
431	* typeck.c (require_complete_type): Use lookup_base &
432	build_base_path instead of convert_pointer_to.
433	(build_component_ref): Likewise.
434	(build_x_function_call): Likewise.
435	(get_member_function_from_ptrfunc): Likewise.
436	(build_component_addr): Likewise.
437	* typeck2.c (build_scoped_ref): Likewise.
438
4392001-11-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
440
441	* cp-tree.h (CP_TYPE_QUALS): Removed.
442	* decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
443	* cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
444	LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
445	* dump.c (cp_dump_tree): Use void* dump_info argument to match
446	lang-hooks prototype.
447	* call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
448	rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
449	CP_TYPE_QUALS changed to cp_type_quals.
450	* Make-lang.in: References to c-dump.h changed to tree-dump.h.
451	(CXX_C_OBJS): Remove c-dump.o.
452
4532001-11-21  Mark Mitchell  <mark@codesourcery.com>
454
455	PR c++/3637
456	* pt.c (lookup_template_class): Ensure that all specializations
457	are registered on the list corresponding to the most general
458	template.
459
4602001-11-20  Mark Mitchell  <mark@codesourcery.com>
461
462	* call.c (non_reference): Add documentation.
463	(convert_class_to_reference): Do not strip reference types
464	from conversion operators.
465	(maybe_handle_ref_bind): Simplify.
466	(compare_ics): Correct handling of references.
467
4682001-11-19  John Wilkinson <johnw@research.att.com>
469
470	* dump.c (dump_op): New function.
471	(cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION.  Use
472	dump_op.  Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
473	DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
474
4752001-11-19  Mark Mitchell  <mark@codesourcery.com>
476
477	PR4629
478	* semantics.c (finish_sizeof): Make sure that expression created
479	while processing a template do not have a type.
480	(finish_alignof): Likewise.
481	* typeck.c (c_sizeof): Likewise.
482	(expr_sizeof): Likewise.
483
4842001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
485
486	* lex.c (cxx_finish): Call c_common_finish.
487	(finish_parse): Remove.
488
4892001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
490
491	* decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
492	when displaying error message about missing array bounds.
493
4942001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
495
496	* mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
497	CONST_CAST_EXPR.
498	* operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
499
5002001-11-16  Neil Booth  <neil@daikokuya.demon.co.uk>
501
502	* cp-tree.h (print_class_statistics): Restore.
503
5042001-11-15  Jason Merrill  <jason@redhat.com>
505
506	* method.c (use_thunk): Don't emit debugging information for thunks.
507
508	* parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
509	* decl.c (make_typename_type): Handle getting a class template.
510	* search.c (lookup_field_r): A class template is good enough for
511	want_type.
512
513	* call.c (convert_like_real): Only use cp_convert for the bad part.
514	(standard_conversion): Also allow bad int->enum.
515	* typeck.c (ptr_reasonably_similar): Also allow functions to
516	interconvert.  Pointers to same-size integers are reasonably
517	similar.
518
519	* cvt.c (convert_to_void): If we build a new COND_EXPR, always
520	give it void type.
521
5222001-11-15  Nathan Sidwell  <nathan@codesourcery.com>
523
524	PR g++/3154
525	* init.c (sort_base_init): Remove unreachable code.
526	(expand_member_init): Adjust comment to reflect reality. Simplify
527	and remove unreachable code.
528
5292001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
530
531	* cp-tree.h (init_reswords, cxx_init_decl_processing): New.
532	(cxx_init): Update prototype.
533	* decl.c (init_decl_processing): Rename.  Move null node init
534	to its creation time.
535	* lex.c (cxx_init_options): Update.
536	(cxx_init): Combine with old init_parse; also call
537	cxx_init_decl_processing.
538
5392001-11-14  Richard Sandiford  <rsandifo@redhat.com>
540
541	* decl.c (check_initializer): Try to complete the type of an
542	array element before checking whether it's complete.  Don't
543	complain about arrays with complete element types but an
544	unknown size.
545	(cp_finish_decl): Build the hierarchical constructor before
546	calling maybe_deduce_size_from_array_init.
547
5482001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
549
550	* Make-lang.in: Change all uses of $(manext) to $(man1ext).
551
5522001-11-13  Nathan Sidwell  <nathan@codesourcery.com>
553
554	PR g++/4206
555	* parse.y (already_scoped_stmt): Remove.
556	(simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
557
5582001-11-12  H.J. Lu <hjl@gnu.org>
559
560	* cvt.c (ocp_convert): Don't warn the address of a weak
561	function is always `true'.
562
5632001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
564
565	* cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
566	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
567	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
568	* cp-tree.h (print_class_statistics): Remove.
569	(cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
570	cxx_print_identifier, cxx_set_yydebug): New.
571	* lex.c (set_yydebug): Rename c_set_yydebug.
572	* ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
573	lang_print_xnode): Rename.
574	* tree.c (print_lang_statistics): Rename.
575
5762001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
577
578	* class.c (dump_array): Fix format specifier warning.
579
5802001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
581
582	* cp-lang.c (LANG_HOOKS_NAME): Override.
583	(struct lang_hooks): Constify.
584	* lex.c (cxx_init_options): Update.
585	(lang_identify): Remove.
586	* parse.y (language_string): Remove.
587
5882001-11-08  Andreas Franck  <afranck@gmx.de>
589
590	* Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
591	DEMANGLER_CROSS_NAME): Handle program_transform_name the way
592	suggested by autoconf.
593	(GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
594	(c++.install-common): Use the transformed target alias names.
595
5962001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
597
598	* Make-lang.in: Update.
599	* cp-lang.c: Include langhooks-def.h.
600
6012001-11-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
602
603	* pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
604
6052001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
606
607	* lex.c (copy_lang_type): Add static prototype.
608
6092001-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
610
611	* pt.c (unify): Handle SCOPE_REF.
612
6132001-11-01  Jakub Jelinek  <jakub@redhat.com>
614
615	* tree.c (cp_copy_res_decl_for_inlining): Adjust
616	DECL_ABSTRACT_ORIGIN for the return variable.
617
6182001-10-31  Zack Weinberg  <zack@codesourcery.com>
619
620	*  Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
621
6222001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
623
624	* ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
625	semantics.c, spew.c: Fix spelling errors.
626
6272001-10-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
628
629	* decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
630
6312001-10-25  Zack Weinberg  <zack@codesourcery.com>
632
633	* cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
634	pop_everything.
635
6362001-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
637
638	* cp-lang.c (cxx_get_alias_set): New function.
639	Point LANG_HOOKS_GET_ALIAS_SET to it.
640
6412001-10-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
642
643	* cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
644	* cp-tree.h (make_unbound_class_template): Prototype new function.
645	* decl.c (make_unbound_class_template): New function.
646	* decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
647	* error.c (dump_type): Likewise.
648	* mangle.c (write_type): Likewise.
649	* parse.y (template_parm): Likewise.
650	(template_argument): Use make_unbound_class_template.
651	* pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
652	(tsubst): Likewise.
653	(tsubst_copy): Likewise.
654	(unify): Likewise.
655	* tree.c (walk_tree): Likewise.
656	* typeck.c (comptypes): Likewise.
657
6582001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
659
660	* xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
661	extra calls into fewer ones.
662
6632001-10-18  Alexandre Oliva  <aoliva@redhat.com>
664
665	* decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
666	Warn when merging inline with attribute noinline.
667	(start_decl, start_function): Warn if inline and attribute
668	noinline appear in the same declaration.
669
6702001-10-16  H.J. Lu <hjl@gnu.org>
671
672	* cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
673	for tree checking disabled.
674
6752001-10-16  Hans-Peter Nilsson  <hp@axis.com>
676
677	* cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
678	NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
679
6802001-10-15  Richard Sandiford  <rsandifo@redhat.com>
681
682	* pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
683	(unify): Only handle MINUS_EXPR specially if the above flag is set
684	and the subtracted constant is 1.  Clear the flag on recursive calls.
685	Set it when unifying the maximum value in an INTEGER_TYPE's range.
686
6872001-10-15  Richard Sandiford  <rsandifo@redhat.com>
688
689	* decl.c (bad_specifiers): Don't allow exception specifications
690	on any typedefs.
691
6922001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
693
694	* cp/lex.c (init_cp_pragma): Similarly.
695
6962001-10-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
697
698	* pt.c (lookup_template_class): Build complete template arguments
699	for BOUND_TEMPLATE_TEMPLATE_PARM.
700
7012001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
702
703	* cp-tree.h (TYPE_BINFO): Update comment.
704	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
705	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
706	(TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
707	(copy_type): Prototype new function.
708	* lex.c (copy_lang_decl): Gather tree node statistics.
709	(copy_lang_type): New function.
710	(copy_type): Likewise.
711	(cp_make_lang_type): Create lang_type for
712	BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
713	and BOUND_TEMPLATE_TEMPLATE_PARM.
714	* pt.c (tsubst): Use copy_type instead of copy_node.
715	* search.c (lookup_field_1): Ignore TYPENAME_TYPE.
716
7172001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
718
719	* pt.c (determine_specialization): Ignore functions without
720	DECL_TEMPLATE_INFO.
721
7222001-10-12  Nathan Sidwell  <nathan@codesourcery.com>
723
724	PR g++/4476
725	* typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
726
7272001-10-11  Jason Merrill  <jason_merrill@redhat.com>
728
729	* typeck2.c (store_init_value): Don't re-digest a bracketed
730	initializer.
731
732	* class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
733	ANON_AGGR_TYPE_P.
734
7352001-10-11  Richard Henderson  <rth@redhat.com>
736
737	* class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
738	of an asm statement.
739	(build_vtbl_ref_1): Split out from build_vtbl_ref.
740	(build_vfn_ref): Use it to handle vtable descriptors before
741	calling build_vtable_entry_ref.
742	* decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
743
7442001-10-10  Richard Henderson  <rth@redhat.com>
745
746	* parse.y (asm_operand): Allow named operands.
747	* semantics.c (finish_asm_stmt): Tweek for changed location
748	of the operand constraint.
749
7502001-10-09  Jason Merrill  <jason_merrill@redhat.com>
751
752	* call.c (standard_conversion): Add bad conversion between
753	integers and pointers.
754	(convert_like_real): Don't use convert_for_initialization for bad
755	conversions; complain here and use cp_convert.
756	(build_over_call): Don't handle bad conversions specially.
757	(perform_implicit_conversion): Allow bad conversions.
758	(can_convert_arg_bad): New fn.
759	* cp-tree.h: Declare it.
760	* typeck.c (convert_for_assignment): Use it.
761	(ptr_reasonably_similar): Any target type is similar to void.
762
7632001-10-08  Alexandre Oliva  <aoliva@redhat.com>
764
765	* Make-lang.in (CXX_OBJS): Added cp-lang.o.
766	(cp/cp-lang.o): New rule.
767	* cp-tree.h: Declare hooks.
768	* tree.c: Make hooks non-static.
769	(init_tree): Don't initialize hooks here.
770	* lex.c: Likewise.  Move definition of lang_hooks to...
771	* cp-lang.c: ... new file.
772
7732001-10-08  Richard Henderson  <rth@redhat.com>
774
775	* cp-tree.h (struct lang_decl_flags): Remove declared_inline.
776	(DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
777
7782001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
779
780	* class.c (build_vtable_entry_ref): Const-ify.
781	* decl.c (predefined_identifier,
782	initialize_predefined_identifiers): Likewise.
783	* init.c (build_new_1): Likewise.
784	* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
785	Likewise.
786
7872001-10-05  Alexandre Oliva  <aoliva@redhat.com>
788
789	* optimize.c (struct inline_data): Moved to ../tree-inline.c.
790	(INSNS_PER_STMT): Likewise.
791	(remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
792	(copy_body, initialize_inlined_parameters): Likewise.
793	(declare_return_variable, inlinable_function_p): Likewise.
794	(expand_call_inline, expand_calls_inline): Likewise.
795	(optimize_inline_calls, clone_body): Likewise.
796	* tree.c (walk_tree): Moved to ../tree-inline.c.
797	(walk_tree_without_duplicates): Likewise.
798	(copy_tree_r, remap_save_expr): Likewise.
799
8002001-10-04  Alexandre Oliva  <aoliva@redhat.com>
801
802	* Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
803	(cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
804	* cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
805	(TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
806	(flag_inline_trees): Moved declaration to ../tree-inline.h.
807	(walk_tree): Moved declaration to ../tree-inline.h.
808	(walk_tree_without_duplicates, copy_tree_r): Likewise.
809	(remap_save_expr): Likewise.
810	* decl.c: Include tree-inline.h.
811	(lang_mark_tree): Don't mark inlined_fns.
812	* decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
813	* optimize.c: Include tree-inline.h.
814	(optimize_inline_calls): Move declaration to ../tree.h, as
815	non-static.
816	(remap_decl): Use language-independent constructs and hooks.
817	(remap_block, copy_body_r, declare_return_variable): Likewise.
818	(inlinable_function_p): Likewise.  Don't test for
819	DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
820	no longer language-specific.
821	(optimize_inline_calls): Likewise.  Make it non-static.  Moved
822	call of dump_function to...
823	(optimize_function): Here...
824	(clone_body): New function, extracted from...
825	(maybe_clone_body): ... here.  Build decl_map locally and pass
826	it on to clone_body.
827	* pt.c, semantics.c: Include tree-inline.h.
828	* tree.c: Likewise.
829	(cp_walk_subtrees): New language-specific hook for tree inlining.
830	(cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
831	cp_is_overload_p, cp_auto_var_in_fn_p,
832	cp_copy_res_decl_for_inlining): Likewise.
833	(walk_tree): Move language-specific constructs into...
834	(cp_walk_subtrees): this new function.
835	(copy_tree_r): Use language-independent constructs and hooks.
836	(init_tree): Initialize tree inlining hooks.
837	(remap_save_expr): Adjust prototype so that the declaration
838	does not require the definition of splay_tree.
839
8402001-10-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
841
842	* rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
843	to build the declaration instead of the declaration itself.
844
8452001-10-02  Jason Merrill  <jason_merrill@redhat.com>
846
847	* decl2.c (cxx_decode_option): Add 'else'.
848
849	* spew.c (end_input): No longer static.
850	* cp-tree.h: Declare it.
851	* parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
852
8532001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
854
855	* call.c (build_over_call), typeck.c (build_function_call_real):
856	Pass type attributes to check_function_format rather than name or
857	assembler name.  Don't require there to be a name or assembler
858	name to check formats.
859
8602001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
861
862	* decl.c (init_decl_processing): Don't call
863	init_function_format_info.  Initialize lang_attribute_table
864	earlier.
865	(builtin_function): Call decl_attributes.
866	(insert_default_attributes): New.
867
8682001-10-01  Jason Merrill  <jason_merrill@redhat.com>
869
870	* decl.c (grokdeclarator): Copy array typedef handling from C
871	frontend.
872
873	* decl.c (grokdeclarator): Copy too-large array handling from C
874	frontend.
875
8762001-09-29  Alexandre Oliva  <aoliva@redhat.com>
877
878	* config-lang.in (target_libs): Added target-gperf, so that we
879	don't try to build it if C++ is disabled.
880
8812001-09-23  Zack Weinberg  <zack@codesourcery.com>
882
883	* Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
884	(cp/errfn.o): Delete rule.
885	(cp/error.o): Depend on flags.h.
886	* errfn.c: Delete file.
887	* cp-tree.h: Declare warn_deprecated.  Remove definitions of
888	TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
889	and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
890	cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
891	internal_error respectively.  Make cp_deprecated into a macro.
892	Don't define cp_printer typedef or declare cp_printers.
893	* error.c: Include flags.h.
894	Delete: struct tree_formatting_info, print_function_argument_list,
895	print_declaration, print_expression, print_function_declaration,
896	print_function_parameter, print_type_id, print_cv_qualifier_seq,
897	print_type_specifier_seq, print_simple_type_specifier,
898	print_elaborated_type_specifier, print_rest_of_abstract_declarator,
899	print_parameter_declaration_clause, print_exception_specification,
900	print_nested_name_specifier, and definition of cp_printers.
901	(locate_error): New function.
902	(cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
903	rewritten in terms of locate_error and diagnostic.c.
904	(cp_tree_printer): Rename cp_printer; wire up to *_to_string
905	instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
906	(init_error): Adjust to match.
907
9082001-09-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
909
910	* Make-lang.in (CXX_C_OBJS): Add attribs.o.
911
9122001-09-21  Richard Henderson  <rth@redhat.com>
913
914	* class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
915	(build_vtbl_initializer): Likewise.
916	(build_vfn_ref): New.
917	* cp-tree.h: Declare it.
918	* call.c (build_over_call): Use it.
919	* decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
920	* typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
921
9222001-09-21  J"orn Rennecke <amylaar@redhat.com>
923
924	* decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
925
9262001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
927
928	Table-driven attributes.
929	* decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
930	* decl2.c (cplus_decl_attributes): Only take one attributes
931	parameter.
932	* cp-tree.c (cplus_decl_attributes): Update prototype.
933	* class.c (finish_struct), decl.c (start_decl, start_function),
934	decl2.c (grokfield), friend.c (do_friend), parse.y
935	(parse_bitfield): Update calls to cplus_decl_attributes.
936	* decl.c (grokdeclarator): Take a pointer to a single ordinary
937	attribute list.
938	* decl.h (grokdeclarator): Update prototype.
939	* decl2.c (grokfield): Take a single ordinary attribute list.
940	* friend.c (do_friend): Likewise.
941	* decl.c (shadow_tag, groktypename, start_decl,
942	start_handler_parms, grokdeclarator, grokparms, start_function,
943	start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
944	parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
945	(process_template_parm, do_decl_instantiation): Pass single
946	ordinary attribute lists around.
947	* decl.c (grokdeclarator): Correct handling of nested attributes.
948	Revert the patch
949	1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
950		* decl.c (grokdeclarator): Embedded attrs bind to the right,
951		not the left.
952	.
953	* cp-tree.h (cp_valid_lang_attribute): Remove declaration
954	(cp_attribute_table): Declare.
955	* decl.c (valid_lang_attribute): Don't define.
956	(lang_attribute_table): Define.
957	(init_decl_processing): Initialize lang_attribute_table instead of
958	valid_lang_attribute.
959	* tree.c (cp_valid_lang_attribute): Remove.
960	(handle_java_interface_attribute, handle_com_interface_attribute,
961	handle_init_priority_attribute): New functions.
962	(cp_attribute_table): New array.
963	* decl2.c (import_export_class): Don't use
964	targetm.valid_type_attribute.
965
9662001-09-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
967
968	* Make-lang.in (cp/error.o): Depend on real.h
969	* error.c: #include "real.h"
970
9712001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
972
973	* mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
974	xmalloc/strcpy/strcat.
975
9762001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
977
978	* decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
979	Const-ification.
980	* pt.c (tsubst_decl): Likewise.
981
9822001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
983
984	* decl2.c (lang_f_options): Const-ification.
985	* lex.c (cplus_tree_code_name): Likewise.
986	* spew.c (yyerror): Likewise.
987
9882001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
989
990	PR c++/3986
991	* class.c (force_canonical_binfo_r): Check & move an indirect
992	primary base first.
993	(force_canonical_binfo): Check that it's not already
994	canonical.
995	(mark_primary_virtual_base): Remove BINFO parameter.
996	(mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
997
9982001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
999
1000	Remove TYPE_NONCOPIED_PARTS.
1001	* cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
1002	CLASSTYPE_PURE_VIRTUALS.
1003	(TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
1004	* class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
1005	(layout_class_type): Don't call fixup_inline_methods here ...
1006	(finish_struct_1): ... call it here.
1007
10082001-09-04  Mark Mitchell  <mark@codesourcery.com>
1009
1010	* decl.c (duplicate_decls): Remove code deadling with
1011	DECL_SAVED_INSNS.
1012	* decl2.c (finish_file): Likewise.
1013	* pt.c (instantiate_decl): Likewise.
1014	* semantics.c (expand_body): Don't defer local functions if
1015	they wouldn't be deferred for some other reason.  Don't
1016	generate RTL for functions that will not be emitted.
1017	(genrtl_start_function): Remove code deadling with
1018	DECL_SAVED_INSNS.
1019	(genrtl_finish_function): Likewise.
1020
10212001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
1022
1023	PR c++/4203
1024	* call.c (build_over_call): Do not optimize any empty base
1025	construction.
1026
10272001-08-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1028
1029	* error.c (dump_template_decl): Output template parameters
1030	together with their specifiers.
1031	Output `class' prefix for template template parameter.
1032	(dump_decl): Fix formatting.
1033
10342001-08-30  Kurt Garloff  <garloff@suse.de>
1035
1036	* optimize.c (inlinable_function_p): Allow only smaller single
1037	functions. Halve inline limit after reaching recursive limit.
1038
10392001-08-30  Joern Rennecke <amylaar@redhat.com>
1040	    Jason Merrill  <jason_merrill@redhat.com>
1041
1042	* class.c (build_vtable_entry_ref): Subtract in char*, not
1043	ptrdiff_t.
1044
10452001-08-23  Jason Merrill  <jason_merrill@redhat.com>
1046
1047	* tree.c (cp_build_qualified_type_real): Use get_qualified_type.
1048	(build_cplus_array_type): Use cp_build_qualified_type, not
1049	TYPE_MAIN_VARIANT, to get an unqualified version.
1050
1051	* decl2.c (grok_alignof): Lose.
1052	(build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
1053	* typeck.c (c_alignof): Lose.
1054	* semantics.c (finish_sizeof, finish_alignof): New.
1055	* parse.y: Use them.
1056	* cp-tree.h: Declare them.
1057
10582001-08-22  Jason Merrill  <jason_merrill@redhat.com>
1059
1060	* pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
1061	Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
1062	* tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
1063
10642001-08-19  Jakub Jelinek  <jakub@redhat.com>
1065
1066	* typeck2.c (add_exception_specifier): Only require complete type if
1067	not in processing template declaration.
1068
10692001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1070
1071	* decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
1072	GNU_xref_start_scope and GNU_xref_end_scope.
1073
1074	* tree.c (TYPE_HASH): Moved to ../tree.h.
1075
10762001-08-16  Mark Mitchell  <mark@codesourcery.com>
1077
1078	* cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
1079	on COMPOUND_EXPRs.
1080
10812001-08-14  Richard Henderson  <rth@redhat.com>
1082
1083	* class.c, cp-tree.h (build_vfn_ref): Remove.
1084	* call.c, rtti.c: Replace all refernces with build_vtbl_ref.
1085
10862001-08-13  Mark Mitchell  <mark@codesourcery.com>
1087
1088	* call.c (build_over_call): Mark COMPOUND_EXPRs generated for
1089	empty class assignment as having side-effects to avoid
1090	spurious warnings.
1091
10922001-08-13  Zack Weinberg  <zackw@panix.com>
1093
1094	* Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
1095	* except.c: Include libfuncs.h.
1096
10972001-08-11  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1098
1099	* decl.c (grokdeclarator): Clarify diagnostic message.
1100
11012001-08-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1102
1103	* decl2.c (do_nonmember_using_decl): Replace using directive
1104	with using declaration in the error message.
1105
11062001-08-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1107
1108	* pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
1109	criterion to avoid rebuilding expression tree instead of
1110	processing_template_decl.
1111
11122001-08-07  Jason Merrill  <jason_merrill@redhat.com>
1113
1114	Support named return value optimization for inlines, too.
1115	* decl.c (finish_function): Nullify returns here.
1116	* semantics.c (genrtl_start_function): Not here.
1117	(cp_expand_stmt): Don't mess with CLEANUP_STMTs.
1118	(nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
1119	Also nullify the CLEANUP_STMT for the nrv.
1120	* cp-tree.h: Declare it.
1121	* optimize.c (declare_return_variable): Replace the nrv with the
1122	return variable.
1123	* typeck.c (check_return_expr): Be more flexible on alignment check.
1124	Ignore cv-quals when checking for a matching type.
1125
11262001-08-09  Richard Henderson  <rth@redhat.com>
1127
1128	* decl2.c (finish_objects): Use target hooks instead of
1129	assemble_constructor and assemble_destructor.
1130
11312001-08-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1132
1133	* g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
1134
11352001-08-07  Nathan Sidwell  <nathan@codesourcery.com>
1136
1137	PR c++/3820
1138	Stop using TYPE_NONCOPIED_PARTS.
1139	* call.c (build_over_call): Be careful when copy constructing
1140	or assigning to an empty class.
1141	* class.c (check_bases_and_members): It has a
1142	COMPLEX_ASSIGN_REF if it has a vptr.
1143	(layout_class_type): Don't add empty class padding to
1144	TYPE_NONCOPIED_PARTS.
1145	(finish_struct_1): Don't add the VFIELD either.
1146	* cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
1147	initialization.
1148
11492001-08-07  Jason Merrill  <jason_merrill@redhat.com>
1150
1151	* tree.c (walk_tree): Walk siblings even if !walk_subtrees.
1152
11532001-08-06  Richard Henderson  <rth@redhat.com>
1154
1155	* decl2.c (finish_objects): Pass a symbol_ref and priority to
1156	assemble_{constructor,destructor}.  Remove priority handling.
1157
11582001-08-05  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1159
1160	Don't allow template-id in using-declaration.
1161	* decl2.c (validate_nonmember_using_decl): Handle template-ids.
1162	(do_class_using_decl): Likewise.
1163
11642001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1165
1166	* cp/spew.c (read_token): No need to pop buffers.
1167
11682001-08-02  Stan Shebs  <shebs@apple.com>
1169
1170	* cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
1171	(fnaddr_from_vtable_entry): Remove decl.
1172	* method.c (use_thunk): Update comment.
1173
11742001-08-01  Andrew Cagney  <ac131313@redhat.com>
1175
1176	* repo.c (get_base_filename): Change return value to const char
1177	pointer.
1178
11792001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
1180
1181	Kill -fhonor-std.
1182	* NEWS: Document.
1183	* cp-tree.h (flag_honor_std): Remove.
1184	(CPTI_FAKE_STD): Remove.
1185	(std_node): Remove comment about it being NULL.
1186	(fake_std_node): Remove.
1187	* decl.c (in_fake_std): Remove.
1188	(walk_namespaces_r): Remove fake_std_node check.
1189	(push_namespace): Remove in_fake_std code.
1190	(pop_namespace): Likewise.
1191	(lookup_name_real): Remove fake_std_node check.
1192	(init_decl_processing): Always create std_node. Always add
1193	std:: things there.
1194	(builtin_function): Always put non '_' fns in std.
1195	* decl2.c (flag_honor_std): Remove.
1196	(lang_f_options): Remove honor-std.
1197	(unsupported_options): Add honor-std.
1198	(set_decl_namespace): Remove fake_std_node check.
1199	(validate_nonmember_using_decl): Likewise.
1200	(do_using_directive): Likewise.
1201	(handle_class_head): Likewise.
1202	* dump.c (cp_dump_tree): Likewise.
1203	* except.c (init_exception_processing): Adjust.
1204	* init.c (build_member_call): Remove fake_std_node check.
1205	(build_offset_ref): Likewise.
1206	* lang-options.h: Remove -fhonor-std, -fno-honor-std.
1207	* rtti.c (init_rtti_processing): Adjust.
1208
12092001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
1210
1211	* tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
1212	operand while calling cp_tree_equal.
1213
12142001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
1215
1216	The 3.0 ABI no longer has vbase pointer fields.
1217	* cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
1218	FORMAT_VBASE_NAME): Remove.
1219	* method.c (do_build_copy_constructor): Adjust.
1220	(do_build_assign_ref): Adjust.
1221	* search.c (lookup_field_r): Adjust.
1222	* typeck.c (build_component_ref): Adjust.
1223
1224	The 3.0 ABI always has a vtable pointer at the start of every
1225	polymorphic class.
1226	* rtti.c (build_headof_sub): Remove.
1227	(build_headof): Adjust.
1228	(get_tinfo_decl_dynamic): No need to check flag_rtti
1229	here. Adjust.
1230	(create_real_tinfo_var): Explain why we need a hidden name.
1231
12322001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
1233
1234	PR c++/3631
1235	* class.c (update_vtable_entry_for_fn): The fixed adjustment
1236	of a virtual thunk should be from declaring base.
1237
12382001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
1239
1240	* class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
1241	the shared virtual base, so preserving inheritance graph order.
1242
12432001-07-30  Andreas Jaeger  <aj@suse.de>
1244
1245	* decl2.c: Remove unused var global_temp_name_counter.
1246
12472001-07-28  Richard Henderson  <rth@redhat.com>
1248
1249	* method.c (pending_inlines): Remove.
1250
12512001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
1252
1253	* class.c (mark_primary_virtual_base): Don't adjust base
1254	offsets here.
1255	(dfs_unshared_virtual_bases): Adjust them here.
1256	(mark_primary_bases): Explain why we adjust at the end.
1257
12582001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
1259
1260	* class.c (finish_struct_1): When copying the primary base's
1261	VFIELD, make sure we find it is at offset zero.
1262
12632001-07-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1264
1265	* pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
1266	tsubst_expr for default template arguments.
1267
12682001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
1269
1270	PR c++/3621
1271	* spew.c (yylex): Only copy the token's lineno, if it is
1272	nonzero.
1273
12742001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
1275
1276	PR c++/3624
1277	* call.c (resolve_args): Simplify, call
1278	convert_from_reference.
1279	(build_new_op): Resolve and convert from reference ARG1
1280	earlier. Adjust ARG2 & ARG3 resolve and conversion.
1281
12822001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
1283
1284	* decl.c (last_function_parm_tags): Remove.
1285	(current_function_parm_tags): Remove.
1286	(init_decl_processing): Adjust.
1287	(start_function): Adjust.
1288	(store_parm_decls): Adjust.
1289
1290	PR c++/3152
1291	* decl.c (grokdeclarator): Detect when a function typedef is
1292	declaring a function, and create last_function_parms correctly.
1293
12942001-07-25  Jason Merrill  <jason_merrill@redhat.com>
1295
1296	* call.c (joust): Only prefer a non-builtin candidate to a builtin
1297	one if they have the same signature.
1298
1299	* cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
1300	it rather than toplevel_bindings_p.  Give it a mangled name if static.
1301	(convert_to_reference): Adjust.
1302	* decl2.c (get_temp_name): Lose.
1303	* mangle.c (mangle_ref_init_variable): New fn.
1304	(mangle_guard_variable): Strip the ref-init header.
1305	* cp-tree.h: Adjust.
1306	* decl.c (cp_finish_decl): Add the DECL_STMT after processing the
1307	initializer.
1308	(grok_reference_init): Always use DECL_INITIAL.
1309
13102001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1311
1312	PR c++/3416
1313	* call.c (build_conditional_expr): Recheck args after
1314	conversions.
1315	* cp-tree.h (build_conditional_expr): Move to correct file.
1316	* typeck.c (decay_conversion): Diagnose any unknown types
1317	reaching here.
1318	(build_binary_op): Don't do initial decay or default
1319	conversions on overloaded functions.
1320	(build_static_cast): Don't do a decay conversion here.
1321
13222001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1323
1324	PR c++/3543
1325	* typeck.c (condition_conversion): Resolve an OFFSET_REF.
1326	* expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
1327
13282001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1329
1330	* class.c (build_vtbl_or_vbase_field): Remove, move into ...
1331	(create_vtbl_ptr): ... here.
1332
13332001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1334
1335	* class.c (build_vbase_offset_vbtl_entries): Look for
1336	non-primary base of which we are a sub vtable.
1337
13382001-07-24  Phil Edwards  <pme@sources.redhat.com>
1339
1340	* semantics.c (finish_this_expr):  Remove unused code.
1341
13422001-07-24  Nathan Sidwell  <nathan@codesourcery.com>
1343
1344	Simplify rtti, now we've only one ABI.
1345	* cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
1346	CPTI_TINFO_VAR_ID.
1347	(tinfo_decl_id, tinfo_var_id): Remove.
1348	(get_typeid_1): Remove.
1349	* rtti.c
1350	(init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
1351	(typeid_ok_p): New function.
1352	(build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
1353	(get_tinfo_decl): Remove old abi documentation.
1354	(tinfo_from_decl): Remove.
1355	(get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
1356	(get_typeid_1): Remove.
1357	(get_base_offset): Remove.
1358	(synthesize_tinfo_var): Absorb get_base_offset.
1359	(create_real_tinfo_var): Don't use tinfo_decl_id.
1360
13612001-07-23  Graham Stott  <grahams@redhat.com>
1362
1363	* cp/class.c (type_requires_array_cookie): Fix use of uninitialized
1364	variable has_two_argument_delete_p.
1365
13662001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
1367
1368	Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
1369	* cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
1370	(CPTI_INDEX_IDENTIFIER): Remove.
1371	(CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
1372	(delta2_identifier): Remove.
1373	(index_identifier): Remove.
1374	(pfn_or_delta2_identifier): Remove.
1375	(flag_vtable_thunks): Remove.
1376	(VTABLE_DELTA2_NAME): Remove.
1377	(VTABLE_INDEX_NAME): Remove.
1378	(FNADDR_FROM_VTABLE_ENTRY): Adjust.
1379	(vfunc_ptr_type_node): Adjust.
1380	(VTABLE_NAME_PREFIX): Adjust.
1381	(build_vfn_ref): Lose first parameter.
1382	(fixup_all_virtual_upcast_offsets): Remove.
1383	* decl.c (initialize_predefined_identifiers): Remove
1384	delta2_identifier, index_identifier, pfn_or_delta2_identifier.
1385	(init_decl_processing): Remove no-vtable-thunk code.
1386	* decl2.c (flag_vtable_thunks): Remove.
1387	(mark_vtable_entries): Remove no-vtable-thunk code.
1388	* error.c (dump_decl): Remove no-vtable-thunk code.
1389	(dump_expr): Adjust ptr to member function code.
1390	* init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
1391	code.
1392	* rtti.c (build_headof): Remove no-vtable-thunk code.
1393	(get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
1394	* search.c (get_base_distance): Remove expand_upcast_fixups case.
1395	(virtual_context) Remove.
1396	(expand_upcast_fixups): Remove.
1397	(fixup_virtual_upcast_offsets): Remove.
1398	(fixup_all_virtual_upcast_offsets): Remove.
1399	* typeck.c (get_member_function_from_ptrfunc): Remove
1400	no-vtable-thunk code.
1401	* call.c (build_over_call): Adjust call to build_vfn_ref.
1402	* class.c (build_vfn_ref): Lose first parameter. Remove
1403	no-vtable-thunk code.
1404	(build_rtti_vtbl_entries): Remove no-vtable-thunk code.
1405	(build_vtable_entry): Remove no-vtable-thunk code.
1406
14072001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
1408
1409	Remove old-abi remnants. Remove comments about old abi
1410	behavior. Remove references to 'new-abi' in comments.
1411	* cp-tree.h: Adjust comments.
1412	(vbase_offsets_in_vtable_p): Delete.
1413	(vcall_offsets_in_vtable_p): Delete.
1414	(vptrs_present_everywhere_p): Delete.
1415	(all_overridden_vfuns_in_vtables_p): Delete.
1416	(merge_primary_and_secondary_vtables_p): Delete.
1417	(TYPE_CONTAINS_VPTR_P): Adjust.
1418	(VTT_NAME_PREFIX): Remove.
1419	(CTOR_VTBL_NAME_PREFIX): Remove.
1420	(init_vbase_pointers): Remove.
1421	* class.c: Adjust coments.
1422	(build_vbase_pointer_fields): Delete.
1423	(build_vbase_pointer): Remove old-abi code.
1424	(build_secondary_vtable): Likewise.
1425	(modify_all_vtables): Likewise.
1426	(create_vtable_ptr): Likewise.
1427	(layout_class_type): Likewise.
1428	(finish_struct_1): Likewise.
1429	(finish_vtbls): Likewise.
1430	(dfs_finish_vtbls): Delete.
1431	(build_vbase_offset_vtbl_entries): Remove old-abi code.
1432	* cvt.c: Adjust comments.
1433	* decl.c: Adjust comments.
1434	* decl2.c: Adjust comments.
1435	* init.c: Adjust comments.
1436	(construct_virtual_bases): Remove old-abi code.
1437	* lang-specs.h: Remove -fno-new-abi.
1438	* mangle.c: Adjust comments.
1439	* rtti.c: Adjust comments.
1440	(get_base_offset): Remove old-abi-code.
1441	* search.c: Adjust comments.
1442	(dfs_init_vbase_pointers): Remove.
1443	(dfs_vtable_path_unmark): Remove.
1444	(init_vbase_pointers): Remove.
1445	* semantics.c: Adjust comments.
1446	(emit_associated_thunks): Remove old-abi code.
1447	* typeck.c: Adjust comments.
1448
14492001-07-20  Daniel Berlin  <dan@cgsoftware.com>
1450
1451	* Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
1452	params.h.
1453
14542001-07-19  Mark Mitchell  <mark@codesourcery.com>
1455
1456	* class.c (finish_struct_anon): Forbid nested classes.
1457
14582001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1459
1460	* decl2.c: Don't include dwarfout.h and dwarf2out.h.
1461	* optimize.c: Include debug.h.
1462	(maybe_clone_body): Use debug hook.
1463	* semantics.c: Include debug.h.
1464	(expand_body): Use debug hook.
1465
14662001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1467
1468	* spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
1469
14702001-07-18  Mark Mitchell  <mark@codesourcery.com>
1471
1472	* class.c (type_requires_array_cookie): New function.
1473	(check_methods): Don't try to figure out whether the type needs a
1474	cookie here.
1475	(check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
1476	* cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
1477	(TYPE_VEC_NEW_USES_COOKIE): Reimplement.
1478	* pt.c (instantiate_class_template): Don't set
1479	TYPE_VEC_DELETE_TAKES_SIZE.
1480	* NEWS: Document ABI changes from GCC 3.0.
1481
14822001-07-18  Xavier Delacour <xavier@fmaudio.net>,
1483	    Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1484
1485	* NEWS (Changes in GCC 3.0): Fix typo.
1486
14872001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1488
1489	* decl2.c (cplus_decl_attributes): Take a pointer to the node to
1490	which attributes are to be attached, and a flags argument.  Update
1491	call to decl_attributes.
1492	(grokfield): Update call to decl_attributes.
1493	* class.c (finish_struct): Update call to cplus_decl_attributes.
1494	* cp-tree.h (cplus_decl_attributes): Update prototype.
1495	* decl.c (start_decl, grokdeclarator, start_function): Update
1496	calls to decl_attributes and cplus_decl_attributes.
1497	* friend.c (do_friend): Update call to cplus_decl_attributes.
1498	* parse.y (parse_bitfield): Update call to cplus_decl_attributes.
1499
15002001-07-12  Mark Mitchell  <mark@codesourcery.com>
1501
1502	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
1503	for `register' variables with an asm-specification.
1504
15052001-07-11  Mark Mitchell  <mark@codesourcery.com>
1506
1507	* semantics.c (finish_asm_stmt): Mark the output operands
1508	to an asm addressable, if necessary.
1509
15102001-07-11  Ben Elliston  <bje@redhat.com>
1511
1512	* Revert this change -- there is a subtle bug.
1513
1514	PR c++/80
1515	* decl.c (finish_enum): New "attributes" argument; pass it to
1516	cplus_decl_attributes.  Use a narrower type if the enum is packed.
1517	* cp-tree.h (finish_enum): Adjust prototype.
1518	* parse.y (enum_head): New non-terminal.
1519	(structsp): Use it. Enums now may be preceded or followed by
1520	optional attributes -- pass their chained tree to finish_enum().
1521	* pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
1522
15232001-07-10  Mark Mitchell  <mark@codesourcery.com>
1524
1525	* pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
1526	variables.
1527
15282001-07-10  Jason Merrill  <jason_merrill@redhat.com>
1529
1530	* semantics.c (cp_expand_stmt): Fix for null
1531	current_function_return_value.
1532
15332001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
1534
1535	* call.c (build_op_delete_call): Initialize fn.
1536	(convert_like_real): Delete conditional.
1537	(joust): Initialize *w and *l.
1538	* class.c: Add prototype for binfo_ctor_vtable.
1539	(get_primary_binfo): Initialize result.
1540	* init.c (build_java_class_ref): Initialize name.
1541
15422001-07-09  Erik Rozendaal  <dlr@acm.org>
1543
1544	* typeck.c (unary_complex_lvalue): Do not duplicate the
1545	argument to modify, pre-, or post-increment when used as an
1546	lvalue and when the argument has side-effects.
1547
15482001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1549
1550	* decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
1551	(start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES.  Call
1552	cplus_decl_attributes even if attrs is NULL.
1553	* friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
1554
15552001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1556
1557	* decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
1558	calls to decl_attributes.
1559
15602001-07-06  Ira Ruben   <ira@apple.com>
1561
1562	* cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
1563	be DECL_TEMPLATE_RESULT.
1564
15652001-07-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1566
1567	* cp-tree.h (copy_template_template_parm): Rename to ...
1568	(bind_template_template_parm): ... here.
1569	* tree.c (copy_template_template_parm): Rename to ...
1570	(bind_template_template_parm): ... here.  Remove the case when
1571	NEWARGS is NULL_TREE.
1572	(copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
1573	BOUND_TEMPLATE_TEMPLATE_PARM.
1574	* pt.c (lookup_template_class): Adjust.
1575
15762001-07-05  Jason Merrill  <jason_merrill@redhat.com>
1577
1578	* cvt.c (convert_lvalue): New fn.
1579	* cp-tree.h: Declare it.
1580	* method.c (do_build_assign_ref): Use it.
1581	(do_build_copy_constructor): Convert parm to base types
1582	before calling base constructors.
1583
1584	* typeck.c (check_return_expr): Check DECL_ALIGN instead of
1585	DECL_USER_ALIGN.  Check flag_elide_constructors instead of
1586	optimize.
1587	* semantics.c (cp_expand_stmt): Don't destroy the named return value.
1588
15892001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
1590
1591	* optimize.c (optimize_inline_calls): New function, broken out
1592	of ...
1593	(optimize_function): ... here. Call it. Don't inline if it is
1594	a thunk.
1595	(dump_function): Print name of dump flag causing this dump.
1596	* semantics.c (expand_body): Move thunk inline check to
1597	optimize_function.
1598
15992001-06-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1600
1601	* typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
1602	(comptypes): Use target.comp_type_attributes.
1603
16042001-06-29  Nathan Sidwell  <nathan@codesourcery.com>
1605
1606	* cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
1607
16082001-06-28  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1609
1610	* error.c (lang_print_error_function): Add a `diagnostic_context *'
1611	parameter. Tweak.
1612
16132001-06-27  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1614
1615	* decl2.c (import_export_class): Update.
1616
16172001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
1618
1619	* error.c (init_error): Adjust settings.
1620
16212001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
1622
1623	* error.c (init_error): Adjust settings.
1624
16252001-06-19  Richard Sandiford  <rsandifo@redhat.com>
1626
1627	* except.c (initialize_handler_parm): Expect __cxa_begin_catch to
1628	return pointers to data members by reference rather than by value.
1629
16302001-06-18  Jason Merrill  <jason_merrill@redhat.com>
1631
1632	Implement the Named Return Value optimization.
1633	* cp-tree.h (struct cp_language_function): Add x_return_value.
1634	(current_function_return_value): Now a macro.
1635	* decl.c: Don't define it.
1636	(define_label, finish_case_label): Don't clear it.
1637	(init_decl_processing): Don't register it with GC.
1638	* semantics.c (genrtl_finish_function): Don't check it for
1639	no_return_label.  Copy the RTL from the return value to
1640	current_function_return_value and walk, calling...
1641	(nullify_returns_r): ...this new fn.
1642	* typeck.c (check_return_expr): Set current_function_return_value.
1643
16442001-06-15  Jason Merrill  <jason_merrill@redhat.com>
1645
1646	* class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
1647	sharing a ctor vtable with.  Merge code for cases 1 and 2.
1648	(binfo_ctor_vtable): New fn.
1649	(build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
1650
16512001-06-14  Jason Merrill  <jason_merrill@redhat.com>
1652
1653	* class.c (dfs_find_final_overrider): Fix logic.
1654
1655	* class.c (update_vtable_entry_for_fn): Uncomment optimization to use
1656	virtual thunk instead of non-virtual.
1657	(get_matching_virtual): Uncomment.
1658
1659	* pt.c (unify): Don't recurse between the POINTER_TYPE and the
1660	OFFSET_TYPE.  If we're adding cv-quals, the extra ones would be on
1661	PARM, not ARG.
1662
16632001-06-14  Nathan Sidwell  <nathan@codesourcery.com>
1664
1665	* class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
1666	we've not emerged from the hierarchy of RTTI_BINFO on reaching
1667	a non-virtual base.
1668
16692001-06-13  Mark Mitchell  <mark@codesourcery.com>
1670
1671	* NEWS: Update release number.
1672
16732001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
1674
1675	PR c++/3130, c++/3131, c++/3132
1676	* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
1677	* class.c (force_canonical_binfo_r): Move
1678	BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
1679	virtual bases unless they're primary and what they're primary
1680	too has been moved.
1681	(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
1682	with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
1683	BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
1684	derived binfo.
1685	(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
1686	(layout_nonempty_base_or_field): Add most derived type
1687	parameter. Adjust.
1688	(layout_empty_base): Likewise.
1689	(build_base_field): Likewise.
1690	(build_base_fields): Likewise.
1691	(propagate_binfo_offsets): Add most derived type
1692	parameter. Skip non canonical virtual bases too.
1693	(dfs_set_offset_for_unshared_vbases): Don't skip primary
1694	bases. Do skip canonical bases.
1695	(layout_virtual_bases): Adjust.
1696	(layout_class_type): Adjust.
1697	(dfs_get_primary_binfo): Build list of virtual primary base
1698	candidates.
1699	(get_primary_binfo): Check that the shared virtual primary
1700	base candidate was found first.
1701	(accumulate_vtbl_inits): Don't do anything for non-vptr
1702	containing binfos. For case 1 primary virtual bases, keep
1703	checking that we've not emerged from the hierarchy of RTTI_BINFO.
1704
17052001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
1706
1707	PR c++/3089
1708	* class.c (dfs_accumulate_vtbl_inits): Always walk down the
1709	hierarchy looking for primary bases for a ctor
1710	vtable. Recursively call oneself, if we meet our primary via
1711	this route and haven't met it yet via inheritance graph order.
1712
17132001-06-11  Mark Mitchell  <mark@codesourcery.com>
1714
1715	* lang-options.h: Emit documentation for -fno-honor-std, not
1716	-fhonor-std.
1717
17182001-06-10  Alexandre Oliva  <aoliva@redhat.com>
1719
1720	* typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
1721	Don't clobber delta.
1722	(expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
1723
17242001-06-10  Mark Mitchell <mark@codesourcery.com>
1725	    Gabriel Dos Reis  <gdr@codesourcery.com>
1726
1727	* Make-lang.in (cp/call.o): Depend on diagnostic.h
1728	(cp/typeck.o): Depend on diagnostic.h
1729	(cp/typeck2.o): Depend on diagnostic.h
1730	(cp/repo.o): Depend on dignostic.h
1731	* typeck.c: #include diagnostic.h
1732	(convert_for_initialization): Remove extern declaration for
1733	warningcount and errorcount.
1734
1735	* call.c: #include diagnostic.h
1736	(convert_like_real): Remove extern declaration for warnincount and
1737	errorcount.
1738
1739	* repo.c: #include diagnostic.h
1740	* typeck2.c: #include diagnostic.h
1741
17422001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1743
1744	* decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
1745	in previous change.
1746
17472001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1748
1749	PR c++/2929
1750	* friend.c (do_friend): Use push_decl_namespace for classes at
1751	namespace scope.
1752
17532001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1754	    Jason Merrill <jason_merrill@redhat.com>
1755
1756	PR c++/3061
1757	* class.c (build_secondary_vtable): Use assert, rather than an error
1758	message.
1759	(dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
1760	(dfs_accumulate_vtbl_inits): A lost primary virtual base may
1761	be between ORIG_BINFO and RTTI_BINFO, but neither of them.
1762	Don't set BINFO_VTABLE for a primary virtual base.
1763
17642001-06-07  Mark Mitchell  <mark@codesourcery.com>
1765
1766	* decl.c (duplicate_decls): Update source position information
1767	when a template function is defined.
1768
17692001-06-07  Phil Edwards  <pme@sources.redhat.com>
1770
1771	* lang-specs.h:  Move -D_GNU_SOURCE to config/linux.h.
1772
17732001-06-07  Nathan Sidwell  <nathan@codesourcery.com>
1774
1775	PR c++/2914
1776	* decl.c (pushtag): Don't push into a complete type's scope.
1777
17782001-06-06  Jason Merrill  <jason_merrill@redhat.com>
1779
1780	* cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
1781	(struct lang_decl_flags): Lose generate_with_vtable_p.
1782	(BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
1783	* class.c (copy_virtuals): Adjust.
1784	* decl2.c (mark_vtable_entries): Adjust.
1785	* method.c (make_thunk, build_vtable_entry): Adjust.
1786	* class.c (update_vtable_entry_for_fn): Only look as far as the
1787	first defining class.
1788	(build_vtbl_initializer): Put nothing in the slot for a function only
1789	defined in a lost primary virtual base.
1790	(add_vcall_offset_vtbl_entries_1): Use the same code for
1791	the lost primary case and the normal case.
1792	(dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
1793	(get_vfield_offset, get_derived_offset): Lose.
1794	(dfs_find_final_overrider): Use look_for_overrides_here.
1795	(get_matching_virtual): New fn.
1796	* semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
1797	not BV_VCALL_INDEX.
1798	* search.c (look_for_overrides_here): Split out from...
1799	(look_for_overrides_r): Here.
1800
1801	* class.c (find_final_overrider): Return error_mark_node on error.
1802
1803	* decl2.c (key_method): #if 0 accidental change.
1804
18052001-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1806
1807	* call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
1808	(build_over_call): Likewise.
1809	* decl.c (grokparms): Likewise.
1810	* pt.c (tsubst_decl): Likewise.
1811	* typeck.c (convert_arguments): Likewise.
1812
18132001-06-05  Mark Mitchell  <mark@codesourcery.com>
1814
1815	* semantics.c (begin_class_definition): Robustify.
1816
1817	* pt.c (instantiate_decl): Tell the repository code about the
1818	clones, not the cloned functions.
1819	* repo.c (repo_template_used): Explicitly instantiate the cloned
1820	function, not the clones.
1821
18222001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1823
1824	* call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
1825	ICS_BAD_FLAG on created conversion.
1826	(compare_ics): Break out rank.
1827
18282001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1829
1830	* decl.c (xref_tag): Remove extraneous %s on dependent name
1831	lookup warning.
1832
18332001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1834
1835	* class.c (layout_vtable_decl): Fix off by one error on
1836	build_index_type.
1837	(build_vtt): Likewise.
1838	(build_ctor_vtbl_group): Likewise.
1839
18402001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1841
1842	* class.c (maybe_indent_hierarchy): New function.
1843	(dump_class_hierarchy_r): Add flags. Dump extra binfo
1844	information, if enabled. Use maybe_indent_hierarchy. Adjust
1845	output format.
1846	(dump_class_hierarchy): Adjust prototype. Adjust output format.
1847	(dump_array, dump_vtable, dump_vtt): New functions.
1848	(finish_struct_1): Adjust hierarchy dumping.
1849	(initialize_vtable): Call dump_vtable.
1850	(build_vtt): Call dump_vtt.
1851	(build_ctor_vtbl_group): Call dump_vtable.
1852	* decl2.c (flag_dump_class_layout): Remove.
1853	(cxx_decode_option): Remove dump translation unit
1854	and dump class hierarchy check. Call dump_switch_p.
1855	(finish_file): Adjust dumping.
1856	(dump.c): Only dump base classes if not TDF_SLIM.
1857	Only dump namespace members if not TDF_SLIM.
1858	* optimize.c (dump_function): New function.
1859	(optimize_function): Call dump_function.
1860	* semantics.c (expand_body): Use dump_enabled_p.
1861
18622001-06-01  Nathan Sidwell  <nathan@codesourcery.com>
1863
1864	PR g++/2936
1865	Part missed from first commit
1866	* decl2.c (finish_anon_union): Copy context.
1867
18682001-05-30  Nathan Sidwell  <nathan@codesourcery.com>
1869
1870	PR g++/2936
1871	* optimize.c (remap_decl): Remap anonymous aggregate members too.
1872
18732001-05-26  Nathan Sidwell  <nathan@codesourcery.com>
1874
1875	PR g++/2823
1876	* semantics.c (expand_body): Don't optimize thunks.
1877
18782001-05-25  Sam TH  <sam@uchicago.edu>
1879
1880	* cp-tree.h lex.h: Fix header include guards.
1881
18822001-05-25  Mark Mitchell <mark@codesourcery.com>
1883
1884	* decl.c (init_decl_processing): Tweak.
1885
18862001-05-24  Mark Mitchell  <mark@codesourcery.com>
1887
1888	* decl.c (duplicate_decls): Tidy.
1889	(init_decl_processing): Always set flag_no_builtin.
1890
18912001-05-24  Nathan Sidwell  <nathan@codesourcery.com>
1892
1893	PR c++/2184
1894	* decl2.c (do_local_using_decl): Push the decls, even in a
1895	template.
1896
18972001-05-22  Mark Mitchell  <mark@codesourcery.com>
1898
1899	* optimize.c (initialize_inlined_parameters): Don't set
1900	TREE_READONLY for a VAR_DECL taking the place of an inlined
1901	PARM_DECL.
1902
19032001-05-22  Jason Merrill  <jason_merrill@redhat.com>
1904
1905	* class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
1906	* tree.c (cp_valid_lang_attribute): Warn about use of com_interface
1907	attribute.
1908
19092001-05-22  Joseph S. Myers  <jsm28@cam.ac.uk>
1910
1911	* parse.y: Refer to compound literals as such, not as
1912	constructor-expressions.
1913
19142001-05-21  Mark Mitchell  <mark@codesourcery.com>
1915
1916	* call.c (build_op_delete_call): Ignore exception-specifications
1917	when looking for matching delete operators.
1918	* init.c (build_new_1): Compute whether or not the allocation
1919	function used is a placement allocation function or not, and
1920	communicate this information to build_op_delete_call.
1921
19222001-05-21  Jason Merrill  <jason_merrill@redhat.com>
1923
1924	* class.c (build_vtable_entry_ref): Lose vtbl parm.  Fix for new abi.
1925	(build_vtbl_ref): Adjust.
1926	(dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
1927	* decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
1928	Re-add vtable-gc.
1929	(unsupported_options): Correspondingly.
1930
1931	* decl2.c (maybe_make_one_only): Check flag_weak, not
1932	supports_one_only().
1933
1934	* cp-tree.def (START_CATCH_STMT): Lose.
1935	* dump.c (cp_dump_tree): Don't dump it.  Do dump HANDLER_PARMS.
1936	* tree.c (cp_statement_code_p): Don't case it.
1937	* semantics.c (cp_expand_stmt): Likewise.
1938	* cp-tree.h (START_CATCH_TYPE): Lose.
1939	(HANDLER_TYPE): New.
1940	* except.c (expand_start_catch_block): Don't start any blocks.
1941	Return the type.
1942	(expand_end_catch_block): Don't end any blocks.
1943	* parse.y (handler): Don't pass anything from finish_handler_parms
1944	to finish_handler.
1945	* pt.c (tsubst_expr): Likewise.
1946	* semantics.c (begin_handler): Call note_level_for_catch here.
1947	(finish_handler_parms): Don't return anything.
1948	(genrtl_catch_block, begin_catch_block): Lose.
1949	(genrtl_handler): Call expand_start_catch here.
1950
19512001-05-18  Jason Merrill  <jason_merrill@redhat.com>
1952
1953	* class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
1954	(get_vtable_decl, build_vtt): Not here.
1955
19562001-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1957
1958	PR c++/2781
1959	* optimize.c (update_cloned_parm): Copy addressability and other
1960	flags.
1961
19622001-05-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1963
1964	* pt.c (determine_specialization): Ignore artificial functions.
1965
19662001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1967
1968	* cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
1969	(C_RID_CODE): Remove.
1970	* lex.c (cxx_init_options): Call set_identifier_size.  Update.
1971	(init_parse): Don't do it here.
1972
19732001-05-18  Diego Novillo  <dnovillo@redhat.com>
1974
1975	* decl2.c (finish_objects): Use the original SYMBOL_REF from the
1976	function declaration to avoid stripping the symbol's attributes.
1977
19782001-05-18  Nathan Sidwell  <nathan@codesourcery.com>
1979
1980	* decl.c (pushdecl): Adjust error string.
1981	(xref_tag): Adjust friend class injection warning. Remove the
1982	inherited name from the class shadowed scope.
1983
19842001-05-17  Mark Mitchell  <mark@codesourcery.com>
1985
1986	* except.c (cp_protect_cleanup_actions): New function.
1987	(init_exception_processing): Don't set protect_cleanup_actions
1988	here.  Do set lang_protect_cleanup_actions.
1989
19902001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
1991
1992	* spew.c (read_token): Call yyerror on all unexpected tokens.
1993
19942001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
1995
1996	* init.c (member_init_ok_or_else): Take a tree rather than
1997	string for name.
1998	(expand_member_init): Adjust.
1999
20002001-05-14  Nick Clifton  <nickc@cambridge.redhat.com>
2001
2002	* decl.c (duplicate_decls): Suppress warning about duplicate
2003	decls if the first decl is a friend.
2004
20052001-05-12  Zack Weinberg  <zackw@stanford.edu>
2006
2007	* except.c (choose_personality_routine): Export.  Add
2008	explanatory comment.  Take an enum languages, not a boolean.
2009	(initialize_handler_parm): Adjust to match.
2010	* cp-tree.h: Prototype choose_personality_routine.
2011	* lex.c (handle_pragma_java_exceptions): New function.
2012	(init_cp_pragma): Register #pragma GCC java_exceptions.
2013
20142001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
2015
2016	* method.c (build_mangled_C99_name): Remove unused prototype.
2017
20182001-05-12  Alexandre Oliva  <aoliva@redhat.com>
2019
2020	* cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
2021	* typeck.c (get_member_function_from_ptrfunc,
2022	build_ptrmemfunc, expand_ptrmemfunc_cst): Take
2023	TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
2024
2025	Reverted Geoff Keating's 2001-05-03's patch.
2026
20272001-05-11  Ira Ruben	<ira@apple.com>
2028
2029	* cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
2030
20312001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2032
2033	* cp-tree.h (finish_label_expr, lookup_label): Delete.
2034	* parse.y: Update for '&&'; don't issue warning here.
2035	* semantics.c (finish_label_expr): Delete.
2036
20372001-05-07  Mark Mitchell  <mark@codesourcery.com>
2038
2039	* splay-tree.h (splay_tree_max): New function.
2040	(splay_tree_min): Likewise.
2041
20422001-05-03  Geoffrey Keating  <geoffk@redhat.com>
2043
2044	* cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
2045	(pfn_vflag_identifier): Define.
2046	Update comment about layout of pointer functions.
2047	(build_ptrmemfunc1): Update prototype.
2048	(expand_ptrmemfunc_cst): Update prototype.
2049	* decl.c (initialize_predefined_identifiers): Initialize
2050	pfn_vflag_identifier.
2051	(build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
2052	an extra field to the type.
2053	* expr.c (cplus_expand_constant): Pass 'flag' between
2054	expand_ptrmemfunc_cst and build_ptrmemfunc1.
2055	* typeck.c (get_member_function_from_ptrfunc): When
2056	FUNCTION_BOUNDARY < 16, look at additional field to determine
2057	if a pointer-to-member is a real pointer or a vtable offset.
2058	(build_ptrmemfunc1): Add new parameter to contain extra field.
2059	(build_ptrmemfunc): Pass the extra field around.
2060	(expand_ptrmemfunc_cst): Add new parameter to return extra field.
2061	(pfn_from_ptrmemfunc): Ignore the extra field.
2062
20632001-05-03  Mark Mitchell  <mark@codesourcery.com>
2064
2065	* cp-tree.h (flag_inline_trees): Update documentation.
2066	* decl.c (init_decl_processing): Adjust handling of
2067	flag_inline_functions and flag_inline_trees to support -O3.
2068	(grokfndecl): Set DECL_INLINE on all functions if that's what
2069	the user requested.
2070	(save_function_data): Clear DECL_INLINE in
2071	current_function_cannot_inline is non-NULL.
2072	* decl2.c (flag_inline_trees): Update documentation.
2073
20742001-05-03  Nathan Sidwell  <nathan@codesourcery.com>
2075
2076	* dump.c (cp_dump_tree, USING_STMT case): New case.
2077	* tree.c (cp_statement_code_p): Add USING_STMT.
2078	* decl2.c (do_using_directive): Add the using directive statement.
2079
2080	* tree.c (walk_tree): Reformat an if block.
2081
20822001-05-02  Mark Mitchell  <mark@codesourcery.com>
2083
2084	* decl.c (compute_array_index_type): Don't try to do anything with
2085	the indices when processing a template.
2086
20872001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2088
2089	* call.c: NULL_PTR -> NULL.
2090	* class.c: Likewise.
2091	* cvt.c: Likewise.
2092	* decl.c: Likewise.
2093	* decl2.c: Likewise.
2094	* except.c: Likewise.
2095	* init.c: Likewise.
2096	* rtti.c: Likewise.
2097	* search.c: Likewise.
2098	* tree.c: Likewise.
2099	* typeck.c: Likewise.
2100	* typeck2.c: Likewise.
2101
21022001-05-02  Mark Mitchell  <mark@codesourcery.com>
2103
2104	* decl2.c (do_using_directive): Revert previous patch.
2105
21062001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2107
2108	* cp-tree.def (USING_STMT): New statement node.
2109	* cp-tree.h (USING_STMT_NAMESPACE): New macro.
2110	* decl2.c (do_using_directive): Add USING_STMT to statement
2111	tree. Don't emit errors when processing template decl.
2112	* pt.c (tsubst_expr, USING_STMT case): New case.
2113	* semantics.c (cp_expand_stmt, USING_STMT case): New case.
2114
21152001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2116
2117	* call.c (build_new_op): Convert args from reference here.
2118	(build_conditional_expr): Don't convert here.
2119
21202001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2121
2122	* spew.c (last_token_id): New static variable.
2123	(read_token): Set it here.
2124	(yyerror): Use it here.
2125
21262001-04-30  Richard Henderson  <rth@redhat.com>
2127
2128	* cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
2129	* decl.c: Likewise.
2130
21312001-04-30  Mark Mitchell  <mark@codesourcery.com>
2132
2133	* gxxint.texi: Remove.
2134	* Make-lang.in: Remove all traces of gxxint.texi.
2135
21362001-04-30  Mark P Mitchell  <mark@codesourcery.com>
2137
2138	* decl2.c (start_static_initialization_or_destruction): Correct
2139	logic to handle the -fno-use-cxa-atexit case.
2140
21412001-04-30  Mark Mitchell  <mark@codesourcery.com>
2142
2143	* optimize.c (update_cloned_parm): New function.
2144	(maybe_clone_body): Use it.  Update the `this' parameter too.
2145
21462001-04-29  Joseph S. Myers  <jsm28@cam.ac.uk>
2147
2148	* decl2.c (unsupported_options): Add new-abi.
2149	* lang-options.h: Remove no longer supported options.
2150
21512001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2152
2153	* except.c (can_convert_eh): Don't check template parms,
2154	typename types etc.
2155
21562001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2157
2158	* optimize.c (maybe_clone_body): Copy parameter names and locations.
2159
21602001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2161
2162	* cp-tree.h (adjust_clone_args): Prototype new function.
2163	* class.c (adjust_clone_args): New function.
2164	* decl.c (start_function): Call it for in charge ctors.
2165
21662001-04-26  Mark Mitchell  <mark@codesourcery.com>
2167
2168	* method.c (use_thunk): Make sure that thunks really are emitted
2169	when requested.
2170
21712001-04-26  Nathan Sidwell <nathan@codesourcery.com>
2172
2173	* mangle.c (write_chars): New macro.
2174	(hwint_to_ascii): New function
2175	(write_number): Use it.
2176	(write_integer_cst): Deal with really big numbers.
2177
21782001-04-25  Mark Mitchell  <mark@codesourcery.com>
2179
2180	* optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
2181	the clone.
2182
21832001-04-25  Nathan Sidwell  <nathan@codesourcery.com>
2184
2185	* decl.c (grokdeclarator): Set context of namespace scope
2186	TYPE_DECLS.
2187
21882001-04-24  Zack Weinberg  <zackw@stanford.edu>
2189
2190	* cp/optimize.c: Include hashtab.h.
2191	(struct inline_data): Add tree_pruner.
2192	(expand_call_inline, expand_calls_inline): Use it when calling
2193	walk_tree.
2194	(optimize_function): Initialize and free tree_pruner.
2195
21962001-04-24  Nathan Sidwell <nathan@codesourcery.com>
2197
2198	Lazy __FUNCTION__ generation.
2199	* cp-tree.def (FUNCTION_NAME): Remove.
2200	* cp-tree.h (function_name_declared_p): Remove.
2201	(cp_fname_init): Prototype.
2202	* decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
2203	don't call declare_function_name. Call start_fname_decls.
2204	(cp_make_fname_decl): Adjust parameters. Generate the name. Don't
2205	clobber the line number.
2206	(cp_fname_init): New function.
2207	(start_function): Call start_fname_decls.
2208	(finish_function): Call finish_fname_decls.
2209	* lex.c (reswords): Add slots for __FUNCTION__ et al.
2210	(rid_to_yy): Add mappings for __FUNCTION__ et al.
2211	* optimize.c (maybe_clone_body): Remove function_name_declared_p.
2212	* parse.y (VAR_FUNC_NAME): New token.
2213	(primary): Add VAR_FUNC_NAME.
2214	* pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
2215	generation.
2216	(tsubst, FUNCTION_NAME case): Remove.
2217	(tsubst_copy, FUNCTION_NAME case): Remove.
2218	(tsubst_expr, DECL_STMT case): Be careful with a
2219	DECL_PRETTY_FUNCTION_P.
2220	(instantiate_decl): Remove function_name_declared_p.
2221	* semantics.c (begin_compound_statement): Don't call
2222	declare_function_name here.
2223	(setup_vtbl_ptr). Don't save & restore function_name_declared_p.
2224	(finish_translation_unit): Call finish_fname_decls.
2225	(expand_body): Remove function_name_declared_p.
2226	* typeck2.c (digest_init): Allow any ERROR_MARK.
2227
22282001-04-24  Nathan Sidwell  <nathan@codesourcery.com>
2229
2230	* pt.c (tsubst_decl): Use VOID_TYPE_P.
2231	* semantics.c: Fix some typos.
2232
22332001-04-23  Phil Edwards  <pme@sources.redhat.com>
2234
2235	* cp/decl2.c (flag_honor_std):  Always initialize to 1.
2236
22372001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2238
2239	* xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
2240
22412001-04-23  Jason Merrill  <jason_merrill@redhat.com>
2242
2243	* except.c (build_throw): Wrap the initialization of the exception
2244	object in a MUST_NOT_THROW_EXPR.
2245	(do_free_exception): #if 0.
2246
22472001-04-20  Mark Mitchell  <mark@codesourcery.com>
2248
2249	* cp-tree.h (finish_enum): Change prototype.
2250	* decl.c (finish_enum): Reorganize.
2251	* parse.y (structsp): Adjust calls to finish_enum.
2252
22532001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
2254
2255	* tree.c (cp_tree_equal): Adjust final switch formatting. Add
2256	't' case.
2257
22582001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
2259
2260	* class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
2261	(layout_empty_base): Return at end flag.
2262	(build_base_field): Likewise.
2263	(build_base_fields): Likewise.
2264	(layout_virtual_bases): Don't add 1 to eoc value.
2265	(end_of_class): Use full size for empty bases.
2266	(layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
2267	empty bases. Don't add 1 to eoc value. Only add trailing padding
2268	if we're an empty class with no empty bases.
2269	(dump_class_hierarchy): Dump size and alignment.
2270
22712001-04-20  Jakub Jelinek  <jakub@redhat.com>
2272
2273	* call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
2274	ICS_BAD_FLAG.
2275
22762001-04-20  Jakub Jelinek  <jakub@redhat.com>
2277
2278	* search.c (lookup_field_r): If looking for type and non-TYPE_DECL
2279	is found, look first if name does not match the structure name.
2280
22812001-04-19  Mark Mitchell  <mark@codesourcery.com>
2282
2283	* cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
2284	set.
2285	(SET_DECL_LANGUAGE): New macro.
2286	* decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
2287	(pushdecl): Likewise.
2288	(build_library_fn_1): Likewise.
2289	(build_cp_library_fn): Likewise.
2290	(grokfndecl): Likewise.
2291	(grokvardecl): Mark `extern "C"' variables as having C linkage.
2292	* decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
2293	* lex.c (retrofit_lang_decl): Likewise.
2294	* mangle.c (mangle_decl_string): Don't mangle the names of
2295	variables declared with C language linkage.
2296	* semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
2297
22982001-04-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2299
2300	* semantics.c (simplify_aggr_init_exprs_r): Don't restore
2301	flag_access_control from uninitialized storage.
2302
23032001-04-15  Mark Mitchell  <mark@codesourcery.com>
2304
2305	* cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
2306	* mangle.c (write_pointer_to_member_type): Fix mangling of
2307	pointers to cv-qualified member function types.
2308
2309	* init.c (build_delete): Create a SAVE_EXPR for the address if
2310	we're going to use it more than once.
2311
23122001-04-13  Mark Mitchell  <mark@codesourcery.com>
2313
2314	* cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
2315	(expand_ptremfunc_cst): Change prototype.
2316	(delta2_from_ptrmemfunc): Remove.
2317	* expr.c (cplus_expand_constant): Adjust call to
2318	expand_ptrmemfunc_cst.
2319	* typeck.c (build_ptrmemfunc1): Simplify.
2320	(build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
2321	results in a constant.
2322	(expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
2323	(delta2_from_ptrmemfunc): Remove.
2324	(pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
2325
23262001-04-12  Jason Merrill  <jason_merrill@redhat.com>
2327
2328	* cp-tree.h (decl_namespace_list): New macro.
2329	(struct saved_scope): Add decl_ns_list.
2330	* decl.c (mark_saved_scope): Mark it.
2331	* decl2.c: Lose static decl_namespace_list.
2332	(init_decl2): Don't save it.
2333
23342001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2335
2336	* cp-tree.h (warn_return_type, yylex): Delete redundant
2337	declarations.
2338
2339	* decl.c (current_class_depth, global_namespace): Likewise.
2340
2341	* decl2.c (current_class_depth, flag_gnu_xref): Likewise
2342
2343	* repo.c (flag_use_repository): Likewise.
2344
23452001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2346
2347	* cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
2348	set_block, pushdecl, getdecls, gettags, init_decl_processing,
2349	maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
2350	lvalue_or_else, print_lang_statistics, comp_target_types,
2351	unsigned_type, signed_type, signed_or_unsigned_type,
2352	build_function_call, mark_addressable, incomplete_type_error):
2353	Delete redundant declarations.
2354
23552001-04-11  Jason Merrill  <jason_merrill@redhat.com>
2356
2357	* cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
2358	(TYPE_ANONYMOUS_P): New macro.
2359	(TAGGED_TYPE_P): New macro.
2360	* decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
2361	(grokfndecl, grokvardecl, grokdeclarator): Likewise.
2362	* tree.c (no_linkage_helper): Likewise.
2363	* semantics.c (begin_class_definition): Likewise.
2364	* pt.c (convert_template_argument): Likewise.
2365	* lex.c (check_for_missing_semicolon): Likewise.
2366
23672001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
2368
2369	* class.c (dfs_unshared_virtual_bases): New function.
2370	(mark_primary_bases): Call it.
2371	(check_bases): Ignore virtual bases when determining
2372	nearly-emptiness.
2373
23742001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
2375
2376	* method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
2377
23782001-04-11  Mark Mitchell  <mark@codesourcery.com>
2379
2380	* optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
2381	cloned function to the clone.
2382
23832001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2384
2385	* Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
2386
2387	* semantics.c: Include expr.h.
2388
23892001-04-11  Nathan Sidwell  <nathan@codesourcery.com>
2390
2391	* method.c (implicitly_declare_fn): Commonize code for copy ctor
2392	and assignment op. Set TREE_USED for parameter.
2393
23942001-04-10  Mark Mitchell  <mark@codesourcery.com>
2395
2396	* class.c (find_final_overrider_data): Add `candidates'.
2397	(dfs_find_final_overrider): Don't issue error messages
2398	prematurely.
2399	(find_final_overrider): Issue error messages here.
2400	(build_base_field): Don't warn about amgibuous direct bases here.
2401	(warn_about_ambiguous_direct_bases): New function.
2402	(layout_class_type): Use it.
2403
24042001-04-10  Richard Henderson  <rth@redhat.com>
2405
2406	* typeck.c (build_array_ref): Push the array reference inside
2407	COMPOUND_EXPR and COND_EXPR.
2408
24092001-04-05  Mark Mitchell  <mark@codesourcery.com>
2410
2411	* cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
2412	* decl.c (duplicate_decls): Adjust accordingly.
2413	(maybe_commonize_var): Likewise.
2414	(grokfndecl): Likewise.
2415	(start_function): Likewise.
2416	(start_method): Likewise.
2417	* decl2.c (key_method): Likewise.
2418	(import_export_decl): Likewise.
2419	* method.c (implicitly_declare_fn): Likewise.
2420	* optimize.c (maybe_clone_body): Likewise.
2421
24222001-04-05  Benjamin Kosnik  <bkoz@redhat.com>
2423
2424	* lang-specs.h: Add __DEPRECATED.
2425
24262001-04-05  J"orn Rennecke <amylaar@redhat.com>
2427
2428	* search.c (get_dynamic_cast_base_type): When building a new
2429	constant, set its type to ssizetype.
2430
24312001-04-04  Jakub Jelinek  <jakub@redhat.com>
2432
2433	* optimize.c (expand_call_inline): Only add newly inlined statements
2434	into inlined_stmts.
2435
24362001-04-03  Mark Mitchell  <mark@codesourcery.com>
2437
2438	* cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
2439	(OPERATOR_FORMAT): Likewise.
2440	(OPERATOR_TYPENAME_FORMAT): Likewise.
2441	* operators.def: Remove old name-mangling information.
2442	* decl.c (grok_op_properties): Adjust accordingly.
2443	* lex.c (init_operators): Likewise.
2444	* rtti.c (get_tinfo_decl): Issue error messages about types that
2445	have variable size.
2446
24472001-04-03  Mark Mitchell  <mark@codesourcery.com>
2448
2449	* decl2.c (import_export_decl): Don't call import_export_class
2450	when processing an inline member function.
2451	* semantics.c (expand_body): Call import_export_decl before
2452	emitting inline functions.
2453
24542001-03-28  Richard Henderson  <rth@redhat.com>
2455
2456	IA-64 ABI Exception Handling:
2457	* cp-tree.def (EH_SPEC_BLOCK): New.
2458	(MUST_NOT_THROW_EXPR): New.
2459	* cp-tree.h: Update changed function declarations.
2460	(CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
2461	(CPTI_CALL_UNEXPECTED): New.
2462	(struct cp_language_function): Rename x_eh_spec_try_block
2463	to x_eh_spec_block.
2464	(EH_SPEC_STMTS, EH_SPEC_RAISES): New.
2465	* decl.c (current_binding_level): If no current function
2466	bindings, revert to scope_chain.
2467	(initialize_predefined_identifiers): Remove __cp_push_exception.
2468	(store_parm_decls): Use begin_eh_spec_block.
2469	(finish_function): Use finish_eh_spec_block.
2470	(mark_lang_function): Update for name changes.
2471	* decl2.c (finish_file): No mark_all_runtime_matches.
2472	* dump.c (cp_dump_tree): Handle new tree codes.
2473	* error.c (dump_expr) [BIND_EXPR]: Fix typo.
2474	* except.c (catch_language_init, catch_language): Remove.
2475	(init_exception_processing): Don't set language code.
2476	Initialize call_unexpected_node, protect_cleanup_actions,
2477	eh_personality_libfunc, lang_eh_runtime_type.
2478	(call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
2479	(get_eh_type, get_eh_caught, get_eh_handlers): Remove.
2480	(prepare_eh_type): Split out type canonicalizations ...
2481	(build_eh_type_type): ... from here.
2482	(build_eh_type_type_ref): Remove.
2483	(mark_all_runtime_matches): Remove.
2484	(build_exc_ptr): New.
2485	(do_begin_catch, do_end_catch): New.
2486	(do_pop_exception): Remove.
2487	(build_terminate_handler): Remove.
2488	(choose_personality_routine): Split out language choice from ...
2489	(initialize_handler_parm): ... here.
2490	Use MUST_NOT_THROW_EXPR.
2491	(expand_start_catch_block): Use do_begin_catch.  Simplify Java
2492	exception object handling.
2493	(expand_start_eh_spec, expand_end_eh_spec): Remove.
2494	(expand_exception_blocks, alloc_eh_object): Remove.
2495	(begin_eh_spec_block, finish_eh_spec_block): New.
2496	(do_allocate_exception, do_free_exception): New.
2497	(expand_throw): Merge into ...
2498	(build_throw): ... here.  Update for abi.
2499	* expr.c (cplus_expand_expr): No expand_internal_throw.
2500	Handle MUST_NOT_THROW_EXPR.
2501	* pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
2502	* semantics.c (*) Update for except.h name changes.
2503	(genrtl_try_block): No protect_with_terminate.
2504	(genrtl_eh_spec_block): New.
2505	(genrtl_handler): Don't emit the goto here.
2506	(cp_expand_stmt): Handle EH_SPEC_BLOCK.
2507	(genrtl_finish_function): Don't expand_exception_blocks.
2508	* tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
2509
25102001-03-28  Richard Henderson  <rth@redhat.com>
2511
2512	* decl.c (struct named_label_list): Rename eh_region to
2513	in_try_scope, add in_catch_scope.
2514	(struct binding_level): Rename eh_region to is_try_scope,
2515	add is_catch_scope.
2516	(note_level_for_try): Rename from note_level_for_eh.
2517	(note_level_for_catch): New.
2518	(poplevel): Copy both is_try_scope and is_catch_scope to
2519	the named_label_list struct.
2520	(check_previous_goto_1): Don't check for catch block via
2521	DECL_ARTIFICIAL; use in_try_scope instead.
2522	(check_goto): Likewise.
2523	* cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
2524	* except.c (expand_start_catch_block): Call note_level_for_catch.
2525	* semantics.c (begin_compound_stmt): Update for note_level_for_try.
2526
25272001-03-27  Richard Henderson  <rth@redhat.com>
2528
2529	* except.c: Use USING_SJLJ_EXCEPTIONS instead of
2530	exceptions_via_longjmp.
2531
25322001-03-27  Phil Edwards  <pme@sources.redhat.com>
2533
2534	* pt.c (check_default_tmpl_args):  Make error messages clearer.
2535
25362001-03-26  Phil Edwards  <pme@sources.redhat.com>
2537
2538	* error.c:  Also undefine 'A' macro used for cp_printers definition.
2539
25402001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2541
2542	* Make-lang.in: Depend on $(SYSTEM_H), not system.h.
2543
25442001-03-26  Mike Yang <yang@research.att.com>
2545	    Mark Mitchell  <mark@codesourcery.com>
2546
2547	* dump.c (dump_access): New function.
2548	(cp_dump_tree): Use it.  Dump basetype information for class
2549	types.
2550
25512001-03-26  Mark Mitchell  <mark@codesourcery.com>
2552
2553	* Makefile.in (optimize.o): Depend on params.h.
2554	(duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
2555	(init_decl_processing): Set flag_no_inline when doing
2556	inlining-on-trees.
2557	* optimize.c: Include params.h.
2558	(struct inline_data): Improve documentation of FNS.  Add
2559	FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
2560	(INSNS_PER_STMT): New macro.
2561	(remap_block): Use CLONING_P.
2562	(inlinable_function_p): Don't inline big functions.
2563	(expand_call_inline): Keep track of how much inlining we've done.
2564	(optimize_function): Set FIRST_INLINED_FN.
2565	(maybe_clone_body): Set CLONING_P.
2566	* semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
2567	tree nodes.
2568	(genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
2569	rest_of_compilation.  Clear DECL_RTL for local variables
2570	afterwards.
2571	(clear_decl_rtl): New function.
2572
25732001-03-26  Nathan Sidwell  <nathan@codesourcery.com>
2574
2575	Implement DR 209
2576	* cp-tree.h (skip_type_access_control,
2577	reset_type_access_control): Prototype.
2578	* decl.c (grokdeclarator): Access of friends is not checked.
2579	* parse.y (component_decl_list): Reset type access control.
2580	* semantics.c (decl_type_access_control): Clear
2581	current_type_lookups.
2582	(save_type_access_control): Don't save if not deferring.
2583	(skip_type_access_control, reset_type_access_control): New
2584	functions.
2585	(begin_class_definition): Do type access control for basetypes.
2586	Start deferred access control.
2587	(finish_class_definition): Resume immediate access control if
2588	this is a local class.
2589
25902001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2591
2592	* class.c (add_method): Use memcpy/memmove, not bcopy.
2593
2594	* decl.c (duplicate_decls): Likewise.
2595
25962001-03-23  Jakub Jelinek  <jakub@redhat.com>
2597
2598	* mangle.c (write_discriminator): Use `_0' for discriminator 1,
2599	not `_'.
2600
26012001-03-23  Jakub Jelinek  <jakub@redhat.com>
2602
2603	* decl.c (local_names): Define.
2604	(push_local_name): New.
2605	(grok_reference_init): Return init if initializing static reference
2606	variable with non-constant instead of emitting it.
2607	Move expand_static_init call to cp_finish_decl.
2608	(layout_var_decl): Call push_local_name.
2609	(maybe_commonize_var): Allow inlining functions even if they have
2610	static local variables, use comdat_linkage for them if flag_weak.
2611	(check_initializer): Call obscure_complex_init if
2612	grok_reference_init returned nonzero.
2613	(save_function_data): Clear x_local_names.
2614	(pop_cp_function_context): Free x_local_names.
2615	(mark_inlined_fns): Remove.
2616	(mark_lang_function): Mark x_local_names.
2617	(lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
2618	Mark inlined_fns as tree, remove call to mark_inlined_fns.
2619	* class.c (alter_access): Ensure DECL_ACCESS is never set if
2620	DECL_DISCRIMINATOR_P.
2621	* cp-tree.h (cp_language_function): Add x_local_names.
2622	(lang_decl_flags): Add discriminator into u2.
2623	(lang_decl_inlined_fns): Remove.
2624	(lang_decl): inlined_fns is now a TREE_VEC.
2625	(DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
2626	* optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
2627	TREE_VEC, not a custom structure.
2628	(optimize_function): Likewise.
2629	* mangle.c (discriminator_for_local_entity): Discriminate among
2630	VAR_DECL local entities.
2631	* search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
2632	is not valid.
2633
26342001-03-22  Bryce McKinlay  <bryce@albatross.co.nz>
2635
2636	Add support for Java interface method calls.
2637	* cp-tree.h (struct lang_type): Add java_interface flag.
2638	(TYPE_JAVA_INTERFACE): New macro.
2639	* tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
2640	by setting TYPE_JAVA_INTERFACE.
2641	* call.c (java_iface_lookup_fn): New static.
2642	(build_over_call): If calling a method declared in a
2643	TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
2644	expression which resolves the function address.
2645	(build_java_interface_fn_ref): New function.
2646
26472001-03-22  Richard Henderson  <rth@redhat.com>
2648
2649	* Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
2650	* except.c: Don't include it.
2651
26522001-03-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2653	    based on an idea from Joe Buck <jbuck@synopsys.com>
2654
2655	* parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
2656	New nonterminals.
2657	(data_def, component_decl): Add reductions to bad_decl.
2658
26592001-03-22  Jakub Jelinek  <jakub@redhat.com>
2660
2661	* method.c (do_build_assign_ref): Don't use build_modify_expr for
2662	anonymous aggregates, since they don't have assignment operator
2663	method.
2664	* decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
2665	assignment operators for anonymous structure fields.
2666
26672001-03-21  Jason Merrill  <jason@redhat.com>
2668
2669	* pt.c (instantiate_decl): Abort if we see a member constant
2670	instantiation that doesn't already have its initializer.
2671	Downgrade explicit instantiation without definition to pedwarn.
2672
2673	* cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
2674	* class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
2675	(import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
2676
2677	* cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
2678	(pending_vtables): Remove.
2679	* decl2.c (pending_vtables): Remove.
2680	(import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
2681	CLASSTYPE_VTABLE_NEEDS_WRITING.
2682	(import_export_class): Likewise.
2683	(init_decl2): Don't mark pending_vtables.
2684	* lex.c (handle_pragma_vtable): Just sorry.
2685	* pt.c (instantiate_class_template): Don't mess with
2686	CLASSTYPE_VTABLE_NEEDS_WRITING.
2687	(mark_class_instantiated): Likewise.
2688	* ptree.c (print_lang_type): Don't print it.
2689	* semantics.c (begin_class_definition): Don't set it.
2690
2691	* pt.c (template_tail): Replace with last_pending_template.
2692	(maybe_templates, maybe_template_tail): Remove.
2693	(add_pending_template): Adjust.
2694	(instantiate_pending_templates): Adjust.
2695
2696	* cp-tree.h (struct saved_scope): Remove lang_stack field.
2697	(current_lang_stack): Remove.
2698	* decl.c (maybe_push_to_top_level): Don't initialize it.
2699	(duplicate_decls): Use current_lang_depth.
2700	(xref_basetypes): Likewise.
2701	* class.c (current_lang_depth): New fn.
2702	(push_lang_context): Use more varray functionality.
2703	(pop_lang_context): Likewise.
2704
2705	* error.c (GLOBAL_THING): Always use '__'.
2706
27072001-03-21  Mark Mitchell  <mark@codesourcery.com>
2708
2709	* class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
2710
2711	* mangle.c (mangle_decl_string): Mangle the names of overloaded
2712	operators, even when they have `extern "C"' linkage.
2713
27142001-03-19  Mark Mitchell  <mark@codesourcery.com>
2715
2716	* class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
2717	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2718	where it's not necessary.
2719	(add_method): Remove optimization involving comparison of
2720	DECL_ASSEMBLER_NAME.
2721	(build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
2722	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2723	where it's not necessary.
2724	(check_methods): Likewise.
2725	(build_clone): Likewise.
2726	(built_vtt): Likewise.
2727	* cp-tree.h (DECL_NEEDED_P): Likewise.
2728	* decl.c (pushtag): Likewise.
2729	(duplicate_decls): Likewise.
2730	(pushdecl): Likewise.
2731	(builtin_function): Likewise.
2732	(build_library_fn_1): Set DECL_LANGUAGE for library functions.
2733	(build_cp_library_fn): Likewise.
2734	(maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
2735	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2736	where it's not necessary.
2737	(make_rtl_for_nonlocal_decl): Likewise.
2738	(cp_finish_decl): Likewise.
2739	(grokfndecl): Likewise.
2740	(grokvardecl): Likewise.
2741	(grokdeclarator): Likewise.
2742	(start_function): Likewise.
2743	(cp_missing_return_ok_p): Likewise.
2744	* decl2.c (grokclassfn): Likewise.
2745	(check_classfn): Likewise.
2746	(finish_static_data_member_decl): Likewise.
2747	(grokfield): Likewise.
2748	* error.c (GLOBAL_IORD_P): Remove.
2749	(dump_global_iord): Improve output.
2750	(dump_decl): Avoid using DECL_ASSEMBLER_NAME.
2751	* except.c (nothrow_libfn_p): Summarily reject any function not in
2752	namespace-scope.
2753	* init.c (build_java_class_ref): Don't explicitly set
2754	DECL_ASSEMBLER_NAME after calling mangle_decl.
2755	* mangle.c (mangle_decl_string): Handle extern "C" functions.
2756	(mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
2757	* method.c (set_mangled_name_for_decl): Don't explicitly set
2758	DECL_ASSEMBLER_NAME after calling mangle_decl.
2759	(make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
2760	IDENTIFIER_GLOBAL_VALUE for the thunk.
2761	* pt.c (set_mangled_name_for_template_decl): Remove.
2762	(check_explicit_specialization): Don't use it.
2763	(looup_template_class): Don't set DECL_ASSEMBLER_NAME.
2764	(tsubst_friend_function): Likewise.
2765	(tsubst_decl): Likewise.
2766	(regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
2767	* rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
2768	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2769	where it's not necessary.
2770	(tinfo_base_init): Likewise.
2771	(create_real_tinfo_var): Likewise.
2772	* search.c (looup_field_1): Likewise.
2773	* semantics.c (finish_named_return_value): Likewise.
2774	* tree.c (init_tree): Set lang_set_decl_assembler_name.
2775
27762001-03-15  Gabriel Dos Reis  <gdr@codesourcery.com>
2777
2778	Correct semantics restrictions checking in throw-expression.
2779	* except.c (is_admissible_throw_operand): New function.
2780	(build_throw): Use it.
2781
27822001-03-14  Mark Mitchell  <mark@codesourcery.com>
2783
2784	* decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
2785	and its ilk.
2786
27872001-03-14  Mark Mitchell  <mark@codesourcery.com>
2788
2789	* class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
2790	* cp-tree.h (DECL_IN_MEMORY_P): Likewise.
2791	* decl.c (duplicate_decls): Likewise.
2792	(builtin_function): Likewise.
2793	(build_library_fn): Likewise.
2794	(build_cp_library_fn): Likewise.
2795	(check_initializer): Likewise.
2796	(cp_finish_decl): Likewise.
2797	* decl2.c (grokfield): Likewise.
2798	(grok_function_init): Remove #if 0'd code.
2799	(finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
2800	* friend.c (do_friend): Likewise.
2801	* init.c (get_temp_regvar): Likewise.
2802	* method.c (make_thunk): Likewise.
2803	* pt.c (tsubst_friend_function): Likewise.
2804	(tsubst_decl): Likewise.
2805	(regenerate_decl_from_template): Likewise.
2806	* semantics.c (genrtl_named_return_value): Likewise.
2807	(expand_body): Likewise.
2808	(genrtl_finish_function): Likewise.
2809	* tree.c (cp_tree_equal): Likewise.
2810
28112001-03-12  Nathan Sidwell  <nathan@codesourcery.com>
2812
2813	* call.c (convert_like_real): Add extra semantics to INNER
2814	parameter. Don't convert to temporary if a user conversion
2815	gives us an lvalue that we're about to bind to a reference.
2816	Set INNER to indicate pending reference binding on recursive
2817	calls.
2818
28192001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
2820
2821	* cp/lex.c: Delete duplicate pending_lang_change.
2822
28232001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
2824
2825	* cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
2826	Similarly.
2827	* cp/repo.c (get_base_filename, open_repo_file): Similarly.
2828	* cp/cp-tree.h: Remove file_name_nondirectory prototype.
2829
28302001-03-09  Zack Weinberg  <zackw@stanford.edu>
2831
2832	* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
2833
28342001-03-08  Stan Shebs  <shebs@apple.com>
2835
2836	* cp-tree.h (set_identifier_local_value): Remove unused decl.
2837
28382001-03-06  Zack Weinberg  <zackw@stanford.edu>
2839
2840	* spew.c: Remove references to CPP_OSTRING.
2841
28422001-03-06  Andrew Haley  <aph@redhat.com>
2843
2844	* typeck.c (convert_arguments): Check that we have an fndecl.
2845
28462001-03-05  Andrew Haley  <aph@redhat.com>
2847
2848	* typeck.c (convert_arguments): Don't do ellipsis conversion for
2849	__built_in_constant_p.
2850
28512001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
2852
2853	* typeck.c (build_static_cast): Allow enum to enum conversions
2854	as per DR 128.
2855
28562001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
2857
2858	* class.c (check_field_decls): Pointers to member do not a
2859	non-pod struct make, as per DR 148.
2860
28612001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
2862
2863	* call.c (joust): cp_pedwarn when using gnu extension concerning
2864	worst conversion sequences.
2865
28662001-03-01  Zack Weinberg  <zackw@stanford.edu>
2867
2868	* decl.c: Replace all uses of 'boolean' with 'bool'.
2869
28702001-03-01  Zack Weinberg  <zackw@stanford.edu>
2871
2872	* lang-specs.h: Add zero initializer for cpp_spec field to
2873	all array elements that need one.  Don't put an #ifdef inside
2874	the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
2875	use it.
2876
28772001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
2878
2879	Implement using decls inside template functions.
2880	* decl2.c (validate_nonmember_using_decl): Don't special case
2881	fake_std_node in the global namespace. Don't reject early when
2882	processing a template.
2883	(do_local_using_decl): Add to statement tree. Don't do further
2884	processing when building a template.
2885	* pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
2886
28872001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
2888
2889	* decl2.c (do_nonmember_using_decl): Don't complain if we find
2890	same function. Do complain about ambiguating extern "C"
2891	declarations.
2892
28932001-02-28  Nathan Sidwell  <nathan@codesourcery.com>
2894
2895	Remove floating point and complex type template constant parms.
2896	* pt.c (convert_nontype_argument): Remove REAL_TYPE and
2897	COMPLEX_TYPE extensions.
2898	(invalid_nontype_parm_type_p): Likewise.
2899
29002001-02-27  Jeffrey Oldham  <oldham@codesourcery.com>
2901
2902	* except.c (call_eh_info): Revert "match_function"'s type.
2903
29042001-02-27  Nathan Sidwell  <nathan@codesourcery.com>
2905
2906	Fix ctor vtable vcall offsets.
2907	* class.c (struct vtbl_init_data_s): Add rtti_binfo member.
2908	(build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
2909	(get_matching_base): Remove.
2910	(get_original_base): New function.
2911	(build_vtbl_initializer): Initialize vid.rtti_binfo.
2912	Use a virtual thunk for a ctor vtable with an index
2913	(add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
2914	primary base within a constructor vtable. Only set
2915	BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
2916	when primary base has been lost.
2917	* cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
2918
29192001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
2920
2921	* call.c (joust): Ensure more_specialized()'s argument length
2922	parameter has correct value for constructors.
2923
29242001-02-26  Nathan Sidwell  <nathan@codesourcery.com>
2925
2926	* except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
2927
2928	* decl.c (mark_inlined_fns): Prototype.
2929
29302001-02-22  Mark Mitchell  <mark@codesourcery.com>
2931
2932	* spew.c (yylex): Correct handling of friends.
2933
29342001-02-22  Mark Mitchell  <mark@codesourcery.com>
2935
2936	* mangle.c (write_encoding): Pass write_function_type the
2937	FUNCTION_DECL for the function being encoded.
2938	(write_function_type): Pass it along to write_bare_function_type.
2939	(write_bare_function_type): Pass it along to write_method_parms.
2940	(write_method_parms): Don't mangle the compiler-generated
2941	parameters to a constructor or destructor.
2942
29432001-02-22  Andreas Jaeger  <aj@suse.de>
2944
2945	* optimize.c: Include toplev.h for
2946	note_deferral_of_defined_inline_function prototype.
2947
29482001-02-22  Jakub Jelinek  <jakub@redhat.com>
2949
2950	* cp-tree.h (struct lang_decl_inlined_fns): New.
2951	(struct lang_decls): Add inlined_fns.
2952	(DECL_INLINED_FNS): New macro.
2953	* optimize.c (struct inline_data): Add inlined_fns.
2954	(declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
2955	(inlinable_function_p): Likewise, fix typo in comment,
2956	function is not inlinable if it already inlined function currently
2957	being optimized.
2958	(expand_call_inline): Add fn to inlined_fns if necessary.
2959	(optimize_function): Initialize inlined_fns.
2960	Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
2961	* decl.c (mark_inlined_fns): New function.
2962	(lang_mark_tree): Call it.
2963
29642001-02-21  Jason Merrill  <jason@redhat.com>
2965
2966	* cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
2967	(DECL_UNINLINABLE): Move to middle-end.
2968
2969	* class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
2970	* decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
2971	* class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
2972	* optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
2973	parms and outer BLOCK.  note_deferral_of_defined_inline_function.
2974
2975	* method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
2976	second parm of op=.
2977
29782001-02-19  Mark Mitchell  <mark@codesourcery.com>
2979
2980	* decl2.c (set_decl_namespace): Allow explicit instantiations in
2981	any namespace.
2982
29832001-02-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2984
2985	* optimize.c (expand_call_inline): Don't walk subtrees of type
2986	nodes.
2987
29882001-02-18  Mark Mitchell  <mark@codesourcery.com>
2989
2990	* class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
2991	for a destructor.
2992
29932001-02-18  Jason Merrill  <jason@redhat.com>
2994
2995	Do put the VTT parameter in DECL_ARGUMENTS.
2996	* cp-tree.h (struct cp_language_function): Add x_vtt_parm.
2997	(current_vtt_parm): New macro.
2998	(struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
2999	(DECL_HAS_VTT_PARM_P): New macro.
3000	(DECL_VTT_PARM): Remove.
3001	(FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
3002	* decl.c (duplicate_decls): Only copy the operator code if
3003	appropriate.
3004	(start_function): Set current_vtt_parm.
3005	(lang_mark_tree): Don't mark vtt_parm.
3006	* decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
3007	DECL_ARGUMENTS.  Set DECL_HAS_VTT_PARM_P.
3008	* class.c (build_clone): Maybe remove the VTT parm.
3009	* optimize.c (maybe_clone_body): Set up the VTT parm.
3010	* pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
3011	* call.c (build_over_call): Just allow the VTT arg.
3012	* method.c (make_thunk): Don't set DECL_VTT_PARM.
3013	(do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
3014	(synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
3015	* decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
3016	* error.c (dump_function_decl): Likewise.
3017	* call.c (build_user_type_conversion_1,	convert_like_real): Abort
3018	if we try to call a constructor with in-charge or VTT parms.
3019	* method.c (skip_artificial_parms_for): New fn.
3020	* call.c (add_function_candidate, build_over_call): Call it.
3021	* call.c (build_new_method_call): Use current_vtt_parm.
3022	* init.c (expand_virtual_init): Likewise.
3023	* class.c (same_signature_p): No longer static.
3024	* cp-tree.h: Declare it.
3025	* search.c (look_for_overrides_r): Use it.
3026
30272001-02-17  Mark Mitchell  <mark@codesourcery.com>
3028
3029	* cp-tree.h (new_abi_rtti_p): Remove.
3030	(name_mangling_version): Likewise.
3031	(flag_do_squangling): Likewise.
3032	* class.c (build_rtti_vtbl_entries): Remove old ABI support.
3033	* decl.c (grokfndecl): Likewise.
3034	* decl2.c (name_mangling_version): Remove.
3035	(flag_do_squangling): Likewise.
3036	(lang_f_options): Remove `squangle'.
3037	(unsupported_options): Add `squangle'.
3038	(cxx_decode_option): Issue a warning about uses of
3039	-fname-mangling-version.
3040	(finish_file): Remove old ABI support.
3041	* pt.c (check_explicit_specialization): Likewise.
3042	(tsubst_decl): Likewise.
3043	* rtti.c (init_rtti_processing): Likewise.
3044	(build_headof): Likewise.
3045	(get_tinfo_decl_dynamic): Likewise.
3046	(tinfo_from_decl): Likewise.
3047	(build_dynamic_cast_1): Likewise.
3048	(synthesize_tinfo_var): Likewise.
3049	* init.c (build_new): Allow enumeration types for the array-bounds
3050	in a direct-new-declarator.
3051
3052	* semantics.c (finish_typeof): Resolve OFFSET_REFs.
3053
3054	* pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
3055	TREE_PROTECTED from the template being specialized.
3056
30572001-02-17  Jason Merrill  <jason@redhat.com>
3058
3059	* decl2.c (build_artificial_parm): Set TREE_READONLY.
3060
3061	* decl.c (bad_specifiers): Allow throw specs on things with
3062	pointer-to-function or -member-function type.
3063	* init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
3064	a pmf.
3065
30662001-02-17  Mark Mitchell  <mark@codesourcery.com>
3067
3068	* call.c (check_dtor_name): Handle template names correctly.
3069
30702001-02-16  Jason Merrill  <jason@redhat.com>
3071
3072	* cp-tree.h (DECL_USE_VTT_PARM): Remove.
3073	* decl2.c (maybe_retrofit_in_chrg): Don't create it.
3074	* optimize.c (maybe_clone_body): Don't substitute it.
3075	* call.c (build_new_method_call): Check in_chrg instead.
3076	* init.c (expand_virtual_init): Likewise.
3077
30782001-02-16  Gabriel Dos Reis  <gdr@codesourcery.com>
3079
3080	* decl.c (check_tag_decl): Make sure a typedef for an anonymous
3081	class-type introduces at least a type-name.
3082
30832001-02-16  Jakub Jelinek  <jakub@redhat.com>
3084
3085	* call.c (convert_like_real): Create a temporary for non-lvalue.
3086
30872001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
3088
3089	* cp-tree.h: Fix typos in comments.
3090
30912001-02-16  Jason Merrill  <jason@redhat.com>
3092
3093	* optimize.c (remap_block): If we're compiling a clone, pass the
3094	new block to insert_block.
3095
30962001-02-16  Mark Mitchell  <mark@codesourcery.com>
3097
3098	* semantics.c (finish_asm_stmt): Robustify.
3099
31002001-02-15  Mark Mitchell  <mark@codesourcery.com>
3101
3102	* pt.c (push_template_decl_real): Don't remangle the name of a
3103	class template.
3104
31052001-02-15  Jim Meyering  <meyering@lucent.com>
3106
3107	* Make-lang.in (c++.install-common): Depend on installdirs.
3108	(c++.install-info): Likewise.
3109	(c++.install-man): Likewise.
3110
31112001-02-15  Mark Mitchell  <mark@codesourcery.com>
3112
3113	* typeck2.c (build_m_component_ref): Robustify.
3114
31152001-02-15  Alexandre Oliva  <aoliva@redhat.com>
3116
3117	* friend.c (do_friend): Don't take the nested [template] class
3118	into account when deciding whether to warn about the friend
3119	function not referring to a template function.
3120
31212001-02-14  Jakub Jelinek  <jakub@redhat.com>
3122
3123	* typeck.c (build_unary_op): Clarify error message.
3124
31252001-02-08  Aldy Hernandez  <aldyh@redhat.com>
3126
3127	* parse.y (component_constructor_declarator): allow optional
3128	parentheses around constructor class name.
3129
31302001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3131
3132	* cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
3133	section.
3134	* init.c (emit_base_init): Remove incorrect comment about
3135	virtual bases.
3136	* method.c (make_thunk): Fix comment alignment.
3137
31382001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3139
3140	Kill remnants of this is variable.
3141	* cp-tree.h (flag_this_is_variable): Remove.
3142	* decl2.c (flag_this_is_variable): Remove.
3143	* class.c (fixed_type_or_null): Add cdtor parm. Adjust.
3144	(build_vbase_path): The path is non-static, even in a cdtor.
3145	(resolves_to_fixed_type_p): Add additional return value.
3146	* search.c (init_vbase_pointers): Adjust.
3147	* tree.c (lvalue_p_1): Adjust.
3148	* typeck.c (mark_addressable): Adjust.
3149
31502001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3151
3152	* pt.c (unify): Don't check cv quals of array types.
3153
31542001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3155
3156	* tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
3157	check whether we already have the type.
3158
31592001-02-13  Mark Mitchell  <mark@codesourcery.com>
3160
3161	* cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
3162	* call.c (build_op_delete_call): Simplify to remove duplicate
3163	code.
3164	* class.c (clone_function_decl): Don't build the deleting variant
3165	of a non-virtual destructor.
3166	* decl.c (finish_destructor_body): Don't call delete if this is a
3167	non-virtual destructor.
3168	* init.c (build_delete): Explicitly call `operator delete' when
3169	deleting an object with a non-virtual destructor.
3170
31712001-02-13  Jason Merrill  <jason@redhat.com>
3172
3173	* lang-specs.h: Add more __EXCEPTIONS.
3174
31752001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3176
3177	* typeck2.c (process_init_constructor): Check
3178	TREE_HAS_CONSTRUCTOR before issuing missing init warning.
3179
31802001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3181
3182	* pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
3183	Remove spurious information in comment. Allow further
3184	adjustments of REFERENCE_TYPE args.
3185
31862001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3187
3188	* errfn.c (cp_deprecated): Tweak diagnostic text.
3189	* parse.y (new_initializer): Deprecate initializer lists
3190	extension.
3191
31922001-02-12  Mark Mitchell  <mark@codesourcery.com>
3193
3194	Remove old ABI support.
3195
31962001-02-11  Mark Mitchell  <mark@codesourcery.com>
3197
3198	* decl2.c (flag_vtable_thunks): Always set it to 1.
3199	(flag_new_abi): Likewise.
3200	* lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
3201
3202	* Makefile.in (g++spec.o): Fix typo.
3203
32042001-02-09  Jason Merrill  <jason@redhat.com>
3205
3206	* lang-specs.h: Restore definition of __EXCEPTIONS.
3207
32082001-02-08  Jason Merrill  <jason@redhat.com>
3209
3210	* search.c (shared_member_p): New function.
3211	(lookup_field_r): Use it.
3212	* cp-tree.h (SHARED_MEMBER_P): Remove.
3213
3214	* method.c (process_overload_item): Handle template-dependent array
3215	bounds.
3216	* pt.c (type_unification_real): If we end up with undeduced nontype
3217	parms, try again.
3218
3219	* decl.c (lookup_name_real): Tweak warning to refer to decls, not
3220	types.
3221
3222	* typeck2.c (friendly_abort): Don't say anything if we have
3223	earlier errors or sorries.
3224
3225	* decl.c (check_tag_decl): Notice attempts to redefine bool and
3226	wchar_t.  Ignore if in_system_header.
3227
3228	* decl.c (maybe_push_cleanup_level): New fn...
3229	(start_decl_1): ...split out from here.
3230	* cvt.c (build_up_reference): Use it.
3231	* cp-tree.h: Declare it.
3232
32332001-02-07  Mark Mitchell  <mark@codesourcery.com>
3234
3235	* lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
3236	spec.
3237
32382001-02-06  Nathan Sidwell  <nathan@codesourcery.com>
3239
3240	* pt.c (lookup_template_class): Make sure it's a primary
3241	template or template_template_parm when called from the parser.
3242	(instantiate_template_class): Add assertion.
3243
32442001-02-05  Alexandre Oliva  <aoliva@redhat.com>
3245
3246	* method.c (build_mangled_name) [old abi]: Protect flush_repeats()
3247	from error_mark_node.
3248
32492001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
3250
3251	Fix specification and implementation bugs in V3 ABI
3252	construction vtables.
3253	* cp-tree.h (flag_dump_class_layout): New flag.
3254	(BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
3255	(BINFO_LOST_PRIMARY_P): New flag.
3256	(SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
3257	(BINFO_PRIMARY_MARKED_P): Rename to ...
3258	(BINFO_PRIMARY_P): ... here.
3259	(binfo_via_virtual): New prototype.
3260	* decl2.c (flag_dump_class_layout): New flag.
3261	(cxx_decode_option): Set it. Adjust -fdump-translation-unit to
3262	use `=' as a file name separator.
3263	* init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
3264	bases.
3265	(build_vtbl_address): If this is a virtual primary base, then
3266	get the vtbl of what it is ultimately primary for.
3267	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
3268	for BINFO_PRIMARY_P.
3269	(dfs_skip_nonprimary_vbases_markedp): Likewise.
3270	(get_shared_vbase_if_not_primary): Likewise.
3271	(dfs_get_pure_virtuals): Likewise.
3272	(expand_upcast_fixups): Likewise.
3273	(fixup_virtual_upcast_offsets): Likewise.
3274	(dfs_find_vbase_instance): Likewise.
3275	(find_vbase_instance): Likewise.
3276	(binfo_from_vbase): Adjust comment to reflect reality.
3277	(binfo_via_virtual): New function.
3278	* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
3279	for binfo walking during VTT construction.
3280	(dfs_mark_primary_bases): Remove.
3281	(force_canonical_binfo_r): New function.
3282	(force_canonical_binfo): New function.
3283	(mark_primary_virtual_base): New function.
3284	(mark_primary_bases): Walk in inheritance graph order, use
3285	mark_primary_virtual_base.
3286	(determine_primary_base): Use some more intermediate variables.
3287	(dfs_find_final_overrider): Don't check for overriding along a
3288	virtual path.
3289	(dfs_modify_vtables): Walk into primary virtual bases too.
3290	(walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
3291	(build_base_fields): Likewise.
3292	(dfs_set_offset_for_unshared_vbases): Likewise.
3293	(layout_virtual_bases): Likewise.
3294	(end_of_class): Likewise.
3295	(finish_struct_1): Call dump_class_hierarchy, if requested.
3296	(dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
3297	(dump_class_hierarchy_r): Add stream parameter. Emit more information.
3298	(dump_class_hierarchy): Add file parameter. Append to file, if
3299	required.
3300	(finish_vtbls): Adjust accumulate_vtbl_inits call.
3301	Use canonical base for virtual bases.
3302	(build_vtt): Add more comments. Adjust build_vtt_inits call.
3303	(build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
3304	Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
3305	VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
3306	virtual VTTs.
3307	(dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
3308	from DATA.  We want virtual primary bases and all bases via virtual.
3309	Only set BINFO_VPTR_INDEX for top level. Look up from a primary
3310	virtual base when not a construction vtable.
3311	(dfs_ctor_vtable_bases_queue_p): New DFS predicate.
3312	(build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
3313	Use canonical bases when processing virtual bases.
3314	(accumulate_vtbl_inits): We're interested in any base via a
3315	virtual path.
3316	(dfs_accumulate_vtbl_inits): If this is a primary virtual base
3317	within a construction vtable, determine what is being overridden.
3318	(build_vtbl_initializer): Add more comments
3319	(add_vcall_offset_vtbl_entries_1): Adjust comment.
3320	(build_rtti_vtbl_entries): Check if the base has lost its
3321	primary.
3322
33232001-02-05  Mark Mitchell  <mark@codesourcery.com>
3324
3325	* Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
3326
33272001-02-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3328
3329	* decl.c (pushdecl): Call abort instead of fatal.
3330	* except.c (decl_is_java_type): Call fatal_error instead of fatal.
3331	* init.c (build_new_1): Likewise.
3332	(build_java_class_ref): Call internal_error and fatal_error, not fatal.
3333	* decl.c (build_typename_type): hash_table_init now returns void.
3334	decl.c (init_decl_processing): Make an error non-fatal.
3335
33362001-02-04  Mark Mitchell  <mark@codesourcery.com>
3337
3338	* cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
3339	Document.
3340	(CLASSTYPE_INTERFACE_KNOWN): Likewise.
3341	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
3342	(SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
3343	(SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
3344	* decl.c (maybe_commonize_var): Use the new name-mangling where
3345	appropriate.
3346	* decl2.c (comdat_linkage): Enhance comments.  Make all
3347	compiler-generated things static, if COMDAT is not available.
3348	(get_tinfo_decl): Do not make typeinfo objects that belong in the
3349	library COMDAT.
3350	(tinfo_base_init): Use the correct mangled name for typeinfo
3351	strings, and push them into the global scope.
3352	(typeinfo_in_lib_p): New function.
3353	(synthesize_tinfo_var): Use it.
3354	(create_real_tinfo_var): Likewise.
3355
33562001-02-03  Jakub Jelinek  <jakub@redhat.com>
3357
3358	* decl.c (push_class_binding): Use context_for_name_lookup instead
3359	of CP_DECL_CONTEXT.
3360	* search.c (context_for_name_lookup): Remove static.  Check for NULL
3361	context in the loop.
3362	* cp-tree.h (context_for_name_lookup): Add prototype.
3363
33642001-02-02  Jakub Jelinek  <jakub@redhat.com>
3365
3366	* cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
3367	* tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
3368	Remove.
3369	* call.c (convert_class_to_reference, build_user_type_conversion_1,
3370	add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
3371
33722001-02-02  Mark Mitchell  <mark@codesourcery.com>
3373
3374	* Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
3375	of macros used when compiling g++spec.c.
3376	* g++spec.c (lang_specific_driver): Link with the shared
3377	libgcc by default.
3378
33792001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
3380
3381	* decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
3382	make_reference_declarator, make_call_declarator), method.c
3383	(implicitly_declare_fn), parse.y (namespace_using_decl,
3384	notype_unqualified_id, expr_or_declarator, new_type_id,
3385	after_type_declarator, direct_after_type_declarator,
3386	notype_declarator, complex_notype_declarator,
3387	complex_direct_notype_declarator, qualified_id,
3388	notype_qualified_id, overqualified_id, direct_new_declarator,
3389	absdcl, direct_abstract_declarator, conversion_declarator), pt.c
3390	(tsubst), semantics.c (begin_constructor_declarator): Use build_nt
3391	instead of build_parse_node.
3392
33932001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3394
3395	* cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
3396	(minus_one_node): Moved to top level gcc directory.  Renamed
3397	to integer_minus_one_node.
3398
3399	* init.c (init_init_processing): Don't set minus_one_node.
3400	(build_vec_init): Use integer_minus_one_node.
3401
3402	* rtti.c (get_tinfo_decl_dynamic): Likewise.
3403
34042001-01-28  Jakub Jelinek  <jakub@redhat.com>
3405
3406	* optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
3407	identical and they would be replaced with constant, remove
3408	MODIFY_EXPR from the tree.
3409
34102001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3411
3412	* Make-lang.in: Remove all dependencies on defaults.h.
3413	* call.c: Don't include defaults.h.
3414	* decl.c: Likewise.
3415	* decl2.c: Likewise.
3416	* except.c: Likewise.
3417	* pt.c: Likewise.
3418	* rtti.c: Likewise.
3419	* tree.c: Likewise.
3420	* typeck.c: Likewise.
3421
34222001-01-25  Jakub Jelinek  <jakub@redhat.com>
3423
3424	* mangle.c (write_mangled_name, write_encoding): Mangle overloaded
3425	operators even in "C" linkage.
3426	* method.c (set_mangled_name_for_decl): Likewise.
3427	* decl.c (grokfndecl): Call set_mangled_name_for_decl even for
3428	overloaded operators in "C" linkage.
3429
34302001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
3431
3432	* pt.c (tsubst_decl): Remove IN_DECL parameter.
3433	(tsubst_arg_types): Check parameter is not void.
3434	(tsubst): Adjust tsubst_decl call.
3435
34362001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
3437
3438	* call.c (add_builtin_candidate): Quote std properly, from
3439	previous change.
3440
34412001-01-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3442
3443	* pt.c (check_explicit_specialization): Clone constructors and
3444	destructors.
3445
34462001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
3447
3448	* decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
3449	indicates anything special about template depth. Make sure we
3450	only count the user visible template classes.
3451
34522001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
3453
3454	* call.c (build_conv): Typo in comment.
3455	(add_builtin_candidate): Add more explanation.
3456	Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
3457	Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
3458	when we have enumeral types.
3459	(add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
3460	candidates for relops and eqops.
3461	(joust): Simplify control flow. Allow a non-template user
3462	function to hide a builtin.
3463
34642001-01-22  Nathan Sidwell  <nathan@codesourcery.com>
3465
3466	* cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
3467	(more_specialized): Add deduction parameter.
3468	* call.c (joust): Adjust more_specialized call.
3469	* pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
3470	UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
3471	(get_bindings_order): Remove.
3472	(get_bindings_real): Add DEDUCE parameter.
3473	(maybe_adjust_types_for_deduction): Return extra unify flags. Do
3474	REFERENCE_TYPE jig for DEDUCE_ORDER.
3475	(type_unification_real): Deal with DEDUCE_ORDER. Use result of
3476	maybe_adjust_types_for_deduction.
3477	(more_specialized): Add DEDUCE parameter. Call get_bindings_real
3478	directly.
3479	(try_one_overload): Use result of maybe_adjust_types_for_deduction.
3480	(check_cv_quals_for_unify): Use new unify qualifier flags.
3481	(unify): Clear new unify qualifier flags.
3482	(get_bindings_real): Add DEDUCE parameter.
3483	(get_bindings): Adjust call to get_bindings_real.
3484	(get_bindings_overload): Likewise.
3485	(most_specialized_instantiation): Adjust call to
3486	more_specialized.
3487
34882001-01-19  Jason Merrill  <jason@redhat.com>
3489
3490	* decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
3491
3492	* decl.c (init_decl_processing): Just force -fvtable-thunks on if
3493	-fnew-abi.
3494
34952001-01-19  Ute Pelkmann  <scope.muc@t-online.de>
3496
3497	* decl2.c (arg_assoc_class): Fix double iteration logic.
3498
34992001-01-19  Jason Merrill  <jason@redhat.com>
3500
3501	* init.c (build_delete): Always call convert_force to strip cv-quals.
3502
3503	* decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
3504	* lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
3505	* g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
3506
35072001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3508
3509	* search.c (get_vbase_1): Count only virtual bases.
3510
35112001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3512
3513	* class.c (duplicate_tag_error): Robustify flag clearing.
3514
35152001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3516
3517	* cp-tree.h (lookup_template_class): Add complain parm.
3518	* decl.c (lookup_namespace_name): Adjust call to
3519	lookup_template_class.
3520	(make_typename_type): Likewise.
3521	* semantics.c (finish_template_type): Likewise.
3522	* pt.c (lookup_template_class): Add complain parm. Adjust.
3523	(tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
3524	(tsubst): Likewise.
3525
35262001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3527
3528	* pt.c (copy_default_args_to_explicit_spec): Preserve
3529	object's CV quals. Reorganize.
3530
35312001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3532
3533	* typeck.c (build_modify_expr): Say `initialization' for
3534	INIT_EXPRs.
3535	* init.c (build_default_init): Convert to enumeral type, if
3536	needed.
3537
35382001-01-18  Jakub Jelinek  <jakub@redhat.com>
3539
3540	* parse.y (nomods_initdcl0): Properly set things up for
3541	initdcl0_innards.
3542
35432001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3544
3545	* pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
3546	(type_unification_real): Set it.
3547	(unify): Use it.
3548
35492001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3550
3551	* decl.c (finish_destructor_body): Convert to vbase pointer here.
3552
35532001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3554
3555	* semantics.c (begin_class_definition): Check we're not inside a
3556	template parm list.
3557
35582001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3559
3560	* tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
3561	BASELINK_P.
3562
35632001-01-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3564
3565	* typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
3566	* call.c (build_over_call): Add comment.
3567
35682001-01-16 Daniel Berlin <dberlin@redhat.com>
3569
3570	* cvt.c (ocp_convert): Handle vector type conversion
3571	* typeck2.c (digest_init): Handle vector type initializations
3572
35732001-01-16  Phil Edwards  <pme@sources.redhat.com>
3574
3575	* g++spec.c:  Don't add libraries needlessly if -fsyntax-only
3576	  was given.
3577
35782001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
3579
3580	* pt.c (check_nontype_parm): Rename to ...
3581	(invalid_nontype_parm_type_p): ... here.
3582	(process_template_parm): Adjust.
3583	(convert_template_argument): Adjust.
3584
35852001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
3586
3587	* pt.c (check_nontype_parm): New function.
3588	(process_template_parm): Use it.
3589	(convert_template_argument): Use it.
3590	(convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
3591	member.
3592
35932001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
3594
3595	* tree.c: Add defaults.h
3596	(cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
3597	* Make-lang.in (cp/tree.o): Add defaults.h.
3598
35992001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3600
3601	* Make-lang.in (CXX_C_OBJS): Add c-format.o.
3602
36032001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3604
3605	* g++.1: Change to be ".so man1/gcc.1".
3606
36072001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3608
3609	* Make-lang.in (c++.info, c++.install-info): Build and install g++
3610	internals info.
3611	(c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
3612	($(srcdir)/cp/g++int.info): New target.
3613	* gxxint.texi: Add info directory entry.  Use @@ in email address.
3614	* .cvsignore: Update.
3615
36162001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
3617
3618	* typeck.c (build_c_cast): Do template processing earlier.
3619	Always pedwarn on array casts.
3620
36212001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
3622
3623	* friend.c (make_friend_class): Make sure a templated class is
3624	actually a template.
3625
36262001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3627
3628	* decl2.c (get_guard): Set linkage from guarded decl.
3629
36302001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3631
3632	* call.c (convert_default_arg): Check for unprocessed
3633	DEFAULT_ARG.
3634	* cp-tree.h (replace_defarg): Move to spew.c.
3635	(maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
3636	spew.c, which is where they really are.
3637	(done_pending_defargs): Declare.
3638	(unprocessed_defarg_fn): Declare.
3639	* decl.c (replace_defarg): Move to spew.c
3640	* parse.y (structsp): Call done_pending_defargs.
3641	* spew.c (defarg_fns): Rearrange list structure.
3642	(defarg_fnsdone): New static variable.
3643	(defarg_depfns): New static variable.
3644	(init_spew): Adjust.
3645	(add_defarg_fn): Store the type in TREE_TYPE.
3646	(do_pending_defargs): Detect and deal with ordering constraints
3647	and circularity.
3648	(done_pending_defargs): New function.
3649	(unprocessed_defarg_fn): New function.
3650	(replace_defarg): Moved from decl.c. Robustify. Don't save
3651	if circularity detected.
3652
36532001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3654
3655	* pt.c (unify): Check array has a domain, before checking
3656	whether it is variable sized.
3657
36582001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3659
3660	* decl.c (grokparms): Unobfuscate and get correct diagnostic for
3661	parameters with pointers to arrays of unknown bound.
3662
36632001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3664
3665	* parse.y (template_parm_header, template_spec_header): New
3666	reductions. Split out from ...
3667	(template_header): ... here. Use them.
3668	(template_template_parm): Use template_parm_header.
3669	* semantics.c (finish_template_template_parm): Add assert.
3670
36712001-01-10  Mark Mitchell  <mark@codesourcery.com>
3672
3673	* mangle.c (write_builtin_type): Fix thinko.
3674
3675	* pt.c (copy_default_args_to_explicit_spec_1): New function.
3676	(copy_default_args_to_explicit_spec): Likewise.
3677	(check_explicit_specialization): Use it.
3678
3679	* class.c (finish_struct_1):  Remove last argument in call to
3680	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
3681	* decl.c (builtin_function): Likewise.
3682	(build_cp_library_fn): Likewise.
3683	(check_initializer): Likewise.
3684	(make_rtl_for_nonlocal_decl): Likewise.
3685	(cp_finish_decl): Likewise.
3686	(start_function): Likewise.
3687	* decl2.c (finish_anon_union): Likewise.
3688	* friend.c (do_friend): Likewise.
3689	* init.c (build_java_class_ref): Likewise.
3690	* method.c (make_thunk): Likewise.
3691	* pt.c (tsubst_friend_function): Likewise.
3692	* semantics.c (expand_body): Likewise.
3693
36942001-01-10  Mark Mitchell  <mark@codesourcery.com>
3695
3696	* cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
3697	looking at DECL_CLONED_FUNCTION for non-functions.
3698
36992001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
3700
3701	* error.c (dump_template_parameter): Use parm to determine how
3702	to print default value.
3703
37042001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
3705
3706	* class.c (duplicate_tag_error): Clear more flags.
3707
37082001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
3709
3710	* call.c (build_new_method_call): Use binfo_for_vbase.
3711
37122001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
3713
3714	* cp-tree.h (flag_cond_mismatch): Don't declare.
3715	* decl2.c (flag_cond_mismatch): Don't define.
3716	(lang_f_options): Remove cond-mismatch.
3717	(unsupported_options): Add cond-mismatch.
3718
37192001-01-09  Nathan Sidwell  <nathan@codesourcery.com>
3720
3721	* class.c (handle_using_decl): Reject using of constructor name
3722	of sourcing class. Allow injecting of a method with same name as
3723	nested class. Fixup error messages.
3724
37252001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
3726
3727	* decl2.c (lang_decode_option): Handle -Wformat=2.
3728
37292001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
3730
3731	* cp-tree.h (lang_decl_flags): Rename defined_in_class to
3732	initialized_in_class.
3733	(DECL_DEFINED_IN_CLASS_P): Rename to ...
3734	(DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
3735	* decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
3736	(cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
3737	* pt.c (check_default_tmpl_args): Adjust for
3738	DECL_INITIALIZED_IN_CLASS_P.
3739	(instantiate_class_template): Likewise.
3740	(instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
3741
3742	* class.c (finish_struct): Constify saved_filename.
3743
37442001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
3745
3746	* class.c (duplicate_tag_error): Adjust diagnostic.
3747	(finish_struct): Locally set location to start of struct.
3748	* decl.c (fixup_anonymous_aggr): Use cp_error_at.
3749
37502001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
3751
3752	* decl.c (struct binding_level): Adjust class_shadowed comments
3753	to reflect reality.
3754	(push_class_level_binding): Adjust comments to reflect reality.
3755	Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
3756	Don't set TREE_VALUE on the class_shadowed list.
3757
37582001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3759
3760	* decl2.c (acceptable_java_type): Allow references too.
3761	* init.c (build_java_class_ref): When using the new ABI, search
3762	`class$' and have it mangled with `mangle_decl.'
3763	* mangle.c (write_java_integer_type_codes): New function.
3764	(write_builtin_type): Detect and mangle Java integer and real
3765	types.
3766
37672001-01-07  Mark Mitchell  <mark@codesourcery.com>
3768
3769	* decl2.c (grokfield): Don't accept `asm' specifiers for
3770	non-static data members.
3771
37722001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3773
3774	* expr.c (cplus_expand_expr): Don't reset `target'.
3775
37762001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3777
3778	* cp/decl2.c (cxx_post_options): Call cpp_post_options.
3779
37802001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
3781
3782	* parse.y (template_datadef): Check for error_mark_node.
3783
37842001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
3785
3786	* cp-tree.def (DEFAULT_ARG): Make `x' class.
3787
37882001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
3789
3790	* decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
3791	(record_builtin_type): Make non-static.
3792	(flag_short_double): Don't declare.
3793	(init_decl_processing): Remove the creation of many tree nodes now
3794	in c_common_nodes_and_builtins.
3795	(build_void_list_node): New function.
3796	* decl2.c (flag_short_double, flag_short_wchar): Don't define.
3797	* cp-tree.h (flag_short_wchar): Don't declare.
3798
37992001-01-04  Mark Mitchell  <mark@codesourcery.com>
3800
3801	* call.c (build_conv): Don't use build1 for USER_CONV.
3802	* pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
3803
38042001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
3805
3806	* lex.c (lang_init): Call c_common_lang_init.
3807
38082001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
3809
3810	* search.c (lookup_fnfields_here): Remove.
3811	(look_for_overrides_r): Use lookup_fnfields_1.
3812	Ignore functions from using declarations.
3813
38142001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
3815
3816	Implement exceptions specifiers for implicit member functions.
3817	* cp-tree.h (merge_exceptions_specifiers): Declare new function.
3818	* method.c (synthesize_exception_spec): New function.
3819	(locate_dtor, locate_ctor, locate_copy): New functions.
3820	(implicitly_declare_fn): Generate the exception spec too.
3821	* search.c (check_final_overrider): Check artificial functions
3822	too.
3823	* typeck2.c (merge_exception_specifiers): New function.
3824
38252001-01-03  Jason Merrill  <jason@redhat.com>
3826
3827	* init.c (build_default_init): New fn.
3828	(perform_member_init): Split out from here.
3829	(build_new_1): Use it.  Simplify initialization logic.
3830	(build_vec_init): Take an array, rather than a pointer and maxindex.
3831	Speed up simple initializations.  Don't clean up if we're assigning.
3832	* cp-tree.h: Adjust.
3833	* decl2.c (do_static_initialization): Remove TREE_VEC case.
3834	* parse.y (new_initializer): Return void_zero_node for ().
3835	* typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
3836	* typeck2.c (digest_init): Only complain about user-written
3837	CONSTRUCTORs.
3838
38392000-12-22  Mike Stump  <mrs@wrs.com>
3840
3841	* decl2.c: (max_tinst_depth): Increase to 50.
3842
38432001-01-02  Mark Mitchell  <mark@codesourcery.com>
3844
3845	* class.c (invalidate_class_lookup_cache): Zero the
3846	previous_class_values.
3847	* cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
3848	TREE_INT_CST_HIGH.
3849	(CLASSTYPE_TEMPLATE_LEVEL): Likewise.
3850	* decl.c (free_bindings): New variable.
3851	(push_binding): Don't create a new binding if we have one on the
3852	free list.
3853	(pop_binding): Put old bindings on the free list.
3854	(init_decl_processing): Use size_int, not build_int_2.
3855	Register free_bindings as a GC root.
3856	(cp_make_fname_decl): Use size_int, not build_int_2.
3857	(push_inline_template_parms_recursive): Likewise.
3858	(end_template_parm_list): Likewise.
3859	(for_each_template_parm): Do not use walk_tree_without_duplicates.
3860	(tsubst_template_parms): Use size_int, not build_int_2.
3861	(tsubst): Likewise.
3862	* rtti.c (get_vmi_pseudo_type_info): Likewise.
3863
38642001-01-02  Richard Henderson  <rth@redhat.com>
3865
3866	* parse.y (asm): Set ASM_INPUT_P.
3867
38682001-01-02  Jason Merrill  <jason@redhat.com>
3869
3870	* tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
3871	for v3 ABI.
3872
3873	* typeck.c (cp_truthvalue_conversion): New fn.
3874	* cvt.c (ocp_convert): Use it.
3875
3876	* cp-tree.h: Lose c-common.c decls.
3877
3878	* typeck.c (build_unary_op): Restore old &a.f diagnostic code.
3879	* cvt.c (convert_to_void): Use type_unknown_p.
3880
3881	* typeck.c (strip_all_pointer_quals): Also strip quals from
3882	pointer-to-member types.
3883
3884	* Make-lang.in (cp/TAGS): Use --no-globals.  Ignore parse.c, and treat
3885	parse.y as C.
3886
3887	* call.c (build_new_method_call): Do evaluate the object parameter
3888	when accessing a static member.
3889	* typeck.c (build_component_ref): Likewise.
3890
38912001-01-02  Andreas Jaeger  <aj@suse.de>
3892
3893	* decl.c (cp_missing_noreturn_ok_p): New.
3894	(init_decl_processing): Set lang_missing_noreturn_ok_p.
3895
3896
3897Copyright (C) 2001 Free Software Foundation, Inc.
3898
3899Copying and distribution of this file, with or without modification,
3900are permitted in any medium without royalty provided the copyright
3901notice and this notice are preserved.
3902