1169689Skan2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
2169689Skan
3169689Skan	* call.c (build_user_type_conversion_1): Use my_friendly_assert
4169689Skan	rather than if ... abort.
5169689Skan	* cvt.c (convert_to_reference): Likewise.
6169689Skan	* semantics.c (setup_vtbl_ptr): Likewise.
7169689Skan	* pt.c (lookup_template_class): Comment typo.
8169689Skan
9169689Skan2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
10169689Skan
11169689Skan	PR c++/5125
12169689Skan	* pt.c (push_template_decl_real): Make sure DECL has
13169689Skan	DECL_LANG_SPECIFIC.
14169689Skan
15169689Skan2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16169689Skan
17169689Skan	PR c++/335
18169689Skan	* init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
19169689Skan	for non-reference fields.
20169689Skan	* typeck.c (require_complete_type): Use resolve_offset_ref).
21169689Skan
22169689Skan2001-12-26  Nathan Sidwell  <nathan@codesourcery.com>
23169689Skan
24169689Skan	PR c++/196
25169689Skan	* parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
26169689Skan
27169689Skan2001-12-24  Nathan Sidwell  <nathan@codesourcery.com>
28169689Skan
29169689Skan	PR c++/160
30169689Skan	* typeck.c (build_modify_expr): Remove old unreachable code & tidy
31169689Skan	up. Don't stabilize_references when initializing a reference.
32169689Skan
33169689Skan2001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34169689Skan
35169689Skan	* decl2.c (lang_f_options): Const-ify.
36169689Skan
37169689Skan2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
38169689Skan
39169689Skan	* config-lang.in (diff_excludes): Remove.
40169689Skan
41169689Skan2001-12-19  Nathan Sidwell  <nathan@codesourcery.com>
42169689Skan
43169689Skan	PR c++/90
44169689Skan	* typeck.c (build_function_call_real): Use original function
45169689Skan	expression for errors.
46169689Skan
47169689Skan2001-12-18  Jason Merrill  <jason@redhat.com>
48169689Skan
49169689Skan	PR c++/3242
50169689Skan	* class.c (add_method): Do compare 'this' quals when trying to match a
51169689Skan	used function.  Don't defer to another used function.
52169689Skan
53169689Skan2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
54169689Skan
55169689Skan	* pt.c (instantiate_clone): Remove, fold into ...
56169689Skan	(instantiate_template): ... here. Simplify by removing mutual
57169689Skan	recursion.
58169689Skan	* typeck2.c (build_m_component_ref): Don't cv qualify the function
59169689Skan	pointed to by a pointer to function.
60169689Skan	* class.c (delete_duplicate_fields_1): Typo.
61169689Skan
62169689Skan2001-12-18  Jason Merrill  <jason@redhat.com>
63169689Skan
64169689Skan	C++ ABI change: destroy value arguments in caller.
65169689Skan	* semantics.c (genrtl_start_function, genrtl_finish_function): Don't
66169689Skan	create an extra binding level for the parameters.
67169689Skan	* decl.c (store_parm_decls): Don't do parameter cleanups.
68169689Skan
69169689Skan2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
70169689Skan
71169689Skan	* call.c (build_new_method_call): Use '%#V'.
72169689Skan	* error.c (cv_to_string): Use V parameter to determine padding.
73169689Skan
74169689Skan2001-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
75169689Skan
76169689Skan	* call.c, decl2.c, init.c: Use "built-in" and "bit-field"
77169689Skan	spellings in messages.
78169689Skan
79169689Skan2001-12-17  Zack Weinberg  <zack@codesourcery.com>
80169689Skan
81169689Skan	* cp-tree.h: Delete #defines for cp_error, cp_warning,
82169689Skan	cp_pedwarn, and cp_compiler_error.
83169689Skan	* call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
84169689Skan	except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
85169689Skan	rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
86169689Skan	typeck2.c: Change calls to the above macros to use their
87169689Skan	language-independent equivalents: error, warning, pedwarn, and
88169689Skan	internal_error respectively.
89169689Skan
90169689Skan2001-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
91169689Skan
92169689Skan	* decl2.c (finish_file): Remove back_end_hook.
93169689Skan
94169689Skan2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
95169689Skan
96169689Skan	* ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
97169689Skan	cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
98169689Skan	pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
99169689Skan
100169689Skan2001-12-15  Joseph S. Myers  <jsm28@cam.ac.uk>
101169689Skan
102169689Skan	* lang-options.h: Use American spelling in messages.
103169689Skan
104169689Skan2001-12-13  Jason Merrill  <jason@redhat.com>
105169689Skan
106169689Skan	* Make-lang.in (parse.h): Separate rule, just depend on parse.c.
107169689Skan
108169689Skan	Use cleanups to run base and member destructors.
109169689Skan	* init.c (push_base_cleanups): New function, split out from...
110169689Skan	(build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
111169689Skan	* decl.c (finish_destructor_body): Move vbase destruction code to
112169689Skan	push_base_cleanups.
113169689Skan	(begin_function_body, finish_function_body): New fns.
114169689Skan	(finish_function): Move [cd]tor handling and call_poplevel to
115169689Skan	finish_function_body.
116169689Skan	(pushdecl): Skip the new level.
117169689Skan	* semantics.c (genrtl_try_block): Don't call end_protect_partials.
118169689Skan	(setup_vtbl_ptr): Call push_base_cleanups.
119169689Skan	* method.c (synthesize_method): Call {begin,end}_function_body.
120169689Skan	* pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
121169689Skan	* cp-tree.h: Declare new fns.
122169689Skan	* parse.y (function_body, .begin_function_body): New nonterminals.
123169689Skan	(fndef, pending_inline, function_try_block): Use function_body.
124169689Skan	(ctor_initializer_opt, function_try_block): No longer has a value.
125169689Skan	(base_init): Remove .set_base_init token.
126169689Skan	(.set_base_init, compstmt_or_error): Remove.
127169689Skan	* Make-lang.in (parse.c): Expect two fewer s/r conflicts.
128169689Skan
129169689Skan	* optimize.c (maybe_clone_body): Fix parameter updating.
130169689Skan
131169689Skan2001-12-12  Jason Merrill  <jason@redhat.com>
132169689Skan
133169689Skan	* decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
134169689Skan	* semantics.c (genrtl_start_function): Don't pass
135169689Skan	parms_have_cleanups or push an extra binding level.
136169689Skan	(genrtl_finish_function): Lose cleanup_label cruft.
137169689Skan
138169689Skan	* cp-tree.h (struct cp_language_function): Remove x_ctor_label.
139169689Skan	(ctor_label): Remove.
140169689Skan	* semantics.c (finish_return_stmt): Lose ctor_label support.
141169689Skan	* decl.c (finish_constructor_body, mark_lang_function): Likewise.
142169689Skan	* typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
143169689Skan	dtor_label.
144169689Skan
145169689Skan	* call.c (build_new_method_call): Let resolves_to_fixed_type_p
146169689Skan	check for [cd]tors.
147169689Skan	* class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
148169689Skan
149169689Skan	* decl.c (finish_function): Check VMS_TARGET, not VMS.
150169689Skan
151169689Skan	* decl.c (start_cleanup_fn): Remove redundant pushlevel.
152169689Skan	(end_cleanup_fn): And poplevel.
153169689Skan
154169689Skan	* semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
155169689Skan	if we're in a template.
156169689Skan
157169689Skan2001-12-12  Jakub Jelinek  <jakub@redhat.com>
158169689Skan
159169689Skan	* cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
160169689Skan	ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
161169689Skan	THIS_NAME_P): Delete.
162169689Skan	* spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
163169689Skan	THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
164169689Skan	with internal naming scheme.
165169689Skan	* error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
166169689Skan
167169689Skan2001-12-12  Nathan Sidwell  <nathan@codesourcery.com>
168169689Skan
169169689Skan	* decl.c (grokdeclarator): Deprecated implicit typename use.
170169689Skan
171169689Skan2001-12-11  Nathan Sidwell  <nathan@codesourcery.com>
172169689Skan
173169689Skan	PR g++/51
174169689Skan	* parse.y (frob_specs): Indicate it is a language linkage which
175169689Skan	contained the extern.
176169689Skan	* decl.c (grokdeclarator): Allow extern language linkage with
177169689Skan	other specifiers.
178169689Skan
179169689Skan2001-12-10  Nathan Sidwell  <nathan@codesourcery.com>
180169689Skan
181169689Skan	PR g++/72
182169689Skan	* decl.c (add_binding): Don't reject duplicate typedefs involving
183169689Skan	template parameters.
184169689Skan
185169689Skan2001-12-10  Neil Booth  <neil@daikokuya.demon.co.uk>
186169689Skan
187169689Skan	* parse.y, semantics.c: Similarly.
188169689Skan
189169689Skan2001-12-09  Nathan Sidwell  <nathan@codesourcery.com>
190169689Skan
191169689Skan	PR g++/87
192169689Skan	* cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
193169689Skan	(copy_args_p): Rename to ...
194169689Skan	(copy_fn_p): ... here.
195169689Skan	(grok_special_member_properties): New function.
196169689Skan	(grok_op_properties): Lose VIRTUALP parameter.
197169689Skan	(copy_assignment_arg_p): Remove.
198169689Skan	* call.c (build_over_call): Use copy_fn_p.
199169689Skan	* decl.c (grokfndecl): Reformat. Adjust call to
200169689Skan	grok_op_properties.
201169689Skan	(copy_args_p): Rename to ...
202169689Skan	(copy_fn_p): ... here. Reject template functions. Check for pass
203169689Skan	by value.
204169689Skan	(grok_special_member_properties): Remember special functions.
205169689Skan	(grok_ctor_properties): Don't remember them here, just check.
206169689Skan	(grok_op_properties): Likewise.
207169689Skan	(start_method): Call grok_special_member_properties.
208169689Skan	* decl2.c (grokfield): Likewise.
209169689Skan	(copy_assignment_arg_p): Remove.
210169689Skan	(grok_function_init): Don't remember abstract assignment here.
211169689Skan	* pt.c (instantiate_class_template): Call
212169689Skan	grok_special_member_properties.
213169689Skan	(tsubst_decl): Adjust grok_op_properties call.
214169689Skan
215169689Skan2001-12-08  Aldy Hernandez  <aldyh@redhat.com>
216169689Skan
217169689Skan	* lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
218169689Skan	RID_TYPES_COMPATIBLE_P.
219169689Skan
220169689Skan2001-12-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
221169689Skan
222169689Skan	* semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
223169689Skan	call to build_aggr_init.
224169689Skan	* cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
225169689Skan
226169689Skan2001-12-08  Neil Booth  <neil@daikokuya.demon.co.uk>
227169689Skan
228169689Skan	* parse.y: Replace uses of the string non-terminal with STRING.
229169689Skan	Don't perform string concatentaion here.
230169689Skan	(string): Remove non-terminal.
231169689Skan	* semantics.c (finish_asm_stmt): Don't concatenate strings here.
232169689Skan
233169689Skan2001-12-05  Jason Merrill  <jason@redhat.com>
234169689Skan
235169689Skan	* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
236169689Skan	(LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
237169689Skan	* tree.c (cp_start_inlining, cp_end_inlining): New fns.
238169689Skan	* pt.c (push_tinst_level): No longer static.
239169689Skan	* cp-tree.h: Declare them.
240169689Skan
241169689Skan	* init.c (resolve_offset_ref): Don't check access for the base
242169689Skan	conversion to access a FIELD_DECL.
243169689Skan
244169689Skan	* cp-tree.h (TYPE_REFFN_P): New macro.
245169689Skan	* decl.c (bad_specifiers): Check it, too.
246169689Skan
247169689Skan	* rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
248169689Skan	on the __*_type_info type if we haven't seen a definition.
249169689Skan
250169689Skan2001-12-05  Neil Booth  <neil@daikokuya.demon.co.uk>
251169689Skan
252169689Skan	* decl.c: Include c-common.h.
253169689Skan	(shadow_warning): Move to c-common.c.
254169689Skan
255169689Skan2001-12-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
256169689Skan
257169689Skan	* decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
258169689Skan
259169689Skan2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
260169689Skan
261169689Skan	* pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
262169689Skan
263169689Skan2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
264169689Skan
265169689Skan	PR g++/164
266169689Skan	* init.c (sort_base_init): Allow binfos to be directly specified.
267169689Skan	* method.c (do_build_copy_constructor): Explicitly convert to the
268169689Skan	base instance.
269169689Skan	(do_build_assign_ref): Likewise.
270169689Skan
271169689Skan2001-12-03  Hans-Peter Nilsson  <hp@bitrange.com>
272169689Skan
273169689Skan	* decl.c (xref_basetypes): Don't use C99 construct in tag_code
274169689Skan	declaration and initialization.
275169689Skan
276169689Skan2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
277169689Skan
278169689Skan	* typeck2.c: Remove leading capital from diagnostic messages, as
279169689Skan	per GNU coding standards.
280169689Skan
281169689Skan2001-12-03  Mumit Khan  <khan@nanotech.wisc.edu>
282169689Skan
283169689Skan	PR c++/3394
284169689Skan	* decl.c (xref_basetypes): Handle attributes between
285169689Skan	'class' and name.
286169689Skan
287169689Skan2001-12-03  Nathan Sidwell  <nathan@codesourcery.com>
288169689Skan
289169689Skan	PR g++/3381
290169689Skan	* parse.y (named_complex_class_head_sans_basetype): Add new
291169689Skan	reduction.
292169689Skan	* Make-lang.in (parse.c): Adjust expected conflict count.
293169689Skan
294169689Skan2001-12-03  Jason Merrill  <jason@redhat.com>
295169689Skan
296169689Skan	* class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
297169689Skan	immediate binfos for our virtual bases.
298169689Skan
299169689Skan2001-12-02  Neil Booth  <neil@daikokuya.demon.co.uk>
300169689Skan
301169689Skan	* call.c (build_java_interface_fn_ref): Similarly.
302169689Skan	* except.c (is_admissible_throw_operand): Similarly.
303169689Skan	* init.c (build_java_class_ref): Similarly.
304169689Skan	* xref.c (open_xref_file): Similarly.
305169689Skan
306169689Skan2001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
307169689Skan
308169689Skan	* class.c (finish_struct): Remove trailing periods from messages.
309169689Skan	* decl.c (check_tag_decl): Similarly.
310169689Skan	* lex.c (cxx_set_yydebug): Similarly.
311169689Skan	* typeck2.c (friendly_abort): Similarly.
312169689Skan
313169689Skan2001-11-29  Mark Mitchell  <mark@codesourcery.com>
314169689Skan
315169689Skan	PR c++/3048
316169689Skan	* cp-tree.h (ovl_member): Remove.
317169689Skan	* decl2.c (merge_functions): Handle extern "C" functions
318169689Skan	specially.
319169689Skan	* tree.c (ovl_member): Remove.
320169689Skan
321169689Skan2001-11-29  Mark Mitchell  <mark@codesourcery.com>
322169689Skan
323169689Skan	PR c++/4842
324169689Skan	* class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
325169689Skan	FUNCTION_DECL, as input.
326169689Skan	(mark_overriders): Remove.
327169689Skan	(warn_hidden): Rework for the new ABI.
328169689Skan
329169689Skan2001-11-29  Mark Mitchell  <mark@codesourcery.com>
330169689Skan
331169689Skan	PR c++/3471
332169689Skan	* call.c (convert_like_real): Do not build additional temporaries
333169689Skan	for rvalues of class type.
334169689Skan
335169689Skan2001-11-28  Nathan Sidwell  <nathan@codesourcery.com>
336169689Skan
337169689Skan	* cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
338169689Skan	(ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
339169689Skan	(PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
340169689Skan	(DERIVED_FROM_P): Likewise.
341169689Skan	(enum base_access): Renumber, add ba_quiet bit mask.
342169689Skan	(get_binfo): Remove.
343169689Skan	(get_base_distance): Remove.
344169689Skan	(binfo_value): Remove.
345169689Skan	(ACCESSIBLY_DERIVED_FROM_P): Remove.
346169689Skan	* call.c (standard_conversion): Use lookup_base.
347169689Skan	* class.c (strictly_overrides): Likewise.
348169689Skan	(layout_virtual_bases): Likewise.
349169689Skan	(warn_about_ambiguous_direct_bases): Likewise.
350169689Skan	(is_base_of_enclosing_class): Likewise.
351169689Skan	(add_vcall_offset_vtbl_entries_1): Likewise.
352169689Skan	* cvt.c (build_up_reference): Adjust comment.
353169689Skan	* init.c (build_member_call): Reformat.
354169689Skan	* search.c (get_binfo): Remove.
355169689Skan	(get_base_distance_recursive): Remove.
356169689Skan	(get_base_distance): Remove.
357169689Skan	(lookup_base_r): Tweak.
358169689Skan	(lookup_base): Add ba_quiet control. Complete the types here.
359169689Skan	(covariant_return_p): Use lookup_base.
360169689Skan	* tree.c (binfo_value): Remove.
361169689Skan	(maybe_dummy_object): Use lookup_base.
362169689Skan	* typeck.c (build_static_cast): Use lookup_base.
363169689Skan	(get_delta_difference): Likewise.
364169689Skan	* typeck2.c (binfo_or_else): Use lookup_base.
365169689Skan	(build_scoped_ref): Add back error_mark_check.
366169689Skan	(build_m_component_ref): Use lookup_base.
367169689Skan
368169689Skan2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
369169689Skan
370169689Skan	* Make-lang.in (c++.generated-manpages): New dummy target.
371169689Skan
372169689Skan2001-11-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
373169689Skan
374169689Skan	* Make-lang.in (cp-lang.o): Depends on c-common.h.
375169689Skan	* cp-lang.c (c-common.h): Include.
376169689Skan	(LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
377169689Skan	* decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
378169689Skan	* expr.c (init_cplus_expand): Don't set lang_expand_constant.
379169689Skan
380169689Skan2001-11-26  Neil Booth  <neil@daikokuya.demon.co.uk>
381169689Skan
382169689Skan	* decl2.c (c_language): Move to c-common.c.
383169689Skan	* lex.c (cxx_post_options, cxx_init_options): Use c-common.c
384169689Skan	functions.
385169689Skan	(cxx_init): Update.
386169689Skan
387169689Skan2001-11-26  Jason Merrill  <jason@redhat.com>
388169689Skan
389169689Skan	* call.c (joust): Remove COND_EXPR hack.
390169689Skan
391169689Skan2001-11-25  Aldy Hernandez  <aldyh@redhat.com>
392169689Skan
393169689Skan	* search.c (lookup_base_r): Declare bk in variable declaration
394169689Skan	space.
395169689Skan
396169689Skan2001-11-25  Nathan Sidwell  <nathan@codesourcery.com>
397169689Skan
398169689Skan	PR g++/3145
399169689Skan	* class.c (build_vbase_pointer): Remove.
400169689Skan	(build_vbase_path): Remove.
401169689Skan	(build_base_path): New function.
402169689Skan	* cp-tree.h (base_access, base_kind): New enumerations.
403169689Skan	(build_base_path): Declare.
404169689Skan	(convert_pointer_to_real): Remove.
405169689Skan	(convert_pointer_to): Remove.
406169689Skan	(lookup_base): Declare.
407169689Skan	(convert_pointer_to_vbase): Remove.
408169689Skan	* call.c (build_scoped_method_call): Use lookup_base &
409169689Skan	build_base_path instead of convert_pointer_to_real,
410169689Skan	get_base_distance & get_binfo.
411169689Skan	(build_over_call): Likewise.
412169689Skan	* cvt.c (cp_convert_to_pointer): Likewise.
413169689Skan	(convert_to_pointer_force): Likewise.
414169689Skan	(build_up_reference): Likewise.
415169689Skan	(convert_pointer_to_real): Remove.
416169689Skan	(convert_pointer_to): Remove.
417169689Skan	* init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
418169689Skan	instead of convert_pointer_to_vbase & build_vbase_path.
419169689Skan	(emit_base_init): Use build_base_path instead of
420169689Skan	convert_pointer_to_real.
421169689Skan	(expand_virtual_init): Lose unrequired conversions.
422169689Skan	(resolve_offset_ref): Use lookup_base and build_base_path
423169689Skan	instead of convert_pointer_to.
424169689Skan	* rtti.c (build_dynamic_cast_1): Use lookup_base &
425169689Skan	build_base_path instead of get_base_distance & build_vbase_path.
426169689Skan	* search.c (get_vbase_1): Remove.
427169689Skan	(get_vbase): Remove.
428169689Skan	(convert_pointer_to_vbase): Remove.
429169689Skan	(lookup_base_r): New function.
430169689Skan	(lookup_base): New function.
431169689Skan	* typeck.c (require_complete_type): Use lookup_base &
432169689Skan	build_base_path instead of convert_pointer_to.
433169689Skan	(build_component_ref): Likewise.
434169689Skan	(build_x_function_call): Likewise.
435169689Skan	(get_member_function_from_ptrfunc): Likewise.
436169689Skan	(build_component_addr): Likewise.
437169689Skan	* typeck2.c (build_scoped_ref): Likewise.
438169689Skan
439169689Skan2001-11-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
440169689Skan
441169689Skan	* cp-tree.h (CP_TYPE_QUALS): Removed.
442169689Skan	* decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
443169689Skan	* cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
444169689Skan	LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
445169689Skan	* dump.c (cp_dump_tree): Use void* dump_info argument to match
446169689Skan	lang-hooks prototype.
447169689Skan	* call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
448169689Skan	rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
449169689Skan	CP_TYPE_QUALS changed to cp_type_quals.
450169689Skan	* Make-lang.in: References to c-dump.h changed to tree-dump.h.
451169689Skan	(CXX_C_OBJS): Remove c-dump.o.
452169689Skan
453169689Skan2001-11-21  Mark Mitchell  <mark@codesourcery.com>
454169689Skan
455169689Skan	PR c++/3637
456169689Skan	* pt.c (lookup_template_class): Ensure that all specializations
457169689Skan	are registered on the list corresponding to the most general
458169689Skan	template.
459169689Skan
460169689Skan2001-11-20  Mark Mitchell  <mark@codesourcery.com>
461169689Skan
462169689Skan	* call.c (non_reference): Add documentation.
463169689Skan	(convert_class_to_reference): Do not strip reference types
464169689Skan	from conversion operators.
465169689Skan	(maybe_handle_ref_bind): Simplify.
466169689Skan	(compare_ics): Correct handling of references.
467169689Skan
468169689Skan2001-11-19  John Wilkinson <johnw@research.att.com>
469169689Skan
470169689Skan	* dump.c (dump_op): New function.
471169689Skan	(cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION.  Use
472169689Skan	dump_op.  Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
473169689Skan	DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
474169689Skan
475169689Skan2001-11-19  Mark Mitchell  <mark@codesourcery.com>
476169689Skan
477169689Skan	PR4629
478169689Skan	* semantics.c (finish_sizeof): Make sure that expression created
479169689Skan	while processing a template do not have a type.
480169689Skan	(finish_alignof): Likewise.
481169689Skan	* typeck.c (c_sizeof): Likewise.
482169689Skan	(expr_sizeof): Likewise.
483169689Skan
484169689Skan2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
485169689Skan
486169689Skan	* lex.c (cxx_finish): Call c_common_finish.
487169689Skan	(finish_parse): Remove.
488169689Skan
489169689Skan2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
490169689Skan
491169689Skan	* decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
492169689Skan	when displaying error message about missing array bounds.
493169689Skan
494169689Skan2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
495169689Skan
496169689Skan	* mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
497169689Skan	CONST_CAST_EXPR.
498169689Skan	* operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
499169689Skan
500169689Skan2001-11-16  Neil Booth  <neil@daikokuya.demon.co.uk>
501169689Skan
502169689Skan	* cp-tree.h (print_class_statistics): Restore.
503169689Skan
504169689Skan2001-11-15  Jason Merrill  <jason@redhat.com>
505169689Skan
506169689Skan	* method.c (use_thunk): Don't emit debugging information for thunks.
507169689Skan
508169689Skan	* parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
509169689Skan	* decl.c (make_typename_type): Handle getting a class template.
510169689Skan	* search.c (lookup_field_r): A class template is good enough for
511169689Skan	want_type.
512169689Skan
513169689Skan	* call.c (convert_like_real): Only use cp_convert for the bad part.
514169689Skan	(standard_conversion): Also allow bad int->enum.
515169689Skan	* typeck.c (ptr_reasonably_similar): Also allow functions to
516169689Skan	interconvert.  Pointers to same-size integers are reasonably
517169689Skan	similar.
518169689Skan
519169689Skan	* cvt.c (convert_to_void): If we build a new COND_EXPR, always
520169689Skan	give it void type.
521169689Skan
522169689Skan2001-11-15  Nathan Sidwell  <nathan@codesourcery.com>
523169689Skan
524169689Skan	PR g++/3154
525169689Skan	* init.c (sort_base_init): Remove unreachable code.
526169689Skan	(expand_member_init): Adjust comment to reflect reality. Simplify
527169689Skan	and remove unreachable code.
528169689Skan
529169689Skan2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
530169689Skan
531169689Skan	* cp-tree.h (init_reswords, cxx_init_decl_processing): New.
532169689Skan	(cxx_init): Update prototype.
533169689Skan	* decl.c (init_decl_processing): Rename.  Move null node init
534169689Skan	to its creation time.
535169689Skan	* lex.c (cxx_init_options): Update.
536169689Skan	(cxx_init): Combine with old init_parse; also call
537169689Skan	cxx_init_decl_processing.
538169689Skan
539169689Skan2001-11-14  Richard Sandiford  <rsandifo@redhat.com>
540169689Skan
541169689Skan	* decl.c (check_initializer): Try to complete the type of an
542169689Skan	array element before checking whether it's complete.  Don't
543169689Skan	complain about arrays with complete element types but an
544169689Skan	unknown size.
545169689Skan	(cp_finish_decl): Build the hierarchical constructor before
546169689Skan	calling maybe_deduce_size_from_array_init.
547169689Skan
548169689Skan2001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
549169689Skan
550169689Skan	* Make-lang.in: Change all uses of $(manext) to $(man1ext).
551169689Skan
552169689Skan2001-11-13  Nathan Sidwell  <nathan@codesourcery.com>
553169689Skan
554169689Skan	PR g++/4206
555169689Skan	* parse.y (already_scoped_stmt): Remove.
556169689Skan	(simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
557169689Skan
558169689Skan2001-11-12  H.J. Lu <hjl@gnu.org>
559169689Skan
560169689Skan	* cvt.c (ocp_convert): Don't warn the address of a weak
561169689Skan	function is always `true'.
562169689Skan
563169689Skan2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
564169689Skan
565169689Skan	* cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
566169689Skan	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
567169689Skan	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
568169689Skan	* cp-tree.h (print_class_statistics): Remove.
569169689Skan	(cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
570169689Skan	cxx_print_identifier, cxx_set_yydebug): New.
571169689Skan	* lex.c (set_yydebug): Rename c_set_yydebug.
572169689Skan	* ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
573169689Skan	lang_print_xnode): Rename.
574169689Skan	* tree.c (print_lang_statistics): Rename.
575169689Skan
576169689Skan2001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
577169689Skan
578169689Skan	* class.c (dump_array): Fix format specifier warning.
579169689Skan
580169689Skan2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
581169689Skan
582169689Skan	* cp-lang.c (LANG_HOOKS_NAME): Override.
583169689Skan	(struct lang_hooks): Constify.
584169689Skan	* lex.c (cxx_init_options): Update.
585169689Skan	(lang_identify): Remove.
586169689Skan	* parse.y (language_string): Remove.
587169689Skan
588169689Skan2001-11-08  Andreas Franck  <afranck@gmx.de>
589169689Skan
590169689Skan	* Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
591169689Skan	DEMANGLER_CROSS_NAME): Handle program_transform_name the way
592169689Skan	suggested by autoconf.
593169689Skan	(GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
594169689Skan	(c++.install-common): Use the transformed target alias names.
595169689Skan
596169689Skan2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
597169689Skan
598169689Skan	* Make-lang.in: Update.
599169689Skan	* cp-lang.c: Include langhooks-def.h.
600169689Skan
601169689Skan2001-11-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
602169689Skan
603169689Skan	* pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
604169689Skan
605169689Skan2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
606169689Skan
607169689Skan	* lex.c (copy_lang_type): Add static prototype.
608169689Skan
609169689Skan2001-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
610169689Skan
611169689Skan	* pt.c (unify): Handle SCOPE_REF.
612169689Skan
613169689Skan2001-11-01  Jakub Jelinek  <jakub@redhat.com>
614169689Skan
615169689Skan	* tree.c (cp_copy_res_decl_for_inlining): Adjust
616169689Skan	DECL_ABSTRACT_ORIGIN for the return variable.
617169689Skan
618169689Skan2001-10-31  Zack Weinberg  <zack@codesourcery.com>
619169689Skan
620169689Skan	*  Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
621169689Skan
622169689Skan2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
623169689Skan
624169689Skan	* ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
625169689Skan	semantics.c, spew.c: Fix spelling errors.
626169689Skan
627169689Skan2001-10-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
628169689Skan
629169689Skan	* decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
630169689Skan
631169689Skan2001-10-25  Zack Weinberg  <zack@codesourcery.com>
632169689Skan
633169689Skan	* cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
634169689Skan	pop_everything.
635169689Skan
636169689Skan2001-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
637169689Skan
638169689Skan	* cp-lang.c (cxx_get_alias_set): New function.
639169689Skan	Point LANG_HOOKS_GET_ALIAS_SET to it.
640169689Skan
641169689Skan2001-10-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
642169689Skan
643169689Skan	* cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
644169689Skan	* cp-tree.h (make_unbound_class_template): Prototype new function.
645169689Skan	* decl.c (make_unbound_class_template): New function.
646169689Skan	* decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
647169689Skan	* error.c (dump_type): Likewise.
648169689Skan	* mangle.c (write_type): Likewise.
649169689Skan	* parse.y (template_parm): Likewise.
650169689Skan	(template_argument): Use make_unbound_class_template.
651169689Skan	* pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
652169689Skan	(tsubst): Likewise.
653169689Skan	(tsubst_copy): Likewise.
654169689Skan	(unify): Likewise.
655169689Skan	* tree.c (walk_tree): Likewise.
656169689Skan	* typeck.c (comptypes): Likewise.
657169689Skan
658169689Skan2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
659169689Skan
660169689Skan	* xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
661169689Skan	extra calls into fewer ones.
662169689Skan
663169689Skan2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
664169689Skan
665169689Skan	* decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
666169689Skan	Warn when merging inline with attribute noinline.
667169689Skan	(start_decl, start_function): Warn if inline and attribute
668169689Skan	noinline appear in the same declaration.
669169689Skan
670169689Skan2001-10-16  H.J. Lu <hjl@gnu.org>
671169689Skan
672169689Skan	* cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
673169689Skan	for tree checking disabled.
674169689Skan
675169689Skan2001-10-16  Hans-Peter Nilsson  <hp@axis.com>
676169689Skan
677169689Skan	* cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
678169689Skan	NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
679169689Skan
680169689Skan2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
681169689Skan
682169689Skan	* pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
683169689Skan	(unify): Only handle MINUS_EXPR specially if the above flag is set
684169689Skan	and the subtracted constant is 1.  Clear the flag on recursive calls.
685169689Skan	Set it when unifying the maximum value in an INTEGER_TYPE's range.
686169689Skan
687169689Skan2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
688169689Skan
689169689Skan	* decl.c (bad_specifiers): Don't allow exception specifications
690169689Skan	on any typedefs.
691169689Skan
692169689Skan2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
693169689Skan
694169689Skan	* cp/lex.c (init_cp_pragma): Similarly.
695169689Skan
696169689Skan2001-10-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
697169689Skan
698169689Skan	* pt.c (lookup_template_class): Build complete template arguments
699169689Skan	for BOUND_TEMPLATE_TEMPLATE_PARM.
700169689Skan
701169689Skan2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
702169689Skan
703169689Skan	* cp-tree.h (TYPE_BINFO): Update comment.
704169689Skan	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
705169689Skan	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
706169689Skan	(TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
707169689Skan	(copy_type): Prototype new function.
708169689Skan	* lex.c (copy_lang_decl): Gather tree node statistics.
709169689Skan	(copy_lang_type): New function.
710169689Skan	(copy_type): Likewise.
711169689Skan	(cp_make_lang_type): Create lang_type for
712169689Skan	BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
713169689Skan	and BOUND_TEMPLATE_TEMPLATE_PARM.
714169689Skan	* pt.c (tsubst): Use copy_type instead of copy_node.
715169689Skan	* search.c (lookup_field_1): Ignore TYPENAME_TYPE.
716169689Skan
717169689Skan2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
718169689Skan
719169689Skan	* pt.c (determine_specialization): Ignore functions without
720169689Skan	DECL_TEMPLATE_INFO.
721169689Skan
722169689Skan2001-10-12  Nathan Sidwell  <nathan@codesourcery.com>
723169689Skan
724169689Skan	PR g++/4476
725169689Skan	* typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
726169689Skan
727169689Skan2001-10-11  Jason Merrill  <jason_merrill@redhat.com>
728169689Skan
729169689Skan	* typeck2.c (store_init_value): Don't re-digest a bracketed
730169689Skan	initializer.
731169689Skan
732169689Skan	* class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
733169689Skan	ANON_AGGR_TYPE_P.
734169689Skan
735169689Skan2001-10-11  Richard Henderson  <rth@redhat.com>
736169689Skan
737169689Skan	* class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
738169689Skan	of an asm statement.
739169689Skan	(build_vtbl_ref_1): Split out from build_vtbl_ref.
740169689Skan	(build_vfn_ref): Use it to handle vtable descriptors before
741169689Skan	calling build_vtable_entry_ref.
742169689Skan	* decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
743169689Skan
744169689Skan2001-10-10  Richard Henderson  <rth@redhat.com>
745169689Skan
746169689Skan	* parse.y (asm_operand): Allow named operands.
747169689Skan	* semantics.c (finish_asm_stmt): Tweek for changed location
748169689Skan	of the operand constraint.
749169689Skan
750169689Skan2001-10-09  Jason Merrill  <jason_merrill@redhat.com>
751169689Skan
752169689Skan	* call.c (standard_conversion): Add bad conversion between
753169689Skan	integers and pointers.
754169689Skan	(convert_like_real): Don't use convert_for_initialization for bad
755169689Skan	conversions; complain here and use cp_convert.
756169689Skan	(build_over_call): Don't handle bad conversions specially.
757169689Skan	(perform_implicit_conversion): Allow bad conversions.
758169689Skan	(can_convert_arg_bad): New fn.
759169689Skan	* cp-tree.h: Declare it.
760169689Skan	* typeck.c (convert_for_assignment): Use it.
761169689Skan	(ptr_reasonably_similar): Any target type is similar to void.
762169689Skan
763169689Skan2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
764169689Skan
765169689Skan	* Make-lang.in (CXX_OBJS): Added cp-lang.o.
766169689Skan	(cp/cp-lang.o): New rule.
767169689Skan	* cp-tree.h: Declare hooks.
768169689Skan	* tree.c: Make hooks non-static.
769169689Skan	(init_tree): Don't initialize hooks here.
770169689Skan	* lex.c: Likewise.  Move definition of lang_hooks to...
771169689Skan	* cp-lang.c: ... new file.
772169689Skan
773169689Skan2001-10-08  Richard Henderson  <rth@redhat.com>
774169689Skan
775169689Skan	* cp-tree.h (struct lang_decl_flags): Remove declared_inline.
776169689Skan	(DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
777169689Skan
778169689Skan2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
779169689Skan
780169689Skan	* class.c (build_vtable_entry_ref): Const-ify.
781169689Skan	* decl.c (predefined_identifier,
782169689Skan	initialize_predefined_identifiers): Likewise.
783169689Skan	* init.c (build_new_1): Likewise.
784169689Skan	* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
785169689Skan	Likewise.
786169689Skan
787169689Skan2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
788169689Skan
789169689Skan	* optimize.c (struct inline_data): Moved to ../tree-inline.c.
790169689Skan	(INSNS_PER_STMT): Likewise.
791169689Skan	(remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
792169689Skan	(copy_body, initialize_inlined_parameters): Likewise.
793169689Skan	(declare_return_variable, inlinable_function_p): Likewise.
794169689Skan	(expand_call_inline, expand_calls_inline): Likewise.
795169689Skan	(optimize_inline_calls, clone_body): Likewise.
796169689Skan	* tree.c (walk_tree): Moved to ../tree-inline.c.
797169689Skan	(walk_tree_without_duplicates): Likewise.
798169689Skan	(copy_tree_r, remap_save_expr): Likewise.
799169689Skan
800169689Skan2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
801169689Skan
802169689Skan	* Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
803169689Skan	(cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
804169689Skan	* cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
805169689Skan	(TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
806169689Skan	(flag_inline_trees): Moved declaration to ../tree-inline.h.
807169689Skan	(walk_tree): Moved declaration to ../tree-inline.h.
808169689Skan	(walk_tree_without_duplicates, copy_tree_r): Likewise.
809169689Skan	(remap_save_expr): Likewise.
810169689Skan	* decl.c: Include tree-inline.h.
811169689Skan	(lang_mark_tree): Don't mark inlined_fns.
812169689Skan	* decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
813169689Skan	* optimize.c: Include tree-inline.h.
814169689Skan	(optimize_inline_calls): Move declaration to ../tree.h, as
815169689Skan	non-static.
816169689Skan	(remap_decl): Use language-independent constructs and hooks.
817169689Skan	(remap_block, copy_body_r, declare_return_variable): Likewise.
818169689Skan	(inlinable_function_p): Likewise.  Don't test for
819169689Skan	DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
820169689Skan	no longer language-specific.
821169689Skan	(optimize_inline_calls): Likewise.  Make it non-static.  Moved
822169689Skan	call of dump_function to...
823169689Skan	(optimize_function): Here...
824169689Skan	(clone_body): New function, extracted from...
825169689Skan	(maybe_clone_body): ... here.  Build decl_map locally and pass
826169689Skan	it on to clone_body.
827169689Skan	* pt.c, semantics.c: Include tree-inline.h.
828169689Skan	* tree.c: Likewise.
829169689Skan	(cp_walk_subtrees): New language-specific hook for tree inlining.
830169689Skan	(cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
831169689Skan	cp_is_overload_p, cp_auto_var_in_fn_p,
832169689Skan	cp_copy_res_decl_for_inlining): Likewise.
833169689Skan	(walk_tree): Move language-specific constructs into...
834169689Skan	(cp_walk_subtrees): this new function.
835169689Skan	(copy_tree_r): Use language-independent constructs and hooks.
836169689Skan	(init_tree): Initialize tree inlining hooks.
837169689Skan	(remap_save_expr): Adjust prototype so that the declaration
838169689Skan	does not require the definition of splay_tree.
839169689Skan
840169689Skan2001-10-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
841169689Skan
842169689Skan	* rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
843169689Skan	to build the declaration instead of the declaration itself.
844169689Skan
845169689Skan2001-10-02  Jason Merrill  <jason_merrill@redhat.com>
846169689Skan
847169689Skan	* decl2.c (cxx_decode_option): Add 'else'.
848169689Skan
849169689Skan	* spew.c (end_input): No longer static.
850169689Skan	* cp-tree.h: Declare it.
851169689Skan	* parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
852169689Skan
853169689Skan2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
854169689Skan
855169689Skan	* call.c (build_over_call), typeck.c (build_function_call_real):
856169689Skan	Pass type attributes to check_function_format rather than name or
857169689Skan	assembler name.  Don't require there to be a name or assembler
858169689Skan	name to check formats.
859169689Skan
860169689Skan2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
861169689Skan
862169689Skan	* decl.c (init_decl_processing): Don't call
863169689Skan	init_function_format_info.  Initialize lang_attribute_table
864169689Skan	earlier.
865169689Skan	(builtin_function): Call decl_attributes.
866169689Skan	(insert_default_attributes): New.
867169689Skan
868169689Skan2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
869169689Skan
870169689Skan	* decl.c (grokdeclarator): Copy array typedef handling from C
871169689Skan	frontend.
872169689Skan
873169689Skan	* decl.c (grokdeclarator): Copy too-large array handling from C
874169689Skan	frontend.
875169689Skan
876169689Skan2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
877169689Skan
878169689Skan	* config-lang.in (target_libs): Added target-gperf, so that we
879169689Skan	don't try to build it if C++ is disabled.
880169689Skan
881169689Skan2001-09-23  Zack Weinberg  <zack@codesourcery.com>
882169689Skan
883169689Skan	* Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
884169689Skan	(cp/errfn.o): Delete rule.
885169689Skan	(cp/error.o): Depend on flags.h.
886169689Skan	* errfn.c: Delete file.
887169689Skan	* cp-tree.h: Declare warn_deprecated.  Remove definitions of
888169689Skan	TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
889169689Skan	and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
890169689Skan	cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
891169689Skan	internal_error respectively.  Make cp_deprecated into a macro.
892169689Skan	Don't define cp_printer typedef or declare cp_printers.
893169689Skan	* error.c: Include flags.h.
894169689Skan	Delete: struct tree_formatting_info, print_function_argument_list,
895169689Skan	print_declaration, print_expression, print_function_declaration,
896169689Skan	print_function_parameter, print_type_id, print_cv_qualifier_seq,
897169689Skan	print_type_specifier_seq, print_simple_type_specifier,
898169689Skan	print_elaborated_type_specifier, print_rest_of_abstract_declarator,
899169689Skan	print_parameter_declaration_clause, print_exception_specification,
900169689Skan	print_nested_name_specifier, and definition of cp_printers.
901169689Skan	(locate_error): New function.
902169689Skan	(cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
903169689Skan	rewritten in terms of locate_error and diagnostic.c.
904169689Skan	(cp_tree_printer): Rename cp_printer; wire up to *_to_string
905169689Skan	instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
906169689Skan	(init_error): Adjust to match.
907169689Skan
908169689Skan2001-09-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
909169689Skan
910169689Skan	* Make-lang.in (CXX_C_OBJS): Add attribs.o.
911169689Skan
912169689Skan2001-09-21  Richard Henderson  <rth@redhat.com>
913169689Skan
914169689Skan	* class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
915169689Skan	(build_vtbl_initializer): Likewise.
916169689Skan	(build_vfn_ref): New.
917169689Skan	* cp-tree.h: Declare it.
918169689Skan	* call.c (build_over_call): Use it.
919169689Skan	* decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
920169689Skan	* typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
921169689Skan
922169689Skan2001-09-21  J"orn Rennecke <amylaar@redhat.com>
923169689Skan
924169689Skan	* decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
925169689Skan
926169689Skan2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
927169689Skan
928169689Skan	Table-driven attributes.
929169689Skan	* decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
930169689Skan	* decl2.c (cplus_decl_attributes): Only take one attributes
931169689Skan	parameter.
932169689Skan	* cp-tree.c (cplus_decl_attributes): Update prototype.
933169689Skan	* class.c (finish_struct), decl.c (start_decl, start_function),
934169689Skan	decl2.c (grokfield), friend.c (do_friend), parse.y
935169689Skan	(parse_bitfield): Update calls to cplus_decl_attributes.
936169689Skan	* decl.c (grokdeclarator): Take a pointer to a single ordinary
937169689Skan	attribute list.
938169689Skan	* decl.h (grokdeclarator): Update prototype.
939169689Skan	* decl2.c (grokfield): Take a single ordinary attribute list.
940169689Skan	* friend.c (do_friend): Likewise.
941169689Skan	* decl.c (shadow_tag, groktypename, start_decl,
942169689Skan	start_handler_parms, grokdeclarator, grokparms, start_function,
943169689Skan	start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
944169689Skan	parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
945169689Skan	(process_template_parm, do_decl_instantiation): Pass single
946169689Skan	ordinary attribute lists around.
947169689Skan	* decl.c (grokdeclarator): Correct handling of nested attributes.
948169689Skan	Revert the patch
949169689Skan	1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
950169689Skan		* decl.c (grokdeclarator): Embedded attrs bind to the right,
951169689Skan		not the left.
952169689Skan	.
953169689Skan	* cp-tree.h (cp_valid_lang_attribute): Remove declaration
954169689Skan	(cp_attribute_table): Declare.
955169689Skan	* decl.c (valid_lang_attribute): Don't define.
956169689Skan	(lang_attribute_table): Define.
957169689Skan	(init_decl_processing): Initialize lang_attribute_table instead of
958169689Skan	valid_lang_attribute.
959169689Skan	* tree.c (cp_valid_lang_attribute): Remove.
960169689Skan	(handle_java_interface_attribute, handle_com_interface_attribute,
961169689Skan	handle_init_priority_attribute): New functions.
962169689Skan	(cp_attribute_table): New array.
963169689Skan	* decl2.c (import_export_class): Don't use
964169689Skan	targetm.valid_type_attribute.
965169689Skan
966169689Skan2001-09-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
967169689Skan
968169689Skan	* Make-lang.in (cp/error.o): Depend on real.h
969169689Skan	* error.c: #include "real.h"
970169689Skan
971169689Skan2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
972169689Skan
973169689Skan	* mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
974169689Skan	xmalloc/strcpy/strcat.
975169689Skan
976169689Skan2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
977169689Skan
978169689Skan	* decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
979169689Skan	Const-ification.
980169689Skan	* pt.c (tsubst_decl): Likewise.
981169689Skan
982169689Skan2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
983169689Skan
984169689Skan	* decl2.c (lang_f_options): Const-ification.
985169689Skan	* lex.c (cplus_tree_code_name): Likewise.
986169689Skan	* spew.c (yyerror): Likewise.
987169689Skan
988169689Skan2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
989169689Skan
990169689Skan	PR c++/3986
991169689Skan	* class.c (force_canonical_binfo_r): Check & move an indirect
992169689Skan	primary base first.
993169689Skan	(force_canonical_binfo): Check that it's not already
994169689Skan	canonical.
995169689Skan	(mark_primary_virtual_base): Remove BINFO parameter.
996169689Skan	(mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
997169689Skan
998169689Skan2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
999169689Skan
1000169689Skan	Remove TYPE_NONCOPIED_PARTS.
1001169689Skan	* cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
1002169689Skan	CLASSTYPE_PURE_VIRTUALS.
1003169689Skan	(TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
1004169689Skan	* class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
1005169689Skan	(layout_class_type): Don't call fixup_inline_methods here ...
1006169689Skan	(finish_struct_1): ... call it here.
1007169689Skan
1008169689Skan2001-09-04  Mark Mitchell  <mark@codesourcery.com>
1009169689Skan
1010169689Skan	* decl.c (duplicate_decls): Remove code deadling with
1011169689Skan	DECL_SAVED_INSNS.
1012169689Skan	* decl2.c (finish_file): Likewise.
1013169689Skan	* pt.c (instantiate_decl): Likewise.
1014169689Skan	* semantics.c (expand_body): Don't defer local functions if
1015169689Skan	they wouldn't be deferred for some other reason.  Don't
1016169689Skan	generate RTL for functions that will not be emitted.
1017169689Skan	(genrtl_start_function): Remove code deadling with
1018169689Skan	DECL_SAVED_INSNS.
1019169689Skan	(genrtl_finish_function): Likewise.
1020169689Skan
1021169689Skan2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
1022169689Skan
1023169689Skan	PR c++/4203
1024169689Skan	* call.c (build_over_call): Do not optimize any empty base
1025169689Skan	construction.
1026169689Skan
1027169689Skan2001-08-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1028169689Skan
1029169689Skan	* error.c (dump_template_decl): Output template parameters
1030169689Skan	together with their specifiers.
1031169689Skan	Output `class' prefix for template template parameter.
1032169689Skan	(dump_decl): Fix formatting.
1033169689Skan
1034169689Skan2001-08-30  Kurt Garloff  <garloff@suse.de>
1035169689Skan
1036169689Skan	* optimize.c (inlinable_function_p): Allow only smaller single
1037169689Skan	functions. Halve inline limit after reaching recursive limit.
1038169689Skan
1039169689Skan2001-08-30  Joern Rennecke <amylaar@redhat.com>
1040169689Skan	    Jason Merrill  <jason_merrill@redhat.com>
1041169689Skan
1042169689Skan	* class.c (build_vtable_entry_ref): Subtract in char*, not
1043169689Skan	ptrdiff_t.
1044169689Skan
1045169689Skan2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
1046169689Skan
1047169689Skan	* tree.c (cp_build_qualified_type_real): Use get_qualified_type.
1048169689Skan	(build_cplus_array_type): Use cp_build_qualified_type, not
1049169689Skan	TYPE_MAIN_VARIANT, to get an unqualified version.
1050169689Skan
1051169689Skan	* decl2.c (grok_alignof): Lose.
1052169689Skan	(build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
1053169689Skan	* typeck.c (c_alignof): Lose.
1054169689Skan	* semantics.c (finish_sizeof, finish_alignof): New.
1055169689Skan	* parse.y: Use them.
1056169689Skan	* cp-tree.h: Declare them.
1057169689Skan
1058169689Skan2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
1059169689Skan
1060169689Skan	* pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
1061169689Skan	Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
1062169689Skan	* tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
1063169689Skan
1064169689Skan2001-08-19  Jakub Jelinek  <jakub@redhat.com>
1065169689Skan
1066169689Skan	* typeck2.c (add_exception_specifier): Only require complete type if
1067169689Skan	not in processing template declaration.
1068169689Skan
1069169689Skan2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1070169689Skan
1071169689Skan	* decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
1072169689Skan	GNU_xref_start_scope and GNU_xref_end_scope.
1073169689Skan
1074169689Skan	* tree.c (TYPE_HASH): Moved to ../tree.h.
1075169689Skan
1076169689Skan2001-08-16  Mark Mitchell  <mark@codesourcery.com>
1077169689Skan
1078169689Skan	* cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
1079169689Skan	on COMPOUND_EXPRs.
1080169689Skan
1081169689Skan2001-08-14  Richard Henderson  <rth@redhat.com>
1082169689Skan
1083169689Skan	* class.c, cp-tree.h (build_vfn_ref): Remove.
1084169689Skan	* call.c, rtti.c: Replace all refernces with build_vtbl_ref.
1085169689Skan
1086169689Skan2001-08-13  Mark Mitchell  <mark@codesourcery.com>
1087169689Skan
1088169689Skan	* call.c (build_over_call): Mark COMPOUND_EXPRs generated for
1089169689Skan	empty class assignment as having side-effects to avoid
1090169689Skan	spurious warnings.
1091169689Skan
1092169689Skan2001-08-13  Zack Weinberg  <zackw@panix.com>
1093169689Skan
1094169689Skan	* Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
1095169689Skan	* except.c: Include libfuncs.h.
1096169689Skan
1097169689Skan2001-08-11  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1098169689Skan
1099169689Skan	* decl.c (grokdeclarator): Clarify diagnostic message.
1100169689Skan
1101169689Skan2001-08-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1102169689Skan
1103169689Skan	* decl2.c (do_nonmember_using_decl): Replace using directive
1104169689Skan	with using declaration in the error message.
1105169689Skan
1106169689Skan2001-08-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1107169689Skan
1108169689Skan	* pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
1109169689Skan	criterion to avoid rebuilding expression tree instead of
1110169689Skan	processing_template_decl.
1111169689Skan
1112169689Skan2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
1113169689Skan
1114169689Skan	Support named return value optimization for inlines, too.
1115169689Skan	* decl.c (finish_function): Nullify returns here.
1116169689Skan	* semantics.c (genrtl_start_function): Not here.
1117169689Skan	(cp_expand_stmt): Don't mess with CLEANUP_STMTs.
1118169689Skan	(nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
1119169689Skan	Also nullify the CLEANUP_STMT for the nrv.
1120169689Skan	* cp-tree.h: Declare it.
1121169689Skan	* optimize.c (declare_return_variable): Replace the nrv with the
1122169689Skan	return variable.
1123169689Skan	* typeck.c (check_return_expr): Be more flexible on alignment check.
1124169689Skan	Ignore cv-quals when checking for a matching type.
1125169689Skan
1126169689Skan2001-08-09  Richard Henderson  <rth@redhat.com>
1127169689Skan
1128169689Skan	* decl2.c (finish_objects): Use target hooks instead of
1129169689Skan	assemble_constructor and assemble_destructor.
1130169689Skan
1131169689Skan2001-08-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1132169689Skan
1133169689Skan	* g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
1134169689Skan
1135169689Skan2001-08-07  Nathan Sidwell  <nathan@codesourcery.com>
1136169689Skan
1137169689Skan	PR c++/3820
1138169689Skan	Stop using TYPE_NONCOPIED_PARTS.
1139169689Skan	* call.c (build_over_call): Be careful when copy constructing
1140169689Skan	or assigning to an empty class.
1141169689Skan	* class.c (check_bases_and_members): It has a
1142169689Skan	COMPLEX_ASSIGN_REF if it has a vptr.
1143169689Skan	(layout_class_type): Don't add empty class padding to
1144169689Skan	TYPE_NONCOPIED_PARTS.
1145169689Skan	(finish_struct_1): Don't add the VFIELD either.
1146169689Skan	* cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
1147169689Skan	initialization.
1148169689Skan
1149169689Skan2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
1150169689Skan
1151169689Skan	* tree.c (walk_tree): Walk siblings even if !walk_subtrees.
1152169689Skan
1153169689Skan2001-08-06  Richard Henderson  <rth@redhat.com>
1154169689Skan
1155169689Skan	* decl2.c (finish_objects): Pass a symbol_ref and priority to
1156169689Skan	assemble_{constructor,destructor}.  Remove priority handling.
1157169689Skan
1158169689Skan2001-08-05  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1159169689Skan
1160169689Skan	Don't allow template-id in using-declaration.
1161169689Skan	* decl2.c (validate_nonmember_using_decl): Handle template-ids.
1162169689Skan	(do_class_using_decl): Likewise.
1163169689Skan
1164169689Skan2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1165169689Skan
1166169689Skan	* cp/spew.c (read_token): No need to pop buffers.
1167169689Skan
1168169689Skan2001-08-02  Stan Shebs  <shebs@apple.com>
1169169689Skan
1170169689Skan	* cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
1171169689Skan	(fnaddr_from_vtable_entry): Remove decl.
1172169689Skan	* method.c (use_thunk): Update comment.
1173169689Skan
1174169689Skan2001-08-01  Andrew Cagney  <ac131313@redhat.com>
1175169689Skan
1176169689Skan	* repo.c (get_base_filename): Change return value to const char
1177169689Skan	pointer.
1178169689Skan
1179169689Skan2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
1180169689Skan
1181169689Skan	Kill -fhonor-std.
1182169689Skan	* NEWS: Document.
1183169689Skan	* cp-tree.h (flag_honor_std): Remove.
1184169689Skan	(CPTI_FAKE_STD): Remove.
1185169689Skan	(std_node): Remove comment about it being NULL.
1186169689Skan	(fake_std_node): Remove.
1187169689Skan	* decl.c (in_fake_std): Remove.
1188169689Skan	(walk_namespaces_r): Remove fake_std_node check.
1189169689Skan	(push_namespace): Remove in_fake_std code.
1190169689Skan	(pop_namespace): Likewise.
1191169689Skan	(lookup_name_real): Remove fake_std_node check.
1192169689Skan	(init_decl_processing): Always create std_node. Always add
1193169689Skan	std:: things there.
1194169689Skan	(builtin_function): Always put non '_' fns in std.
1195169689Skan	* decl2.c (flag_honor_std): Remove.
1196169689Skan	(lang_f_options): Remove honor-std.
1197169689Skan	(unsupported_options): Add honor-std.
1198169689Skan	(set_decl_namespace): Remove fake_std_node check.
1199169689Skan	(validate_nonmember_using_decl): Likewise.
1200169689Skan	(do_using_directive): Likewise.
1201169689Skan	(handle_class_head): Likewise.
1202169689Skan	* dump.c (cp_dump_tree): Likewise.
1203169689Skan	* except.c (init_exception_processing): Adjust.
1204169689Skan	* init.c (build_member_call): Remove fake_std_node check.
1205169689Skan	(build_offset_ref): Likewise.
1206169689Skan	* lang-options.h: Remove -fhonor-std, -fno-honor-std.
1207169689Skan	* rtti.c (init_rtti_processing): Adjust.
1208169689Skan
1209169689Skan2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
1210169689Skan
1211169689Skan	* tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
1212169689Skan	operand while calling cp_tree_equal.
1213169689Skan
1214169689Skan2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
1215169689Skan
1216169689Skan	The 3.0 ABI no longer has vbase pointer fields.
1217169689Skan	* cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
1218169689Skan	FORMAT_VBASE_NAME): Remove.
1219169689Skan	* method.c (do_build_copy_constructor): Adjust.
1220169689Skan	(do_build_assign_ref): Adjust.
1221169689Skan	* search.c (lookup_field_r): Adjust.
1222169689Skan	* typeck.c (build_component_ref): Adjust.
1223169689Skan
1224169689Skan	The 3.0 ABI always has a vtable pointer at the start of every
1225169689Skan	polymorphic class.
1226169689Skan	* rtti.c (build_headof_sub): Remove.
1227169689Skan	(build_headof): Adjust.
1228169689Skan	(get_tinfo_decl_dynamic): No need to check flag_rtti
1229169689Skan	here. Adjust.
1230169689Skan	(create_real_tinfo_var): Explain why we need a hidden name.
1231169689Skan
1232169689Skan2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
1233169689Skan
1234169689Skan	PR c++/3631
1235169689Skan	* class.c (update_vtable_entry_for_fn): The fixed adjustment
1236169689Skan	of a virtual thunk should be from declaring base.
1237169689Skan
1238169689Skan2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
1239169689Skan
1240169689Skan	* class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
1241169689Skan	the shared virtual base, so preserving inheritance graph order.
1242169689Skan
1243169689Skan2001-07-30  Andreas Jaeger  <aj@suse.de>
1244169689Skan
1245169689Skan	* decl2.c: Remove unused var global_temp_name_counter.
1246169689Skan
1247169689Skan2001-07-28  Richard Henderson  <rth@redhat.com>
1248169689Skan
1249169689Skan	* method.c (pending_inlines): Remove.
1250169689Skan
1251169689Skan2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
1252169689Skan
1253169689Skan	* class.c (mark_primary_virtual_base): Don't adjust base
1254169689Skan	offsets here.
1255169689Skan	(dfs_unshared_virtual_bases): Adjust them here.
1256169689Skan	(mark_primary_bases): Explain why we adjust at the end.
1257169689Skan
1258169689Skan2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
1259169689Skan
1260169689Skan	* class.c (finish_struct_1): When copying the primary base's
1261169689Skan	VFIELD, make sure we find it is at offset zero.
1262169689Skan
1263169689Skan2001-07-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1264169689Skan
1265169689Skan	* pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
1266169689Skan	tsubst_expr for default template arguments.
1267169689Skan
1268169689Skan2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
1269169689Skan
1270169689Skan	PR c++/3621
1271169689Skan	* spew.c (yylex): Only copy the token's lineno, if it is
1272169689Skan	nonzero.
1273169689Skan
1274169689Skan2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
1275169689Skan
1276169689Skan	PR c++/3624
1277169689Skan	* call.c (resolve_args): Simplify, call
1278169689Skan	convert_from_reference.
1279169689Skan	(build_new_op): Resolve and convert from reference ARG1
1280169689Skan	earlier. Adjust ARG2 & ARG3 resolve and conversion.
1281169689Skan
1282169689Skan2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
1283169689Skan
1284169689Skan	* decl.c (last_function_parm_tags): Remove.
1285169689Skan	(current_function_parm_tags): Remove.
1286169689Skan	(init_decl_processing): Adjust.
1287169689Skan	(start_function): Adjust.
1288169689Skan	(store_parm_decls): Adjust.
1289169689Skan
1290169689Skan	PR c++/3152
1291169689Skan	* decl.c (grokdeclarator): Detect when a function typedef is
1292169689Skan	declaring a function, and create last_function_parms correctly.
1293169689Skan
1294169689Skan2001-07-25  Jason Merrill  <jason_merrill@redhat.com>
1295169689Skan
1296169689Skan	* call.c (joust): Only prefer a non-builtin candidate to a builtin
1297169689Skan	one if they have the same signature.
1298169689Skan
1299169689Skan	* cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
1300169689Skan	it rather than toplevel_bindings_p.  Give it a mangled name if static.
1301169689Skan	(convert_to_reference): Adjust.
1302169689Skan	* decl2.c (get_temp_name): Lose.
1303169689Skan	* mangle.c (mangle_ref_init_variable): New fn.
1304169689Skan	(mangle_guard_variable): Strip the ref-init header.
1305169689Skan	* cp-tree.h: Adjust.
1306169689Skan	* decl.c (cp_finish_decl): Add the DECL_STMT after processing the
1307169689Skan	initializer.
1308169689Skan	(grok_reference_init): Always use DECL_INITIAL.
1309169689Skan
1310169689Skan2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1311169689Skan
1312169689Skan	PR c++/3416
1313169689Skan	* call.c (build_conditional_expr): Recheck args after
1314169689Skan	conversions.
1315169689Skan	* cp-tree.h (build_conditional_expr): Move to correct file.
1316169689Skan	* typeck.c (decay_conversion): Diagnose any unknown types
1317169689Skan	reaching here.
1318169689Skan	(build_binary_op): Don't do initial decay or default
1319169689Skan	conversions on overloaded functions.
1320169689Skan	(build_static_cast): Don't do a decay conversion here.
1321169689Skan
1322169689Skan2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1323169689Skan
1324169689Skan	PR c++/3543
1325169689Skan	* typeck.c (condition_conversion): Resolve an OFFSET_REF.
1326169689Skan	* expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
1327169689Skan
1328169689Skan2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1329169689Skan
1330169689Skan	* class.c (build_vtbl_or_vbase_field): Remove, move into ...
1331169689Skan	(create_vtbl_ptr): ... here.
1332169689Skan
1333169689Skan2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1334169689Skan
1335169689Skan	* class.c (build_vbase_offset_vbtl_entries): Look for
1336169689Skan	non-primary base of which we are a sub vtable.
1337169689Skan
1338169689Skan2001-07-24  Phil Edwards  <pme@sources.redhat.com>
1339169689Skan
1340169689Skan	* semantics.c (finish_this_expr):  Remove unused code.
1341169689Skan
1342169689Skan2001-07-24  Nathan Sidwell  <nathan@codesourcery.com>
1343169689Skan
1344169689Skan	Simplify rtti, now we've only one ABI.
1345169689Skan	* cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
1346169689Skan	CPTI_TINFO_VAR_ID.
1347169689Skan	(tinfo_decl_id, tinfo_var_id): Remove.
1348169689Skan	(get_typeid_1): Remove.
1349169689Skan	* rtti.c
1350169689Skan	(init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
1351169689Skan	(typeid_ok_p): New function.
1352169689Skan	(build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
1353169689Skan	(get_tinfo_decl): Remove old abi documentation.
1354169689Skan	(tinfo_from_decl): Remove.
1355169689Skan	(get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
1356169689Skan	(get_typeid_1): Remove.
1357169689Skan	(get_base_offset): Remove.
1358169689Skan	(synthesize_tinfo_var): Absorb get_base_offset.
1359169689Skan	(create_real_tinfo_var): Don't use tinfo_decl_id.
1360169689Skan
1361169689Skan2001-07-23  Graham Stott  <grahams@redhat.com>
1362169689Skan
1363169689Skan	* cp/class.c (type_requires_array_cookie): Fix use of uninitialized
1364169689Skan	variable has_two_argument_delete_p.
1365169689Skan
1366169689Skan2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
1367169689Skan
1368169689Skan	Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
1369169689Skan	* cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
1370169689Skan	(CPTI_INDEX_IDENTIFIER): Remove.
1371169689Skan	(CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
1372169689Skan	(delta2_identifier): Remove.
1373169689Skan	(index_identifier): Remove.
1374169689Skan	(pfn_or_delta2_identifier): Remove.
1375169689Skan	(flag_vtable_thunks): Remove.
1376169689Skan	(VTABLE_DELTA2_NAME): Remove.
1377169689Skan	(VTABLE_INDEX_NAME): Remove.
1378169689Skan	(FNADDR_FROM_VTABLE_ENTRY): Adjust.
1379169689Skan	(vfunc_ptr_type_node): Adjust.
1380169689Skan	(VTABLE_NAME_PREFIX): Adjust.
1381169689Skan	(build_vfn_ref): Lose first parameter.
1382169689Skan	(fixup_all_virtual_upcast_offsets): Remove.
1383169689Skan	* decl.c (initialize_predefined_identifiers): Remove
1384169689Skan	delta2_identifier, index_identifier, pfn_or_delta2_identifier.
1385169689Skan	(init_decl_processing): Remove no-vtable-thunk code.
1386169689Skan	* decl2.c (flag_vtable_thunks): Remove.
1387169689Skan	(mark_vtable_entries): Remove no-vtable-thunk code.
1388169689Skan	* error.c (dump_decl): Remove no-vtable-thunk code.
1389169689Skan	(dump_expr): Adjust ptr to member function code.
1390169689Skan	* init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
1391169689Skan	code.
1392169689Skan	* rtti.c (build_headof): Remove no-vtable-thunk code.
1393169689Skan	(get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
1394169689Skan	* search.c (get_base_distance): Remove expand_upcast_fixups case.
1395169689Skan	(virtual_context) Remove.
1396169689Skan	(expand_upcast_fixups): Remove.
1397169689Skan	(fixup_virtual_upcast_offsets): Remove.
1398169689Skan	(fixup_all_virtual_upcast_offsets): Remove.
1399169689Skan	* typeck.c (get_member_function_from_ptrfunc): Remove
1400169689Skan	no-vtable-thunk code.
1401169689Skan	* call.c (build_over_call): Adjust call to build_vfn_ref.
1402169689Skan	* class.c (build_vfn_ref): Lose first parameter. Remove
1403169689Skan	no-vtable-thunk code.
1404169689Skan	(build_rtti_vtbl_entries): Remove no-vtable-thunk code.
1405169689Skan	(build_vtable_entry): Remove no-vtable-thunk code.
1406169689Skan
1407169689Skan2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
1408169689Skan
1409169689Skan	Remove old-abi remnants. Remove comments about old abi
1410169689Skan	behavior. Remove references to 'new-abi' in comments.
1411169689Skan	* cp-tree.h: Adjust comments.
1412169689Skan	(vbase_offsets_in_vtable_p): Delete.
1413169689Skan	(vcall_offsets_in_vtable_p): Delete.
1414169689Skan	(vptrs_present_everywhere_p): Delete.
1415169689Skan	(all_overridden_vfuns_in_vtables_p): Delete.
1416169689Skan	(merge_primary_and_secondary_vtables_p): Delete.
1417169689Skan	(TYPE_CONTAINS_VPTR_P): Adjust.
1418169689Skan	(VTT_NAME_PREFIX): Remove.
1419169689Skan	(CTOR_VTBL_NAME_PREFIX): Remove.
1420169689Skan	(init_vbase_pointers): Remove.
1421169689Skan	* class.c: Adjust coments.
1422169689Skan	(build_vbase_pointer_fields): Delete.
1423169689Skan	(build_vbase_pointer): Remove old-abi code.
1424169689Skan	(build_secondary_vtable): Likewise.
1425169689Skan	(modify_all_vtables): Likewise.
1426169689Skan	(create_vtable_ptr): Likewise.
1427169689Skan	(layout_class_type): Likewise.
1428169689Skan	(finish_struct_1): Likewise.
1429169689Skan	(finish_vtbls): Likewise.
1430169689Skan	(dfs_finish_vtbls): Delete.
1431169689Skan	(build_vbase_offset_vtbl_entries): Remove old-abi code.
1432169689Skan	* cvt.c: Adjust comments.
1433169689Skan	* decl.c: Adjust comments.
1434169689Skan	* decl2.c: Adjust comments.
1435169689Skan	* init.c: Adjust comments.
1436169689Skan	(construct_virtual_bases): Remove old-abi code.
1437169689Skan	* lang-specs.h: Remove -fno-new-abi.
1438169689Skan	* mangle.c: Adjust comments.
1439169689Skan	* rtti.c: Adjust comments.
1440169689Skan	(get_base_offset): Remove old-abi-code.
1441169689Skan	* search.c: Adjust comments.
1442169689Skan	(dfs_init_vbase_pointers): Remove.
1443169689Skan	(dfs_vtable_path_unmark): Remove.
1444169689Skan	(init_vbase_pointers): Remove.
1445169689Skan	* semantics.c: Adjust comments.
1446169689Skan	(emit_associated_thunks): Remove old-abi code.
1447169689Skan	* typeck.c: Adjust comments.
1448169689Skan
1449169689Skan2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
1450169689Skan
1451169689Skan	* Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
1452169689Skan	params.h.
1453169689Skan
1454169689Skan2001-07-19  Mark Mitchell  <mark@codesourcery.com>
1455169689Skan
1456169689Skan	* class.c (finish_struct_anon): Forbid nested classes.
1457169689Skan
1458169689Skan2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1459169689Skan
1460169689Skan	* decl2.c: Don't include dwarfout.h and dwarf2out.h.
1461169689Skan	* optimize.c: Include debug.h.
1462169689Skan	(maybe_clone_body): Use debug hook.
1463169689Skan	* semantics.c: Include debug.h.
1464169689Skan	(expand_body): Use debug hook.
1465169689Skan
1466169689Skan2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1467169689Skan
1468169689Skan	* spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
1469169689Skan
1470169689Skan2001-07-18  Mark Mitchell  <mark@codesourcery.com>
1471169689Skan
1472169689Skan	* class.c (type_requires_array_cookie): New function.
1473169689Skan	(check_methods): Don't try to figure out whether the type needs a
1474169689Skan	cookie here.
1475169689Skan	(check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
1476169689Skan	* cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
1477169689Skan	(TYPE_VEC_NEW_USES_COOKIE): Reimplement.
1478169689Skan	* pt.c (instantiate_class_template): Don't set
1479169689Skan	TYPE_VEC_DELETE_TAKES_SIZE.
1480169689Skan	* NEWS: Document ABI changes from GCC 3.0.
1481169689Skan
1482169689Skan2001-07-18  Xavier Delacour <xavier@fmaudio.net>,
1483169689Skan	    Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1484169689Skan
1485169689Skan	* NEWS (Changes in GCC 3.0): Fix typo.
1486169689Skan
1487169689Skan2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1488169689Skan
1489169689Skan	* decl2.c (cplus_decl_attributes): Take a pointer to the node to
1490169689Skan	which attributes are to be attached, and a flags argument.  Update
1491169689Skan	call to decl_attributes.
1492169689Skan	(grokfield): Update call to decl_attributes.
1493169689Skan	* class.c (finish_struct): Update call to cplus_decl_attributes.
1494169689Skan	* cp-tree.h (cplus_decl_attributes): Update prototype.
1495169689Skan	* decl.c (start_decl, grokdeclarator, start_function): Update
1496169689Skan	calls to decl_attributes and cplus_decl_attributes.
1497169689Skan	* friend.c (do_friend): Update call to cplus_decl_attributes.
1498169689Skan	* parse.y (parse_bitfield): Update call to cplus_decl_attributes.
1499169689Skan
1500169689Skan2001-07-12  Mark Mitchell  <mark@codesourcery.com>
1501169689Skan
1502169689Skan	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
1503169689Skan	for `register' variables with an asm-specification.
1504169689Skan
1505169689Skan2001-07-11  Mark Mitchell  <mark@codesourcery.com>
1506169689Skan
1507169689Skan	* semantics.c (finish_asm_stmt): Mark the output operands
1508169689Skan	to an asm addressable, if necessary.
1509169689Skan
1510169689Skan2001-07-11  Ben Elliston  <bje@redhat.com>
1511169689Skan
1512169689Skan	* Revert this change -- there is a subtle bug.
1513169689Skan
1514169689Skan	PR c++/80
1515169689Skan	* decl.c (finish_enum): New "attributes" argument; pass it to
1516169689Skan	cplus_decl_attributes.  Use a narrower type if the enum is packed.
1517169689Skan	* cp-tree.h (finish_enum): Adjust prototype.
1518169689Skan	* parse.y (enum_head): New non-terminal.
1519169689Skan	(structsp): Use it. Enums now may be preceded or followed by
1520169689Skan	optional attributes -- pass their chained tree to finish_enum().
1521169689Skan	* pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
1522169689Skan
1523169689Skan2001-07-10  Mark Mitchell  <mark@codesourcery.com>
1524169689Skan
1525169689Skan	* pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
1526169689Skan	variables.
1527169689Skan
1528169689Skan2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
1529169689Skan
1530169689Skan	* semantics.c (cp_expand_stmt): Fix for null
1531169689Skan	current_function_return_value.
1532169689Skan
1533169689Skan2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
1534169689Skan
1535169689Skan	* call.c (build_op_delete_call): Initialize fn.
1536169689Skan	(convert_like_real): Delete conditional.
1537169689Skan	(joust): Initialize *w and *l.
1538169689Skan	* class.c: Add prototype for binfo_ctor_vtable.
1539169689Skan	(get_primary_binfo): Initialize result.
1540169689Skan	* init.c (build_java_class_ref): Initialize name.
1541169689Skan
1542169689Skan2001-07-09  Erik Rozendaal  <dlr@acm.org>
1543169689Skan
1544169689Skan	* typeck.c (unary_complex_lvalue): Do not duplicate the
1545169689Skan	argument to modify, pre-, or post-increment when used as an
1546169689Skan	lvalue and when the argument has side-effects.
1547169689Skan
1548169689Skan2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1549169689Skan
1550169689Skan	* decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
1551169689Skan	(start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES.  Call
1552169689Skan	cplus_decl_attributes even if attrs is NULL.
1553169689Skan	* friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
1554169689Skan
1555169689Skan2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1556169689Skan
1557169689Skan	* decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
1558169689Skan	calls to decl_attributes.
1559169689Skan
1560169689Skan2001-07-06  Ira Ruben   <ira@apple.com>
1561169689Skan
1562169689Skan	* cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
1563169689Skan	be DECL_TEMPLATE_RESULT.
1564169689Skan
1565169689Skan2001-07-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1566169689Skan
1567169689Skan	* cp-tree.h (copy_template_template_parm): Rename to ...
1568169689Skan	(bind_template_template_parm): ... here.
1569169689Skan	* tree.c (copy_template_template_parm): Rename to ...
1570169689Skan	(bind_template_template_parm): ... here.  Remove the case when
1571169689Skan	NEWARGS is NULL_TREE.
1572169689Skan	(copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
1573169689Skan	BOUND_TEMPLATE_TEMPLATE_PARM.
1574169689Skan	* pt.c (lookup_template_class): Adjust.
1575169689Skan
1576169689Skan2001-07-05  Jason Merrill  <jason_merrill@redhat.com>
1577169689Skan
1578169689Skan	* cvt.c (convert_lvalue): New fn.
1579169689Skan	* cp-tree.h: Declare it.
1580169689Skan	* method.c (do_build_assign_ref): Use it.
1581169689Skan	(do_build_copy_constructor): Convert parm to base types
1582169689Skan	before calling base constructors.
1583169689Skan
1584169689Skan	* typeck.c (check_return_expr): Check DECL_ALIGN instead of
1585169689Skan	DECL_USER_ALIGN.  Check flag_elide_constructors instead of
1586169689Skan	optimize.
1587169689Skan	* semantics.c (cp_expand_stmt): Don't destroy the named return value.
1588169689Skan
1589169689Skan2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
1590169689Skan
1591169689Skan	* optimize.c (optimize_inline_calls): New function, broken out
1592169689Skan	of ...
1593169689Skan	(optimize_function): ... here. Call it. Don't inline if it is
1594169689Skan	a thunk.
1595169689Skan	(dump_function): Print name of dump flag causing this dump.
1596169689Skan	* semantics.c (expand_body): Move thunk inline check to
1597169689Skan	optimize_function.
1598169689Skan
1599169689Skan2001-06-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1600169689Skan
1601169689Skan	* typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
1602169689Skan	(comptypes): Use target.comp_type_attributes.
1603169689Skan
1604169689Skan2001-06-29  Nathan Sidwell  <nathan@codesourcery.com>
1605169689Skan
1606169689Skan	* cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
1607169689Skan
1608169689Skan2001-06-28  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1609169689Skan
1610169689Skan	* error.c (lang_print_error_function): Add a `diagnostic_context *'
1611169689Skan	parameter. Tweak.
1612169689Skan
1613169689Skan2001-06-27  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1614169689Skan
1615169689Skan	* decl2.c (import_export_class): Update.
1616169689Skan
1617169689Skan2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
1618169689Skan
1619169689Skan	* error.c (init_error): Adjust settings.
1620169689Skan
1621169689Skan2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
1622169689Skan
1623169689Skan	* error.c (init_error): Adjust settings.
1624169689Skan
1625169689Skan2001-06-19  Richard Sandiford  <rsandifo@redhat.com>
1626169689Skan
1627169689Skan	* except.c (initialize_handler_parm): Expect __cxa_begin_catch to
1628169689Skan	return pointers to data members by reference rather than by value.
1629169689Skan
1630169689Skan2001-06-18  Jason Merrill  <jason_merrill@redhat.com>
1631169689Skan
1632169689Skan	Implement the Named Return Value optimization.
1633169689Skan	* cp-tree.h (struct cp_language_function): Add x_return_value.
1634169689Skan	(current_function_return_value): Now a macro.
1635169689Skan	* decl.c: Don't define it.
1636169689Skan	(define_label, finish_case_label): Don't clear it.
1637169689Skan	(init_decl_processing): Don't register it with GC.
1638169689Skan	* semantics.c (genrtl_finish_function): Don't check it for
1639169689Skan	no_return_label.  Copy the RTL from the return value to
1640169689Skan	current_function_return_value and walk, calling...
1641169689Skan	(nullify_returns_r): ...this new fn.
1642169689Skan	* typeck.c (check_return_expr): Set current_function_return_value.
1643169689Skan
1644169689Skan2001-06-15  Jason Merrill  <jason_merrill@redhat.com>
1645169689Skan
1646169689Skan	* class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
1647169689Skan	sharing a ctor vtable with.  Merge code for cases 1 and 2.
1648169689Skan	(binfo_ctor_vtable): New fn.
1649169689Skan	(build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
1650169689Skan
1651169689Skan2001-06-14  Jason Merrill  <jason_merrill@redhat.com>
1652169689Skan
1653169689Skan	* class.c (dfs_find_final_overrider): Fix logic.
1654169689Skan
1655169689Skan	* class.c (update_vtable_entry_for_fn): Uncomment optimization to use
1656169689Skan	virtual thunk instead of non-virtual.
1657169689Skan	(get_matching_virtual): Uncomment.
1658169689Skan
1659169689Skan	* pt.c (unify): Don't recurse between the POINTER_TYPE and the
1660169689Skan	OFFSET_TYPE.  If we're adding cv-quals, the extra ones would be on
1661169689Skan	PARM, not ARG.
1662169689Skan
1663169689Skan2001-06-14  Nathan Sidwell  <nathan@codesourcery.com>
1664169689Skan
1665169689Skan	* class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
1666169689Skan	we've not emerged from the hierarchy of RTTI_BINFO on reaching
1667169689Skan	a non-virtual base.
1668169689Skan
1669169689Skan2001-06-13  Mark Mitchell  <mark@codesourcery.com>
1670169689Skan
1671169689Skan	* NEWS: Update release number.
1672169689Skan
1673169689Skan2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
1674169689Skan
1675169689Skan	PR c++/3130, c++/3131, c++/3132
1676169689Skan	* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
1677169689Skan	* class.c (force_canonical_binfo_r): Move
1678169689Skan	BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
1679169689Skan	virtual bases unless they're primary and what they're primary
1680169689Skan	too has been moved.
1681169689Skan	(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
1682169689Skan	with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
1683169689Skan	BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
1684169689Skan	derived binfo.
1685169689Skan	(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
1686169689Skan	(layout_nonempty_base_or_field): Add most derived type
1687169689Skan	parameter. Adjust.
1688169689Skan	(layout_empty_base): Likewise.
1689169689Skan	(build_base_field): Likewise.
1690169689Skan	(build_base_fields): Likewise.
1691169689Skan	(propagate_binfo_offsets): Add most derived type
1692169689Skan	parameter. Skip non canonical virtual bases too.
1693169689Skan	(dfs_set_offset_for_unshared_vbases): Don't skip primary
1694169689Skan	bases. Do skip canonical bases.
1695169689Skan	(layout_virtual_bases): Adjust.
1696169689Skan	(layout_class_type): Adjust.
1697169689Skan	(dfs_get_primary_binfo): Build list of virtual primary base
1698169689Skan	candidates.
1699169689Skan	(get_primary_binfo): Check that the shared virtual primary
1700169689Skan	base candidate was found first.
1701169689Skan	(accumulate_vtbl_inits): Don't do anything for non-vptr
1702169689Skan	containing binfos. For case 1 primary virtual bases, keep
1703169689Skan	checking that we've not emerged from the hierarchy of RTTI_BINFO.
1704169689Skan
1705169689Skan2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
1706169689Skan
1707169689Skan	PR c++/3089
1708169689Skan	* class.c (dfs_accumulate_vtbl_inits): Always walk down the
1709169689Skan	hierarchy looking for primary bases for a ctor
1710169689Skan	vtable. Recursively call oneself, if we meet our primary via
1711169689Skan	this route and haven't met it yet via inheritance graph order.
1712169689Skan
1713169689Skan2001-06-11  Mark Mitchell  <mark@codesourcery.com>
1714169689Skan
1715169689Skan	* lang-options.h: Emit documentation for -fno-honor-std, not
1716169689Skan	-fhonor-std.
1717169689Skan
1718169689Skan2001-06-10  Alexandre Oliva  <aoliva@redhat.com>
1719169689Skan
1720169689Skan	* typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
1721169689Skan	Don't clobber delta.
1722169689Skan	(expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
1723169689Skan
1724169689Skan2001-06-10  Mark Mitchell <mark@codesourcery.com>
1725169689Skan	    Gabriel Dos Reis  <gdr@codesourcery.com>
1726169689Skan
1727169689Skan	* Make-lang.in (cp/call.o): Depend on diagnostic.h
1728169689Skan	(cp/typeck.o): Depend on diagnostic.h
1729169689Skan	(cp/typeck2.o): Depend on diagnostic.h
1730169689Skan	(cp/repo.o): Depend on dignostic.h
1731169689Skan	* typeck.c: #include diagnostic.h
1732169689Skan	(convert_for_initialization): Remove extern declaration for
1733169689Skan	warningcount and errorcount.
1734169689Skan
1735169689Skan	* call.c: #include diagnostic.h
1736169689Skan	(convert_like_real): Remove extern declaration for warnincount and
1737169689Skan	errorcount.
1738169689Skan
1739169689Skan	* repo.c: #include diagnostic.h
1740169689Skan	* typeck2.c: #include diagnostic.h
1741169689Skan
1742169689Skan2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1743169689Skan
1744169689Skan	* decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
1745169689Skan	in previous change.
1746169689Skan
1747169689Skan2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1748169689Skan
1749169689Skan	PR c++/2929
1750169689Skan	* friend.c (do_friend): Use push_decl_namespace for classes at
1751169689Skan	namespace scope.
1752169689Skan
1753169689Skan2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1754169689Skan	    Jason Merrill <jason_merrill@redhat.com>
1755169689Skan
1756169689Skan	PR c++/3061
1757169689Skan	* class.c (build_secondary_vtable): Use assert, rather than an error
1758169689Skan	message.
1759169689Skan	(dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
1760169689Skan	(dfs_accumulate_vtbl_inits): A lost primary virtual base may
1761169689Skan	be between ORIG_BINFO and RTTI_BINFO, but neither of them.
1762169689Skan	Don't set BINFO_VTABLE for a primary virtual base.
1763169689Skan
1764169689Skan2001-06-07  Mark Mitchell  <mark@codesourcery.com>
1765169689Skan
1766169689Skan	* decl.c (duplicate_decls): Update source position information
1767169689Skan	when a template function is defined.
1768169689Skan
1769169689Skan2001-06-07  Phil Edwards  <pme@sources.redhat.com>
1770169689Skan
1771169689Skan	* lang-specs.h:  Move -D_GNU_SOURCE to config/linux.h.
1772169689Skan
1773169689Skan2001-06-07  Nathan Sidwell  <nathan@codesourcery.com>
1774169689Skan
1775169689Skan	PR c++/2914
1776169689Skan	* decl.c (pushtag): Don't push into a complete type's scope.
1777169689Skan
1778169689Skan2001-06-06  Jason Merrill  <jason_merrill@redhat.com>
1779169689Skan
1780169689Skan	* cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
1781169689Skan	(struct lang_decl_flags): Lose generate_with_vtable_p.
1782169689Skan	(BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
1783169689Skan	* class.c (copy_virtuals): Adjust.
1784169689Skan	* decl2.c (mark_vtable_entries): Adjust.
1785169689Skan	* method.c (make_thunk, build_vtable_entry): Adjust.
1786169689Skan	* class.c (update_vtable_entry_for_fn): Only look as far as the
1787169689Skan	first defining class.
1788169689Skan	(build_vtbl_initializer): Put nothing in the slot for a function only
1789169689Skan	defined in a lost primary virtual base.
1790169689Skan	(add_vcall_offset_vtbl_entries_1): Use the same code for
1791169689Skan	the lost primary case and the normal case.
1792169689Skan	(dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
1793169689Skan	(get_vfield_offset, get_derived_offset): Lose.
1794169689Skan	(dfs_find_final_overrider): Use look_for_overrides_here.
1795169689Skan	(get_matching_virtual): New fn.
1796169689Skan	* semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
1797169689Skan	not BV_VCALL_INDEX.
1798169689Skan	* search.c (look_for_overrides_here): Split out from...
1799169689Skan	(look_for_overrides_r): Here.
1800169689Skan
1801169689Skan	* class.c (find_final_overrider): Return error_mark_node on error.
1802169689Skan
1803169689Skan	* decl2.c (key_method): #if 0 accidental change.
1804169689Skan
1805169689Skan2001-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1806169689Skan
1807169689Skan	* call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
1808169689Skan	(build_over_call): Likewise.
1809169689Skan	* decl.c (grokparms): Likewise.
1810169689Skan	* pt.c (tsubst_decl): Likewise.
1811169689Skan	* typeck.c (convert_arguments): Likewise.
1812169689Skan
1813169689Skan2001-06-05  Mark Mitchell  <mark@codesourcery.com>
1814169689Skan
1815169689Skan	* semantics.c (begin_class_definition): Robustify.
1816169689Skan
1817169689Skan	* pt.c (instantiate_decl): Tell the repository code about the
1818169689Skan	clones, not the cloned functions.
1819169689Skan	* repo.c (repo_template_used): Explicitly instantiate the cloned
1820169689Skan	function, not the clones.
1821169689Skan
1822169689Skan2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1823169689Skan
1824169689Skan	* call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
1825169689Skan	ICS_BAD_FLAG on created conversion.
1826169689Skan	(compare_ics): Break out rank.
1827169689Skan
1828169689Skan2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1829169689Skan
1830169689Skan	* decl.c (xref_tag): Remove extraneous %s on dependent name
1831169689Skan	lookup warning.
1832169689Skan
1833169689Skan2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1834169689Skan
1835169689Skan	* class.c (layout_vtable_decl): Fix off by one error on
1836169689Skan	build_index_type.
1837169689Skan	(build_vtt): Likewise.
1838169689Skan	(build_ctor_vtbl_group): Likewise.
1839169689Skan
1840169689Skan2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1841169689Skan
1842169689Skan	* class.c (maybe_indent_hierarchy): New function.
1843169689Skan	(dump_class_hierarchy_r): Add flags. Dump extra binfo
1844169689Skan	information, if enabled. Use maybe_indent_hierarchy. Adjust
1845169689Skan	output format.
1846169689Skan	(dump_class_hierarchy): Adjust prototype. Adjust output format.
1847169689Skan	(dump_array, dump_vtable, dump_vtt): New functions.
1848169689Skan	(finish_struct_1): Adjust hierarchy dumping.
1849169689Skan	(initialize_vtable): Call dump_vtable.
1850169689Skan	(build_vtt): Call dump_vtt.
1851169689Skan	(build_ctor_vtbl_group): Call dump_vtable.
1852169689Skan	* decl2.c (flag_dump_class_layout): Remove.
1853169689Skan	(cxx_decode_option): Remove dump translation unit
1854169689Skan	and dump class hierarchy check. Call dump_switch_p.
1855169689Skan	(finish_file): Adjust dumping.
1856169689Skan	(dump.c): Only dump base classes if not TDF_SLIM.
1857169689Skan	Only dump namespace members if not TDF_SLIM.
1858169689Skan	* optimize.c (dump_function): New function.
1859169689Skan	(optimize_function): Call dump_function.
1860169689Skan	* semantics.c (expand_body): Use dump_enabled_p.
1861169689Skan
1862169689Skan2001-06-01  Nathan Sidwell  <nathan@codesourcery.com>
1863169689Skan
1864169689Skan	PR g++/2936
1865169689Skan	Part missed from first commit
1866169689Skan	* decl2.c (finish_anon_union): Copy context.
1867169689Skan
1868169689Skan2001-05-30  Nathan Sidwell  <nathan@codesourcery.com>
1869169689Skan
1870169689Skan	PR g++/2936
1871169689Skan	* optimize.c (remap_decl): Remap anonymous aggregate members too.
1872169689Skan
1873169689Skan2001-05-26  Nathan Sidwell  <nathan@codesourcery.com>
1874169689Skan
1875169689Skan	PR g++/2823
1876169689Skan	* semantics.c (expand_body): Don't optimize thunks.
1877169689Skan
1878169689Skan2001-05-25  Sam TH  <sam@uchicago.edu>
1879169689Skan
1880169689Skan	* cp-tree.h lex.h: Fix header include guards.
1881169689Skan
1882169689Skan2001-05-25  Mark Mitchell <mark@codesourcery.com>
1883169689Skan
1884169689Skan	* decl.c (init_decl_processing): Tweak.
1885169689Skan
1886169689Skan2001-05-24  Mark Mitchell  <mark@codesourcery.com>
1887169689Skan
1888169689Skan	* decl.c (duplicate_decls): Tidy.
1889169689Skan	(init_decl_processing): Always set flag_no_builtin.
1890169689Skan
1891169689Skan2001-05-24  Nathan Sidwell  <nathan@codesourcery.com>
1892169689Skan
1893169689Skan	PR c++/2184
1894169689Skan	* decl2.c (do_local_using_decl): Push the decls, even in a
1895169689Skan	template.
1896169689Skan
1897169689Skan2001-05-22  Mark Mitchell  <mark@codesourcery.com>
1898169689Skan
1899169689Skan	* optimize.c (initialize_inlined_parameters): Don't set
1900169689Skan	TREE_READONLY for a VAR_DECL taking the place of an inlined
1901169689Skan	PARM_DECL.
1902169689Skan
1903169689Skan2001-05-22  Jason Merrill  <jason_merrill@redhat.com>
1904169689Skan
1905169689Skan	* class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
1906169689Skan	* tree.c (cp_valid_lang_attribute): Warn about use of com_interface
1907169689Skan	attribute.
1908169689Skan
1909169689Skan2001-05-22  Joseph S. Myers  <jsm28@cam.ac.uk>
1910169689Skan
1911169689Skan	* parse.y: Refer to compound literals as such, not as
1912169689Skan	constructor-expressions.
1913169689Skan
1914169689Skan2001-05-21  Mark Mitchell  <mark@codesourcery.com>
1915169689Skan
1916169689Skan	* call.c (build_op_delete_call): Ignore exception-specifications
1917169689Skan	when looking for matching delete operators.
1918169689Skan	* init.c (build_new_1): Compute whether or not the allocation
1919169689Skan	function used is a placement allocation function or not, and
1920169689Skan	communicate this information to build_op_delete_call.
1921169689Skan
1922169689Skan2001-05-21  Jason Merrill  <jason_merrill@redhat.com>
1923169689Skan
1924169689Skan	* class.c (build_vtable_entry_ref): Lose vtbl parm.  Fix for new abi.
1925169689Skan	(build_vtbl_ref): Adjust.
1926169689Skan	(dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
1927169689Skan	* decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
1928169689Skan	Re-add vtable-gc.
1929169689Skan	(unsupported_options): Correspondingly.
1930169689Skan
1931169689Skan	* decl2.c (maybe_make_one_only): Check flag_weak, not
1932169689Skan	supports_one_only().
1933169689Skan
1934169689Skan	* cp-tree.def (START_CATCH_STMT): Lose.
1935169689Skan	* dump.c (cp_dump_tree): Don't dump it.  Do dump HANDLER_PARMS.
1936169689Skan	* tree.c (cp_statement_code_p): Don't case it.
1937169689Skan	* semantics.c (cp_expand_stmt): Likewise.
1938169689Skan	* cp-tree.h (START_CATCH_TYPE): Lose.
1939169689Skan	(HANDLER_TYPE): New.
1940169689Skan	* except.c (expand_start_catch_block): Don't start any blocks.
1941169689Skan	Return the type.
1942169689Skan	(expand_end_catch_block): Don't end any blocks.
1943169689Skan	* parse.y (handler): Don't pass anything from finish_handler_parms
1944169689Skan	to finish_handler.
1945169689Skan	* pt.c (tsubst_expr): Likewise.
1946169689Skan	* semantics.c (begin_handler): Call note_level_for_catch here.
1947169689Skan	(finish_handler_parms): Don't return anything.
1948169689Skan	(genrtl_catch_block, begin_catch_block): Lose.
1949169689Skan	(genrtl_handler): Call expand_start_catch here.
1950169689Skan
1951169689Skan2001-05-18  Jason Merrill  <jason_merrill@redhat.com>
1952169689Skan
1953169689Skan	* class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
1954169689Skan	(get_vtable_decl, build_vtt): Not here.
1955169689Skan
1956169689Skan2001-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1957169689Skan
1958169689Skan	PR c++/2781
1959169689Skan	* optimize.c (update_cloned_parm): Copy addressability and other
1960169689Skan	flags.
1961169689Skan
1962169689Skan2001-05-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1963169689Skan
1964169689Skan	* pt.c (determine_specialization): Ignore artificial functions.
1965169689Skan
1966169689Skan2001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1967169689Skan
1968169689Skan	* cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
1969169689Skan	(C_RID_CODE): Remove.
1970169689Skan	* lex.c (cxx_init_options): Call set_identifier_size.  Update.
1971169689Skan	(init_parse): Don't do it here.
1972169689Skan
1973169689Skan2001-05-18  Diego Novillo  <dnovillo@redhat.com>
1974169689Skan
1975169689Skan	* decl2.c (finish_objects): Use the original SYMBOL_REF from the
1976169689Skan	function declaration to avoid stripping the symbol's attributes.
1977169689Skan
1978169689Skan2001-05-18  Nathan Sidwell  <nathan@codesourcery.com>
1979169689Skan
1980169689Skan	* decl.c (pushdecl): Adjust error string.
1981169689Skan	(xref_tag): Adjust friend class injection warning. Remove the
1982169689Skan	inherited name from the class shadowed scope.
1983169689Skan
1984169689Skan2001-05-17  Mark Mitchell  <mark@codesourcery.com>
1985169689Skan
1986169689Skan	* except.c (cp_protect_cleanup_actions): New function.
1987169689Skan	(init_exception_processing): Don't set protect_cleanup_actions
1988169689Skan	here.  Do set lang_protect_cleanup_actions.
1989169689Skan
1990169689Skan2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
1991169689Skan
1992169689Skan	* spew.c (read_token): Call yyerror on all unexpected tokens.
1993169689Skan
1994169689Skan2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
1995169689Skan
1996169689Skan	* init.c (member_init_ok_or_else): Take a tree rather than
1997169689Skan	string for name.
1998169689Skan	(expand_member_init): Adjust.
1999169689Skan
2000169689Skan2001-05-14  Nick Clifton  <nickc@cambridge.redhat.com>
2001169689Skan
2002169689Skan	* decl.c (duplicate_decls): Suppress warning about duplicate
2003169689Skan	decls if the first decl is a friend.
2004169689Skan
2005169689Skan2001-05-12  Zack Weinberg  <zackw@stanford.edu>
2006169689Skan
2007169689Skan	* except.c (choose_personality_routine): Export.  Add
2008169689Skan	explanatory comment.  Take an enum languages, not a boolean.
2009169689Skan	(initialize_handler_parm): Adjust to match.
2010169689Skan	* cp-tree.h: Prototype choose_personality_routine.
2011169689Skan	* lex.c (handle_pragma_java_exceptions): New function.
2012169689Skan	(init_cp_pragma): Register #pragma GCC java_exceptions.
2013169689Skan
2014169689Skan2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
2015169689Skan
2016169689Skan	* method.c (build_mangled_C99_name): Remove unused prototype.
2017169689Skan
2018169689Skan2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
2019169689Skan
2020169689Skan	* cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
2021169689Skan	* typeck.c (get_member_function_from_ptrfunc,
2022169689Skan	build_ptrmemfunc, expand_ptrmemfunc_cst): Take
2023169689Skan	TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
2024169689Skan
2025169689Skan	Reverted Geoff Keating's 2001-05-03's patch.
2026169689Skan
2027169689Skan2001-05-11  Ira Ruben	<ira@apple.com>
2028169689Skan
2029169689Skan	* cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
2030169689Skan
2031169689Skan2001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2032169689Skan
2033169689Skan	* cp-tree.h (finish_label_expr, lookup_label): Delete.
2034169689Skan	* parse.y: Update for '&&'; don't issue warning here.
2035169689Skan	* semantics.c (finish_label_expr): Delete.
2036169689Skan
2037169689Skan2001-05-07  Mark Mitchell  <mark@codesourcery.com>
2038169689Skan
2039169689Skan	* splay-tree.h (splay_tree_max): New function.
2040169689Skan	(splay_tree_min): Likewise.
2041169689Skan
2042169689Skan2001-05-03  Geoffrey Keating  <geoffk@redhat.com>
2043169689Skan
2044169689Skan	* cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
2045169689Skan	(pfn_vflag_identifier): Define.
2046169689Skan	Update comment about layout of pointer functions.
2047169689Skan	(build_ptrmemfunc1): Update prototype.
2048169689Skan	(expand_ptrmemfunc_cst): Update prototype.
2049169689Skan	* decl.c (initialize_predefined_identifiers): Initialize
2050169689Skan	pfn_vflag_identifier.
2051169689Skan	(build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
2052169689Skan	an extra field to the type.
2053169689Skan	* expr.c (cplus_expand_constant): Pass 'flag' between
2054169689Skan	expand_ptrmemfunc_cst and build_ptrmemfunc1.
2055169689Skan	* typeck.c (get_member_function_from_ptrfunc): When
2056169689Skan	FUNCTION_BOUNDARY < 16, look at additional field to determine
2057169689Skan	if a pointer-to-member is a real pointer or a vtable offset.
2058169689Skan	(build_ptrmemfunc1): Add new parameter to contain extra field.
2059169689Skan	(build_ptrmemfunc): Pass the extra field around.
2060169689Skan	(expand_ptrmemfunc_cst): Add new parameter to return extra field.
2061169689Skan	(pfn_from_ptrmemfunc): Ignore the extra field.
2062169689Skan
2063169689Skan2001-05-03  Mark Mitchell  <mark@codesourcery.com>
2064169689Skan
2065169689Skan	* cp-tree.h (flag_inline_trees): Update documentation.
2066169689Skan	* decl.c (init_decl_processing): Adjust handling of
2067169689Skan	flag_inline_functions and flag_inline_trees to support -O3.
2068169689Skan	(grokfndecl): Set DECL_INLINE on all functions if that's what
2069169689Skan	the user requested.
2070169689Skan	(save_function_data): Clear DECL_INLINE in
2071169689Skan	current_function_cannot_inline is non-NULL.
2072169689Skan	* decl2.c (flag_inline_trees): Update documentation.
2073169689Skan
2074169689Skan2001-05-03  Nathan Sidwell  <nathan@codesourcery.com>
2075169689Skan
2076169689Skan	* dump.c (cp_dump_tree, USING_STMT case): New case.
2077169689Skan	* tree.c (cp_statement_code_p): Add USING_STMT.
2078169689Skan	* decl2.c (do_using_directive): Add the using directive statement.
2079169689Skan
2080169689Skan	* tree.c (walk_tree): Reformat an if block.
2081169689Skan
2082169689Skan2001-05-02  Mark Mitchell  <mark@codesourcery.com>
2083169689Skan
2084169689Skan	* decl.c (compute_array_index_type): Don't try to do anything with
2085169689Skan	the indices when processing a template.
2086169689Skan
2087169689Skan2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2088169689Skan
2089169689Skan	* call.c: NULL_PTR -> NULL.
2090169689Skan	* class.c: Likewise.
2091169689Skan	* cvt.c: Likewise.
2092169689Skan	* decl.c: Likewise.
2093169689Skan	* decl2.c: Likewise.
2094169689Skan	* except.c: Likewise.
2095169689Skan	* init.c: Likewise.
2096169689Skan	* rtti.c: Likewise.
2097169689Skan	* search.c: Likewise.
2098169689Skan	* tree.c: Likewise.
2099169689Skan	* typeck.c: Likewise.
2100169689Skan	* typeck2.c: Likewise.
2101169689Skan
2102169689Skan2001-05-02  Mark Mitchell  <mark@codesourcery.com>
2103169689Skan
2104169689Skan	* decl2.c (do_using_directive): Revert previous patch.
2105169689Skan
2106169689Skan2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2107169689Skan
2108169689Skan	* cp-tree.def (USING_STMT): New statement node.
2109169689Skan	* cp-tree.h (USING_STMT_NAMESPACE): New macro.
2110169689Skan	* decl2.c (do_using_directive): Add USING_STMT to statement
2111169689Skan	tree. Don't emit errors when processing template decl.
2112169689Skan	* pt.c (tsubst_expr, USING_STMT case): New case.
2113169689Skan	* semantics.c (cp_expand_stmt, USING_STMT case): New case.
2114169689Skan
2115169689Skan2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2116169689Skan
2117169689Skan	* call.c (build_new_op): Convert args from reference here.
2118169689Skan	(build_conditional_expr): Don't convert here.
2119169689Skan
2120169689Skan2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2121169689Skan
2122169689Skan	* spew.c (last_token_id): New static variable.
2123169689Skan	(read_token): Set it here.
2124169689Skan	(yyerror): Use it here.
2125169689Skan
2126169689Skan2001-04-30  Richard Henderson  <rth@redhat.com>
2127169689Skan
2128169689Skan	* cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
2129169689Skan	* decl.c: Likewise.
2130169689Skan
2131169689Skan2001-04-30  Mark Mitchell  <mark@codesourcery.com>
2132169689Skan
2133169689Skan	* gxxint.texi: Remove.
2134169689Skan	* Make-lang.in: Remove all traces of gxxint.texi.
2135169689Skan
2136169689Skan2001-04-30  Mark P Mitchell  <mark@codesourcery.com>
2137169689Skan
2138169689Skan	* decl2.c (start_static_initialization_or_destruction): Correct
2139169689Skan	logic to handle the -fno-use-cxa-atexit case.
2140169689Skan
2141169689Skan2001-04-30  Mark Mitchell  <mark@codesourcery.com>
2142169689Skan
2143169689Skan	* optimize.c (update_cloned_parm): New function.
2144169689Skan	(maybe_clone_body): Use it.  Update the `this' parameter too.
2145169689Skan
2146169689Skan2001-04-29  Joseph S. Myers  <jsm28@cam.ac.uk>
2147169689Skan
2148169689Skan	* decl2.c (unsupported_options): Add new-abi.
2149169689Skan	* lang-options.h: Remove no longer supported options.
2150169689Skan
2151169689Skan2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2152169689Skan
2153169689Skan	* except.c (can_convert_eh): Don't check template parms,
2154169689Skan	typename types etc.
2155169689Skan
2156169689Skan2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2157169689Skan
2158169689Skan	* optimize.c (maybe_clone_body): Copy parameter names and locations.
2159169689Skan
2160169689Skan2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2161169689Skan
2162169689Skan	* cp-tree.h (adjust_clone_args): Prototype new function.
2163169689Skan	* class.c (adjust_clone_args): New function.
2164169689Skan	* decl.c (start_function): Call it for in charge ctors.
2165169689Skan
2166169689Skan2001-04-26  Mark Mitchell  <mark@codesourcery.com>
2167169689Skan
2168169689Skan	* method.c (use_thunk): Make sure that thunks really are emitted
2169169689Skan	when requested.
2170169689Skan
2171169689Skan2001-04-26  Nathan Sidwell <nathan@codesourcery.com>
2172169689Skan
2173169689Skan	* mangle.c (write_chars): New macro.
2174169689Skan	(hwint_to_ascii): New function
2175169689Skan	(write_number): Use it.
2176169689Skan	(write_integer_cst): Deal with really big numbers.
2177169689Skan
2178169689Skan2001-04-25  Mark Mitchell  <mark@codesourcery.com>
2179169689Skan
2180169689Skan	* optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
2181169689Skan	the clone.
2182169689Skan
2183169689Skan2001-04-25  Nathan Sidwell  <nathan@codesourcery.com>
2184169689Skan
2185169689Skan	* decl.c (grokdeclarator): Set context of namespace scope
2186169689Skan	TYPE_DECLS.
2187169689Skan
2188169689Skan2001-04-24  Zack Weinberg  <zackw@stanford.edu>
2189169689Skan
2190169689Skan	* cp/optimize.c: Include hashtab.h.
2191169689Skan	(struct inline_data): Add tree_pruner.
2192169689Skan	(expand_call_inline, expand_calls_inline): Use it when calling
2193169689Skan	walk_tree.
2194169689Skan	(optimize_function): Initialize and free tree_pruner.
2195169689Skan
2196169689Skan2001-04-24  Nathan Sidwell <nathan@codesourcery.com>
2197169689Skan
2198169689Skan	Lazy __FUNCTION__ generation.
2199169689Skan	* cp-tree.def (FUNCTION_NAME): Remove.
2200169689Skan	* cp-tree.h (function_name_declared_p): Remove.
2201169689Skan	(cp_fname_init): Prototype.
2202169689Skan	* decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
2203169689Skan	don't call declare_function_name. Call start_fname_decls.
2204169689Skan	(cp_make_fname_decl): Adjust parameters. Generate the name. Don't
2205169689Skan	clobber the line number.
2206169689Skan	(cp_fname_init): New function.
2207169689Skan	(start_function): Call start_fname_decls.
2208169689Skan	(finish_function): Call finish_fname_decls.
2209169689Skan	* lex.c (reswords): Add slots for __FUNCTION__ et al.
2210169689Skan	(rid_to_yy): Add mappings for __FUNCTION__ et al.
2211169689Skan	* optimize.c (maybe_clone_body): Remove function_name_declared_p.
2212169689Skan	* parse.y (VAR_FUNC_NAME): New token.
2213169689Skan	(primary): Add VAR_FUNC_NAME.
2214169689Skan	* pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
2215169689Skan	generation.
2216169689Skan	(tsubst, FUNCTION_NAME case): Remove.
2217169689Skan	(tsubst_copy, FUNCTION_NAME case): Remove.
2218169689Skan	(tsubst_expr, DECL_STMT case): Be careful with a
2219169689Skan	DECL_PRETTY_FUNCTION_P.
2220169689Skan	(instantiate_decl): Remove function_name_declared_p.
2221169689Skan	* semantics.c (begin_compound_statement): Don't call
2222169689Skan	declare_function_name here.
2223169689Skan	(setup_vtbl_ptr). Don't save & restore function_name_declared_p.
2224169689Skan	(finish_translation_unit): Call finish_fname_decls.
2225169689Skan	(expand_body): Remove function_name_declared_p.
2226169689Skan	* typeck2.c (digest_init): Allow any ERROR_MARK.
2227169689Skan
2228169689Skan2001-04-24  Nathan Sidwell  <nathan@codesourcery.com>
2229169689Skan
2230169689Skan	* pt.c (tsubst_decl): Use VOID_TYPE_P.
2231169689Skan	* semantics.c: Fix some typos.
2232169689Skan
2233169689Skan2001-04-23  Phil Edwards  <pme@sources.redhat.com>
2234169689Skan
2235169689Skan	* cp/decl2.c (flag_honor_std):  Always initialize to 1.
2236169689Skan
2237169689Skan2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2238169689Skan
2239169689Skan	* xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
2240169689Skan
2241169689Skan2001-04-23  Jason Merrill  <jason_merrill@redhat.com>
2242169689Skan
2243169689Skan	* except.c (build_throw): Wrap the initialization of the exception
2244169689Skan	object in a MUST_NOT_THROW_EXPR.
2245169689Skan	(do_free_exception): #if 0.
2246169689Skan
2247169689Skan2001-04-20  Mark Mitchell  <mark@codesourcery.com>
2248169689Skan
2249169689Skan	* cp-tree.h (finish_enum): Change prototype.
2250169689Skan	* decl.c (finish_enum): Reorganize.
2251169689Skan	* parse.y (structsp): Adjust calls to finish_enum.
2252169689Skan
2253169689Skan2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
2254169689Skan
2255169689Skan	* tree.c (cp_tree_equal): Adjust final switch formatting. Add
2256169689Skan	't' case.
2257169689Skan
2258169689Skan2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
2259169689Skan
2260169689Skan	* class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
2261169689Skan	(layout_empty_base): Return at end flag.
2262169689Skan	(build_base_field): Likewise.
2263169689Skan	(build_base_fields): Likewise.
2264169689Skan	(layout_virtual_bases): Don't add 1 to eoc value.
2265169689Skan	(end_of_class): Use full size for empty bases.
2266169689Skan	(layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
2267169689Skan	empty bases. Don't add 1 to eoc value. Only add trailing padding
2268169689Skan	if we're an empty class with no empty bases.
2269169689Skan	(dump_class_hierarchy): Dump size and alignment.
2270169689Skan
2271169689Skan2001-04-20  Jakub Jelinek  <jakub@redhat.com>
2272169689Skan
2273169689Skan	* call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
2274169689Skan	ICS_BAD_FLAG.
2275169689Skan
2276169689Skan2001-04-20  Jakub Jelinek  <jakub@redhat.com>
2277169689Skan
2278169689Skan	* search.c (lookup_field_r): If looking for type and non-TYPE_DECL
2279169689Skan	is found, look first if name does not match the structure name.
2280169689Skan
2281169689Skan2001-04-19  Mark Mitchell  <mark@codesourcery.com>
2282169689Skan
2283169689Skan	* cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
2284169689Skan	set.
2285169689Skan	(SET_DECL_LANGUAGE): New macro.
2286169689Skan	* decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
2287169689Skan	(pushdecl): Likewise.
2288169689Skan	(build_library_fn_1): Likewise.
2289169689Skan	(build_cp_library_fn): Likewise.
2290169689Skan	(grokfndecl): Likewise.
2291169689Skan	(grokvardecl): Mark `extern "C"' variables as having C linkage.
2292169689Skan	* decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
2293169689Skan	* lex.c (retrofit_lang_decl): Likewise.
2294169689Skan	* mangle.c (mangle_decl_string): Don't mangle the names of
2295169689Skan	variables declared with C language linkage.
2296169689Skan	* semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
2297169689Skan
2298169689Skan2001-04-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2299169689Skan
2300169689Skan	* semantics.c (simplify_aggr_init_exprs_r): Don't restore
2301169689Skan	flag_access_control from uninitialized storage.
2302169689Skan
2303169689Skan2001-04-15  Mark Mitchell  <mark@codesourcery.com>
2304169689Skan
2305169689Skan	* cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
2306169689Skan	* mangle.c (write_pointer_to_member_type): Fix mangling of
2307169689Skan	pointers to cv-qualified member function types.
2308169689Skan
2309169689Skan	* init.c (build_delete): Create a SAVE_EXPR for the address if
2310169689Skan	we're going to use it more than once.
2311169689Skan
2312169689Skan2001-04-13  Mark Mitchell  <mark@codesourcery.com>
2313169689Skan
2314169689Skan	* cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
2315169689Skan	(expand_ptremfunc_cst): Change prototype.
2316169689Skan	(delta2_from_ptrmemfunc): Remove.
2317169689Skan	* expr.c (cplus_expand_constant): Adjust call to
2318169689Skan	expand_ptrmemfunc_cst.
2319169689Skan	* typeck.c (build_ptrmemfunc1): Simplify.
2320169689Skan	(build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
2321169689Skan	results in a constant.
2322169689Skan	(expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
2323169689Skan	(delta2_from_ptrmemfunc): Remove.
2324169689Skan	(pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
2325169689Skan
2326169689Skan2001-04-12  Jason Merrill  <jason_merrill@redhat.com>
2327169689Skan
2328169689Skan	* cp-tree.h (decl_namespace_list): New macro.
2329169689Skan	(struct saved_scope): Add decl_ns_list.
2330169689Skan	* decl.c (mark_saved_scope): Mark it.
2331169689Skan	* decl2.c: Lose static decl_namespace_list.
2332169689Skan	(init_decl2): Don't save it.
2333169689Skan
2334169689Skan2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2335169689Skan
2336169689Skan	* cp-tree.h (warn_return_type, yylex): Delete redundant
2337169689Skan	declarations.
2338169689Skan
2339169689Skan	* decl.c (current_class_depth, global_namespace): Likewise.
2340169689Skan
2341169689Skan	* decl2.c (current_class_depth, flag_gnu_xref): Likewise
2342169689Skan
2343169689Skan	* repo.c (flag_use_repository): Likewise.
2344169689Skan
2345169689Skan2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2346169689Skan
2347169689Skan	* cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
2348169689Skan	set_block, pushdecl, getdecls, gettags, init_decl_processing,
2349169689Skan	maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
2350169689Skan	lvalue_or_else, print_lang_statistics, comp_target_types,
2351169689Skan	unsigned_type, signed_type, signed_or_unsigned_type,
2352169689Skan	build_function_call, mark_addressable, incomplete_type_error):
2353169689Skan	Delete redundant declarations.
2354169689Skan
2355169689Skan2001-04-11  Jason Merrill  <jason_merrill@redhat.com>
2356169689Skan
2357169689Skan	* cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
2358169689Skan	(TYPE_ANONYMOUS_P): New macro.
2359169689Skan	(TAGGED_TYPE_P): New macro.
2360169689Skan	* decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
2361169689Skan	(grokfndecl, grokvardecl, grokdeclarator): Likewise.
2362169689Skan	* tree.c (no_linkage_helper): Likewise.
2363169689Skan	* semantics.c (begin_class_definition): Likewise.
2364169689Skan	* pt.c (convert_template_argument): Likewise.
2365169689Skan	* lex.c (check_for_missing_semicolon): Likewise.
2366169689Skan
2367169689Skan2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
2368169689Skan
2369169689Skan	* class.c (dfs_unshared_virtual_bases): New function.
2370169689Skan	(mark_primary_bases): Call it.
2371169689Skan	(check_bases): Ignore virtual bases when determining
2372169689Skan	nearly-emptiness.
2373169689Skan
2374169689Skan2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
2375169689Skan
2376169689Skan	* method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
2377169689Skan
2378169689Skan2001-04-11  Mark Mitchell  <mark@codesourcery.com>
2379169689Skan
2380169689Skan	* optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
2381169689Skan	cloned function to the clone.
2382169689Skan
2383169689Skan2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2384169689Skan
2385169689Skan	* Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
2386169689Skan
2387169689Skan	* semantics.c: Include expr.h.
2388169689Skan
2389169689Skan2001-04-11  Nathan Sidwell  <nathan@codesourcery.com>
2390169689Skan
2391169689Skan	* method.c (implicitly_declare_fn): Commonize code for copy ctor
2392169689Skan	and assignment op. Set TREE_USED for parameter.
2393169689Skan
2394169689Skan2001-04-10  Mark Mitchell  <mark@codesourcery.com>
2395169689Skan
2396169689Skan	* class.c (find_final_overrider_data): Add `candidates'.
2397169689Skan	(dfs_find_final_overrider): Don't issue error messages
2398169689Skan	prematurely.
2399169689Skan	(find_final_overrider): Issue error messages here.
2400169689Skan	(build_base_field): Don't warn about amgibuous direct bases here.
2401169689Skan	(warn_about_ambiguous_direct_bases): New function.
2402169689Skan	(layout_class_type): Use it.
2403169689Skan
2404169689Skan2001-04-10  Richard Henderson  <rth@redhat.com>
2405169689Skan
2406169689Skan	* typeck.c (build_array_ref): Push the array reference inside
2407169689Skan	COMPOUND_EXPR and COND_EXPR.
2408169689Skan
2409169689Skan2001-04-05  Mark Mitchell  <mark@codesourcery.com>
2410169689Skan
2411169689Skan	* cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
2412169689Skan	* decl.c (duplicate_decls): Adjust accordingly.
2413169689Skan	(maybe_commonize_var): Likewise.
2414169689Skan	(grokfndecl): Likewise.
2415169689Skan	(start_function): Likewise.
2416169689Skan	(start_method): Likewise.
2417169689Skan	* decl2.c (key_method): Likewise.
2418169689Skan	(import_export_decl): Likewise.
2419169689Skan	* method.c (implicitly_declare_fn): Likewise.
2420169689Skan	* optimize.c (maybe_clone_body): Likewise.
2421169689Skan
2422169689Skan2001-04-05  Benjamin Kosnik  <bkoz@redhat.com>
2423169689Skan
2424169689Skan	* lang-specs.h: Add __DEPRECATED.
2425169689Skan
2426169689Skan2001-04-05  J"orn Rennecke <amylaar@redhat.com>
2427169689Skan
2428169689Skan	* search.c (get_dynamic_cast_base_type): When building a new
2429169689Skan	constant, set its type to ssizetype.
2430169689Skan
2431169689Skan2001-04-04  Jakub Jelinek  <jakub@redhat.com>
2432169689Skan
2433169689Skan	* optimize.c (expand_call_inline): Only add newly inlined statements
2434169689Skan	into inlined_stmts.
2435169689Skan
2436169689Skan2001-04-03  Mark Mitchell  <mark@codesourcery.com>
2437169689Skan
2438169689Skan	* cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
2439169689Skan	(OPERATOR_FORMAT): Likewise.
2440169689Skan	(OPERATOR_TYPENAME_FORMAT): Likewise.
2441169689Skan	* operators.def: Remove old name-mangling information.
2442169689Skan	* decl.c (grok_op_properties): Adjust accordingly.
2443169689Skan	* lex.c (init_operators): Likewise.
2444169689Skan	* rtti.c (get_tinfo_decl): Issue error messages about types that
2445169689Skan	have variable size.
2446169689Skan
2447169689Skan2001-04-03  Mark Mitchell  <mark@codesourcery.com>
2448169689Skan
2449169689Skan	* decl2.c (import_export_decl): Don't call import_export_class
2450169689Skan	when processing an inline member function.
2451169689Skan	* semantics.c (expand_body): Call import_export_decl before
2452169689Skan	emitting inline functions.
2453169689Skan
2454169689Skan2001-03-28  Richard Henderson  <rth@redhat.com>
2455169689Skan
2456169689Skan	IA-64 ABI Exception Handling:
2457169689Skan	* cp-tree.def (EH_SPEC_BLOCK): New.
2458169689Skan	(MUST_NOT_THROW_EXPR): New.
2459169689Skan	* cp-tree.h: Update changed function declarations.
2460169689Skan	(CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
2461169689Skan	(CPTI_CALL_UNEXPECTED): New.
2462169689Skan	(struct cp_language_function): Rename x_eh_spec_try_block
2463169689Skan	to x_eh_spec_block.
2464169689Skan	(EH_SPEC_STMTS, EH_SPEC_RAISES): New.
2465169689Skan	* decl.c (current_binding_level): If no current function
2466169689Skan	bindings, revert to scope_chain.
2467169689Skan	(initialize_predefined_identifiers): Remove __cp_push_exception.
2468169689Skan	(store_parm_decls): Use begin_eh_spec_block.
2469169689Skan	(finish_function): Use finish_eh_spec_block.
2470169689Skan	(mark_lang_function): Update for name changes.
2471169689Skan	* decl2.c (finish_file): No mark_all_runtime_matches.
2472169689Skan	* dump.c (cp_dump_tree): Handle new tree codes.
2473169689Skan	* error.c (dump_expr) [BIND_EXPR]: Fix typo.
2474169689Skan	* except.c (catch_language_init, catch_language): Remove.
2475169689Skan	(init_exception_processing): Don't set language code.
2476169689Skan	Initialize call_unexpected_node, protect_cleanup_actions,
2477169689Skan	eh_personality_libfunc, lang_eh_runtime_type.
2478169689Skan	(call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
2479169689Skan	(get_eh_type, get_eh_caught, get_eh_handlers): Remove.
2480169689Skan	(prepare_eh_type): Split out type canonicalizations ...
2481169689Skan	(build_eh_type_type): ... from here.
2482169689Skan	(build_eh_type_type_ref): Remove.
2483169689Skan	(mark_all_runtime_matches): Remove.
2484169689Skan	(build_exc_ptr): New.
2485169689Skan	(do_begin_catch, do_end_catch): New.
2486169689Skan	(do_pop_exception): Remove.
2487169689Skan	(build_terminate_handler): Remove.
2488169689Skan	(choose_personality_routine): Split out language choice from ...
2489169689Skan	(initialize_handler_parm): ... here.
2490169689Skan	Use MUST_NOT_THROW_EXPR.
2491169689Skan	(expand_start_catch_block): Use do_begin_catch.  Simplify Java
2492169689Skan	exception object handling.
2493169689Skan	(expand_start_eh_spec, expand_end_eh_spec): Remove.
2494169689Skan	(expand_exception_blocks, alloc_eh_object): Remove.
2495169689Skan	(begin_eh_spec_block, finish_eh_spec_block): New.
2496169689Skan	(do_allocate_exception, do_free_exception): New.
2497169689Skan	(expand_throw): Merge into ...
2498169689Skan	(build_throw): ... here.  Update for abi.
2499169689Skan	* expr.c (cplus_expand_expr): No expand_internal_throw.
2500169689Skan	Handle MUST_NOT_THROW_EXPR.
2501169689Skan	* pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
2502169689Skan	* semantics.c (*) Update for except.h name changes.
2503169689Skan	(genrtl_try_block): No protect_with_terminate.
2504169689Skan	(genrtl_eh_spec_block): New.
2505169689Skan	(genrtl_handler): Don't emit the goto here.
2506169689Skan	(cp_expand_stmt): Handle EH_SPEC_BLOCK.
2507169689Skan	(genrtl_finish_function): Don't expand_exception_blocks.
2508169689Skan	* tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
2509169689Skan
2510169689Skan2001-03-28  Richard Henderson  <rth@redhat.com>
2511169689Skan
2512169689Skan	* decl.c (struct named_label_list): Rename eh_region to
2513169689Skan	in_try_scope, add in_catch_scope.
2514169689Skan	(struct binding_level): Rename eh_region to is_try_scope,
2515169689Skan	add is_catch_scope.
2516169689Skan	(note_level_for_try): Rename from note_level_for_eh.
2517169689Skan	(note_level_for_catch): New.
2518169689Skan	(poplevel): Copy both is_try_scope and is_catch_scope to
2519169689Skan	the named_label_list struct.
2520169689Skan	(check_previous_goto_1): Don't check for catch block via
2521169689Skan	DECL_ARTIFICIAL; use in_try_scope instead.
2522169689Skan	(check_goto): Likewise.
2523169689Skan	* cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
2524169689Skan	* except.c (expand_start_catch_block): Call note_level_for_catch.
2525169689Skan	* semantics.c (begin_compound_stmt): Update for note_level_for_try.
2526169689Skan
2527169689Skan2001-03-27  Richard Henderson  <rth@redhat.com>
2528169689Skan
2529169689Skan	* except.c: Use USING_SJLJ_EXCEPTIONS instead of
2530169689Skan	exceptions_via_longjmp.
2531169689Skan
2532169689Skan2001-03-27  Phil Edwards  <pme@sources.redhat.com>
2533169689Skan
2534169689Skan	* pt.c (check_default_tmpl_args):  Make error messages clearer.
2535169689Skan
2536169689Skan2001-03-26  Phil Edwards  <pme@sources.redhat.com>
2537169689Skan
2538169689Skan	* error.c:  Also undefine 'A' macro used for cp_printers definition.
2539169689Skan
2540169689Skan2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2541169689Skan
2542169689Skan	* Make-lang.in: Depend on $(SYSTEM_H), not system.h.
2543169689Skan
2544169689Skan2001-03-26  Mike Yang <yang@research.att.com>
2545169689Skan	    Mark Mitchell  <mark@codesourcery.com>
2546169689Skan
2547169689Skan	* dump.c (dump_access): New function.
2548169689Skan	(cp_dump_tree): Use it.  Dump basetype information for class
2549169689Skan	types.
2550169689Skan
2551169689Skan2001-03-26  Mark Mitchell  <mark@codesourcery.com>
2552169689Skan
2553169689Skan	* Makefile.in (optimize.o): Depend on params.h.
2554169689Skan	(duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
2555169689Skan	(init_decl_processing): Set flag_no_inline when doing
2556169689Skan	inlining-on-trees.
2557169689Skan	* optimize.c: Include params.h.
2558169689Skan	(struct inline_data): Improve documentation of FNS.  Add
2559169689Skan	FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
2560169689Skan	(INSNS_PER_STMT): New macro.
2561169689Skan	(remap_block): Use CLONING_P.
2562169689Skan	(inlinable_function_p): Don't inline big functions.
2563169689Skan	(expand_call_inline): Keep track of how much inlining we've done.
2564169689Skan	(optimize_function): Set FIRST_INLINED_FN.
2565169689Skan	(maybe_clone_body): Set CLONING_P.
2566169689Skan	* semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
2567169689Skan	tree nodes.
2568169689Skan	(genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
2569169689Skan	rest_of_compilation.  Clear DECL_RTL for local variables
2570169689Skan	afterwards.
2571169689Skan	(clear_decl_rtl): New function.
2572169689Skan
2573169689Skan2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>
2574169689Skan
2575169689Skan	Implement DR 209
2576169689Skan	* cp-tree.h (skip_type_access_control,
2577169689Skan	reset_type_access_control): Prototype.
2578169689Skan	* decl.c (grokdeclarator): Access of friends is not checked.
2579169689Skan	* parse.y (component_decl_list): Reset type access control.
2580169689Skan	* semantics.c (decl_type_access_control): Clear
2581169689Skan	current_type_lookups.
2582169689Skan	(save_type_access_control): Don't save if not deferring.
2583169689Skan	(skip_type_access_control, reset_type_access_control): New
2584169689Skan	functions.
2585169689Skan	(begin_class_definition): Do type access control for basetypes.
2586169689Skan	Start deferred access control.
2587169689Skan	(finish_class_definition): Resume immediate access control if
2588169689Skan	this is a local class.
2589169689Skan
2590169689Skan2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2591169689Skan
2592169689Skan	* class.c (add_method): Use memcpy/memmove, not bcopy.
2593169689Skan
2594169689Skan	* decl.c (duplicate_decls): Likewise.
2595169689Skan
2596169689Skan2001-03-23  Jakub Jelinek  <jakub@redhat.com>
2597169689Skan
2598169689Skan	* mangle.c (write_discriminator): Use `_0' for discriminator 1,
2599169689Skan	not `_'.
2600169689Skan
2601169689Skan2001-03-23  Jakub Jelinek  <jakub@redhat.com>
2602169689Skan
2603169689Skan	* decl.c (local_names): Define.
2604169689Skan	(push_local_name): New.
2605169689Skan	(grok_reference_init): Return init if initializing static reference
2606169689Skan	variable with non-constant instead of emitting it.
2607169689Skan	Move expand_static_init call to cp_finish_decl.
2608169689Skan	(layout_var_decl): Call push_local_name.
2609169689Skan	(maybe_commonize_var): Allow inlining functions even if they have
2610169689Skan	static local variables, use comdat_linkage for them if flag_weak.
2611169689Skan	(check_initializer): Call obscure_complex_init if
2612169689Skan	grok_reference_init returned nonzero.
2613169689Skan	(save_function_data): Clear x_local_names.
2614169689Skan	(pop_cp_function_context): Free x_local_names.
2615169689Skan	(mark_inlined_fns): Remove.
2616169689Skan	(mark_lang_function): Mark x_local_names.
2617169689Skan	(lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
2618169689Skan	Mark inlined_fns as tree, remove call to mark_inlined_fns.
2619169689Skan	* class.c (alter_access): Ensure DECL_ACCESS is never set if
2620169689Skan	DECL_DISCRIMINATOR_P.
2621169689Skan	* cp-tree.h (cp_language_function): Add x_local_names.
2622169689Skan	(lang_decl_flags): Add discriminator into u2.
2623169689Skan	(lang_decl_inlined_fns): Remove.
2624169689Skan	(lang_decl): inlined_fns is now a TREE_VEC.
2625169689Skan	(DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
2626169689Skan	* optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
2627169689Skan	TREE_VEC, not a custom structure.
2628169689Skan	(optimize_function): Likewise.
2629169689Skan	* mangle.c (discriminator_for_local_entity): Discriminate among
2630169689Skan	VAR_DECL local entities.
2631169689Skan	* search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
2632169689Skan	is not valid.
2633169689Skan
2634169689Skan2001-03-22  Bryce McKinlay  <bryce@albatross.co.nz>
2635169689Skan
2636169689Skan	Add support for Java interface method calls.
2637169689Skan	* cp-tree.h (struct lang_type): Add java_interface flag.
2638169689Skan	(TYPE_JAVA_INTERFACE): New macro.
2639169689Skan	* tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
2640169689Skan	by setting TYPE_JAVA_INTERFACE.
2641169689Skan	* call.c (java_iface_lookup_fn): New static.
2642169689Skan	(build_over_call): If calling a method declared in a
2643169689Skan	TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
2644169689Skan	expression which resolves the function address.
2645169689Skan	(build_java_interface_fn_ref): New function.
2646169689Skan
2647169689Skan2001-03-22  Richard Henderson  <rth@redhat.com>
2648169689Skan
2649169689Skan	* Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
2650169689Skan	* except.c: Don't include it.
2651169689Skan
2652169689Skan2001-03-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2653169689Skan	    based on an idea from Joe Buck <jbuck@synopsys.com>
2654169689Skan
2655169689Skan	* parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
2656169689Skan	New nonterminals.
2657169689Skan	(data_def, component_decl): Add reductions to bad_decl.
2658169689Skan
2659169689Skan2001-03-22  Jakub Jelinek  <jakub@redhat.com>
2660169689Skan
2661169689Skan	* method.c (do_build_assign_ref): Don't use build_modify_expr for
2662169689Skan	anonymous aggregates, since they don't have assignment operator
2663169689Skan	method.
2664169689Skan	* decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
2665169689Skan	assignment operators for anonymous structure fields.
2666169689Skan
2667169689Skan2001-03-21  Jason Merrill  <jason@redhat.com>
2668169689Skan
2669169689Skan	* pt.c (instantiate_decl): Abort if we see a member constant
2670169689Skan	instantiation that doesn't already have its initializer.
2671169689Skan	Downgrade explicit instantiation without definition to pedwarn.
2672169689Skan
2673169689Skan	* cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
2674169689Skan	* class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
2675169689Skan	(import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
2676169689Skan
2677169689Skan	* cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
2678169689Skan	(pending_vtables): Remove.
2679169689Skan	* decl2.c (pending_vtables): Remove.
2680169689Skan	(import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
2681169689Skan	CLASSTYPE_VTABLE_NEEDS_WRITING.
2682169689Skan	(import_export_class): Likewise.
2683169689Skan	(init_decl2): Don't mark pending_vtables.
2684169689Skan	* lex.c (handle_pragma_vtable): Just sorry.
2685169689Skan	* pt.c (instantiate_class_template): Don't mess with
2686169689Skan	CLASSTYPE_VTABLE_NEEDS_WRITING.
2687169689Skan	(mark_class_instantiated): Likewise.
2688169689Skan	* ptree.c (print_lang_type): Don't print it.
2689169689Skan	* semantics.c (begin_class_definition): Don't set it.
2690169689Skan
2691169689Skan	* pt.c (template_tail): Replace with last_pending_template.
2692169689Skan	(maybe_templates, maybe_template_tail): Remove.
2693169689Skan	(add_pending_template): Adjust.
2694169689Skan	(instantiate_pending_templates): Adjust.
2695169689Skan
2696169689Skan	* cp-tree.h (struct saved_scope): Remove lang_stack field.
2697169689Skan	(current_lang_stack): Remove.
2698169689Skan	* decl.c (maybe_push_to_top_level): Don't initialize it.
2699169689Skan	(duplicate_decls): Use current_lang_depth.
2700169689Skan	(xref_basetypes): Likewise.
2701169689Skan	* class.c (current_lang_depth): New fn.
2702169689Skan	(push_lang_context): Use more varray functionality.
2703169689Skan	(pop_lang_context): Likewise.
2704169689Skan
2705169689Skan	* error.c (GLOBAL_THING): Always use '__'.
2706169689Skan
2707169689Skan2001-03-21  Mark Mitchell  <mark@codesourcery.com>
2708169689Skan
2709169689Skan	* class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
2710169689Skan
2711169689Skan	* mangle.c (mangle_decl_string): Mangle the names of overloaded
2712169689Skan	operators, even when they have `extern "C"' linkage.
2713169689Skan
2714169689Skan2001-03-19  Mark Mitchell  <mark@codesourcery.com>
2715169689Skan
2716169689Skan	* class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
2717169689Skan	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2718169689Skan	where it's not necessary.
2719169689Skan	(add_method): Remove optimization involving comparison of
2720169689Skan	DECL_ASSEMBLER_NAME.
2721169689Skan	(build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
2722169689Skan	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2723169689Skan	where it's not necessary.
2724169689Skan	(check_methods): Likewise.
2725169689Skan	(build_clone): Likewise.
2726169689Skan	(built_vtt): Likewise.
2727169689Skan	* cp-tree.h (DECL_NEEDED_P): Likewise.
2728169689Skan	* decl.c (pushtag): Likewise.
2729169689Skan	(duplicate_decls): Likewise.
2730169689Skan	(pushdecl): Likewise.
2731169689Skan	(builtin_function): Likewise.
2732169689Skan	(build_library_fn_1): Set DECL_LANGUAGE for library functions.
2733169689Skan	(build_cp_library_fn): Likewise.
2734169689Skan	(maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
2735169689Skan	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2736169689Skan	where it's not necessary.
2737169689Skan	(make_rtl_for_nonlocal_decl): Likewise.
2738169689Skan	(cp_finish_decl): Likewise.
2739169689Skan	(grokfndecl): Likewise.
2740169689Skan	(grokvardecl): Likewise.
2741169689Skan	(grokdeclarator): Likewise.
2742169689Skan	(start_function): Likewise.
2743169689Skan	(cp_missing_return_ok_p): Likewise.
2744169689Skan	* decl2.c (grokclassfn): Likewise.
2745169689Skan	(check_classfn): Likewise.
2746169689Skan	(finish_static_data_member_decl): Likewise.
2747169689Skan	(grokfield): Likewise.
2748169689Skan	* error.c (GLOBAL_IORD_P): Remove.
2749169689Skan	(dump_global_iord): Improve output.
2750169689Skan	(dump_decl): Avoid using DECL_ASSEMBLER_NAME.
2751169689Skan	* except.c (nothrow_libfn_p): Summarily reject any function not in
2752169689Skan	namespace-scope.
2753169689Skan	* init.c (build_java_class_ref): Don't explicitly set
2754169689Skan	DECL_ASSEMBLER_NAME after calling mangle_decl.
2755169689Skan	* mangle.c (mangle_decl_string): Handle extern "C" functions.
2756169689Skan	(mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
2757169689Skan	* method.c (set_mangled_name_for_decl): Don't explicitly set
2758169689Skan	DECL_ASSEMBLER_NAME after calling mangle_decl.
2759169689Skan	(make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
2760169689Skan	IDENTIFIER_GLOBAL_VALUE for the thunk.
2761169689Skan	* pt.c (set_mangled_name_for_template_decl): Remove.
2762169689Skan	(check_explicit_specialization): Don't use it.
2763169689Skan	(looup_template_class): Don't set DECL_ASSEMBLER_NAME.
2764169689Skan	(tsubst_friend_function): Likewise.
2765169689Skan	(tsubst_decl): Likewise.
2766169689Skan	(regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
2767169689Skan	* rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
2768169689Skan	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2769169689Skan	where it's not necessary.
2770169689Skan	(tinfo_base_init): Likewise.
2771169689Skan	(create_real_tinfo_var): Likewise.
2772169689Skan	* search.c (looup_field_1): Likewise.
2773169689Skan	* semantics.c (finish_named_return_value): Likewise.
2774169689Skan	* tree.c (init_tree): Set lang_set_decl_assembler_name.
2775169689Skan
2776169689Skan2001-03-15  Gabriel Dos Reis  <gdr@codesourcery.com>
2777169689Skan
2778169689Skan	Correct semantics restrictions checking in throw-expression.
2779169689Skan	* except.c (is_admissible_throw_operand): New function.
2780169689Skan	(build_throw): Use it.
2781169689Skan
2782169689Skan2001-03-14  Mark Mitchell  <mark@codesourcery.com>
2783169689Skan
2784169689Skan	* decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
2785169689Skan	and its ilk.
2786169689Skan
2787169689Skan2001-03-14  Mark Mitchell  <mark@codesourcery.com>
2788169689Skan
2789169689Skan	* class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
2790169689Skan	* cp-tree.h (DECL_IN_MEMORY_P): Likewise.
2791169689Skan	* decl.c (duplicate_decls): Likewise.
2792169689Skan	(builtin_function): Likewise.
2793169689Skan	(build_library_fn): Likewise.
2794169689Skan	(build_cp_library_fn): Likewise.
2795169689Skan	(check_initializer): Likewise.
2796169689Skan	(cp_finish_decl): Likewise.
2797169689Skan	* decl2.c (grokfield): Likewise.
2798169689Skan	(grok_function_init): Remove #if 0'd code.
2799169689Skan	(finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
2800169689Skan	* friend.c (do_friend): Likewise.
2801169689Skan	* init.c (get_temp_regvar): Likewise.
2802169689Skan	* method.c (make_thunk): Likewise.
2803169689Skan	* pt.c (tsubst_friend_function): Likewise.
2804169689Skan	(tsubst_decl): Likewise.
2805169689Skan	(regenerate_decl_from_template): Likewise.
2806169689Skan	* semantics.c (genrtl_named_return_value): Likewise.
2807169689Skan	(expand_body): Likewise.
2808169689Skan	(genrtl_finish_function): Likewise.
2809169689Skan	* tree.c (cp_tree_equal): Likewise.
2810169689Skan
2811169689Skan2001-03-12  Nathan Sidwell  <nathan@codesourcery.com>
2812169689Skan
2813169689Skan	* call.c (convert_like_real): Add extra semantics to INNER
2814169689Skan	parameter. Don't convert to temporary if a user conversion
2815169689Skan	gives us an lvalue that we're about to bind to a reference.
2816169689Skan	Set INNER to indicate pending reference binding on recursive
2817169689Skan	calls.
2818169689Skan
2819169689Skan2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
2820169689Skan
2821169689Skan	* cp/lex.c: Delete duplicate pending_lang_change.
2822169689Skan
2823169689Skan2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
2824169689Skan
2825169689Skan	* cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
2826169689Skan	Similarly.
2827169689Skan	* cp/repo.c (get_base_filename, open_repo_file): Similarly.
2828169689Skan	* cp/cp-tree.h: Remove file_name_nondirectory prototype.
2829169689Skan
2830169689Skan2001-03-09  Zack Weinberg  <zackw@stanford.edu>
2831169689Skan
2832169689Skan	* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
2833169689Skan
2834169689Skan2001-03-08  Stan Shebs  <shebs@apple.com>
2835169689Skan
2836169689Skan	* cp-tree.h (set_identifier_local_value): Remove unused decl.
2837169689Skan
2838169689Skan2001-03-06  Zack Weinberg  <zackw@stanford.edu>
2839169689Skan
2840169689Skan	* spew.c: Remove references to CPP_OSTRING.
2841169689Skan
2842169689Skan2001-03-06  Andrew Haley  <aph@redhat.com>
2843169689Skan
2844169689Skan	* typeck.c (convert_arguments): Check that we have an fndecl.
2845169689Skan
2846169689Skan2001-03-05  Andrew Haley  <aph@redhat.com>
2847169689Skan
2848169689Skan	* typeck.c (convert_arguments): Don't do ellipsis conversion for
2849169689Skan	__built_in_constant_p.
2850169689Skan
2851169689Skan2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
2852169689Skan
2853169689Skan	* typeck.c (build_static_cast): Allow enum to enum conversions
2854169689Skan	as per DR 128.
2855169689Skan
2856169689Skan2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
2857169689Skan
2858169689Skan	* class.c (check_field_decls): Pointers to member do not a
2859169689Skan	non-pod struct make, as per DR 148.
2860169689Skan
2861169689Skan2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
2862169689Skan
2863169689Skan	* call.c (joust): cp_pedwarn when using gnu extension concerning
2864169689Skan	worst conversion sequences.
2865169689Skan
2866169689Skan2001-03-01  Zack Weinberg  <zackw@stanford.edu>
2867169689Skan
2868169689Skan	* decl.c: Replace all uses of 'boolean' with 'bool'.
2869169689Skan
2870169689Skan2001-03-01  Zack Weinberg  <zackw@stanford.edu>
2871169689Skan
2872169689Skan	* lang-specs.h: Add zero initializer for cpp_spec field to
2873169689Skan	all array elements that need one.  Don't put an #ifdef inside
2874169689Skan	the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
2875169689Skan	use it.
2876169689Skan
2877169689Skan2001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
2878169689Skan
2879169689Skan	Implement using decls inside template functions.
2880169689Skan	* decl2.c (validate_nonmember_using_decl): Don't special case
2881169689Skan	fake_std_node in the global namespace. Don't reject early when
2882169689Skan	processing a template.
2883169689Skan	(do_local_using_decl): Add to statement tree. Don't do further
2884169689Skan	processing when building a template.
2885169689Skan	* pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
2886169689Skan
2887169689Skan2001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
2888169689Skan
2889169689Skan	* decl2.c (do_nonmember_using_decl): Don't complain if we find
2890169689Skan	same function. Do complain about ambiguating extern "C"
2891169689Skan	declarations.
2892169689Skan
2893169689Skan2001-02-28  Nathan Sidwell  <nathan@codesourcery.com>
2894169689Skan
2895169689Skan	Remove floating point and complex type template constant parms.
2896169689Skan	* pt.c (convert_nontype_argument): Remove REAL_TYPE and
2897169689Skan	COMPLEX_TYPE extensions.
2898169689Skan	(invalid_nontype_parm_type_p): Likewise.
2899169689Skan
2900169689Skan2001-02-27  Jeffrey Oldham  <oldham@codesourcery.com>
2901169689Skan
2902169689Skan	* except.c (call_eh_info): Revert "match_function"'s type.
2903169689Skan
2904169689Skan2001-02-27  Nathan Sidwell  <nathan@codesourcery.com>
2905169689Skan
2906169689Skan	Fix ctor vtable vcall offsets.
2907169689Skan	* class.c (struct vtbl_init_data_s): Add rtti_binfo member.
2908169689Skan	(build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
2909169689Skan	(get_matching_base): Remove.
2910169689Skan	(get_original_base): New function.
2911169689Skan	(build_vtbl_initializer): Initialize vid.rtti_binfo.
2912169689Skan	Use a virtual thunk for a ctor vtable with an index
2913169689Skan	(add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
2914169689Skan	primary base within a constructor vtable. Only set
2915169689Skan	BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
2916169689Skan	when primary base has been lost.
2917169689Skan	* cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
2918169689Skan
2919169689Skan2001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
2920169689Skan
2921169689Skan	* call.c (joust): Ensure more_specialized()'s argument length
2922169689Skan	parameter has correct value for constructors.
2923169689Skan
2924169689Skan2001-02-26  Nathan Sidwell  <nathan@codesourcery.com>
2925169689Skan
2926169689Skan	* except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
2927169689Skan
2928169689Skan	* decl.c (mark_inlined_fns): Prototype.
2929169689Skan
2930169689Skan2001-02-22  Mark Mitchell  <mark@codesourcery.com>
2931169689Skan
2932169689Skan	* spew.c (yylex): Correct handling of friends.
2933169689Skan
2934169689Skan2001-02-22  Mark Mitchell  <mark@codesourcery.com>
2935169689Skan
2936169689Skan	* mangle.c (write_encoding): Pass write_function_type the
2937169689Skan	FUNCTION_DECL for the function being encoded.
2938169689Skan	(write_function_type): Pass it along to write_bare_function_type.
2939169689Skan	(write_bare_function_type): Pass it along to write_method_parms.
2940169689Skan	(write_method_parms): Don't mangle the compiler-generated
2941169689Skan	parameters to a constructor or destructor.
2942169689Skan
2943169689Skan2001-02-22  Andreas Jaeger  <aj@suse.de>
2944169689Skan
2945169689Skan	* optimize.c: Include toplev.h for
2946169689Skan	note_deferral_of_defined_inline_function prototype.
2947169689Skan
2948169689Skan2001-02-22  Jakub Jelinek  <jakub@redhat.com>
2949169689Skan
2950169689Skan	* cp-tree.h (struct lang_decl_inlined_fns): New.
2951169689Skan	(struct lang_decls): Add inlined_fns.
2952169689Skan	(DECL_INLINED_FNS): New macro.
2953169689Skan	* optimize.c (struct inline_data): Add inlined_fns.
2954169689Skan	(declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
2955169689Skan	(inlinable_function_p): Likewise, fix typo in comment,
2956169689Skan	function is not inlinable if it already inlined function currently
2957169689Skan	being optimized.
2958169689Skan	(expand_call_inline): Add fn to inlined_fns if necessary.
2959169689Skan	(optimize_function): Initialize inlined_fns.
2960169689Skan	Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
2961169689Skan	* decl.c (mark_inlined_fns): New function.
2962169689Skan	(lang_mark_tree): Call it.
2963169689Skan
2964169689Skan2001-02-21  Jason Merrill  <jason@redhat.com>
2965169689Skan
2966169689Skan	* cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
2967169689Skan	(DECL_UNINLINABLE): Move to middle-end.
2968169689Skan
2969169689Skan	* class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
2970169689Skan	* decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
2971169689Skan	* class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
2972169689Skan	* optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
2973169689Skan	parms and outer BLOCK.  note_deferral_of_defined_inline_function.
2974169689Skan
2975169689Skan	* method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
2976169689Skan	second parm of op=.
2977169689Skan
2978169689Skan2001-02-19  Mark Mitchell  <mark@codesourcery.com>
2979169689Skan
2980169689Skan	* decl2.c (set_decl_namespace): Allow explicit instantiations in
2981169689Skan	any namespace.
2982169689Skan
2983169689Skan2001-02-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2984169689Skan
2985169689Skan	* optimize.c (expand_call_inline): Don't walk subtrees of type
2986169689Skan	nodes.
2987169689Skan
2988169689Skan2001-02-18  Mark Mitchell  <mark@codesourcery.com>
2989169689Skan
2990169689Skan	* class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
2991169689Skan	for a destructor.
2992169689Skan
2993169689Skan2001-02-18  Jason Merrill  <jason@redhat.com>
2994169689Skan
2995169689Skan	Do put the VTT parameter in DECL_ARGUMENTS.
2996169689Skan	* cp-tree.h (struct cp_language_function): Add x_vtt_parm.
2997169689Skan	(current_vtt_parm): New macro.
2998169689Skan	(struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
2999169689Skan	(DECL_HAS_VTT_PARM_P): New macro.
3000169689Skan	(DECL_VTT_PARM): Remove.
3001169689Skan	(FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
3002169689Skan	* decl.c (duplicate_decls): Only copy the operator code if
3003169689Skan	appropriate.
3004169689Skan	(start_function): Set current_vtt_parm.
3005169689Skan	(lang_mark_tree): Don't mark vtt_parm.
3006169689Skan	* decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
3007169689Skan	DECL_ARGUMENTS.  Set DECL_HAS_VTT_PARM_P.
3008169689Skan	* class.c (build_clone): Maybe remove the VTT parm.
3009169689Skan	* optimize.c (maybe_clone_body): Set up the VTT parm.
3010169689Skan	* pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
3011169689Skan	* call.c (build_over_call): Just allow the VTT arg.
3012169689Skan	* method.c (make_thunk): Don't set DECL_VTT_PARM.
3013169689Skan	(do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
3014169689Skan	(synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
3015169689Skan	* decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
3016169689Skan	* error.c (dump_function_decl): Likewise.
3017169689Skan	* call.c (build_user_type_conversion_1,	convert_like_real): Abort
3018169689Skan	if we try to call a constructor with in-charge or VTT parms.
3019169689Skan	* method.c (skip_artificial_parms_for): New fn.
3020169689Skan	* call.c (add_function_candidate, build_over_call): Call it.
3021169689Skan	* call.c (build_new_method_call): Use current_vtt_parm.
3022169689Skan	* init.c (expand_virtual_init): Likewise.
3023169689Skan	* class.c (same_signature_p): No longer static.
3024169689Skan	* cp-tree.h: Declare it.
3025169689Skan	* search.c (look_for_overrides_r): Use it.
3026169689Skan
3027169689Skan2001-02-17  Mark Mitchell  <mark@codesourcery.com>
3028169689Skan
3029169689Skan	* cp-tree.h (new_abi_rtti_p): Remove.
3030169689Skan	(name_mangling_version): Likewise.
3031169689Skan	(flag_do_squangling): Likewise.
3032169689Skan	* class.c (build_rtti_vtbl_entries): Remove old ABI support.
3033169689Skan	* decl.c (grokfndecl): Likewise.
3034169689Skan	* decl2.c (name_mangling_version): Remove.
3035169689Skan	(flag_do_squangling): Likewise.
3036169689Skan	(lang_f_options): Remove `squangle'.
3037169689Skan	(unsupported_options): Add `squangle'.
3038169689Skan	(cxx_decode_option): Issue a warning about uses of
3039169689Skan	-fname-mangling-version.
3040169689Skan	(finish_file): Remove old ABI support.
3041169689Skan	* pt.c (check_explicit_specialization): Likewise.
3042169689Skan	(tsubst_decl): Likewise.
3043169689Skan	* rtti.c (init_rtti_processing): Likewise.
3044169689Skan	(build_headof): Likewise.
3045169689Skan	(get_tinfo_decl_dynamic): Likewise.
3046169689Skan	(tinfo_from_decl): Likewise.
3047169689Skan	(build_dynamic_cast_1): Likewise.
3048169689Skan	(synthesize_tinfo_var): Likewise.
3049169689Skan	* init.c (build_new): Allow enumeration types for the array-bounds
3050169689Skan	in a direct-new-declarator.
3051169689Skan
3052169689Skan	* semantics.c (finish_typeof): Resolve OFFSET_REFs.
3053169689Skan
3054169689Skan	* pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
3055169689Skan	TREE_PROTECTED from the template being specialized.
3056169689Skan
3057169689Skan2001-02-17  Jason Merrill  <jason@redhat.com>
3058169689Skan
3059169689Skan	* decl2.c (build_artificial_parm): Set TREE_READONLY.
3060169689Skan
3061169689Skan	* decl.c (bad_specifiers): Allow throw specs on things with
3062169689Skan	pointer-to-function or -member-function type.
3063169689Skan	* init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
3064169689Skan	a pmf.
3065169689Skan
3066169689Skan2001-02-17  Mark Mitchell  <mark@codesourcery.com>
3067169689Skan
3068169689Skan	* call.c (check_dtor_name): Handle template names correctly.
3069169689Skan
3070169689Skan2001-02-16  Jason Merrill  <jason@redhat.com>
3071169689Skan
3072169689Skan	* cp-tree.h (DECL_USE_VTT_PARM): Remove.
3073169689Skan	* decl2.c (maybe_retrofit_in_chrg): Don't create it.
3074169689Skan	* optimize.c (maybe_clone_body): Don't substitute it.
3075169689Skan	* call.c (build_new_method_call): Check in_chrg instead.
3076169689Skan	* init.c (expand_virtual_init): Likewise.
3077169689Skan
3078169689Skan2001-02-16  Gabriel Dos Reis  <gdr@codesourcery.com>
3079169689Skan
3080169689Skan	* decl.c (check_tag_decl): Make sure a typedef for an anonymous
3081169689Skan	class-type introduces at least a type-name.
3082169689Skan
3083169689Skan2001-02-16  Jakub Jelinek  <jakub@redhat.com>
3084169689Skan
3085169689Skan	* call.c (convert_like_real): Create a temporary for non-lvalue.
3086169689Skan
3087169689Skan2001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
3088169689Skan
3089169689Skan	* cp-tree.h: Fix typos in comments.
3090169689Skan
3091169689Skan2001-02-16  Jason Merrill  <jason@redhat.com>
3092169689Skan
3093169689Skan	* optimize.c (remap_block): If we're compiling a clone, pass the
3094169689Skan	new block to insert_block.
3095169689Skan
3096169689Skan2001-02-16  Mark Mitchell  <mark@codesourcery.com>
3097169689Skan
3098169689Skan	* semantics.c (finish_asm_stmt): Robustify.
3099169689Skan
3100169689Skan2001-02-15  Mark Mitchell  <mark@codesourcery.com>
3101169689Skan
3102169689Skan	* pt.c (push_template_decl_real): Don't remangle the name of a
3103169689Skan	class template.
3104169689Skan
3105169689Skan2001-02-15  Jim Meyering  <meyering@lucent.com>
3106169689Skan
3107169689Skan	* Make-lang.in (c++.install-common): Depend on installdirs.
3108169689Skan	(c++.install-info): Likewise.
3109169689Skan	(c++.install-man): Likewise.
3110169689Skan
3111169689Skan2001-02-15  Mark Mitchell  <mark@codesourcery.com>
3112169689Skan
3113169689Skan	* typeck2.c (build_m_component_ref): Robustify.
3114169689Skan
3115169689Skan2001-02-15  Alexandre Oliva  <aoliva@redhat.com>
3116169689Skan
3117169689Skan	* friend.c (do_friend): Don't take the nested [template] class
3118169689Skan	into account when deciding whether to warn about the friend
3119169689Skan	function not referring to a template function.
3120169689Skan
3121169689Skan2001-02-14  Jakub Jelinek  <jakub@redhat.com>
3122169689Skan
3123169689Skan	* typeck.c (build_unary_op): Clarify error message.
3124169689Skan
3125169689Skan2001-02-08  Aldy Hernandez  <aldyh@redhat.com>
3126169689Skan
3127169689Skan	* parse.y (component_constructor_declarator): allow optional
3128169689Skan	parentheses around constructor class name.
3129169689Skan
3130169689Skan2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3131169689Skan
3132169689Skan	* cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
3133169689Skan	section.
3134169689Skan	* init.c (emit_base_init): Remove incorrect comment about
3135169689Skan	virtual bases.
3136169689Skan	* method.c (make_thunk): Fix comment alignment.
3137169689Skan
3138169689Skan2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3139169689Skan
3140169689Skan	Kill remnants of this is variable.
3141169689Skan	* cp-tree.h (flag_this_is_variable): Remove.
3142169689Skan	* decl2.c (flag_this_is_variable): Remove.
3143169689Skan	* class.c (fixed_type_or_null): Add cdtor parm. Adjust.
3144169689Skan	(build_vbase_path): The path is non-static, even in a cdtor.
3145169689Skan	(resolves_to_fixed_type_p): Add additional return value.
3146169689Skan	* search.c (init_vbase_pointers): Adjust.
3147169689Skan	* tree.c (lvalue_p_1): Adjust.
3148169689Skan	* typeck.c (mark_addressable): Adjust.
3149169689Skan
3150169689Skan2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3151169689Skan
3152169689Skan	* pt.c (unify): Don't check cv quals of array types.
3153169689Skan
3154169689Skan2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
3155169689Skan
3156169689Skan	* tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
3157169689Skan	check whether we already have the type.
3158169689Skan
3159169689Skan2001-02-13  Mark Mitchell  <mark@codesourcery.com>
3160169689Skan
3161169689Skan	* cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
3162169689Skan	* call.c (build_op_delete_call): Simplify to remove duplicate
3163169689Skan	code.
3164169689Skan	* class.c (clone_function_decl): Don't build the deleting variant
3165169689Skan	of a non-virtual destructor.
3166169689Skan	* decl.c (finish_destructor_body): Don't call delete if this is a
3167169689Skan	non-virtual destructor.
3168169689Skan	* init.c (build_delete): Explicitly call `operator delete' when
3169169689Skan	deleting an object with a non-virtual destructor.
3170169689Skan
3171169689Skan2001-02-13  Jason Merrill  <jason@redhat.com>
3172169689Skan
3173169689Skan	* lang-specs.h: Add more __EXCEPTIONS.
3174169689Skan
3175169689Skan2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3176169689Skan
3177169689Skan	* typeck2.c (process_init_constructor): Check
3178169689Skan	TREE_HAS_CONSTRUCTOR before issuing missing init warning.
3179169689Skan
3180169689Skan2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3181169689Skan
3182169689Skan	* pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
3183169689Skan	Remove spurious information in comment. Allow further
3184169689Skan	adjustments of REFERENCE_TYPE args.
3185169689Skan
3186169689Skan2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3187169689Skan
3188169689Skan	* errfn.c (cp_deprecated): Tweak diagnostic text.
3189169689Skan	* parse.y (new_initializer): Deprecate initializer lists
3190169689Skan	extension.
3191169689Skan
3192169689Skan2001-02-12  Mark Mitchell  <mark@codesourcery.com>
3193169689Skan
3194169689Skan	Remove old ABI support.
3195169689Skan
3196169689Skan2001-02-11  Mark Mitchell  <mark@codesourcery.com>
3197169689Skan
3198169689Skan	* decl2.c (flag_vtable_thunks): Always set it to 1.
3199169689Skan	(flag_new_abi): Likewise.
3200169689Skan	* lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
3201169689Skan
3202169689Skan	* Makefile.in (g++spec.o): Fix typo.
3203169689Skan
3204169689Skan2001-02-09  Jason Merrill  <jason@redhat.com>
3205169689Skan
3206169689Skan	* lang-specs.h: Restore definition of __EXCEPTIONS.
3207169689Skan
3208169689Skan2001-02-08  Jason Merrill  <jason@redhat.com>
3209169689Skan
3210169689Skan	* search.c (shared_member_p): New function.
3211169689Skan	(lookup_field_r): Use it.
3212169689Skan	* cp-tree.h (SHARED_MEMBER_P): Remove.
3213169689Skan
3214169689Skan	* method.c (process_overload_item): Handle template-dependent array
3215169689Skan	bounds.
3216169689Skan	* pt.c (type_unification_real): If we end up with undeduced nontype
3217169689Skan	parms, try again.
3218169689Skan
3219169689Skan	* decl.c (lookup_name_real): Tweak warning to refer to decls, not
3220169689Skan	types.
3221169689Skan
3222169689Skan	* typeck2.c (friendly_abort): Don't say anything if we have
3223169689Skan	earlier errors or sorries.
3224169689Skan
3225169689Skan	* decl.c (check_tag_decl): Notice attempts to redefine bool and
3226169689Skan	wchar_t.  Ignore if in_system_header.
3227169689Skan
3228169689Skan	* decl.c (maybe_push_cleanup_level): New fn...
3229169689Skan	(start_decl_1): ...split out from here.
3230169689Skan	* cvt.c (build_up_reference): Use it.
3231169689Skan	* cp-tree.h: Declare it.
3232169689Skan
3233169689Skan2001-02-07  Mark Mitchell  <mark@codesourcery.com>
3234169689Skan
3235169689Skan	* lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
3236169689Skan	spec.
3237169689Skan
3238169689Skan2001-02-06  Nathan Sidwell  <nathan@codesourcery.com>
3239169689Skan
3240169689Skan	* pt.c (lookup_template_class): Make sure it's a primary
3241169689Skan	template or template_template_parm when called from the parser.
3242169689Skan	(instantiate_template_class): Add assertion.
3243169689Skan
3244169689Skan2001-02-05  Alexandre Oliva  <aoliva@redhat.com>
3245169689Skan
3246169689Skan	* method.c (build_mangled_name) [old abi]: Protect flush_repeats()
3247169689Skan	from error_mark_node.
3248169689Skan
3249169689Skan2001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
3250169689Skan
3251169689Skan	Fix specification and implementation bugs in V3 ABI
3252169689Skan	construction vtables.
3253169689Skan	* cp-tree.h (flag_dump_class_layout): New flag.
3254169689Skan	(BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
3255169689Skan	(BINFO_LOST_PRIMARY_P): New flag.
3256169689Skan	(SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
3257169689Skan	(BINFO_PRIMARY_MARKED_P): Rename to ...
3258169689Skan	(BINFO_PRIMARY_P): ... here.
3259169689Skan	(binfo_via_virtual): New prototype.
3260169689Skan	* decl2.c (flag_dump_class_layout): New flag.
3261169689Skan	(cxx_decode_option): Set it. Adjust -fdump-translation-unit to
3262169689Skan	use `=' as a file name separator.
3263169689Skan	* init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
3264169689Skan	bases.
3265169689Skan	(build_vtbl_address): If this is a virtual primary base, then
3266169689Skan	get the vtbl of what it is ultimately primary for.
3267169689Skan	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
3268169689Skan	for BINFO_PRIMARY_P.
3269169689Skan	(dfs_skip_nonprimary_vbases_markedp): Likewise.
3270169689Skan	(get_shared_vbase_if_not_primary): Likewise.
3271169689Skan	(dfs_get_pure_virtuals): Likewise.
3272169689Skan	(expand_upcast_fixups): Likewise.
3273169689Skan	(fixup_virtual_upcast_offsets): Likewise.
3274169689Skan	(dfs_find_vbase_instance): Likewise.
3275169689Skan	(find_vbase_instance): Likewise.
3276169689Skan	(binfo_from_vbase): Adjust comment to reflect reality.
3277169689Skan	(binfo_via_virtual): New function.
3278169689Skan	* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
3279169689Skan	for binfo walking during VTT construction.
3280169689Skan	(dfs_mark_primary_bases): Remove.
3281169689Skan	(force_canonical_binfo_r): New function.
3282169689Skan	(force_canonical_binfo): New function.
3283169689Skan	(mark_primary_virtual_base): New function.
3284169689Skan	(mark_primary_bases): Walk in inheritance graph order, use
3285169689Skan	mark_primary_virtual_base.
3286169689Skan	(determine_primary_base): Use some more intermediate variables.
3287169689Skan	(dfs_find_final_overrider): Don't check for overriding along a
3288169689Skan	virtual path.
3289169689Skan	(dfs_modify_vtables): Walk into primary virtual bases too.
3290169689Skan	(walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
3291169689Skan	(build_base_fields): Likewise.
3292169689Skan	(dfs_set_offset_for_unshared_vbases): Likewise.
3293169689Skan	(layout_virtual_bases): Likewise.
3294169689Skan	(end_of_class): Likewise.
3295169689Skan	(finish_struct_1): Call dump_class_hierarchy, if requested.
3296169689Skan	(dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
3297169689Skan	(dump_class_hierarchy_r): Add stream parameter. Emit more information.
3298169689Skan	(dump_class_hierarchy): Add file parameter. Append to file, if
3299169689Skan	required.
3300169689Skan	(finish_vtbls): Adjust accumulate_vtbl_inits call.
3301169689Skan	Use canonical base for virtual bases.
3302169689Skan	(build_vtt): Add more comments. Adjust build_vtt_inits call.
3303169689Skan	(build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
3304169689Skan	Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
3305169689Skan	VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
3306169689Skan	virtual VTTs.
3307169689Skan	(dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
3308169689Skan	from DATA.  We want virtual primary bases and all bases via virtual.
3309169689Skan	Only set BINFO_VPTR_INDEX for top level. Look up from a primary
3310169689Skan	virtual base when not a construction vtable.
3311169689Skan	(dfs_ctor_vtable_bases_queue_p): New DFS predicate.
3312169689Skan	(build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
3313169689Skan	Use canonical bases when processing virtual bases.
3314169689Skan	(accumulate_vtbl_inits): We're interested in any base via a
3315169689Skan	virtual path.
3316169689Skan	(dfs_accumulate_vtbl_inits): If this is a primary virtual base
3317169689Skan	within a construction vtable, determine what is being overridden.
3318169689Skan	(build_vtbl_initializer): Add more comments
3319169689Skan	(add_vcall_offset_vtbl_entries_1): Adjust comment.
3320169689Skan	(build_rtti_vtbl_entries): Check if the base has lost its
3321169689Skan	primary.
3322169689Skan
3323169689Skan2001-02-05  Mark Mitchell  <mark@codesourcery.com>
3324169689Skan
3325169689Skan	* Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
3326169689Skan
3327169689Skan2001-02-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3328169689Skan
3329169689Skan	* decl.c (pushdecl): Call abort instead of fatal.
3330169689Skan	* except.c (decl_is_java_type): Call fatal_error instead of fatal.
3331169689Skan	* init.c (build_new_1): Likewise.
3332169689Skan	(build_java_class_ref): Call internal_error and fatal_error, not fatal.
3333169689Skan	* decl.c (build_typename_type): hash_table_init now returns void.
3334169689Skan	decl.c (init_decl_processing): Make an error non-fatal.
3335169689Skan
3336169689Skan2001-02-04  Mark Mitchell  <mark@codesourcery.com>
3337169689Skan
3338169689Skan	* cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
3339169689Skan	Document.
3340169689Skan	(CLASSTYPE_INTERFACE_KNOWN): Likewise.
3341169689Skan	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
3342169689Skan	(SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
3343169689Skan	(SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
3344169689Skan	* decl.c (maybe_commonize_var): Use the new name-mangling where
3345169689Skan	appropriate.
3346169689Skan	* decl2.c (comdat_linkage): Enhance comments.  Make all
3347169689Skan	compiler-generated things static, if COMDAT is not available.
3348169689Skan	(get_tinfo_decl): Do not make typeinfo objects that belong in the
3349169689Skan	library COMDAT.
3350169689Skan	(tinfo_base_init): Use the correct mangled name for typeinfo
3351169689Skan	strings, and push them into the global scope.
3352169689Skan	(typeinfo_in_lib_p): New function.
3353169689Skan	(synthesize_tinfo_var): Use it.
3354169689Skan	(create_real_tinfo_var): Likewise.
3355169689Skan
3356169689Skan2001-02-03  Jakub Jelinek  <jakub@redhat.com>
3357169689Skan
3358169689Skan	* decl.c (push_class_binding): Use context_for_name_lookup instead
3359169689Skan	of CP_DECL_CONTEXT.
3360169689Skan	* search.c (context_for_name_lookup): Remove static.  Check for NULL
3361169689Skan	context in the loop.
3362169689Skan	* cp-tree.h (context_for_name_lookup): Add prototype.
3363169689Skan
3364169689Skan2001-02-02  Jakub Jelinek  <jakub@redhat.com>
3365169689Skan
3366169689Skan	* cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
3367169689Skan	* tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
3368169689Skan	Remove.
3369169689Skan	* call.c (convert_class_to_reference, build_user_type_conversion_1,
3370169689Skan	add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
3371169689Skan
3372169689Skan2001-02-02  Mark Mitchell  <mark@codesourcery.com>
3373169689Skan
3374169689Skan	* Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
3375169689Skan	of macros used when compiling g++spec.c.
3376169689Skan	* g++spec.c (lang_specific_driver): Link with the shared
3377169689Skan	libgcc by default.
3378169689Skan
3379169689Skan2001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
3380169689Skan
3381169689Skan	* decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
3382169689Skan	make_reference_declarator, make_call_declarator), method.c
3383169689Skan	(implicitly_declare_fn), parse.y (namespace_using_decl,
3384169689Skan	notype_unqualified_id, expr_or_declarator, new_type_id,
3385169689Skan	after_type_declarator, direct_after_type_declarator,
3386169689Skan	notype_declarator, complex_notype_declarator,
3387169689Skan	complex_direct_notype_declarator, qualified_id,
3388169689Skan	notype_qualified_id, overqualified_id, direct_new_declarator,
3389169689Skan	absdcl, direct_abstract_declarator, conversion_declarator), pt.c
3390169689Skan	(tsubst), semantics.c (begin_constructor_declarator): Use build_nt
3391169689Skan	instead of build_parse_node.
3392169689Skan
3393169689Skan2001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3394169689Skan
3395169689Skan	* cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
3396169689Skan	(minus_one_node): Moved to top level gcc directory.  Renamed
3397169689Skan	to integer_minus_one_node.
3398169689Skan
3399169689Skan	* init.c (init_init_processing): Don't set minus_one_node.
3400169689Skan	(build_vec_init): Use integer_minus_one_node.
3401169689Skan
3402169689Skan	* rtti.c (get_tinfo_decl_dynamic): Likewise.
3403169689Skan
3404169689Skan2001-01-28  Jakub Jelinek  <jakub@redhat.com>
3405169689Skan
3406169689Skan	* optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
3407169689Skan	identical and they would be replaced with constant, remove
3408169689Skan	MODIFY_EXPR from the tree.
3409169689Skan
3410169689Skan2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3411169689Skan
3412169689Skan	* Make-lang.in: Remove all dependencies on defaults.h.
3413169689Skan	* call.c: Don't include defaults.h.
3414169689Skan	* decl.c: Likewise.
3415169689Skan	* decl2.c: Likewise.
3416169689Skan	* except.c: Likewise.
3417169689Skan	* pt.c: Likewise.
3418169689Skan	* rtti.c: Likewise.
3419169689Skan	* tree.c: Likewise.
3420169689Skan	* typeck.c: Likewise.
3421169689Skan
3422169689Skan2001-01-25  Jakub Jelinek  <jakub@redhat.com>
3423169689Skan
3424169689Skan	* mangle.c (write_mangled_name, write_encoding): Mangle overloaded
3425169689Skan	operators even in "C" linkage.
3426169689Skan	* method.c (set_mangled_name_for_decl): Likewise.
3427169689Skan	* decl.c (grokfndecl): Call set_mangled_name_for_decl even for
3428169689Skan	overloaded operators in "C" linkage.
3429169689Skan
3430169689Skan2001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
3431169689Skan
3432169689Skan	* pt.c (tsubst_decl): Remove IN_DECL parameter.
3433169689Skan	(tsubst_arg_types): Check parameter is not void.
3434169689Skan	(tsubst): Adjust tsubst_decl call.
3435169689Skan
3436169689Skan2001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
3437169689Skan
3438169689Skan	* call.c (add_builtin_candidate): Quote std properly, from
3439169689Skan	previous change.
3440169689Skan
3441169689Skan2001-01-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3442169689Skan
3443169689Skan	* pt.c (check_explicit_specialization): Clone constructors and
3444169689Skan	destructors.
3445169689Skan
3446169689Skan2001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
3447169689Skan
3448169689Skan	* decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
3449169689Skan	indicates anything special about template depth. Make sure we
3450169689Skan	only count the user visible template classes.
3451169689Skan
3452169689Skan2001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
3453169689Skan
3454169689Skan	* call.c (build_conv): Typo in comment.
3455169689Skan	(add_builtin_candidate): Add more explanation.
3456169689Skan	Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
3457169689Skan	Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
3458169689Skan	when we have enumeral types.
3459169689Skan	(add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
3460169689Skan	candidates for relops and eqops.
3461169689Skan	(joust): Simplify control flow. Allow a non-template user
3462169689Skan	function to hide a builtin.
3463169689Skan
3464169689Skan2001-01-22  Nathan Sidwell  <nathan@codesourcery.com>
3465169689Skan
3466169689Skan	* cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
3467169689Skan	(more_specialized): Add deduction parameter.
3468169689Skan	* call.c (joust): Adjust more_specialized call.
3469169689Skan	* pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
3470169689Skan	UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
3471169689Skan	(get_bindings_order): Remove.
3472169689Skan	(get_bindings_real): Add DEDUCE parameter.
3473169689Skan	(maybe_adjust_types_for_deduction): Return extra unify flags. Do
3474169689Skan	REFERENCE_TYPE jig for DEDUCE_ORDER.
3475169689Skan	(type_unification_real): Deal with DEDUCE_ORDER. Use result of
3476169689Skan	maybe_adjust_types_for_deduction.
3477169689Skan	(more_specialized): Add DEDUCE parameter. Call get_bindings_real
3478169689Skan	directly.
3479169689Skan	(try_one_overload): Use result of maybe_adjust_types_for_deduction.
3480169689Skan	(check_cv_quals_for_unify): Use new unify qualifier flags.
3481169689Skan	(unify): Clear new unify qualifier flags.
3482169689Skan	(get_bindings_real): Add DEDUCE parameter.
3483169689Skan	(get_bindings): Adjust call to get_bindings_real.
3484169689Skan	(get_bindings_overload): Likewise.
3485169689Skan	(most_specialized_instantiation): Adjust call to
3486169689Skan	more_specialized.
3487169689Skan
3488169689Skan2001-01-19  Jason Merrill  <jason@redhat.com>
3489169689Skan
3490169689Skan	* decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
3491169689Skan
3492169689Skan	* decl.c (init_decl_processing): Just force -fvtable-thunks on if
3493169689Skan	-fnew-abi.
3494169689Skan
3495169689Skan2001-01-19  Ute Pelkmann  <scope.muc@t-online.de>
3496169689Skan
3497169689Skan	* decl2.c (arg_assoc_class): Fix double iteration logic.
3498169689Skan
3499169689Skan2001-01-19  Jason Merrill  <jason@redhat.com>
3500169689Skan
3501169689Skan	* init.c (build_delete): Always call convert_force to strip cv-quals.
3502169689Skan
3503169689Skan	* decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
3504169689Skan	* lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
3505169689Skan	* g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
3506169689Skan
3507169689Skan2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3508169689Skan
3509169689Skan	* search.c (get_vbase_1): Count only virtual bases.
3510169689Skan
3511169689Skan2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3512169689Skan
3513169689Skan	* class.c (duplicate_tag_error): Robustify flag clearing.
3514169689Skan
3515169689Skan2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3516169689Skan
3517169689Skan	* cp-tree.h (lookup_template_class): Add complain parm.
3518169689Skan	* decl.c (lookup_namespace_name): Adjust call to
3519169689Skan	lookup_template_class.
3520169689Skan	(make_typename_type): Likewise.
3521169689Skan	* semantics.c (finish_template_type): Likewise.
3522169689Skan	* pt.c (lookup_template_class): Add complain parm. Adjust.
3523169689Skan	(tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
3524169689Skan	(tsubst): Likewise.
3525169689Skan
3526169689Skan2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
3527169689Skan
3528169689Skan	* pt.c (copy_default_args_to_explicit_spec): Preserve
3529169689Skan	object's CV quals. Reorganize.
3530169689Skan
3531169689Skan2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3532169689Skan
3533169689Skan	* typeck.c (build_modify_expr): Say `initialization' for
3534169689Skan	INIT_EXPRs.
3535169689Skan	* init.c (build_default_init): Convert to enumeral type, if
3536169689Skan	needed.
3537169689Skan
3538169689Skan2001-01-18  Jakub Jelinek  <jakub@redhat.com>
3539169689Skan
3540169689Skan	* parse.y (nomods_initdcl0): Properly set things up for
3541169689Skan	initdcl0_innards.
3542169689Skan
3543169689Skan2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3544169689Skan
3545169689Skan	* pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
3546169689Skan	(type_unification_real): Set it.
3547169689Skan	(unify): Use it.
3548169689Skan
3549169689Skan2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3550169689Skan
3551169689Skan	* decl.c (finish_destructor_body): Convert to vbase pointer here.
3552169689Skan
3553169689Skan2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3554169689Skan
3555169689Skan	* semantics.c (begin_class_definition): Check we're not inside a
3556169689Skan	template parm list.
3557169689Skan
3558169689Skan2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3559169689Skan
3560169689Skan	* tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
3561169689Skan	BASELINK_P.
3562169689Skan
3563169689Skan2001-01-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3564169689Skan
3565169689Skan	* typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
3566169689Skan	* call.c (build_over_call): Add comment.
3567169689Skan
3568169689Skan2001-01-16 Daniel Berlin <dberlin@redhat.com>
3569169689Skan
3570169689Skan	* cvt.c (ocp_convert): Handle vector type conversion
3571169689Skan	* typeck2.c (digest_init): Handle vector type initializations
3572169689Skan
3573169689Skan2001-01-16  Phil Edwards  <pme@sources.redhat.com>
3574169689Skan
3575169689Skan	* g++spec.c:  Don't add libraries needlessly if -fsyntax-only
3576169689Skan	  was given.
3577169689Skan
3578169689Skan2001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
3579169689Skan
3580169689Skan	* pt.c (check_nontype_parm): Rename to ...
3581169689Skan	(invalid_nontype_parm_type_p): ... here.
3582169689Skan	(process_template_parm): Adjust.
3583169689Skan	(convert_template_argument): Adjust.
3584169689Skan
3585169689Skan2001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
3586169689Skan
3587169689Skan	* pt.c (check_nontype_parm): New function.
3588169689Skan	(process_template_parm): Use it.
3589169689Skan	(convert_template_argument): Use it.
3590169689Skan	(convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
3591169689Skan	member.
3592169689Skan
3593169689Skan2001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
3594169689Skan
3595169689Skan	* tree.c: Add defaults.h
3596169689Skan	(cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
3597169689Skan	* Make-lang.in (cp/tree.o): Add defaults.h.
3598169689Skan
3599169689Skan2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3600169689Skan
3601169689Skan	* Make-lang.in (CXX_C_OBJS): Add c-format.o.
3602169689Skan
3603169689Skan2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3604169689Skan
3605169689Skan	* g++.1: Change to be ".so man1/gcc.1".
3606169689Skan
3607169689Skan2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3608169689Skan
3609169689Skan	* Make-lang.in (c++.info, c++.install-info): Build and install g++
3610169689Skan	internals info.
3611169689Skan	(c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
3612169689Skan	($(srcdir)/cp/g++int.info): New target.
3613169689Skan	* gxxint.texi: Add info directory entry.  Use @@ in email address.
3614169689Skan	* .cvsignore: Update.
3615169689Skan
3616169689Skan2001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
3617169689Skan
3618169689Skan	* typeck.c (build_c_cast): Do template processing earlier.
3619169689Skan	Always pedwarn on array casts.
3620169689Skan
3621169689Skan2001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
3622169689Skan
3623169689Skan	* friend.c (make_friend_class): Make sure a templated class is
3624169689Skan	actually a template.
3625169689Skan
3626169689Skan2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3627169689Skan
3628169689Skan	* decl2.c (get_guard): Set linkage from guarded decl.
3629169689Skan
3630169689Skan2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3631169689Skan
3632169689Skan	* call.c (convert_default_arg): Check for unprocessed
3633169689Skan	DEFAULT_ARG.
3634169689Skan	* cp-tree.h (replace_defarg): Move to spew.c.
3635169689Skan	(maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
3636169689Skan	spew.c, which is where they really are.
3637169689Skan	(done_pending_defargs): Declare.
3638169689Skan	(unprocessed_defarg_fn): Declare.
3639169689Skan	* decl.c (replace_defarg): Move to spew.c
3640169689Skan	* parse.y (structsp): Call done_pending_defargs.
3641169689Skan	* spew.c (defarg_fns): Rearrange list structure.
3642169689Skan	(defarg_fnsdone): New static variable.
3643169689Skan	(defarg_depfns): New static variable.
3644169689Skan	(init_spew): Adjust.
3645169689Skan	(add_defarg_fn): Store the type in TREE_TYPE.
3646169689Skan	(do_pending_defargs): Detect and deal with ordering constraints
3647169689Skan	and circularity.
3648169689Skan	(done_pending_defargs): New function.
3649169689Skan	(unprocessed_defarg_fn): New function.
3650169689Skan	(replace_defarg): Moved from decl.c. Robustify. Don't save
3651169689Skan	if circularity detected.
3652169689Skan
3653169689Skan2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3654169689Skan
3655169689Skan	* pt.c (unify): Check array has a domain, before checking
3656169689Skan	whether it is variable sized.
3657169689Skan
3658169689Skan2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3659169689Skan
3660169689Skan	* decl.c (grokparms): Unobfuscate and get correct diagnostic for
3661169689Skan	parameters with pointers to arrays of unknown bound.
3662169689Skan
3663169689Skan2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
3664169689Skan
3665169689Skan	* parse.y (template_parm_header, template_spec_header): New
3666169689Skan	reductions. Split out from ...
3667169689Skan	(template_header): ... here. Use them.
3668169689Skan	(template_template_parm): Use template_parm_header.
3669169689Skan	* semantics.c (finish_template_template_parm): Add assert.
3670169689Skan
3671169689Skan2001-01-10  Mark Mitchell  <mark@codesourcery.com>
3672169689Skan
3673169689Skan	* mangle.c (write_builtin_type): Fix thinko.
3674169689Skan
3675169689Skan	* pt.c (copy_default_args_to_explicit_spec_1): New function.
3676169689Skan	(copy_default_args_to_explicit_spec): Likewise.
3677169689Skan	(check_explicit_specialization): Use it.
3678169689Skan
3679169689Skan	* class.c (finish_struct_1):  Remove last argument in call to
3680169689Skan	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
3681169689Skan	* decl.c (builtin_function): Likewise.
3682169689Skan	(build_cp_library_fn): Likewise.
3683169689Skan	(check_initializer): Likewise.
3684169689Skan	(make_rtl_for_nonlocal_decl): Likewise.
3685169689Skan	(cp_finish_decl): Likewise.
3686169689Skan	(start_function): Likewise.
3687169689Skan	* decl2.c (finish_anon_union): Likewise.
3688169689Skan	* friend.c (do_friend): Likewise.
3689169689Skan	* init.c (build_java_class_ref): Likewise.
3690169689Skan	* method.c (make_thunk): Likewise.
3691169689Skan	* pt.c (tsubst_friend_function): Likewise.
3692169689Skan	* semantics.c (expand_body): Likewise.
3693169689Skan
3694169689Skan2001-01-10  Mark Mitchell  <mark@codesourcery.com>
3695169689Skan
3696169689Skan	* cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
3697169689Skan	looking at DECL_CLONED_FUNCTION for non-functions.
3698169689Skan
3699169689Skan2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
3700169689Skan
3701169689Skan	* error.c (dump_template_parameter): Use parm to determine how
3702169689Skan	to print default value.
3703169689Skan
3704169689Skan2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
3705169689Skan
3706169689Skan	* class.c (duplicate_tag_error): Clear more flags.
3707169689Skan
3708169689Skan2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
3709169689Skan
3710169689Skan	* call.c (build_new_method_call): Use binfo_for_vbase.
3711169689Skan
3712169689Skan2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
3713169689Skan
3714169689Skan	* cp-tree.h (flag_cond_mismatch): Don't declare.
3715169689Skan	* decl2.c (flag_cond_mismatch): Don't define.
3716169689Skan	(lang_f_options): Remove cond-mismatch.
3717169689Skan	(unsupported_options): Add cond-mismatch.
3718169689Skan
3719169689Skan2001-01-09  Nathan Sidwell  <nathan@codesourcery.com>
3720169689Skan
3721169689Skan	* class.c (handle_using_decl): Reject using of constructor name
3722169689Skan	of sourcing class. Allow injecting of a method with same name as
3723169689Skan	nested class. Fixup error messages.
3724169689Skan
3725169689Skan2001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
3726169689Skan
3727169689Skan	* decl2.c (lang_decode_option): Handle -Wformat=2.
3728169689Skan
3729169689Skan2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
3730169689Skan
3731169689Skan	* cp-tree.h (lang_decl_flags): Rename defined_in_class to
3732169689Skan	initialized_in_class.
3733169689Skan	(DECL_DEFINED_IN_CLASS_P): Rename to ...
3734169689Skan	(DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
3735169689Skan	* decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
3736169689Skan	(cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
3737169689Skan	* pt.c (check_default_tmpl_args): Adjust for
3738169689Skan	DECL_INITIALIZED_IN_CLASS_P.
3739169689Skan	(instantiate_class_template): Likewise.
3740169689Skan	(instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
3741169689Skan
3742169689Skan	* class.c (finish_struct): Constify saved_filename.
3743169689Skan
3744169689Skan2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
3745169689Skan
3746169689Skan	* class.c (duplicate_tag_error): Adjust diagnostic.
3747169689Skan	(finish_struct): Locally set location to start of struct.
3748169689Skan	* decl.c (fixup_anonymous_aggr): Use cp_error_at.
3749169689Skan
3750169689Skan2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
3751169689Skan
3752169689Skan	* decl.c (struct binding_level): Adjust class_shadowed comments
3753169689Skan	to reflect reality.
3754169689Skan	(push_class_level_binding): Adjust comments to reflect reality.
3755169689Skan	Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
3756169689Skan	Don't set TREE_VALUE on the class_shadowed list.
3757169689Skan
3758169689Skan2001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3759169689Skan
3760169689Skan	* decl2.c (acceptable_java_type): Allow references too.
3761169689Skan	* init.c (build_java_class_ref): When using the new ABI, search
3762169689Skan	`class$' and have it mangled with `mangle_decl.'
3763169689Skan	* mangle.c (write_java_integer_type_codes): New function.
3764169689Skan	(write_builtin_type): Detect and mangle Java integer and real
3765169689Skan	types.
3766169689Skan
3767169689Skan2001-01-07  Mark Mitchell  <mark@codesourcery.com>
3768169689Skan
3769169689Skan	* decl2.c (grokfield): Don't accept `asm' specifiers for
3770169689Skan	non-static data members.
3771169689Skan
3772169689Skan2001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3773169689Skan
3774169689Skan	* expr.c (cplus_expand_expr): Don't reset `target'.
3775169689Skan
3776169689Skan2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3777169689Skan
3778169689Skan	* cp/decl2.c (cxx_post_options): Call cpp_post_options.
3779169689Skan
3780169689Skan2001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
3781169689Skan
3782169689Skan	* parse.y (template_datadef): Check for error_mark_node.
3783169689Skan
3784169689Skan2001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
3785169689Skan
3786169689Skan	* cp-tree.def (DEFAULT_ARG): Make `x' class.
3787169689Skan
3788169689Skan2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
3789169689Skan
3790169689Skan	* decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
3791169689Skan	(record_builtin_type): Make non-static.
3792169689Skan	(flag_short_double): Don't declare.
3793169689Skan	(init_decl_processing): Remove the creation of many tree nodes now
3794169689Skan	in c_common_nodes_and_builtins.
3795169689Skan	(build_void_list_node): New function.
3796169689Skan	* decl2.c (flag_short_double, flag_short_wchar): Don't define.
3797169689Skan	* cp-tree.h (flag_short_wchar): Don't declare.
3798169689Skan
3799169689Skan2001-01-04  Mark Mitchell  <mark@codesourcery.com>
3800169689Skan
3801169689Skan	* call.c (build_conv): Don't use build1 for USER_CONV.
3802169689Skan	* pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
3803169689Skan
3804169689Skan2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
3805169689Skan
3806169689Skan	* lex.c (lang_init): Call c_common_lang_init.
3807169689Skan
3808169689Skan2001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
3809169689Skan
3810169689Skan	* search.c (lookup_fnfields_here): Remove.
3811169689Skan	(look_for_overrides_r): Use lookup_fnfields_1.
3812169689Skan	Ignore functions from using declarations.
3813169689Skan
3814169689Skan2001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
3815169689Skan
3816169689Skan	Implement exceptions specifiers for implicit member functions.
3817169689Skan	* cp-tree.h (merge_exceptions_specifiers): Declare new function.
3818169689Skan	* method.c (synthesize_exception_spec): New function.
3819169689Skan	(locate_dtor, locate_ctor, locate_copy): New functions.
3820169689Skan	(implicitly_declare_fn): Generate the exception spec too.
3821169689Skan	* search.c (check_final_overrider): Check artificial functions
3822169689Skan	too.
3823169689Skan	* typeck2.c (merge_exception_specifiers): New function.
3824169689Skan
3825169689Skan2001-01-03  Jason Merrill  <jason@redhat.com>
3826169689Skan
3827169689Skan	* init.c (build_default_init): New fn.
3828169689Skan	(perform_member_init): Split out from here.
3829169689Skan	(build_new_1): Use it.  Simplify initialization logic.
3830169689Skan	(build_vec_init): Take an array, rather than a pointer and maxindex.
3831169689Skan	Speed up simple initializations.  Don't clean up if we're assigning.
3832169689Skan	* cp-tree.h: Adjust.
3833169689Skan	* decl2.c (do_static_initialization): Remove TREE_VEC case.
3834169689Skan	* parse.y (new_initializer): Return void_zero_node for ().
3835169689Skan	* typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
3836169689Skan	* typeck2.c (digest_init): Only complain about user-written
3837169689Skan	CONSTRUCTORs.
3838169689Skan
3839169689Skan2000-12-22  Mike Stump  <mrs@wrs.com>
3840169689Skan
3841169689Skan	* decl2.c: (max_tinst_depth): Increase to 50.
3842169689Skan
3843169689Skan2001-01-02  Mark Mitchell  <mark@codesourcery.com>
3844169689Skan
3845169689Skan	* class.c (invalidate_class_lookup_cache): Zero the
3846169689Skan	previous_class_values.
3847169689Skan	* cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
3848169689Skan	TREE_INT_CST_HIGH.
3849169689Skan	(CLASSTYPE_TEMPLATE_LEVEL): Likewise.
3850169689Skan	* decl.c (free_bindings): New variable.
3851169689Skan	(push_binding): Don't create a new binding if we have one on the
3852169689Skan	free list.
3853169689Skan	(pop_binding): Put old bindings on the free list.
3854169689Skan	(init_decl_processing): Use size_int, not build_int_2.
3855169689Skan	Register free_bindings as a GC root.
3856169689Skan	(cp_make_fname_decl): Use size_int, not build_int_2.
3857169689Skan	(push_inline_template_parms_recursive): Likewise.
3858169689Skan	(end_template_parm_list): Likewise.
3859169689Skan	(for_each_template_parm): Do not use walk_tree_without_duplicates.
3860169689Skan	(tsubst_template_parms): Use size_int, not build_int_2.
3861169689Skan	(tsubst): Likewise.
3862169689Skan	* rtti.c (get_vmi_pseudo_type_info): Likewise.
3863169689Skan
3864169689Skan2001-01-02  Richard Henderson  <rth@redhat.com>
3865169689Skan
3866169689Skan	* parse.y (asm): Set ASM_INPUT_P.
3867169689Skan
3868169689Skan2001-01-02  Jason Merrill  <jason@redhat.com>
3869169689Skan
3870169689Skan	* tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
3871169689Skan	for v3 ABI.
3872169689Skan
3873169689Skan	* typeck.c (cp_truthvalue_conversion): New fn.
3874169689Skan	* cvt.c (ocp_convert): Use it.
3875169689Skan
3876169689Skan	* cp-tree.h: Lose c-common.c decls.
3877169689Skan
3878169689Skan	* typeck.c (build_unary_op): Restore old &a.f diagnostic code.
3879169689Skan	* cvt.c (convert_to_void): Use type_unknown_p.
3880169689Skan
3881169689Skan	* typeck.c (strip_all_pointer_quals): Also strip quals from
3882169689Skan	pointer-to-member types.
3883169689Skan
3884169689Skan	* Make-lang.in (cp/TAGS): Use --no-globals.  Ignore parse.c, and treat
3885169689Skan	parse.y as C.
3886169689Skan
3887169689Skan	* call.c (build_new_method_call): Do evaluate the object parameter
3888169689Skan	when accessing a static member.
3889169689Skan	* typeck.c (build_component_ref): Likewise.
3890169689Skan
3891169689Skan2001-01-02  Andreas Jaeger  <aj@suse.de>
3892169689Skan
3893169689Skan	* decl.c (cp_missing_noreturn_ok_p): New.
3894169689Skan	(init_decl_processing): Set lang_missing_noreturn_ok_p.
3895169689Skan
3896