ChangeLog revision 117395
1117395Skan2003-07-09  Mark Mitchell  <mark@codesourcery.com>
2110611Skan
3117395Skan	PR c++/10032
4117395Skan	* decl.c (cxx_init_decl_processing): With -pedantic, pedwarns are
5117395Skan	still errors.
6110611Skan
7117395Skan	PR c++/10527
8117395Skan	* error.c (decl_to_string): Do not print default argument
9117395Skan	expressions.
10117395Skan
11117395Skan2003-07-10  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
12117395Skan
13117395Skan	PR c++/10849
14117395Skan	* decl2.c (handle_class_head_apparent_template): New function.
15117395Skan	* cp-tree.h (handle_class_head_apparent_template): Add declaration.
16117395Skan	* parse.y (class_head_defn): Use it.
17117395Skan	* search.c (type_access_control): Revert my 2003-05-25 change.
18117395Skan
19117395Skan2003-07-06  Mark Mitchell  <mark@codesourcery.com>
20117395Skan
21117395Skan	PR c++/11236
22117395Skan	* cvt.c (convert_to_void): Treat an overloaded function like
23117395Skan	"((void) 0)" after issuing a diagnostic.
24117395Skan
25117395Skan	PR c++/11345
26117395Skan	* search.c (lookup_base_r): Remove is_non_public and
27117395Skan	within_current_scope parameters.  Remove other dead code.
28117395Skan	(lookup_base): Adjust call to lookup_base_r.
29117395Skan	(adjust_result_of_qualified_name_lookup): Improve comment.
30117395Skan	* semantics.c (finish_call_expr): Use maybe_dummy_object.
31117395Skan
32117395Skan2003-07-05  Mark Mitchell  <mark@codesourcery.com>
33117395Skan
34117395Skan	PR c++/11431
35117395Skan	* typeck.c (build_static_cast): Check for reference conversions
36117395Skan	earlier.
37117395Skan
38117395Skan2003-07-01  Mark Mitchell  <mark@codesourcery.com>
39117395Skan
40117395Skan	PR c++/6949
41117395Skan	* decl2.c (grokfield): Create TEMPLATE_DECLs for methods in local
42117395Skan	classes.
43117395Skan
44117395Skan2003-07-01  Mark Mitchell  <mark@codesourcery.com>
45117395Skan
46117395Skan	* call.c (resolve_scoped_fn_name): Return error_mark_node for
47117395Skan	erroneous cases.
48117395Skan
49117395Skan	PR c++/11137
50117395Skan	* decl2.c (generate_ctor_or_dtor_function): Tolerate a
51117395Skan	non-existant ssdf_decls array.
52117395Skan	(finish_file): Call generator_ctor_or_dtor_function when there are
53117395Skan	static constructors or destructors and no other static
54117395Skan	initializations.
55117395Skan
56117395Skan	PR c++/11149
57117395Skan	* call.c (resolve_scoped_fn_name): Check that the qualifying scope
58117395Skan	is a class type.
59117395Skan
60117395Skan2003-07-01  Mark Mitchell  <mark@codesourcery.com>
61117395Skan
62117395Skan	PR c++/9559
63117395Skan	* decl2.c (grokfield): Do not build NOP_EXPRs around the
64117395Skan	error_mark_node.
65117395Skan
66117395Skan2003-06-30  Giovanni Bajo  <giovannibajo@libero.it>
67117395Skan
68117395Skan        * mangle.c (write_expression): Exit gracefully when trying to
69117395Skan        mangle a CALL_EXPR.
70117395Skan
71117395Skan2003-06-30  Giovanni Bajo <giovannibajo@libero.it>
72117395Skan
73117395Skan        PR c++/11106
74117395Skan        * error.c (dump_decl): Call dump_decl to dump the DECL_NAME for a
75117395Skan        USING_DECL, instead of print_tree_identifier.
76117395Skan
77117395Skan2003-06-27  Mark Mitchell  <mark@codesourcery.com>
78117395Skan
79117395Skan	PR c++/10468
80117395Skan	* pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly.
81117395Skan
82117395Skan	PR c++/10796
83117395Skan	* decl.c (finish_enum): Implement DR377.
84117395Skan
85117395Skan	* decl.c (cp_finish_decl): Don't make variables with reference
86117395Skan	type readonly while they are being initialized.
87117395Skan
88117395Skan2003-06-26  Mark Mitchell  <mark@codesourcery.com>
89117395Skan
90117395Skan	PR c++/11332
91117395Skan	* typeck.c (build_static_cast): Avoid returning expressions with
92117395Skan	reference type.
93117395Skan
94117395Skan2003-06-25  Mark Mitchell  <mark@codesourcery.com>
95117395Skan
96117395Skan	PR c++/10990
97117395Skan	* search.c (lookup_base_r): Rely on accessible_p, rather than
98117395Skan	trying to emulate that logic here.
99117395Skan
100117395Skan	PR c++/10931
101117395Skan	* call.c (convert_like): Pass issue_conversion_warnings.
102117395Skan	(convert_like_with_context): Likewise.
103117395Skan	(convert_like_real): Add issue_conversion_warnings parameter.
104117395Skan	(perform_direct_initialization_if_possible): New function.
105117395Skan	* cp-tree.h (perform_direct_initialization_if_possible): Declare it.
106117395Skan	* typeck.c (check_for_casting_away_constness): New function.
107117395Skan	(build_static_cast): Rewrite.
108110611Skan	
109117395Skan2003-06-23  Mark Mitchell  <mark@codesourcery.com>
110117395Skan
111117395Skan	PR c++/5754
112117395Skan	* parse.y (structsp): Improve error handling of invalid nested
113117395Skan	template classes.
114117395Skan
115117395Skan2003-06-23  Jakub Jelinek  <jakub@redhat.com>
116117395Skan
117117395Skan	* mangle.c: Include ggc.h, gt-cp-mangle.h.
118117395Skan	(mangle_conv_op_name_for_type): Use htab_create_ggc instead of
119117395Skan	htab_create.
120117395Skan	* config-lang.in (gtfiles): Add cp/mangle.c.
121117395Skan	* Make-lang.in (gt-cp-mangle.h): Depend on s-gtype.
122117395Skan	(cp/mangle.o): Depend on gt-cp-mangle.h.
123117395Skan
124117395Skan2003-06-23  Jakub Jelinek  <jakub@redhat.com>
125117395Skan
126117395Skan	* mangle.c (hash_type): val is the TREE_LIST itself, not a pointer
127117395Skan	to it.
128117395Skan
129117395Skan2003-06-21  Gabriel Dos Reis <gdr@integrable-solutions.net>
130117395Skan
131117395Skan        PR c++/10784
132117395Skan        * call.c (joust): Warn about choosing conversion sequence only if
133117395Skan        -Wconversion.
134110611Skan	
135117395Skan2003-06-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
136110611Skan
137117395Skan	PR c++/10864
138117395Skan	* call.c (op_error): Tidy.
139117395Skan	* error.c (dump_expr): Properly format 'T()' when T is an
140117395Skan	aggregate type.
141117395Skan
142117395Skan2003-06-21  Gabriel Dos Reis <gdr@integrable-solutions.net>
143117395Skan
144117395Skan	PR c++/10915
145117395Skan	* decl.c (grok_op_properties): Warn possible confusing conversion
146117395Skan	only if -Wconversion.
147117395Skan
148117395Skan2003-06-20  Mark Mitchell  <mark@codesourcery.com>
149117395Skan
150117395Skan	PR c++/10845
151117395Skan	* pt.c (try_class_unification): Correct handling of member class
152117395Skan	templates.
153117395Skan
154117395Skan2003-06-19  Mark Mitchell  <mark@codesourcery.com>
155117395Skan
156117395Skan	PR c++/10939
157117395Skan	* Make-lang.in (decl.o): Depend on input.h.
158117395Skan	* decl.c (input.h): Include it.
159117395Skan	(cp_finish_decl): Revert previous change: 
160117395Skan	  2003-06-19  Mark Mitchell  <mark@codesourcery.com>
161117395Skan	  * decl.c (cp_finish_decl): Remove support for RESULT_DECLs.
162117395Skan	  Don't check building_stmt_tree.
163117395Skan	* pt.c (tsubst_decl): Do not try to substitute into non-dependent
164117395Skan	functions.
165117395Skan
166117395Skan	PR c++/9649
167117395Skan	* cp-tree.h (pushdecl_class_level): Change prototype.
168117395Skan	(push_class_level_binding): Likewise.
169117395Skan	* decl.c (add_binding): Reject duplicate static data members.
170117395Skan	(pushdecl_class_level): Return a value indicating whether or not
171117395Skan	the binding was valid.
172117395Skan	(push_class_level_binding): Likewise.
173117395Skan	* semantics.c (finish_member_declaration): Don't keep invalid
174117395Skan	declarations.
175117395Skan
176117395Skan2003-06-19  Mark Mitchell  <mark@codesourcery.com>
177117395Skan
178117395Skan	PR c++/11041
179117395Skan	* call.c (initialize_reference): Do not use cp_finish_decl to emit
180117395Skan	temporary variables.
181117395Skan	* cp-tree.h (static_aggregates): Declare.
182117395Skan	(pushdecl_top_level_and_finish): Likewise.
183117395Skan	* decl.c (pushdecl_top_level_1): New function.
184117395Skan	(pushdecl_top_level): Use it.
185117395Skan	(pushdecl_top_level_and_finish): New function.
186117395Skan	(initialize_local_var): Remove redundant code.
187117395Skan	(cp_finish_decl): Remove support for RESULT_DECLs.  Don't check
188117395Skan	building_stmt_tree.
189117395Skan	* decl.h (static_aggregates): Remove.
190117395Skan	* decl2.c (get_guard): Use pushdecl_top_level_and_finish.
191117395Skan	* rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish.
192117395Skan	(tinfo_base_init): Likewise.
193117395Skan
194117395Skan2003-06-19  Matt Austern  <austern@apple.com>
195117395Skan
196117395Skan	PR c++/11228
197117395Skan	* init.c (build_zero_init): Assert that number of array elements
198117395Skan	is an integer constant.
199117395Skan	(build_default_init) Don't use build_zero_init for arrays with
200117395Skan	variable number of elements.
201117395Skan	
202117395Skan2003-06-17  Mark Mitchell  <mark@codesourcery.com>
203117395Skan
204117395Skan	* mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
205117395Skan	string again.
206117395Skan
207117395Skan2003-06-17  Mark Mitchell  <mark@codesourcery.com>
208117395Skan
209117395Skan	* mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
210117395Skan	string.
211117395Skan
212117395Skan2003-06-17  Jason Merrill  <jason@redhat.com>
213117395Skan
214117395Skan	PR c++/10929
215117395Skan	* decl.c (grokfndecl): Don't mark a function inline for
216117395Skan	-finline-functions if it isn't defined.
217117395Skan
218117395Skan2003-06-17  Mark Mitchell  <mark@codesourcery.com>
219117395Skan
220117395Skan	PR c++/10712
221117395Skan	* class.c (handle_using_decl): Robustify.
222117395Skan
223117395Skan	PR c++/11105
224117395Skan	* cp-tree.h (DECL_CONV_FN_TYPE): New method.
225117395Skan	* decl.c (lookup_name_real): Backport conversion operator code
226117395Skan	from mainline.
227117395Skan	* mangle.c (struct globals): Remove internal_mangling_p.
228117395Skan	(write_unqualified_name): Use DECL_CONV_FN_TYPE.
229117395Skan	(write_template_parm): Don't write out the level number.
230117395Skan	(conv_type_names): New variable.
231117395Skan	(hash_type): New function.
232117395Skan	(compare_type): Likewise.
233117395Skan	(mangle_conv_op_name_for_type): Don't try to mangle conversion
234117395Skan	operator names.
235117395Skan	* search.c (lookup_conversion_operator): New function.
236117395Skan	(lookup_fnfields_1): Use it.
237117395Skan
238117395Skan2003-06-12  Mark Mitchell  <mark@codesourcery.com>
239117395Skan
240117395Skan	PR c++/10635
241117395Skan	* typeck.c (build_c_cast): Check that the destination type is
242117395Skan	complete.
243117395Skan
244117395Skan2003-06-10  Jason Merrill  <jason@redhat.com>
245117395Skan
246117395Skan	PR c++/10968
247117395Skan	* pt.c (mark_decl_instantiated): Clear DECL_COMDAT.
248117395Skan
249117395Skan2003-06-09  Zack Weinberg  <zack@codesourcery.com>
250117395Skan
251117395Skan	PR 8861
252117395Skan	* mangle.c (write_real_cst): New function.  Implement
253117395Skan	ABI-compliant mangling of floating-point literals when
254117395Skan	-fabi-version>=2; provide backward compatibility with 3.3 when
255117395Skan	-fabi-version=1 (with warning).  Clarify commentary.
256117395Skan	(write_template_arg_literal): Use write_real_cst.
257117395Skan
258117395Skan2003-06-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
259117395Skan
260117395Skan	PR c++/11039
261117395Skan	* decl2.c (handle_class_head): Remove implicitness in typename
262117395Skan	appeared as elaborated type specifier in declaration.
263117395Skan
264117395Skan2003-06-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
265117395Skan
266117395Skan	PR c++/10940
267117395Skan	* pt.c (check_explicit_specialization): Check for 'static'
268117395Skan	earlier.
269117395Skan
270117395Skan2003-05-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
271117395Skan
272117395Skan	PR c++/10956
273117395Skan	* pt.c (instantiate_decl): Don't use full template arguments if
274117395Skan	we are dealing with specializations.
275117395Skan
276117395Skan2003-05-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
277117395Skan
278117395Skan	* decl.c (ENABLE_CHECKING_SCOPES): New macro.
279117395Skan	(binding_depth): Unconditionally define.
280117395Skan	(is_class_level): Likewise.
281117395Skan	(indent): Likewise.  Take an indenting parameter.
282117395Skan	(push_binding_level): Remove conditional definittion.
283117395Skan	(pop_binding_level): Likewise.
284117395Skan	(suspend_binding_level): Likewise.
285117395Skan	(resume_binding_level): Likewise.
286117395Skan	(pushlevel): Likewise.
287117395Skan	(pushlevel_class): Likewise.
288117395Skan	(poplevel_class): Likewise.
289117395Skan	(pop_everything): Likewise.
290117395Skan
291117395Skan2003-05-27  Gabriel Dos Reis <gdr@integrable-solutions.net>
292117395Skan
293117395Skan	* decl.c (global_scope_p): New macro.
294117395Skan	(pop_binding_level): Use it.
295117395Skan	(suspend_binding_level): Likewise.
296117395Skan	(global_bindings_p): Likewise.
297117395Skan	(print_other_binding_stack): Likewise.
298117395Skan	(print_binding_stack): Likewise.
299117395Skan	(maybe_push_to_top_level): Likewise.
300117395Skan	(pushdecl_namespace_level): Likewise.
301117395Skan	(start_decl): Likewise.
302117395Skan	(cp_finish_decl): Likewise.
303117395Skan	(start_function): Likewise.
304117395Skan	(cxx_init_decl_processing): Don't refer to global_binding_level.
305117395Skan	(global_binding_level): Remove.
306117395Skan
307117395Skan2003-05-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
308117395Skan
309117395Skan	PR c++/10849
310117395Skan	* search.c (type_access_control): Don't check access when
311117395Skan	processing_specialization.
312117395Skan
313117395Skan2003-05-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
314117395Skan
315117395Skan	PR c++/10682
316117395Skan	* pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to
317117395Skan	check for implicitly created typedef to an enum.
318117395Skan
319117395Skan2003-05-20  Gabriel Dos Reis  <gdr@integrable-solutions.net>
320117395Skan
321117395Skan	* decl.c (free_binding_entry):  Fix thinko.
322117395Skan
323117395Skan2003-05-19  Gabriel Dos Reis <gdr@integrable-solutions.net>
324117395Skan
325117395Skan	* cp-tree.h (struct binding_entry_s): New datatype.
326117395Skan	(binding_table): Declare.
327117395Skan	(binding_entry): Likewise.
328117395Skan	(bt_foreach_proc): Likewise.
329117395Skan	(binding_table_foreach): Likewise.
330117395Skan	(binding_table_find): Likewise.
331117395Skan	(cxx_remember_type_decls): Likewise.
332117395Skan	(CLASSTYPE_TAGS): Remove.
333117395Skan	(CLASSTYPE_NESTED_UDTS): New macro.
334117395Skan	(struct lang_type_class):  Remove tags field.  Add nested_types.
335117395Skan	* decl.c (ENTRY_INDEX): New macro.
336117395Skan	(free_binding_entry):  New free list.
337117395Skan	(binding_entry_make): New function.
338117395Skan	(binding_entry_free): Likewise.
339117395Skan	(struct binding_table_s): New datatype.
340117395Skan	(SCOPE_DEFAULT_HT_SIZE): New macro.
341117395Skan	(CLASS_SCOPE_HT_SIZE): Likewise.
342117395Skan	(NAMESPACE_ORDINARY_HT_SIZE): Likewise.
343117395Skan	(NAMESPACE_STD_HT_SIZE): Likewise.
344117395Skan	(GLOBAL_SCOPE_HT_SIZE): Likewise.
345117395Skan	(binding_table_construct): New function.
346117395Skan	(binding_table_free): Likewise.
347117395Skan	(binding_table_new): Likewise.
348117395Skan	(binding_table_expand): Likewise.
349117395Skan	(binding_table_insert): Likewise.
350117395Skan	(binding_table_find): Likewise.
351117395Skan	(binding_table_find_anon_type): Likewise.
352117395Skan	(binding_table_reverse_maybe_remap): Likewise.
353117395Skan	(binding_table_remove_anonymous_types): Likewise.
354117395Skan	(binding_table_foreach): Likewise.
355117395Skan	(struct cp_binding_level): Remove tags field.  Add type_decls.
356117395Skan	(pop_binding_level): Free binding_entries if possible.
357117395Skan	(kept_level_p): Tidy.
358117395Skan	(poplevel): Remove unused variable tags.
359117395Skan	(bt_print_entry): New function.
360117395Skan	(print_binding_level): Use it.
361117395Skan	(push_namespace): Construct binding table.
362117395Skan	(maybe_process_template_type_declaration): Tidy.
363117395Skan	(pushtag): Likewise.
364117395Skan	(clear_anon_tags): Likewise.
365117395Skan	(cxx_remember_type_decls): New function.
366117395Skan	(lookup_tag): Tidy.
367117395Skan	(lookup_tag_reverse): Likewise.
368117395Skan	(cxx_init_decl_processing): Construct binding_table for the global
369117395Skan	scope.
370117395Skan	(store_parm_decls): Remove pointless code.
371117395Skan	(gettags): Remove.
372117395Skan	(storetags): Likewise.
373117395Skan	* class.c (unreverse_member_declarations): Don't touch
374117395Skan	CLASSTYPE_TAGS.
375117395Skan	(pushclass): Remember CLASSTYPE_NESTED_UTDS.
376117395Skan	* pt.c (instantiate_class_template): Remove reference to
377117395Skan	CLASSTYPE_TAGS. Remeber CLASSTYPE_NESTED_UTDS.
378117395Skan	(bt_instantiate_type_proc): New function.
379117395Skan	(do_type_instantiation): Use it.
380117395Skan	* search.c (lookup_field_r): Use binding_table_find.
381117395Skan	* semantics.c (begin_class_definition): Remove reference to
382117395Skan	CLASSTYPE_TAGS.  Nullify CLASSTYPE_NESTED_UTDS.
383117395Skan
384117395Skan2003-05-15  Jason Merrill  <jason@redhat.com>
385117395Skan
386117395Skan	PR c++/5388
387117395Skan	* call.c (conditional_conversion): Don't consider implicit
388117395Skan	conversions if T2 is a base of T1.
389117395Skan	* cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean.
390117395Skan	(ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
391117395Skan
392117395Skan	PR c++/10661
393117395Skan	* pt.c (instantiate_class_template): Also instantiate our
394117395Skan	enclosing class.
395117395Skan
396117395Skan2003-05-13  Release Manager
397117395Skan
398117395Skan	* GCC 3.3 Released.
399117395Skan
400117395Skan2003-05-02  Richard Henderson  <rth@redhat.com>
401117395Skan
402117395Skan	PR c++/10570
403117395Skan	* cfns.gperf: Comment out POSIX thread cancellation points,
404117395Skan	plus abort and raise.
405117395Skan	* cfns.h: Regenerate.
406117395Skan
407117395Skan2003-05-01  Mark Mitchell  <mark@codesourcery.com>
408117395Skan
409117395Skan	* decl2.c (comdat_linkage): Don't externalize explicit
410117395Skan	instantiations.
411117395Skan
412117395Skan2003-04-29  Mark Mitchell  <mark@codesourcery.com>
413117395Skan
414117395Skan	PR c++/10551
415117395Skan	* pt.c (mark_decl_instantiated): Defer all explicit instantiations
416117395Skan	that have not yet been written out.
417117395Skan
418117395Skan	PR c++/10549
419117395Skan	* class.c (layout_class_type): Mark overlong bitfields as having
420117395Skan	the maximum size permitted by their type, after layout.
421117395Skan
422117395Skan2003-04-29  Mark Mitchell  <mark@codesourcery.com>
423117395Skan
424117395Skan	PR c++/10527
425117395Skan	* error.c (dump_expr): Correctly handling of NEW_EXPR.4
426117395Skan
427117395Skan2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
428117395Skan
429117395Skan	* lang-options.h: Fix typo.
430117395Skan
431117395Skan2003-04-29  Mark Mitchell  <mark@codesourcery.com>
432117395Skan
433117395Skan	PR c++/10515
434117395Skan	* cp-tree.h (lookup_field_1): Declare it.
435117395Skan	* search.c (lookup_field_1): Make it public.
436117395Skan	* decl.c (reshape_init): Handle designated initializers.
437117395Skan
438117395Skan2003-04-29  Mark Mitchell  <mark@codesourcery.com>
439117395Skan
440117395Skan	* decl.c (maybe_commonize_var): Further tweak support for systems
441117395Skan	without weak symbols.
442117395Skan
443117395Skan2003-04-27  Mark Mitchell  <mark@codesourcery.com>
444117395Skan
445117395Skan	* decl.c (maybe_commonize_var): Fix thinko in last patch.
446117395Skan
447117395Skan	PR c++/10506
448117395Skan	* method.c (use_thunk): Decrement immediate_size_expand.
449117395Skan
450117395Skan	PR c++/10503
451117395Skan	* cp-tree.h (DECL_VAR_MARKED_P): New macro.
452117395Skan	(DECL_MAYBE_TEMPLATE): Remove.
453117395Skan	* class.c (fixed_type_or_null): Avoid infinite recursion.
454117395Skan
455117395Skan2003-04-27  Mark Mitchell  <mark@codesourcery.com>
456117395Skan
457117395Skan	* decl.c (maybe_commonize_var): Make the code match the comments.
458117395Skan	* pt.c (instantiate_decl): Move call to import_export_decl.
459117395Skan
460117395Skan2003-04-25  Mark Mitchell  <mark@codesourcery.com>
461117395Skan
462117395Skan	* decl2.c (finish_file): Don't call import_export_decl for
463117395Skan	functions that are not defined.
464117395Skan	(handle_class_head): Robustify.
465117395Skan	* pt.c (instantiate_decl): Do not call cp_finish_decl for
466117395Skan	variables that are not defined.
467117395Skan
468117395Skan2003-04-23  Mark Mitchell  <mark@codesourcery.com>
469117395Skan
470117395Skan	PR c++/10471
471117395Skan	* call.c (build_cxx_call): Robustify.
472117395Skan
473117395Skan2003-04-23  Mark Mitchell  <mark@codesourcery.com>
474117395Skan
475117395Skan	PR c++/10451
476117395Skan	* decl.c (grokdeclarator): Correct logic for "mutable" errors.
477117395Skan
478117395Skan2003-04-22  Mark Mitchell  <mark@codesourcery.com>
479117395Skan
480117395Skan	PR c++/10446
481117395Skan	* search.c (lookup_fnfields_1): Handle empty slots in the method
482117395Skan	vector.
483117395Skan
484117395Skan2003-04-22  Mark Mitchell  <mark@codesourcery.com>
485117395Skan
486117395Skan	PR c++/10428
487117395Skan	* decl.c (check_elaborated_type_specifier): New function, split
488117395Skan	out from ...
489117395Skan	(xref_tag): ... here.  Use the new function in more places.
490117395Skan
491117395Skan2003-04-21  Mark Mitchell  <mark@codesourcery.com>
492117395Skan
493117395Skan	* call.c (build_over_call): Use build_cxx_call.
494117395Skan	(build_cxx_call): New method, split out of build_over_call.
495117395Skan	* cp-tree.h (language_function): Add can_throw.
496117395Skan	(build_cxx_call): Declare it.
497117395Skan	* decl.c (finish_function): If a function does not contain any
498117395Skan	calls to functions that can throw an exception, indicate that
499117395Skan	fact.
500117395Skan	* decl2.c (mark_used): Do not defer the instantiation of
501117395Skan	functions, if the current function does not throw.
502117395Skan	* optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.
503117395Skan	* pt.c (instantiate_decl): Make sure import_export_decl is called
504117395Skan	before emitting things.
505117395Skan	* rtti.c (throw_bad_cast): Use build_cxx_call.
506117395Skan	(build_dynamic_cast_1): Likewise.
507117395Skan	* typeck.c (build_function_call): Likewise.
508117395Skan
509117395Skan2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
510117395Skan
511117395Skan	PR c++/9881
512117395Skan	* typeck.c (build_unary_op): Fold all COMPONENT_REF addr
513117395Skan	expressions. Reverts my 2002-08-08 patch.
514117395Skan
515117395Skan2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
516117395Skan
517117395Skan	PR c++/10405
518117395Skan	* search.c (lookup_field_1): Final scan goes backwards for
519117395Skan	types, forwards for non-types.
520117395Skan
521117395Skan2003-04-15  Jason Merrill  <jason@redhat.com>
522117395Skan
523117395Skan	* decl2.c (mark_used): Don't instantiate anything if
524117395Skan	skip_evaluation.
525117395Skan
526117395Skan2003-04-15  Mark Mitchell  <mark@codesourcery.com>
527117395Skan
528117395Skan	* init.c (build_new_1): Use nullexp instead of null_node to avoid
529117395Skan	unwanted macro expansion.
530117395Skan
531117395Skan2003-04-14  Ziemowit Laski  <zlaski@apple.com>
532117395Skan
533117395Skan	* tree.c (build_cplus_array_type_1): Do not call
534117395Skan	uses_template_parms() on a NULL index_type.
535117395Skan
536117395Skan2003-04-14  Andreas Schwab  <schwab@suse.de>
537117395Skan
538117395Skan	* init.c (build_new_1): Test use_cookie instead of cookie_size to
539117395Skan	avoid code-gen bug on ia64.
540117395Skan
541117395Skan2003-04-13  Mark Mitchell  <mark@codesourcery.com>
542117395Skan
543117395Skan	PR c++/10300
544117395Skan	* init.c (build_new_1): Correct logic for checking whether the
545117395Skan	return value from the allocation function was zero.
546117395Skan
547117395Skan2003-03-31  Mark Mitchell  <mark@codesourcery.com>
548117395Skan
549117395Skan	PR c++/10278
550117395Skan	* spew.c (yyerror): Avoid crashing at all costs.
551117395Skan
552117395Skan2003-03-31  Jason Merrill  <jason@redhat.com>
553117395Skan
554117395Skan	PR java/10145
555117395Skan	* class.c (check_field_decl): Don't set DECL_ALIGN.
556117395Skan
557117395Skan2003-03-30  Mark Mitchell  <mark@codesourcery.com>
558117395Skan
559117395Skan	PR c++/7647
560117395Skan	* search.c (lookup_field_1): Add want_type parameter.
561117395Skan	(lookup_field_r): Adjust call to lookup_field_1.
562117395Skan
563117395Skan2003-03-28  Jason Merrill  <jason@redhat.com>
564117395Skan
565117395Skan	PR c++/10245
566117395Skan	* cvt.c (force_rvalue): New fn.
567117395Skan	* call.c (build_conditional_expr): Use it.
568117395Skan	* cp-tree.h: Declare it.
569117395Skan
570117395Skan2003-03-28  Nathan Sidwell  <nathan@codesourcery.com>
571117395Skan
572117395Skan	PR c++/10047
573117395Skan	* decl2.c (finish_file): Don't warn about explicitly instantiated
574117395Skan	inline decls.
575117395Skan
576117395Skan2003-03-27  Nathan Sidwell  <nathan@codesourcery.com>
577117395Skan
578117395Skan	PR c++/10158
579117395Skan	* spew.c (snarf_method):Set DECL_INITIALIZED_IN_CLASS for
580117395Skan	members.
581117395Skan	* pt.c (instantiate_decl): Only reduce the template args for
582117395Skan	friends that are not defined in class.
583117395Skan
584117395Skan2003-03-24  Nathan Sidwell  <nathan@codesourcery.com>
585117395Skan
586117395Skan	PR c++/9898, PR c++/383, DR 322
587117395Skan	* pt.c (maybe_adjust_types_for_deduction) [DEDUCE_CONV]: Look
588117395Skan	through reference types on both PARM and ARG.
589117395Skan
590117395Skan	PR c++/10199
591117395Skan	* call.c (build_method_call): Deal with LOOKUP_EXPR.
592117395Skan	* semantics.c (finish_object_call_expr): Use build_method_call
593117395Skan	when in a template decl.
594117395Skan
595117395Skan2003-03-23  Mark Mitchell  <mark@codesourcery.com>
596117395Skan
597117395Skan	PR c++/7086
598117395Skan	* semantics.c (genrtl_named_return_value): Adjust calls to
599117395Skan	put_var_into_stack.
600117395Skan	* typeck.c (cxx_mark_addressable): Likewise.
601117395Skan
602117395Skan2003-03-20  Mark Mitchell  <mark@codesourcery.com>
603117395Skan
604117395Skan	PR c++/6412
605117395Skan	* cp/decl2.c (arg_assoc_class): Correct check for namespace-scope
606117395Skan	friends.
607117395Skan	* cp/pt.c (instantiate_class_template): Fix formatting.
608117395Skan
609117395Skan2003-03-19  Jason Merrill  <jason@redhat.com>
610117395Skan
611117395Skan	PR c++/8316, c++/9315, c++/10136
612117395Skan	* call.c (joust): Improve wording.
613117395Skan
614117395Skan2003-03-18  Roger Sayle  <roger@eyesopen.com>
615117395Skan
616117395Skan	PR c++/10031
617117395Skan	* decl.c (duplicate_decls): Use the new type when prototyping
618117395Skan	anticipated decls, even when the types match.  This defines the
619117395Skan	exception list for the built-in function.
620117395Skan
621117395Skan2003-03-17  Jason Merrill  <jason@redhat.com>
622117395Skan
623117395Skan	PR c++/10091
624117395Skan	* typeck.c (build_class_member_access_expr): Compare
625117395Skan	TYPE_MAIN_VARIANTs.
626117395Skan
627117395Skan	* decl.c (finish_function): Don't skip a block.
628117395Skan
629117395Skan	PR c++/9993
630117395Skan	* decl.c (finish_function): Only allow the NRVO to use variables
631117395Skan	declared at function scope.
632117395Skan
633117395Skan2003-03-17  Nathan Sidwell  <nathan@codesourcery.com>
634117395Skan
635117395Skan	PR c++/9629
636117395Skan	* cp-tree.h (struct language_function): Add in_base_initializer.
637117395Skan	(in_base_initializer): define it.
638117395Skan	(expand_member_init): Remove INIT param.
639117395Skan	* init.c (expand_member_init): Remove INIT param, return the member.
640117395Skan	(emit_mem_initializers): Set in_base_initializer.
641117395Skan	* class.c (build_base_path): Check in_base_initializer.
642117395Skan	* parse.y (begin_member_init): New reduction.
643117395Skan	(member_init): Use it.
644117395Skan	* pt.c (tsubst_initializer_list): Set in_base_initializer.
645117395Skan
646117395Skan2003-03-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
647117395Skan
648117395Skan	PR c++/6440
649117395Skan	* pt.c (maybe_process_partial_specialization): Handle
650117395Skan	member class template when enclosing class template is
651117395Skan	explicit specialized.
652117395Skan	(most_general_template): Stop looking when DECL is already
653117395Skan	specialized.
654117395Skan
655117395Skan2003-03-13  Jason Merrill  <jason@redhat.com>
656117395Skan
657117395Skan	PR c++/9420
658117395Skan	* search.c (lookup_conversions): Call complete_type here.
659117395Skan	* call.c (implicit_conversion): Not here.
660117395Skan
661117395Skan2003-03-13  Jason Merrill  <jason@redhat.com>
662117395Skan
663117395Skan	PR c++/9336
664117395Skan	* decl2.c (lookup_arg_dependent): Handle error_mark_node.
665117395Skan
666117395Skan2003-03-13  Mark Mitchell  <mark@codesourcery.com>
667117395Skan
668117395Skan	* decl2.c (do_nonmember_using_decl): Correct handling of
669117395Skan	simultaneous type/non-type bindings.
670117395Skan
671117395Skan2003-03-13  Mark Mitchell  <mark@codesourcery.com>
672117395Skan
673117395Skan	* call.c (initialize_reference): Remove bogus assertion.
674117395Skan	* decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.
675117395Skan
676117395Skan2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
677117395Skan
678117395Skan	PR c++/7050
679117395Skan	* expr.c (cxx_expand_expr): Return const0_rtx for throw
680117395Skan	expressions.
681117395Skan
682117395Skan2003-03-11  Mark Mitchell  <mark@codesourcery.com>
683117395Skan
684117395Skan	PR c++/9474
685117395Skan	* decl2.c (do_nonmember_using_decl): Do not call duplicate decls
686117395Skan	to merge old and new declarations.
687117395Skan
688117395Skan2003-03-11  Mark Mitchell  <mark@codesourcery.com>
689117395Skan
690117395Skan	PR c++/9924
691117395Skan	* decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.
692117395Skan
693117395Skan2003-03-11  Jason Merrill  <jason@redhat.com>
694117395Skan
695117395Skan	PR c++/9820
696117395Skan	* search.c (lookup_member): Fix handling of functions in a class
697117395Skan	being defined.
698117395Skan
699117395Skan2003-03-11  Mark Mitchell  <mark@codesourcery.com>
700117395Skan
701117395Skan	PR c++/8700
702117395Skan	* call.c (print_z_candidates): Avoid printing duplicates.
703117395Skan
704117395Skan2003-03-11  Jason Merrill  <jason@redhat.com>
705117395Skan
706117395Skan	PR c++/8660
707117395Skan	* decl2.c (check_classfn): A member template only matches a
708117395Skan	member template.
709117395Skan
710117395Skan2003-03-10  Devang Patel  <dpatel@apple.com>
711117395Skan
712117395Skan	PR c++/9394
713117395Skan	* g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWITCH_TAKES_ARG.
714117395Skan
715117395Skan2003-03-10  Jason Merrill  <jason@redhat.com>
716117395Skan
717117395Skan	PR c++/9798
718117395Skan	* decl.c (push_using_directive): Push before recursing.
719117395Skan
720117395Skan	PR c++/9868
721117395Skan	* call.c (resolve_scoped_fn_name): Handle the case of a function
722117395Skan	pointer member.
723117395Skan	* init.c (build_offset_ref): Handle getting a FIELD_DECL for NAME.
724117395Skan
725117395Skan	* decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'
726117395Skan	argument in the pointer-to-member case.
727117395Skan
728117395Skan2003-03-09  Mark Mitchell  <mark@codesourcery.com>
729117395Skan
730117395Skan	PR c++/9373
731117395Skan	* cp-lang.c (cxx_get_alias_set): Use alias set zero for
732117395Skan	pointers to member functions.
733117395Skan
734117395Skan	PR c++/8534
735117395Skan	* decl.c (build_ptrmemfunc_type): Do not allow default arugments
736117395Skan	in pointer-to-member-function types.
737117395Skan
738117395Skan2003-03-09  Mark Mitchell  <mark@codesourcery.com>
739117395Skan
740117395Skan	PR c++/9912
741117395Skan	* cp-tree.h (is_ancestor): New function.
742117395Skan	* decl2.c (is_namespace_ancestor): Rename to ...
743117395Skan	(is_ancestor): ... this.
744117395Skan	(namespace_ancestor): Use it.
745117395Skan	(set_decl_namespace): Likewise.
746117395Skan	(handle_class_head): Check for invalid class definitions.
747117395Skan
748117395Skan2003-03-10  Gabriel Dos Reis <gdr@integrable-solutions.net>
749117395Skan
750117395Skan	Compile-time improvement: 2/n.
751117395Skan	* cp-tree.h (struct cxx_binding): New datatype;
752117395Skan	(struct lang_identifier): Use it.
753117395Skan	(LOCAL_BINDING_P): Adjust definition.
754117395Skan	(INHERITED_VALUE_BINDING_P): Likewise.
755117395Skan	(BINDING_SCOPE): Likewise.
756117395Skan	(BINDING_HAS_LEVEL_P): Likewise.
757117395Skan	(BINDING_VALUE): Likewise.
758117395Skan	(BINDING_TYPE): Likewise.
759117395Skan	(IDENTIFIER_VALUE): Likewise.
760117395Skan	(struct tree_binding): Remove.
761117395Skan	(TS_CP_BINDING): Likewise.
762117395Skan	((union lang_tree_node): Remove field "binding".
763117395Skan	(cxx_binding_clear): New macro.
764117395Skan	(binding_for_name): Adjust return type.
765117395Skan	(qualified_lookup_using_namespace): Adjust prototype.
766117395Skan	(lookup_using_namespace): Adjust prototype.
767117395Skan	(cxx_scope_find_binding_for_name): Declare.
768117395Skan	* cp-tree.def: Remove CPLUS_BINDING definition.
769117395Skan	* parse.y (parse_scoped_id): Don't type-abuse of 'id'.  Allocate
770117395Skan	temporary cxx_binding on stack.  Simplify.
771117395Skan	* decl.c (push_binding): Adjust local variable type.
772117395Skan	(add_binding): Likewise.
773117395Skan	(push_class_binding): Likewise.
774117395Skan	(pop_binding): Likewise.
775117395Skan	(poplevel): Likewise.
776117395Skan	(poplevel_class): Likewise.
777117395Skan	(free_bindings):  Adjust type.
778117395Skan	(find_binding): Adjust return type, add a third parameter. Remove
779117395Skan	non-useful assertion now that we use static typing.
780117395Skan	(cxx_scope_find_binding_for_name): New function.
781117395Skan	(binding_for_name): Use it.  Adjust local variable type. Simplify.
782117395Skan	(namespace_binding):  Simplify.
783117395Skan	(set_namespace_binding): Likewise.
784117395Skan	(set_identifier_type_value_with_scope): Adjust local variable type.
785117395Skan	(lookup_tag): Don't type-abuse of local variable 'old'.
786117395Skan	(lookup_namespace_name): Likewise.  Allocate binding on stack.
787117395Skan	(select_decl): Adjust prototype.
788117395Skan	(unqualified_namespace_lookup):  Allocate binding on stack.
789117395Skan	Don't type-abuse of local variable 'val'.
790117395Skan	(lookup_name_real): Likewise.
791117395Skan	(maybe_inject_for_scope_var): Adjust local variable type.
792117395Skan	(cp_tree_node_structure): Remove CPLUS_BINDING case label.
793117395Skan	(namespace_binding): Adjust logic, simplify.
794117395Skan	(BINDING_LEVEL): Adjust definition.
795117395Skan	(push_class_level_binding): Adjust local variable type.
796117395Skan	(struct cxx_saved_binding): Adjust field 'binding' type.
797117395Skan	* decl2.c (ambiguous_decl): Adjust prototype.
798117395Skan	(lookup_using_namespace): Adjust local variable type.
799117395Skan	(qualified_lookup_using_namespace): Catch type error and correct
800117395Skan	ensueing logic error.
801117395Skan	(do_nonmember_using_decl): Adjust local variable type.  Allocate
802117395Skan	temporary cxx_binding on stack.
803117395Skan	(do_toplevel_using_decl): Adjust local variable type.
804117395Skan	* ptree.c (cxx_print_cxx_binding): New function.
805117395Skan	(cxx_print_identifier): Use it.
806117395Skan	(cxx_print_xnode): Delete CPLUS_BINDING case label.
807117395Skan
808117395Skan2003-03-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
809117395Skan
810117395Skan	PR c++/9970
811117395Skan	* decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual
812117395Skan	functions.
813117395Skan
814117395Skan2003-03-07  Matt Austern  <austern@apple.com>
815117395Skan
816117395Skan 	* cp-tree.h (struct lang_type_class): add field for key method
817117395Skan 	(cp_global_trees): rename dynamic_classes to keyed_classes
818117395Skan 	(key_method): add definition
819117395Skan 	* class.c (finish_struct_1): compute class's key method, and add
820117395Skan 	the class to keyed_classes list if there is no key method.
821117395Skan 	* decl.c (finish_function): add class to keyed_classes list if we
822117395Skan 	see a definition of the class's key method.
823117395Skan 	* pt.c (instantiate_class_template): add template specialization
824117395Skan 	of a dynamic class to keyed_classes list.
825117395Skan 	* decl2.c (key_method): remove
826117395Skan 	(finish_file): iterate only through keyed_classes list when
827117395Skan 	deciding whether to emit vtables, remove class from its list after
828117395Skan 	we do the emission.
829117395Skan
830117395Skan2003-03-08  Mark Mitchell  <mark@codesourcery.com>
831117395Skan
832117395Skan	PR c++/9809
833117395Skan	* call.c (add_function_candidate): Skip builtin fuctions that have
834117395Skan	not yet been declared.
835117395Skan
836117395Skan2003-03-07  Mark Mitchell  <mark@codesourcery.com>
837117395Skan
838117395Skan	* call.c (reference_binding): Remove REF_IS_VAR parameter.
839117395Skan	(implicit_conversion): Adjust call to reference_binding.
840117395Skan	(make_temporary_var_for_ref_to_type): Add TYPE parameter.
841117395Skan	(initialize_reference): Adjust handling for references bound to
842117395Skan	rvalues.
843117395Skan	* cp-tree.h (make_temporary_var_for_ref_to_temp): Change
844117395Skan	prototype.
845117395Skan	(real_non_cast_lvalue_p): New method.
846117395Skan	* cvt.c (build_up_reference): Adjust use of
847117395Skan	make_temporary_var_for_ref_to_temp.
848117395Skan	* tree.c (real_non_cast_lvalue_p): New method.
849117395Skan
850117395Skan2003-03-06  Mark Mitchell  <mark@codesourcery.com>
851117395Skan
852117395Skan	* call.c (merge_conversion_sequences): New function.
853117395Skan	(build_conv): Set ICS_USER_FLAG for USER_CONVs.
854117395Skan	(convert_class_to_reference): Correct handling of second
855117395Skan	standard conversion sequence in a user-defined conversion
856117395Skan	sequence.
857117395Skan	(build_user_type_conversion_1): Use merge_conversion_sequences.
858117395Skan	* cp-tree.def: Add comments for CONV nodes.
859117395Skan
860117395Skan2003-03-06  Mark Mitchell  <mark@codesourcery.com>
861117395Skan
862117395Skan	PR c++/9965
863117395Skan	* call.c (reference_binding): Add ref_is_var parameter.
864117395Skan	(implicit_conversion): Adjust call to reference_binding.
865117395Skan	(initialize_reference): Likewise.
866117395Skan
867117395Skan	PR c++/9400
868117395Skan	* decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL
869117395Skan	PARM_DECLs.
870117395Skan
871117395Skan2003-03-06  Mark Mitchell  <mark@codesourcery.com>
872117395Skan
873117395Skan	PR c++/9791
874117395Skan	* class.c (get_basefndecls): Use lookup_fnfields_1.
875117395Skan
876117395Skan2003-03-02  Matt Austern  <austern@apple.com>
877117395Skan
878117395Skan	* decl.c (cp_binding_level): Add static_decls varray member.
879117395Skan	(add_decl_to_level): Add static/inline namespace scope
880117395Skan	declarations to static_decls array.
881117395Skan	(wrapup_global_for_namespace): Pass static_decls only, instead of
882117395Skan	all decls, to wrapup_global_declarations/check_global_declarations.
883117395Skan	(push_namespace): Initialize static_decls for ordinary namespaces.
884117395Skan	(cxx_init_decl_processing): Initialize static_decls for global
885117395Skan	namespace.
886117395Skan
887117395Skan2003-03-05  Mark Mitchell  <mark@codesourcery.com>
888117395Skan
889117395Skan	* class.c (end_of_class): Correct thinko.
890117395Skan
891117395Skan2003-03-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
892117395Skan
893117395Skan	* cp-tree.h (cxx_saved_binding): Declare.
894117395Skan	(struct saved_scope): Adjust type of field 'old_binding'.
895117395Skan	* decl.c (cxx_saved_binding_make): New macro.
896117395Skan	(struct cxx_saved_binding): Define.
897117395Skan	(store_bindings): Adjust prototype.  Use cxx_saved_binding to save
898117395Skan	C++ bindings.
899117395Skan	(maybe_push_to_top_level): Adjust local variable type.
900117395Skan	(pop_from_top_level): Likewise.
901117395Skan
902117395Skan2003-03-03  Jason Merrill  <jason@redhat.com>
903117395Skan
904117395Skan	* decl.c (finish_enum): Do set the type in a template. Simplify.
905117395Skan	* pt.c (tsubst_enum, tsubst_copy): Revert last patch.
906117395Skan
907117395Skan2003-03-03  Mark Mitchell  <mark@codesourcery.com>
908117395Skan
909117395Skan	PR c++/9878
910117395Skan	* call.c (convert_class_to_reference): Correct conversion
911117395Skan	sequences.
912117395Skan	(reference_binding): Add ref_bound_directly_to_rvalue_p parameter.
913117395Skan	(implicit_conversion): Adjust call to reference_binding.
914117395Skan	(add_candidate): Change type of candidates parameter.
915117395Skan	(add_function_candidate): Likewise.
916117395Skan	(add_conv_candidate): Likewise.
917117395Skan	(build_builtin_candidate): Likewise.
918117395Skan	(add_builtin_candidate): Likewise.
919117395Skan	(add_builtin_candidates): Likewise.
920117395Skan	(add_template_candidate_real): Likewise.
921117395Skan	(add_template_candidate): Likewise.
922117395Skan	(add_template_conv_candidate): Likewise.
923117395Skan	(build_user_type_conversion_1): Adjust accordingly.
924117395Skan	(build_object_call): Likewise.
925117395Skan	(build_conditional_expr): Likewise.
926117395Skan	(add_candidates): Likewise.
927117395Skan	(build_new_op): Likewise.
928117395Skan	(convert_like_real): Use USER_CONV_CAND.  Use build_nop.
929117395Skan	(build_new_method_call): Adjust calls to add_function_candidate.
930117395Skan	(make_temporary_var_for_ref_to_temp): New function.
931117395Skan	(initialize_reference): Add decl parameter.
932117395Skan	* class.c (build_rtti_vtbl_entries): Use build_address and
933117395Skan	build_nop.
934117395Skan	* cp-tree.h (initialize_reference): Change prototype.
935117395Skan	(make_temporary_var_for_ref_to_temp): New function.
936117395Skan	(build_type_conversion): Change prototype.
937117395Skan	(build_address): New function.
938117395Skan	(build_nop): Likewise.
939117395Skan	* cvt.c (cp_convert_to_pointer): Adjust call to
940117395Skan	build_type_conversion.  Avoid indicating redundant NOP_EXPRs.
941117395Skan	Use build_nop.
942117395Skan	(convert_to_pointer_force): Use build_nop.
943117395Skan	(build_up_reference): Use make_temporary_var_for_ref_to_temp.
944117395Skan	(convert_to_reference): Adjust call to build_type_conversion.
945117395Skan	(ocp_convert): Likewise.
946117395Skan	(build_type_conversion): Remove for_sure parameter.
947117395Skan	* decl.c (grok_reference_init): Use initialize_reference.
948117395Skan	* typeck.c (build_address): New function.
949117395Skan	(build_nop): Likewise.
950117395Skan	(build_unary_op): Use them.
951117395Skan	(build_ptrmemfunc): Tidy slightly.
952117395Skan	(convert_for_initialization): Adjust call to
953117395Skan	initialize_reference.
954117395Skan	* typeck2.c (store_init_value): Remove #if 0'd code.
955117395Skan
956117395Skan2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
957117395Skan
958117395Skan	* lang-specs.h (default_compilers): Add -no-integrated-cpp flag to
959117395Skan	  invoke an external cpp during compilation.
960117395Skan
961117395Skan2003-02-28 Mark Mitchell  <mark@codesourcery.com>
962117395Skan
963117395Skan	PR c++/9892
964117395Skan	* pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
965117395Skan	instantiating it.
966117395Skan
967117395Skan2003-02-28  Mark Mitchell  <mark@codesourcery.com>
968117395Skan
969117395Skan	PR c++/9879
970117395Skan	* cp-tree.h (build_zero_init): Add parameter.
971117395Skan	* decl.c (cp_finish_decl): Adjust call.
972117395Skan	* init.c (build_zero_init): Add nelts parameter.  Adjust recursive
973117395Skan	calls.
974117395Skan	(build_default_init): Add nelts parameter.  Adjust calls to
975117395Skan	build_zero_init.
976117395Skan	(build_new_1): Adjust call to build_default_init.
977117395Skan	* typeck2.c (process_init_constructor): Adjust call to build_zero_init.
978117395Skan
979117395Skan2003-02-27  Devang Patel  <dpatel@apple.com>
980117395Skan
981117395Skan	* decl.c (finish_enum): Merge two 'for' loops. Copy value node if required.
982117395Skan	Postpone enum setting for template decls.
983117395Skan	(build_enumerator): Delay copying value node until finish_enum (). Remove
984117395Skan	#if 0'ed code.
985117395Skan	* pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
986117395Skan	(tsubst_copy): Add check for enum type.
987117395Skan
988117395Skan
989117395Skan2003-02-25  Mark Mitchell  <mark@codesourcery.com>
990117395Skan
991117395Skan	PR c++/9829
992117395Skan	* decl.c (grokdeclarator): Handle SCOPE_REFs whose second argument
993117395Skan	is a NAMESPACE_DECL.
994117395Skan
995117395Skan2003-02-24 Gabriel Dos Reis  <gdr@integrable-solutions.net>
996117395Skan
997117395Skan	* decl.c (add_binding): Time TV_NAME_LOOKUP.
998117395Skan	(push_class_binding): Likewise.
999117395Skan	(set_namespace_binding): Likewise.
1000117395Skan
1001117395Skan2003-02-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1002117395Skan
1003117395Skan	PR c++/9602
1004117395Skan	* typeck2.c (abstract_virtuals_error): Don't check when we
1005117395Skan	are processing a template.
1006117395Skan
1007117395Skan2003-02-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1008117395Skan
1009117395Skan	PR c++/7982
1010117395Skan	* decl.c (warn_about_implicit_typename_lookup): Handle TYPEOF_TYPE.
1011117395Skan
1012117395Skan2003-02-21  Mark Mitchell  <mark@codesourcery.com>
1013117395Skan
1014117395Skan	PR c++/9749
1015117395Skan	* decl.c (grokdeclarator): Do not allow parameters with variably
1016117395Skan	modified types.
1017117395Skan
1018117395Skan	PR c++/9727
1019117395Skan	* decl2.c (push_scope): Don't pushclass for non-class types.
1020117395Skan	(pop_scope): Don't popclass either.
1021117395Skan
1022117395Skan	PR c++/8906
1023117395Skan	* decl.c (lookup_name_real): Use IMPLICIT_TYPENAME_P.
1024117395Skan	* decl2.c (handle_class_head): Check it.
1025117395Skan
1026117395Skan	PR c++/8724
1027117395Skan	* call.c (build_method_call): Make sure that the type destroyed in
1028117395Skan	an explicit destructor call is complete.
1029117395Skan
1030117395Skan2003-02-20  Mark Mitchell  <mark@codesourcery.com>
1031117395Skan
1032117395Skan	PR c++/9729
1033117395Skan	* mangle.c (mangle_conv_op_name_for_type): Issue an error message
1034117395Skan	when the G++ 3.2 ABI prevents correct compilation.
1035117395Skan
1036117395Skan2003-02-18  Mark Mitchell  <mark@codesourcery.com>
1037117395Skan
1038117395Skan	PR c++/9704
1039117395Skan	* class.c (layout_class_type): In the 3.2 ABI, take into account
1040117395Skan	trailing bit fields when computing CLASSTYPE_SIZE_UNIT.
1041117395Skan
1042117395Skan2003-02-18  Matt Austern <austern@apple.com>
1043117395Skan
1044117395Skan	* cp/cp-lang.c: Change lang hooks so that final_write_globals does
1045117395Skan	nothing for C++.
1046117395Skan	* cp/decl.c (wrapup_globals_for_namespace): Remove special
1047117395Skan	handling of global namespace.
1048117395Skan
1049117395Skan2003-02-18  Jason Merrill  <jason@redhat.com>
1050117395Skan
1051117395Skan	PR c++/9623
1052117395Skan	* decl.c (reshape_init): Don't mess with initializer labels.
1053117395Skan
1054117395Skan2003-02-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1055117395Skan
1056117395Skan	PR c++/9459
1057117395Skan	* error.c (dump_type_prefix): Handle TYPEOF_TYPE.
1058117395Skan	(dump_type_suffix): Likewise.
1059117395Skan
1060117395Skan2003-02-17  Michael Elizabeth Chastain <mec@shout.net>
1061117395Skan
1062117395Skan	PR debug/9717
1063117395Skan	* class.c (build_base_field): Mark fields for base classes with
1064117395Skan	DECL_IGNORED_P.
1065117395Skan
1066117395Skan2003-02-13  Andrew Pinski <pinskia@physics.uc.edu>
1067117395Skan
1068117395Skan	* decl.c: (define_label): Fix warning for return 0 instead of NULL.
1069117395Skan
1070117395Skan2003-02-13  Gabriel Dos Reis <gdr@integrable-solutions.net>
1071117395Skan
1072117395Skan	* Make-lang.in (cp/decl2.o): Add dependency on timevar.h
1073117395Skan	* decl2.c: Include "timevar.h".
1074117395Skan	(namespace_ancestor): Time name lookup.
1075117395Skan	(add_using_namespace): Likewise.
1076117395Skan	(lookup_using_namespace): Likewise.
1077117395Skan	(qualified_lookup_using_namespace): Likewise.
1078117395Skan	(decl_namespace): Likewise.
1079117395Skan	(lookup_arg_dependent): Likewise.
1080117395Skan	* lex.c (do_identifier): Likewise.
1081117395Skan	(do_scoped_id): Likewise.
1082117395Skan	* pt.c (lookup_template_class): Likewise.
1083117395Skan
1084117395Skan2003-02-12  Gabriel Dos Reis <gdr@integrable-solutions.net>
1085117395Skan
1086117395Skan	* decl.c (define_label): Don't forget to pop TV_NAME_LOOKUP.
1087117395Skan
1088117395Skan2003-02-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1089117395Skan
1090117395Skan	* decl.c: Include "timevar.h".
1091117395Skan	(poplevel): Time name lookup.
1092117395Skan	(find_binding): Likewise.
1093117395Skan	(push_namespace): Likewise.
1094117395Skan	(pop_nested_namespace): Likewise.
1095117395Skan	(store_bindings): Likewise.
1096117395Skan	(maybe_push_to_top_level): Likewise.
1097117395Skan	(pop_from_top_level): Likewise.
1098117395Skan	(push_local_name): Likewise.
1099117395Skan	(pushtag): Likewise.
1100117395Skan	(pushdecl): Likewise.
1101117395Skan	(pushdecl_with_scope): Likewise.
1102117395Skan	(pushdecl_namespace_level): Likewise.
1103117395Skan	(pushdecl_top_level): Likewise.
1104117395Skan	(pushdecl_class_level): Likewise.
1105117395Skan	(push_class_level_binding): Likewise.
1106117395Skan	(push_using_decl): Likewise.
1107117395Skan	(push_using_directive): Likewise.
1108117395Skan	(push_overloaded_decl): Likewise.
1109117395Skan	(lookup_label): Likewise.
1110117395Skan	(define_label): Likewise.
1111117395Skan	(lookup_tag): Likewise.
1112117395Skan	(lookup_tag_reverse): Likewise.
1113117395Skan	(lookup_namespace_name): Likewise.
1114117395Skan	(select_decl): Likewise.
1115117395Skan	(unqualified_namespace_lookup): Likewise.
1116117395Skan	(lookup_name_real): Likewise.
1117117395Skan	(lookup_name_current_level): Likewise.
1118117395Skan	(lookup_type_current_level): Likewise.
1119117395Skan	(maybe_inject_for_scope_var): Likewise.
1120117395Skan	(xref_tag): Likewise.
1121117395Skan
1122117395Skan	* Make-lang.in (cp/decl.o): Add dependency on timevar.h
1123117395Skan
1124117395Skan2003-02-03  Mark Mitchell  <mark@codesourcery.com>
1125117395Skan
1126117395Skan	PR c++/7129
1127117395Skan	* operators.def: Add <?= and >?=.
1128117395Skan
1129117395Skan2003-01-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1130117395Skan
1131117395Skan	PR c++/8849
1132117395Skan	* error.c (dump_expr): Handle BASELINK.
1133117395Skan	* pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL.
1134117395Skan
1135117395Skan2003-01-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1136117395Skan
1137117395Skan	PR c++/9453
1138117395Skan	* friend.c (is_friend): Always accept when SUPPLICANT is still
1139117395Skan	a TEMPLATE_DECL.
1140117395Skan	* pt.c (push_access_scope_real): Call push_to_top_level for
1141117395Skan	function in namespace scope.
1142117395Skan	(push_access_scope): Remove ARGS argument, all caller adjusted.
1143117395Skan	(pop_access_scope): Call pop_from_top_level for function in
1144117395Skan	namespace scope.
1145117395Skan	(regenerate_decl_from_template): Use push_access_scope_real.
1146117395Skan
1147117395Skan2003-01-29  Nathan Sidwell  <nathan@codesourcery.com>
1148117395Skan
1149117395Skan	PR c++/9437
1150117395Skan	* pt.c (unify): Don't unify '*T' with 'U C::*'.
1151117395Skan
1152117395Skan2003-01-27  Jeffrey D. Oldham  <oldham@codesourcery.com>
1153117395Skan
1154117395Skan	PR c++/47
1155117395Skan	* cp-tree.h (lookup_nested_field): Add declaration.
1156117395Skan	* decl.c (lookup_name_real): Call lookup_nested_field.
1157117395Skan	* search.c (lookup_nested_field): Add function.
1158117395Skan
1159117395Skan2003-01-26  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
1160117395Skan
1161110611Skan	* Make-lang.in (c++.install-common, c++.install-man)
1162117395Skan	(c++.uninstall): Prepend $(DESTDIR) to destination paths in
1163117395Skan	all (un)installation commands.
1164110611Skan	(c++.install-common): Rewrite $(LN) commands to support
1165110611Skan	DESTDIR with "ln" as well as with "ln -s".
1166110611Skan
1167117395Skan2003-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1168117395Skan
1169117395Skan	* decl2.c (check_classfn): Fix uninitialized warning.
1170117395Skan
1171110611Skan2003-01-22  Mark Mitchell  <mark@codesourcery.com>
1172110611Skan
1173110611Skan	PR c++/9328
1174110611Skan	* error.c (dump_decl): For an OVERLOAD, just print the name of the
1175110611Skan	function; it doesn't make sense to try to print its type.
1176110611Skan	* semantics.c (finish_typeof): Issue errors about invalid uses.
1177110611Skan
1178117395Skan2003-01-22  Josef Zlomek  <zlomekj@suse.cz>
1179110611Skan
1180117395Skan	PR/9386, PR/8801
1181117395Skan	2002-12-27  Mark Mitchell  <mark@codesourcery.com>
1182117395Skan	* typeck.c (build_class_member_access_expr): Fix anonymous union
1183117395Skan	handling.
1184110611Skan
1185117395Skan2003-01-17  Jason Merrill  <jason@redhat.com>
1186117395Skan
1187117395Skan	PR c++/9167, c++/9358
1188117395Skan	* decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.
1189117395Skan
1190117395Skan2003-01-17  Jason Merrill  <jason@redhat.com>
1191117395Skan
1192117395Skan	PR c++/9342
1193117395Skan	* call.c (build_conditional_expr): Always do lvalue-rvalue
1194117395Skan	conversion.
1195117395Skan
1196117395Skan2003-01-16  Jason Merrill  <jason@redhat.com>
1197117395Skan
1198117395Skan	PR c++/8564
1199117395Skan	* init.c (build_vec_init): Re-add maxindex parm.
1200117395Skan	(perform_member_init, build_aggr_init): Pass it.
1201117395Skan	(build_new_1): Pass it. Use an incomplete array type for full_type.
1202117395Skan	* typeck.c (build_modify_expr): Pass it.
1203117395Skan	* cp-tree.h: Adjust.
1204117395Skan
1205117395Skan2003-01-13  Jason Merrill  <jason@redhat.com>
1206117395Skan
1207117395Skan	PR c++/8748
1208117395Skan	* class.c (build_base_path): Take the address before calling save_expr.
1209117395Skan
1210117395Skan	* call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if
1211117395Skan	all the ambiguous conversions are bad.
1212117395Skan
1213117395Skan	* class.c (maybe_warn_about_overly_private_class): Don't stop
1214117395Skan	searching when we find a nonprivate method.
1215117395Skan
1216117395Skan2003-01-09  Jakub Jelinek  <jakub@redhat.com>
1217117395Skan
1218117395Skan	* decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs.
1219117395Skan
1220117395Skan2003-01-09  Jakub Jelinek  <jakub@redhat.com>
1221117395Skan
1222117395Skan	* decl.c (start_decl): Don't set DECL_COMMON for __thread variables.
1223117395Skan
1224117395Skan2003-01-07  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1225117395Skan
1226117395Skan	PR c++/9030
1227117395Skan	* decl.c (make_typename_type): Check access only when tf_error.
1228117395Skan	(make_unbound_class_template): Likewise.
1229117395Skan	* pt.c (saved_access_scope): New variable.
1230117395Skan	(push_access_scope_real): New function.
1231117395Skan	(push_access_scope): Likewise.
1232117395Skan	(pop_access_scope): Likewise.
1233117395Skan	(tsubst_default_argument): Use them.
1234117395Skan	(instantiate_template): Likewise.
1235117395Skan	(regenerate_decl_from_template): Likewise.
1236117395Skan	(instantiate_decl): Likewise.
1237117395Skan	(get_mostly_instantiated_function_type): Likewise.
1238117395Skan
1239117395Skan2003-01-06  Mark Mitchell  <mark@codesourcery.com>
1240117395Skan
1241117395Skan	PR c++/9165
1242117395Skan	* decl2.c (build_cleanup): Mark the object as used.
1243117395Skan
1244117395Skan2003-01-03  Nathan Sidwell  <nathan@codesourcery.com>
1245117395Skan
1246117395Skan	PR c++/45, c++/3784
1247117395Skan	* tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be
1248117395Skan	the same too.
1249117395Skan
1250117395Skan2002-12-30  Nathan Sidwell  <nathan@codesourcery.com>
1251117395Skan
1252117395Skan	PR c++/9054
1253117395Skan	* class.c (layout_class_type): Set DECL_CONTEXT of type for base.
1254117395Skan	* dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types.
1255117395Skan
1256110611Skan2002-12-26  Nathan Sidwell  <nathan@codesourcery.com>
1257110611Skan
1258117395Skan	PR c++/4803
1259117395Skan	* decl2.c (mark_used): Defer inline functions.
1260117395Skan	(finish_file): Merge deferred_fns loops. Check all used
1261117395Skan	inline functions have a definition.
1262117395Skan	* method.c (make_thunk): Thunks are not inline.
1263110611Skan
1264117395Skan	PR c++/5116, c++/764
1265117395Skan	* call.c (build_new_op): Make sure template class operands are
1266117395Skan	instantiated.
1267117395Skan
1268117395Skan2002-12-24  Nathan Sidwell  <nathan@codesourcery.com>
1269117395Skan
1270117395Skan	PR C++/7964
1271117395Skan	* cp-tree.h (resolve_scoped_fn_name): Prototype.
1272117395Skan	* call.c (resolve_scoped_fn_name): New function. Deal with
1273117395Skan	more template expansion. Broken out of ...
1274117395Skan	* parse.y (parse_finish_call_expr): ... here. Call it.
1275117395Skan	* decl2.c (build_expr_from_tree, CALL_EXPR): Use
1276117395Skan	resolve_scoped_fn_name and build_call_from_tree.
1277117395Skan
1278117395Skan	PR c++/9053
1279117395Skan	* decl.c (duplicate_decls): Templates may be disambiguated by
1280117395Skan	return type.
1281117395Skan
1282117395Skan	PR c++/8702
1283117395Skan	* decl2.c (check_classfn): Use lookup_fnfield_1. List all
1284117395Skan	conversion operators on failure.
1285117395Skan
1286117395Skan2002-12-22  Nathan Sidwell  <nathan@codesourcery.com>
1287117395Skan
1288117395Skan	PR c++/8572
1289117395Skan	* cp-tree.h (grokoptypename): Add SCOPE parameter.
1290117395Skan	* decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type
1291117395Skan	if in a template scope.
1292117395Skan	* parse.y (unoperator): Return the scope.
1293117395Skan	(operator_name): Adjust grokoptypename call.
1294117395Skan
1295117395Skan2002-12-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1296117395Skan
1297117395Skan	* cp-tree.h (make_unbound_class_template): Use tsubst_flags_t.
1298117395Skan	* decl.c (make_unbound_class_template): Adjust.  Check for tf_error.
1299117395Skan	* pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error.
1300117395Skan
1301110611Skan2002-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1302110611Skan
1303117395Skan	PR c++/8099
1304117395Skan	* friend.c (make_friend_class): Allow partial specialization
1305117395Skan	when declaration is not a template friend.
1306117395Skan
1307117395Skan2002-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1308117395Skan
1309117395Skan	PR c++/3663
1310117395Skan	* pt.c (lookup_template_class): Copy TREE_PRIVATE and
1311117395Skan	TREE_PROTECTED to created decl nodes.
1312117395Skan
1313117395Skan2002-12-18  Mark Mitchell  <mark@codesourcery.com>
1314117395Skan
1315117395Skan	* class.c (build_base_field): Do not set DECL_PACKED on the
1316117395Skan	FIELD_DECL.
1317117395Skan
1318117395Skan2002-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1319117395Skan
1320110611Skan	* parse.y (bad_parm): Add missing argument to error function call.
1321110611Skan
1322110611Skan2002-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1323110611Skan
1324110611Skan	PR c++/8442
1325110611Skan	* decl2.c (handle_class_head): Verify if the looked up name is a
1326110611Skan	type or template.
1327110611Skan	* pt.c (convert_template_argument): Fix type or template template
1328110611Skan	parameter decision logic.
1329110611Skan
1330117395Skan2002-12-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1331110611Skan
1332117395Skan	PR C++/8031
1333110611Skan	* cvt.c (convert_to_pointer_force): Don't try comparing against
1334110611Skan	erronous type.
1335110611Skan
1336117395Skan2002-12-13  Geoffrey Keating  <geoffk@apple.com>
1337117395Skan
1338117395Skan	* cp-tree.h: Have the multiple-include guards around
1339117395Skan	the entire file.
1340117395Skan
1341110611Skan2002-12-10  Mark Mitchell  <mark@codesourcery.com>
1342110611Skan
1343110611Skan	PR c++/8372
1344110611Skan	* pt.c (tsubst_copy): Handle destructor names more correctly.
1345110611Skan
1346117395Skan2002-12-10  Matt Austern   <austern@apple.com>
1347117395Skan
1348117395Skan	* cp-tree.h: get rid of needs_virtual_reinit bit.
1349117395Skan
1350117395Skan2002-12-09  Mark Mitchell  <mark@codesourcery.com>
1351117395Skan
1352117395Skan	* NEWS: Document removal of in-class initialization extension for
1353117395Skan	static data members of non-arithmetic, non-enumeration type.
1354117395Skan	* decl.c (check_static_variable_definition): Do not allow that
1355117395Skan	extension.
1356117395Skan	* decl2.c (grokfield): Do not call digest_init when processing
1357117395Skan	templates.
1358117395Skan
1359110611Skan2002-12-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1360110611Skan
1361110611Skan	* error.c (dump_expr): Fix format specifier warning.
1362110611Skan
1363117395Skan2002-12-04  Geoffrey Keating  <geoffk@apple.com>
1364117395Skan
1365117395Skan	* class.c (finish_struct_1): Correct comment.
1366117395Skan	* cp-tree.c (DECL_SORTED_FIELDS): Likewise.
1367117395Skan
1368110611Skan2002-12-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1369110611Skan
1370110611Skan	PR C++/8799
1371110611Skan	* error.c (dump_expr): Don't ever try to dump a non-existent
1372117395Skan	expression.
1373110611Skan
1374117395Skan2002-12-03  Jason Merrill  <jason@redhat.com>
1375117395Skan
1376117395Skan	PR c++/8674
1377117395Skan	* call.c (build_over_call): Check specifically for TARGET_EXPR
1378117395Skan	when eliding.
1379117395Skan
1380117395Skan	PR c++/8461, c++/8625
1381117395Skan	* call.c (convert_for_arg_passing): Don't mess with error_mark_node.
1382117395Skan	(cp_convert_parm_for_inlining): Remove.
1383117395Skan	* cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
1384117395Skan	Remove.
1385117395Skan	* cp-tree.h (ADDR_IS_INVISIREF): Remove.
1386117395Skan	* except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code.
1387117395Skan
1388117395Skan	* call.c (build_user_type_conversion_1): Don't set ICS_BAD_FLAG on
1389117395Skan	an ambiguous conversion.
1390117395Skan
1391117395Skan2002-12-03  Mark Mitchell  <mark@codesourcery.com>
1392117395Skan
1393117395Skan	PR c++/8688
1394117395Skan	* decl.c (reshape_init): Handle erroneous initializers.
1395117395Skan
1396110611Skan2002-12-02  Mark Mitchell  <mark@codesourcery.com>
1397110611Skan
1398117395Skan	PR c++/8720
1399117395Skan	* spew.c (remove_last_token): Make sure that last_chunk is set
1400117395Skan	correctly.
1401117395Skan
1402110611Skan	PR c++/8615
1403110611Skan	* error.c (dump_expr): Handle character constants with
1404110611Skan	TREE_OVERFLOW set.
1405110611Skan
1406117395Skan2002-12-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1407117395Skan
1408117395Skan	DR 180
1409117395Skan	* decl.c (grokdeclarator): Require class-key for all friend class.
1410117395Skan	Output the correct type and context in the error message.
1411117395Skan
1412110611Skan2002-12-01  Mark Mitchell  <mark@codesourcery.com>
1413110611Skan
1414110611Skan	PR c++/5919
1415110611Skan	* pt.c (unify): Use variably_modified_type_p to test validity of
1416110611Skan	template argument types.
1417110611Skan
1418110611Skan	PR c++/8727
1419110611Skan	* cp-tree.h (lang_type_class): Add typeinfo_var.
1420110611Skan	(CLASSTYPE_TYPEINFO_VAR): New macro.
1421110611Skan	* rtti.c (get_tinfo_decl): Use it.
1422110611Skan
1423110611Skan	PR c++/8663
1424110611Skan	* init.c (expand_member_init): Always get the main variant of a
1425110611Skan	base class.
1426110611Skan
1427110611Skan2002-12-01  Mark Mitchell  <mark@codesourcery.com>
1428110611Skan
1429110611Skan	PR c++/8332
1430110611Skan	PR c++/8493
1431110611Skan	* decl.c (cxx_init_decl_processing): Use size_type_node, not
1432110611Skan	c_size_type_node.
1433110611Skan	* decl2.c (coerce_new_type): Likewise.
1434110611Skan	* except.c (do_allocate_exception): Likewise.
1435110611Skan
1436110611Skan2002-11-30  Mark Mitchell  <mark@codesourcery.com>
1437110611Skan
1438117395Skan	PR c++/8227
1439117395Skan	* decl.c (layout_var_decl): Deal gracefully with erroneous types.
1440117395Skan	(check_initializer): Validate the type of the initialized
1441117395Skan	variable, even if the initializer is absent.
1442117395Skan	* typeck.c (cp_type_quals): Deal gracefully with erroneous types.
1443117395Skan
1444110611Skan	PR c++/8214
1445110611Skan	* typeck.c (convert_for_assignment): Do not use
1446110611Skan	decl_constant_value on the operand.
1447110611Skan
1448117395Skan	PR c++/8511
1449117395Skan	* pt.c (instantiate_decl): Handle template friends defined outside
1450117395Skan	of the class correctly.
1451107590Sobrien
1452117395Skan2002-11-29  Joe Buck <jbuck@synopsys.com>
1453107590Sobrien
1454117395Skan	* parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for
1455117395Skan	anonymous structs.
1456107590Sobrien
1457117395Skan2002-11-29  Mark Mitchell  <mark@codesourcery.com>
1458107590Sobrien
1459117395Skan	* class.c (walk_subobject_offsets): Recur on binfos as well as on
1460117395Skan	types.
1461117395Skan	(layout_nonempty_base_or_field): Pass it a binfo when processing a
1462117395Skan	base class.
1463117395Skan	(layout_empty_base): Likewise.
1464117395Skan	(build_base_field): Likewise.
1465107590Sobrien
1466117395Skan2002-11-27  Mark Mitchell  <mark@codesourcery.com>
1467107590Sobrien
1468117395Skan	* class.c (build_base_field): Make sure we get the canonical base
1469117395Skan	when descending through primary bases.
1470107590Sobrien
1471117395Skan2002-11-26  Geoffrey Keating  <geoffk@apple.com>
1472107590Sobrien
1473117395Skan	* decl.c (check_initializer): Don't error on initialisation of
1474117395Skan	a scalar with a brace-enclosed expression.
1475107590Sobrien
1476117395Skan2002-11-26  Nathan Sidwell  <nathan@codesourcery.com>
1477117395Skan
1478117395Skan	* cp-tree.h (DECL_LANG_FLAG_4): Document more uses.
1479117395Skan	(template_parms_equal): Remove prototype.
1480117395Skan	* typeck.c (buuld_indirect_ref): Reformat.
1481117395Skan
1482117395Skan2002-11-25  Mark Mitchell  <mark@codesourcery.com>
1483117395Skan
1484117395Skan	* tree.c (cp_build_qualified_type_real): Correct handling of
1485117395Skan	array types.
1486117395Skan	* class.c (walk_subobject_offsets): Fix thinko.
1487117395Skan	(build_base_field): Record offsets of empty bases in primary
1488117395Skan	virtual bases.
1489117395Skan	(layout_class_type): Record offsets of empty bases in fields.
1490117395Skan
1491117395Skan	* search.c (is_subobject_of_p_1): Fix thinko.
1492117395Skan	(lookup_field_queue_p): Likewise.
1493117395Skan
1494117395Skan2002-11-24  Mark Mitchell  <mark@codesourcery.com>
1495117395Skan
1496117395Skan	* class.c (layout_class_type): Reuse tail padding when laying out
1497117395Skan	virtual bases.
1498117395Skan
1499117395Skan2002-11-22  Mark Mitchell  <mark@codesourcery.com>
1500117395Skan
1501117395Skan	* rtti.c (qualifier_flags): Fix thinko.
1502117395Skan
1503117395Skan2002-11-21  Glen Nakamura  <glen@imodulo.com>
1504117395Skan
1505117395Skan	PR c++/8342
1506117395Skan	* typeck.c (get_member_function_from_ptrfunc): Make sure that a
1507117395Skan	SAVE_EXPR for instance_ptr doesn't get evaluated first inside one
1508117395Skan	of the branches of a COND_EXPR.
1509117395Skan
1510117395Skan2002-11-19  Mark Mitchell  <mark@codesourcery.com>
1511117395Skan
1512117395Skan	* pt.c (for_each_template_parm): Free allocated memory.
1513117395Skan	* search.c (is_subobject_of_p_1): New function.
1514117395Skan	(is_subobject_of_p): Avoid walking virtual bases multiple times.
1515117395Skan
1516117395Skan2002-11-19  Jason Thorpe  <thorpej@wasabisystems.com>
1517117395Skan
1518117395Skan	* g++spec.c (lang_specific_spec_functions): New.
1519117395Skan
1520117395Skan2002-11-15  Kazu Hirata  <kazu@cs.umass.edu>
1521117395Skan
1522117395Skan	* ChangeLog: Follow spelling conventions.
1523117395Skan	* class.c: Likewise.
1524117395Skan	* decl2.c: Likewise.
1525117395Skan
1526117395Skan2002-11-14  Zack Weinberg  <zack@codesourcery.com>
1527117395Skan
1528117395Skan	* search.c (dfs_push_decls): Do not try to reorder elements
1529117395Skan	3..n of method_vec if method_vec has only two elements.
1530117395Skan	Reverse order of two tests to avoid accessing unallocated
1531117395Skan	memory.
1532117395Skan
1533117395Skan2002-11-14  Mark Mitchell  <mark@codesourcery.com>
1534117395Skan
1535117395Skan	* class.c (dfs_find_final_overrider): Adjust so that the most
1536117395Skan	derived object is a binfo, rather than a class type.
1537117395Skan	(find_final_overrider): Likewise.
1538117395Skan	(add_vcall_offset_vtbl_entries_1): Simplify accordingly.
1539117395Skan	(add_vcall_offset): Likewise.
1540117395Skan
1541117395Skan2002-11-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1542117395Skan
1543117395Skan	PR c++/8389
1544117395Skan	* pt.c (instantiate_template): Push class scope for member
1545117395Skan	functions.
1546117395Skan	(get_mostly_instantiated_function_type): Likewise.  Don't call
1547117395Skan	tsubst on context.  Remove CONTEXTP and TPARMSP parameters.
1548117395Skan	* cp-tree.h (get_mostly_instantiated_function_type): Adjust.
1549117395Skan	* mangle.c (write_encoding, write_unqualified_name): Adjust.
1550117395Skan
1551117395Skan2002-11-07  Mark Mitchell  <mark@codesourcery.com>
1552117395Skan
1553117395Skan	* class.c (add_vcall_offset_vtbl_entries_1): Correct ordering of
1554117395Skan	vcall offfsets.  Split out ...
1555117395Skan	(add_vcall_offset): ... new function.
1556117395Skan
1557117395Skan	PR c++/8338
1558117395Skan	* pt.c (for_each_template_parm): Add htab parameter.
1559117395Skan	(process_partial_specialization): Adjust call.
1560117395Skan	(push_template_decl_real): Likewise.
1561117395Skan	(pair_fn_data): Add visited.
1562117395Skan	(for_each_template_parm_r): Avoid walking duplicates more than
1563117395Skan	once.
1564117395Skan	(uses_template_parms): Adjust call to for_each_template_parm.
1565117395Skan
1566117395Skan2002-11-07  Mark Mitchell  <mark@codesourcery.com>
1567117395Skan
1568117395Skan	* class.c (add_implicitly_declared_members): Put implicitly
1569117395Skan	declared functions at the end of TYPE_METHODs when -fabi-version
1570117395Skan	is at least 2.
1571117395Skan
1572117395Skan2002-11-05  Geoffrey Keating  <geoffk@apple.com>
1573117395Skan
1574117395Skan	* decl2.c (finish_file): Correct spelling.
1575117395Skan
1576117395Skan2002-11-03  Mark Mitchell  <mark@codesourcery.com>
1577117395Skan
1578117395Skan	* call.c (build_special_member_call): Do not try to lookup VTTs by
1579117395Skan	name.
1580117395Skan	* class.c (vtbl_init_data): Add generate_vcall_entries.
1581117395Skan	(get_vtable_decl): Do not look up virtual tables by name.
1582117395Skan	(copy_virtuals): Do not use BV_USE_VCALL_INDEX_P.
1583117395Skan	(set_primary_base): Do not set CLASSTYPE_RTTI.
1584117395Skan	(determine_primary_base): Likewise.
1585117395Skan	(get_matching_virtual): Remove.
1586117395Skan	(get_vcall_index): New function.
1587117395Skan	(update_vtable_entry_for_fn): Do not try to use virtual thunks
1588117395Skan	when they are not required.  Assign vcall indices at this point.
1589117395Skan	(finish_struct_1): Do not set CLASSTYPE_NEEDS_VIRTUAL_REINIT.
1590117395Skan	Do update dynamic_classes.
1591117395Skan	(build_vtt): Do not add VTTs to the symbol table.
1592117395Skan	(build_ctor_vtbl_group): Likewise.
1593117395Skan	(build_vtbl_initializer): Simplify handling of vcall indices.
1594117395Skan	(build_vcall_offset_vtbl_entries): Pretend to build vcall offsets
1595117395Skan	for the most derived class.
1596117395Skan	(add_vcall_offset_vtbl_entries_1): But do not actually add them to
1597117395Skan	the vtable.
1598117395Skan	* cp-tree.h (dynamic_classes): New macro.
1599117395Skan	(lang_type_class): Remove rtti.  Add vtables.  Add vcall_indices.
1600117395Skan	(CLASSTYPE_RTTI): Remove.
1601117395Skan	(CLASSTYPE_NEEDS_VIRTUAL_REINIT): Remove.
1602117395Skan	(CLASSTYPE_VCALL_INDICES): New macro.
1603117395Skan	(CLASSTYPE_VTABLES): Likewise.
1604117395Skan	(BV_USE_VCALL_INDEX_P): Remove.
1605117395Skan	(build_vtable_path): Remove.
1606117395Skan	* decl2.c (finish_vtable_vardecl): Remove.
1607117395Skan	(key_method): Remove #if 0'd code.
1608117395Skan	(finish_vtable_vardecl): Rename to ...
1609117395Skan	(maybe_emit_vtables): ... this.
1610117395Skan	(finish_file): Use it.
1611117395Skan	* search.c (look_for_overrides_here): Update comment.
1612117395Skan
1613117395Skan2002-11-01  Zack Weinberg  <zack@codesourcery.com>
1614117395Skan
1615107590Sobrien	PR c/7353 redux
1616107590Sobrien	* decl2.c (grokfield): Reject TYPE_DECLs with initializers.
1617107590Sobrien
1618117395Skan2002-10-30  Jason Merrill  <jason@redhat.com>
1619107590Sobrien
1620117395Skan	PR c++/8186
1621117395Skan	* cp-tree.h (ADDR_IS_INVISIREF): New macro.
1622117395Skan	* call.c (convert_for_arg_passing): Set it.
1623117395Skan	* except.c (stabilize_throw_expr): Recurse for such an arg.
1624107590Sobrien
1625117395Skan2002-10-31  Mark Mitchell  <mark@codesourcery.com>
1626117395Skan
1627117395Skan	* cp-tree.h (lang_decl_flags): Remove init_priority.
1628117395Skan	(lang_decl): Add delta.
1629117395Skan	(GLOBAL_INIT_PRIORITY): Remove.
1630117395Skan	(THUNK_DELTA): Revise definition.
1631117395Skan	* decl2.c (start_objects): Don't set GLOBAL_INIT_PRIORITY.
1632117395Skan	* dump.c (cp_dump_tree): Don't dump it.
1633117395Skan
1634107590Sobrien2002-10-30  Mark Mitchell  <mark@codesourcery.com>
1635107590Sobrien
1636107590Sobrien	PR c++/8160
1637107590Sobrien	* typeck2.c (process_init_constructor): Call complete_array_type.
1638107590Sobrien
1639107590Sobrien	PR c++/8149
1640107590Sobrien	* decl.c (make_typename_type): Issue errors about invalid results.
1641107590Sobrien
1642117395Skan2002-10-30  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1643117395Skan
1644117395Skan	Core issue 287, PR c++/7639
1645117395Skan	* cp-tree.h (lang_type_class): Add decl_list field.
1646117395Skan	(CLASSTYPE_DECL_LIST): New macro.
1647117395Skan	(maybe_add_class_template_decl_list): Add declaration.
1648117395Skan	* class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST.
1649117395Skan	(unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST.
1650117395Skan	(maybe_add_class_template_decl_list): New function.
1651117395Skan	(add_implicitly_declared_members): Use it.
1652117395Skan	* decl.c (maybe_process_template_type_declaration): Likewise.
1653117395Skan	(pushtag): Likewise.
1654117395Skan	* friend.c (add_friend): Likewise.
1655117395Skan	(make_friend_class): Likewise.
1656117395Skan	* semantics.c (finish_member_declaration): Likewise.
1657117395Skan	(begin_class_definition): Initialize CLASSTYPE_DECL_LIST.
1658117395Skan	* pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST
1659117395Skan	to process members and friends in the order of declaration.
1660117395Skan
1661107590Sobrien2002-10-29  Mark Mitchell  <mark@codesourcery.com>
1662107590Sobrien
1663107590Sobrien	PR c++/8287
1664107590Sobrien	* decl.c (finish_destructor_body): Create the label to jump to
1665107590Sobrien	when returning from a destructor here.
1666107590Sobrien	(finish_function_body): Rather than here.
1667107590Sobrien
1668107590Sobrien2002-10-25  Zack Weinberg  <zack@codesourcery.com>
1669107590Sobrien
1670107590Sobrien	PR c++/7266
1671107590Sobrien	* decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a
1672107590Sobrien	SCOPE_REF is not null before dereferencing it.
1673107590Sobrien
1674117395Skan2002-10-25  Mark Mitchell  <mark@codesourcery.com>
1675117395Skan
1676117395Skan	* call.c (build_over_call): Use DECL_CONTEXT, not
1677117395Skan	DECL_VIRTUAL_CONTEXT.
1678117395Skan	* class.c (modify_vtable_entry): Don't mess with
1679117395Skan	DECL_VIRTUAL_CONTEXT.
1680117395Skan	(set_vindex): Remove.
1681117395Skan	(set_primary_base): Remove vfuns_p parameter.
1682117395Skan	(determine_primary_base): Likewise.
1683117395Skan	(modify_all_vtables): Likewise.
1684117395Skan	(layout_class_type): Likewise.  Adjust calls to other functions
1685117395Skan	accordingly.
1686117395Skan	(finish_struct_1): Adjust calls to modified functions.  Set
1687117395Skan	DECL_VINDEX here.
1688117395Skan	* cp-tree.h (lang_type_class): Remove vsize.
1689117395Skan	(CLASSTYPE_VSIZE): Remove.
1690117395Skan	(lang_decl): Remove thunks.
1691117395Skan	(DECL_THUNKS): Adjust.
1692117395Skan	(DECL_VIRTUAL_CONTEXT): Remove.
1693117395Skan	(duplicate_decls): Don't copy it.
1694117395Skan	* pt.c (build_template_decl): Don't set it.
1695117395Skan	(tsubst_decl): Likewise.
1696117395Skan	* typeck.c (expand_ptrmemfunc_cst): Don't use it.
1697117395Skan
1698117395Skan	* class.c (build_vtbl_initializer): Don't use build_vtable_entry.
1699117395Skan	(build_vtable_entry): Remove.
1700117395Skan	* cp-tree.h (BINFO_VIRTUALS): Expand documentation.
1701117395Skan	(lang_decl): Add thunks.
1702117395Skan	(DECL_THUNKS): New macro.
1703117395Skan	* decl.c (duplicate_decls): Copy it.
1704117395Skan	* method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS.
1705117395Skan	* semantics.c (emit_associated_thunks): Simplify.
1706117395Skan
1707107590Sobrien2002-10-24  David Edelsohn  <edelsohn@gnu.org>
1708107590Sobrien
1709107590Sobrien	PR c++/7228
1710107590Sobrien	* cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that
1711107590Sobrien	lang_type structure exists before accessing field.
1712107590Sobrien	(SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro.
1713107590Sobrien	(CLASSTYPE_REF_FIELDS_NEED_INIT): Similar.
1714107590Sobrien	(SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro.
1715107590Sobrien	* class.c (check_field_decls): Use new macros.
1716107590Sobrien	* typeck2.c (process_init_constructor): Remove redundant check for
1717107590Sobrien	existence of lang_type structure.
1718107590Sobrien
1719117395Skan2002-10-24  Mark Mitchell  <mark@codesourcery.com>
1720117395Skan
1721117395Skan	* class.c (end_of_base): New method.
1722117395Skan	(end_of_class): Use it.  Check indirect virtual bases.
1723117395Skan
1724117395Skan	* class.c (check_field_decls): Fix typo.
1725117395Skan
1726107590Sobrien2002-10-23  Mark Mitchell  <mark@codesourcery.com>
1727107590Sobrien
1728107590Sobrien	PR c++/8067
1729107590Sobrien	* decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and
1730107590Sobrien	related variables.
1731107590Sobrien
1732107590Sobrien	PR c++/7679
1733107590Sobrien	* spew.c (next_token): Do not return an endless stream of
1734107590Sobrien	END_OF_SAVED_INPUT tokens.
1735107590Sobrien	(snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of
1736107590Sobrien	the cached token stream.
1737107590Sobrien	(snarf_defarg): Likewise.
1738107590Sobrien
1739117395Skan2002-10-23  Zack Weinberg  <zack@codesourcery.com>
1740117395Skan
1741117395Skan	* cp-lang.c (cp_var_mod_type_p): New: C++ hook for
1742117395Skan	variably_modified_type_p.
1743117395Skan	* cp-tree.h: Remove prototype of variably_modified_type_p.
1744117395Skan	* tree.c (variably_modified_type_p): Remove; now implemented
1745117395Skan	in language-independent code.
1746117395Skan
1747107590Sobrien2002-10-22  Mark Mitchell  <mark@codesourcery.com>
1748107590Sobrien
1749107590Sobrien	PR c++/6579
1750107590Sobrien	* spew.c (snarf_parenthesized_expression): New function.
1751107590Sobrien	(snarf_block): Use it.
1752107590Sobrien
1753117395Skan2002-10-22  Richard Henderson  <rth@redhat.com>
1754107590Sobrien
1755117395Skan	* method.c (use_thunk): Always compute vcall_value; assert that
1756117395Skan	it is not zero.  Use can_output_mi_thunk; use output_mi_thunk
1757117395Skan	for vcall thunks as well.
1758107590Sobrien
1759107590Sobrien2002-10-21  Mark Mitchell  <mark@codesourcery.com>
1760107590Sobrien
1761117395Skan	* class.c (empty_base_at_nonzero_offset_p): New function.
1762117395Skan	(layout_nonempty_base_or_field): Do not check for conflicts when
1763117395Skan	laying out a virtual base using the GCC 3.2 ABI.
1764117395Skan	(build_base_field): Correct checking for presence of empty classes
1765117395Skan	at nonzero offsets when clearing CLASSTYPE_NEARLY_EMPTY_P.
1766117395Skan
1767117395Skan	* class.c (include_empty_classes): Use normalize_rli.
1768117395Skan	(layout_class_type): Likewise.
1769117395Skan
1770117395Skan	* decl.c (reshape_init): Tweak handling of character arrays.
1771117395Skan
1772107590Sobrien	PR c++/8218
1773107590Sobrien	* cp-tree.h (lang_type_class): Add contains_empty_class_p.
1774107590Sobrien	(CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro.
1775107590Sobrien	* class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P.
1776107590Sobrien	(check_field_decls): Likewise.
1777107590Sobrien	(layout_class_type): Likewise.
1778107590Sobrien	(finish_struct_1): Initialize it.
1779107590Sobrien	(walk_subobject_offsets): Use it to prune searches.
1780107590Sobrien
1781117395Skan2002-10-20  Mark Mitchell  <mark@codesourcery.com>
1782117395Skan
1783117395Skan	* method.c (use_thunk): Compute the vcall index as a HOST_WIDE_INT.
1784117395Skan	* optimize.c (optimize_function): Replace ASM_OUTPUT_MI_THUNK with
1785117395Skan	TARGET_ASM_OUTPUT_MI_THUNK in comments.
1786117395Skan
1787107590Sobrien2002-10-18  Zack Weinberg  <zack@codesourcery.com>
1788107590Sobrien
1789107590Sobrien	* decl.c (start_decl): Point users of the old initialized-
1790107590Sobrien	typedef extension at __typeof__.
1791107590Sobrien
1792117395Skan2002-10-18  Mark Mitchell  <mark@codesourcery.com>
1793107590Sobrien
1794117395Skan	* Make-lang.in (method.o): Depend on TARGET_H.
1795117395Skan	* method.c (target.h): Include it.
1796117395Skan	(use_thunk): Use target hooks.  Use vcall thunks, if available.
1797117395Skan
1798117395Skan2002-10-18  Mark Mitchell  <mark@codesourcery.com>
1799117395Skan
1800117395Skan	* class.c (base_derived_from): Make sure return value is a bool.
1801117395Skan
1802117395Skan2002-10-18  Mark Mitchell  <mark@codesourcery.com>
1803117395Skan
1804117395Skan	* class.c (find_final_overrider_data_s): Remove overriding_fn and
1805117395Skan	overriding_base.
1806117395Skan	(dfs_base_derived_from): New function.
1807117395Skan	(base_derived_from): Likewise.
1808117395Skan	(dfs_find_final_overrider): Use base_derived_from.
1809117395Skan	(find_final_overrider): Adjust.
1810117395Skan
1811117395Skan2002-10-18  Jason Merrill  <jason@redhat.com>
1812117395Skan
1813117395Skan	PR c++/8080
1814117395Skan	* semantics.c (finish_for_cond, finish_while_cond): Don't mess
1815117395Skan	with condition decls in a template.
1816117395Skan
1817117395Skan2002-10-17  Nathan Sidwell  <nathan@codesourcery.com>
1818117395Skan
1819107590Sobrien	* class.c (add_method): Compare template parms too.
1820107590Sobrien
1821107590Sobrien2002-10-17  Mark Mitchell  <mark@codesourcery.com>
1822107590Sobrien
1823107590Sobrien	PR c++/7584
1824107590Sobrien	* class.c (handle_using_decl): Allow the declaration used to be
1825107590Sobrien	from an ambiguous base.
1826107590Sobrien
1827117395Skan	* pt.c (convert_template_argument): Revert this change:
1828117395Skan		2002-10-16  Mark Mitchell  <mark@codesourcery.com>
1829117395Skan		* pt.c (convert_template_argument): Do not fold non-type
1830117395Skan		template rguments when inside a template.
1831117395Skan
1832117395Skan	* init.c (expand_default_init): Handle brace-enclosed initializers
1833117395Skan	correctly.
1834117395Skan
1835107590Sobrien2002-10-16  Mark Mitchell  <mark@codesourcery.com>
1836107590Sobrien
1837117395Skan	* mangle.c (write_expression): Correct handling of enumeration
1838117395Skan	constants.
1839117395Skan	(write_template_arg): Likewise.
1840117395Skan	* pt.c (convert_template_argument): Do not fold non-type template
1841117395Skan	arguments when inside a template.
1842117395Skan
1843107590Sobrien	PR c++/7478
1844107590Sobrien	* cvt.c (convert_to_reference): Allow references as the incoming
1845107590Sobrien	type.
1846107590Sobrien
1847117395Skan2002-10-16  Mark Mitchell  <mark@codesourcery.com>
1848107590Sobrien
1849107590Sobrien	PR c++/7524
1850107590Sobrien	* method.c (do_build_assign_ref): Use cp_build_qualified_type, not
1851107590Sobrien	build_qualified_type.
1852107590Sobrien
1853117395Skan2002-10-15  Richard Henderson  <rth@redhat.com>
1854117395Skan
1855117395Skan	* error.c (dump_expr): Use real_to_decimal directly, and with
1856117395Skan	the new arguments.
1857117395Skan
1858117395Skan2002-10-15  Mark Mitchell  <mark@codesourcery.com>
1859117395Skan
1860117395Skan	* decl.c (reshape_init): Fix typo.
1861117395Skan
1862117395Skan	* cp-tree.h (operator_name_info_t): Add arity.
1863117395Skan	* lex.c (init_operators): Initialize it.
1864117395Skan	* mangle.c (write_conversion_operator_name): New function.
1865117395Skan	(write_unqualified_name): Use it.
1866117395Skan	(write_template_args): Accept template arguments as a TREE_LIST.
1867117395Skan	(write_expression): Adjust handling of qualified names to match
1868117395Skan	specification.
1869117395Skan
1870117395Skan2002-10-15  Jason Merrill  <jason@redhat.com>
1871117395Skan
1872117395Skan	* call.c (call_builtin_trap): New fn.
1873117395Skan	(convert_arg_to_ellipsis): Use it.  Downgrade error to warning.
1874117395Skan	(build_call): Don't set current_function_returns_abnormally outside
1875117395Skan	a function.
1876117395Skan
1877107590Sobrien2002-10-14  Mark Mitchell  <mark@codesourcery.com>
1878107590Sobrien
1879117395Skan	* class.c (check_field_decls): Remove empty_p parameter.  Instead,
1880117395Skan	clear CLASSTYPE_EMPTY_P.
1881117395Skan	(build_base_field): Likewise.
1882117395Skan	(build_base_fields): Likewise.
1883117395Skan	(check_bases_and_members): Likewise.
1884117395Skan	(create_vtbl_ptr): Likewise.
1885117395Skan	(layout_class_type): Likewise.  Ensure that empty classes have
1886117395Skan	size zero when used as base classes in the 3.2 ABI.
1887117395Skan	(finish_struct_1): Initialize CLASSTYPE_EMPTY_P and
1888117395Skan	CLASSTYPE_NEARLY_EMPTY_P.  Adjust calls to avoid passing empty_p
1889117395Skan	parameter.
1890117395Skan	(is_empty_class): Correct definition when using post-3.2 ABI.
1891117395Skan	* cp-tree.h (lang_type_class): Add empty_p.
1892117395Skan	(CLASSTYPE_EMPTY_P): New macro.
1893117395Skan
1894117395Skan2002-10-12  Nathan Sidwell  <nathan@codesourcery.com>
1895117395Skan
1896117395Skan	* init.c (build_delete): Do not apply save_expr for arrays.
1897117395Skan	(build_vec_delete): Likewise.
1898117395Skan
1899117395Skan2002-10-14  Mark Mitchell  <mark@codesourcery.com>
1900117395Skan
1901117395Skan	* decl.c (layout_var_decl): Call layout_decl even for variables
1902117395Skan	whose type is an array with unspecified bounds.
1903117395Skan
1904107590Sobrien	PR c++/7176
1905107590Sobrien	* lex.c (do_identifier): Add another option for the parsing
1906107590Sobrien	parameter.
1907107590Sobrien	* parse.y (do_id): Use it.
1908107590Sobrien
1909117395Skan2002-10-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1910117395Skan
1911117395Skan	PRs C++/6803, C++/7721 and C++/7803
1912117395Skan	* decl.c (grokdeclarator): Gracefully handle template-name as
1913117395Skan	decl-specifier.
1914117395Skan
1915117395Skan2002-10-11  Jason Molenda  <jmolenda@apple.com>
1916117395Skan
1917117395Skan	* init.c (build_field_list): Provide uses_unions_p with a default
1918117395Skan	value.
1919117395Skan
1920107590Sobrien2002-10-11  Mark Mitchell  <mark@codesourcery.com>
1921107590Sobrien
1922107590Sobrien	PR c++/5661
1923107590Sobrien	* cp-tree.h (variably_modified_type_p): New function.
1924107590Sobrien	(grokdeclarator) Tighten check for variably modified types as
1925107590Sobrien	fields.
1926107590Sobrien	* pt.c (convert_template_argument): Do not allow variably modified
1927107590Sobrien	types as template arguments.
1928107590Sobrien	* tree.c (variably_modified_type_p): New function.
1929107590Sobrien
1930117395Skan	* NEWS: Document removal of "new X = ..." extension.
1931117395Skan	* class.c (initialize_array): Set TREE_HAS_CONSTRUCTOR on
1932117395Skan	brace-enclosed initializers.
1933117395Skan	* cp-tree.h (CP_AGGREGATE_TYPE_P): New macro.
1934117395Skan	(initialize_local_var): Remove declaration.
1935117395Skan	(expand_static_init): Likewise.
1936117395Skan	* decl.c (next_initializable_field): New function.
1937117395Skan	(reshape_init): Likewise.
1938117395Skan	(check_initializer): Use them.  Build dynamic initializer for
1939117395Skan	aggregates here too.
1940117395Skan	(initialize_local_var): Simplify, and incorporate cleanup
1941117395Skan	insertion code as well.
1942117395Skan	(destroy_local_var): Remove.
1943117395Skan	(cp_finish_decl): Tidy.
1944117395Skan	(expand_static_init): Fold checks for whether or not a variable
1945117395Skan	needs initialization into this function.  Simplify.
1946117395Skan	* decl2.c (do_static_initialization): Simplify.
1947117395Skan	* init.c (build_init): Do not set TREE_SIDE_EFFECTS when it will
1948117395Skan	be done for us automatically.
1949117395Skan	(expand_default_init): Handle brace-enclosed initializers
1950117395Skan	correctly.
1951117395Skan	(expand_aggr_init_1): Remove RTL-generation code.
1952117395Skan	(build_vec_init): Remove "new X = ..." support.
1953117395Skan	* parse.y (new_initializer): Likewise.
1954117395Skan	* rtti.c (get_pseudo_ti_init): Set TREE_HAS_CONSTRUCTOR on
1955117395Skan	brace-enclosed initializer.
1956117395Skan	(create_pseudo_type_info): Likewise.
1957117395Skan	* typeck2.c (store_init_value): Don't try to handle digest_init
1958117395Skan	being called more than once.
1959117395Skan	(digest_init): Tidy handling of brace-enclosed initializers.
1960107590Sobrien
1961117395Skan2002-10-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1962107590Sobrien
1963117395Skan	* decl.c (typename_hash): Use htab_hash_pointer.
1964107590Sobrien
1965117395Skan2002-10-10  Jim Wilson  <wilson@redhat.com>
1966107590Sobrien
1967117395Skan	* decl.c (duplicate_decls): Don't call decl_attributes.
1968117395Skan
1969104752Skan2002-10-09  Zack Weinberg  <zack@codesourcery.com>
1970104752Skan
1971104752Skan	PR c/7353
1972104752Skan	* decl.c (start_decl): Unconditionally issue error for
1973104752Skan	'typedef foo = bar'.
1974104752Skan	(cp_finish_decl): Remove special case for TYPE_DECL with initializer.
1975104752Skan	(grokdeclarator): Remove redundant error for 'typedef foo = bar'.
1976104752Skan
1977117395Skan2002-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1978117395Skan
1979117395Skan	* decl2.c (prune_vtable_vardecl): Delete unused function.
1980117395Skan
1981104752Skan2002-10-03  Mark Mitchell  <mark@codesourcery.com>
1982104752Skan
1983104752Skan	PR c++/7754
1984104752Skan	* decl2.c (finish_anon_union): Do not expand anonymous unions when
1985104752Skan	procesing template functions.
1986104752Skan	* pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
1987104752Skan	type. Call layout_decl.
1988104752Skan	(tsubst_expr, case DECL_STMT): Handle anonymous unions.
1989104752Skan
1990104752Skan2002-10-07  Richard Henderson  <rth@redhat.com>
1991104752Skan
1992117395Skan	* decl2.c, pt.c: Revert c++/7754 fix.
1993104752Skan
1994117395Skan2002-10-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1995104752Skan
1996117395Skan	PR c++/7804
1997117395Skan	* error.c (dump_expr) [REAL_CST]: Output in decimal format.
1998104752Skan
1999117395Skan2002-10-03  Mark Mitchell  <mark@codesourcery.com>
2000104752Skan
2001117395Skan 	PR c++/7931
2002117395Skan	* pt.c (for_each_template_parm_r): Handle BASELINKs.
2003104752Skan
2004104752Skan	PR c++/7754
2005104752Skan	* decl2.c (finish_anon_union): Do not expand anonymous unions when
2006104752Skan	procesing template functions.
2007104752Skan	* pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
2008104752Skan	type. Call layout_decl.
2009104752Skan	(tsubst_expr, case DECL_STMT): Handle anonymous unions.
2010104752Skan
2011117395Skan2002-10-03  Mark Mitchell  <mark@codesourcery.com>
2012117395Skan
2013117395Skan	PR c++/8006
2014117395Skan	* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template
2015117395Skan	template parameters.
2016117395Skan	(globals): Add entity and need_abi_warning.
2017117395Skan	(decl_is_template_id): Use TYPE_TEMPLATE_INFO, not
2018117395Skan	CLASSTYPE_TEMPLATE_INFO.
2019117395Skan	(is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not
2020117395Skan	TYPE_TI_TEMPLATE.
2021117395Skan	(write_prefix): Handle typename types correctly.
2022117395Skan	(write_template_prefix): Handle template template parameters
2023117395Skan	correctly.
2024117395Skan	(start_mangling): Add entity parameter.
2025117395Skan	(finish_mangling): Warn about names whose mangling will change.
2026117395Skan	(mangle_decl_string): Adjust.
2027117395Skan	(mangle_type_string): Likewise.
2028117395Skan	(mangle_special_for_type): Likewise.
2029117395Skan	(mangle_ctor_vtbl_for_type): Likewise.
2030117395Skan	(mangle_thunk): Likewise.
2031117395Skan	(mangle_guard_variable): Likewise.
2032117395Skan	(mangle_ref_init_variable): Likewise.
2033117395Skan
2034104752Skan2002-10-02  Mark Mitchell  <mark@codesourcery.com>
2035104752Skan
2036104752Skan	PR c++/7188.
2037117395Skan	* cp-tree.def (CTOR_INITIALIZER): Use one slot, not two.
2038117395Skan	* cp-tree.h (emit_base_init): Rename to ....
2039117395Skan	(emit_mem_initializers): ... this.
2040117395Skan	(expand_member_init): Change prototype.
2041117395Skan	* init.c (perform_member_init): Compute explicit, rather than
2042117395Skan	requiring it as a parameter.
2043117395Skan	(sort_member_init): Rename to ...
2044117395Skan	(sort_mem_initializers): ... this.  Process bases and data members
2045117395Skan	together.
2046117395Skan	(sort_base_init): Remove.
2047117395Skan	(emit_base_init): Rename to ...
2048117395Skan	(emit_mem_initializers): ... this.
2049117395Skan	(expand_aggr_vbase_init_1): Remove.
2050117395Skan	(construct_virtual_bases): Rename to ...
2051117395Skan	(construct_virtual_base): ... this.
2052117395Skan	(expand_member_init): Rework handling of base initializers.
2053117395Skan	* method.c (do_build_copy_constructor): Use
2054117395Skan	finish_mem_initializers.
2055117395Skan	* parse.y (member_init): Adjust calls to expand_member_init.
2056117395Skan	* pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case.
2057117395Skan	(tsubst_initializer_list): Use expand_member_init.
2058117395Skan	* semantics.c (finish_mem_intiailizers): Simplify.
2059104752Skan
2060117395Skan2002-10-02  Matt Austern  <austern@apple.com>
2061117395Skan	* decl.c (walk_vtables_r): Fixed typo that caused result to
2062117395Skan	never get a nonzero value.
2063117395Skan
2064117395Skan2002-10-02  Roger Sayle  <roger@eyesopen.com>
2065117395Skan
2066117395Skan	PR optimization/6627
2067117395Skan	* cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition
2068117395Skan	from here, and move it to tree.h.
2069117395Skan	* decl.c (cxx_init_decl_processing): If storing the vbit
2070117395Skan	in function pointers, ensure that force_align_functions_log
2071117395Skan	is atleast one.
2072117395Skan
2073117395Skan2002-10-02  Matt Austern  <austern@apple.com>
2074117395Skan
2075117395Skan	* class.c (check_field_decls): Changed warning about const member
2076117395Skan	variables so that it doesn't get issued for a class aggregate.
2077117395Skan
2078117395Skan2002-10-01  Mark Mitchell  <mark@codesourcery.com>
2079117395Skan
2080117395Skan	* decl.c (cp_finish_decl): Make sure array types are laid out,
2081117395Skan	even if the array bounds are unknown.
2082117395Skan
2083117395Skan2002-10-01  Steve Ellcey  <sje@cup.hp.com>
2084117395Skan
2085117395Skan	* class.c (build_vtbl_initializer): Change build_c_cast
2086117395Skan	to build1.
2087117395Skan
2088117395Skan2002-10-01  Mark Mitchell  <mark@codesourcery.com>
2089117395Skan
2090117395Skan	* decl.c (cp_finish_decl): Make sure array types are laid out,
2091117395Skan	even if the array bounds are unknown.
2092117395Skan
2093117395Skan	* decl.c (cp_finish_decl): Correct check for dynamic
2094117395Skan	initialization of thread-local storage.
2095117395Skan
2096117395Skan2002-09-30  Nathan Sidwell  <nathan@codesourcery.com>
2097117395Skan
2098117395Skan	* tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also
2099117395Skan	overloaded.
2100117395Skan
2101117395Skan2002-09-30  Steve Ellcey  <sje@cup.hp.com>
2102117395Skan
2103117395Skan	* class.c (build_vtbl_initializer): Add cast.
2104117395Skan	(add_vcall_offset_vtbl_entries_1):
2105117395Skan	Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset.
2106117395Skan
2107117395Skan2002-09-30  Mark Mitchell  <mark@codesourcery.com>
2108117395Skan
2109117395Skan	* class.c (walk_subobject_offsets): Correct the calculation of
2110117395Skan	offsets for virtual bases.  Correct the counting of array
2111117395Skan	elements.
2112117395Skan	(layout_nonempty_base_or_field): Simplify.  Correct the
2113117395Skan	calculation of offsets to be propagated through the binfo
2114117395Skan	hierarchy.
2115117395Skan	(build_base_field): Avoid creating a FIELD_DECL for empty bases.
2116117395Skan	Add the FIELD_DECL to TYPE_FIELDS.
2117117395Skan	(build_base_fields): Adjust accordingly.
2118117395Skan	(layout_virtual_bases): Use build_base_field.
2119117395Skan	(end_of_class): Return a tree, not an integer.
2120117395Skan	(warn_about_ambiguous_direct_bases): Rename to ...
2121117395Skan	(warn_about_ambiguous_bases): ... this.
2122117395Skan	(include_empty_classes): New function.
2123117395Skan	(layout_class_type): Create an alternative version of the type to
2124117395Skan	be used when as a base class type.  Do not call
2125117395Skan	finish_record_layout until we are done laying out the class.
2126117395Skan	* cp-tree.h (lang_type_class): Remove size, size_unit.  Add
2127117395Skan	as_base.
2128117395Skan	(CLASSTYPE_SIZE): Reimplement.
2129117395Skan	(CLASSTYPE_SIZE_UNIT): Likewise.
2130117395Skan	(CLASSTYPE_ALIGN): Likweise.
2131117395Skan	(CLASSTYPE_USER_ALIGN): Likewise.
2132117395Skan	(CLASSTYPE_AS_BASE): New macro.
2133117395Skan	(DECL_INITIALIZED_P): Likewise.
2134117395Skan	(extract_init): Remove prototype.
2135117395Skan	(build_forced_zero_init): Rename to ...
2136117395Skan	(build_zero_init): ... this.
2137117395Skan	(force_store_init_value): Remove.
2138117395Skan	* decl.c (obscure_complex_init): Remove.
2139117395Skan	(duplicate_decls): Copy DECL_INITIALIZED_P.
2140117395Skan	(check_initializer): Do not leave junk in DECL_INITIAL.
2141117395Skan	(cp_finish_decl): Handle zero-initialization of entities with
2142117395Skan	static storage duration.
2143117395Skan	* expr.c (extract_init): Remove.
2144117395Skan	* init.c (build_forced_zero_init): Remove.
2145117395Skan	(build_zero_init): New function.
2146117395Skan	(build_default_init): Use it.
2147117395Skan	(build_field_list): Skip FIELD_DECLs for base subobjects.
2148117395Skan	(push_base_cleanups): Likewise.
2149117395Skan	* method.c (do_build_assign_ref): Likewise.
2150117395Skan	(synthesize_exception_spec): Likewise.
2151117395Skan	* pt.c (tsubst_decl): Clear DECL_INITIALIZED_P.
2152117395Skan	(regenerate_decl_from_template): To not set DECL_INITIAL for a
2153117395Skan	static data member whose initialization took place in its class.
2154117395Skan	(instantiate_decl): Do not pass an initializer to cp_finish_decl
2155117395Skan	in that situation.
2156117395Skan	* search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects.
2157117395Skan	(dfs_unuse_fields): Likewise.
2158117395Skan	* tree.c (pod_type_p): Handle error_mark_node.
2159117395Skan	(zero_init_p): Likewise.
2160117395Skan	* typeck.c (lookup_anon_field): Skip FIELD_DECLs for base
2161117395Skan	subobjects.
2162117395Skan	* typeck2.c (store_init_value): Remove #if 0'd code.
2163117395Skan	(force_store_init_value): Remove.
2164117395Skan	(process_init_constructor): Use build_zero_init.
2165117395Skan
2166117395Skan2002-09-29  Nathan Sidwell  <nathan@codesourcery.com>
2167117395Skan
2168117395Skan	PR c++/7788
2169117395Skan	* rtti.c (unemitted_tinfo_decl_p): Check it has a field.
2170117395Skan
2171117395Skan2002-09-29  Kazu Hirata  <kazu@cs.umass.edu>
2172117395Skan
2173117395Skan	* cp-tree.h: Fix comment typos.
2174117395Skan	* decl.c: Likewise.
2175117395Skan	* pt.c: Likewise.
2176117395Skan
2177117395Skan2002-09-25  Mark Mitchell  <mark@codesourcery.com>
2178117395Skan
2179117395Skan	* cp/class.c (contains_empty_class_p): New method.
2180117395Skan	(walk_subobject_offsets): Correct computation of field offset.
2181117395Skan	(layout_empty_base): Correct placement of emtpy base classes.
2182117395Skan	(layout_class_type): Warn about ABI changes.
2183117395Skan
2184117395Skan2002-09-23  Mark Mitchell  <mark@codesourcery.com>
2185117395Skan
2186117395Skan	* cp/class.c (layout_virtual_bases): Do not round the size of the
2187117395Skan	type to a multiple of the alignment before laying out virtual bases.
2188117395Skan	(layout_class_type): Correct handling of bit-fields that are wider
2189117395Skan	than their type inside unions.  Round the size of the type to a
2190117395Skan	even number of bytes when computing the size without virtual
2191117395Skan	bases.
2192117395Skan	* cp/cp-tree.h (abi_version_at_least): New macro.
2193117395Skan
2194117395Skan2002-09-21  Kazu Hirata  <kazu@cs.umass.edu>
2195117395Skan
2196117395Skan	* ChangeLog: Follow spelling conventions.
2197117395Skan	* ChangeLog.2: Likewise.
2198117395Skan	* call.c: Likewise.
2199117395Skan	* class.c: Likewise.
2200117395Skan	* cp-tree.h: Likewise.
2201117395Skan	* cvt.c: Likewise.
2202117395Skan	* decl.c: Likewise.
2203117395Skan	* decl2.c: Likewise.
2204117395Skan	* except.c: Likewise.
2205117395Skan	* friend.c: Likewise.
2206117395Skan	* g++spec.c: Likewise.
2207117395Skan	* init.c: Likewise.
2208117395Skan	* lex.c: Likewise.
2209117395Skan	* mangle.c: Likewise.
2210117395Skan	* method.c: Likewise.
2211117395Skan	* operators.def: Likewise.
2212117395Skan	* optimize.c: Likewise.
2213117395Skan	* pt.c: Likewise.
2214117395Skan	* rtti.c: Likewise.
2215117395Skan	* search.c: Likewise.
2216117395Skan	* semantics.c: Likewise.
2217117395Skan	* spew.c: Likewise.
2218117395Skan	* tree.c: Likewise.
2219117395Skan	* typeck.c: Likewise.
2220117395Skan
2221117395Skan2002-09-18  Devang Patel  <dpatel@apple.com>
2222117395Skan
2223117395Skan	* cp/cp-tree.h: New prototype for walk_vtabls().
2224117395Skan	* cp/decl.c (walk_vtables_r): New function.
2225117395Skan	(struct cp_binding_level): Add new members, namespaces,
2226117395Skan	names_size and vtables.
2227117395Skan	(add_decl_to_level): Add decl in namespaces or vtables
2228117395Skan	chain, if conditions match.
2229117395Skan	(walk_vtables): New function.
2230117395Skan	(walk_namespaces_r): Travers separate namespace chain
2231117395Skan	for namespace decls.
2232117395Skan	(wrapup_globals_for_namespace): Use names_size instead
2233117395Skan	of list_length().
2234117395Skan	* cp/decl2.c (finish_file): Use walk_vtables() instead of
2235117395Skan	walk_globals() to walk vtable decls.
2236117395Skan
2237117395Skan2002-09-18  Nathan Sidwell  <nathan@codesourcery.com>
2238117395Skan
2239117395Skan	* decl.c (grokdeclarator): Use assert, not internal_error. Don't
2240117395Skan	ICE with invalid pointers & references.
2241117395Skan
2242117395Skan2002-09-17  Zack Weinberg  <zack@codesourcery.com>
2243117395Skan
2244117395Skan	* Make-lang.in: Remove all references to the demangler.
2245117395Skan	* cxxfilt.c: Moved to binutils.
2246117395Skan
2247117395Skan2002-09-16  Nathan Sidwell  <nathan@codesourcery.com>
2248117395Skan
2249117395Skan	PR c++/7718
2250117395Skan	* pt.c (tsubst_decl): Remove assert.
2251117395Skan
2252117395Skan	Remove DR 295 implementation.
2253117395Skan	* pt.c (check_cv_quals_for_unify): Disable function & method cases.
2254117395Skan	* tree.c (cp_build_qualified_type_real): Likewise. Don't warn
2255117395Skan	about ignoring volatile qualifiers.
2256117395Skan
2257117395Skan	* search.c (lookup_member): Correct documentation.
2258117395Skan
2259117395Skan2002-09-16  Geoffrey Keating  <geoffk@apple.com>
2260117395Skan
2261117395Skan	* cp-tree.h (union lang_tree_node): Add chain_next option.
2262117395Skan
2263117395Skan2002-09-16  Nathan Sidwell  <nathan@codesourcery.com>
2264117395Skan
2265117395Skan	* parse.y (parse_finish_call_expr): Check lookup_member result.
2266117395Skan
2267117395Skan	PR c++/7015
2268117395Skan	* semantic.c (finish_asm_stmt): Fix operand/output_operands
2269117395Skan	thinko.
2270117395Skan	* typeck.c (c_expand_asm_operands): Protect from error_mark_node.
2271117395Skan
2272117395Skan2002-09-15  Nathan Sidwell  <nathan@codesourcery.com>
2273117395Skan
2274117395Skan	PR c++/7919
2275117395Skan	* call.c (build_over_call): Convert this pointer for fns found by
2276117395Skan	using decls.
2277117395Skan
2278117395Skan2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>
2279117395Skan
2280117395Skan	* ChangeLog: Follow spelling conventions.
2281117395Skan	* ChangeLog.1: Likewise.
2282117395Skan
2283117395Skan2002-09-14  Nathan Sidwell  <nathan@codesourcery.com>
2284117395Skan
2285117395Skan	PR c++/7768
2286117395Skan	* pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P.
2287117395Skan
2288117395Skan2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>
2289117395Skan
2290117395Skan	* error.c: Fix comment formatting.
2291117395Skan	* except.c: Likewise.
2292117395Skan	* expr.c: Likewise.
2293117395Skan	* friend.c: Likewise.
2294117395Skan	* g++spec.c: Likewise.
2295117395Skan	* init.c: Likewise.
2296117395Skan	* lex.c: Likewise.
2297117395Skan	* mangle.c: Likewise.
2298117395Skan	* method.c: Likewise.
2299117395Skan	* optimize.c: Likewise.
2300117395Skan	* pt.c: Likewise.
2301117395Skan	* rtti.c: Likewise.
2302117395Skan	* search.c: Likewise.
2303117395Skan	* semantics.c: Likewise.
2304117395Skan	* spew.c: Likewise.
2305117395Skan	* tree.c: Likewise.
2306117395Skan	* typeck.c: Likewise.
2307117395Skan	* typeck2.c: Likewise.
2308117395Skan
2309117395Skan2002-09-13  Matt Austern  <austern@apple.com>
2310117395Skan
2311117395Skan	PR C++/7828
2312117395Skan	* cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p.
2313117395Skan	* cp/call.c: Change call-by-const-reference mechanism to use
2314117395Skan	non_cast_lvalue_p when deciding whether the create a temporary.
2315117395Skan	We need a temporary when passing, e.g. (long) x by const ref.
2316117395Skan
2317117395Skan2002-09-13  Nathan Sidwell  <nathan@codesourcery.com>
2318117395Skan
2319117395Skan	* pt.c (unify, ARRAY_TYPE): Element type can be more qualified.
2320117395Skan
2321117395Skan2002-09-13  Kazu Hirata  <kazu@cs.umass.edu>
2322117395Skan
2323117395Skan	* decl.c: Fix comment formatting.
2324117395Skan	* decl2.c: Likewise.
2325117395Skan
2326117395Skan2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>
2327117395Skan
2328117395Skan	* call.c: Fix comment formatting.
2329117395Skan	* class.c: Likewise.
2330117395Skan	* cp-lang.c: Likewise.
2331117395Skan	* cp-tree.h: Likewise.
2332117395Skan	* cvt.c: Likewise.
2333117395Skan
2334117395Skan2002-09-11  Zack Weinberg  <zack@codesourcery.com>
2335117395Skan
2336117395Skan	* Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c,
2337117395Skan	and c++filt from cxxfilt.o + version.o + $(LIBDEPS).
2338117395Skan	* cxxfilt.c: New file: split from libiberty/cplus-dem.c, with
2339117395Skan	minor adjustments (use version_string, eliminate yet another
2340117395Skan	duplicate of xmalloc)
2341117395Skan
2342117395Skan2002-09-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2343117395Skan
2344117395Skan	* cp-tree.h (require_complete_eh_spec_types): Add prototype.
2345117395Skan
2346117395Skan2002-09-05  Jason Merrill  <jason@redhat.com>
2347117395Skan
2348117395Skan	* typeck2.c (add_exception_specifier): Only pedwarn for an
2349117395Skan	incomplete type.
2350117395Skan	(require_complete_eh_spec_types): New fn.
2351117395Skan	(cxx_incomplete_type_diagnostic): Also support pedwarning.
2352117395Skan	* typeck.c (complete_type_or_diagnostic): Likewise.
2353117395Skan	* call.c (build_call): Call require_complete_eh_spec_types.
2354117395Skan	* rtti.c (get_pseudo_ti_desc): Give an error rather than aborting
2355117395Skan	on an incomplete type.
2356117395Skan
2357103445Skan2002-09-04  Jakub Jelinek  <jakub@redhat.com>
2358103445Skan
2359103445Skan	* decl.c (start_cleanup_fn): Clear interface_only before
2360103445Skan	start_function, restore it afterwards.
2361103445Skan
2362117395Skan2002-08-31  Jason Merrill  <jason@redhat.com>
2363103445Skan
2364117395Skan	* cp-lang.c (cp_expr_size): Allow initialization from a
2365117395Skan	CONSTRUCTOR.
2366103445Skan
2367117395Skan2002-08-30  Richard Henderson  <rth@redhat.com>
2368103445Skan
2369117395Skan	PR opt/7515
2370117395Skan	* tree.c: Include target.h.
2371117395Skan	(cp_cannot_inline_tree_fn): Don't auto-inline functions that
2372117395Skan	don't bind locally.
2373117395Skan	* Makefile.in (tree.o): Update.
2374103445Skan
2375102780Skan2002-08-27  Mark Mitchell  <mark@codesourcery.com>
2376102780Skan
2377102780Skan	* class.c (layout_virtual_bases): Warn about bugs in G++ that
2378102780Skan	result in incorrect object layouts.
2379102780Skan	(layout_class_type): Likewise.
2380102780Skan
2381117395Skan2002-08-24  Matt Austern  <austern@apple.com>
2382117395Skan
2383117395Skan	* tree.c (lvalue_p_1): Add argument for whether casts of lvalues
2384117395Skan	are allowable.
2385117395Skan	(real_lvalue_p): Update caller.
2386117395Skan	(lvalue_p): Ditto.
2387117395Skan	(non_cast_lvalue_or_else): New.
2388117395Skan	* tree.h: Declare it.
2389117395Skan	* typeck.c (build_unary_op): Use non_cast_lvalue_or_else.
2390117395Skan
2391117395Skan2002-08-22  Mark Mitchell  <mark@codesourcery.com>
2392117395Skan
2393117395Skan	* typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR
2394117395Skan	and COND_EXPR specially; fix error message output.
2395117395Skan
2396102780Skan2002-08-22  Jason Merrill  <jason@redhat.com>
2397102780Skan
2398117395Skan	* pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR.
2399117395Skan	* semantics.c (nullify_returns_r): Likewise.
2400102780Skan
2401117395Skan2002-08-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2402102780Skan
2403117395Skan	Fix PR/7621
2404117395Skan	* typeck.c (finish_class_member_access_expr): Diagnose cases where
2405117395Skan	name lookup finds nothing.
2406102780Skan
2407117395Skan2002-08-15  Jason Merrill  <jason@redhat.com>
2408102780Skan
2409117395Skan	* semantics.c (finish_then_clause): Remove redundant assignment.
2410117395Skan	(finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the
2411117395Skan	extra binding level outside the if/switch statement.
2412117395Skan	(finish_while_cond, finish_for_cond): Rewrite complex condition
2413117395Skan	into the loop body.
2414117395Skan
2415117395Skan2002-08-15  Alexandre Oliva  <aoliva@redhat.com>
2416117395Skan
2417117395Skan	* parse.y (sizeof, alignof, typeof): New non-terminals to
2418117395Skan	increment skip_evaluation.  Replace terminals with them and
2419117395Skan	decrement skip_evaluation at the end of rules using them.
2420117395Skan	* decl2.c (mark_used): Don't assemble_external if
2421117395Skan	skipping evaluation.
2422117395Skan
2423117395Skan2002-08-15  Gabriel Dos Reis  <gdr@nerim.net>
2424117395Skan
2425117395Skan	Fix PR/7504
2426117395Skan	* parse.y (parse_finish_call_expr): Handle incomplete
2427117395Skan	type used to name a scope.
2428117395Skan
2429117395Skan2002-08-15  Nathan Sidwell  <nathan@codesourcery.com>
2430117395Skan
2431117395Skan	PR c++/7598
2432117395Skan	* typeck.c (build_unary_op): Fold offsetof idiom. Fixes
2433117395Skan	regression caused by my 2002-08-08 patch.
2434117395Skan
2435117395Skan2002-08-13  Mark Mitchell  <mark@codesourcery.com>
2436117395Skan
2437117395Skan	* decl.c (pushdecl_class_level): Honor requests to bind names to
2438117395Skan	OVERLOADs.
2439117395Skan
2440117395Skan2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2441117395Skan
2442117395Skan	* decl2.c (build_call_from_tree): Fix uninitialized variable.
2443117395Skan	* parse.y (parse_finish_call_expr): Likewise.
2444117395Skan	* repo.c (old_args, old_dir, old_main): Const-ify.
2445117395Skan
2446117395Skan2002-08-11  Gabriel Dos Reis  <gdr@nerim.net>
2447117395Skan
2448117395Skan	* decl.c (duplicate_decls): Replace DECL_SOURCE_FILE +
2449117395Skan	DECL_SOURCE_LINE with DECL_SOURCE_LOCATION.
2450117395Skan	* optimize.c (maybe_clone_body): Likewise.
2451117395Skan	* pt.c (tsubst_enum): Likewise.
2452117395Skan	(lookup_template_class): Likewise.
2453117395Skan	* tree.c (cp_copy_res_decl_for_inlining): Likewise.
2454117395Skan
2455117395Skan2002-08-10  Neil Booth  <neil@daikokuya.co.uk>
2456117395Skan
2457117395Skan	* lang-specs.h: Remove -ansi.
2458117395Skan
2459117395Skan2002-08-10  Nathan Sidwell  <nathan@codesourcery.com>
2460117395Skan
2461117395Skan	* tree.c (maybe_dummy_object): Replace // with /* */
2462117395Skan
2463117395Skan2002-08-09  Mark Mitchell  <mark@codesourcery.com>
2464117395Skan
2465117395Skan	* call.c (standard_conversion): Use build_ptrmem_type.
2466117395Skan	* cp-tree.h (build_ptrmem_type): New function.
2467117395Skan	(adjust_result_of_qualified_name_lookup): Likewise.
2468117395Skan	* decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate
2469117395Skan	static data members.
2470117395Skan	(build_ptrmem_type): New function.
2471117395Skan	(grokdeclarator): Do not use build_offset_type when encountering a
2472117395Skan	qualified name.
2473117395Skan	* parse.y (parse_finish_call_expr): Use
2474117395Skan	adjust_result_of_qualified_name_lookup.
2475117395Skan	* search.c (adjust_result_of_qualified_name_lookup): New function.
2476117395Skan	* typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than
2477117395Skan	accessing OFFSET_TYPEs directly.
2478117395Skan
2479117395Skan2002-08-08  Mike Stump  <mrs@apple.com>
2480117395Skan
2481117395Skan	* call.c (add_builtin_candidate): legal -> valid, illegal -> invalid.
2482117395Skan	(type_decays_to): Likewise.
2483117395Skan	* class.c (find_final_overrider): Likewise.
2484117395Skan	(maybe_note_name_used_in_class): Likewise.
2485117395Skan	* decl.c (current_tmpl_spec_kind): Likewise.
2486117395Skan	(add_binding): Likewise.
2487117395Skan	(push_class_binding): Likewise.
2488117395Skan	(duplicate_decls): Likewise.
2489117395Skan	(layout_var_decl): Likewise.
2490117395Skan	(grokfndecl): Likewise.
2491117395Skan	(grokdeclarator): Likewise.
2492117395Skan	(check_default_argument): Likewise.
2493117395Skan	* decl2.c (handle_class_head): Likewise.
2494117395Skan	* error.c (dump_template_decl): Likewise.
2495117395Skan	* init.c (build_offset_ref): Likewise.
2496117395Skan	* pt.c (check_specialization_scope): Likewise.
2497117395Skan	(determine_specialization): Likewise.
2498117395Skan	(check_explicit_specialization): Likewise.
2499117395Skan	(maybe_check_template_type): Likewise.
2500117395Skan	(process_partial_specialization): Likewise.
2501117395Skan	(check_default_tmpl_args): Likewise.
2502117395Skan	(push_template_decl_real): Likewise.
2503117395Skan	(convert_template_argument): Likewise.
2504117395Skan	(try_class_unification): Likewise.
2505117395Skan	(get_bindings_real): Likewise.
2506117395Skan	(do_decl_instantiation): Likewise.
2507117395Skan	* semantics.c (begin_function_definition): Likewise.
2508117395Skan	(finish_member_declaration): Likewise.
2509117395Skan	(check_multiple_declarators): Likewise.
2510117395Skan	* typeck.c (comp_array_types): Likewise.
2511117395Skan	(comptypes): Likewise.
2512117395Skan	(expr_sizeof): Likewise.
2513117395Skan	(build_binary_op): Likewise.
2514117395Skan	(dubious_conversion_warnings): Likewise.
2515117395Skan	(check_return_expr): Likewise.
2516117395Skan
2517117395Skan2002-08-08  Mark Mitchell  <mark@codesourcery.com>
2518117395Skan
2519117395Skan	* typeck.c (build_class_member_access_expr): Do not return
2520117395Skan	error_mark_node when no error has occurred.
2521117395Skan
2522117395Skan2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
2523117395Skan
2524117395Skan	* typeck.c (build_component_addr): Remove.
2525117395Skan	(build_unary_op): Just check it's not a bitfield, and then build
2526117395Skan	an ADDR_EXPR.
2527117395Skan
2528117395Skan2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
2529117395Skan
2530117395Skan	* class.c (convert_to_base): Correct check for error_mark_node.
2531117395Skan	(create_vtable_ptr): Remove unused VFUNS_P parm.
2532117395Skan
2533117395Skan2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
2534117395Skan
2535117395Skan	* cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
2536117395Skan
2537117395Skan2002-08-07  Mark Mitchell  <mark@codesourcery.com>
2538117395Skan
2539117395Skan	Rework build_component_ref.
2540117395Skan	* call.c (build_vfield_ref): Do not go through build_component_ref.
2541117395Skan	(build_field_call): Use build_class_member_access_expr.
2542117395Skan	(build_user_type_conversion_1): Use BASELINK_FUNCTIONS.
2543117395Skan	(build_object_call): Likewise.
2544117395Skan	* class.c (convert_to_base): New function.
2545117395Skan	(type_requires_array_cookie): Use BASELINK_FUNCTIONS.
2546117395Skan	(instantiate_type): Handle BASELINKs.
2547117395Skan	* cp-tree.def (BASELINK): New tree code.
2548117395Skan	* cp-tree.h (BASELINK_P): Reimplement.
2549117395Skan	(SET_BASELINK_P): Remove.
2550117395Skan	(BASELINK_BINFO): Reimplement.
2551117395Skan	(BASELINK_FUNCTIONS): Likewise.
2552117395Skan	(BASELINK_ACCESS_BINFO): Likewise.
2553117395Skan	(BASELINK_OPTYPE): Likewise.
2554117395Skan	(convert_to_base): New function.
2555117395Skan	(name_p): Likewise.
2556117395Skan	(build_object_ref): Remove.
2557117395Skan	(build_component_ref_1): Likewise.
2558117395Skan	(build_component_ref): Likewise.
2559117395Skan	(build_x_component_ref): Likewise.
2560117395Skan	(build_class_member_access_expr): New function.
2561117395Skan	(finish_class_member_access_expr): Likewise.
2562117395Skan	(build_ptrmemfunc_access_expr): Likewise.
2563117395Skan	* decl.c (grokdeclarator): Handle BASELINKs.
2564117395Skan	* decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using
2565117395Skan	finish_class_member_access_expr.
2566117395Skan	(arg_assoc): Handle BASELINKs.
2567117395Skan	(do_class_using_decl): Likewise.
2568117395Skan	* error.c (dump_decl): Likewise.
2569117395Skan	(dump_expr): Use build_ptrmemfunc_access_expr.
2570117395Skan	* except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find
2571117395Skan	destructors.
2572117395Skan	(build_throw): Use BASELINK_FUNCTIONS.
2573117395Skan	* init.c (perform_member_init): Use
2574117395Skan	build_class_member_access_expr.
2575117395Skan	(build_offset_ref): Handle BASELINKs.  Use
2576117395Skan	build_class_member_access_expr.
2577117395Skan	* method.c (hack_identifier): Likewise.
2578117395Skan	* parse.y (do_id): Use BASELINK, not TREE_LIST.
2579117395Skan	(primary): Remove uses of build_object_ref.
2580117395Skan	* pt.c (lookup_template_function): Handle BASELINKs.
2581117395Skan	(resolve_overloaded_unification): Likewise.
2582117395Skan	* search.c (build_baselink): Build a BASELINK, not a TREE_LIST.
2583117395Skan	(lookup_field): Use BASELINK, not TREE_LIST.
2584117395Skan	(lookup_fnfiels): Likewise.
2585117395Skan	(setup_class_bindings): Likewise.
2586117395Skan	* semantics.c (finish_object_call_expr): Do not use
2587117395Skan	build_method_call when we already know what function is being
2588117395Skan	called.
2589117395Skan	* spew.c (identifier_type): Use BASELINK, not TREE_LIST.
2590117395Skan	* tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not
2591117395Skan	TREE_CHAIN.
2592117395Skan	(name_p): New function.
2593117395Skan	* typeck.c (build_object_ref): Remove.
2594117395Skan	(build_component_ref_1): Likewise.
2595117395Skan	(build_x_component_ref): Likewise.
2596117395Skan	(build_class_member_access_expr): New function.
2597117395Skan	(finish_class_member_access_expr): Likewise.
2598117395Skan	(build_ptrmemfunc_access_expr): Likewise.
2599117395Skan	(get_member_function_from_ptrfunc): Use
2600117395Skan	build_ptrmemfunc_access_expr.
2601117395Skan	(build_binary_op): Likewise.
2602117395Skan	(build_unary_op): Likewise.
2603117395Skan	(build_ptrmemfunc): Likewise.
2604117395Skan	(pfn_from_ptrmemfunc): Likewise.
2605117395Skan	* typeck2.c (build_m_component_ref): Adjust comment.
2606117395Skan
2607117395Skan2002-08-07  Neil Booth  <neil@daikokuya.co.uk>
2608117395Skan
2609117395Skan	* Make-lang.in (CXX_C_OBJS): Update.
2610117395Skan	* cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
2611117395Skan	* cp-tree.h (cxx_decode_option): Remove.
2612117395Skan	* decl2.c (compare_options, lang_f_options, unsupported_options,
2613117395Skan	cxx_decode_option): Remove.
2614117395Skan
2615117395Skan2002-08-06  Gabriel Dos Reis  <gdr@nerim.net>
2616117395Skan
2617117395Skan	* typeck.c (build_x_unary_op): Handle pointer-to-member.
2618117395Skan
2619117395Skan2002-08-05  Geoffrey Keating  <geoffk@redhat.com>
2620117395Skan
2621117395Skan	* class.c: Don't include obstack.h.
2622117395Skan	(popclass):
2623117395Skan	* decl2.c: Delete bogus comment.
2624117395Skan	* error.c: Don't include obstack.h.
2625117395Skan	* except.c: Likewise.
2626117395Skan	(dump_type): Correct comment.
2627117395Skan	* method.c: Don't include obstack.h.
2628117395Skan	* tree.c: Likewise.
2629117395Skan
2630117395Skan2002-08-04  Gabriel Dos Reis  <gdr@nerim.net>
2631117395Skan
2632117395Skan	Fix PR/2213
2633117395Skan	* cvt.c (cp_convert_to_pointer): Reject conversions from integral
2634117395Skan	expressions to pointer-to-data-member of pointer-to-member-functions.
2635117395Skan
2636117395Skan2002-08-04  Geoffrey Keating  <geoffk@redhat.com>
2637117395Skan
2638117395Skan	* cvt.c (ocp_convert): Delete obsolete code.
2639117395Skan	* parse.y (permanent_obstack): Delete declaration.
2640117395Skan	* pt.c (permanent_obstack): Delete declaration.
2641117395Skan	* repo.c (permanent_obstack): Delete declaration.
2642117395Skan	(open_repo_file): Use xmalloc instead of permanent_obstack.
2643117395Skan	(init_repo): Use xstrdup instead of permanent_obstack.
2644117395Skan
2645117395Skan2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>
2646117395Skan
2647117395Skan	* cp-tree.h (VF_DERIVED_VALUE): Remove.
2648117395Skan	* class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE.
2649117395Skan
2650102780Skan2002-08-03  Nathan Sidwell  <nathan@codesourcery.com>
2651102780Skan
2652102780Skan	PR 7470.
2653102780Skan	C++ ABI change - vfunc ordering.
2654102780Skan	* class.c (add_virtual_function): Remove.
2655102780Skan	(dfs_modify_all_vtables): Take list of all declared
2656102780Skan	virtuals. Assign all that are not in primary base.
2657102780Skan	(check_for_override): Adjust comments.
2658102780Skan	(create_vtable_ptr): Take single list of virtuals. Build chain
2659102780Skan	of declared virtuals here.
2660102780Skan	(layout_class_type): Take single list of virtuals. Adjust.
2661102780Skan	(finish_struct_1): Keep virtuals on single list. Adjust.
2662102780Skan
2663117395Skan2002-08-02  Mark Mitchell  <mark@codesourcery.com>
2664117395Skan
2665117395Skan	* init.c (build_member_call): Use build_new_method_call, not
2666117395Skan	build_method_call.
2667117395Skan
2668117395Skan2002-08-02  Krister Walfridsson  <cato@df.lth.se>
2669117395Skan
2670117395Skan	* Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies.
2671117395Skan
2672117395Skan2002-08-02  Mark Mitchell  <mark@codesourcery.com>
2673117395Skan
2674117395Skan	* call.c (build_method_call): Issue a more helpful error message
2675117395Skan	about ambiguous method names.
2676117395Skan
2677117395Skan2002-08-02  Nathan Sidwell  <nathan@codesourcery.com>
2678117395Skan
2679117395Skan	* tree.c (build_shared_int_cst): Make cache file scope, and
2680117395Skan	GTY it.
2681117395Skan
2682117395Skan2002-08-02  Jason Merrill  <jason@redhat.com>
2683117395Skan
2684117395Skan	* cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define.
2685117395Skan	(cp_expr_size): New fn.
2686117395Skan	* call.c (build_over_call): Lose empty class hackery.
2687117395Skan	(convert_arg_to_ellipsis): Promote non-POD warning to error.
2688117395Skan	* typeck.c (build_modify_expr): Don't use save_expr on an lvalue.
2689117395Skan
2690117395Skan	* semantics.c (expand_body): Do tree optimization in the function
2691117395Skan	context, too.
2692117395Skan
2693117395Skan2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
2694117395Skan
2695117395Skan	* cp-tree.h: Move all warning and flag declarations to c-common.h.
2696117395Skan	* decl.c: Move all warning and flag variables to c-common.c.
2697117395Skan	* decl2.c: Move all warning and flag variables to c-common.c.
2698117395Skan	* lex.c (flag_digraphs): Remove.
2699117395Skan	(warn_traditional): Now in c-common.c.
2700117395Skan
2701117395Skan2002-07-31  Mark Mitchell  <mark@codesourcery.com>
2702117395Skan
2703117395Skan	* call.c (build_field_call): Do not look up the field by name.
2704117395Skan	(build_method_call): Simplify.
2705117395Skan	(struct z_candidate): Add access_path and conversion_path.  Remove
2706117395Skan	basetype_path.
2707117395Skan	(convert_class_to_reference): Adjust use of
2708117395Skan	add_function_candidate.
2709117395Skan	(add_candidate): Add conversion_path argument.
2710117395Skan	(add_function_candidate): Use it.
2711117395Skan	(add_conv_dndidate): Likewise.
2712117395Skan	(build_builtin_candidate): Likewise.
2713117395Skan	(add_template_candidate_real): Add conversion_path argument.
2714117395Skan	(add_template_conv_candidate): Likewise.
2715117395Skan	(add_template_candidate): Likewise.
2716117395Skan	(build_user_type_conversion_1): Use it.
2717117395Skan	(build_new_function_call): Remove name lookup code.  Adjust use of
2718117395Skan	add_template_candidate and add_function_candidate.
2719117395Skan	(build_new_op): Likewise.
2720117395Skan	(convert_like_real): Use build_special_member_call.
2721117395Skan	(build_over_call): Use cand->conversion_path.
2722117395Skan	(build_special_member_call): New method.
2723117395Skan	(build_new_method_call): Remove name lookup code.
2724117395Skan	* cp-tree.def (OFFSET_REF): Update documentation.
2725117395Skan	(TEMPLATE_ID_EXPR): Likewise.
2726117395Skan	* cp-tree.h (BASELINK_ACCESS_BINFO): New macro.
2727117395Skan	(BASELINK_OPTYPE): Likewise.
2728117395Skan	(build_new_method_call): Adjust prototype.
2729117395Skan	(build_special_member_call): New method.
2730117395Skan	(build_baselink): New method.
2731117395Skan	(build_offset_ref_call_from_tree): Likewise.
2732117395Skan	(build_call_from_tree): Likewise.
2733117395Skan	(finish_qualified_call_expr): Remove.
2734117395Skan	(finish_call_expr): Adjust prototype.
2735117395Skan	(build_x_function_call): Remove.
2736117395Skan	* cvt.c (ocp_convert): Use build_special_member_call.
2737117395Skan	* decl2.c (reparse_absdcl_as_expr): Use finish_call_expr.
2738117395Skan	(build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and
2739117395Skan	CALL_EXPR.
2740117395Skan	(build_offset_ref_call_from_tree): New function.
2741117395Skan	(build_call_from_tree): Likewise.
2742117395Skan	* init.c (expand_cleanup): Use build_special_member_call.
2743117395Skan	(expand_default_init): Likewise.
2744117395Skan	(build_member_call): Use finish_call_expr.
2745117395Skan	(build_new_1): Use build_special_member_call.
2746117395Skan	(push_base_cleanups): Likewise.
2747117395Skan	* method.c (do_build_assign_ref): Likewise.
2748117395Skan	* parse.y (template_id): Do not pass a COMPONENT_REF to
2749117395Skan	lookup_template_function.
2750117395Skan	(primary): Use parse_finish_call_epxr, not finish_call_expr.
2751117395Skan	(parse_finish_call_expr): New function.
2752117395Skan	* pt.c (lookup_template_function): Add assertions.
2753117395Skan	* search.c (lookup_base): Allow T to be a binfo.
2754117395Skan	(build_baselink): New function.
2755117395Skan	(lookup_member): Use it.
2756117395Skan	* semantics.c (finish_call_expr): Do not do name lookup.
2757117395Skan	(finish_object_call_expr): Remove #if 0'd code.
2758117395Skan	(finish_qualified_call_expr): Remove.
2759117395Skan	* typeck.c (build_x_function_call): Remove.
2760117395Skan	(build_static_case): Use build_special_member_call.
2761117395Skan	* typeck2.c (build_functional_cast): Likewise.
2762117395Skan
2763102780Skan2002-07-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2764102780Skan
2765102780Skan	* lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c.
2766102780Skan
2767117395Skan2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
2768102780Skan
2769117395Skan	* cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion.
2770102780Skan
2771117395Skan2002-07-30  Nathan Sidwell  <nathan@codesourcery.com>
2772102780Skan
2773117395Skan	* cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more
2774117395Skan	documentation.
2775102780Skan
2776117395Skan2002-07-29  Alan Modra  <amodra@bigpond.net.au>
2777102780Skan
2778117395Skan	* cp-tree.h: Comment typo fix.
2779102780Skan
2780117395Skan2002-07-29  Richard Earnshaw  <rearnsha@arm.com>
2781102780Skan
2782117395Skan	* spew.c (space_for_token): Allocate zeroed memory for a new token
2783117395Skan	chunk.
2784102780Skan
2785117395Skan2002-07-27  Roger Sayle  <roger@eyesopen.com>
2786102780Skan
2787117395Skan	* decl.c (builtin_function_1): No need to explicitly mark
2788117395Skan	BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
2789102780Skan
2790117395Skan2002-07-27  Roger Sayle  <roger@eyesopen.com>
2791102780Skan
2792117395Skan	* decl2.c (cxx_decode_option): Support -fno-builtin-foo.
2793102780Skan
2794117395Skan2002-07-26  Jason Merrill  <jason@redhat.com>
2795102780Skan
2796117395Skan	* call.c (build_over_call): Likewise.
2797117395Skan	(cp_convert_parm_for_inlining): New fn.
2798117395Skan	(convert_for_arg_passing): New fn.
2799117395Skan	(convert_default_arg, build_over_call): Use it.
2800117395Skan	(type_passed_as): New fn.
2801117395Skan	* pt.c (tsubst_decl): Use it.
2802117395Skan	* decl2.c (cp_build_parm_decl): New fn.
2803117395Skan	(build_artificial_parm): Use it.
2804117395Skan	(start_static_storage_duration_function): Likewise.
2805117395Skan	* decl.c (start_cleanup_fn, grokdeclarater): Likewise.
2806117395Skan	(grokparms): Don't mess with DECL_ARG_TYPE.
2807117395Skan	* typeck.c (convert_arguments): Use convert_for_arg_passing.
2808117395Skan	* cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
2809117395Skan	Define.
2810117395Skan	* cp-tree.h: Declare new fns.
2811102780Skan
2812117395Skan2002-07-26  Neil Booth  <neil@daikokuya.co.uk>
2813117395Skan
2814117395Skan	* cp-tree.h (flag_operator_names): Remove.
2815117395Skan	* decl2.c (flag_operator_names): Remove.
2816117395Skan	(lang_f_options): Remove operator-names.
2817117395Skan	* lex.c (D_OPNAME): Remove.
2818117395Skan	(reswords): Remove operator names.
2819117395Skan	(rid_to_yy): Remove operator names.
2820117395Skan	(init_reswords): No need to handle D_OPNAME.
2821117395Skan	* spew.c (read_process_identifier): There are no operator
2822117395Skan	names.
2823117395Skan
2824117395Skan2002-07-26  Jason Merrill  <jason@redhat.com>
2825117395Skan
2826117395Skan	* dump.c (cp_dump_tree): Call c_dump_tree.
2827117395Skan	* Make-lang.in (CXX_C_OBJS): Add c-dump.o.
2828117395Skan
2829117395Skan2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
2830117395Skan
2831117395Skan	* error.c (print_whitespace): Remove.
2832117395Skan	* g++spec.c (LIBUNWIND): Move.
2833117395Skan	* mangle.c (mangled_position, write_signed_number): Remove.
2834117395Skan
2835117395Skan2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
2836117395Skan
2837117395Skan	* decl2.c (cxx_decode_option): Similarly.
2838117395Skan
2839117395Skan2002-07-25  Gabriel Dos Reis  <gdr@nerim.net>
2840117395Skan
2841117395Skan	* cp-tree.h (cxx_sizeof_nowarn): Now a macro.
2842117395Skan	(cxx_sizeof_or_alignof_type): Take a third argument.
2843117395Skan	(cxx_sizeof): Adjust definition.
2844117395Skan	(cxx_alignof): Likewise.
2845117395Skan	* init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
2846117395Skan	* typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
2847117395Skan	complaining.
2848117395Skan	(c_sizeof_nowarn): Remove definition.
2849117395Skan	(build_unary_op): Use cxx_sizeof_nowarn.
2850117395Skan
2851117395Skan2002-07-24  Geoffrey Keating  <geoffk@redhat.com>
2852117395Skan
2853117395Skan	* tree.c (cp_build_qualified_type_real): When copying
2854117395Skan	pointer-to-method types, unshare the record that holds
2855117395Skan	the cached pointer-to-member-function type.
2856117395Skan
2857117395Skan2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
2858117395Skan
2859117395Skan	* cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove.
2860117395Skan
2861117395Skan2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
2862117395Skan
2863117395Skan	Fix PR/7363:
2864117395Skan	* typeck.c (cxx_sizeof_or_alignof_type): New function.
2865117395Skan	(c_sizeof): Remove definition.
2866117395Skan	(expr_sizeof): Use cxx_sizeof.
2867117395Skan	* decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type.
2868117395Skan	* decl.c (finish_destructor_body): Use cxx_sizeof.
2869117395Skan	* semantics.c (finish_alignof): Likewise.
2870117395Skan	(finish_alignof): Use cxx_alignof.
2871117395Skan	* cp-tree.h (cxx_sizeof, cxx_alignof): New macros.
2872117395Skan	(cxx_sizeof_or_alignof_type): Declare.
2873117395Skan	(my_friendly_assert): Move to ../c-common.h.
2874117395Skan
2875117395Skan2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
2876117395Skan
2877117395Skan	* class.c, method.c, pt.c, search.c: Don't define obstack macros.
2878117395Skan
2879117395Skan2002-07-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2880117395Skan
2881117395Skan	PR c++/7347, c++/7348
2882117395Skan	* cp-tree.h (tsubst_flags_t): Add tf_parsing.
2883117395Skan	* decl.c (make_typename_type): Use it.
2884117395Skan	(make_unbound_class_template): Likewise.
2885117395Skan	(lookup_name_real): Don't call type_access_control if scope is
2886117395Skan	template parameter dependent.
2887117395Skan	* parse.y (template_arg): Call make_unbound_class_template with
2888117395Skan	tf_parsing set.
2889117395Skan	(nest_name_specifier): Call make_typename_type with tf_parsing set.
2890117395Skan	(typename_sub0): Likewise.
2891117395Skan	(typename_sub1): Likewise.
2892117395Skan	(instantiate_decl): Push class scope.
2893117395Skan	* pt.c (regenerate_decl_from_template): Call pushclass and popclass
2894117395Skan	for both static variable and member function template.
2895117395Skan	(instantiate_decl) Call pushclass and popclass when tsubst'ing type
2896117395Skan	and arguments.
2897117395Skan	* search.c (type_access_control): Do type access for TEMPLATE_DECL
2898117395Skan	too.
2899117395Skan
2900117395Skan2002-07-20  Roger Sayle  <roger@eyesopen.com>
2901117395Skan
2902117395Skan	* decl2.c (cxx_decode_option): Simplify -fhandle-exceptions
2903117395Skan	test by using positive_option.  Make whitespace consistent.
2904117395Skan
2905117395Skan2002-07-20  Gabriel Dos Reis  <gdr@nerim.net>
2906117395Skan
2907117395Skan	* spew.c (struct unparsed_test): Replace 'filename' and 'lineno'
2908117395Skan	members with 'locus'.  Adjust use throughout.
2909117395Skan	(struct feed):  Likewise.
2910117395Skan	(alloc_unparsed_test): Change prototype, take a 'const location_t *'.
2911117395Skan	Adjust use.
2912117395Skan	(snarf_defarg): Use error(), not error_with_file_and_line().
2913117395Skan
2914117395Skan2002-07-19  Chris Demetriou  <cgd@broadcom.com>
2915117395Skan
2916117395Skan	* lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever
2917117395Skan	cpp_options is included.
2918117395Skan
2919117395Skan2002-07-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2920117395Skan
2921117395Skan	PR c++/2862, c++/2863
2922117395Skan	* pt.c (determine_specialization): Compare the length of
2923117395Skan	TYPE_ARG_TYPES.  Tidy.
2924117395Skan
2925117395Skan2002-07-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2926117395Skan
2927117395Skan	PR c++/3797
2928117395Skan	* decl.c (duplicate_decls): Don't propagate inlining parameters from
2929117395Skan	olddecl to newdecl when newdecl is a specialization of the
2930117395Skan	instantiation olddecl.
2931117395Skan
2932117395Skan2002-07-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2933117395Skan
2934117395Skan	PR c++/4802, c++/5387
2935117395Skan	* decl.c (make_typename_type): Use enforce_access.
2936117395Skan
2937117395Skan2002-07-17  Scott Snyder <snyder@fnal.gov>
2938117395Skan
2939117395Skan	PR c++/7320
2940117395Skan	* rtti.c (get_tinfo_decl): Set DECL_COMDAT.
2941117395Skan
2942102780Skan2002-07-12  Mark Mitchell  <mark@codesourcery.com>
2943102780Skan
2944102780Skan	* class.c (add_method): Correct handling of conversion operators.
2945102780Skan
2946102780Skan2002-07-11  Mark Mitchell  <mark@codesourcery.com>
2947102780Skan
2948102780Skan	PR c++/7224
2949102780Skan	* class.c (add_method): Simplify.
2950102780Skan
2951102780Skan2002-07-11  Jason Merrill  <jason@redhat.com>
2952102780Skan
2953102780Skan	PR c++/7279
2954102780Skan	* tree.c (cp_copy_res_decl_for_inlining): Also copy
2955102780Skan	TREE_ADDRESSABLE.
2956102780Skan
2957117395Skan2002-07-10  Graham Stott  <graham.stott@btinternet.com>
2958117395Skan
2959117395Skan	* pt.c (template_parm_this_level_p, push_template_decl_real):
2960117395Skan	Pass depth as int pointer.
2961117395Skan
2962117395Skan2002-07-11  Tim Josling  <tej@melbpc.org.au>
2963117395Skan
2964117395Skan	Remove front end hard coding from gengtype.c.
2965117395Skan
2966117395Skan	* config-lang.in (gtfiles): Add files needed for this front end.
2967117395Skan
2968117395Skan2002-07-10  Mark Mitchell  <mark@codesourcery.com>
2969117395Skan
2970117395Skan	* cp-tree.h (unqualified_name_lookup_error): Declare it.
2971117395Skan	(begin_function_definition): Adjust prototype.
2972117395Skan	* lex.c (unqualified_name_lookup_error): New function, split out
2973117395Skan	from ...
2974117395Skan	(do_identifier): ... here.
2975117395Skan	* parse.y (parse_begin_function_definition): New function.
2976117395Skan	(fn.def1): Use it.
2977117395Skan	* semantics.c (begin_function_definition): Accept decl-specifiers
2978117395Skan	and attributes as separate parameters.
2979117395Skan
2980102780Skan2002-07-10  Jason Merrill  <jason@redhat.com>
2981102780Skan
2982102780Skan	PR c++/6255
2983102780Skan	* decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
2984102780Skan	modifying the old one.
2985102780Skan
2986117395Skan2002-07-09  Mark Mitchell  <mark@codesourcery.com>
2987117395Skan
2988117395Skan	* cp-tree.h (constructor_name_p): Declare it.
2989117395Skan	(check_template_template_default_arg): Likewise.
2990117395Skan	* class.c (handle_using_decl): Use constructor_name_p.
2991117395Skan	* decl.c (grokdeclarator): Likewise.
2992117395Skan	* decl2.c (constructor_name_p): Define it.
2993117395Skan	* init.c (build_member_call): Use constructor_name_p.
2994117395Skan	* parse.y (template_parm): Use check_template_template_default_arg.
2995117395Skan	* pt.c (check_explicit_specialization): Use constructor_name_p.
2996117395Skan	* semantics.c (check_template_template_default_arg): New function.
2997117395Skan
2998102780Skan2002-07-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2999102780Skan
3000102780Skan	* pt.c (can_complete_type_without_circularity): Add static to
3001102780Skan	function definition.
3002102780Skan
3003117395Skan2002-07-08  Mark Mitchell  <mark@codesourcery.com>
3004102780Skan
3005117395Skan	* cp-tree.h (have_extern_spec): Declare it
3006117395Skan	* decl.c (have_extern_spec): Define it.
3007117395Skan	(start_decl): Eliminate use of used_extern_spec.
3008117395Skan	(start_function): Likewise.
3009117395Skan	* parse.y (have_extern_spec): Remove declaration.
3010117395Skan	(used_extern_spec): Likewise.
3011117395Skan	(frob_specs): Eliminate use of used_extern_spec.
3012117395Skan	(.hush_warning): Likewise.
3013102780Skan
3014117395Skan2002-07-07  Mark Mitchell  <mark@codesourcery.com>
3015117395Skan
3016117395Skan	* Make-lang.in (cp/parse.o): Depend on decl.h.
3017117395Skan	* cp-tree.h (do_decl_instantiation): Change prototype.
3018117395Skan	* parse.y: Include decl.h.
3019117395Skan	(parse_decl_instantiation): New function.
3020117395Skan	(explicit_instantiation): Use it.
3021117395Skan	* pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR
3022117395Skan	and DECLSPECS.
3023117395Skan
3024117395Skan2002-07-07  Roger Sayle  <roger@eyesopen.com>
3025117395Skan
3026117395Skan	* error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for
3027117395Skan	constructor and destructor tests when passed a TEMPLATE_DECL.
3028117395Skan
3029102780Skan2002-07-05  Jason Merrill  <jason@redhat.com>
3030102780Skan
3031102780Skan	* cvt.c (cp_convert_to_pointer): Call force_fit_type for null
3032102780Skan	pointers.
3033102780Skan
3034102780Skan	PR optimization/7145
3035102780Skan	* tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
3036102780Skan
3037117395Skan2002-07-05  Nathan Sidwell  <nathan@codesourcery.com>
3038102780Skan
3039117395Skan	Repair damage on weak-impared targets caused by my previous patch.
3040117395Skan	* cp-tree.h (import_export_tinfo): Add parameter.
3041117395Skan	* decl2.c (import_export_tinfo): Add parameter, post adjust
3042117395Skan	DECL_COMDAT.
3043117395Skan	* rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
3044117395Skan	import_export_tinfo.
3045102780Skan
3046102780Skan2002-07-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3047102780Skan
3048102780Skan	PR c++/6944
3049102780Skan	* init.c (build_aggr_init): Remove qualifiers of init before calling
3050102780Skan	build_vec_init.
3051102780Skan	(build_vec_init): Flatten multi-dimensional array during cleanup.
3052102780Skan	(build_vec_delete_1): Abort if the type of each element is array.
3053102780Skan
3054117395Skan2002-07-03  Graham Stott  <graham.stott@btinternet.com>
3055117395Skan
3056117395Skan	* pt.c (instantiate_class_template): Fix typo.
3057117395Skan
3058102780Skan2002-07-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3059102780Skan
3060117395Skan	* typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused
3061117395Skan	by CVS conflict in my last patch.
3062117395Skan
3063117395Skan2002-07-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3064117395Skan
3065102780Skan	PR c++/6716
3066102780Skan	* pt.c (can_complete_type_without_circularity): New function.
3067102780Skan	(instantiate_class_template): Use it.
3068117395Skan	* typeck2.c (cxx_incomplete_type_diagnostic): Improve error
3069117395Skan	message due to incomplete fields.
3070102780Skan
3071102780Skan2002-07-01  Mark Mitchell  <mark@codesourcery.com>
3072102780Skan
3073102780Skan	PR c++/7112
3074102780Skan	* mangle.c (write_expression): Add mangling for sizeof when
3075102780Skan	applied to a type.
3076102780Skan	* operators.def: Remove stale comment.
3077102780Skan
3078117395Skan2002-06-30  Nathan Sidwell  <nathan@codesourcery.com>
3079117395Skan
3080117395Skan	* cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
3081117395Skan	(CPTI_TYPE_INFO_PTR_TYPE): ... this.
3082117395Skan	(tinfo_decl_type): Replace with ...
3083117395Skan	(type_info_ptr_type): ... this.
3084117395Skan	(import_export_tinfo): Declare.
3085117395Skan	(tinfo_decl_p): Rename to ...
3086117395Skan	(unemitted_tinfo_decl_p): ... this.
3087117395Skan	* decl2.c (import_export_decl): Break out tinfo handling into ...
3088117395Skan	(import_export_tinfo): ... here. New function.
3089117395Skan	(finish_file): Adjust.
3090117395Skan	* rtti.c (TINFO_REAL_NAME): New macro.
3091117395Skan	(init_rtti_processing): Create the tinfo types.
3092117395Skan	(get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
3093117395Skan	(get_tinfo_decl): Adjust.
3094117395Skan	(get_tinfo_ptr): New function.
3095117395Skan	(get_type_id): Use it.
3096117395Skan	(tinfo_base_init): Create vtable decl here, if it doesn't exist.
3097117395Skan	(ptr_initializer): Use get_tinfo_ptr.
3098117395Skan	(ptm_initializer): Likewise.
3099117395Skan	(synthesize_tinfo_var): Break into ...
3100117395Skan	(get_pseudo_ti_init): ... this. Just create the initializer.
3101117395Skan	(get_pseudo_ti_desc): .. and this.
3102117395Skan	(create_real_tinfo_var): Remove.
3103117395Skan	(create_pseudo_type_info): Don't create the vtable decl here.
3104117395Skan	(get_vmi_pseudo_type_info): Remove.
3105117395Skan	(create_tinfo_types): Adjust.
3106117395Skan	(tinfo_decl_p): Rename to ...
3107117395Skan	(unemitted_tinfo_decl_p): ... here. Adjust.
3108117395Skan	(emit_tinfo_decl): Adjust. Create the initializer.
3109117395Skan
3110102780Skan2002-06-27  Mark Mitchell  <mark@codesourcery.com>
3111102780Skan
3112102780Skan	PR c++/6695
3113102780Skan	* pt.c (tsubst_friend_class): Substitute into the context of the
3114102780Skan	friend before using it.
3115102780Skan
3116117395Skan2002-06-26  Mark Mitchell  <mark@codesourcery.com>
3117117395Skan
3118117395Skan	* cp-tree.h (xref_tag): Change prototype.
3119117395Skan	(handle_class_head): Likewise.
3120117395Skan	(build_x_component_ref): Likewise.
3121117395Skan	* decl.c (cxx_init_decl_processing): Adjust call to xref_tag.
3122117395Skan	(xref_tag): Take attributes as a separate parameter.
3123117395Skan	(xref_tag_from_type): Adjust call to xref_tag.
3124117395Skan	* decl2.c (build_expr_from_tree): Adjust call to
3125117395Skan	build_x_component_ref.
3126117395Skan	(handle_class_head): Take attributes as a separate parameter.
3127117395Skan	* parse.y (parse_xref_tag): New function.
3128117395Skan	(parse_handle_class_head): Likewise.
3129117395Skan	(primary): Use parse_xref_tag.
3130117395Skan	(class_head_decl): Use parse_handle_class_head.
3131117395Skan	(class_head_defn): Likewise.
3132117395Skan	* rtti.c (init_rtti_processing): Adjust call to xref_tag.
3133117395Skan	(build_dynamic_cast_1): Likewise.
3134117395Skan	(create_pseudo_type_info): Likewise.
3135117395Skan	(emit_support_tinfos): Likewise.
3136117395Skan	* typeck.c (build_object_ref): Adjust call to
3137117395Skan	build_x_component_ref.
3138117395Skan	(build_x_component_ref): Remove protect parameter.
3139117395Skan
3140117395Skan2002-06-25  Mark Mitchell  <mark@codesourcery.com>
3141117395Skan
3142117395Skan	* call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.
3143117395Skan	* class.c (handle_using_decl): Likewise.
3144117395Skan	(instantiate_type): Likewise.
3145117395Skan	* cp-tree.h (BASELINK_FUNCTIONS): New macro.
3146117395Skan	(xref_basetypes): Change prototype.
3147117395Skan	(begin_mem_initializers): New function.
3148117395Skan	(get_overloaded_fn): Likewise.
3149117395Skan	* decl.c (xref_basetypes): Simplify.
3150117395Skan	* error.c (dump_expr): Use BASELINK_FUNCTIONS.
3151117395Skan	* init.c (build_offset_ref): Likewise.
3152117395Skan	* parse.y (base_init): Use begin_mem_initializers().
3153117395Skan	(structsp): Adjust call to xref_basetypes.
3154117395Skan	* pt.c (determine_specialization): Use BASELINK_FUNCTIONS.
3155117395Skan	(instantiate_class_template): Adjust call to xref_basetypes.
3156117395Skan	* semantics.c (begin_mem_initializers): New function.
3157117395Skan	* tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS.
3158117395Skan	(really_overlaoded_fn): Likewise.
3159117395Skan	(get_overloaded_fn): New function.'
3160117395Skan	(get_first_fn): USe BASELINK_FUNCTIONS.
3161117395Skan
3162117395Skan2002-06-24  Mark Mitchell  <mark@codesourcery.com>
3163117395Skan
3164117395Skan	* cp-tree.h (SCALAR_TYPE_P): New macro.
3165117395Skan	(check_for_out_of_scope_variable): New function.
3166117395Skan	(at_class_scope_p): Likewise.
3167117395Skan	(finish_fname): Likewise.
3168117395Skan	* class.c (finish_struct): Use at_function_scope_p.
3169117395Skan	* decl.c (check_for_out_of_scope_variable): New function, split
3170117395Skan	out from do_identifier.
3171117395Skan	(finish_enum): Use at_function_scope_p.
3172117395Skan	* lex.c (do_identifier): Use check_for_out_of_scope_variable.
3173117395Skan	* parse.y (VAR_FUNC_NAME): Give it <ttype>.  Use finish_fname.
3174117395Skan	(primary): Use at_function_scope_p.
3175117395Skan	* search.c (at_class_scope_p): New function.
3176117395Skan	* semantics.c (finish_fname): Likewise.
3177117395Skan	(check_multiple_declarators): Use at_function_scope_p.
3178117395Skan
3179117395Skan2002-06-23  Mark Mitchell  <mark@codesourcery.com>
3180117395Skan
3181117395Skan	* parse.y (parse_scoped_id): New function.
3182117395Skan	(primary): Use it.
3183117395Skan	* cp-tree.h (do_scoped_id): Adjust declaration.
3184117395Skan	* lex.c (do_scoped_id): Remove call to yylex.
3185117395Skan	* decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
3186117395Skan	* typeck2.c (add_exception_specifier): Use tree_cons, rather than
3187117395Skan	expanding it inline.
3188117395Skan
3189102780Skan2002-06-23  Matt Thomas  <matt@3am-software.com>
3190102780Skan
3191102780Skan	* decl.c (finish_function): Change "#ifdef VMS_TARGET" to
3192102780Skan	"#if VMS_TARGET".
3193102780Skan
3194117395Skan2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3195117395Skan
3196117395Skan	* mangle.c (integer_type_codes): Const-ify.
3197117395Skan
3198102780Skan2002-06-20  Richard Henderson  <rth@redhat.com>
3199102780Skan
3200102780Skan	PR c++/6747
3201102780Skan	* typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
3202102780Skan	Call put_var_into_stack.
3203102780Skan
3204117395Skan2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3205117395Skan
3206117395Skan	* spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
3207117395Skan	array size calculation.
3208117395Skan
3209102780Skan2002-06-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3210102780Skan
3211102780Skan	PR c++/6892
3212102780Skan	* pt.c (tsubst_expr): Handle FILE_STMT.
3213102780Skan
3214102780Skan2002-06-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3215102780Skan
3216102780Skan	PR c++/6723
3217102780Skan	* pt.c (lookup_template_class): Don't build complete argument of
3218102780Skan	BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
3219102780Skan	argument.
3220102780Skan
3221117395Skan2002-06-19  Akim Demaille  <akim@epita.fr>
3222117395Skan
3223117395Skan	* parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with
3224117395Skan	decl.h's TYPENAME.
3225117395Skan	* spew.c, lex.c: Adjust.
3226117395Skan	* parse.y (explicit_instantiation): Add empty action to override
3227117395Skan	the default $$ = $1 where it introduces a type clash.
3228117395Skan
3229117395Skan2002-06-14  Jason Merrill  <jason@redhat.com>
3230117395Skan
3231117395Skan	* semantics.c (begin_for_stmt): Push the 'for' scope before
3232117395Skan	adding the FOR_STMT.
3233117395Skan
3234117395Skan	C++ ABI changes.
3235117395Skan	* class.c (build_base_field): Set DECL_PACKED.
3236117395Skan	(layout_class_type): Don't use tail padding of PODs.
3237117395Skan	* mangle.c (write_unqualified_name): Fix template conversion op
3238117395Skan	mangling.
3239117395Skan
3240102780Skan2002-06-16  Richard Henderson  <rth@redhat.com>
3241102780Skan
3242102780Skan	PR opt/6793
3243102780Skan	* tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
3244102780Skan	after template instantiation.
3245102780Skan
3246117395Skan2002-06-16  Richard Henderson  <rth@redhat.com>
3247117395Skan
3248117395Skan	* cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
3249117395Skan
3250117395Skan2002-06-15  Gabriel Dos Reis  <gdr@codesourcery.com>
3251117395Skan
3252117395Skan	* cp-tree.h (compiler_error): Remove declaration.
3253117395Skan	* lex.c (compiler_error): Remove definition.
3254117395Skan
3255117395Skan2002-06-14  Steve Ellcey  <sje@cup.hp.com>
3256117395Skan
3257117395Skan	* g++spec.c (LIBUNWIND): New.
3258117395Skan	(lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
3259117395Skan
3260117395Skan2002-06-13  Jessica Han  <jessica@cup.hp.com>
3261117395Skan
3262117395Skan	* class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
3263117395Skan	(build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
3264117395Skan	(build_vbase_offset_vtbl_entries): Likewise.
3265117395Skan	* rtti.c (build_headof): Likewise.
3266117395Skan	(get_tinfo_decl_dynamic): Likewise.
3267117395Skan	(create_pseudo_type_info): Likewise.
3268117395Skan
3269117395Skan2002-06-12  Stan Shebs  <shebs@apple.com>
3270117395Skan
3271117395Skan	* mpw-config.in: Remove file, no longer used.
3272117395Skan	* mpw-make.sed: Ditto.
3273117395Skan
3274117395Skan2002-06-07  Zack Weinberg  <zack@codesourcery.com>
3275117395Skan
3276117395Skan	* decl2.c: Update call to cpp_handle_option.
3277117395Skan
3278102780Skan2002-06-07  H.J. Lu  (hjl@gnu.org)
3279102780Skan
3280102780Skan	* decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
3281102780Skan
3282117395Skan2002-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
3283117395Skan
3284117395Skan	* error.c (cp_error_at): Fix typo.
3285117395Skan
3286117395Skan2002-06-04  Gabriel Dos Reis  <gdr@codesourcery.com>
3287117395Skan
3288117395Skan	* error.c (cp_diagnostic_starter): Adjust call.
3289117395Skan	(maybe_print_instantiation_context): Change prototype to take a
3290117395Skan	'diagnostic_info *'.
3291117395Skan	(print_instantiation_full_context): Likewise.
3292117395Skan	(print_instantiation_partial_context): Likewise.
3293117395Skan	(cp_diagnostic_starter): Likewise.
3294117395Skan	(cp_diagnostic_finalizer): Likewise.
3295117395Skan	(cp_print_error_function): Likewise.
3296117395Skan	(cp_printer): Take a secondary parameter as a 'text_info *'.
3297117395Skan	Remove output_state savings.  Adjust calls.
3298117395Skan
3299117395Skan2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
3300117395Skan
3301117395Skan	* pt.c (inline_parm_levels): Mark for GC.
3302117395Skan
3303117395Skan	* mangle.c (start_mangling): Allocate G.substitutions here...
3304117395Skan	(init_mangle): ... rather than here.
3305117395Skan	(finish_mangling): Clear the varray pointer when done with it.
3306117395Skan	* spew.c (yylexstring): Don't use VARRAY_FREE.
3307117395Skan	* search.c (bfs_walk): Don't use VARRAY_FREE.
3308117395Skan	* decl2.c (pending_statics): Use gengtype to mark.
3309117395Skan	(deferred_fns): Likewise.
3310117395Skan	(ssdf_decls): Likewise.
3311117395Skan	(init_decl2): Delete.
3312117395Skan	* decl.c (pop_from_top_level): Don't use VARRAY_FREE.
3313117395Skan	(cxx_init_decl_processing): Don't call init_decl2.
3314117395Skan	(cxx_pop_function_context): Don't use VARRAY_FREE.
3315117395Skan	* cp-tree.h (struct saved_scope): No need for special marking
3316117395Skan	of varrays.
3317117395Skan	(struct language_function): Likewise.
3318117395Skan	(local_classes): Use gengtype to mark.
3319117395Skan	(init_decl2): Delete prototype.
3320117395Skan	* class.c (init_class_processing): Don't use
3321117395Skan	ggc_add_tree_varray_root.
3322117395Skan	(build_vtbl_initializer): Don't use VARRAY_FREE.
3323117395Skan
3324117395Skan	* decl.c (typename_compare): Don't use same_type_p.
3325117395Skan
3326117395Skan	* decl.c: Include hashtab.h instead of hash.h.
3327117395Skan	(typename_hash): Update to use htab_h.
3328117395Skan	(typename_compare): Likewise.
3329117395Skan	(typename_htab): Use gengtype to mark.
3330117395Skan	(build_typename_type): Update to use htab_h.
3331117395Skan	* Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
3332117395Skan
3333117395Skan	* Make-lang.in (gt-cp-tree.h): New rule.
3334117395Skan	(cp/tree.o): Depend on gt-cp-tree.h.
3335117395Skan	* config-lang.in (gtfiles): Add cp/tree.c.
3336117395Skan	* tree.c: Include gt-cp-tree.h.
3337117395Skan	(list_hash_table): Use gengtype to mark.
3338117395Skan	(init_tree): Use gengtype to mark trees.
3339117395Skan
3340117395Skan	* Make-lang.in (cp/decl.o): Add debug.h dependency.
3341117395Skan	* call.c (struct z_candidate): Use gengtype.
3342117395Skan	(USER_CONV_CAND): Use WRAPPER_ZC.
3343117395Skan	(convert_class_to_reference): Use build_zc_wrapper.
3344117395Skan	(build_type_conversion_1): Likewise.
3345117395Skan	(build_over_call): Use WRAPPER_ZC.
3346117395Skan	(add_warning): Use build_zc_wrapper.
3347117395Skan	* cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
3348117395Skan	* cp-tree.h (struct lang_identifier): Use gengtype.
3349117395Skan	(struct template_parm_index_s): Likewise.
3350117395Skan	(struct ptrmem_cst): Likewise.
3351117395Skan	(struct tree_binding): Likewise.
3352117395Skan	(struct tree_overload): Likewise.
3353117395Skan	(struct tree_srcloc): Likewise.
3354117395Skan	(struct tree_wrapper): Likewise.  Also modify to have a pointer
3355117395Skan	to struct z_candidate rather than void.
3356117395Skan	(enum cp_tree_node_structure_enum): New.
3357117395Skan	(union lang_tree_node): New.
3358117395Skan	(cxx_mark_tree): Delete prototype.
3359117395Skan	(cp_tree_node_structure): New prototype.
3360117395Skan	(build_ptr_wrapper): Delete prototype.
3361117395Skan	(build_int_wrapper): Delete prototype.
3362117395Skan	(build_zc_wrapper): New prototype.
3363117395Skan	* decl.c: Include debug.h
3364117395Skan	(cxx_mark_tree): Delete.
3365117395Skan	(cp_tree_node_structure): New.
3366117395Skan	* tree.c (build_ptr_wrapper): Delete.
3367117395Skan	(build_int_wrapper): Delete.
3368117395Skan	(build_zc_wrapper): New.
3369117395Skan
3370117395Skan	* cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
3371117395Skan	Correct typo.  Patch from k_fukui@highway.ne.jp.
3372117395Skan
3373117395Skan	* semantics.c (current_stmt_tree): Update for change to
3374117395Skan	struct language_function.
3375117395Skan	(finish_mem_initializers): Likewise.
3376117395Skan	* decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
3377117395Skan	* cp-tree.h (struct language_function): Rename from
3378117395Skan	cp_language_function.  Change all uses.
3379117395Skan	(cp_function_chain): Don't need to cast.
3380117395Skan
3381117395Skan	* class.c (duplicate_tag_error): Reset discriminator.
3382117395Skan	(check_bases_and_members): Update for data structure changes.
3383117395Skan	* cp-tree.h (struct lang_id2): Use gengtype.
3384117395Skan	(flagged_type_tree): Likewise.
3385117395Skan	(SET_LANG_ID): Use GGC on struct lang_id2.
3386117395Skan	(struct cp_language_function): Use gengtype.  Remove field
3387117395Skan	'x_vcalls_possible_p'.
3388117395Skan	(current_vcalls_possible_p): Delete.
3389117395Skan	(struct lang_type_header): New.
3390117395Skan	(struct lang_type_class): Rename from struct lang_type.  Include
3391117395Skan	struct lang_type_header.
3392117395Skan	(struct lang_type_ptrmem): New.
3393117395Skan	(struct lang_type): New.
3394117395Skan	(LANG_TYPE_CLASS_CHECK): New.  Use it in all the appropriate macros.
3395117395Skan	(LANG_TYPE_PTRMEM_CHECK): New.  Use it in all the appropriate macros.
3396117395Skan	(TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
3397117395Skan	(struct lang_decl_flags): Use gengtype.  Add discriminators.
3398117395Skan	(struct lang_decl): Use gengtype.  Add and use discriminators.
3399117395Skan	Update the macros that reference moved fields.
3400117395Skan	(LANG_DECL_U2_CHECK): New function.  Use it when appropriate.
3401117395Skan	(SET_DECL_THUNK_P): Set discriminator too.
3402117395Skan	(clear_inline_text_obstack): Delete prototype.
3403117395Skan	(finish_inline_definitions): Delete prototype.
3404117395Skan	(mark_pending_inlines): Delete prototype.
3405117395Skan	(lang_check_failed): New prototype.
3406117395Skan	* decl.c (struct named_label_use_list): Use gengtype.
3407117395Skan	(struct named_label_list): Likewise.
3408117395Skan	(mark_binding_level): Delete.
3409117395Skan	(mark_named_label_lists): Delete.
3410117395Skan	(push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
3411117395Skan	(cxx_init_decl_processing): Use generated marker routine.
3412117395Skan	(begin_destructor_body): Delete dead set to
3413117395Skan	current_vcalls_possible_p.
3414117395Skan	(mark_lang_function): Delete.
3415117395Skan	(mark_cp_function_context): Delete.
3416117395Skan	(lang_mark_tree): Use generated marker routines.
3417117395Skan	* decl2.c (start_objects): Set discriminator when setting
3418117395Skan	GLOBAL_INIT_PRIORITY.
3419117395Skan	* lex.c (retrofit_lang_decl): Set discriminators.
3420117395Skan	(copy_lang_type): Update for changes to lang_type structure.
3421117395Skan	(cp_make_lang_type): Set discriminator.
3422117395Skan	* parse.y: Use gengtype on YYLVAL.  Don't use dots in identifiers.
3423117395Skan	* search.c: Include ggc.h.
3424117395Skan	* semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
3425117395Skan	(finish_inline_definitions): Delete.
3426117395Skan	* spew.c (struct token): Use gengtype.
3427117395Skan	(struct token_chunk): New.
3428117395Skan	(struct unparsed_text): Use gengtype.  Store tokens in chunks.
3429117395Skan	(struct feed): Use gengtype.
3430117395Skan	(feed_obstack): Delete.
3431117395Skan	(feed): Mark as GC root.
3432117395Skan	(pending_inlines): Mark as GC root.
3433117395Skan	(pending_inlines_tail): Likewise.
3434117395Skan	(processing_these_inlines): Likewise.
3435117395Skan	(token_obstack): Make static.
3436117395Skan	(first_token): Likewise.
3437117395Skan	(init_spew): Don't initialize deleted things; use gengtype for roots.
3438117395Skan	(clear_inline_text_obstack): Delete.
3439117395Skan	(feed_input): Use GC for struct feed.  Update for changes to
3440117395Skan	struct unparsed_text.
3441117395Skan	(mark_pending_inlines): Delete.
3442117395Skan	(next_token): Rename from add_token.  Change all callers.  Update
3443117395Skan	for changes to struct unparsed_text.
3444117395Skan	(space_for_token): New.
3445117395Skan	(remove_last_token): New.
3446117395Skan	(alloc_unparsed_text): New.
3447117395Skan	(snarf_block): Take an unparsed_text.  Update for changes to struct
3448117395Skan	unparsed_text.
3449117395Skan	(snarf_method): Update for changes to struct unparsed_text.
3450117395Skan	(snarf_defarg): Update for changes to struct unparsed_text.
3451117395Skan	* tree.c (lang_check_failed): New.
3452117395Skan
3453117395Skan	* Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
3454117395Skan	gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
3455117395Skan	(cp/spew.o): Add dependency on gt-<filename>.h.
3456117395Skan	(cp/decl2.o): Add dependency on gt-<filename>.h.
3457117395Skan	(cp/call.o): Add dependency on gt-<filename>.h.
3458117395Skan	(cp/pt.o): Add dependency on gt-<filename>.h.
3459117395Skan	(cp/repo.o): Add dependency on gt-<filename>.h.
3460117395Skan	(cp/parse.o): Add dependency on gt-<filename>.h.
3461117395Skan	* call.c: Use gengtype for roots.
3462117395Skan	* config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
3463117395Skan	decl2.c parse.y pt.c repo.c spew.c.
3464117395Skan	* cp-tree.h: Use gengtype for roots.
3465117395Skan	(struct saved_scope): Use GGC, gengtype.
3466117395Skan	(cp_parse_init): Delete prototype.
3467117395Skan	(init_pt): Delete prototype.
3468117395Skan	* decl.c: Use gengtype for roots.
3469117395Skan	(mark_saved_scope): Delete.
3470117395Skan	(cxx_init_decl_processing): Don't call deleted initilisation
3471117395Skan	routines.
3472117395Skan	(signed_size_zero_node): Delete, unused.
3473117395Skan	* decl.h: Use gengtype for roots.
3474117395Skan	* decl2.c: Use gengtype for roots.
3475117395Skan	* lex.h: Use gengtype for roots.
3476117395Skan	* parse.y: Use gengtype for roots.
3477117395Skan	(cp_parse_init): Delete.
3478117395Skan	* pt.c: Use gengtype for roots.
3479117395Skan	(init_pt): Delete.
3480117395Skan	* repo.c: Use gengtype for roots.
3481117395Skan	* spew.c: Use gengtype for roots.
3482117395Skan
3483117395Skan	* Make-lang.in: Allow for filename changes.  Add gtype-cp.h.
3484117395Skan	(cp/decl.o): Add dependency on gtype-cp.h.
3485117395Skan	* decl.c: Remove use of add_deletable_root, use GTY marker instead.
3486117395Skan	Include gtype-cp.h.  Allow for filename changes.
3487117395Skan
3488117395Skan	* Make-lang.in (cp/gt-decl.h): Generate using gengtype.
3489117395Skan	(cp/decl.o): Add cp/gt-decl.h dependency.
3490117395Skan	* config-lang.in (gtfiles): New.
3491117395Skan	* tree.h: Rename struct binding_level to struct cp_binding_level.
3492117395Skan	* decl.c: Rename struct binding_level to struct cp_binding_level.
3493117395Skan	Include cp/gt-decl.h.
3494117395Skan	(struct cp_binding_level): Use gengtype.
3495117395Skan	(make_binding_level): Use GGC on struct cp_binding_level.
3496117395Skan	(mark_binding_level): Use gt_ggc_m_cp_binding_level.
3497117395Skan	(cxx_init_decl_processing): Mark free_binding_level as
3498117395Skan	deletable.
3499117395Skan
3500117395Skan	* decl.c (mark_cp_function_context): Update calling sequence.
3501117395Skan
3502117395Skan	* decl.c (start_function): Don't free 'struct
3503117395Skan	cp_language_function'.
3504117395Skan	(pop_cp_function_context): Likewise.
3505117395Skan	(save_function_data): Allocate it using GC.
3506117395Skan	* semantics.c (genrtl_start_function): Don't free 'struct
3507117395Skan	cp_language_function'.
3508117395Skan
3509117395Skan2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
3510117395Skan
3511117395Skan	* lang-specs.h: Use cpp_debug_options.
3512117395Skan
3513117395Skan2002-05-28  Zack Weinberg  <zack@codesourcery.com>
3514117395Skan
3515117395Skan	* mangle.c, tree.c: Include real.h.
3516117395Skan	* Make-lang.in: Update dependency lists.
3517117395Skan
3518117395Skan2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3519117395Skan
3520117395Skan	* lex.c: Don't include c-lex.h.
3521117395Skan	* parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
3522117395Skan
3523102780Skan2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3524102780Skan
3525117395Skan	* spew.c (yyungetc, snarf_block): Remove indent_level handling.
3526117395Skan
3527117395Skan2002-05-22  Richard Henderson  <rth@redhat.com>
3528117395Skan
3529117395Skan	* decl.c (obscure_complex_init): Check for VAR_DECL
3530117395Skan	before using DECL_THREAD_LOCAL.
3531117395Skan
3532117395Skan2002-05-22  Richard Henderson  <rth@redhat.com>
3533117395Skan
3534117395Skan	* decl.c (check_tag_decl): Handle RID_THREAD.
3535117395Skan	(obscure_complex_init): Reject run-time init of tls.
3536117395Skan	(grokvardecl, grokdeclarator): Handle RID_THREAD.
3537117395Skan	* lex.c (reswords): Add __thread.
3538117395Skan	(rid_to_yy): Map RID_THREAD to SCSPEC.
3539117395Skan
3540117395Skan2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3541117395Skan
3542102780Skan	* cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3543102780Skan	* cp-tree.h (cxx_post_options): Kill.
3544102780Skan	* cp-lex.c (cxx_post_options): Kill.
3545102780Skan
3546117395Skan2002-05-21  Richard Henderson  <rth@redhat.com>
3547117395Skan
3548117395Skan	* lex.c (rid_to_yy): Add RID_THREAD.
3549117395Skan
3550117395Skan2002-05-21  Alexandre Oliva  <aoliva@redhat.com>
3551117395Skan
3552117395Skan	* init.c (build_vec_init): Test for trivial copy-assignment when
3553117395Skan	copy-assigning arrays.
3554117395Skan
3555117395Skan2002-05-20  Andreas Jaeger  <aj@suse.de>
3556117395Skan
3557117395Skan	* init.c (build_default_init): Remove unused variable.
3558117395Skan
3559117395Skan2002-05-20  Alexandre Oliva  <aoliva@redhat.com>
3560117395Skan
3561117395Skan	* call.c (any_strictly_viable): New.
3562117395Skan	(build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
3563117395Skan
3564102780Skan2002-05-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3565102780Skan
3566102780Skan	* error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
3567102780Skan
3568102780Skan2002-05-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3569102780Skan
3570102780Skan	PR c++/186, DR 259
3571102780Skan	* pt.c (do_decl_instantiation): Don't complain explicit
3572102780Skan	instantiation after explicit specialization.
3573102780Skan	(do_type_instantiation): Likewise.
3574102780Skan
3575117395Skan2002-05-19  Alexandre Oliva  <aoliva@redhat.com>
3576102780Skan
3577117395Skan	* cp-tree.h (complete_type_or_diagnostic): Changed prototype,
3578117395Skan	renamed from...
3579117395Skan	(complete_type_or_else): ... this.  Redefined as macro.
3580117395Skan	(cxx_incomplete_type_diagnostic): Declare.
3581117395Skan	(cxx_incomplete_type_error): Define as macro.
3582117395Skan	* init.c (build_delete): Warn about incomplete types other than
3583117395Skan	void, and use the built-in operator delete for them.
3584117395Skan	* typeck.c (complete_type_or_diagnostic): Renamed from
3585117395Skan	complete_type_or_else.  Added warn_only argument, passed to...
3586117395Skan	* typeck2.c (cxx_incomplete_type_diagnostic): ... this.  Print
3587117395Skan	warnings or errors depending on new warn_only argument.  Renamed
3588117395Skan	from...
3589117395Skan	(cxx_incomplete_type_error): ... this.  New implementation in
3590117395Skan	terms of cxx_incomplete_type_diagnostic.
3591102780Skan
3592117395Skan2002-05-18  Jason Merrill  <jason@redhat.com>
3593102780Skan
3594117395Skan	PR c++/6611
3595117395Skan	* decl2.c (import_export_decl): If we clear
3596117395Skan	DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
3597117395Skan
3598117395Skan2002-05-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3599117395Skan
3600117395Skan	PR c++/6620
3601117395Skan	* pt.c (verify_class_unification): Don't check if PARM is template
3602117395Skan	parameter dependent.  Simplify.
3603117395Skan	(unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
3604117395Skan	parameter dependent expression.
3605117395Skan
3606117395Skan2002-05-14  Jason Merrill  <jason@redhat.com>
3607117395Skan
3608117395Skan	* rtti.c (get_tinfo_decl): Don't call comdat_linkage.
3609117395Skan	Do set DECL_COMDAT.
3610117395Skan	(synthesize_tinfo_var): Take the public decl.
3611117395Skan	(create_real_tinfo_var): Likewise.  Check DECL_COMDAT.
3612117395Skan	(emit_tinfo_decl): Adjust.  Call import_export_decl.
3613117395Skan	* decl2.c (import_export_decl): Simplify tinfo decl handling.
3614117395Skan
3615117395Skan2002-05-14  Alexandre Oliva  <aoliva@redhat.com>
3616117395Skan
3617102780Skan	* cp-tree.h (struct lang_type): Added non_zero_init.
3618102780Skan	(CLASSTYPE_NON_ZERO_INIT_P): New macro.
3619102780Skan	(zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
3620102780Skan	* class.c (check_field_decls): Test non_zero_init.
3621102780Skan	* cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
3622102780Skan	zero-to-NULL conversions.
3623102780Skan	* decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
3624102780Skan	type that needs zero-initialization without zeros.
3625102780Skan	(check_initializer_decl): Compute zero-initializer for types
3626102780Skan	that require a non-trivial one.
3627102780Skan	* init.c (build_forced_zero_init): New function.
3628102780Skan	(build_default_init): Use it.
3629102780Skan	* tree.c (zero_init_p): New function.
3630102780Skan	* typeck2.c (force_store_init_value): New function.
3631102780Skan	(process_init_constructor): Create non-trivial zero-initializers
3632102780Skan	for array members and class fields.
3633102780Skan
3634117395Skan2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3635102780Skan
3636117395Skan	* lang-specs.h: Remove redundant -lang-c++.
3637102780Skan
3638117395Skan2002-05-13  Jason Merrill  <jason@redhat.com>
363996263Sobrien
3640117395Skan	* class.c (build_vtbl_ref_1): Use fixed_type_or_null.
3641117395Skan	(fixed_type_or_null): See through reference vars.
3642117395Skan	(build_base_path): Vtable contents are constant.
3643117395Skan	* typeck.c (get_member_function_from_ptrfunc): Likewise.
364496263Sobrien
3645117395Skan2002-05-12  Jason Merrill  <jason@redhat.com>
364696263Sobrien
3647117395Skan	* cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
3648117395Skan	structs are safe.
364996263Sobrien
3650117395Skan2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
365196263Sobrien
3652117395Skan	* cp-tree.h (flag_ansi): Remove.
3653117395Skan	* decl2.c (flag_ansi): Remove.
3654117395Skan	(cxx_decode_option): Set flag_iso and flag_undef.
365596263Sobrien
3656117395Skan2002-05-09  Jason Merrill  <jason@redhat.com>
365796263Sobrien
3658117395Skan	* typeck.c (get_member_function_from_ptrfunc): Reorganize.
3659117395Skan	Use subtraction rather than a bitmask to get the index.
3660117395Skan	* cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
366196263Sobrien
3662117395Skan	* pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
3663117395Skan
3664117395Skan2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3665117395Skan
3666117395Skan	* Make-lang.in (decl2.o): Update.
3667117395Skan	* cp-tree.h (warn_multichar): Remove.
3668117395Skan	* decl2.c: Include c-common.h.
3669117395Skan	(warn_multichar): Remove.
3670117395Skan
3671117395Skan2002-05-03  Jason Merrill  <jason@redhat.com>
3672117395Skan
3673117395Skan	* tree.c (build_cplus_array_type): Only const and volatile get
3674117395Skan	special handling.
3675117395Skan
3676117395Skan	* decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
3677117395Skan
367896263Sobrien2002-04-30  Mark Mitchell  <mark@codesourcery.com>
367996263Sobrien
368096263Sobrien	ABI change, returning simple classes from functions.
368196263Sobrien	* class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
368296263Sobrien	TYPE_HAS_TRIVIAL_INIT_REF is false or
368396263Sobrien	TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
368496263Sobrien
368596263Sobrien2002-04-30  Jason Merrill  <jason@redhat.com>
368696263Sobrien
3687102780Skan	PR debug/6436
368896263Sobrien	* decl.c (grokdeclarator): Don't override TYPE_NAME of an
368996263Sobrien	anonymous class with a typedef if there are attributes.
369096263Sobrien
369196263Sobrien2002-04-29  Paul Eggert  <eggert@twinsun.com>
369296263Sobrien
369396263Sobrien	* parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
369496263Sobrien
369596263Sobrien2002-04-29  Jakub Jelinek  <jakub@redhat.com>
369696263Sobrien
369796263Sobrien	PR c++/6477
369896263Sobrien	* decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
369996263Sobrien	non-NULL first.
370096263Sobrien
370196263Sobrien2002-04-29  Mark Mitchell  <mark@codesourcery.com>
370296263Sobrien
370396263Sobrien	PR c++/6492
370496263Sobrien	* pt.c (tsubst_friend_class): If the friend has an explicit scope,
370596263Sobrien	enter that scope before name lookup.
370696263Sobrien
370796263Sobrien	PR c++/6486
370896263Sobrien	* method.c (do_build_copy_constructor): Avoid building
370996263Sobrien	cv-qualified reference types.
371096263Sobrien
371196263Sobrien2002-04-29  Nathan Sidwell  <nathan@codesourcery.com>
371296263Sobrien
371396263Sobrien	PR c++/5719
3714104752Skan	* decl.c (grok_op_properties): Assignment ops don't have to return
371596263Sobrien	by value. operator% should.
371696263Sobrien
371796263Sobrien2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
371896263Sobrien
371996263Sobrien	PR c/6343
372096263Sobrien	* decl.c (duplicate_decls): Call merge_weak.
372196263Sobrien
3722117395Skan2002-04-26  Richard Henderson  <rth@redhat.com>
3723117395Skan
3724117395Skan	* parse.y (malloced_yyss, malloced_yyvs): New.
3725117395Skan	(yyoverflow): Re-add.  Set them.
3726117395Skan	(free_parser_stacks): New.
3727117395Skan
372896263Sobrien2002-04-26  Mark Mitchell  <mark@codesourcery.com>
372996263Sobrien
3730117395Skan	PR c++/6497
373196263Sobrien	* method.c (do_build_assign_ref): Pass a derivation to
373296263Sobrien	build_method_call when calling base class assignment operators.
373396263Sobrien
3734117395Skan2002-04-26  Richard Henderson  <rth@redhat.com>
3735117395Skan
3736117395Skan	* parse.y (yyoverflow): Revert.
3737117395Skan
3738117395Skan2002-04-26  Richard Henderson  <rth@redhat.com>
3739117395Skan
3740117395Skan	PR c/3581
3741117395Skan	* parse.y (string): Remove.  Update all uses to use STRING
3742117395Skan	instead, and not call combine_strings.
3743117395Skan	* rtti.c (tinfo_name): Use fix_string_type.
3744117395Skan	* semantics.c (finish_asm_stmt): Don't call combine_strings.
3745117395Skan	* spew.c (yylexstring): New.
3746117395Skan	(read_token): Use it.
3747117395Skan
3748117395Skan2002-04-25  Richard Henderson  <rth@redhat.com>
3749117395Skan
3750117395Skan	PR c/2161
3751117395Skan	* parse.y (yyoverflow): New.
3752117395Skan
3753117395Skan2002-04-25  Jason Merrill  <jason@redhat.com>
3754117395Skan
3755117395Skan	PR c++/5607
3756117395Skan	* search.c (check_final_overrider): No longer static.
3757117395Skan	* class.c (update_vtable_entry_for_fn): Call it.
3758117395Skan	* cp-tree.h: Adjust.
3759117395Skan
3760117395Skan2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3761117395Skan
3762117395Skan	* cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
3763117395Skan	* cp-tree.h (cxx_set_yydebug): Die.
3764117395Skan	* lex.c (YYDEBUG): Get from c-lex.h.
3765117395Skan	(cxx_set_yydebug): Remove.
3766117395Skan	* parse.y: Include c-lex.h.
3767117395Skan	(YYDEBUG): Get from c-lex.h.
3768117395Skan
376996263Sobrien2002-04-24  Mark Mitchell  <mark@codesourcery.com>
377096263Sobrien
3771117395Skan	PR c++/6438.
377296263Sobrien	* cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
377396263Sobrien	void.
377496263Sobrien
3775117395Skan2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
3776117395Skan
3777117395Skan	* cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
3778117395Skan	LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
3779117395Skan	Redefine.
3780117395Skan	* cp-tree.h (cp_attribute_table): Rename.
3781117395Skan	* decl.c (lang_attribute_table): Remove declaration.
3782117395Skan	(cxx_init_decl_processing): Don't set it.
3783117395Skan	* tree.c (cp_attribute_table): Rename.
3784117395Skan
378596263Sobrien2002-04-24  Jason Merrill  <jason@redhat.com>
378696263Sobrien
378796263Sobrien	PR c++/6331
378896263Sobrien	* method.c (do_build_copy_constructor): Use cp_build_qualified_type.
378996263Sobrien	* typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
379096263Sobrien	The pedwarn for array assignment is now unconditional.
379196263Sobrien	* tree.c (build_cplus_array_type_1): Still process simple array types
379296263Sobrien	normally in templates.
379396263Sobrien
379496263Sobrien	PR c++/6395
379596263Sobrien	* decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
379696263Sobrien	stuff for comdats.
379796263Sobrien
379896263Sobrien2002-04-23  Jakub Jelinek  <jakub@redhat.com>
379996263Sobrien
380096263Sobrien	* parse.y (check_class_key): Allow KEY to be union/enum/struct/class
380196263Sobrien	node with attributes.
380296263Sobrien
380396263Sobrien2002-2-23  David O'Brien  <obrien@FreeBSD.org>
380496263Sobrien
380596263Sobrien	* g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
380696263Sobrien	Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
380796263Sobrien
380896263Sobrien2002-04-23  Mark Mitchell  <mark@codesourcery.com>
380996263Sobrien
381096263Sobrien	PR c++/6256:
381196263Sobrien	* pt.c (tsubst_friend_class): Handle templates with explicit
381296263Sobrien	nested names.
381396263Sobrien
381496263Sobrien	PR c++/6331:
381596263Sobrien	* typeck.c (merge_types): Remember the cv-qualification of pointer
381696263Sobrien	types when merging them.
381796263Sobrien
3818117395Skan2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3819117395Skan
3820117395Skan	* cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
3821117395Skan	LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
3822117395Skan	* cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
3823117395Skan	cxx_mark_function_context): New.
3824117395Skan	* decl.c (push_cp_function_context, pop_cp_function_context,
3825117395Skan	mark_cp_function_context): Rename for consistency.
3826117395Skan	(cxx_init_decl_processing): Don't set old hooks.
3827117395Skan
3828117395Skan2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
3829117395Skan
3830117395Skan	* call.c (convert_type_from_ellipsis): Rename, update.
3831117395Skan	* cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
3832117395Skan	* cp-tree.h (convert_type_from_ellipsis): Rename.
3833117395Skan	* decl.c (cxx_init_decl_processing): Don't set hook.
3834117395Skan
3835117395Skan2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
3836117395Skan
3837117395Skan	* call.c (build_new_method_call): Update.
3838117395Skan	* cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
3839117395Skan	* cp-tree.h (cxx_incomplete_type_error): New.
3840117395Skan	* decl.c (grokdeclarator, grokparms): Update.
3841117395Skan	* decl2.c (check_classfn): Update.
3842117395Skan	* pt.c (tsubst): Update.
3843117395Skan	* typeck.c (complete_type_or_else, expr_sizeof,
3844117395Skan	decay_conversion): Update.
3845117395Skan	* typeck2.c (incomplete_type_error): Rename.
3846117395Skan	(add_exception_specifier): Update.
3847117395Skan
384896263Sobrien2002-04-18  Jason Merrill  <jason@redhat.com>
384996263Sobrien
385096263Sobrien	PR c++/5658
385196263Sobrien	* search.c (setup_class_bindings): A class template qualifies as a
385296263Sobrien	type binding.
385396263Sobrien
385496263Sobrien2002-04-17  Jakub Jelinek  <jakub@redhat.com>
385596263Sobrien
385696263Sobrien	PR c++/6316
385796263Sobrien	* decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
385896263Sobrien	before expanding.
385996263Sobrien
386096263Sobrien2002-04-16  Mark Mitchell  <mark@codesourcery.com>
386196263Sobrien
386296263Sobrien	* init.c (begin_init_stmts): Remove commented out code.
386396263Sobrien	(finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
386496263Sobrien	* semantics.c (begin_gobal_stmt_expr): Adjust call to
386596263Sobrien	expand_start_stmt_expr.
3866104752Skan
386796263Sobrien2002-04-15  Mark Mitchell  <mark@codesourcery.com>
386896263Sobrien
386996263Sobrien	* decl.c (register_dtor_fn): Pass the address of dso_handle, not
387096263Sobrien	dso_handle itself, to __cxa_atexit.
387196263Sobrien
3872117395Skan2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
3873117395Skan
3874117395Skan	* error.c (cxx_print_error_function): Adjust call to macros.
3875117395Skan
387696263Sobrien2002-04-14  Jakub Jelinek  <jakub@redhat.com>
387796263Sobrien
387896263Sobrien	* class.c (layout_virtual_bases): Do all dsize computation on trees.
387996263Sobrien
3880117395Skan2002-04-14  Jason Merrill  <jason@redhat.com>
3881117395Skan
3882117395Skan	* typeck.c (get_member_function_from_ptrfunc): Don't do
3883117395Skan	gratuitious division and multiplication on
3884117395Skan	ptrmemfunc_vbit_in_delta targets.
3885117395Skan
388696263Sobrien2002-04-12  Mark Mitchell  <mark@codesourcery.com>
388796263Sobrien
388896263Sobrien	PR c++/5373.
388996263Sobrien	* semantics.c (finish_expr_stmt): Remember the type of the
389096263Sobrien	expression before any conversions are performed.
389196263Sobrien
3892117395Skan2002-04-12  Mark Mitchell  <mark@codesourcery.com>
3893117395Skan
389496263Sobrien	PR c++/5189.
389596263Sobrien	* call.c (add_template_candidate_real): Do not treat member
389696263Sobrien	templates as copy constructors.
389796263Sobrien
3898117395Skan2002-04-12  Mark Mitchell  <mark@codesourcery.com>
3899117395Skan
390096263Sobrien	* decl.c (duplicate_decls): Do not copy the RTL for a variable
390196263Sobrien	declaration if the old variable had an incomplete type and the new
390296263Sobrien	variable does not.
390396263Sobrien	(complete_vars): Do not call layout_decl for completed variables.
390496263Sobrien
3905117395Skan2002-04-12  Richard Sandiford  <rsandifo@redhat.com>
3906117395Skan
3907117395Skan	* decl.c (duplicate_decls): Don't try to unify an implicit typedef
3908117395Skan	with an explicit one.
3909117395Skan	(follow_tag_typedef): New.
3910117395Skan	(lookup_tag): Use it to extract the tag of an explicit typedef.
3911117395Skan	(xref_tag): Likewise.
3912117395Skan
391396263Sobrien2002-04-11  Andrew Haley  <aph@redhat.com>
391496263Sobrien
3915102780Skan	* typeck.c (type_after_usual_arithmetic_conversions):
3916102780Skan	If two types have the same variant, return immediately.
3917104752Skan	When two floating-point operands are the same precision:
3918102780Skan	  convert to float if one of the operands is float;
3919102780Skan	  if neither operand is one of the standard types, return the type
3920102780Skan	  of the first operand.
3921104752Skan
392296263Sobrien2002-04-10  Nathan Sidwell  <nathan@codesourcery.com>
392396263Sobrien
392496263Sobrien	PR c++/5507
392596263Sobrien	* decl.c (make_typename_type): Remove implicit typenameness.
392696263Sobrien
392796263Sobrien2002-04-09  Jason Merrill  <jason@redhat.com>
392896263Sobrien
392996263Sobrien	PR optimization/6189
393096263Sobrien	* semantics.c (genrtl_start_function): Don't free
393196263Sobrien	DECL_SAVED_FUNCTION_DATA for inline functions.
393296263Sobrien
3933117395Skan	* init.c (build_member_call): For now, don't convert to
3934117395Skan	intermediate base if it would cause an error.
3935117395Skan
393696263Sobrien2002-04-08  Paolo Carlini  <pcarlini@unitus.it>
393796263Sobrien
393896263Sobrien	* parse.y (namespace_qualifier, maybe_identifier,
393996263Sobrien	begin_explicit_instantiation, end_explicit_instantiation,
394096263Sobrien	apparent_template_type, .finish_template_type,
394196263Sobrien	do_id, maybe_init, defarg_again, component_decl_1):
394296263Sobrien	Add ending ';', in accordance with POSIX.
394396263Sobrien
394496263Sobrien2002-04-06  Mark Mitchell  <mark@codesourcery.com>
394596263Sobrien
394696263Sobrien	PR c++/5571
394796263Sobrien	* class.c (layout_class_type): Remember incomplete static
394896263Sobrien	variables.
394996263Sobrien	(finish_struct_1): Call complete_vars, not
395096263Sobrien	hack_incomplete_structures.
395196263Sobrien	* cp-tree.h (hack_incomplete_structures): Rename to ...
395296263Sobrien	(complete_vars): ... this.
395396263Sobrien	(struct saved_scope): Remove incomplete.
395496263Sobrien	(namespace_scope_incomplete): Remove.
395596263Sobrien	* decl.c (struct binding_level): Remove incomplete.
395696263Sobrien	(incomplete_vars): New variable.
395796263Sobrien	(mark_binding_level): Don't mark incomplete.
395896263Sobrien	(print_binding_level): Don't print it.
395996263Sobrien	(mark_saved_scope): Don't mark incomplete.
396096263Sobrien	(pushdecl): Use maybe_register_incopmlete_var.
396196263Sobrien	(cxx_init_decl_processing): Register incomplete_vars for GC.
396296263Sobrien	(start_decl_1): Clarify error message.
396396263Sobrien	(hack_incomplete_vars): Remove.
396496263Sobrien	(maybe_register_incomplete_var): New function.
396596263Sobrien	(complete_vars): Likewise.
396696263Sobrien
396796263Sobrien2002-04-06  Jason Merrill  <jason@redhat.com>
396896263Sobrien
396996263Sobrien	PR c++/4934
397096263Sobrien	* error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
397196263Sobrien	set before checking it.
397296263Sobrien
3973117395Skan	PR c++/525
3974117395Skan	* init.c (build_member_call): Use build_scoped_ref.
3975117395Skan	(resolve_offset_ref): Likewise.
3976117395Skan	* call.c (build_scoped_method_call): Likewise.
3977117395Skan	* tree.c (maybe_dummy_object): Kludge around current_class_type being
3978117395Skan	wrong.
3979117395Skan	* typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
3980117395Skan	* cp-tree.h: Adjust.
3981117395Skan
3982117395Skan	* init.c (push_base_cleanups): Just use build_scoped_method_call.
3983117395Skan
398496263Sobrien	PR c++/6179
3985104752Skan	* method.c (implicitly_declare_fn): Pass unqualified type to
398696263Sobrien	synthesize_exception_spec.
398796263Sobrien
3988117395Skan2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
398996263Sobrien
3990117395Skan	* cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
3991117395Skan	* cvt.c: Update comment.
3992117395Skan	* init.c (expand_cleanup_for_base): Update.
3993117395Skan	* semantics.c (finish_parenthesized_expr): Update.
3994117395Skan	* typeck.c (cp_truthvalue_conversion): Update.
399596263Sobrien
3996117395Skan2002-04-04  Jason Merrill  <jason@redhat.com>
3997117395Skan
3998117395Skan	* semantics.c (finish_eh_cleanup): New fn.
3999117395Skan	* cp-tree.h: Add prototype.
4000117395Skan	* init.c (perform_member_init, expand_cleanup_for_base): Use
4001117395Skan	finish_eh_cleanup.
4002117395Skan	* cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
4003117395Skan	* cp-tree.h: Remove references.
4004117395Skan	* decl.c (begin_constructor_body, end_constructor_body): Likewise.
4005117395Skan	* dump.c (cp_dump_tree): Likewise.
4006117395Skan	* pt.c (tsubst_expr): Likewise.
4007117395Skan	* semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove.
4008117395Skan	(cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT.
4009117395Skan	* tree.c (cp_statement_code_p): Likewise.
4010117395Skan
4011117395Skan	* init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup.
4012117395Skan
401396263Sobrien	PR c++/5636
401496263Sobrien	* semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
401596263Sobrien	cleanup for nrv.
401696263Sobrien
401796263Sobrien	PR c++/5104
401896263Sobrien	* typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
401996263Sobrien	specifiers.
402096263Sobrien	[METHOD_TYPE]: Use same code as FUNCTION_TYPE.
402196263Sobrien
4022117395Skan2002-04-03  Richard Henderson  <rth@redhat.com>
4023117395Skan
4024117395Skan	* cp-lang.c (cxx_warn_unused_global_decl): New.
4025117395Skan	(LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
4026117395Skan
4027117395Skan2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4028117395Skan
4029117395Skan	* cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine.
4030117395Skan	* tree.c (init_tree): Don't set hook.
4031117395Skan
403296263Sobrien2002-04-03  Roger Sayle  <roger@eyesopen.com>
403396263Sobrien
403496263Sobrien	PR c++/5998:
403596263Sobrien	* decl.c (duplicate_decls): Don't mess with assembler names when
403696263Sobrien	redeclaring builtin functions as static.
403796263Sobrien
4038117395Skan2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
4039117395Skan
4040117395Skan	* call.c (build_addr_func): Update.
4041117395Skan	* class.c (resolve_address_of_overloaded_function): Update.
4042117395Skan	* cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
4043117395Skan	* cp-tree.h (cxx_mark_addressable): New.
4044117395Skan	* decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
4045117395Skan	* decl2.c (build_cleanup): Update.
4046117395Skan	* except.c (build_throw): Update.
4047117395Skan	* init.c (resolve_offset_ref): Update.
4048117395Skan	* pt.c (convert_nontype_argument): Update.
4049117395Skan	* semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
4050117395Skan	* typeck.c (decay_conversion, build_array_ref, build_unary_op,
4051117395Skan	unary_complex_lvalue): Update.
4052117395Skan	(mark_addressable): Rename.
4053117395Skan
405496263Sobrien2002-04-01  Roger Sayle  <roger@eyesopen.com>
405596263Sobrien
405696263Sobrien	PR c++/5998:
405796263Sobrien	* decl.c (duplicate_decls):  Overwrite the RTL when (and only
405896263Sobrien	when) overwriting a built-in function.  Don't use COPY_DECL_RTL,
405996263Sobrien	but follow the SET_DECL_RTL idiom used elsewhere in the function.
406096263Sobrien
4061117395Skan2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
4062117395Skan
4063117395Skan	* cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
4064117395Skan	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
4065117395Skan	* decl.c (grokdeclarator): Update.
4066117395Skan	* mangle.c (write_integer_cst): Update.
4067117395Skan	* typeck.c (build_binary_op): Update.
4068117395Skan
4069117395Skan2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
4070117395Skan
4071117395Skan	* cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
4072117395Skan	* lex.c (cxx_init): Don't set hook.
4073117395Skan
4074117395Skan2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
4075117395Skan
4076117395Skan	* Make-lang.in (error.o): Update.
4077117395Skan	* cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
4078117395Skan	* cp-tree.h (struct diagnostic_context): Predeclare.
4079117395Skan	(cxx_print_error_function): New.
4080117395Skan	* error.c: Include langhooks-def.h.
4081117395Skan	(lang_print_error_function): Rename.  Update.
4082117395Skan	(init_error): Don't set hook.
4083117395Skan
4084117395Skan2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4085117395Skan
4086117395Skan	* cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
4087117395Skan	Redefine.
4088117395Skan	* cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
4089117395Skan	* decl.c (finish_enum): Similarly.
4090117395Skan	* error.c (dump_type): Similarly.
4091117395Skan	* lex.c (cxx_init): Similarly.
4092117395Skan	* mangle.c (write_builtin_type): Similarly.
4093117395Skan	* typeck.c (comptypes): Similarly.
4094117395Skan
409596263Sobrien2002-03-28  Roger Sayle  <roger@eyesopen.com>
409696263Sobrien
409796263Sobrien	PR c++/5998:
409896263Sobrien	* decl.c (cxx_init_decl_processing): Re-enable built-in functions
409996263Sobrien	in the g++ front-end.
410096263Sobrien	(duplicate_decl): Allow redefinition of anticipated built-ins.
410196263Sobrien	Fix inlining problem by over-writing the old DECL_RTL.
410296263Sobrien	(lookup_namespace_name): Fail to find an identifier in the
410396263Sobrien	specified namespace if its still anticipated.
410496263Sobrien	(builtin_function_1): New function split out from builtin_function
410596263Sobrien	to create a builtin in the current namespace with given context.
410696263Sobrien	(builtin_function): Call builtin_function_1 to define the
410796263Sobrien	appropriate builtins in both the std and global namespaces.
410896263Sobrien	(select_decl): Don't test for anticipated decls here.
410996263Sobrien	(unqualified_namespace_lookup): Instead ignore them whilst
411096263Sobrien	searching through scopes and namespaces.
411196263Sobrien	* decl2.c (do_nonmember_using_decl): If a using declaration
411296263Sobrien	specifies an anticipated built-in function, mark it as no longer
411396263Sobrien	anticipated in that scope.
411496263Sobrien	(ambiguous_decl):  Avoid resolving to an anticipated decl.
411596263Sobrien	* lex.c (do_scoped_id): Fail to find an identifier in the global
411696263Sobrien	namespace if its still anticipated.
411796263Sobrien
4118117395Skan2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4119117395Skan
4120117395Skan	* cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine.
4121117395Skan	* cp-tree.h (cp_make_lang_type): Rename.
4122117395Skan	* lex.c (cp_make_lang_type): Rename.
4123117395Skan	(make_aggr_type): Update.
4124117395Skan	* tree.c (init_tree): Don't set make_lang_type_fn.
4125117395Skan
412696263Sobrien2002-03-29  Jakub Jelinek  <jakub@redhat.com>
412796263Sobrien
412896263Sobrien	PR c++/6073
412996263Sobrien	* class.c (finish_struct_1): Update static field's DECL_MODE even
413096263Sobrien	if its type is a variant of t.
413196263Sobrien
4132117395Skan2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4133117395Skan
4134117395Skan	* cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
4135117395Skan	* cp-tree.h (cxx_insert_default_attributes): New.
4136117395Skan	* decl.c (insert_default_attributes): Rename.
4137117395Skan
413896263Sobrien2002-03-27  Mark Mitchell  <mark@codesourcery.com>
413996263Sobrien
414096263Sobrien	PR c++/4884
414196263Sobrien	* call.c (build_op_delete_call): Allow for the fact the placement
414296263Sobrien	may be a COMPOUND_EXPR.
4143104752Skan
4144117395Skan2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4145117395Skan
4146117395Skan	* cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
4147117395Skan	* cp-tree.h (init_cplus_expand): Remove.
4148117395Skan	(cxx_expand_expr): New.
4149117395Skan	* expr.c (cplus_expand_expr): Rename cxx_expand_expr,
4150117395Skan	fix prototype.
4151117395Skan	(init_cplus_expand): Remove.
4152117395Skan	* lex.c (cxx_init): Don't call init_cplus_expand.
4153117395Skan
4154117395Skan2002-03-26  Mark Mitchell  <mark@codesourcery.com>
4155117395Skan
4156117395Skan	PR c++/4884.
4157117395Skan	* init.c (build_new_1): Allow for the fact the result of
4158117395Skan	build_function_call may be a COMPOUND_EXPR.
4159117395Skan
416096263Sobrien2002-03-26  Nathan Sidwell  <nathan@codesourcery.com>
416196263Sobrien
416296263Sobrien	PR c++/5682
416396263Sobrien	* cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
416496263Sobrien	(dfs_skip_nonprimary_vbases_unmarkedp): Remove.
416596263Sobrien	(dfs_skip_nonprimary_vbases_markedp): Remove.
416696263Sobrien	* search.c (get_shared_vbase_if_not_primary): Remove.
416796263Sobrien	(dfs_skip_nonprimary_vbases_unmarkedp): Remove.
416896263Sobrien	(dfs_skip_nonprimary_vbases_markedp): Remove.
416996263Sobrien	(dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
417096263Sobrien	(dfs_marked_real_bases_queue_p): Likewise.
417196263Sobrien
4172117395Skan2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
417396263Sobrien
4174117395Skan	* cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
4175117395Skan	* cp-tree.h (cxx_mark_tree): New.
4176117395Skan	* decl.c (lang_mark_tree): Rename cxx_mark_tree.
417796263Sobrien
4178117395Skan2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
417996263Sobrien
4180117395Skan	* cp-tree.h (cxx_maybe_build_cleanup): New.
4181117395Skan	* decl.c (destroy_local_var, hack_incomplete_structures): Update.
4182117395Skan	(maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
4183117395Skan	* tree.c (build_target_expr): Update.
4184117395Skan	* cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine.
4185117395Skan
4186117395Skan2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4187117395Skan
4188117395Skan	* decl2.c (cxx_decode_option): Handle -E.
4189117395Skan	* lang-specs.h (default_compilers): Preprocess with cc1plus.
4190117395Skan	* lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
4191117395Skan
4192117395Skan2002-03-23  Jakub Jelinek  <jakub@redhat.com>
4193117395Skan
419496263Sobrien	PR c++/6037
419596263Sobrien	* decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
419696263Sobrien
4197117395Skan2002-03-23  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
4198117395Skan
4199117395Skan	* error.c (dump_type): Be careful about implicit typenames.
4200117395Skan
4201117395Skan2002-03-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
4202117395Skan
4203117395Skan	PR C++/3656
4204117395Skan	* semantics.c (finish_base_specifier): Handle erronous base
4205117395Skan	classes.
4206117395Skan
4207117395Skan2002-03-22  Zack Weinberg  <zack@codesourcery.com>
4208117395Skan
4209117395Skan	* error.c: Always use REAL_VALUE_TO_DECIMAL; don't test
4210117395Skan	REAL_IS_NOT_DOUBLE.
4211117395Skan
421296263Sobrien2002-03-22  Jeff Knaggs  <jknaggs@redhat.com>
421396263Sobrien
4214117395Skan	* typeck.c (get_member_function_from_ptrfunc): Scale idx down to
4215117395Skan	an index into the vtable_entry array regardless of
421696263Sobrien	TARGET_PTRMEMFUNC_VBIT_LOCATION.
421796263Sobrien
421896263Sobrien2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
421996263Sobrien
422096263Sobrien	* tree.c (cp_cannot_inline_tree_fn): Same.
422196263Sobrien
4222117395Skan2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4223117395Skan
4224117395Skan	* cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
4225117395Skan	insert_block, getdecls, global_bindings_p): New.
4226117395Skan
4227117395Skan2002-03-20  Nathan Sidwell  <nathan@codesourcery.com>
4228117395Skan
4229117395Skan	PR c++/4361
4230117395Skan	* mangle.c (struct globals) Add internal_mangling_p member.
4231117395Skan	(write_template_param): Do internal mangling, if needed.
4232117395Skan	(mangle_conv_op_name_for_type): Request internal mangling.
4233117395Skan
423496263Sobrien2002-03-20  Jason Merrill  <jason@redhat.com>
423596263Sobrien
423696263Sobrien	PR c++/2136
423796263Sobrien	* init.c (build_delete): Check access for a member op delete here.
423896263Sobrien	* decl2.c (delete_sanity): Not here.
423996263Sobrien
424096263Sobrien2002-03-19  Jason Merrill  <jason@redhat.com>
424196263Sobrien
424296263Sobrien	PR c++/5118
424396263Sobrien	* class.c (get_vfield_name): Use the constructor_name.
424496263Sobrien
4245117395Skan2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4246117395Skan
4247117395Skan	* cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
4248117395Skan	* cp-tree.h (lang_printable_name): Rename.
4249117395Skan	* error.c (lang_decl_name): Use new hook.
4250117395Skan	* lex.c (cxx_init): Remove old hook.
4251117395Skan	* pt.c (tsubst_decl): Use new hook.
4252117395Skan	* tree.c (lang_printable_name): Rename.
4253117395Skan
425496263Sobrien2002-03-18  Eric Botcazou  <ebotcazou@multimania.com>
425596263Sobrien
425696263Sobrien	PR c++/3882
425796263Sobrien	* pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
425896263Sobrien	(tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
425996263Sobrien	only after recording the declaration.
426096263Sobrien
426196263Sobrien2002-03-18  Jason Merrill  <jason@redhat.com>
426296263Sobrien
426396263Sobrien	PR c++/2039
426496263Sobrien	* init.c (resolve_offset_ref): Hand off to build_component_ref.
426596263Sobrien
426696263Sobrien	PR c++/4222, c++/5995
426796263Sobrien	* call.c (build_over_call): Fix empty class logic.
426896263Sobrien
426996263Sobrien	PR c++/3870
427096263Sobrien	* cp-tree.h (struct saved_scope): Add last_parms field.
427196263Sobrien	* decl.c (maybe_push_to_top_level): Save last_function_parms.
427296263Sobrien	(pop_from_top_level): Restore it.
427396263Sobrien
427496263Sobrien	PR c++/4377
427596263Sobrien	* mangle.c (write_expression): Strip NOP_EXPRs sooner.  Also strip
427696263Sobrien	NON_LVALUE_EXPRs.
427796263Sobrien
427896263Sobrien	PR c++/4003
427996263Sobrien	* pt.c (tsubst_friend_function): Use decl_namespace_context.
428096263Sobrien
428196263Sobrien	PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
428296263Sobrien	* class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
428396263Sobrien	type with a nontrivial destructor.
428496263Sobrien
428596263Sobrien2002-03-17  Jason Merrill  <jason@redhat.com>
428696263Sobrien
428796263Sobrien	PR c++/4460
428896263Sobrien	* class.c (build_base_path): Virtual base layout is fixed in
428996263Sobrien	in-charge [cd]tors.
429096263Sobrien
4291117395Skan2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4292117395Skan
4293117395Skan	* cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
4294117395Skan	* parse.y (yyparse): Remove macro.
4295117395Skan
4296117395Skan2002-03-17  Jason Merrill  <jason@redhat.com>
4297117395Skan
429896263Sobrien	PR c++/5757
429996263Sobrien	* init.c (build_new_1): Pass the right pointer to op delete.
430096263Sobrien
4301117395Skan2002-03-16  Nathan Sidwell  <nathan@codesourcery.com>
430296263Sobrien
4303117395Skan	PR c++/4361
4304117395Skan	* cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated
4305117395Skan	conversion operators go.
4306117395Skan	(struct lang_decl_flags): Add template_conv_p and unused
4307117395Skan	bitfields.
4308117395Skan	(DECL_TEMPLATE_CONV_FN_P): New macro.
4309117395Skan	* call.c (build_user_type_conversion_1): Don't check second type
4310117395Skan	conversion of overload set first.
4311117395Skan	* class.c (add_method): Make sure templated conversion operators
4312117395Skan	all end up on slot 2.
4313117395Skan	* lex.c (do_identifier): A conversion operator token might be
4314117395Skan	satisfied by a templated conversion operator.
4315117395Skan	* pt.c (check_explicit_specialization): Use
4316117395Skan	CLASSTYPE_FIRST_CONVERSION_SLOT.
4317117395Skan	(template_parm_this_level_p): New function.
4318117395Skan	(push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P.
4319117395Skan	* search.c (lookup_fnfields_1): Template conversions will be on
4320117395Skan	the first slot.
4321117395Skan	* typeck.c (build_component_ref): Preserve the type of an
4322117395Skan	conversion operator name on the overload type.
4323117395Skan	(build_x_function_call): Retrieve the conversion operator name.
432496263Sobrien
432596263Sobrien2002-03-15  Richard Henderson  <rth@redhat.com>
432696263Sobrien
4327117395Skan	* init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
432896263Sobrien
432996263Sobrien2002-03-15  Mark Mitchell  <mark@codesourcery.com>
433096263Sobrien
433196263Sobrien	* cp-tree.h (CLEANUP_DECL): Remove.
433296263Sobrien	(CLEANUP_EXPR): Likewise.
433396263Sobrien	* decl.c (destroy_local_var): Simplify.
433496263Sobrien	(maybe_build_cleanup): Tidy.
433596263Sobrien	* dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
433696263Sobrien	* semantics.c (cp_expand_stmt): Likewise.
433796263Sobrien	* cp/tree.c (cp_statement_code_p): Likewise.
433896263Sobrien
433996263Sobrien2002-03-15  Jason Merrill  <jason@redhat.com>
434096263Sobrien
434196263Sobrien	PR c++/5857
434296263Sobrien	* decl.c (duplicate_decls): Use merge_types instead of common_type.
434396263Sobrien	* typeck.c (common_type): Just hand off to
434496263Sobrien	type_after_usual_arithmetic_conversions and
434596263Sobrien	composite_pointer_type.
434696263Sobrien	(merge_types): New fn.
434796263Sobrien	(commonparms): Use it instead of common_type.
434896263Sobrien	(type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
434996263Sobrien	(composite_pointer_type): Also handle attributes.
435096263Sobrien	* cp-tree.h: Declare merge_types.
435196263Sobrien
435296263Sobrien	* decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
435396263Sobrien	variables.
435496263Sobrien	* decl2.c (maybe_make_one_only): Also mark the decl as needed.
435596263Sobrien
4356117395Skan2002-03-14  Richard Henderson  <rth@redhat.com>
4357117395Skan
4358117395Skan	* decl.c: Include c-pragma.h.
4359117395Skan	(start_decl, start_function): Invoke maybe_apply_pragma_weak.
4360117395Skan	* Make-lang.in: Update dependencies.
4361117395Skan
436296263Sobrien2002-03-14  Jakub Jelinek  <jakub@redhat.com>
436396263Sobrien
436496263Sobrien	PR c++/5908
436596263Sobrien	* call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
436696263Sobrien	* cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
436796263Sobrien
436896263Sobrien2002-03-12  Richard Sandiford  <rsandifo@redhat.com>
436996263Sobrien
437096263Sobrien	* mangle.c (write_builtin_type): Handle 128-bit integers even if
437196263Sobrien	they are not a standard integer type.
437296263Sobrien
4373117395Skan2002-03-12  Richard Sandiford  <rsandifo@redhat.com>
4374117395Skan
4375117395Skan	* cp-tree.h (init_init_processing): Remove declaration.
4376117395Skan	* init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
4377117395Skan	* decl.c (cxx_init_decl_processing): Don't call init_init_processing.
4378117395Skan
4379117395Skan2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4380117395Skan
4381117395Skan	* cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
4382117395Skan	Define.
4383117395Skan	* decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
4384117395Skan	tree_code_length.
4385117395Skan	* lex.c (cplus_tree_code_type, cplus_tree_code_length,
4386117395Skan	cplus_tree_code_name): Delete.
4387117395Skan	(cxx_init): Don't call add_c_tree_codes, instead set
4388117395Skan	lang_unsafe_for_reeval.  Don't try to copy into the various
4389117395Skan	tree_code arrays.
4390117395Skan
439196263Sobrien2002-03-12  Nathan Sidwell  <nathan@codesourcery.com>
439296263Sobrien
439396263Sobrien	PR c++/5659
439496263Sobrien	* decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
439596263Sobrien	* decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
439696263Sobrien	definitions.
439796263Sobrien
439896263Sobrien2002-03-11  Nathan Sidwell  <nathan@codesourcery.com>
439996263Sobrien
440096263Sobrien	Revert 2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>,
440196263Sobrien	DR209 is now not a defect.
440296263Sobrien	* cp-tree.h (skip_type_access_control): Remove.
440396263Sobrien	* decl.c (grokdeclarator): Do type access control for friend
440496263Sobrien	declarations.
440596263Sobrien	* semantics.c (decl_type_access_control): Don't reset
440696263Sobrien	current_type_lookups.
440796263Sobrien	(save_type_access_control): Always save the lookups.
440896263Sobrien	(skip_type_access_control): Remove.
440996263Sobrien	(finish_class_definition): Don't change type_lookups.
441096263Sobrien
441196263Sobrien2002-03-11  Nathan Sidwell  <nathan@codesourcery.com>
441296263Sobrien
441396263Sobrien	Revert 2000-12-01  Nathan Sidwell  <nathan@codesourcery.com>,
441496263Sobrien	It is incorrect.
441596263Sobrien	* typeck.c (build_static_cast): Compare non-qualified types
441696263Sobrien	with pointer to member conversions.
441796263Sobrien
4418117395Skan2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
4419117395Skan	    Daniel Berlin  <dan@dberlin.org>
4420117395Skan
4421117395Skan	* cp-lang.c (ok_to_generate_alias_set_for_type): New function.
4422117395Skan	(cxx_get_alias_set): Use it.
4423117395Skan
4424117395Skan2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4425117395Skan
4426117395Skan	* cp-tree.h (stabilize_expr): Prototype.
4427117395Skan
442896263Sobrien2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
4429104752Skan
443096263Sobrien	* cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
443196263Sobrien	conditional return void.
443296263Sobrien
4433117395Skan2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
4434117395Skan
4435117395Skan	* cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
4436117395Skan	* cp-tree.h (cxx_unsave): New.
4437117395Skan	* tree.c (cp_unsave): Rename cxx_unsave, update prototype.
4438117395Skan	(init_tree): Update.
4439117395Skan
4440117395Skan2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4441117395Skan
4442117395Skan	* decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
4443117395Skan	explicit sizeof/sizeof.
4444117395Skan	* decl2.c (cxx_decode_option): Likewise.
4445117395Skan	* lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
4446117395Skan
444796263Sobrien2002-03-02  Nathan Sidwell  <nathan@codesourcery.com>
444896263Sobrien
444996263Sobrien	PR c++/775
445096263Sobrien	* decl.c (lookup_tag): Only reject enum/class mismatch, not
445196263Sobrien	class/union mismatch.
445296263Sobrien	* parse.y (check_class_key): New function.
445396263Sobrien	(structsp): Call it.
445496263Sobrien
445596263Sobrien2002-03-01  Michael Matz  <matz@suse.de>
445696263Sobrien
445796263Sobrien	* typeck.c (cp_pointer_int_sum): Complete inner type which is
445896263Sobrien	used later by size_in_bytes().
445996263Sobrien
446096263Sobrien2002-03-01  Phil Edwards  <pme@gcc.gnu.org>
446196263Sobrien
446296263Sobrien	* cp-tree.h:  Require __GNUC__ to be #defined.
446396263Sobrien	(build_init):  Add missing prototype.
446496263Sobrien
4465117395Skan2002-03-01  Jason Merrill  <jason@redhat.com>
4466117395Skan
4467117395Skan	* except.c: Don't include decl.h or obstack.h.  Do include
4468117395Skan	tree-inline.h.
4469117395Skan	(build_throw): Destroy temporaries from the thrown
4470117395Skan	expression before calling __cxa_throw.  Construct a thrown
4471117395Skan	temporary directly into the exception object.
4472117395Skan	(stabilize_throw_expr): New function.
4473117395Skan	(wrap_cleanups_r): New function.
4474117395Skan	* tree.c (stabilize_expr): New function.
4475117395Skan	* init.c (build_init): New function.
4476117395Skan	* Make-lang.in (cp/except.o): Adjust .h deps.
4477117395Skan
447896263Sobrien2002-02-28  Jason Merrill  <jason@redhat.com>
447996263Sobrien
448096263Sobrien	* search.c (lookup_base_r): Don't clear is_non_public just because
448196263Sobrien	we found a friendly scope.
448296263Sobrien
448396263Sobrien	* decl.c (finish_function): Only warn about missing return
448496263Sobrien	statement with -Wreturn-type.
448596263Sobrien
4486117395Skan2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4487117395Skan
4488117395Skan	* class.c (build_clone): Update.
4489117395Skan	* cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4490117395Skan	* cp-tree.h (cxx_dup_lang_specific_decl): New.
4491117395Skan	* lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
4492117395Skan	(copy_decl): Update.
4493117395Skan	* method.c (make_thunk): Update.
4494117395Skan
4495117395Skan2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4496117395Skan
4497117395Skan	* decl2.c: Delete traditional-mode-related code copied from
4498117395Skan	the C front end but not used, or used only to permit the
4499117395Skan	compiler to link.
4500117395Skan
4501104752Skan2002-02-24 Craig Rodrigues  <rodrigc@gcc.gnu.org>
450296263Sobrien
450396263Sobrien	PR c++/4093
450496263Sobrien	* cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
450596263Sobrien	to void.
450696263Sobrien
450796263Sobrien2002-02-22  Jakub Jelinek  <jakub@redhat.com>
450896263Sobrien
450996263Sobrien	PR other/5746
451096263Sobrien	* semantics.c (finish_switch_cond): Don't call get_unwidened
451196263Sobrien	if error_mark_node.
451296263Sobrien
451396263Sobrien2002-02-22  Nathan Sidwell  <nathan@codesourcery.com>
451496263Sobrien
451596263Sobrien	PR c++/2645, DR 295
451696263Sobrien	* cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
451796263Sobrien	tf_keep_type_decl.
451896263Sobrien	(make_typename_type): Use tsubst_flags_t.
451996263Sobrien	* decl.c (make_typename_type): Adjust. Return non-artificial
452096263Sobrien	TYPE_DECLs, if required.
452196263Sobrien	(grokdeclarator): Simplify CVR qualification handling. Allow bad
452296263Sobrien	qualifiers on typedef types.
452396263Sobrien	* decl2.c (handle_class_head): Adjust make_typename_type call.
452496263Sobrien	* parse.y (nested_name_specifier): Likewise.
452596263Sobrien	(typename_sub0): Likewise.
452696263Sobrien	(typename_sub1): Likewise.
452796263Sobrien	* pt.c (convert_template_argument): Adjust make_typename_type
452896263Sobrien	return value.
452996263Sobrien	(tsubst): Adjust cp_build_qualified_type_real calls.
4530117395Skan	(check_cv_quals_for_unify): Cope with allowing bad qualifications
453196263Sobrien	on template type parms.
453296263Sobrien	(instantiate_decl): Recheck substitutions to give warnings on bad
453396263Sobrien	qualifications.
453496263Sobrien	* tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
453596263Sobrien
453696263Sobrien2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
453796263Sobrien
453896263Sobrien	* cp/decl.c (duplicate_decls): Merge always_inline attribute.
453996263Sobrien
454096263Sobrien	* cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
454196263Sobrien	unless DECL_ALWAYS_INLINE.
454296263Sobrien
454396263Sobrien2002-02-20  Jakub Jelinek  <jakub@redhat.com>
454496263Sobrien
454596263Sobrien	* typeck.c (cp_pointer_int_sum): Renamed from
454696263Sobrien	pointer_int_sum, call pointer_int_sum.
454796263Sobrien
454896263Sobrien2002-02-20  Jakub Jelinek  <jakub@redhat.com>
454996263Sobrien
455096263Sobrien	* decl.c (duplicate_decls): Return 0 if issued error about
455196263Sobrien	redeclaration.
455296263Sobrien
455396263Sobrien2002-02-19  Jason Merrill  <jason@redhat.com>
455496263Sobrien
4555104752Skan	ABI change: Mangle `void (A::*)() const' as
455696263Sobrien	M1AKFvvE, not MK1AFvvE.
455796263Sobrien	* mangle.c (write_function_type): Write cv-quals for member
455896263Sobrien	function type here.
455996263Sobrien	(write_pointer_to_member_type): Not here.
456096263Sobrien
456196263Sobrien2002-02-18  Jason Merrill  <jason@redhat.com>
456296263Sobrien
456396263Sobrien	* pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
456496263Sobrien	(do_decl_instantiation): Likewise.
456596263Sobrien
456696263Sobrien2002-02-17  Craig Rodrigues  <rodrigc@gcc.gnu.org>
456796263Sobrien
456896263Sobrien	PR c++/5685
456996263Sobrien	* decl.c (duplicate_decls): Make warning unconditional
457096263Sobrien	if duplicate default argument declarations are present.
457196263Sobrien
457296263Sobrien2002-02-17  Jakub Jelinek  <jakub@redhat.com>
457396263Sobrien
457496263Sobrien	* typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
457596263Sobrien	shortening.
457696263Sobrien
457796263Sobrien2002-02-15  Nathan Sidwell  <nathan@codesourcery.com>
457896263Sobrien
457996263Sobrien	* decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
458096263Sobrien	remove incorrect comment. Move #if 0'd code to common path. Use
458196263Sobrien	IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
458296263Sobrien
458396263Sobrien2002-02-13  Jason Merrill  <jason@redhat.com>
458496263Sobrien
458596263Sobrien	* decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
458696263Sobrien	(finish_function): Don't warn if current_function_returns_null.
458796263Sobrien
458896263Sobrien	* typeck2.c (digest_init): Do handle values of vector type.
458996263Sobrien
459096263Sobrien	* typeck2.c (digest_init, process_init_constructor): Treat vectors
459196263Sobrien	like arrays.
459296263Sobrien
459396263Sobrien2002-02-11  Jason Merrill  <jason@redhat.com>
459496263Sobrien
459596263Sobrien	* parse.y (reserved_declspecs): Don't handle attributes.
459696263Sobrien	(reserved_typespecquals): Handle them here.
459796263Sobrien	* Make-lang.in (parse.c): Adjust expected conflicts.
459896263Sobrien
459996263Sobrien2002-02-08  Jakub Jelinek  <jakub@redhat.com>
460096263Sobrien
460196263Sobrien	* parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
460296263Sobrien	instead of compstmt.
460396263Sobrien	(compstmt_or_stmtexpr): Renamed from compstmt.
460496263Sobrien	(compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
460596263Sobrien
460696263Sobrien2002-02-07  Nathan Sidwell  <nathan@codesourcery.com>
460796263Sobrien
460896263Sobrien	Rename instantiate_type_flags to tsubst_flags_t & expand use.
460996263Sobrien	* cp-tree.h (instantiate_type_flags): Rename to ...
461096263Sobrien	(tsubst_flags_t): ... here. Rename itf_complain to tf_error,
461196263Sobrien	add tf_warning flag.
461296263Sobrien	(instantiate_type): Adjust prototype.
461396263Sobrien	(tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
461496263Sobrien	do_type_instantiation, cp_build_qualified_type_real): Likewise.
461596263Sobrien	cp_build_qualified_type: Adjust.
461696263Sobrien	* class.c (instantiate_type): Adjust parameter. Rename itf_* to
461796263Sobrien	tf_*.
461896263Sobrien	* call.c (standard_conversion): Rename itf_* to tf_*.
461996263Sobrien	(reference_binding): Likewise.
462096263Sobrien	(convert_like_real): Likewise.
462196263Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
462296263Sobrien	(convert_to_reference): Likewise.
462396263Sobrien	* decl.c (lookup_namespace_name): Use tf_* flags.
462496263Sobrien	(make_typename_type): Likewise.
462596263Sobrien	(grokdeclarator): Likewise.
462696263Sobrien	* pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
462796263Sobrien	(coerce_template_template_parms, convert_template_argument,
462896263Sobrien	coerce_template_parms, maybe_get_template_decl_from_type_decl,
462996263Sobrien	lookup_template_class, tsubst_friend_function, tsubst_friend_class,
4630104752Skan	instantiate_class_template, tsubst_template_arg_vector,
4631104752Skan	tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
463296263Sobrien	tsubst_decl, tsubst_arg_types, tsubst_function_type,
4633104752Skan	tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
463496263Sobrien	instantiate_template, fn_type_unification,
4635104752Skan	resolve_overloaded_unification, verify_class_unification,
4636104752Skan	unify, get_bindings_real, do_type_instantiation,
4637104752Skan	regenerate_decl_from_template, instantiate_decl,
463896263Sobrien	tsubst_initializer_list, tsubst_enum,
463996263Sobrien	get_mostly_instantiated_function_type,
464096263Sobrien	invalid_nontype_parm_type_p): Likewise.
464196263Sobrien	* tree.c (cp_build_qualified_type_real): Likewise.
464296263Sobrien	* typeck.c (build_binary_op): Rename itf_* to tf_*.
464396263Sobrien	(build_ptrmemfunc): Likewise.
464496263Sobrien	(convert_for_assignment): Likewise.
464596263Sobrien
464696263Sobrien2002-02-07  Nathan Sidwell  <nathan@codesourcery.com>
464796263Sobrien
464896263Sobrien	PR c++/109
464996263Sobrien	* decl.c (grokdeclarator): Allow friend declarations from
465096263Sobrien	dependent types.
465196263Sobrien	* decl2.c (handle_class_head): Don't push into template parm contexts.
465296263Sobrien	* pt.c (push_template_decl_real): Template parm contexts are never
465396263Sobrien	being defined.
465496263Sobrien
465596263Sobrien2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
465696263Sobrien
465796263Sobrien	* class.c: Include target.h.
465896263Sobrien	(check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
465996263Sobrien	BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
466096263Sobrien	bit-field layout.
466196263Sobrien	* Make-lang.in: Adjust deps.
466296263Sobrien
466396263Sobrien2002-02-05  Jason Merrill  <jason@redhat.com>
466496263Sobrien
466596263Sobrien	* error.c (dump_type): Be more helpful about VECTOR_TYPE.
466696263Sobrien
466796263Sobrien2002-02-04  Jakub Jelinek  <jakub@redhat.com>
466896263Sobrien
466996263Sobrien	* semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
467096263Sobrien	(finish_switch_cond): Set SWITCH_TYPE.
467196263Sobrien
467296263Sobrien2002-02-04  Richard Henderson  <rth@redhat.com>
467396263Sobrien
467496263Sobrien	* method.c (use_thunk): Always initialize the block tree.  Reindent.
467596263Sobrien	* semantics.c (expand_body): Emit thunks after function, not before.
467696263Sobrien
467796263Sobrien2002-02-04  Jason Merrill  <jason@redhat.com>
467896263Sobrien
467996263Sobrien	* decl.c (start_function): Call cplus_decl_attributes immediately
468096263Sobrien	after grokdeclarator.
468196263Sobrien
468296263Sobrien	* decl.c (start_function): Combine DECL_RESULT handling code.
468396263Sobrien
468496263Sobrien2002-02-03  Jason Merrill  <jason@redhat.com>
468596263Sobrien
468696263Sobrien	* xref.c: Remove.
468796263Sobrien	* Make-lang.in (CXX_OBJS): Remove cp/xref.o
468896263Sobrien	(cp/xref.o): Remove dependencies.
468996263Sobrien	* class.c (finish_struct_1, check_methods): Don't call xref fns.
469096263Sobrien	(finish_struct_1): Likewise.
469196263Sobrien	* friend.c (make_friend_class): Likewise.
469296263Sobrien	* lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
469396263Sobrien	* spew.c (read_process_identifier): Likewise.
469496263Sobrien
469590075Sobrien2002-02-01  Jason Merrill  <jason@redhat.com>
469674473Sobrien
469796263Sobrien	PR c++/4872
4698104752Skan	* decl.c (finish_function): Warn about a non-void function with
469996263Sobrien	no return statement and no abnormal exit.
470096263Sobrien	* cp-tree.h (struct cp_language_function): Add returns_abnormally.
470196263Sobrien	(current_function_returns_abnormally): New macro.
470296263Sobrien	* call.c (build_call): Set it.
470396263Sobrien
470496263Sobrien	* typeck.c (build_component_ref): Always complain about offsetof
470596263Sobrien	constructs on non-PODs.  Only make it an error for members of
470696263Sobrien	virtual bases.
470796263Sobrien
470890075Sobrien	* error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
470990075Sobrien	(dump_function_decl): Always dump parms.
471074473Sobrien
471190075Sobrien	* decl2.c (finish_static_data_member_decl): Complain about a local
471290075Sobrien	class with a static data member.
471370635Sobrien
471490075Sobrien	PR c++/4286
471590075Sobrien	* search.c (lookup_field_1): Don't xref a static data member
471690075Sobrien	just because we looked it up.
471770635Sobrien
471890075Sobrien2002-01-31  Jason Merrill  <jason@redhat.com>
471970635Sobrien
472090075Sobrien	* Make-lang.in (parse.c): Handle .output file.
472160967Sobrien
472290075Sobrien	PR c++/3395
472390075Sobrien	* decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
472490075Sobrien	not TREE_TYPE.
472590075Sobrien	* semantics.c (finish_class_definition): Adjust.
472660967Sobrien
472790075Sobrien	Allow attributes in parms and casts.
472890075Sobrien	* parse.y (named_parm): Don't strip attrs.
472990075Sobrien	(declmods): Remove 'attributes' production.
473090075Sobrien	(nonempty_cv_qualifiers): Accept attributes.
473190075Sobrien	(ATTRIBUTE): Give precedence.
473290075Sobrien	* decl.c (groktypename): Handle attributes.
473390075Sobrien	(grokparms): Likewise.
473460967Sobrien
473590075Sobrien2002-01-29  Jakub Jelinek  <jakub@redhat.com>
473660967Sobrien
473790075Sobrien	* decl2.c (cxx_decode_option): Pass 0 as last argument to
473890075Sobrien	cpp_handle_option.
473990075Sobrien	* lang-specs.h: Use cpp_unique_options instead of cpp_options
474090075Sobrien	when used together with cc1_options.
474160967Sobrien
474290075Sobrien2002-01-29  Nathan Sidwell  <nathan@codesourcery.com>
474360967Sobrien
474490075Sobrien	PR c++/5132
474590075Sobrien	* typeck2.c (digest_init): Make sure non-array core type is
474690075Sobrien	instantiated.
474790075Sobrien	* decl2.c (reparse_absdcl_as_casts): Just store the type in the
474890075Sobrien	constructor, rather than build a new one.
474990075Sobrien	(build_expr_from_tree, CONSTRUCTOR case): Be careful with the
475090075Sobrien	PURPOSE of constructor elts.
475160967Sobrien
475290075Sobrien2002-01-23  Zack Weinberg  <zack@codesourcery.com>
475360967Sobrien
475490075Sobrien	* Make-lang.in (parse.c): Adjust expected number of
475590075Sobrien	shift-reduce conflicts.
475690075Sobrien	(decl.o): Depend on diagnostic.h.
475790075Sobrien	* decl.c: Include diagnostic.h.
475890075Sobrien	(grokdeclarator): Check for null pointer.
475990075Sobrien	(finish_function): Don't abort when
476090075Sobrien	current_binding_level->parm_flag != 1, if errors have
476190075Sobrien	occurred; throw away the statement tree and extra binding
476290075Sobrien	levels, and continue.
476390075Sobrien	* lex.c (note_list_got_semicolon): Check for null pointer.
476490075Sobrien	* method.c (hack_identifier): Just return error_mark_node if
476590075Sobrien	value is error_mark_node.
476690075Sobrien	* parse.y (primary: TYPEID(type_id)): No need to use
476790075Sobrien	TYPE_MAIN_VARIANT here.
476890075Sobrien	(handler_seq): Accept an empty list of catch clauses and
476990075Sobrien	generate a fake handler block to avoid later crashes.
477090075Sobrien	(ansi_raise_identifier): Accept the error token too.
477190075Sobrien	* semantics.c (begin_class_definition,
477290075Sobrien	finish_class_definition): Check for error_mark_node.
477360967Sobrien
477490075Sobrien2002-01-23  Zack Weinberg  <zack@codesourcery.com>
477560967Sobrien
477690075Sobrien	* typeck2.c (friendly_abort): Delete definition.
477790075Sobrien	* cp-tree.h (friendly_abort): Don't prototype.
477890075Sobrien	(my_friendly_assert): Use fancy_abort.
477957844Sobrien
478090075Sobrien2002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
478157844Sobrien
478290075Sobrien	* cp-tree.h (my_friendly_abort): Remove.
478356385Sobrien
478490075Sobrien2002-01-23  Jakub Jelinek  <jakub@redhat.com>
478556385Sobrien
478690075Sobrien	* spew.c (pending_inlines, pending_inlines_tail,
478790075Sobrien	processing_these_inlines): Make static.
478890075Sobrien	(mark_pending_inlines): Remove static.
478990075Sobrien	(begin_parsing_inclass_inline): If in function, save pi
479090075Sobrien	for GC to cp_function_chain->unparsed_inlines instead.
479190075Sobrien	(process_next_inline): Likewise.
479290075Sobrien	* cp-tree.h (struct cp_language_function): Add unparsed_inlines.
479390075Sobrien	(mark_pending_inlines): Add prototype.
479490075Sobrien	* decl.c (spew_debug): Remove unused extern.
479590075Sobrien	(mark_lang_function): Call mark_pending_inlines.
479652750Sobrien
479790075Sobrien2002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
479852750Sobrien
479990075Sobrien	* call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
480090075Sobrien	init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
480190075Sobrien	semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
480290075Sobrien	Change my_fancy_abort() to abort().
480352750Sobrien
480490075Sobrien2002-01-23  Jason Merrill  <jason@redhat.com>
480552750Sobrien
480690075Sobrien	PR c++/5453
480790075Sobrien	* class.c (fixed_type_or_null): Fix thinko.
480852750Sobrien
480990075Sobrien	PR c++/3331
481090075Sobrien	* init.c (resolve_offset_ref): Use build_indirect_ref.
481152750Sobrien
481290075Sobrien	* decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
481352750Sobrien
481490075Sobrien2002-01-22  Jason Merrill  <jason@redhat.com>
481552750Sobrien
481690075Sobrien	* parse.y (function_body): Suppress the block for the outermost
481790075Sobrien	curly braces.
481890075Sobrien	* decl.c (pushdecl): Don't try to skip it.
481990075Sobrien	(begin_function_body): Keep the block we create, not the next one.
482090075Sobrien	* init.c (emit_base_init): Don't mess with keep_next_level.
482148743Sobrien
482290075Sobrien	* class.c (build_base_path): Tweak formatting.
482348743Sobrien
482490075Sobrien2002-01-19  Nathan Sidwell  <nathan@codesourcery.com>
482552284Sobrien
482690075Sobrien	Fix regression introduced with patch for c++/775
482790075Sobrien	* parse.y (class_head_defn): Check for template specializations
482890075Sobrien	with a different class-key.
482952284Sobrien
483090075Sobrien2002-01-17  Jason Merrill  <jason@redhat.com>
483152284Sobrien
483290075Sobrien	* decl.c (begin_constructor_body, begin_destructor_body): New fns.
483390075Sobrien	(begin_function_body): Call them and keep_next_level.
483490075Sobrien	* init.c (emit_base_init): Call keep_next_level.
483590075Sobrien	* semantics.c (setup_vtbl_ptr): Lose.
483690075Sobrien	* cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
483790075Sobrien	(vtbls_set_up_p): Lose.
483890075Sobrien	* pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
483990075Sobrien	* method.c (do_build_copy_constructor): Likewise.
484090075Sobrien	(synthesize_method): Call finish_mem_initializers.
484190075Sobrien	* parse.y (nodecls): Likewise.
484252284Sobrien
484390075Sobrien	* error.c (dump_type_suffix): Print the exception specs before
484490075Sobrien	recursing.
484590075Sobrien	(dump_function_decl): Here, too.
484652284Sobrien
484790075Sobrien	* cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
484852284Sobrien
484990075Sobrien2002-01-10  Ira Ruben	<ira@apple.com>
485052284Sobrien
485190075Sobrien	PR c++/907
485290075Sobrien	* decl.c (start_method): Handle attrlist.
485352284Sobrien
485490075Sobrien2002-01-10  Jakub Jelinek  <jakub@redhat.com>
485552284Sobrien
485690075Sobrien	* decl2.c (max_tinst_depth): Increase default limit to 500.
485752284Sobrien
485890075Sobrien2002-01-10  Graham Stott  <grahams@redhat.com>
485952284Sobrien
486090075Sobrien	* spew.c (YYCHAR): Uppercase macro parameter and add
486190075Sobrien	parenthesis.
486290075Sobrien	(YYCODE): Likewise.
486390075Sobrien	(NAME): Uppercase macro parameter.
486452284Sobrien
486590075Sobrien2002-01-09  Graham Stott  <grahams@redhat.com>
486652284Sobrien
486790075Sobrien	* decl.h (grokdeclarator): Wrap long line.
486852284Sobrien
486990075Sobrien	* semantics.c (FINISH_COND): Uppercase macro paramaters and
487090075Sobrien	add parenthesis.
487152284Sobrien
487290075Sobrien2002-01-08  Graham Stott  <grahams@redhat.com>
487352284Sobrien
487490075Sobrien	* xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
487590075Sobrien	(PALLOC): Uppercase macro parameter and whitespace.
487690075Sobrien	(SALLOC): Uppercase macro parameter.
487790075Sobrien	(SFREE): Uppercase macros parameter, add parenthese and
487890075Sobrien	whitespace.
487990075Sobrien	(STREQL): Uppercase macro parameter and whitespace.
488090075Sobrien	(STRNEQ): Likewise.
488190075Sobrien	(STRLSS): Likewise.
488290075Sobrien	(STRLEQ): Likewise.
488390075Sobrien	(STRGTR): Likewise.
488490075Sobrien	(STRGEQ): Likewise.
488552284Sobrien
488690075Sobrien	* call.c (convert_like): Add parenthesis and wrap.
488790075Sobrien	(convert_like_with_context): Likewise.
488890075Sobrien	(ICS_RANK): Whitespace.
488990075Sobrien	(NEED_TEMPORARY_P): Remove parenthesis.
489052284Sobrien
489190075Sobrien	* class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
489290075Sobrien	whitespace.
489390075Sobrien	(VTT_MARKED_BINFO_P): Likewise.
489452284Sobrien
489590075Sobrien	* decl.c (BINDING_LEVEL): Add parenthesis.
489690075Sobrien	(DEF_OPERATOR): Likewise.
489752284Sobrien
489890075Sobrien	* mangle.c (MANGLE_TRACE): Add parenthesis.
489990075Sobrien	(MANGLE_TRACE_TREE): Likewise.
490090075Sobrien	(write_signed_number): Likewise.
490190075Sobrien	(write_unsigned_number): Likewise.
490252284Sobrien
490390075Sobrien	* pt.c (ccat): Uppercase macro parameter.
490490075Sobrien	(cat): Likewise
490552284Sobrien
490690075Sobrien	* search.c (SET_BINFO_ACCESS): Add parenthesis.
490752284Sobrien
490890075Sobrien2002-01-07  Jason Merrill  <jason@redhat.com>
490952284Sobrien
491090075Sobrien	* decl2.c (coerce_new_type): Downgrade error for size_t mismatch
491190075Sobrien	to pedwarn.
491252284Sobrien
491390075Sobrien	PR c++/3536
491490075Sobrien	* method.c (make_thunk): If !flag_weak, give the thunk the
491590075Sobrien	function's linkage.
491690075Sobrien	(use_thunk): Here, too.
491752284Sobrien
491890075Sobrien2002-01-07  Graham Stott  <grahams@redhat.com>
491952284Sobrien
492090075Sobrien	* error.c: Update copyright date.
492190075Sobrien	(print_scope_operator): Add parenthesis.
492290075Sobrien	(print_left_paren): Likewise.
492390075Sobrien	(print_right_paren): Likewise.
492490075Sobrien	(print_left_bracket): Likewise.
492590075Sobrien	(print_right_bracket): Likewise.
492690075Sobrien	(print_template_argument_list_start): Likewise.
492790075Sobrien	(print_template_argument_list_end): Likewise.
492890075Sobrien	(print_non_consecutive_character): Likewise.
492990075Sobrien	(print_tree_identifier): Likewise.
493090075Sobrien	(print_identifier): Likewise.
493190075Sobrien	(NEXT_CODE): Uppercase macro parameter.
493290075Sobrien	(ident_fndecl): Delete unused.
493390075Sobrien	(GLOBAL_THING): Likewise.
493452284Sobrien
493590075Sobrien2002-01-06  Graham Stott  <grahams@redhat.com>
493652284Sobrien
493790075Sobrien	* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
493890075Sobrien	(VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
493990075Sobrien	(VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
494090075Sobrien	(RECORD_OR_UNION_TYPE_CHECK): Likewise.
494190075Sobrien	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
494290075Sobrien	(C_IS_RESERVED_WORD): Uppercase macro parameter.
494390075Sobrien	(C_RID_YYCODE) Likewise.
494490075Sobrien	(ptrmem_cst): Use rtx.
494590075Sobrien	(LOCAL_BINDING_P): Add whitespace.
494690075Sobrien	(INHERITED_VALUE_BINDING_P): Likewise.
494790075Sobrien	(BINDING_SCOPE): Wrap long line.
494890075Sobrien	(BINDING_HAS_LEVEL_P): Remove parenthesis.
494990075Sobrien	(BINDING_VALUE): Wrap long line.
495090075Sobrien	(BINDING_TYPE): Whitespace.
495190075Sobrien	(IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
495290075Sobrien	(SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
495390075Sobrien	(IDENTIFIER_NAMESPACE_VALUE): Likewise.
495490075Sobrien	(SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
495590075Sobrien	(same_type_p): Uppercase macro parameters.
495690075Sobrien	(same_type_ignoring_top_level_qualifiers_p): Likewise.
495790075Sobrien	(OVL_FUNCTION): Wrap long line.
495890075Sobrien	(OVL_CHAIN): Whitespace.
495990075Sobrien	(OVL_CURRENT): Add parenthesis and whitespace.
496090075Sobrien	(OVL_NEXT): Whitespace.
496190075Sobrien	(OVL_USED): Likewise.
496290075Sobrien	(IDENTIFIER_TYPE_VALUE): Likewise.
496390075Sobrien	(REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
496490075Sobrien	(SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
496590075Sobrien	(LANG_ID_FIELD): Whitespace.
496690075Sobrien	(SET_LANG_ID(NODE,VALUE,NAME): Likewise.
496790075Sobrien	(IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
496890075Sobrien	(SET_IDENTIFIER_LABEL_VALUE): Whitespace.
496990075Sobrien	(IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
497090075Sobrien	(SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
497190075Sobrien	(IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
497290075Sobrien	(SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
497390075Sobrien	(IDENTIFIER_VIRTUAL_P): Likewise.
497490075Sobrien	(IDENTIFIER_OPNAME_P): Likewise.
497590075Sobrien	(IDENTIFIER_TYPENAME_P): Remove parenthesis.
497690075Sobrien	(C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
497790075Sobrien	(C_SET_EXP_ORIGINAL_CODE): Likewise.
497890075Sobrien	(TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
497990075Sobrien	(TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
498090075Sobrien	(IS_AGGR_TYPE): Uppercase macro parameter.
498190075Sobrien	(CLASS_TYPE_P): Likewise.
498290075Sobrien	(IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
498390075Sobrien	(IS_AGGR_TYPE_2): Whitespace.
498490075Sobrien	(TAGGED_TYPE_P): Uppercase macro parameter.
498590075Sobrien	(TYPE_BUILT_IN): Whitespace.
498690075Sobrien	(TYPE_FOR_JAVA): Likewise.
498790075Sobrien	(FUNCTION_ARG_CHAIN): Remove parenthesis.
498890075Sobrien	(FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
498990075Sobrien	(FUNCTION_FIRST_USER_PARAM): Likewise.
499090075Sobrien	(PROMOTES_TO_AGGR_TYPE): Whitespace.
499190075Sobrien	(DERIVED_FROM_P): Add parenthesis and wrap.
499290075Sobrien	(UNIQUELY_DERIVED_FROM_P): Likewise.
499390075Sobrien	(ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
499490075Sobrien	(PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
499590075Sobrien	(CLASSTYPE_USE_TEMPLATE): Whitespace.
499690075Sobrien	(CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
499790075Sobrien	(TYPE_GETS_DELETE): Add parenthesis.
499890075Sobrien	(TYPE_HAS_CONVERSION): Add parenthesis and wrap.
499990075Sobrien	(TYPE_HAS_ASSIGN_REF): Likewise,
500090075Sobrien	(TYPE_HAS_CONST_ASSIGN_REF): Likewise.
500190075Sobrien	(TYPE_HAS_INIT_REF): Likewise.
500290075Sobrien	(TYPE_HAS_CONST_INIT_REF): Likewise.
500390075Sobrien	(TYPE_BEING_DEFINED): Likewise.
500490075Sobrien	(TYPE_LANG_SPECIFIC): Likewise.
500590075Sobrien	(CLASSTYPE_RTTI): Likewise.
500690075Sobrien	(TYPE_OVERLOADS_CALL_EXPR): Likewise.
500790075Sobrien	(TYPE_OVERLOADS_ARRAY_REF): Likewise.
500890075Sobrien	(TYPE_OVERLOADS_ARROW): Likewise.
500990075Sobrien	(TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
501090075Sobrien	(TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
501190075Sobrien	(CLASSTYPE_METHOD_VEC): Likewise.
501290075Sobrien	(CLASSTYPE_MARKED_N): Likewise.
501390075Sobrien	(CLASSTYPE_MARKED): Likewise.
501490075Sobrien	(CLASSTYPE_MARKED2): Likewise.
501590075Sobrien	(CLASSTYPE_MARKED3): Likewise.
501690075Sobrien	(CLASSTYPE_MARKED4): Likewise.
501790075Sobrien	(CLASSTYPE_MARKED5): Likewise.
501890075Sobrien	(CLASSTYPE_MARKED6): Likewise.
501990075Sobrien	(SET_CLASSTYPE_MARKED): Whitespace.
502090075Sobrien	(CLEAR_CLASSTYPE_MARKED): Likewise.
502190075Sobrien	(SET_CLASSTYPE_MARKED2): Likewise.
502290075Sobrien	(CLEAR_CLASSTYPE_MARKED2): Likewise.
502390075Sobrien	(SET_CLASSTYPE_MARKED3): Likewise.
502490075Sobrien	(CLEAR_CLASSTYPE_MARKED3): Likewise.
502590075Sobrien	(SET_CLASSTYPE_MARKED4): Likewise.
502690075Sobrien	(CLEAR_CLASSTYPE_MARKED4): Likewise.
502790075Sobrien	(SET_CLASSTYPE_MARKED5): Likewise.
502890075Sobrien	(CLEAR_CLASSTYPE_MARKED5): Likewise.
502990075Sobrien	(SET_CLASSTYPE_MARKED6): Likewise.
503090075Sobrien	(CLEAR_CLASSTYPE_MARKED6): Likewise.
503190075Sobrien	(CLASSTYPE_TAGS): Likewise.
503290075Sobrien	(CLASSTYPE_VSIZE): Likewise.
503390075Sobrien	(CLASSTYPE_VBASECLASSES): Likewise.
503490075Sobrien	(CANONICAL_BINFO): Add parenthesis.
503590075Sobrien	(CLASSTYPE_SIZE(NODE): Likewise.
503690075Sobrien	(CLASSTYPE_SIZE_UNIT): Likewise.
503790075Sobrien	(CLASSTYPE_ALIGN(NODE): Likewise.
503890075Sobrien	(CLASSTYPE_USER_ALIGN): Likewise.
503990075Sobrien	(TYPE_JAVA_INTERFACE): Likewise.
504090075Sobrien	(CLASSTYPE_PURE_VIRTUALS): Likewise.
504190075Sobrien	(CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
504290075Sobrien	(TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
504390075Sobrien	(CLASSTYPE_HAS_MUTABLE): Likewise.
504490075Sobrien	(CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
504590075Sobrien	(CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
504690075Sobrien	(CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
504790075Sobrien	(CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
504890075Sobrien	(CLASSTYPE_INTERFACE_ONLY): Likewise.
504990075Sobrien	(CLASSTYPE_INTERFACE_KNOWN): Likewise.
505090075Sobrien	(CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
505190075Sobrien	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
505290075Sobrien	(SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
505390075Sobrien	(SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
505490075Sobrien	(CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
505590075Sobrien	(BINFO_UNSHARED_MARKED): Whitespace.
505690075Sobrien	(BINFO_MARKED): Whitespace and wrap.
505790075Sobrien	(SET_BINFO_MARKED): Likewise.
505890075Sobrien	(CLEAR_BINFO_MARKED): Likewise.
505990075Sobrien	(BINFO_VTABLE_PATH_MARKED): Likewise.
506090075Sobrien	(SET_BINFO_VTABLE_PATH_MARKED): Likewise.
506190075Sobrien	(CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
506290075Sobrien	(BINFO_SUBVTT_INDEX): Remove parenthesis.
506390075Sobrien	(BINFO_VPTR_INDEX): Likewise.
506490075Sobrien	(BINFO_PRIMARY_BASE_OF): Likewise,
506590075Sobrien	(CLASSTYPE_VFIELDS): Whitespace.
506690075Sobrien	(VF_DERIVED_VALUE): Wrap long line.
506790075Sobrien	(NAMESPACE_LEVEL): Whitespace.
506890075Sobrien	(CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
506990075Sobrien	(DEFARG_POINTER): Whitespace.
507090075Sobrien	(DECL_NEEDED_P): Remove parenthesis.
507190075Sobrien	(DECL_LANGUAGE): Whitespace.
507290075Sobrien	(SET_DECL_LANGUAGE): Add parenthesis.
507390075Sobrien	(DECL_CONSTRUCTOR_P): Whitespace and wrap.
507490075Sobrien	(DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
507590075Sobrien	(DECL_IN_AGGR_P): Whitespace.
507690075Sobrien	(DECL_FRIEND_P): Likewise.
507790075Sobrien	(DECL_BEFRIENDING_CLASSES): Likewise.
507890075Sobrien	(DECL_STATIC_FUNCTION_P): Whitespace and wrap.
507990075Sobrien	(DECL_NONCONVERTING_P): Whitespace.
508090075Sobrien	(DECL_PURE_VIRTUAL_P): Likewise.
508190075Sobrien	(DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
508290075Sobrien	(DECL_PENDING_INLINE_INFO): Whitespace.
508390075Sobrien	(DECL_SORTED_FIELDS): Likewise.
508490075Sobrien	(DECL_DEFERRED_FN): Likewise.
508590075Sobrien	(DECL_TEMPLATE_INFO): Likewise.
508690075Sobrien	(CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
508790075Sobrien	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
508890075Sobrien	(SET_TYPE_TEMPLATE_INFO): Add parenthesis.
508990075Sobrien	(TMPL_ARGS_LEVEL): Likewise.
509090075Sobrien	(SET_TMPL_ARGS_LEVEL): Likewise.
509190075Sobrien	(INNERMOST_TEMPLATE_PARMS): Whitespace.
509290075Sobrien	(C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
509390075Sobrien	(INTEGRAL_CODE_P(CODE): Add parenthesis.
509490075Sobrien	(CP_INTEGRAL_TYPE_P): Remove parenthesis.
509590075Sobrien	(TYPE_HAS_CONSTRUCTOR): Whitespace.
509690075Sobrien	(TREE_HAS_CONSTRUCTOR): Likewise.
509790075Sobrien	(TYPE_HAS_DESTRUCTOR): Likewise.
509890075Sobrien	(TYPE_HAS_REAL_ASSIGN_REF): Likewise.
509990075Sobrien	(TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
510090075Sobrien	(TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
510190075Sobrien	(TYPE_HAS_COMPLEX_INIT_REF): Likewise.
510290075Sobrien	(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
510390075Sobrien	(TYPE_PTRMEMFUNC_P): Likewise.
510490075Sobrien	(TYPE_PTRMEMFUNC_FLAG): Likewise.
510590075Sobrien	(TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
510690075Sobrien	(TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
510790075Sobrien	(TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
510890075Sobrien	(TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
510990075Sobrien	(DECL_ACCESS): Whitespace.
511090075Sobrien	(DECL_GLOBAL_CTOR_P): Remove parenthesis.
511190075Sobrien	(DECL_GLOBAL_DTOR_P): Likewise.
511290075Sobrien	(GLOBAL_INIT_PRIORITY): Likewise.
511390075Sobrien	(DECL_TEMPLATE_PARMS): Likewise.
511490075Sobrien	(DECL_TEMPLATE_RESULT): Likewise.
511590075Sobrien	(DECL_TEMPLATE_INSTANTIATIONS): Likewise.
511690075Sobrien	(DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
511790075Sobrien	(DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
511890075Sobrien	(SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
511990075Sobrien	(PRIMARY_TEMPLATE_P): Add parenthesis.
512090075Sobrien	(DECL_USE_TEMPLATE): Whitespace.
512190075Sobrien	(CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
512290075Sobrien	(SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
512390075Sobrien	(CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
512490075Sobrien	(SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
512590075Sobrien	(CALL_DECLARATOR_PARMS): Remove parenthesis.
512690075Sobrien	(CALL_DECLARATOR_QUALS): Likewise.
512790075Sobrien	(CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
512890075Sobrien	(TEMP_NAME_P): Wrap.
512990075Sobrien	(VFIELD_NAME_P): Likewise.
513090075Sobrien	(B_SET): Uppercase macro parameters and add parenthesis.
513190075Sobrien	(B_CLR): Likewise.
513290075Sobrien	(B_TST): Likewise.
513390075Sobrien	(LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
513490075Sobrien	(LOOKUP_TYPES_ONLY): Uppercase macro parameters.
513590075Sobrien	(LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
513690075Sobrien	(same_or_base_type_p): Likewise.
513790075Sobrien	(cp_deprecated): Likewise.
513852284Sobrien
513990075Sobrien2002-01-05  Richard Henderson  <rth@redhat.com>
514052284Sobrien
514190075Sobrien	* semantics.c (expand_body): Revert last change.
514252284Sobrien
514390075Sobrien2002-01-04  Jason Merrill  <jason@redhat.com>
514452284Sobrien
514590075Sobrien	PR c++/4122
514690075Sobrien	* class.c (update_vtable_entry_for_fn): Set delta to zero for a
514790075Sobrien	lost primary.
514852284Sobrien
514990075Sobrien	* class.c (build_vtbl_initializer): Check for a lost primary
515090075Sobrien	before calculating the vtable entry to throw away.
515152284Sobrien
515290075Sobrien2002-01-02  Jason Merrill  <jason@redhat.com>
515352284Sobrien
515490075Sobrien	* semantics.c (expand_body): Call outlining_inline_function when
515590075Sobrien	emitting an inline function out of line.
515652284Sobrien
515790075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
515852284Sobrien
515990075Sobrien	PR c++/5116, c++/764 reversion
516090075Sobrien	* call.c (build_new_op): Revert the instantiations. They are
516190075Sobrien	incorrect.
516252284Sobrien
516390075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
516452284Sobrien
516590075Sobrien	PR c++/5089
516690075Sobrien	* decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
516752284Sobrien
516890075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
516952284Sobrien
517090075Sobrien	PR c++/3716
517190075Sobrien	* pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
517290075Sobrien	(tsubst, case POINTER_TYPE): Handle pmfs here.
517390075Sobrien	(tsubst, case OFFSET_TYPE): Check it is not an offset to
517490075Sobrien	reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
517552284Sobrien
517690075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
517752284Sobrien
517890075Sobrien	PR c++/35
517990075Sobrien	* cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
518090075Sobrien	(DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
518190075Sobrien	* pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
518290075Sobrien	PARM_DECL.
518390075Sobrien	(tsubst_template_parms): Break up loop statements.
518490075Sobrien	(tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
518590075Sobrien	parm PARM_DECLs don't get promoted.
518652284Sobrien
518790075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
518852284Sobrien
518990075Sobrien	PR c++/5123
519090075Sobrien	* typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
519190075Sobrien	(build_x_function_call): Cope with a COMPONENT_REF containing a
519290075Sobrien	TEMPLATE_ID_EXPR.
519352284Sobrien
519490075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
519552284Sobrien
519690075Sobrien	PR c++/5213
519790075Sobrien	* pt.c (convert_template_argument): Be more careful determining
519890075Sobrien	when RECORD_TYPE templates are or are not templates.
519952284Sobrien
520090075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
520152284Sobrien
520290075Sobrien	PR c++/775
520390075Sobrien	* cp-tree.h (handle_class_head): Adjust prototype.
520490075Sobrien	* decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
520590075Sobrien	parameters. Use for all class heads.
520690075Sobrien	* parse.y (named_class_head_sans_basetype, named_class_head,
520790075Sobrien	named_complex_class_head_sans_basetype,
520890075Sobrien	named_class_head_sans_basetype_defn,
520990075Sobrien	unnamed_class_head): Remove.
521090075Sobrien	(class_head, class_head_apparent_template): Recognize class heads
521190075Sobrien	(class_head_decl, class_head_defn): New reductions. Process class
521290075Sobrien	heads.
521390075Sobrien	(structsp): Adjust class definition and class declaration
521490075Sobrien	reductions.
521590075Sobrien	(maybe_base_class_list): Give diagnostic on empty list.
521652284Sobrien
521790075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
521852284Sobrien
521990075Sobrien	PR c++/4379
522090075Sobrien	* typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
522190075Sobrien	single non-static member.
522290075Sobrien	(unary_complex_lvalue): If it cannot be a pointer to member, don't
522390075Sobrien	make it so. Check it is not pointer to reference.
522452284Sobrien
522590075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
522652284Sobrien
522790075Sobrien	PR c++/5132
522890075Sobrien	* decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
522990075Sobrien	are processing a template decl.
523052284Sobrien
523190075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
523252284Sobrien
523390075Sobrien	PR c++/5116, c++/764
523490075Sobrien	* call.c (build_new_op): Make sure template class operands are
523590075Sobrien	instantiated. Simplify arglist construction.
523652284Sobrien
523790075Sobrien2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
523852284Sobrien
523990075Sobrien	* call.c (build_user_type_conversion_1): Use my_friendly_assert
524090075Sobrien	rather than if ... abort.
524190075Sobrien	* cvt.c (convert_to_reference): Likewise.
524290075Sobrien	* semantics.c (setup_vtbl_ptr): Likewise.
524390075Sobrien	* pt.c (lookup_template_class): Comment typo.
524452284Sobrien
524590075Sobrien2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
524652284Sobrien
524790075Sobrien	PR c++/5125
524890075Sobrien	* pt.c (push_template_decl_real): Make sure DECL has
524990075Sobrien	DECL_LANG_SPECIFIC.
525052284Sobrien
525190075Sobrien2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
525252284Sobrien
525390075Sobrien	PR c++/335
525490075Sobrien	* init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
525590075Sobrien	for non-reference fields.
525690075Sobrien	* typeck.c (require_complete_type): Use resolve_offset_ref).
525752284Sobrien
525890075Sobrien2001-12-26  Nathan Sidwell  <nathan@codesourcery.com>
525952284Sobrien
526090075Sobrien	PR c++/196
526190075Sobrien	* parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
526252284Sobrien
526390075Sobrien2001-12-24  Nathan Sidwell  <nathan@codesourcery.com>
526452284Sobrien
526590075Sobrien	PR c++/160
526690075Sobrien	* typeck.c (build_modify_expr): Remove old unreachable code & tidy
526790075Sobrien	up. Don't stabilize_references when initializing a reference.
526852284Sobrien
526990075Sobrien2001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
527052284Sobrien
527190075Sobrien	* decl2.c (lang_f_options): Const-ify.
527252284Sobrien
527390075Sobrien2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
527452284Sobrien
527590075Sobrien	* config-lang.in (diff_excludes): Remove.
527652284Sobrien
527790075Sobrien2001-12-19  Nathan Sidwell  <nathan@codesourcery.com>
527852284Sobrien
527990075Sobrien	PR c++/90
528090075Sobrien	* typeck.c (build_function_call_real): Use original function
528190075Sobrien	expression for errors.
528252284Sobrien
528390075Sobrien2001-12-18  Jason Merrill  <jason@redhat.com>
528452284Sobrien
528590075Sobrien	PR c++/3242
528690075Sobrien	* class.c (add_method): Do compare 'this' quals when trying to match a
528790075Sobrien	used function.  Don't defer to another used function.
528852284Sobrien
528990075Sobrien2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
529052284Sobrien
529190075Sobrien	* pt.c (instantiate_clone): Remove, fold into ...
529290075Sobrien	(instantiate_template): ... here. Simplify by removing mutual
529390075Sobrien	recursion.
529490075Sobrien	* typeck2.c (build_m_component_ref): Don't cv qualify the function
529590075Sobrien	pointed to by a pointer to function.
529690075Sobrien	* class.c (delete_duplicate_fields_1): Typo.
529752284Sobrien
529890075Sobrien2001-12-18  Jason Merrill  <jason@redhat.com>
529952284Sobrien
530090075Sobrien	C++ ABI change: destroy value arguments in caller.
530190075Sobrien	* semantics.c (genrtl_start_function, genrtl_finish_function): Don't
530290075Sobrien	create an extra binding level for the parameters.
530390075Sobrien	* decl.c (store_parm_decls): Don't do parameter cleanups.
530452284Sobrien
530590075Sobrien2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
530652284Sobrien
530790075Sobrien	* call.c (build_new_method_call): Use '%#V'.
530890075Sobrien	* error.c (cv_to_string): Use V parameter to determine padding.
530952284Sobrien
531090075Sobrien2001-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
531152284Sobrien
531290075Sobrien	* call.c, decl2.c, init.c: Use "built-in" and "bit-field"
531390075Sobrien	spellings in messages.
531452284Sobrien
531590075Sobrien2001-12-17  Zack Weinberg  <zack@codesourcery.com>
531652284Sobrien
531790075Sobrien	* cp-tree.h: Delete #defines for cp_error, cp_warning,
531890075Sobrien	cp_pedwarn, and cp_compiler_error.
531990075Sobrien	* call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
532090075Sobrien	except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
532190075Sobrien	rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
532290075Sobrien	typeck2.c: Change calls to the above macros to use their
532390075Sobrien	language-independent equivalents: error, warning, pedwarn, and
532490075Sobrien	internal_error respectively.
532552284Sobrien
532690075Sobrien2001-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
532752284Sobrien
532890075Sobrien	* decl2.c (finish_file): Remove back_end_hook.
532952284Sobrien
533090075Sobrien2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
533152284Sobrien
533290075Sobrien	* ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
533390075Sobrien	cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
533490075Sobrien	pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
533552284Sobrien
533690075Sobrien2001-12-15  Joseph S. Myers  <jsm28@cam.ac.uk>
533752284Sobrien
533890075Sobrien	* lang-options.h: Use American spelling in messages.
533952284Sobrien
534090075Sobrien2001-12-13  Jason Merrill  <jason@redhat.com>
534152284Sobrien
534290075Sobrien	* Make-lang.in (parse.h): Separate rule, just depend on parse.c.
534352284Sobrien
534490075Sobrien	Use cleanups to run base and member destructors.
534590075Sobrien	* init.c (push_base_cleanups): New function, split out from...
534690075Sobrien	(build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
534790075Sobrien	* decl.c (finish_destructor_body): Move vbase destruction code to
534890075Sobrien	push_base_cleanups.
534990075Sobrien	(begin_function_body, finish_function_body): New fns.
535090075Sobrien	(finish_function): Move [cd]tor handling and call_poplevel to
535190075Sobrien	finish_function_body.
535290075Sobrien	(pushdecl): Skip the new level.
535390075Sobrien	* semantics.c (genrtl_try_block): Don't call end_protect_partials.
535490075Sobrien	(setup_vtbl_ptr): Call push_base_cleanups.
535590075Sobrien	* method.c (synthesize_method): Call {begin,end}_function_body.
535690075Sobrien	* pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
535790075Sobrien	* cp-tree.h: Declare new fns.
535890075Sobrien	* parse.y (function_body, .begin_function_body): New nonterminals.
535990075Sobrien	(fndef, pending_inline, function_try_block): Use function_body.
536090075Sobrien	(ctor_initializer_opt, function_try_block): No longer has a value.
536190075Sobrien	(base_init): Remove .set_base_init token.
536290075Sobrien	(.set_base_init, compstmt_or_error): Remove.
536390075Sobrien	* Make-lang.in (parse.c): Expect two fewer s/r conflicts.
536452284Sobrien
536590075Sobrien	* optimize.c (maybe_clone_body): Fix parameter updating.
536652284Sobrien
536790075Sobrien2001-12-12  Jason Merrill  <jason@redhat.com>
536852284Sobrien
536990075Sobrien	* decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
537090075Sobrien	* semantics.c (genrtl_start_function): Don't pass
537190075Sobrien	parms_have_cleanups or push an extra binding level.
537290075Sobrien	(genrtl_finish_function): Lose cleanup_label cruft.
537352284Sobrien
537490075Sobrien	* cp-tree.h (struct cp_language_function): Remove x_ctor_label.
537590075Sobrien	(ctor_label): Remove.
537690075Sobrien	* semantics.c (finish_return_stmt): Lose ctor_label support.
537790075Sobrien	* decl.c (finish_constructor_body, mark_lang_function): Likewise.
537890075Sobrien	* typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
537990075Sobrien	dtor_label.
538052284Sobrien
538190075Sobrien	* call.c (build_new_method_call): Let resolves_to_fixed_type_p
538290075Sobrien	check for [cd]tors.
538390075Sobrien	* class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
538452284Sobrien
538590075Sobrien	* decl.c (finish_function): Check VMS_TARGET, not VMS.
538652284Sobrien
538790075Sobrien	* decl.c (start_cleanup_fn): Remove redundant pushlevel.
538890075Sobrien	(end_cleanup_fn): And poplevel.
538952284Sobrien
539090075Sobrien	* semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
539190075Sobrien	if we're in a template.
539252284Sobrien
539390075Sobrien2001-12-12  Jakub Jelinek  <jakub@redhat.com>
539452284Sobrien
539590075Sobrien	* cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
539690075Sobrien	ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
539790075Sobrien	THIS_NAME_P): Delete.
539890075Sobrien	* spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
539990075Sobrien	THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
540090075Sobrien	with internal naming scheme.
540190075Sobrien	* error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
540252284Sobrien
540390075Sobrien2001-12-12  Nathan Sidwell  <nathan@codesourcery.com>
540452284Sobrien
540590075Sobrien	* decl.c (grokdeclarator): Deprecated implicit typename use.
540652284Sobrien
540790075Sobrien2001-12-11  Nathan Sidwell  <nathan@codesourcery.com>
540852284Sobrien
540990075Sobrien	PR g++/51
541090075Sobrien	* parse.y (frob_specs): Indicate it is a language linkage which
541190075Sobrien	contained the extern.
541290075Sobrien	* decl.c (grokdeclarator): Allow extern language linkage with
541390075Sobrien	other specifiers.
541452284Sobrien
541590075Sobrien2001-12-10  Nathan Sidwell  <nathan@codesourcery.com>
541652284Sobrien
541790075Sobrien	PR g++/72
541890075Sobrien	* decl.c (add_binding): Don't reject duplicate typedefs involving
541990075Sobrien	template parameters.
542052284Sobrien
542190075Sobrien2001-12-10  Neil Booth  <neil@daikokuya.demon.co.uk>
542252284Sobrien
542390075Sobrien	* parse.y, semantics.c: Similarly.
542452284Sobrien
542590075Sobrien2001-12-09  Nathan Sidwell  <nathan@codesourcery.com>
542652284Sobrien
542790075Sobrien	PR g++/87
542890075Sobrien	* cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
542990075Sobrien	(copy_args_p): Rename to ...
543090075Sobrien	(copy_fn_p): ... here.
543190075Sobrien	(grok_special_member_properties): New function.
543290075Sobrien	(grok_op_properties): Lose VIRTUALP parameter.
543390075Sobrien	(copy_assignment_arg_p): Remove.
543490075Sobrien	* call.c (build_over_call): Use copy_fn_p.
543590075Sobrien	* decl.c (grokfndecl): Reformat. Adjust call to
543690075Sobrien	grok_op_properties.
543790075Sobrien	(copy_args_p): Rename to ...
543890075Sobrien	(copy_fn_p): ... here. Reject template functions. Check for pass
543990075Sobrien	by value.
544090075Sobrien	(grok_special_member_properties): Remember special functions.
544190075Sobrien	(grok_ctor_properties): Don't remember them here, just check.
544290075Sobrien	(grok_op_properties): Likewise.
544390075Sobrien	(start_method): Call grok_special_member_properties.
544490075Sobrien	* decl2.c (grokfield): Likewise.
544590075Sobrien	(copy_assignment_arg_p): Remove.
544690075Sobrien	(grok_function_init): Don't remember abstract assignment here.
544790075Sobrien	* pt.c (instantiate_class_template): Call
544890075Sobrien	grok_special_member_properties.
544990075Sobrien	(tsubst_decl): Adjust grok_op_properties call.
545052284Sobrien
545190075Sobrien2001-12-08  Aldy Hernandez  <aldyh@redhat.com>
545252284Sobrien
545390075Sobrien	* lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
545490075Sobrien	RID_TYPES_COMPATIBLE_P.
545552284Sobrien
545690075Sobrien2001-12-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
545752284Sobrien
545890075Sobrien	* semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
545990075Sobrien	call to build_aggr_init.
546090075Sobrien	* cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
546152284Sobrien
546290075Sobrien2001-12-08  Neil Booth  <neil@daikokuya.demon.co.uk>
546352284Sobrien
546490075Sobrien	* parse.y: Replace uses of the string non-terminal with STRING.
546590075Sobrien	Don't perform string concatentaion here.
546690075Sobrien	(string): Remove non-terminal.
546790075Sobrien	* semantics.c (finish_asm_stmt): Don't concatenate strings here.
546852284Sobrien
546990075Sobrien2001-12-05  Jason Merrill  <jason@redhat.com>
547052284Sobrien
547190075Sobrien	* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
547290075Sobrien	(LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
547390075Sobrien	* tree.c (cp_start_inlining, cp_end_inlining): New fns.
547490075Sobrien	* pt.c (push_tinst_level): No longer static.
547590075Sobrien	* cp-tree.h: Declare them.
547652284Sobrien
547790075Sobrien	* init.c (resolve_offset_ref): Don't check access for the base
547890075Sobrien	conversion to access a FIELD_DECL.
547952284Sobrien
548090075Sobrien	* cp-tree.h (TYPE_REFFN_P): New macro.
548190075Sobrien	* decl.c (bad_specifiers): Check it, too.
548252284Sobrien
548390075Sobrien	* rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
548490075Sobrien	on the __*_type_info type if we haven't seen a definition.
548552284Sobrien
548690075Sobrien2001-12-05  Neil Booth  <neil@daikokuya.demon.co.uk>
548752284Sobrien
548890075Sobrien	* decl.c: Include c-common.h.
548990075Sobrien	(shadow_warning): Move to c-common.c.
549052284Sobrien
549190075SobrienWed Dec  5 17:00:49 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
549252284Sobrien
549390075Sobrien	* decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
549452284Sobrien
549590075Sobrien2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
549652284Sobrien
549790075Sobrien	* pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
549852284Sobrien
549990075Sobrien2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
550052284Sobrien
550190075Sobrien	PR g++/164
550290075Sobrien	* init.c (sort_base_init): Allow binfos to be directly specified.
550390075Sobrien	* method.c (do_build_copy_constructor): Explicitly convert to the
550490075Sobrien	base instance.
550590075Sobrien	(do_build_assign_ref): Likewise.
550652284Sobrien
550790075Sobrien2001-12-03  Hans-Peter Nilsson  <hp@bitrange.com>
550852284Sobrien
550990075Sobrien	* decl.c (xref_basetypes): Don't use C99 construct in tag_code
551090075Sobrien	declaration and initialization.
551152284Sobrien
551290075Sobrien2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
551352284Sobrien
551490075Sobrien	* typeck2.c: Remove leading capital from diagnostic messages, as
551590075Sobrien	per GNU coding standards.
551652284Sobrien
551790075Sobrien2001-12-03  Mumit Khan  <khan@nanotech.wisc.edu>
551852284Sobrien
551990075Sobrien	PR c++/3394
552090075Sobrien	* decl.c (xref_basetypes): Handle attributes between
552190075Sobrien	'class' and name.
552252284Sobrien
552390075Sobrien2001-12-03  Nathan Sidwell  <nathan@codesourcery.com>
552452284Sobrien
552590075Sobrien	PR g++/3381
552690075Sobrien	* parse.y (named_complex_class_head_sans_basetype): Add new
552790075Sobrien	reduction.
552890075Sobrien	* Make-lang.in (parse.c): Adjust expected conflict count.
552952284Sobrien
553090075Sobrien2001-12-03  Jason Merrill  <jason@redhat.com>
553152284Sobrien
553290075Sobrien	* class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
553390075Sobrien	immediate binfos for our virtual bases.
553452284Sobrien
553590075Sobrien2001-12-02  Neil Booth  <neil@daikokuya.demon.co.uk>
553652284Sobrien
553790075Sobrien	* call.c (build_java_interface_fn_ref): Similarly.
553890075Sobrien	* except.c (is_admissible_throw_operand): Similarly.
553990075Sobrien	* init.c (build_java_class_ref): Similarly.
554090075Sobrien	* xref.c (open_xref_file): Similarly.
554152284Sobrien
554290075Sobrien2001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
554352284Sobrien
554490075Sobrien	* class.c (finish_struct): Remove trailing periods from messages.
554590075Sobrien	* decl.c (check_tag_decl): Similarly.
554690075Sobrien	* lex.c (cxx_set_yydebug): Similarly.
554790075Sobrien	* typeck2.c (friendly_abort): Similarly.
554852284Sobrien
554990075Sobrien2001-11-29  Mark Mitchell  <mark@codesourcery.com>
555052284Sobrien
555190075Sobrien	PR c++/3048
555290075Sobrien	* cp-tree.h (ovl_member): Remove.
555390075Sobrien	* decl2.c (merge_functions): Handle extern "C" functions
555490075Sobrien	specially.
555590075Sobrien	* tree.c (ovl_member): Remove.
555652284Sobrien
555790075Sobrien2001-11-29  Mark Mitchell  <mark@codesourcery.com>
555852284Sobrien
555990075Sobrien	PR c++/4842
556090075Sobrien	* class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
556190075Sobrien	FUNCTION_DECL, as input.
556290075Sobrien	(mark_overriders): Remove.
556390075Sobrien	(warn_hidden): Rework for the new ABI.
556452284Sobrien
556590075Sobrien2001-11-29  Mark Mitchell  <mark@codesourcery.com>
556652284Sobrien
556790075Sobrien	PR c++/3471
556890075Sobrien	* call.c (convert_like_real): Do not build additional temporaries
556990075Sobrien	for rvalues of class type.
557052284Sobrien
557190075Sobrien2001-11-28  Nathan Sidwell  <nathan@codesourcery.com>
557252284Sobrien
557390075Sobrien	* cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
557490075Sobrien	(ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
557590075Sobrien	(PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
557690075Sobrien	(DERIVED_FROM_P): Likewise.
557790075Sobrien	(enum base_access): Renumber, add ba_quiet bit mask.
557890075Sobrien	(get_binfo): Remove.
557990075Sobrien	(get_base_distance): Remove.
558090075Sobrien	(binfo_value): Remove.
558190075Sobrien	(ACCESSIBLY_DERIVED_FROM_P): Remove.
558290075Sobrien	* call.c (standard_conversion): Use lookup_base.
558390075Sobrien	* class.c (strictly_overrides): Likewise.
558490075Sobrien	(layout_virtual_bases): Likewise.
558590075Sobrien	(warn_about_ambiguous_direct_bases): Likewise.
558690075Sobrien	(is_base_of_enclosing_class): Likewise.
558790075Sobrien	(add_vcall_offset_vtbl_entries_1): Likewise.
558890075Sobrien	* cvt.c (build_up_reference): Adjust comment.
558990075Sobrien	* init.c (build_member_call): Reformat.
559090075Sobrien	* search.c (get_binfo): Remove.
559190075Sobrien	(get_base_distance_recursive): Remove.
559290075Sobrien	(get_base_distance): Remove.
559390075Sobrien	(lookup_base_r): Tweak.
559490075Sobrien	(lookup_base): Add ba_quiet control. Complete the types here.
559590075Sobrien	(covariant_return_p): Use lookup_base.
559690075Sobrien	* tree.c (binfo_value): Remove.
559790075Sobrien	(maybe_dummy_object): Use lookup_base.
559890075Sobrien	* typeck.c (build_static_cast): Use lookup_base.
559952284Sobrien	(get_delta_difference): Likewise.
560090075Sobrien	* typeck2.c (binfo_or_else): Use lookup_base.
560190075Sobrien	(build_scoped_ref): Add back error_mark_check.
560290075Sobrien	(build_m_component_ref): Use lookup_base.
560352284Sobrien
560490075Sobrien2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
560552284Sobrien
560690075Sobrien	* Make-lang.in (c++.generated-manpages): New dummy target.
560752284Sobrien
560890075SobrienTue Nov 27 09:03:47 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
560952284Sobrien
561090075Sobrien	* Make-lang.in (cp-lang.o): Depends on c-common.h.
561190075Sobrien	* cp-lang.c (c-common.h): Include.
561290075Sobrien	(LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
561390075Sobrien	* decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
561490075Sobrien	* expr.c (init_cplus_expand): Don't set lang_expand_constant.
561552284Sobrien
561690075Sobrien2001-11-26  Neil Booth  <neil@daikokuya.demon.co.uk>
561752284Sobrien
561890075Sobrien	* decl2.c (c_language): Move to c-common.c.
561990075Sobrien	* lex.c (cxx_post_options, cxx_init_options): Use c-common.c
562090075Sobrien	functions.
562190075Sobrien	(cxx_init): Update.
562252284Sobrien
562390075Sobrien2001-11-26  Jason Merrill  <jason@redhat.com>
562452284Sobrien
562590075Sobrien	* call.c (joust): Remove COND_EXPR hack.
562652284Sobrien
562790075Sobrien2001-11-25  Aldy Hernandez  <aldyh@redhat.com>
562852284Sobrien
562990075Sobrien	* search.c (lookup_base_r): Declare bk in variable declaration
563090075Sobrien	space.
563152284Sobrien
563290075Sobrien2001-11-25  Nathan Sidwell  <nathan@codesourcery.com>
563352284Sobrien
563490075Sobrien	PR g++/3145
563590075Sobrien	* class.c (build_vbase_pointer): Remove.
563690075Sobrien	(build_vbase_path): Remove.
563790075Sobrien	(build_base_path): New function.
563890075Sobrien	* cp-tree.h (base_access, base_kind): New enumerations.
563990075Sobrien	(build_base_path): Declare.
564090075Sobrien	(convert_pointer_to_real): Remove.
564190075Sobrien	(convert_pointer_to): Remove.
564290075Sobrien	(lookup_base): Declare.
564390075Sobrien	(convert_pointer_to_vbase): Remove.
564490075Sobrien	* call.c (build_scoped_method_call): Use lookup_base &
564590075Sobrien	build_base_path instead of convert_pointer_to_real,
564690075Sobrien	get_base_distance & get_binfo.
564790075Sobrien	(build_over_call): Likewise.
564890075Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
564990075Sobrien	(convert_to_pointer_force): Likewise.
565090075Sobrien	(build_up_reference): Likewise.
565190075Sobrien	(convert_pointer_to_real): Remove.
565290075Sobrien	(convert_pointer_to): Remove.
565390075Sobrien	* init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
565490075Sobrien	instead of convert_pointer_to_vbase & build_vbase_path.
565590075Sobrien	(emit_base_init): Use build_base_path instead of
565690075Sobrien	convert_pointer_to_real.
565790075Sobrien	(expand_virtual_init): Lose unrequired conversions.
565890075Sobrien	(resolve_offset_ref): Use lookup_base and build_base_path
565990075Sobrien	instead of convert_pointer_to.
566090075Sobrien	* rtti.c (build_dynamic_cast_1): Use lookup_base &
566190075Sobrien	build_base_path instead of get_base_distance & build_vbase_path.
566290075Sobrien	* search.c (get_vbase_1): Remove.
566390075Sobrien	(get_vbase): Remove.
566490075Sobrien	(convert_pointer_to_vbase): Remove.
5665117395Skan	(lookup_base_r): New function.
566690075Sobrien	(lookup_base): New function.
566790075Sobrien	* typeck.c (require_complete_type): Use lookup_base &
566890075Sobrien	build_base_path instead of convert_pointer_to.
566990075Sobrien	(build_component_ref): Likewise.
567090075Sobrien	(build_x_function_call): Likewise.
567190075Sobrien	(get_member_function_from_ptrfunc): Likewise.
567290075Sobrien	(build_component_addr): Likewise.
567390075Sobrien	* typeck2.c (build_scoped_ref): Likewise.
567452284Sobrien
567590075Sobrien2001-11-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
567652284Sobrien
567790075Sobrien	* cp-tree.h (CP_TYPE_QUALS): Removed.
567890075Sobrien	* decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
567990075Sobrien	* cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
568090075Sobrien	LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
568190075Sobrien	* dump.c (cp_dump_tree): Use void* dump_info argument to match
568290075Sobrien	lang-hooks prototype.
568390075Sobrien	* call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
568490075Sobrien	rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
568590075Sobrien	CP_TYPE_QUALS changed to cp_type_quals.
568690075Sobrien	* Make-lang.in: References to c-dump.h changed to tree-dump.h.
568790075Sobrien	(CXX_C_OBJS): Remove c-dump.o.
568852284Sobrien
568990075Sobrien2001-11-21  Mark Mitchell  <mark@codesourcery.com>
569052284Sobrien
569190075Sobrien	PR c++/3637
569290075Sobrien	* pt.c (lookup_template_class): Ensure that all specializations
569390075Sobrien	are registered on the list corresponding to the most general
569490075Sobrien	template.
569552284Sobrien
569690075Sobrien2001-11-20  Mark Mitchell  <mark@codesourcery.com>
569752284Sobrien
569890075Sobrien	* call.c (non_reference): Add documentation.
569990075Sobrien	(convert_class_to_reference): Do not strip reference types
570090075Sobrien	from conversion operators.
570190075Sobrien	(maybe_handle_ref_bind): Simplify.
570290075Sobrien	(compare_ics): Correct handling of references.
570352284Sobrien
570490075Sobrien2001-11-19  John Wilkinson <johnw@research.att.com>
570552284Sobrien
570690075Sobrien	* dump.c (dump_op): New function.
570790075Sobrien	(cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION.  Use
570890075Sobrien	dump_op.  Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
570990075Sobrien	DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
571052284Sobrien
571190075Sobrien2001-11-19  Mark Mitchell  <mark@codesourcery.com>
571252284Sobrien
571390075Sobrien	PR4629
571490075Sobrien	* semantics.c (finish_sizeof): Make sure that expression created
571590075Sobrien	while processing a template do not have a type.
571690075Sobrien	(finish_alignof): Likewise.
571790075Sobrien	* typeck.c (c_sizeof): Likewise.
571890075Sobrien	(expr_sizeof): Likewise.
571952284Sobrien
572090075Sobrien2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
572152284Sobrien
572290075Sobrien	* lex.c (cxx_finish): Call c_common_finish.
572390075Sobrien	(finish_parse): Remove.
572452284Sobrien
572590075Sobrien2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
572652284Sobrien
572790075Sobrien	* decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
572890075Sobrien	when displaying error message about missing array bounds.
572952284Sobrien
573090075Sobrien2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
573152284Sobrien
573290075Sobrien	* mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
573390075Sobrien	CONST_CAST_EXPR.
573490075Sobrien	* operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
573552284Sobrien
573690075Sobrien2001-11-16  Neil Booth  <neil@daikokuya.demon.co.uk>
573752284Sobrien
573890075Sobrien	* cp-tree.h (print_class_statistics): Restore.
573952284Sobrien
574090075Sobrien2001-11-15  Jason Merrill  <jason@redhat.com>
574152284Sobrien
574290075Sobrien	* method.c (use_thunk): Don't emit debugging information for thunks.
574352284Sobrien
574490075Sobrien	* parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
574590075Sobrien	* decl.c (make_typename_type): Handle getting a class template.
574690075Sobrien	* search.c (lookup_field_r): A class template is good enough for
574790075Sobrien	want_type.
574852284Sobrien
574990075Sobrien	* call.c (convert_like_real): Only use cp_convert for the bad part.
575090075Sobrien	(standard_conversion): Also allow bad int->enum.
575190075Sobrien	* typeck.c (ptr_reasonably_similar): Also allow functions to
575290075Sobrien	interconvert.  Pointers to same-size integers are reasonably
575390075Sobrien	similar.
575452284Sobrien
575590075Sobrien	* cvt.c (convert_to_void): If we build a new COND_EXPR, always
575690075Sobrien	give it void type.
575752284Sobrien
575890075Sobrien2001-11-15  Nathan Sidwell  <nathan@codesourcery.com>
575952284Sobrien
576090075Sobrien	PR g++/3154
576190075Sobrien	* init.c (sort_base_init): Remove unreachable code.
576290075Sobrien	(expand_member_init): Adjust comment to reflect reality. Simplify
576390075Sobrien	and remove unreachable code.
576452284Sobrien
576590075Sobrien2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
576652284Sobrien
576790075Sobrien	* cp-tree.h (init_reswords, cxx_init_decl_processing): New.
576890075Sobrien	(cxx_init): Update prototype.
576990075Sobrien	* decl.c (init_decl_processing): Rename.  Move null node init
577090075Sobrien	to its creation time.
577190075Sobrien	* lex.c (cxx_init_options): Update.
577290075Sobrien	(cxx_init): Combine with old init_parse; also call
577390075Sobrien	cxx_init_decl_processing.
577452284Sobrien
577590075Sobrien2001-11-14  Richard Sandiford  <rsandifo@redhat.com>
577652284Sobrien
577790075Sobrien	* decl.c (check_initializer): Try to complete the type of an
577890075Sobrien	array element before checking whether it's complete.  Don't
577990075Sobrien	complain about arrays with complete element types but an
578090075Sobrien	unknown size.
578190075Sobrien	(cp_finish_decl): Build the hierarchical constructor before
578290075Sobrien	calling maybe_deduce_size_from_array_init.
578352284Sobrien
578490075Sobrien2001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
578552284Sobrien
578690075Sobrien	* Make-lang.in: Change all uses of $(manext) to $(man1ext).
578752284Sobrien
578890075Sobrien2001-11-13  Nathan Sidwell  <nathan@codesourcery.com>
578952284Sobrien
579090075Sobrien	PR g++/4206
579190075Sobrien	* parse.y (already_scoped_stmt): Remove.
579290075Sobrien	(simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
579352284Sobrien
579490075Sobrien2001-11-12  H.J. Lu <hjl@gnu.org>
579552284Sobrien
579690075Sobrien	* cvt.c (ocp_convert): Don't warn the address of a weak
579790075Sobrien	function is always `true'.
579852284Sobrien
579990075Sobrien2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
580052284Sobrien
580190075Sobrien	* cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
580290075Sobrien	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
580390075Sobrien	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
580490075Sobrien	* cp-tree.h (print_class_statistics): Remove.
580590075Sobrien	(cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
580690075Sobrien	cxx_print_identifier, cxx_set_yydebug): New.
580790075Sobrien	* lex.c (set_yydebug): Rename c_set_yydebug.
580890075Sobrien	* ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
580990075Sobrien	lang_print_xnode): Rename.
581090075Sobrien	* tree.c (print_lang_statistics): Rename.
581152284Sobrien
581290075Sobrien2001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
581352284Sobrien
581490075Sobrien	* class.c (dump_array): Fix format specifier warning.
581552284Sobrien
581690075Sobrien2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
581752284Sobrien
581890075Sobrien	* cp-lang.c (LANG_HOOKS_NAME): Override.
581990075Sobrien	(struct lang_hooks): Constify.
582090075Sobrien	* lex.c (cxx_init_options): Update.
582190075Sobrien	(lang_identify): Remove.
582290075Sobrien	* parse.y (language_string): Remove.
582352284Sobrien
582490075Sobrien2001-11-08  Andreas Franck  <afranck@gmx.de>
582552284Sobrien
582690075Sobrien	* Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
582790075Sobrien	DEMANGLER_CROSS_NAME): Handle program_transform_name the way
582890075Sobrien	suggested by autoconf.
582990075Sobrien	(GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
583090075Sobrien	(c++.install-common): Use the transformed target alias names.
583152284Sobrien
583290075Sobrien2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
583352284Sobrien
583490075Sobrien	* Make-lang.in: Update.
583590075Sobrien	* cp-lang.c: Include langhooks-def.h.
583652284Sobrien
583790075Sobrien2001-11-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
583852284Sobrien
583990075Sobrien	* pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
584052284Sobrien
584190075Sobrien2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
584252284Sobrien
584390075Sobrien	* lex.c (copy_lang_type): Add static prototype.
584452284Sobrien
584590075Sobrien2001-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
584652284Sobrien
584790075Sobrien	* pt.c (unify): Handle SCOPE_REF.
584852284Sobrien
584990075Sobrien2001-11-01  Jakub Jelinek  <jakub@redhat.com>
585052284Sobrien
585190075Sobrien	* tree.c (cp_copy_res_decl_for_inlining): Adjust
585290075Sobrien	DECL_ABSTRACT_ORIGIN for the return variable.
585352284Sobrien
585490075Sobrien2001-10-31  Zack Weinberg  <zack@codesourcery.com>
585552284Sobrien
585690075Sobrien	*  Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
585752284Sobrien
585890075Sobrien2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
585952284Sobrien
586090075Sobrien	* ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
586190075Sobrien	semantics.c, spew.c: Fix spelling errors.
586252284Sobrien
586390075Sobrien2001-10-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
586452284Sobrien
586590075Sobrien	* decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
586652284Sobrien
586790075Sobrien2001-10-25  Zack Weinberg  <zack@codesourcery.com>
586852284Sobrien
586990075Sobrien	* cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
587090075Sobrien	pop_everything.
587152284Sobrien
587290075SobrienTue Oct 23 14:00:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
587352284Sobrien
587490075Sobrien	* cp-lang.c (cxx_get_alias_set): New function.
587590075Sobrien	Point LANG_HOOKS_GET_ALIAS_SET to it.
587652284Sobrien
587790075Sobrien2001-10-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
587852284Sobrien
587990075Sobrien	* cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
588090075Sobrien	* cp-tree.h (make_unbound_class_template): Prototype new function.
588190075Sobrien	* decl.c (make_unbound_class_template): New function.
588290075Sobrien	* decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
588390075Sobrien	* error.c (dump_type): Likewise.
588490075Sobrien	* mangle.c (write_type): Likewise.
588590075Sobrien	* parse.y (template_parm): Likewise.
588690075Sobrien	(template_argument): Use make_unbound_class_template.
588790075Sobrien	* pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
588890075Sobrien	(tsubst): Likewise.
588990075Sobrien	(tsubst_copy): Likewise.
589090075Sobrien	(unify): Likewise.
589190075Sobrien	* tree.c (walk_tree): Likewise.
589290075Sobrien	* typeck.c (comptypes): Likewise.
589352284Sobrien
589490075Sobrien2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
589552284Sobrien
589690075Sobrien	* xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
589790075Sobrien	extra calls into fewer ones.
589852284Sobrien
589990075Sobrien2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
590052284Sobrien
590190075Sobrien	* decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
590290075Sobrien	Warn when merging inline with attribute noinline.
590390075Sobrien	(start_decl, start_function): Warn if inline and attribute
590490075Sobrien	noinline appear in the same declaration.
590552284Sobrien
590690075Sobrien2001-10-16  H.J. Lu <hjl@gnu.org>
590752284Sobrien
590890075Sobrien	* cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
590990075Sobrien	for tree checking disabled.
591052284Sobrien
591190075Sobrien2001-10-16  Hans-Peter Nilsson  <hp@axis.com>
591252284Sobrien
591390075Sobrien	* cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
591490075Sobrien	NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
591552284Sobrien
591690075Sobrien2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
591752284Sobrien
591890075Sobrien	* pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
591990075Sobrien	(unify): Only handle MINUS_EXPR specially if the above flag is set
592090075Sobrien	and the subtracted constant is 1.  Clear the flag on recursive calls.
592190075Sobrien	Set it when unifying the maximum value in an INTEGER_TYPE's range.
592252284Sobrien
592390075Sobrien2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
592452284Sobrien
592590075Sobrien	* decl.c (bad_specifiers): Don't allow exception specifications
592690075Sobrien	on any typedefs.
592752284Sobrien
592890075Sobrien2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
592952284Sobrien
593090075Sobrien	* cp/lex.c (init_cp_pragma): Similarly.
593152284Sobrien
593290075Sobrien2001-10-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
593352284Sobrien
593490075Sobrien	* pt.c (lookup_template_class): Build complete template arguments
593590075Sobrien	for BOUND_TEMPLATE_TEMPLATE_PARM.
593652284Sobrien
593790075Sobrien2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
593852284Sobrien
593990075Sobrien	* cp-tree.h (TYPE_BINFO): Update comment.
594090075Sobrien	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
594190075Sobrien	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
594290075Sobrien	(TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
594390075Sobrien	(copy_type): Prototype new function.
594490075Sobrien	* lex.c (copy_lang_decl): Gather tree node statistics.
594590075Sobrien	(copy_lang_type): New function.
594690075Sobrien	(copy_type): Likewise.
594790075Sobrien	(cp_make_lang_type): Create lang_type for
594890075Sobrien	BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
594990075Sobrien	and BOUND_TEMPLATE_TEMPLATE_PARM.
595090075Sobrien	* pt.c (tsubst): Use copy_type instead of copy_node.
595190075Sobrien	* search.c (lookup_field_1): Ignore TYPENAME_TYPE.
595252284Sobrien
595390075Sobrien2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
595452284Sobrien
595590075Sobrien	* pt.c (determine_specialization): Ignore functions without
595690075Sobrien	DECL_TEMPLATE_INFO.
595752284Sobrien
595890075Sobrien2001-10-12  Nathan Sidwell  <nathan@codesourcery.com>
595952284Sobrien
596090075Sobrien	PR g++/4476
596190075Sobrien	* typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
596252284Sobrien
596390075Sobrien2001-10-11  Jason Merrill  <jason_merrill@redhat.com>
596452284Sobrien
596590075Sobrien	* typeck2.c (store_init_value): Don't re-digest a bracketed
596690075Sobrien	initializer.
596752284Sobrien
596890075Sobrien	* class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
596990075Sobrien	ANON_AGGR_TYPE_P.
597052284Sobrien
597190075Sobrien2001-10-11  Richard Henderson  <rth@redhat.com>
597252284Sobrien
597390075Sobrien	* class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
597490075Sobrien	of an asm statement.
597590075Sobrien	(build_vtbl_ref_1): Split out from build_vtbl_ref.
597690075Sobrien	(build_vfn_ref): Use it to handle vtable descriptors before
597790075Sobrien	calling build_vtable_entry_ref.
597890075Sobrien	* decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
597952284Sobrien
598090075Sobrien2001-10-10  Richard Henderson  <rth@redhat.com>
598152284Sobrien
598290075Sobrien	* parse.y (asm_operand): Allow named operands.
598390075Sobrien	* semantics.c (finish_asm_stmt): Tweek for changed location
598490075Sobrien	of the operand constrant.
598552284Sobrien
598690075Sobrien2001-10-09  Jason Merrill  <jason_merrill@redhat.com>
598752284Sobrien
598890075Sobrien	* call.c (standard_conversion): Add bad conversion between
598990075Sobrien	integers and pointers.
599090075Sobrien	(convert_like_real): Don't use convert_for_initialization for bad
599190075Sobrien	conversions; complain here and use cp_convert.
599290075Sobrien	(build_over_call): Don't handle bad conversions specially.
599390075Sobrien	(perform_implicit_conversion): Allow bad conversions.
599490075Sobrien	(can_convert_arg_bad): New fn.
599590075Sobrien	* cp-tree.h: Declare it.
599690075Sobrien	* typeck.c (convert_for_assignment): Use it.
599790075Sobrien	(ptr_reasonably_similar): Any target type is similar to void.
599852284Sobrien
599990075Sobrien2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
600052284Sobrien
600190075Sobrien	* Make-lang.in (CXX_OBJS): Added cp-lang.o.
600290075Sobrien	(cp/cp-lang.o): New rule.
600390075Sobrien	* cp-tree.h: Declare hooks.
600490075Sobrien	* tree.c: Make hooks non-static.
600590075Sobrien	(init_tree): Don't initialize hooks here.
600690075Sobrien	* lex.c: Likewise.  Move definition of lang_hooks to...
600790075Sobrien	* cp-lang.c: ... new file.
600852284Sobrien
600990075Sobrien2001-10-08  Richard Henderson  <rth@redhat.com>
601052284Sobrien
601190075Sobrien	* cp-tree.h (struct lang_decl_flags): Remove declared_inline.
601290075Sobrien	(DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
601352284Sobrien
601490075Sobrien2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
601552284Sobrien
601690075Sobrien	* class.c (build_vtable_entry_ref): Const-ify.
601790075Sobrien	* decl.c (predefined_identifier,
601890075Sobrien	initialize_predefined_identifiers): Likewise.
601990075Sobrien	* init.c (build_new_1): Likewise.
602090075Sobrien	* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
602190075Sobrien	Likewise.
602252284Sobrien
602390075Sobrien2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
602452284Sobrien
602590075Sobrien	* optimize.c (struct inline_data): Moved to ../tree-inline.c.
602690075Sobrien	(INSNS_PER_STMT): Likewise.
602790075Sobrien	(remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
602890075Sobrien	(copy_body, initialize_inlined_parameters): Likewise.
602990075Sobrien	(declare_return_variable, inlinable_function_p): Likewise.
603090075Sobrien	(expand_call_inline, expand_calls_inline): Likewise.
603190075Sobrien	(optimize_inline_calls, clone_body): Likewise.
603290075Sobrien	* tree.c (walk_tree): Moved to ../tree-inline.c.
603390075Sobrien	(walk_tree_without_duplicates): Likewise.
603490075Sobrien	(copy_tree_r, remap_save_expr): Likewise.
603552284Sobrien
603690075Sobrien2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
603752284Sobrien
603890075Sobrien	* Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
603990075Sobrien	(cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
604090075Sobrien	* cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
604190075Sobrien	(TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
604290075Sobrien	(flag_inline_trees): Moved declaration to ../tree-inline.h.
604390075Sobrien	(walk_tree): Moved declaration to ../tree-inline.h.
604490075Sobrien	(walk_tree_without_duplicates, copy_tree_r): Likewise.
604590075Sobrien	(remap_save_expr): Likewise.
604690075Sobrien	* decl.c: Include tree-inline.h.
604790075Sobrien	(lang_mark_tree): Don't mark inlined_fns.
604890075Sobrien	* decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
604990075Sobrien	* optimize.c: Include tree-inline.h.
605090075Sobrien	(optimize_inline_calls): Move declaration to ../tree.h, as
605190075Sobrien	non-static.
605290075Sobrien	(remap_decl): Use language-independent constructs and hooks.
605390075Sobrien	(remap_block, copy_body_r, declare_return_variable): Likewise.
605490075Sobrien	(inlinable_function_p): Likewise.  Don't test for
605590075Sobrien	DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
605690075Sobrien	no longer language-specific.
605790075Sobrien	(optimize_inline_calls): Likewise.  Make it non-static.  Moved
605890075Sobrien	call of dump_function to...
605990075Sobrien	(optimize_function): Here...
606090075Sobrien	(clone_body): New function, extracted from...
606190075Sobrien	(maybe_clone_body): ... here.  Build decl_map locally and pass
606290075Sobrien	it on to clone_body.
606390075Sobrien	* pt.c, semantics.c: Include tree-inline.h.
606490075Sobrien	* tree.c: Likewise.
606590075Sobrien	(cp_walk_subtrees): New language-specific hook for tree inlining.
606690075Sobrien	(cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
606790075Sobrien	cp_is_overload_p, cp_auto_var_in_fn_p,
606890075Sobrien	cp_copy_res_decl_for_inlining): Likewise.
606990075Sobrien	(walk_tree): Move language-specific constructs into...
607090075Sobrien	(cp_walk_subtrees): this new function.
607190075Sobrien	(copy_tree_r): Use language-independent constructs and hooks.
607290075Sobrien	(init_tree): Initialize tree inlining hooks.
607390075Sobrien	(remap_save_expr): Adjust prototype so that the declaration
607490075Sobrien	does not require the definition of splay_tree.
607552284Sobrien
607690075Sobrien2001-10-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
607752284Sobrien
607890075Sobrien	* rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
607990075Sobrien	to build the declaration instead of the declaration itself.
608052284Sobrien
608190075Sobrien2001-10-02  Jason Merrill  <jason_merrill@redhat.com>
608252284Sobrien
608390075Sobrien	* decl2.c (cxx_decode_option): Add 'else'.
608452284Sobrien
608590075Sobrien	* spew.c (end_input): No longer static.
608690075Sobrien	* cp-tree.h: Declare it.
608790075Sobrien	* parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
608852284Sobrien
608990075Sobrien2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
609052284Sobrien
609190075Sobrien	* call.c (build_over_call), typeck.c (build_function_call_real):
609290075Sobrien	Pass type attributes to check_function_format rather than name or
609390075Sobrien	assembler name.  Don't require there to be a name or assembler
609490075Sobrien	name to check formats.
609552284Sobrien
609690075Sobrien2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
609752284Sobrien
609890075Sobrien	* decl.c (init_decl_processing): Don't call
609990075Sobrien	init_function_format_info.  Initialize lang_attribute_table
610090075Sobrien	earlier.
610190075Sobrien	(builtin_function): Call decl_attributes.
610290075Sobrien	(insert_default_attributes): New.
610352284Sobrien
610490075Sobrien2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
610552284Sobrien
610690075Sobrien	* decl.c (grokdeclarator): Copy array typedef handling from C
610790075Sobrien	frontend.
610852284Sobrien
610990075Sobrien	* decl.c (grokdeclarator): Copy too-large array handling from C
611090075Sobrien	frontend.
611152284Sobrien
611290075Sobrien2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
611352284Sobrien
611490075Sobrien	* config-lang.in (target_libs): Added target-gperf, so that we
611590075Sobrien	don't try to build it if C++ is disabled.
611652284Sobrien
611790075Sobrien2001-09-23  Zack Weinberg  <zack@codesourcery.com>
611852284Sobrien
611990075Sobrien	* Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
612090075Sobrien	(cp/errfn.o): Delete rule.
612190075Sobrien	(cp/error.o): Depend on flags.h.
612290075Sobrien	* errfn.c: Delete file.
612390075Sobrien	* cp-tree.h: Declare warn_deprecated.  Remove definitions of
612490075Sobrien	TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
612590075Sobrien	and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
612690075Sobrien	cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
612790075Sobrien	internal_error respectively.  Make cp_deprecated into a macro.
612890075Sobrien	Don't define cp_printer typedef or declare cp_printers.
612990075Sobrien	* error.c: Include flags.h.
613090075Sobrien	Delete: struct tree_formatting_info, print_function_argument_list,
613190075Sobrien	print_declaration, print_expression, print_function_declaration,
613290075Sobrien	print_function_parameter, print_type_id, print_cv_qualifier_seq,
613390075Sobrien	print_type_specifier_seq, print_simple_type_specifier,
613490075Sobrien	print_elaborated_type_specifier, print_rest_of_abstract_declarator,
613590075Sobrien	print_parameter_declaration_clause, print_exception_specification,
613690075Sobrien	print_nested_name_specifier, and definition of cp_printers.
613790075Sobrien	(locate_error): New function.
613890075Sobrien	(cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
613990075Sobrien	rewritten in terms of locate_error and diagnostic.c.
614090075Sobrien	(cp_tree_printer): Rename cp_printer; wire up to *_to_string
614190075Sobrien	instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
614290075Sobrien	(init_error): Adjust to match.
614352284Sobrien
614490075SobrienSat Sep 22 09:15:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
614552284Sobrien
614690075Sobrien	* Make-lang.in (CXX_C_OBJS): Add attribs.o.
614752284Sobrien
614890075Sobrien2001-09-21  Richard Henderson  <rth@redhat.com>
614952284Sobrien
615090075Sobrien	* class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
615190075Sobrien	(build_vtbl_initializer): Likewise.
615290075Sobrien	(build_vfn_ref): New.
615390075Sobrien	* cp-tree.h: Declare it.
615490075Sobrien	* call.c (build_over_call): Use it.
615590075Sobrien	* decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
615690075Sobrien	* typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
615752284Sobrien
615890075SobrienFri Sep 21 08:16:19 2001  J"orn Rennecke <amylaar@redhat.com>
615952284Sobrien
616090075Sobrien	* decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
616152284Sobrien
616290075Sobrien2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
616352284Sobrien
616490075Sobrien	Table-driven attributes.
616590075Sobrien	* decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
616690075Sobrien	* decl2.c (cplus_decl_attributes): Only take one attributes
616790075Sobrien	parameter.
616890075Sobrien	* cp-tree.c (cplus_decl_attributes): Update prototype.
616990075Sobrien	* class.c (finish_struct), decl.c (start_decl, start_function),
617090075Sobrien	decl2.c (grokfield), friend.c (do_friend), parse.y
617190075Sobrien	(parse_bitfield): Update calls to cplus_decl_attributes.
617290075Sobrien	* decl.c (grokdeclarator): Take a pointer to a single ordinary
617390075Sobrien	attribute list.
617490075Sobrien	* decl.h (grokdeclarator): Update prototype.
617590075Sobrien	* decl2.c (grokfield): Take a single ordinary attribute list.
617690075Sobrien	* friend.c (do_friend): Likewise.
617790075Sobrien	* decl.c (shadow_tag, groktypename, start_decl,
617890075Sobrien	start_handler_parms, grokdeclarator, grokparms, start_function,
617990075Sobrien	start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
618090075Sobrien	parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
618190075Sobrien	(process_template_parm, do_decl_instantiation): Pass single
618290075Sobrien	ordinary attribute lists around.
618390075Sobrien	* decl.c (grokdeclarator): Correct handling of nested attributes.
618490075Sobrien	Revert the patch
618590075Sobrien	1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
618690075Sobrien		* decl.c (grokdeclarator): Embedded attrs bind to the right,
618790075Sobrien		not the left.
618890075Sobrien	.
618990075Sobrien	* cp-tree.h (cp_valid_lang_attribute): Remove declaration
619090075Sobrien	(cp_attribute_table): Declare.
619190075Sobrien	* decl.c (valid_lang_attribute): Don't define.
619290075Sobrien	(lang_attribute_table): Define.
619390075Sobrien	(init_decl_processing): Initialize lang_attribute_table instead of
619490075Sobrien	valid_lang_attribute.
619590075Sobrien	* tree.c (cp_valid_lang_attribute): Remove.
619690075Sobrien	(handle_java_interface_attribute, handle_com_interface_attribute,
619790075Sobrien	handle_init_priority_attribute): New functions.
619890075Sobrien	(cp_attribute_table): New array.
619990075Sobrien	* decl2.c (import_export_class): Don't use
620090075Sobrien	targetm.valid_type_attribute.
620152284Sobrien
620290075Sobrien2001-09-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
620352284Sobrien
620496263Sobrien	* Make-lang.in (cp/error.o): Depend on real.h
620596263Sobrien	* error.c: #include "real.h"
620652284Sobrien
620790075Sobrien2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
620852284Sobrien
620990075Sobrien	* mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
621090075Sobrien	xmalloc/strcpy/strcat.
621152284Sobrien
621290075Sobrien2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
621352284Sobrien
621490075Sobrien	* decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
621590075Sobrien	Const-ification.
621690075Sobrien	* pt.c (tsubst_decl): Likewise.
621752284Sobrien
621890075Sobrien2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
621952284Sobrien
622090075Sobrien	* decl2.c (lang_f_options): Const-ification.
622190075Sobrien	* lex.c (cplus_tree_code_name): Likewise.
622290075Sobrien	* spew.c (yyerror): Likewise.
622352284Sobrien
622490075Sobrien2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
622552284Sobrien
622690075Sobrien	PR c++/3986
622790075Sobrien	* class.c (force_canonical_binfo_r): Check & move an indirect
622890075Sobrien	primary base first.
622990075Sobrien	(force_canonical_binfo): Check that it's not already
623090075Sobrien	canonical.
623190075Sobrien	(mark_primary_virtual_base): Remove BINFO parameter.
623290075Sobrien	(mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
623352284Sobrien
623490075Sobrien2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
623552284Sobrien
623690075Sobrien	Remove TYPE_NONCOPIED_PARTS.
623790075Sobrien	* cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
623890075Sobrien	CLASSTYPE_PURE_VIRTUALS.
623990075Sobrien	(TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
624090075Sobrien	* class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
624190075Sobrien	(layout_class_type): Don't call fixup_inline_methods here ...
624290075Sobrien	(finish_struct_1): ... call it here.
624352284Sobrien
624490075Sobrien2001-09-04  Mark Mitchell  <mark@codesourcery.com>
624552284Sobrien
624690075Sobrien	* decl.c (duplicate_decls): Remove code deadling with
624790075Sobrien	DECL_SAVED_INSNS.
624890075Sobrien	* decl2.c (finish_file): Likewise.
624990075Sobrien	* pt.c (instantiate_decl): Likewise.
625090075Sobrien	* semantics.c (expand_body): Don't defer local functions if
625190075Sobrien	they wouldn't be deferred for some other reason.  Don't
625290075Sobrien	generate RTL for functions that will not be emitted.
625390075Sobrien	(genrtl_start_function): Remove code deadling with
625490075Sobrien	DECL_SAVED_INSNS.
625590075Sobrien	(genrtl_finish_function): Likewise.
625652284Sobrien
625790075Sobrien2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
625852284Sobrien
625990075Sobrien	PR c++/4203
626090075Sobrien	* call.c (build_over_call): Do not optimize any empty base
626190075Sobrien	construction.
626252284Sobrien
626390075Sobrien2001-08-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
626452284Sobrien
626590075Sobrien	* error.c (dump_template_decl): Output template parameters
626690075Sobrien	together with their specifiers.
626790075Sobrien	Output `class' prefix for template template parameter.
626890075Sobrien	(dump_decl): Fix formatting.
626952284Sobrien
627090075Sobrien2001-08-30  Kurt Garloff  <garloff@suse.de>
627152284Sobrien
627290075Sobrien	* optimize.c (inlinable_function_p): Allow only smaller single
627390075Sobrien	functions. Halve inline limit after reaching recursive limit.
627452284Sobrien
627590075Sobrien2001-08-30  Joern Rennecke <amylaar@redhat.com>
627690075Sobrien	    Jason Merrill  <jason_merrill@redhat.com>
627752284Sobrien
627890075Sobrien	* class.c (build_vtable_entry_ref): Subtract in char*, not
627990075Sobrien	ptrdiff_t.
628052284Sobrien
628190075Sobrien2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
628252284Sobrien
628390075Sobrien	* tree.c (cp_build_qualified_type_real): Use get_qualified_type.
628490075Sobrien	(build_cplus_array_type): Use cp_build_qualified_type, not
628590075Sobrien	TYPE_MAIN_VARIANT, to get an unqualified version.
628652284Sobrien
628790075Sobrien	* decl2.c (grok_alignof): Lose.
628890075Sobrien	(build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
628990075Sobrien	* typeck.c (c_alignof): Lose.
629090075Sobrien	* semantics.c (finish_sizeof, finish_alignof): New.
629190075Sobrien	* parse.y: Use them.
629290075Sobrien	* cp-tree.h: Declare them.
629352284Sobrien
629490075Sobrien2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
629552284Sobrien
629690075Sobrien	* pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
629790075Sobrien	Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
629890075Sobrien	* tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
629952284Sobrien
630090075Sobrien2001-08-19  Jakub Jelinek  <jakub@redhat.com>
630152284Sobrien
630290075Sobrien	* typeck2.c (add_exception_specifier): Only require complete type if
630390075Sobrien	not in processing template declaration.
630452284Sobrien
630590075Sobrien2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
630652284Sobrien
630790075Sobrien	* decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
630890075Sobrien	GNU_xref_start_scope and GNU_xref_end_scope.
630952284Sobrien
631090075Sobrien	* tree.c (TYPE_HASH): Moved to ../tree.h.
631152284Sobrien
631290075Sobrien2001-08-16  Mark Mitchell  <mark@codesourcery.com>
631352284Sobrien
631490075Sobrien	* cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
631590075Sobrien	on COMPOUND_EXPRs.
631652284Sobrien
631790075Sobrien2001-08-14  Richard Henderson  <rth@redhat.com>
631852284Sobrien
631990075Sobrien	* class.c, cp-tree.h (build_vfn_ref): Remove.
632090075Sobrien	* call.c, rtti.c: Replace all refernces with build_vtbl_ref.
632152284Sobrien
632290075Sobrien2001-08-13  Mark Mitchell  <mark@codesourcery.com>
632352284Sobrien
632490075Sobrien	* call.c (build_over_call): Mark COMPOUND_EXPRs generated for
632590075Sobrien	empty class assignment as having side-effects to avoid
632690075Sobrien	spurious warnings.
632752284Sobrien
632890075Sobrien2001-08-13  Zack Weinberg  <zackw@panix.com>
632952284Sobrien
633090075Sobrien	* Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
633190075Sobrien	* except.c: Include libfuncs.h.
633252284Sobrien
633390075Sobrien2001-08-11  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
633452284Sobrien
633590075Sobrien	* decl.c (grokdeclarator): Clarify diagnostic message.
633652284Sobrien
633790075Sobrien2001-08-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
633852284Sobrien
633990075Sobrien	* decl2.c (do_nonmember_using_decl): Replace using directive
634090075Sobrien	with using declaration in the error message.
634152284Sobrien
634290075Sobrien2001-08-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
634352284Sobrien
634490075Sobrien	* pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
634590075Sobrien	criterion to avoid rebuilding expression tree instead of
634690075Sobrien	processing_template_decl.
634752284Sobrien
634890075Sobrien2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
634952284Sobrien
635090075Sobrien	Support named return value optimization for inlines, too.
635190075Sobrien	* decl.c (finish_function): Nullify returns here.
635290075Sobrien	* semantics.c (genrtl_start_function): Not here.
635390075Sobrien	(cp_expand_stmt): Don't mess with CLEANUP_STMTs.
635490075Sobrien	(nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
635590075Sobrien	Also nullify the CLEANUP_STMT for the nrv.
635690075Sobrien	* cp-tree.h: Declare it.
635790075Sobrien	* optimize.c (declare_return_variable): Replace the nrv with the
635890075Sobrien	return variable.
635990075Sobrien	* typeck.c (check_return_expr): Be more flexible on alignment check.
636090075Sobrien	Ignore cv-quals when checking for a matching type.
636152284Sobrien
636290075Sobrien2001-08-09  Richard Henderson  <rth@redhat.com>
636352284Sobrien
636490075Sobrien	* decl2.c (finish_objects): Use target hooks instead of
636590075Sobrien	assemble_constructor and assemble_destructor.
636652284Sobrien
636790075Sobrien2001-08-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
636852284Sobrien
636990075Sobrien	* g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
637052284Sobrien
637190075Sobrien2001-08-07  Nathan Sidwell  <nathan@codesourcery.com>
637252284Sobrien
637390075Sobrien	PR c++/3820
637490075Sobrien	Stop using TYPE_NONCOPIED_PARTS.
637590075Sobrien	* call.c (build_over_call): Be careful when copy constructing
637690075Sobrien	or assigning to an empty class.
637790075Sobrien	* class.c (check_bases_and_members): It has a
637890075Sobrien	COMPLEX_ASSIGN_REF if it has a vptr.
637990075Sobrien	(layout_class_type): Don't add empty class padding to
638090075Sobrien	TYPE_NONCOPIED_PARTS.
638190075Sobrien	(finish_struct_1): Don't add the VFIELD either.
638290075Sobrien	* cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
638390075Sobrien	initialization.
638452284Sobrien
638590075Sobrien2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
638652284Sobrien
638790075Sobrien	* tree.c (walk_tree): Walk siblings even if !walk_subtrees.
638852284Sobrien
638990075Sobrien2001-08-06  Richard Henderson  <rth@redhat.com>
639052284Sobrien
639190075Sobrien	* decl2.c (finish_objects): Pass a symbol_ref and priority to
639290075Sobrien	assemble_{constructor,destructor}.  Remove priority handling.
639352284Sobrien
639490075Sobrien2001-08-05  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
639552284Sobrien
639690075Sobrien	Don't allow template-id in using-declaration.
639790075Sobrien	* decl2.c (validate_nonmember_using_decl): Handle template-ids.
639890075Sobrien	(do_class_using_decl): Likewise.
639952284Sobrien
640090075Sobrien2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
640152284Sobrien
640290075Sobrien	* cp/spew.c (read_token): No need to pop buffers.
640352284Sobrien
640490075Sobrien2001-08-02  Stan Shebs  <shebs@apple.com>
640552284Sobrien
640690075Sobrien	* cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
640790075Sobrien	(fnaddr_from_vtable_entry): Remove decl.
640890075Sobrien	* method.c (use_thunk): Update comment.
640952284Sobrien
641090075Sobrien2001-08-01  Andrew Cagney  <ac131313@redhat.com>
641152284Sobrien
641290075Sobrien	* repo.c (get_base_filename): Change return value to const char
641390075Sobrien	pointer.
641452284Sobrien
641590075Sobrien2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
641652284Sobrien
641790075Sobrien	Kill -fhonor-std.
641890075Sobrien	* NEWS: Document.
641990075Sobrien	* cp-tree.h (flag_honor_std): Remove.
642090075Sobrien	(CPTI_FAKE_STD): Remove.
642190075Sobrien	(std_node): Remove comment about it being NULL.
642290075Sobrien	(fake_std_node): Remove.
642390075Sobrien	* decl.c (in_fake_std): Remove.
642490075Sobrien	(walk_namespaces_r): Remove fake_std_node check.
642590075Sobrien	(push_namespace): Remove in_fake_std code.
642690075Sobrien	(pop_namespace): Likewise.
642790075Sobrien	(lookup_name_real): Remove fake_std_node check.
642890075Sobrien	(init_decl_processing): Always create std_node. Always add
642990075Sobrien	std:: things there.
643090075Sobrien	(builtin_function): Always put non '_' fns in std.
643190075Sobrien	* decl2.c (flag_honor_std): Remove.
643290075Sobrien	(lang_f_options): Remove honor-std.
643390075Sobrien	(unsupported_options): Add honor-std.
643490075Sobrien	(set_decl_namespace): Remove fake_std_node check.
643590075Sobrien	(validate_nonmember_using_decl): Likewise.
643690075Sobrien	(do_using_directive): Likewise.
643790075Sobrien	(handle_class_head): Likewise.
643890075Sobrien	* dump.c (cp_dump_tree): Likewise.
643990075Sobrien	* except.c (init_exception_processing): Adjust.
644090075Sobrien	* init.c (build_member_call): Remove fake_std_node check.
644190075Sobrien	(build_offset_ref): Likewise.
644290075Sobrien	* lang-options.h: Remove -fhonor-std, -fno-honor-std.
644390075Sobrien	* rtti.c (init_rtti_processing): Adjust.
644452284Sobrien
644590075Sobrien2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
644652284Sobrien
644790075Sobrien	* tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
644890075Sobrien	operand while calling cp_tree_equal.
644952284Sobrien
645090075Sobrien2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
645152284Sobrien
645290075Sobrien	The 3.0 ABI no longer has vbase pointer fields.
645390075Sobrien	* cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
645490075Sobrien	FORMAT_VBASE_NAME): Remove.
645590075Sobrien	* method.c (do_build_copy_constructor): Adjust.
645690075Sobrien	(do_build_assign_ref): Adjust.
645790075Sobrien	* search.c (lookup_field_r): Adjust.
645890075Sobrien	* typeck.c (build_component_ref): Adjust.
645952284Sobrien
646090075Sobrien	The 3.0 ABI always has a vtable pointer at the start of every
646190075Sobrien	polymorphic class.
646290075Sobrien	* rtti.c (build_headof_sub): Remove.
646390075Sobrien	(build_headof): Adjust.
646490075Sobrien	(get_tinfo_decl_dynamic): No need to check flag_rtti
646590075Sobrien	here. Adjust.
646690075Sobrien	(create_real_tinfo_var): Explain why we need a hidden name.
646752284Sobrien
646890075Sobrien2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
646952284Sobrien
647090075Sobrien	PR c++/3631
647190075Sobrien	* class.c (update_vtable_entry_for_fn): The fixed adjustment
647290075Sobrien	of a virtual thunk should be from declaring base.
647352284Sobrien
647490075Sobrien2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
647552284Sobrien
647690075Sobrien	* class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
647790075Sobrien	the shared virtual base, so preserving inheritance graph order.
647848743Sobrien
647990075Sobrien2001-07-30  Andreas Jaeger  <aj@suse.de>
648048743Sobrien
648190075Sobrien	* decl2.c: Remove unused var global_temp_name_counter.
648248743Sobrien
648390075Sobrien2001-07-28  Richard Henderson  <rth@redhat.com>
648452284Sobrien
648590075Sobrien	* method.c (pending_inlines): Remove.
648652284Sobrien
648790075Sobrien2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
648852284Sobrien
648990075Sobrien	* class.c (mark_primary_virtual_base): Don't adjust base
649090075Sobrien	offsets here.
649190075Sobrien	(dfs_unshared_virtual_bases): Adjust them here.
649290075Sobrien	(mark_primary_bases): Explain why we adjust at the end.
649352284Sobrien
649490075Sobrien2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
649552284Sobrien
649690075Sobrien	* class.c (finish_struct_1): When copying the primary base's
649790075Sobrien	VFIELD, make sure we find it is at offset zero.
649852284Sobrien
649990075Sobrien2001-07-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
650052284Sobrien
650190075Sobrien	* pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
650290075Sobrien	tsubst_expr for default template arguments.
650352284Sobrien
650490075Sobrien2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
650552284Sobrien
650690075Sobrien	PR c++/3621
650790075Sobrien	* spew.c (yylex): Only copy the token's lineno, if it is
6508117395Skan	nonzero.
650952284Sobrien
651090075Sobrien2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
651152284Sobrien
651290075Sobrien	PR c++/3624
651390075Sobrien	* call.c (resolve_args): Simplify, call
651490075Sobrien	convert_from_reference.
651590075Sobrien	(build_new_op): Resolve and convert from reference ARG1
651690075Sobrien	earlier. Adjust ARG2 & ARG3 resolve and conversion.
651752284Sobrien
651890075Sobrien2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
651952284Sobrien
652090075Sobrien	* decl.c (last_function_parm_tags): Remove.
652190075Sobrien	(current_function_parm_tags): Remove.
652290075Sobrien	(init_decl_processing): Adjust.
652390075Sobrien	(start_function): Adjust.
652490075Sobrien	(store_parm_decls): Adjust.
652552284Sobrien
652690075Sobrien	PR c++/3152
652790075Sobrien	* decl.c (grokdeclarator): Detect when a function typedef is
652890075Sobrien	declaring a function, and create last_function_parms correctly.
652952284Sobrien
653090075Sobrien2001-07-25  Jason Merrill  <jason_merrill@redhat.com>
653152284Sobrien
653290075Sobrien	* call.c (joust): Only prefer a non-builtin candidate to a builtin
653390075Sobrien	one if they have the same signature.
653452284Sobrien
653590075Sobrien	* cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
653690075Sobrien	it rather than toplevel_bindings_p.  Give it a mangled name if static.
653790075Sobrien	(convert_to_reference): Adjust.
653890075Sobrien	* decl2.c (get_temp_name): Lose.
653990075Sobrien	* mangle.c (mangle_ref_init_variable): New fn.
654090075Sobrien	(mangle_guard_variable): Strip the ref-init header.
654190075Sobrien	* cp-tree.h: Adjust.
654290075Sobrien	* decl.c (cp_finish_decl): Add the DECL_STMT after processing the
654390075Sobrien	initializer.
654490075Sobrien	(grok_reference_init): Always use DECL_INITIAL.
654552284Sobrien
654690075Sobrien2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
654752284Sobrien
654890075Sobrien	PR c++/3416
654990075Sobrien	* call.c (build_conditional_expr): Recheck args after
655090075Sobrien	conversions.
655190075Sobrien	* cp-tree.h (build_conditional_expr): Move to correct file.
655290075Sobrien	* typeck.c (decay_conversion): Diagnose any unknown types
655390075Sobrien	reaching here.
655490075Sobrien	(build_binary_op): Don't do initial decay or default
655590075Sobrien	conversions on overloaded functions.
655690075Sobrien	(build_static_cast): Don't do a decay conversion here.
655752284Sobrien
655890075Sobrien2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
655952284Sobrien
656090075Sobrien	PR c++/3543
656190075Sobrien	* typeck.c (condition_conversion): Resolve an OFFSET_REF.
656290075Sobrien	* expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
656352284Sobrien
656490075Sobrien2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
656552284Sobrien
656690075Sobrien	* class.c (build_vtbl_or_vbase_field): Remove, move into ...
656790075Sobrien	(create_vtbl_ptr): ... here.
656852284Sobrien
656990075Sobrien2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
657052284Sobrien
657190075Sobrien	* class.c (build_vbase_offset_vbtl_entries): Look for
657290075Sobrien	non-primary base of which we are a sub vtable.
657352284Sobrien
657490075Sobrien2001-07-24  Phil Edwards  <pme@sources.redhat.com>
657552284Sobrien
657690075Sobrien	* semantics.c (finish_this_expr):  Remove unused code.
657752284Sobrien
657890075Sobrien2001-07-24  Nathan Sidwell  <nathan@codesourcery.com>
657952284Sobrien
658090075Sobrien	Simplify rtti, now we've only one ABI.
658190075Sobrien	* cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
658290075Sobrien	CPTI_TINFO_VAR_ID.
658390075Sobrien	(tinfo_decl_id, tinfo_var_id): Remove.
658490075Sobrien	(get_typeid_1): Remove.
658590075Sobrien	* rtti.c
658690075Sobrien	(init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
658790075Sobrien	(typeid_ok_p): New function.
658890075Sobrien	(build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
658990075Sobrien	(get_tinfo_decl): Remove old abi documentation.
659090075Sobrien	(tinfo_from_decl): Remove.
659190075Sobrien	(get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
659290075Sobrien	(get_typeid_1): Remove.
659390075Sobrien	(get_base_offset): Remove.
659490075Sobrien	(synthesize_tinfo_var): Absorb get_base_offset.
659590075Sobrien	(create_real_tinfo_var): Don't use tinfo_decl_id.
659652284Sobrien
659790075Sobrien2001-07-23  Graham Stott  <grahams@redhat.com>
659852284Sobrien
6599117395Skan	* cp/class.c (type_requires_array_cookie): Fix use of uninitialized
660090075Sobrien	variable has_two_argument_delete_p.
660152284Sobrien
660290075Sobrien2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
660352284Sobrien
660490075Sobrien	Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
660590075Sobrien	* cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
660690075Sobrien	(CPTI_INDEX_IDENTIFIER): Remove.
660790075Sobrien	(CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
660890075Sobrien	(delta2_identifier): Remove.
660990075Sobrien	(index_identifier): Remove.
661090075Sobrien	(pfn_or_delta2_identifier): Remove.
661190075Sobrien	(flag_vtable_thunks): Remove.
661290075Sobrien	(VTABLE_DELTA2_NAME): Remove.
661390075Sobrien	(VTABLE_INDEX_NAME): Remove.
661490075Sobrien	(FNADDR_FROM_VTABLE_ENTRY): Adjust.
661590075Sobrien	(vfunc_ptr_type_node): Adjust.
661690075Sobrien	(VTABLE_NAME_PREFIX): Adjust.
661790075Sobrien	(build_vfn_ref): Lose first parameter.
661890075Sobrien	(fixup_all_virtual_upcast_offsets): Remove.
661990075Sobrien	* decl.c (initialize_predefined_identifiers): Remove
662090075Sobrien	delta2_identifier, index_identifier, pfn_or_delta2_identifier.
662190075Sobrien	(init_decl_processing): Remove no-vtable-thunk code.
662290075Sobrien	* decl2.c (flag_vtable_thunks): Remove.
662390075Sobrien	(mark_vtable_entries): Remove no-vtable-thunk code.
662490075Sobrien	* error.c (dump_decl): Remove no-vtable-thunk code.
662590075Sobrien	(dump_expr): Adjust ptr to member function code.
662690075Sobrien	* init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
662790075Sobrien	code.
662890075Sobrien	* rtti.c (build_headof): Remove no-vtable-thunk code.
662990075Sobrien	(get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
663090075Sobrien	* search.c (get_base_distance): Remove expand_upcast_fixups case.
663190075Sobrien	(virtual_context) Remove.
663290075Sobrien	(expand_upcast_fixups): Remove.
663390075Sobrien	(fixup_virtual_upcast_offsets): Remove.
663490075Sobrien	(fixup_all_virtual_upcast_offsets): Remove.
663590075Sobrien	* typeck.c (get_member_function_from_ptrfunc): Remove
663690075Sobrien	no-vtable-thunk code.
663790075Sobrien	* call.c (build_over_call): Adjust call to build_vfn_ref.
663890075Sobrien	* class.c (build_vfn_ref): Lose first parameter. Remove
663990075Sobrien	no-vtable-thunk code.
664090075Sobrien	(build_rtti_vtbl_entries): Remove no-vtable-thunk code.
664190075Sobrien	(build_vtable_entry): Remove no-vtable-thunk code.
664252284Sobrien
664390075Sobrien2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
664452284Sobrien
664590075Sobrien	Remove old-abi remnants. Remove comments about old abi
6646117395Skan	behavior. Remove references to 'new-abi' in comments.
664790075Sobrien	* cp-tree.h: Adjust comments.
664890075Sobrien	(vbase_offsets_in_vtable_p): Delete.
664990075Sobrien	(vcall_offsets_in_vtable_p): Delete.
665090075Sobrien	(vptrs_present_everywhere_p): Delete.
665190075Sobrien	(all_overridden_vfuns_in_vtables_p): Delete.
665290075Sobrien	(merge_primary_and_secondary_vtables_p): Delete.
665390075Sobrien	(TYPE_CONTAINS_VPTR_P): Adjust.
665490075Sobrien	(VTT_NAME_PREFIX): Remove.
665590075Sobrien	(CTOR_VTBL_NAME_PREFIX): Remove.
665690075Sobrien	(init_vbase_pointers): Remove.
665790075Sobrien	* class.c: Adjust coments.
665890075Sobrien	(build_vbase_pointer_fields): Delete.
665990075Sobrien	(build_vbase_pointer): Remove old-abi code.
666090075Sobrien	(build_secondary_vtable): Likewise.
666190075Sobrien	(modify_all_vtables): Likewise.
666290075Sobrien	(create_vtable_ptr): Likewise.
666390075Sobrien	(layout_class_type): Likewise.
666490075Sobrien	(finish_struct_1): Likewise.
666590075Sobrien	(finish_vtbls): Likewise.
666690075Sobrien	(dfs_finish_vtbls): Delete.
666790075Sobrien	(build_vbase_offset_vtbl_entries): Remove old-abi code.
666890075Sobrien	* cvt.c: Adjust comments.
666990075Sobrien	* decl.c: Adjust comments.
667090075Sobrien	* decl2.c: Adjust comments.
667190075Sobrien	* init.c: Adjust comments.
667290075Sobrien	(construct_virtual_bases): Remove old-abi code.
667390075Sobrien	* lang-specs.h: Remove -fno-new-abi.
667490075Sobrien	* mangle.c: Adjust comments.
667590075Sobrien	* rtti.c: Adjust comments.
667690075Sobrien	(get_base_offset): Remove old-abi-code.
667790075Sobrien	* search.c: Adjust comments.
667890075Sobrien	(dfs_init_vbase_pointers): Remove.
667990075Sobrien	(dfs_vtable_path_unmark): Remove.
668090075Sobrien	(init_vbase_pointers): Remove.
668190075Sobrien	* semantics.c: Adjust comments.
668290075Sobrien	(emit_associated_thunks): Remove old-abi code.
668390075Sobrien	* typeck.c: Adjust comments.
668452284Sobrien
668590075Sobrien2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
668652284Sobrien
668790075Sobrien	* Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
668890075Sobrien	params.h.
668952284Sobrien
669090075Sobrien2001-07-19  Mark Mitchell  <mark@codesourcery.com>
669152284Sobrien
669290075Sobrien	* class.c (finish_struct_anon): Forbid nested classes.
669352284Sobrien
669490075Sobrien2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
669552284Sobrien
669690075Sobrien	* decl2.c: Don't include dwarfout.h and dwarf2out.h.
669790075Sobrien	* optimize.c: Include debug.h.
669890075Sobrien	(maybe_clone_body): Use debug hook.
669990075Sobrien	* semantics.c: Include debug.h.
670090075Sobrien	(expand_body): Use debug hook.
670152284Sobrien
670290075Sobrien2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
670352284Sobrien
670490075Sobrien	* spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
670552284Sobrien
670690075Sobrien2001-07-18  Mark Mitchell  <mark@codesourcery.com>
670752284Sobrien
670890075Sobrien	* class.c (type_requires_array_cookie): New function.
670990075Sobrien	(check_methods): Don't try to figure out whether the type needs a
671090075Sobrien	cookie here.
671190075Sobrien	(check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
671290075Sobrien	* cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
671390075Sobrien	(TYPE_VEC_NEW_USES_COOKIE): Reimplement.
671490075Sobrien	* pt.c (instantiate_class_template): Don't set
671590075Sobrien	TYPE_VEC_DELETE_TAKES_SIZE.
671690075Sobrien	* NEWS: Document ABI changes from GCC 3.0.
671752284Sobrien
671890075Sobrien2001-07-18  Xavier Delacour <xavier@fmaudio.net>,
671990075Sobrien	    Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
672052284Sobrien
672190075Sobrien	* NEWS (Changes in GCC 3.0): Fix typo.
672252284Sobrien
672390075Sobrien2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
672452284Sobrien
672590075Sobrien	* decl2.c (cplus_decl_attributes): Take a pointer to the node to
672690075Sobrien	which attributes are to be attached, and a flags argument.  Update
672790075Sobrien	call to decl_attributes.
672890075Sobrien	(grokfield): Update call to decl_attributes.
672990075Sobrien	* class.c (finish_struct): Update call to cplus_decl_attributes.
673090075Sobrien	* cp-tree.h (cplus_decl_attributes): Update prototype.
673190075Sobrien	* decl.c (start_decl, grokdeclarator, start_function): Update
673290075Sobrien	calls to decl_attributes and cplus_decl_attributes.
673390075Sobrien	* friend.c (do_friend): Update call to cplus_decl_attributes.
673490075Sobrien	* parse.y (parse_bitfield): Update call to cplus_decl_attributes.
673552284Sobrien
673690075Sobrien2001-07-12  Mark Mitchell  <mark@codesourcery.com>
673752284Sobrien
673890075Sobrien	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
673990075Sobrien	for `register' variables with an asm-specification.
674052284Sobrien
674190075Sobrien2001-07-11  Mark Mitchell  <mark@codesourcery.com>
674252284Sobrien
674390075Sobrien	* semantics.c (finish_asm_stmt): Mark the output operands
674490075Sobrien	to an asm addressable, if necessary.
674552284Sobrien
674690075Sobrien2001-07-11  Ben Elliston  <bje@redhat.com>
674748743Sobrien
674890075Sobrien	* Revert this change -- there is a subtle bug.
674918334Speter
675090075Sobrien	PR c++/80
675190075Sobrien	* decl.c (finish_enum): New "attributes" argument; pass it to
675290075Sobrien	cplus_decl_attributes.  Use a narrower type if the enum is packed.
675390075Sobrien	* cp-tree.h (finish_enum): Adjust prototype.
675490075Sobrien	* parse.y (enum_head): New non-terminal.
675590075Sobrien	(structsp): Use it. Enums now may be preceded or followed by
675690075Sobrien	optional attributes -- pass their chained tree to finish_enum().
675790075Sobrien	* pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
675818334Speter
675990075Sobrien2001-07-10  Mark Mitchell  <mark@codesourcery.com>
676052284Sobrien
676190075Sobrien	* pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
676290075Sobrien	variables.
676352284Sobrien
676490075Sobrien2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
676552284Sobrien
676690075Sobrien	* semantics.c (cp_expand_stmt): Fix for null
676790075Sobrien	current_function_return_value.
676852284Sobrien
676990075Sobrien2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
677052284Sobrien
677190075Sobrien	* call.c (build_op_delete_call): Initialize fn.
677290075Sobrien	(convert_like_real): Delete conditional.
677390075Sobrien	(joust): Initialize *w and *l.
677490075Sobrien	* class.c: Add prototype for binfo_ctor_vtable.
677590075Sobrien	(get_primary_binfo): Initialize result.
677690075Sobrien	* init.c (build_java_class_ref): Initialize name.
677752284Sobrien
677890075Sobrien2001-07-09  Erik Rozendaal  <dlr@acm.org>
677952284Sobrien
678090075Sobrien	* typeck.c (unary_complex_lvalue): Do not duplicate the
678190075Sobrien	argument to modify, pre-, or post-increment when used as an
678290075Sobrien	lvalue and when the argument has side-effects.
678352284Sobrien
678490075Sobrien2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
678552284Sobrien
678690075Sobrien	* decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
678790075Sobrien	(start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES.  Call
678890075Sobrien	cplus_decl_attributes even if attrs is NULL.
678990075Sobrien	* friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
679052284Sobrien
679190075Sobrien2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
679252284Sobrien
679390075Sobrien	* decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
679490075Sobrien	calls to decl_attributes.
679552284Sobrien
679690075Sobrien2001-07-06  Ira Ruben   <ira@apple.com>
679752284Sobrien
679890075Sobrien	* cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
679990075Sobrien	be DECL_TEMPLATE_RESULT.
680052284Sobrien
680190075Sobrien2001-07-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
680252284Sobrien
680390075Sobrien	* cp-tree.h (copy_template_template_parm): Rename to ...
680490075Sobrien	(bind_template_template_parm): ... here.
680590075Sobrien	* tree.c (copy_template_template_parm): Rename to ...
680690075Sobrien	(bind_template_template_parm): ... here.  Remove the case when
680790075Sobrien	NEWARGS is NULL_TREE.
680890075Sobrien	(copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
680990075Sobrien	BOUND_TEMPLATE_TEMPLATE_PARM.
681090075Sobrien	* pt.c (lookup_template_class): Adjust.
681152284Sobrien
681290075Sobrien2001-07-05  Jason Merrill  <jason_merrill@redhat.com>
681352284Sobrien
681490075Sobrien	* cvt.c (convert_lvalue): New fn.
681590075Sobrien	* cp-tree.h: Declare it.
681690075Sobrien	* method.c (do_build_assign_ref): Use it.
681790075Sobrien	(do_build_copy_constructor): Convert parm to base types
681890075Sobrien	before calling base constructors.
681952284Sobrien
682090075Sobrien	* typeck.c (check_return_expr): Check DECL_ALIGN instead of
682190075Sobrien	DECL_USER_ALIGN.  Check flag_elide_constructors instead of
682290075Sobrien	optimize.
682390075Sobrien	* semantics.c (cp_expand_stmt): Don't destroy the named return value.
682452284Sobrien
682590075Sobrien2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
682652284Sobrien
682790075Sobrien	* optimize.c (optimize_inline_calls): New function, broken out
682890075Sobrien	of ...
682990075Sobrien	(optimize_function): ... here. Call it. Don't inline if it is
683090075Sobrien	a thunk.
683190075Sobrien	(dump_function): Print name of dump flag causing this dump.
683290075Sobrien	* semantics.c (expand_body): Move thunk inline check to
683390075Sobrien	optimize_function.
683452284Sobrien
683590075Sobrien2001-06-29  Joseph S. Myers  <jsm28@cam.ac.uk>
683652284Sobrien
683790075Sobrien	* typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
683890075Sobrien	(comptypes): Use target.comp_type_attributes.
683952284Sobrien
684090075Sobrien2001-06-29  Nathan Sidwell  <nathan@codesourcery.com>
684152284Sobrien
684290075Sobrien	* cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
684352284Sobrien
684490075Sobrien2001-06-28  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
684552284Sobrien
684690075Sobrien	* error.c (lang_print_error_function): Add a `diagnostic_context *'
684790075Sobrien	parameter. Tweak.
684852284Sobrien
684990075Sobrien2001-06-27  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
685052284Sobrien
685190075Sobrien	* decl2.c (import_export_class): Update.
685252284Sobrien
685390075Sobrien2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
685452284Sobrien
685590075Sobrien	* error.c (init_error): Adjust settings.
685652284Sobrien
685790075Sobrien2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
685852284Sobrien
685990075Sobrien	* error.c (init_error): Adjust settings.
686052284Sobrien
686190075Sobrien2001-06-19  Richard Sandiford  <rsandifo@redhat.com>
686252284Sobrien
686390075Sobrien	* except.c (initialize_handler_parm): Expect __cxa_begin_catch to
686490075Sobrien	return pointers to data members by reference rather than by value.
686552284Sobrien
686690075Sobrien2001-06-18  Jason Merrill  <jason_merrill@redhat.com>
686752284Sobrien
686890075Sobrien	Implement the Named Return Value optimization.
686990075Sobrien	* cp-tree.h (struct cp_language_function): Add x_return_value.
687090075Sobrien	(current_function_return_value): Now a macro.
687190075Sobrien	* decl.c: Don't define it.
687290075Sobrien	(define_label, finish_case_label): Don't clear it.
687390075Sobrien	(init_decl_processing): Don't register it with GC.
687490075Sobrien	* semantics.c (genrtl_finish_function): Don't check it for
687590075Sobrien	no_return_label.  Copy the RTL from the return value to
687690075Sobrien	current_function_return_value and walk, calling...
687790075Sobrien	(nullify_returns_r): ...this new fn.
687890075Sobrien	* typeck.c (check_return_expr): Set current_function_return_value.
687952284Sobrien
688090075Sobrien2001-06-15  Jason Merrill  <jason_merrill@redhat.com>
688152284Sobrien
688290075Sobrien	* class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
688390075Sobrien	sharing a ctor vtable with.  Merge code for cases 1 and 2.
688490075Sobrien	(binfo_ctor_vtable): New fn.
688590075Sobrien	(build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
688652284Sobrien
688790075Sobrien2001-06-14  Jason Merrill  <jason_merrill@redhat.com>
688852284Sobrien
688990075Sobrien	* class.c (dfs_find_final_overrider): Fix logic.
689052284Sobrien
689190075Sobrien	* class.c (update_vtable_entry_for_fn): Uncomment optimization to use
689290075Sobrien	virtual thunk instead of non-virtual.
689390075Sobrien	(get_matching_virtual): Uncomment.
689452284Sobrien
689590075Sobrien	* pt.c (unify): Don't recurse between the POINTER_TYPE and the
689690075Sobrien	OFFSET_TYPE.  If we're adding cv-quals, the extra ones would be on
689790075Sobrien	PARM, not ARG.
689852284Sobrien
689990075Sobrien2001-06-14  Nathan Sidwell  <nathan@codesourcery.com>
690052284Sobrien
690190075Sobrien	* class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
690290075Sobrien	we've not emerged from the hierarchy of RTTI_BINFO on reaching
690390075Sobrien	a non-virtual base.
690452284Sobrien
690590075Sobrien2001-06-13  Mark Mitchell  <mark@codesourcery.com>
690652284Sobrien
690790075Sobrien	* NEWS: Update release number.
690852284Sobrien
690990075Sobrien2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
691052284Sobrien
691190075Sobrien	PR c++/3130, c++/3131, c++/3132
691290075Sobrien	* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
691390075Sobrien	* class.c (force_canonical_binfo_r): Move
691490075Sobrien	BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
691590075Sobrien	virtual bases unless they're primary and what they're primary
691690075Sobrien	too has been moved.
691790075Sobrien	(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
691890075Sobrien	with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
691990075Sobrien	BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
692090075Sobrien	derived binfo.
692190075Sobrien	(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
692290075Sobrien	(layout_nonempty_base_or_field): Add most derived type
692390075Sobrien	parameter. Adjust.
692490075Sobrien	(layout_empty_base): Likewise.
692590075Sobrien	(build_base_field): Likewise.
692690075Sobrien	(build_base_fields): Likewise.
692790075Sobrien	(propagate_binfo_offsets): Add most derived type
692890075Sobrien	parameter. Skip non canonical virtual bases too.
692990075Sobrien	(dfs_set_offset_for_unshared_vbases): Don't skip primary
693090075Sobrien	bases. Do skip canonical bases.
693190075Sobrien	(layout_virtual_bases): Adjust.
693290075Sobrien	(layout_class_type): Adjust.
693390075Sobrien	(dfs_get_primary_binfo): Build list of virtual primary base
693490075Sobrien	candidates.
693590075Sobrien	(get_primary_binfo): Check that the shared virtual primary
693690075Sobrien	base candidate was found first.
693790075Sobrien	(accumulate_vtbl_inits): Don't do anything for non-vptr
693890075Sobrien	containing binfos. For case 1 primary virtual bases, keep
693990075Sobrien	checking that we've not emerged from the hierarchy of RTTI_BINFO.
694052284Sobrien
694190075Sobrien2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
694252284Sobrien
694390075Sobrien	PR c++/3089
694490075Sobrien	* class.c (dfs_accumulate_vtbl_inits): Always walk down the
694590075Sobrien	hierarchy looking for primary bases for a ctor
694690075Sobrien	vtable. Recursively call oneself, if we meet our primary via
694790075Sobrien	this route and haven't met it yet via inheritance graph order.
694852284Sobrien
694990075Sobrien2001-06-11  Mark Mitchell  <mark@codesourcery.com>
695052284Sobrien
695190075Sobrien	* lang-options.h: Emit documentation for -fno-honor-std, not
695290075Sobrien	-fhonor-std.
695352284Sobrien
695490075Sobrien2001-06-10  Alexandre Oliva  <aoliva@redhat.com>
695552284Sobrien
695690075Sobrien	* typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
695790075Sobrien	Don't clobber delta.
695890075Sobrien	(expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
695952284Sobrien
696090075Sobrien2001-06-10  Mark Mitchell <mark@codesourcery.com>
696190075Sobrien	    Gabriel Dos Reis  <gdr@codesourcery.com>
696252284Sobrien
696390075Sobrien	* Make-lang.in (cp/call.o): Depend on diagnostic.h
696490075Sobrien	(cp/typeck.o): Depend on diagnostic.h
696590075Sobrien	(cp/typeck2.o): Depend on diagnostic.h
696690075Sobrien	(cp/repo.o): Depend on dignostic.h
696790075Sobrien	* typeck.c: #include diagnostic.h
696890075Sobrien	(convert_for_initialization): Remove extern declaration for
696990075Sobrien	warningcount and errorcount.
697052284Sobrien
697190075Sobrien	* call.c: #include diagnostic.h
697290075Sobrien	(convert_like_real): Remove extern declaration for warnincount and
697390075Sobrien	errorcount.
697452284Sobrien
697590075Sobrien	* repo.c: #include diagnostic.h
697690075Sobrien	* typeck2.c: #include diagnostic.h
697752284Sobrien
697890075Sobrien2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
697952284Sobrien
698090075Sobrien	* decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
698190075Sobrien	in previous change.
698252284Sobrien
698390075Sobrien2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
698452284Sobrien
698590075Sobrien	PR c++/2929
698690075Sobrien	* friend.c (do_friend): Use push_decl_namespace for classes at
698790075Sobrien	namespace scope.
698852284Sobrien
698990075Sobrien2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
699090075Sobrien	    Jason Merrill <jason_merrill@redhat.com>
699152284Sobrien
699290075Sobrien	PR c++/3061
699390075Sobrien	* class.c (build_secondary_vtable): Use assert, rather than an error
699490075Sobrien	message.
699590075Sobrien	(dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
699690075Sobrien	(dfs_accumulate_vtbl_inits): A lost primary virtual base may
699790075Sobrien	be between ORIG_BINFO and RTTI_BINFO, but neither of them.
699890075Sobrien	Don't set BINFO_VTABLE for a primary virtual base.
699952284Sobrien
700090075Sobrien2001-06-07  Mark Mitchell  <mark@codesourcery.com>
700152284Sobrien
700290075Sobrien	* decl.c (duplicate_decls): Update source position information
700390075Sobrien	when a template function is defined.
700452284Sobrien
700590075Sobrien2001-06-07  Phil Edwards  <pme@sources.redhat.com>
700652284Sobrien
700790075Sobrien	* lang-specs.h:  Move -D_GNU_SOURCE to config/linux.h.
700852284Sobrien
700990075Sobrien2001-06-07  Nathan Sidwell  <nathan@codesourcery.com>
701052284Sobrien
701190075Sobrien	PR c++/2914
701290075Sobrien	* decl.c (pushtag): Don't push into a complete type's scope.
701352284Sobrien
701490075Sobrien2001-06-06  Jason Merrill  <jason_merrill@redhat.com>
701552284Sobrien
701690075Sobrien	* cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
701790075Sobrien	(struct lang_decl_flags): Lose generate_with_vtable_p.
701890075Sobrien	(BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
701990075Sobrien	* class.c (copy_virtuals): Adjust.
702090075Sobrien	* decl2.c (mark_vtable_entries): Adjust.
702190075Sobrien	* method.c (make_thunk, build_vtable_entry): Adjust.
702290075Sobrien	* class.c (update_vtable_entry_for_fn): Only look as far as the
702390075Sobrien	first defining class.
702490075Sobrien	(build_vtbl_initializer): Put nothing in the slot for a function only
702590075Sobrien	defined in a lost primary virtual base.
702690075Sobrien	(add_vcall_offset_vtbl_entries_1): Use the same code for
702790075Sobrien	the lost primary case and the normal case.
702890075Sobrien	(dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
702990075Sobrien	(get_vfield_offset, get_derived_offset): Lose.
703090075Sobrien	(dfs_find_final_overrider): Use look_for_overrides_here.
703190075Sobrien	(get_matching_virtual): New fn.
703290075Sobrien	* semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
703390075Sobrien	not BV_VCALL_INDEX.
703490075Sobrien	* search.c (look_for_overrides_here): Split out from...
703590075Sobrien	(look_for_overrides_r): Here.
703652284Sobrien
703790075Sobrien	* class.c (find_final_overrider): Return error_mark_node on error.
703852284Sobrien
703990075Sobrien	* decl2.c (key_method): #if 0 accidental change.
704052284Sobrien
704190075Sobrien2001-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
704252284Sobrien
704390075Sobrien	* call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
704490075Sobrien	(build_over_call): Likewise.
704590075Sobrien	* decl.c (grokparms): Likewise.
704690075Sobrien	* pt.c (tsubst_decl): Likewise.
704790075Sobrien	* typeck.c (convert_arguments): Likewise.
704852284Sobrien
704990075Sobrien2001-06-05  Mark Mitchell  <mark@codesourcery.com>
705052284Sobrien
705190075Sobrien	* semantics.c (begin_class_definition): Robustify.
705252284Sobrien
705390075Sobrien	* pt.c (instantiate_decl): Tell the repository code about the
705490075Sobrien	clones, not the cloned functions.
705590075Sobrien	* repo.c (repo_template_used): Explicitly instantiate the cloned
705690075Sobrien	function, not the clones.
705752284Sobrien
705890075Sobrien2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
705952284Sobrien
706090075Sobrien	* call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
706190075Sobrien	ICS_BAD_FLAG on created conversion.
706290075Sobrien	(compare_ics): Break out rank.
706352284Sobrien
706490075Sobrien2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
706552284Sobrien
706690075Sobrien	* decl.c (xref_tag): Remove extraneous %s on dependent name
706790075Sobrien	lookup warning.
706852284Sobrien
706990075Sobrien2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
707052284Sobrien
707190075Sobrien	* class.c (layout_vtable_decl): Fix off by one error on
707290075Sobrien	build_index_type.
707390075Sobrien	(build_vtt): Likewise.
707490075Sobrien	(build_ctor_vtbl_group): Likewise.
707552284Sobrien
707690075Sobrien2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
707752284Sobrien
707890075Sobrien	* class.c (maybe_indent_hierarchy): New function.
707990075Sobrien	(dump_class_hierarchy_r): Add flags. Dump extra binfo
708090075Sobrien	information, if enabled. Use maybe_indent_hierarchy. Adjust
708190075Sobrien	output format.
708290075Sobrien	(dump_class_hierarchy): Adjust prototype. Adjust output format.
708390075Sobrien	(dump_array, dump_vtable, dump_vtt): New functions.
708490075Sobrien	(finish_struct_1): Adjust hierarchy dumping.
708590075Sobrien	(initialize_vtable): Call dump_vtable.
708690075Sobrien	(build_vtt): Call dump_vtt.
708790075Sobrien	(build_ctor_vtbl_group): Call dump_vtable.
708890075Sobrien	* decl2.c (flag_dump_class_layout): Remove.
708990075Sobrien	(cxx_decode_option): Remove dump translation unit
709090075Sobrien	and dump class hierarchy check. Call dump_switch_p.
709190075Sobrien	(finish_file): Adjust dumping.
709290075Sobrien	(dump.c): Only dump base classes if not TDF_SLIM.
709390075Sobrien	Only dump namespace members if not TDF_SLIM.
709490075Sobrien	* optimize.c (dump_function): New function.
709590075Sobrien	(optimize_function): Call dump_function.
709690075Sobrien	* semantics.c (expand_body): Use dump_enabled_p.
709752284Sobrien
709890075Sobrien2001-06-01  Nathan Sidwell  <nathan@codesourcery.com>
709952284Sobrien
710090075Sobrien	PR g++/2936
710190075Sobrien	Part missed from first commit
710290075Sobrien	* decl2.c (finish_anon_union): Copy context.
710352284Sobrien
710490075Sobrien2001-05-30  Nathan Sidwell  <nathan@codesourcery.com>
710552284Sobrien
710690075Sobrien	PR g++/2936
710790075Sobrien	* optimize.c (remap_decl): Remap anonymous aggregate members too.
710852284Sobrien
710990075Sobrien2001-05-26  Nathan Sidwell  <nathan@codesourcery.com>
711052284Sobrien
711190075Sobrien	PR g++/2823
711290075Sobrien	* semantics.c (expand_body): Don't optimize thunks.
711352284Sobrien
711490075Sobrien2001-05-25  Sam TH  <sam@uchicago.edu>
711552284Sobrien
711690075Sobrien	* cp-tree.h lex.h: Fix header include guards.
711752284Sobrien
711890075Sobrien2001-05-25  Mark Mitchell <mark@codesourcery.com>
711952284Sobrien
712090075Sobrien	* decl.c (init_decl_processing): Tweak.
712152284Sobrien
712290075Sobrien2001-05-24  Mark Mitchell  <mark@codesourcery.com>
712352284Sobrien
712490075Sobrien	* decl.c (duplicate_decls): Tidy.
712590075Sobrien	(init_decl_processing): Always set flag_no_builtin.
712652284Sobrien
712790075Sobrien2001-05-24  Nathan Sidwell  <nathan@codesourcery.com>
712852284Sobrien
712990075Sobrien	PR c++/2184
713090075Sobrien	* decl2.c (do_local_using_decl): Push the decls, even in a
713190075Sobrien	template.
713252284Sobrien
713390075Sobrien2001-05-22  Mark Mitchell  <mark@codesourcery.com>
713452284Sobrien
713590075Sobrien	* optimize.c (initialize_inlined_parameters): Don't set
713690075Sobrien	TREE_READONLY for a VAR_DECL taking the place of an inlined
713790075Sobrien	PARM_DECL.
713852284Sobrien
713990075Sobrien2001-05-22  Jason Merrill  <jason_merrill@redhat.com>
714052284Sobrien
714190075Sobrien	* class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
714290075Sobrien	* tree.c (cp_valid_lang_attribute): Warn about use of com_interface
714390075Sobrien	attribute.
714452284Sobrien
714590075Sobrien2001-05-22  Joseph S. Myers  <jsm28@cam.ac.uk>
714652284Sobrien
714790075Sobrien	* parse.y: Refer to compound literals as such, not as
714890075Sobrien	constructor-expressions.
714952284Sobrien
715090075Sobrien2001-05-21  Mark Mitchell  <mark@codesourcery.com>
715152284Sobrien
715290075Sobrien	* call.c (build_op_delete_call): Ignore exception-specifications
715390075Sobrien	when looking for matching delete operators.
715490075Sobrien	* init.c (build_new_1): Compute whether or not the allocation
715590075Sobrien	function used is a placement allocation function or not, and
715690075Sobrien	communicate this information to build_op_delete_call.
715752284Sobrien
715890075Sobrien2001-05-21  Jason Merrill  <jason_merrill@redhat.com>
715952284Sobrien
716090075Sobrien	* class.c (build_vtable_entry_ref): Lose vtbl parm.  Fix for new abi.
716190075Sobrien	(build_vtbl_ref): Adjust.
716290075Sobrien	(dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
716390075Sobrien	* decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
716490075Sobrien	Re-add vtable-gc.
716590075Sobrien	(unsupported_options): Correspondingly.
716652284Sobrien
716790075Sobrien	* decl2.c (maybe_make_one_only): Check flag_weak, not
716890075Sobrien	supports_one_only().
716952284Sobrien
717090075Sobrien	* cp-tree.def (START_CATCH_STMT): Lose.
717190075Sobrien	* dump.c (cp_dump_tree): Don't dump it.  Do dump HANDLER_PARMS.
717290075Sobrien	* tree.c (cp_statement_code_p): Don't case it.
717390075Sobrien	* semantics.c (cp_expand_stmt): Likewise.
717490075Sobrien	* cp-tree.h (START_CATCH_TYPE): Lose.
717590075Sobrien	(HANDLER_TYPE): New.
717690075Sobrien	* except.c (expand_start_catch_block): Don't start any blocks.
717790075Sobrien	Return the type.
717890075Sobrien	(expand_end_catch_block): Don't end any blocks.
717990075Sobrien	* parse.y (handler): Don't pass anything from finish_handler_parms
718090075Sobrien	to finish_handler.
718190075Sobrien	* pt.c (tsubst_expr): Likewise.
718290075Sobrien	* semantics.c (begin_handler): Call note_level_for_catch here.
718390075Sobrien	(finish_handler_parms): Don't return anything.
718490075Sobrien	(genrtl_catch_block, begin_catch_block): Lose.
718590075Sobrien	(genrtl_handler): Call expand_start_catch here.
718652284Sobrien
718790075Sobrien2001-05-18  Jason Merrill  <jason_merrill@redhat.com>
718852284Sobrien
718990075Sobrien	* class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
719090075Sobrien	(get_vtable_decl, build_vtt): Not here.
719152284Sobrien
719290075Sobrien2001-05-20  Nathan Sidwell  <nathan@codesourcery.com>
719352284Sobrien
719490075Sobrien	PR c++/2781
719590075Sobrien	* optimize.c (update_cloned_parm): Copy addressability and other
719690075Sobrien	flags.
719752284Sobrien
719890075Sobrien2001-05-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
719952284Sobrien
720090075Sobrien	* pt.c (determine_specialization): Ignore artificial functions.
720152284Sobrien
720290075Sobrien2001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>
720352284Sobrien
720490075Sobrien	* cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
720590075Sobrien	(C_RID_CODE): Remove.
720690075Sobrien	* lex.c (cxx_init_options): Call set_identifier_size.  Update.
720790075Sobrien	(init_parse): Don't do it here.
720852284Sobrien
720990075Sobrien2001-05-18  Diego Novillo  <dnovillo@redhat.com>
721052284Sobrien
721190075Sobrien	* decl2.c (finish_objects): Use the original SYMBOL_REF from the
721290075Sobrien	function declaration to avoid stripping the symbol's attributes.
721352284Sobrien
721490075Sobrien2001-05-18  Nathan Sidwell  <nathan@codesourcery.com>
721552284Sobrien
721690075Sobrien	* decl.c (pushdecl): Adjust error string.
721790075Sobrien	(xref_tag): Adjust friend class injection warning. Remove the
721890075Sobrien	inherited name from the class shadowed scope.
721952284Sobrien
722090075Sobrien2001-05-17  Mark Mitchell  <mark@codesourcery.com>
722152284Sobrien
722290075Sobrien	* except.c (cp_protect_cleanup_actions): New function.
722390075Sobrien	(init_exception_processing): Don't set protect_cleanup_actions
722490075Sobrien	here.  Do set lang_protect_cleanup_actions.
722552284Sobrien
722690075Sobrien2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
722752284Sobrien
722890075Sobrien	* spew.c (read_token): Call yyerror on all unexpected tokens.
722952284Sobrien
723090075Sobrien2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
723152284Sobrien
723290075Sobrien	* init.c (member_init_ok_or_else): Take a tree rather than
723390075Sobrien	string for name.
723490075Sobrien	(expand_member_init): Adjust.
723552284Sobrien
723690075Sobrien2001-05-14  Nick Clifton  <nickc@cambridge.redhat.com>
723752284Sobrien
723890075Sobrien	* decl.c (duplicate_decls): Suppress warning about duplicate
723990075Sobrien	decls if the first decl is a friend.
724052284Sobrien
724190075Sobrien2001-05-12  Zack Weinberg  <zackw@stanford.edu>
724252284Sobrien
724390075Sobrien	* except.c (choose_personality_routine): Export.  Add
724490075Sobrien	explanatory comment.  Take an enum languages, not a boolean.
724590075Sobrien	(initialize_handler_parm): Adjust to match.
724690075Sobrien	* cp-tree.h: Prototype choose_personality_routine.
724790075Sobrien	* lex.c (handle_pragma_java_exceptions): New function.
724890075Sobrien	(init_cp_pragma): Register #pragma GCC java_exceptions.
724952284Sobrien
725090075Sobrien2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
725152284Sobrien
725290075Sobrien	* method.c (build_mangled_C99_name): Remove unused prototype.
725352284Sobrien
725490075Sobrien2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
725552284Sobrien
725690075Sobrien	* cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
725790075Sobrien	* typeck.c (get_member_function_from_ptrfunc,
725890075Sobrien	build_ptrmemfunc, expand_ptrmemfunc_cst): Take
725990075Sobrien	TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
726052284Sobrien
726190075Sobrien	Reverted Geoff Keating's 2001-05-03's patch.
726252284Sobrien
726390075Sobrien2001-05-11  Ira Ruben	<ira@apple.com>
726452284Sobrien
726590075Sobrien	* cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
726652284Sobrien
726790075Sobrien2001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
726852284Sobrien
726990075Sobrien	* cp-tree.h (finish_label_expr, lookup_label): Delete.
727090075Sobrien	* parse.y: Update for '&&'; don't issue warning here.
727190075Sobrien	* semantics.c (finish_label_expr): Delete.
727252284Sobrien
727390075Sobrien2001-05-07  Mark Mitchell  <mark@codesourcery.com>
727452284Sobrien
727590075Sobrien	* splay-tree.h (splay_tree_max): New function.
727690075Sobrien	(splay_tree_min): Likewise.
727752284Sobrien
727890075Sobrien2001-05-03  Geoffrey Keating  <geoffk@redhat.com>
727952284Sobrien
728090075Sobrien	* cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
728190075Sobrien	(pfn_vflag_identifier): Define.
728290075Sobrien	Update comment about layout of pointer functions.
728390075Sobrien	(build_ptrmemfunc1): Update prototype.
728490075Sobrien	(expand_ptrmemfunc_cst): Update prototype.
728590075Sobrien	* decl.c (initialize_predefined_identifiers): Initialize
728690075Sobrien	pfn_vflag_identifier.
728790075Sobrien	(build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
728890075Sobrien	an extra field to the type.
728990075Sobrien	* expr.c (cplus_expand_constant): Pass 'flag' between
729090075Sobrien	expand_ptrmemfunc_cst and build_ptrmemfunc1.
729190075Sobrien	* typeck.c (get_member_function_from_ptrfunc): When
729290075Sobrien	FUNCTION_BOUNDARY < 16, look at additional field to determine
729390075Sobrien	if a pointer-to-member is a real pointer or a vtable offset.
729490075Sobrien	(build_ptrmemfunc1): Add new parameter to contain extra field.
729590075Sobrien	(build_ptrmemfunc): Pass the extra field around.
729690075Sobrien	(expand_ptrmemfunc_cst): Add new parameter to return extra field.
729790075Sobrien	(pfn_from_ptrmemfunc): Ignore the extra field.
729852284Sobrien
729990075Sobrien2001-05-03  Mark Mitchell  <mark@codesourcery.com>
730052284Sobrien
730190075Sobrien	* cp-tree.h (flag_inline_trees): Update documentation.
730290075Sobrien	* decl.c (init_decl_processing): Adjust handling of
730390075Sobrien	flag_inline_functions and flag_inline_trees to support -O3.
730490075Sobrien	(grokfndecl): Set DECL_INLINE on all functions if that's what
730590075Sobrien	the user requested.
730690075Sobrien	(save_function_data): Clear DECL_INLINE in
730790075Sobrien	current_function_cannot_inline is non-NULL.
730890075Sobrien	* decl2.c (flag_inline_trees): Update documentation.
730952284Sobrien
731090075Sobrien2001-05-03  Nathan Sidwell  <nathan@codesourcery.com>
731152284Sobrien
731290075Sobrien	* dump.c (cp_dump_tree, USING_STMT case): New case.
731390075Sobrien	* tree.c (cp_statement_code_p): Add USING_STMT.
731490075Sobrien	* decl2.c (do_using_directive): Add the using directive statement.
731552284Sobrien
731690075Sobrien	* tree.c (walk_tree): Reformat an if block.
731752284Sobrien
731890075Sobrien2001-05-02  Mark Mitchell  <mark@codesourcery.com>
731952284Sobrien
732090075Sobrien	* decl.c (compute_array_index_type): Don't try to do anything with
732190075Sobrien	the indices when processing a template.
732252284Sobrien
732390075Sobrien2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
732452284Sobrien
732590075Sobrien	* call.c: NULL_PTR -> NULL.
732690075Sobrien	* class.c: Likewise.
732790075Sobrien	* cvt.c: Likewise.
732890075Sobrien	* decl.c: Likewise.
732990075Sobrien	* decl2.c: Likewise.
733090075Sobrien	* except.c: Likewise.
733190075Sobrien	* init.c: Likewise.
733290075Sobrien	* rtti.c: Likewise.
733390075Sobrien	* search.c: Likewise.
733490075Sobrien	* tree.c: Likewise.
733590075Sobrien	* typeck.c: Likewise.
733690075Sobrien	* typeck2.c: Likewise.
733752284Sobrien
733890075Sobrien2001-05-02  Mark Mitchell  <mark@codesourcery.com>
733952284Sobrien
734090075Sobrien	* decl2.c (do_using_directive): Revert previous patch.
734152284Sobrien
734290075Sobrien2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
734352284Sobrien
734490075Sobrien	* cp-tree.def (USING_STMT): New statement node.
734590075Sobrien	* cp-tree.h (USING_STMT_NAMESPACE): New macro.
734690075Sobrien	* decl2.c (do_using_directive): Add USING_STMT to statement
734790075Sobrien	tree. Don't emit errors when processing template decl.
734890075Sobrien	* pt.c (tsubst_expr, USING_STMT case): New case.
734990075Sobrien	* semantics.c (cp_expand_stmt, USING_STMT case): New case.
735052284Sobrien
735190075Sobrien2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
735252284Sobrien
735390075Sobrien	* call.c (build_new_op): Convert args from reference here.
735490075Sobrien	(build_conditional_expr): Don't convert here.
735552284Sobrien
735690075Sobrien2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
735752284Sobrien
735890075Sobrien	* spew.c (last_token_id): New static variable.
735990075Sobrien	(read_token): Set it here.
736090075Sobrien	(yyerror): Use it here.
736152284Sobrien
736290075Sobrien2001-04-30  Richard Henderson  <rth@redhat.com>
736352284Sobrien
736490075Sobrien	* cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
736590075Sobrien	* decl.c: Likewise.
736652284Sobrien
736790075Sobrien2001-04-30  Mark Mitchell  <mark@codesourcery.com>
736852284Sobrien
736990075Sobrien	* gxxint.texi: Remove.
737090075Sobrien	* Make-lang.in: Remove all traces of gxxint.texi.
737152284Sobrien
737290075SobrienMon Apr 30 16:14:10 2001  Mark P Mitchell  <mark@codesourcery.com>
737352284Sobrien
737490075Sobrien	* decl2.c (start_static_initialization_or_destruction): Correct
737590075Sobrien	logic to handle the -fno-use-cxa-atexit case.
737652284Sobrien
737790075Sobrien2001-04-30  Mark Mitchell  <mark@codesourcery.com>
737852284Sobrien
737990075Sobrien	* optimize.c (update_cloned_parm): New function.
738090075Sobrien	(maybe_clone_body): Use it.  Update the `this' parameter too.
738152284Sobrien
738290075Sobrien2001-04-29  Joseph S. Myers  <jsm28@cam.ac.uk>
738352284Sobrien
738490075Sobrien	* decl2.c (unsupported_options): Add new-abi.
738590075Sobrien	* lang-options.h: Remove no longer supported options.
738652284Sobrien
738790075Sobrien2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
738852284Sobrien
738990075Sobrien	* except.c (can_convert_eh): Don't check template parms,
739090075Sobrien	typename types etc.
739152284Sobrien
739290075Sobrien2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
739352284Sobrien
739490075Sobrien	* optimize.c (maybe_clone_body): Copy parameter names and locations.
739552284Sobrien
739690075Sobrien2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
739752284Sobrien
739890075Sobrien	* cp-tree.h (adjust_clone_args): Prototype new function.
739990075Sobrien	* class.c (adjust_clone_args): New function.
740090075Sobrien	* decl.c (start_function): Call it for in charge ctors.
740152284Sobrien
740290075Sobrien2001-04-26  Mark Mitchell  <mark@codesourcery.com>
740352284Sobrien
740490075Sobrien	* method.c (use_thunk): Make sure that thunks really are emitted
740590075Sobrien	when requested.
740652284Sobrien
740790075Sobrien2001-04-26  Nathan Sidwell <nathan@codesourcery.com>
740852284Sobrien
740990075Sobrien	* mangle.c (write_chars): New macro.
741090075Sobrien	(hwint_to_ascii): New function
741190075Sobrien	(write_number): Use it.
741290075Sobrien	(write_integer_cst): Deal with really big numbers.
741352284Sobrien
741490075Sobrien2001-04-25  Mark Mitchell  <mark@codesourcery.com>
741552284Sobrien
741690075Sobrien	* optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
741790075Sobrien	the clone.
741852284Sobrien
741990075Sobrien2001-04-25  Nathan Sidwell  <nathan@codesourcery.com>
742052284Sobrien
742190075Sobrien	* decl.c (grokdeclarator): Set context of namespace scope
742290075Sobrien	TYPE_DECLS.
742352284Sobrien
742490075Sobrien2001-04-24  Zack Weinberg  <zackw@stanford.edu>
742552284Sobrien
742690075Sobrien	* cp/optimize.c: Include hashtab.h.
742790075Sobrien	(struct inline_data): Add tree_pruner.
742890075Sobrien	(expand_call_inline, expand_calls_inline): Use it when calling
742990075Sobrien	walk_tree.
743090075Sobrien	(optimize_function): Initialize and free tree_pruner.
743152284Sobrien
743290075Sobrien2001-04-24  Nathan Sidwell <nathan@codesourcery.com>
743352284Sobrien
743490075Sobrien	Lazy __FUNCTION__ generation.
743590075Sobrien	* cp-tree.def (FUNCTION_NAME): Remove.
743690075Sobrien	* cp-tree.h (function_name_declared_p): Remove.
743790075Sobrien	(cp_fname_init): Prototype.
743890075Sobrien	* decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
743990075Sobrien	don't call declare_function_name. Call start_fname_decls.
744090075Sobrien	(cp_make_fname_decl): Adjust parameters. Generate the name. Don't
744190075Sobrien	clobber the line number.
744290075Sobrien	(cp_fname_init): New function.
744390075Sobrien	(start_function): Call start_fname_decls.
744490075Sobrien	(finish_function): Call finish_fname_decls.
744590075Sobrien	* lex.c (reswords): Add slots for __FUNCTION__ et al.
744690075Sobrien	(rid_to_yy): Add mappings for __FUNCTION__ et al.
744790075Sobrien	* optimize.c (maybe_clone_body): Remove function_name_declared_p.
744890075Sobrien	* parse.y (VAR_FUNC_NAME): New token.
744990075Sobrien	(primary): Add VAR_FUNC_NAME.
745090075Sobrien	* pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
745190075Sobrien	generation.
745290075Sobrien	(tsubst, FUNCTION_NAME case): Remove.
745390075Sobrien	(tsubst_copy, FUNCTION_NAME case): Remove.
745490075Sobrien	(tsubst_expr, DECL_STMT case): Be careful with a
745590075Sobrien	DECL_PRETTY_FUNCTION_P.
745690075Sobrien	(instantiate_decl): Remove function_name_declared_p.
745790075Sobrien	* semantics.c (begin_compound_statement): Don't call
745890075Sobrien	declare_function_name here.
745990075Sobrien	(setup_vtbl_ptr). Don't save & restore function_name_declared_p.
746090075Sobrien	(finish_translation_unit): Call finish_fname_decls.
746190075Sobrien	(expand_body): Remove function_name_declared_p.
746290075Sobrien	* typeck2.c (digest_init): Allow any ERROR_MARK.
746352284Sobrien
746490075Sobrien2001-04-24  Nathan Sidwell  <nathan@codesourcery.com>
746552284Sobrien
746690075Sobrien	* pt.c (tsubst_decl): Use VOID_TYPE_P.
746790075Sobrien	* semantics.c: Fix some typos.
746852284Sobrien
746990075Sobrien2001-04-23  Phil Edwards  <pme@sources.redhat.com>
747052284Sobrien
747190075Sobrien	* cp/decl2.c (flag_honor_std):  Always initialize to 1.
747252284Sobrien
747390075Sobrien2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
747452284Sobrien
747590075Sobrien	* xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
747652284Sobrien
747790075Sobrien2001-04-23  Jason Merrill  <jason_merrill@redhat.com>
747852284Sobrien
747990075Sobrien	* except.c (build_throw): Wrap the initialization of the exception
748090075Sobrien	object in a MUST_NOT_THROW_EXPR.
748190075Sobrien	(do_free_exception): #if 0.
748252284Sobrien
748390075Sobrien2001-04-20  Mark Mitchell  <mark@codesourcery.com>
748452284Sobrien
748590075Sobrien	* cp-tree.h (finish_enum): Change prototype.
748690075Sobrien	* decl.c (finish_enum): Reorganize.
748790075Sobrien	* parse.y (structsp): Adjust calls to finish_enum.
748852284Sobrien
748990075Sobrien2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
749052284Sobrien
749190075Sobrien	* tree.c (cp_tree_equal): Adjust final switch formatting. Add
749290075Sobrien	't' case.
749352284Sobrien
749490075Sobrien2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
749552284Sobrien
749690075Sobrien	* class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
749790075Sobrien	(layout_empty_base): Return at end flag.
749890075Sobrien	(build_base_field): Likewise.
749990075Sobrien	(build_base_fields): Likewise.
750090075Sobrien	(layout_virtual_bases): Don't add 1 to eoc value.
750190075Sobrien	(end_of_class): Use full size for empty bases.
750290075Sobrien	(layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
750390075Sobrien	empty bases. Don't add 1 to eoc value. Only add trailing padding
750490075Sobrien	if we're an empty class with no empty bases.
750590075Sobrien	(dump_class_hierarchy): Dump size and alignment.
750652284Sobrien
750790075Sobrien2001-04-20  Jakub Jelinek  <jakub@redhat.com>
750852284Sobrien
750990075Sobrien	* call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
751090075Sobrien	ICS_BAD_FLAG.
751152284Sobrien
751290075Sobrien2001-04-20  Jakub Jelinek  <jakub@redhat.com>
751352284Sobrien
751490075Sobrien	* search.c (lookup_field_r): If looking for type and non-TYPE_DECL
751590075Sobrien	is found, look first if name does not match the structure name.
751652284Sobrien
751790075Sobrien2001-04-19  Mark Mitchell  <mark@codesourcery.com>
751852284Sobrien
751990075Sobrien	* cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
752090075Sobrien	set.
752190075Sobrien	(SET_DECL_LANGUAGE): New macro.
752290075Sobrien	* decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
752390075Sobrien	(pushdecl): Likewise.
752490075Sobrien	(build_library_fn_1): Likewise.
752590075Sobrien	(build_cp_library_fn): Likewise.
752690075Sobrien	(grokfndecl): Likewise.
752790075Sobrien	(grokvardecl): Mark `extern "C"' variables as having C linkage.
752890075Sobrien	* decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
752990075Sobrien	* lex.c (retrofit_lang_decl): Likewise.
753090075Sobrien	* mangle.c (mangle_decl_string): Don't mangle the names of
753190075Sobrien	variables declared with C language linkage.
753290075Sobrien	* semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
753352284Sobrien
753490075Sobrien2001-04-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
753552284Sobrien
753690075Sobrien	* semantics.c (simplify_aggr_init_exprs_r): Don't restore
753790075Sobrien	flag_access_control from uninitialized storage.
753852284Sobrien
753990075Sobrien2001-04-15  Mark Mitchell  <mark@codesourcery.com>
754018334Speter
754190075Sobrien	* cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
754290075Sobrien	* mangle.c (write_pointer_to_member_type): Fix mangling of
754390075Sobrien	pointers to cv-qualified member function types.
754418334Speter
754590075Sobrien	* init.c (build_delete): Create a SAVE_EXPR for the address if
754690075Sobrien	we're going to use it more than once.
754752284Sobrien
754890075Sobrien2001-04-13  Mark Mitchell  <mark@codesourcery.com>
754952284Sobrien
755090075Sobrien	* cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
755190075Sobrien	(expand_ptremfunc_cst): Change prototype.
755290075Sobrien	(delta2_from_ptrmemfunc): Remove.
755390075Sobrien	* expr.c (cplus_expand_constant): Adjust call to
755490075Sobrien	expand_ptrmemfunc_cst.
755590075Sobrien	* typeck.c (build_ptrmemfunc1): Simplify.
755690075Sobrien	(build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
755790075Sobrien	results in a constant.
755890075Sobrien	(expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
755990075Sobrien	(delta2_from_ptrmemfunc): Remove.
756090075Sobrien	(pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
756152284Sobrien
756290075Sobrien2001-04-12  Jason Merrill  <jason_merrill@redhat.com>
756352284Sobrien
756490075Sobrien	* cp-tree.h (decl_namespace_list): New macro.
756590075Sobrien	(struct saved_scope): Add decl_ns_list.
756690075Sobrien	* decl.c (mark_saved_scope): Mark it.
756790075Sobrien	* decl2.c: Lose static decl_namespace_list.
756890075Sobrien	(init_decl2): Don't save it.
756952284Sobrien
757090075Sobrien2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
757152284Sobrien
757290075Sobrien	* cp-tree.h (warn_return_type, yylex): Delete redundant
757390075Sobrien	declarations.
757452284Sobrien
757590075Sobrien	* decl.c (current_class_depth, global_namespace): Likewise.
757652284Sobrien
757790075Sobrien	* decl2.c (current_class_depth, flag_gnu_xref): Likewise
757852284Sobrien
757990075Sobrien	* repo.c (flag_use_repository): Likewise.
758052284Sobrien
758190075Sobrien2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
758252284Sobrien
758390075Sobrien	* cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
758490075Sobrien	set_block, pushdecl, getdecls, gettags, init_decl_processing,
758590075Sobrien	maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
758690075Sobrien	lvalue_or_else, print_lang_statistics, comp_target_types,
758790075Sobrien	unsigned_type, signed_type, signed_or_unsigned_type,
758890075Sobrien	build_function_call, mark_addressable, incomplete_type_error):
758990075Sobrien	Delete redundant declarations.
759052284Sobrien
759190075Sobrien2001-04-11  Jason Merrill  <jason_merrill@redhat.com>
759252284Sobrien
759390075Sobrien	* cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
759490075Sobrien	(TYPE_ANONYMOUS_P): New macro.
759590075Sobrien	(TAGGED_TYPE_P): New macro.
759690075Sobrien	* decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
759790075Sobrien	(grokfndecl, grokvardecl, grokdeclarator): Likewise.
759890075Sobrien	* tree.c (no_linkage_helper): Likewise.
759990075Sobrien	* semantics.c (begin_class_definition): Likewise.
760090075Sobrien	* pt.c (convert_template_argument): Likewise.
760190075Sobrien	* lex.c (check_for_missing_semicolon): Likewise.
760252284Sobrien
760390075Sobrien2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
760452284Sobrien
760590075Sobrien	* class.c (dfs_unshared_virtual_bases): New function.
760690075Sobrien	(mark_primary_bases): Call it.
760790075Sobrien	(check_bases): Ignore virtual bases when determining
760890075Sobrien	nearly-emptiness.
760952284Sobrien
761090075Sobrien2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
761152284Sobrien
761290075Sobrien	* method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
761318334Speter
761490075Sobrien2001-04-11  Mark Mitchell  <mark@codesourcery.com>
761518334Speter
761690075Sobrien	* optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
761790075Sobrien	cloned function to the clone.
761818334Speter
761990075Sobrien2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
762018334Speter
762190075Sobrien	* Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
762252284Sobrien
762390075Sobrien	* semantics.c: Include expr.h.
762452284Sobrien
762590075Sobrien2001-04-11  Nathan Sidwell  <nathan@codesourcery.com>
762652284Sobrien
762790075Sobrien	* method.c (implicitly_declare_fn): Commonize code for copy ctor
762890075Sobrien	and assignment op. Set TREE_USED for parameter.
762952284Sobrien
763090075Sobrien2001-04-10  Mark Mitchell  <mark@codesourcery.com>
763152284Sobrien
763290075Sobrien	* class.c (find_final_overrider_data): Add `candidates'.
763390075Sobrien	(dfs_find_final_overrider): Don't issue error messages
763490075Sobrien	prematurely.
763590075Sobrien	(find_final_overrider): Issue error messages here.
763690075Sobrien	(build_base_field): Don't warn about amgibuous direct bases here.
763790075Sobrien	(warn_about_ambiguous_direct_bases): New function.
763890075Sobrien	(layout_class_type): Use it.
763918334Speter
764090075Sobrien2001-04-10  Richard Henderson  <rth@redhat.com>
764118334Speter
764290075Sobrien	* typeck.c (build_array_ref): Push the array reference inside
764390075Sobrien	COMPOUND_EXPR and COND_EXPR.
764452284Sobrien
764590075Sobrien2001-04-05  Mark Mitchell  <mark@codesourcery.com>
764652284Sobrien
764790075Sobrien	* cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
764890075Sobrien	* decl.c (duplicate_decls): Adjust accordingly.
764990075Sobrien	(maybe_commonize_var): Likewise.
765090075Sobrien	(grokfndecl): Likewise.
765190075Sobrien	(start_function): Likewise.
765290075Sobrien	(start_method): Likewise.
765390075Sobrien	* decl2.c (key_method): Likewise.
765490075Sobrien	(import_export_decl): Likewise.
765590075Sobrien	* method.c (implicitly_declare_fn): Likewise.
765690075Sobrien	* optimize.c (maybe_clone_body): Likewise.
765752284Sobrien
765890075Sobrien2001-04-05  Benjamin Kosnik  <bkoz@redhat.com>
765952284Sobrien
766090075Sobrien	* lang-specs.h: Add __DEPRECATED.
766152284Sobrien
766290075SobrienThu Apr  5 16:54:29 2001  J"orn Rennecke <amylaar@redhat.com>
766352284Sobrien
766490075Sobrien	* search.c (get_dynamic_cast_base_type): When building a new
766590075Sobrien	constant, set its type to ssizetype.
766652284Sobrien
766790075Sobrien2001-04-04  Jakub Jelinek  <jakub@redhat.com>
766852284Sobrien
766990075Sobrien	* optimize.c (expand_call_inline): Only add newly inlined statements
767090075Sobrien	into inlined_stmts.
767152284Sobrien
767290075Sobrien2001-04-03  Mark Mitchell  <mark@codesourcery.com>
767352284Sobrien
767490075Sobrien	* cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
767590075Sobrien	(OPERATOR_FORMAT): Likewise.
767690075Sobrien	(OPERATOR_TYPENAME_FORMAT): Likewise.
767790075Sobrien	* operators.def: Remove old name-mangling information.
767890075Sobrien	* decl.c (grok_op_properties): Adjust accordingly.
767990075Sobrien	* lex.c (init_operators): Likewise.
768090075Sobrien	* rtti.c (get_tinfo_decl): Issue error messages about types that
768190075Sobrien	have variable size.
768252284Sobrien
768390075Sobrien2001-04-03  Mark Mitchell  <mark@codesourcery.com>
768452284Sobrien
768590075Sobrien	* decl2.c (import_export_decl): Don't call import_export_class
768690075Sobrien	when processing an inline member function.
768790075Sobrien	* semantics.c (expand_body): Call import_export_decl before
768890075Sobrien	emitting inline functions.
768952284Sobrien
769090075Sobrien2001-03-28  Richard Henderson  <rth@redhat.com>
769152284Sobrien
769290075Sobrien	IA-64 ABI Exception Handling:
769390075Sobrien	* cp-tree.def (EH_SPEC_BLOCK): New.
769490075Sobrien	(MUST_NOT_THROW_EXPR): New.
769590075Sobrien	* cp-tree.h: Update changed function declarations.
769690075Sobrien	(CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
769790075Sobrien	(CPTI_CALL_UNEXPECTED): New.
769890075Sobrien	(struct cp_language_function): Rename x_eh_spec_try_block
769990075Sobrien	to x_eh_spec_block.
770090075Sobrien	(EH_SPEC_STMTS, EH_SPEC_RAISES): New.
770190075Sobrien	* decl.c (current_binding_level): If no current function
770290075Sobrien	bindings, revert to scope_chain.
770390075Sobrien	(initialize_predefined_identifiers): Remove __cp_push_exception.
770490075Sobrien	(store_parm_decls): Use begin_eh_spec_block.
770590075Sobrien	(finish_function): Use finish_eh_spec_block.
770690075Sobrien	(mark_lang_function): Update for name changes.
770790075Sobrien	* decl2.c (finish_file): No mark_all_runtime_matches.
770890075Sobrien	* dump.c (cp_dump_tree): Handle new tree codes.
770990075Sobrien	* error.c (dump_expr) [BIND_EXPR]: Fix typo.
771090075Sobrien	* except.c (catch_language_init, catch_language): Remove.
771190075Sobrien	(init_exception_processing): Don't set language code.
771290075Sobrien	Initialize call_unexpected_node, protect_cleanup_actions,
771390075Sobrien	eh_personality_libfunc, lang_eh_runtime_type.
771490075Sobrien	(call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
771590075Sobrien	(get_eh_type, get_eh_caught, get_eh_handlers): Remove.
771690075Sobrien	(prepare_eh_type): Split out type canonicalizations ...
771790075Sobrien	(build_eh_type_type): ... from here.
771890075Sobrien	(build_eh_type_type_ref): Remove.
771990075Sobrien	(mark_all_runtime_matches): Remove.
772090075Sobrien	(build_exc_ptr): New.
772190075Sobrien	(do_begin_catch, do_end_catch): New.
772290075Sobrien	(do_pop_exception): Remove.
772390075Sobrien	(build_terminate_handler): Remove.
772490075Sobrien	(choose_personality_routine): Split out language choice from ...
772590075Sobrien	(initialize_handler_parm): ... here.
772690075Sobrien	Use MUST_NOT_THROW_EXPR.
772790075Sobrien	(expand_start_catch_block): Use do_begin_catch.  Simplify Java
772890075Sobrien	exception object handling.
772990075Sobrien	(expand_start_eh_spec, expand_end_eh_spec): Remove.
773090075Sobrien	(expand_exception_blocks, alloc_eh_object): Remove.
773190075Sobrien	(begin_eh_spec_block, finish_eh_spec_block): New.
773290075Sobrien	(do_allocate_exception, do_free_exception): New.
773390075Sobrien	(expand_throw): Merge into ...
773490075Sobrien	(build_throw): ... here.  Update for abi.
773590075Sobrien	* expr.c (cplus_expand_expr): No expand_internal_throw.
773690075Sobrien	Handle MUST_NOT_THROW_EXPR.
773790075Sobrien	* pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
773890075Sobrien	* semantics.c (*) Update for except.h name changes.
773990075Sobrien	(genrtl_try_block): No protect_with_terminate.
774090075Sobrien	(genrtl_eh_spec_block): New.
774190075Sobrien	(genrtl_handler): Don't emit the goto here.
774290075Sobrien	(cp_expand_stmt): Handle EH_SPEC_BLOCK.
774390075Sobrien	(genrtl_finish_function): Don't expand_exception_blocks.
774490075Sobrien	* tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
774518334Speter
774690075Sobrien2001-03-28  Richard Henderson  <rth@redhat.com>
774752284Sobrien
774890075Sobrien	* decl.c (struct named_label_list): Rename eh_region to
774990075Sobrien	in_try_scope, add in_catch_scope.
775090075Sobrien	(struct binding_level): Rename eh_region to is_try_scope,
775190075Sobrien	add is_catch_scope.
775290075Sobrien	(note_level_for_try): Rename from note_level_for_eh.
775390075Sobrien	(note_level_for_catch): New.
775490075Sobrien	(poplevel): Copy both is_try_scope and is_catch_scope to
775590075Sobrien	the named_label_list struct.
775690075Sobrien	(check_previous_goto_1): Don't check for catch block via
775790075Sobrien	DECL_ARTIFICIAL; use in_try_scope instead.
775890075Sobrien	(check_goto): Likewise.
775990075Sobrien	* cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
776090075Sobrien	* except.c (expand_start_catch_block): Call note_level_for_catch.
776190075Sobrien	* semantics.c (begin_compound_stmt): Update for note_level_for_try.
776218334Speter
776390075Sobrien2001-03-27  Richard Henderson  <rth@redhat.com>
776452284Sobrien
776590075Sobrien	* except.c: Use USING_SJLJ_EXCEPTIONS instead of
776690075Sobrien	exceptions_via_longjmp.
776752284Sobrien
776890075Sobrien2001-03-27  Phil Edwards  <pme@sources.redhat.com>
776952284Sobrien
777090075Sobrien	* pt.c (check_default_tmpl_args):  Make error messages clearer.
777152284Sobrien
777290075Sobrien2001-03-26  Phil Edwards  <pme@sources.redhat.com>
777352284Sobrien
777490075Sobrien	* error.c:  Also undefine 'A' macro used for cp_printers definition.
777552284Sobrien
777690075Sobrien2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
777752284Sobrien
777890075Sobrien	* Make-lang.in: Depend on $(SYSTEM_H), not system.h.
777952284Sobrien
778090075Sobrien2001-03-26  Mike Yang <yang@research.att.com>
778190075Sobrien	    Mark Mitchell  <mark@codesourcery.com>
778252284Sobrien
778390075Sobrien	* dump.c (dump_access): New function.
778490075Sobrien	(cp_dump_tree): Use it.  Dump basetype information for class
778590075Sobrien	types.
778652284Sobrien
778790075Sobrien2001-03-26  Mark Mitchell  <mark@codesourcery.com>
778852284Sobrien
778990075Sobrien	* Makefile.in (optimize.o): Depend on params.h.
779090075Sobrien	(duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
779190075Sobrien	(init_decl_processing): Set flag_no_inline when doing
779290075Sobrien	inlining-on-trees.
779390075Sobrien	* optimize.c: Include params.h.
779490075Sobrien	(struct inline_data): Improve documentation of FNS.  Add
779590075Sobrien	FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
779690075Sobrien	(INSNS_PER_STMT): New macro.
779790075Sobrien	(remap_block): Use CLONING_P.
779890075Sobrien	(inlinable_function_p): Don't inline big functions.
779990075Sobrien	(expand_call_inline): Keep track of how much inlining we've done.
780090075Sobrien	(optimize_function): Set FIRST_INLINED_FN.
780190075Sobrien	(maybe_clone_body): Set CLONING_P.
780290075Sobrien	* semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
780390075Sobrien	tree nodes.
780490075Sobrien	(genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
780590075Sobrien	rest_of_compilation.  Clear DECL_RTL for local variables
780690075Sobrien	afterwards.
780790075Sobrien	(clear_decl_rtl): New function.
780852284Sobrien
780990075Sobrien2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>
781052284Sobrien
781190075Sobrien	Implement DR 209
781290075Sobrien	* cp-tree.h (skip_type_access_control,
781390075Sobrien	reset_type_access_control): Prototype.
781490075Sobrien	* decl.c (grokdeclarator): Access of friends is not checked.
781590075Sobrien	* parse.y (component_decl_list): Reset type access control.
781690075Sobrien	* semantics.c (decl_type_access_control): Clear
781790075Sobrien	current_type_lookups.
781890075Sobrien	(save_type_access_control): Don't save if not deferring.
781990075Sobrien	(skip_type_access_control, reset_type_access_control): New
782090075Sobrien	functions.
782190075Sobrien	(begin_class_definition): Do type access control for basetypes.
782290075Sobrien	Start deferred access control.
782390075Sobrien	(finish_class_definition): Resume immediate access control if
782490075Sobrien	this is a local class.
782552284Sobrien
782690075Sobrien2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
782752284Sobrien
782890075Sobrien	* class.c (add_method): Use memcpy/memmove, not bcopy.
782952284Sobrien
783090075Sobrien	* decl.c (duplicate_decls): Likewise.
783152284Sobrien
783290075Sobrien2001-03-23  Jakub Jelinek  <jakub@redhat.com>
783352284Sobrien
783490075Sobrien	* mangle.c (write_discriminator): Use `_0' for discriminator 1,
783590075Sobrien	not `_'.
783652284Sobrien
783790075Sobrien2001-03-23  Jakub Jelinek  <jakub@redhat.com>
783818334Speter
783990075Sobrien	* decl.c (local_names): Define.
784090075Sobrien	(push_local_name): New.
784190075Sobrien	(grok_reference_init): Return init if initializing static reference
784290075Sobrien	variable with non-constant instead of emitting it.
784390075Sobrien	Move expand_static_init call to cp_finish_decl.
784490075Sobrien	(layout_var_decl): Call push_local_name.
784590075Sobrien	(maybe_commonize_var): Allow inlining functions even if they have
784690075Sobrien	static local variables, use comdat_linkage for them if flag_weak.
784790075Sobrien	(check_initializer): Call obscure_complex_init if
7848117395Skan	grok_reference_init returned nonzero.
784990075Sobrien	(save_function_data): Clear x_local_names.
785090075Sobrien	(pop_cp_function_context): Free x_local_names.
785190075Sobrien	(mark_inlined_fns): Remove.
785290075Sobrien	(mark_lang_function): Mark x_local_names.
785390075Sobrien	(lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
785490075Sobrien	Mark inlined_fns as tree, remove call to mark_inlined_fns.
785590075Sobrien	* class.c (alter_access): Ensure DECL_ACCESS is never set if
785690075Sobrien	DECL_DISCRIMINATOR_P.
785790075Sobrien	* cp-tree.h (cp_language_function): Add x_local_names.
785890075Sobrien	(lang_decl_flags): Add discriminator into u2.
785990075Sobrien	(lang_decl_inlined_fns): Remove.
786090075Sobrien	(lang_decl): inlined_fns is now a TREE_VEC.
786190075Sobrien	(DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
786290075Sobrien	* optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
786390075Sobrien	TREE_VEC, not a custom structure.
786490075Sobrien	(optimize_function): Likewise.
786590075Sobrien	* mangle.c (discriminator_for_local_entity): Discriminate among
786690075Sobrien	VAR_DECL local entities.
786790075Sobrien	* search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
786890075Sobrien	is not valid.
786952284Sobrien
787090075Sobrien2001-03-22  Bryce McKinlay  <bryce@albatross.co.nz>
787118334Speter
787290075Sobrien	Add support for Java interface method calls.
787390075Sobrien	* cp-tree.h (struct lang_type): Add java_interface flag.
787490075Sobrien	(TYPE_JAVA_INTERFACE): New macro.
787590075Sobrien	* tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
787690075Sobrien	by setting TYPE_JAVA_INTERFACE.
787790075Sobrien	* call.c (java_iface_lookup_fn): New static.
787890075Sobrien	(build_over_call): If calling a method declared in a
787990075Sobrien	TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
788090075Sobrien	expression which resolves the function address.
788190075Sobrien	(build_java_interface_fn_ref): New function.
788218334Speter
788390075Sobrien2001-03-22  Richard Henderson  <rth@redhat.com>
788452284Sobrien
788590075Sobrien	* Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
788690075Sobrien	* except.c: Don't include it.
788752284Sobrien
788890075Sobrien2001-03-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
788990075Sobrien	    based on an idea from Joe Buck <jbuck@synopsys.com>
789052284Sobrien
789190075Sobrien	* parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
789290075Sobrien	New nonterminals.
789390075Sobrien	(data_def, component_decl): Add reductions to bad_decl.
789452284Sobrien
789590075Sobrien2001-03-22  Jakub Jelinek  <jakub@redhat.com>
789652284Sobrien
789790075Sobrien	* method.c (do_build_assign_ref): Don't use build_modify_expr for
789890075Sobrien	anonymous aggregates, since they don't have assignment operator
789990075Sobrien	method.
790090075Sobrien	* decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
790190075Sobrien	assignment operators for anonymous structure fields.
790252284Sobrien
790390075Sobrien2001-03-21  Jason Merrill  <jason@redhat.com>
790452284Sobrien
790590075Sobrien	* pt.c (instantiate_decl): Abort if we see a member constant
790690075Sobrien	instantiation that doesn't already have its initializer.
790790075Sobrien	Downgrade explicit instantiation without definition to pedwarn.
790852284Sobrien
790990075Sobrien	* cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
791090075Sobrien	* class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
791190075Sobrien	(import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
791252284Sobrien
791390075Sobrien	* cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
791490075Sobrien	(pending_vtables): Remove.
791590075Sobrien	* decl2.c (pending_vtables): Remove.
791690075Sobrien	(import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
791790075Sobrien	CLASSTYPE_VTABLE_NEEDS_WRITING.
791890075Sobrien	(import_export_class): Likewise.
791990075Sobrien	(init_decl2): Don't mark pending_vtables.
792090075Sobrien	* lex.c (handle_pragma_vtable): Just sorry.
792190075Sobrien	* pt.c (instantiate_class_template): Don't mess with
792290075Sobrien	CLASSTYPE_VTABLE_NEEDS_WRITING.
792390075Sobrien	(mark_class_instantiated): Likewise.
792490075Sobrien	* ptree.c (print_lang_type): Don't print it.
792590075Sobrien	* semantics.c (begin_class_definition): Don't set it.
792652284Sobrien
792790075Sobrien	* pt.c (template_tail): Replace with last_pending_template.
792890075Sobrien	(maybe_templates, maybe_template_tail): Remove.
792990075Sobrien	(add_pending_template): Adjust.
793090075Sobrien	(instantiate_pending_templates): Adjust.
793152284Sobrien
793290075Sobrien	* cp-tree.h (struct saved_scope): Remove lang_stack field.
793390075Sobrien	(current_lang_stack): Remove.
793490075Sobrien	* decl.c (maybe_push_to_top_level): Don't initialize it.
793590075Sobrien	(duplicate_decls): Use current_lang_depth.
793690075Sobrien	(xref_basetypes): Likewise.
793790075Sobrien	* class.c (current_lang_depth): New fn.
793890075Sobrien	(push_lang_context): Use more varray functionality.
793990075Sobrien	(pop_lang_context): Likewise.
794052284Sobrien
794190075Sobrien	* error.c (GLOBAL_THING): Always use '__'.
794252284Sobrien
794390075Sobrien2001-03-21  Mark Mitchell  <mark@codesourcery.com>
794452284Sobrien
794590075Sobrien	* class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
794652284Sobrien
794790075Sobrien	* mangle.c (mangle_decl_string): Mangle the names of overloaded
794890075Sobrien	operators, even when they have `extern "C"' linkage.
794952284Sobrien
795090075Sobrien2001-03-19  Mark Mitchell  <mark@codesourcery.com>
795152284Sobrien
795290075Sobrien	* class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
795390075Sobrien	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
795490075Sobrien	where it's not necessary.
795590075Sobrien	(add_method): Remove optimization involving comparison of
795690075Sobrien	DECL_ASSEMBLER_NAME.
795790075Sobrien	(build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
795890075Sobrien	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
795990075Sobrien	where it's not necessary.
796090075Sobrien	(check_methods): Likewise.
796190075Sobrien	(build_clone): Likewise.
796290075Sobrien	(built_vtt): Likewise.
796390075Sobrien	* cp-tree.h (DECL_NEEDED_P): Likewise.
796490075Sobrien	* decl.c (pushtag): Likewise.
796590075Sobrien	(duplicate_decls): Likewise.
796690075Sobrien	(pushdecl): Likewise.
796790075Sobrien	(builtin_function): Likewise.
796890075Sobrien	(build_library_fn_1): Set DECL_LANGUAGE for library functions.
796990075Sobrien	(build_cp_library_fn): Likewise.
797090075Sobrien	(maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
797190075Sobrien	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
797290075Sobrien	where it's not necessary.
797390075Sobrien	(make_rtl_for_nonlocal_decl): Likewise.
797490075Sobrien	(cp_finish_decl): Likewise.
797590075Sobrien	(grokfndecl): Likewise.
797690075Sobrien	(grokvardecl): Likewise.
797790075Sobrien	(grokdeclarator): Likewise.
797852284Sobrien	(start_function): Likewise.
797990075Sobrien	(cp_missing_return_ok_p): Likewise.
798090075Sobrien	* decl2.c (grokclassfn): Likewise.
798190075Sobrien	(check_classfn): Likewise.
798290075Sobrien	(finish_static_data_member_decl): Likewise.
798352284Sobrien	(grokfield): Likewise.
798490075Sobrien	* error.c (GLOBAL_IORD_P): Remove.
798590075Sobrien	(dump_global_iord): Improve output.
798690075Sobrien	(dump_decl): Avoid using DECL_ASSEMBLER_NAME.
798790075Sobrien	* except.c (nothrow_libfn_p): Summarily reject any function not in
798890075Sobrien	namespace-scope.
798990075Sobrien	* init.c (build_java_class_ref): Don't explicitly set
799090075Sobrien	DECL_ASSEMBLER_NAME after calling mangle_decl.
799190075Sobrien	* mangle.c (mangle_decl_string): Handle extern "C" functions.
799290075Sobrien	(mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
799390075Sobrien	* method.c (set_mangled_name_for_decl): Don't explicitly set
799490075Sobrien	DECL_ASSEMBLER_NAME after calling mangle_decl.
799590075Sobrien	(make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
799690075Sobrien	IDENTIFIER_GLOBAL_VALUE for the thunk.
799790075Sobrien	* pt.c (set_mangled_name_for_template_decl): Remove.
799890075Sobrien	(check_explicit_specialization): Don't use it.
799990075Sobrien	(looup_template_class): Don't set DECL_ASSEMBLER_NAME.
800090075Sobrien	(tsubst_friend_function): Likewise.
800190075Sobrien	(tsubst_decl): Likewise.
800290075Sobrien	(regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
800390075Sobrien	* rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
800490075Sobrien	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
800590075Sobrien	where it's not necessary.
800690075Sobrien	(tinfo_base_init): Likewise.
800790075Sobrien	(create_real_tinfo_var): Likewise.
800890075Sobrien	* search.c (looup_field_1): Likewise.
800990075Sobrien	* semantics.c (finish_named_return_value): Likewise.
801090075Sobrien	* tree.c (init_tree): Set lang_set_decl_assembler_name.
801152284Sobrien
801290075Sobrien2001-03-15  Gabriel Dos Reis  <gdr@codesourcery.com>
801352284Sobrien
801490075Sobrien	Correct semantics restrictions checking in throw-expression.
801590075Sobrien	* except.c (is_admissible_throw_operand): New function.
801690075Sobrien	(build_throw): Use it.
801752284Sobrien
801890075Sobrien2001-03-14  Mark Mitchell  <mark@codesourcery.com>
801952284Sobrien
802090075Sobrien	* decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
802190075Sobrien	and its ilk.
802252284Sobrien
802390075Sobrien2001-03-14  Mark Mitchell  <mark@codesourcery.com>
802452284Sobrien
802590075Sobrien	* class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
802690075Sobrien	* cp-tree.h (DECL_IN_MEMORY_P): Likewise.
802790075Sobrien	* decl.c (duplicate_decls): Likewise.
802890075Sobrien	(builtin_function): Likewise.
802990075Sobrien	(build_library_fn): Likewise.
803090075Sobrien	(build_cp_library_fn): Likewise.
803190075Sobrien	(check_initializer): Likewise.
803290075Sobrien	(cp_finish_decl): Likewise.
803390075Sobrien	* decl2.c (grokfield): Likewise.
803490075Sobrien	(grok_function_init): Remove #if 0'd code.
803590075Sobrien	(finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
803690075Sobrien	* friend.c (do_friend): Likewise.
803790075Sobrien	* init.c (get_temp_regvar): Likewise.
803890075Sobrien	* method.c (make_thunk): Likewise.
803990075Sobrien	* pt.c (tsubst_friend_function): Likewise.
804090075Sobrien	(tsubst_decl): Likewise.
804190075Sobrien	(regenerate_decl_from_template): Likewise.
804290075Sobrien	* semantics.c (genrtl_named_return_value): Likewise.
804390075Sobrien	(expand_body): Likewise.
804490075Sobrien	(genrtl_finish_function): Likewise.
804590075Sobrien	* tree.c (cp_tree_equal): Likewise.
804652284Sobrien
804790075Sobrien2001-03-12  Nathan Sidwell  <nathan@codesourcery.com>
804852284Sobrien
804990075Sobrien	* call.c (convert_like_real): Add extra semantics to INNER
805090075Sobrien	parameter. Don't convert to temporary if a user conversion
805190075Sobrien	gives us an lvalue that we're about to bind to a reference.
805290075Sobrien	Set INNER to indicate pending reference binding on recursive
805390075Sobrien	calls.
805452284Sobrien
805590075Sobrien2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
805652284Sobrien
805790075Sobrien	* cp/lex.c: Delete duplicate pending_lang_change.
805852284Sobrien
805990075Sobrien2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
806052284Sobrien
806190075Sobrien	* cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
806290075Sobrien	Similarly.
806390075Sobrien	* cp/repo.c (get_base_filename, open_repo_file): Similarly.
806490075Sobrien	* cp/cp-tree.h: Remove file_name_nondirectory prototype.
806518334Speter
806690075Sobrien2001-03-09  Zack Weinberg  <zackw@stanford.edu>
806718334Speter
806890075Sobrien	* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
806918334Speter
807090075Sobrien2001-03-08  Stan Shebs  <shebs@apple.com>
807152284Sobrien
807290075Sobrien	* cp-tree.h (set_identifier_local_value): Remove unused decl.
807352284Sobrien
807490075Sobrien2001-03-06  Zack Weinberg  <zackw@stanford.edu>
807552284Sobrien
807690075Sobrien	* spew.c: Remove references to CPP_OSTRING.
807752284Sobrien
807890075Sobrien2001-03-06  Andrew Haley  <aph@redhat.com>
807952284Sobrien
808090075Sobrien	* typeck.c (convert_arguments): Check that we have an fndecl.
808152284Sobrien
808290075Sobrien2001-03-05  Andrew Haley  <aph@redhat.com>
808352284Sobrien
808490075Sobrien	* typeck.c (convert_arguments): Don't do ellipsis conversion for
808590075Sobrien	__built_in_constant_p.
808652284Sobrien
808790075Sobrien2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
808852284Sobrien
808990075Sobrien	* typeck.c (build_static_cast): Allow enum to enum conversions
809090075Sobrien	as per DR 128.
809152284Sobrien
809290075Sobrien2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
809352284Sobrien
809490075Sobrien	* class.c (check_field_decls): Pointers to member do not a
809590075Sobrien	non-pod struct make, as per DR 148.
809652284Sobrien
809790075Sobrien2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
809852284Sobrien
809990075Sobrien	* call.c (joust): cp_pedwarn when using gnu extension concerning
810090075Sobrien	worst conversion sequences.
810152284Sobrien
810290075Sobrien2001-03-01  Zack Weinberg  <zackw@stanford.edu>
810352284Sobrien
810490075Sobrien	* decl.c: Replace all uses of 'boolean' with 'bool'.
810552284Sobrien
810690075Sobrien2001-03-01  Zack Weinberg  <zackw@stanford.edu>
810752284Sobrien
810890075Sobrien	* lang-specs.h: Add zero initializer for cpp_spec field to
810990075Sobrien	all array elements that need one.  Don't put an #ifdef inside
811090075Sobrien	the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
811190075Sobrien	use it.
811252284Sobrien
811390075Sobrien2001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
811452284Sobrien
811590075Sobrien	Implement using decls inside template functions.
811690075Sobrien	* decl2.c (validate_nonmember_using_decl): Don't special case
811790075Sobrien	fake_std_node in the global namespace. Don't reject early when
811890075Sobrien	processing a template.
811990075Sobrien	(do_local_using_decl): Add to statement tree. Don't do further
812090075Sobrien	processing when building a template.
812190075Sobrien	* pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
812252284Sobrien
812390075Sobrien2001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
812452284Sobrien
812590075Sobrien	* decl2.c (do_nonmember_using_decl): Don't complain if we find
812690075Sobrien	same function. Do complain about ambiguating extern "C"
812752284Sobrien	declarations.
812852284Sobrien
812990075Sobrien2001-02-28  Nathan Sidwell  <nathan@codesourcery.com>
813052284Sobrien
813190075Sobrien	Remove floating point and complex type template constant parms.
813290075Sobrien	* pt.c (convert_nontype_argument): Remove REAL_TYPE and
813390075Sobrien	COMPLEX_TYPE extensions.
813490075Sobrien	(invalid_nontype_parm_type_p): Likewise.
813552284Sobrien
813690075Sobrien2001-02-27  Jeffrey Oldham  <oldham@codesourcery.com>
813718334Speter
813890075Sobrien	* except.c (call_eh_info): Revert "match_function"'s type.
813918334Speter
814090075Sobrien2001-02-27  Nathan Sidwell  <nathan@codesourcery.com>
814152284Sobrien
814290075Sobrien	Fix ctor vtable vcall offsets.
814390075Sobrien	* class.c (struct vtbl_init_data_s): Add rtti_binfo member.
814490075Sobrien	(build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
814590075Sobrien	(get_matching_base): Remove.
814690075Sobrien	(get_original_base): New function.
814790075Sobrien	(build_vtbl_initializer): Initialize vid.rtti_binfo.
814890075Sobrien	Use a virtual thunk for a ctor vtable with an index
814990075Sobrien	(add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
815090075Sobrien	primary base within a constructor vtable. Only set
815190075Sobrien	BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
815290075Sobrien	when primary base has been lost.
815390075Sobrien	* cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
815452284Sobrien
815590075Sobrien2001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
815618334Speter
815790075Sobrien	* call.c (joust): Ensure more_specialized()'s argument length
815890075Sobrien	parameter has correct value for constructors.
815918334Speter
816090075Sobrien2001-02-26  Nathan Sidwell  <nathan@codesourcery.com>
816118334Speter
816290075Sobrien	* except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
816352284Sobrien
816490075Sobrien	* decl.c (mark_inlined_fns): Prototype.
816552284Sobrien
816690075Sobrien2001-02-22  Mark Mitchell  <mark@codesourcery.com>
816752284Sobrien
816890075Sobrien	* spew.c (yylex): Correct handling of friends.
816952284Sobrien
817090075Sobrien2001-02-22  Mark Mitchell  <mark@codesourcery.com>
817152284Sobrien
817290075Sobrien	* mangle.c (write_encoding): Pass write_function_type the
817390075Sobrien	FUNCTION_DECL for the function being encoded.
817490075Sobrien	(write_function_type): Pass it along to write_bare_function_type.
817590075Sobrien	(write_bare_function_type): Pass it along to write_method_parms.
817690075Sobrien	(write_method_parms): Don't mangle the compiler-generated
817790075Sobrien	parameters to a constructor or destructor.
817852284Sobrien
817990075Sobrien2001-02-22  Andreas Jaeger  <aj@suse.de>
818052284Sobrien
818190075Sobrien	* optimize.c: Include toplev.h for
818290075Sobrien	note_deferral_of_defined_inline_function prototype.
818352284Sobrien
818490075Sobrien2001-02-22  Jakub Jelinek  <jakub@redhat.com>
818552284Sobrien
818690075Sobrien	* cp-tree.h (struct lang_decl_inlined_fns): New.
818790075Sobrien	(struct lang_decls): Add inlined_fns.
818890075Sobrien	(DECL_INLINED_FNS): New macro.
818990075Sobrien	* optimize.c (struct inline_data): Add inlined_fns.
819090075Sobrien	(declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
819190075Sobrien	(inlinable_function_p): Likewise, fix typo in comment,
819290075Sobrien	function is not inlinable if it already inlined function currently
819390075Sobrien	being optimized.
819490075Sobrien	(expand_call_inline): Add fn to inlined_fns if necessary.
819590075Sobrien	(optimize_function): Initialize inlined_fns.
819690075Sobrien	Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
819790075Sobrien	* decl.c (mark_inlined_fns): New function.
819890075Sobrien	(lang_mark_tree): Call it.
819952284Sobrien
820090075Sobrien2001-02-21  Jason Merrill  <jason@redhat.com>
820152284Sobrien
820290075Sobrien	* cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
820390075Sobrien	(DECL_UNINLINABLE): Move to middle-end.
820452284Sobrien
820590075Sobrien	* class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
820690075Sobrien	* decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
820790075Sobrien	* class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
820890075Sobrien	* optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
820990075Sobrien	parms and outer BLOCK.  note_deferral_of_defined_inline_function.
821052284Sobrien
821190075Sobrien	* method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
821290075Sobrien	second parm of op=.
821352284Sobrien
821490075Sobrien2001-02-19  Mark Mitchell  <mark@codesourcery.com>
821552284Sobrien
821690075Sobrien	* decl2.c (set_decl_namespace): Allow explicit instantiations in
821790075Sobrien	any namespace.
821852284Sobrien
821990075Sobrien2001-02-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
822052284Sobrien
822190075Sobrien	* optimize.c (expand_call_inline): Don't walk subtrees of type
822290075Sobrien	nodes.
822352284Sobrien
822490075Sobrien2001-02-18  Mark Mitchell  <mark@codesourcery.com>
822552284Sobrien
822690075Sobrien	* class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
822790075Sobrien	for a destructor.
822852284Sobrien
822990075Sobrien2001-02-18  Jason Merrill  <jason@redhat.com>
823052284Sobrien
823190075Sobrien	Do put the VTT parameter in DECL_ARGUMENTS.
823290075Sobrien	* cp-tree.h (struct cp_language_function): Add x_vtt_parm.
823390075Sobrien	(current_vtt_parm): New macro.
823490075Sobrien	(struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
823590075Sobrien	(DECL_HAS_VTT_PARM_P): New macro.
823690075Sobrien	(DECL_VTT_PARM): Remove.
823790075Sobrien	(FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
823890075Sobrien	* decl.c (duplicate_decls): Only copy the operator code if
823990075Sobrien	appropriate.
824090075Sobrien	(start_function): Set current_vtt_parm.
824190075Sobrien	(lang_mark_tree): Don't mark vtt_parm.
824290075Sobrien	* decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
824390075Sobrien	DECL_ARGUMENTS.  Set DECL_HAS_VTT_PARM_P.
824490075Sobrien	* class.c (build_clone): Maybe remove the VTT parm.
824590075Sobrien	* optimize.c (maybe_clone_body): Set up the VTT parm.
824690075Sobrien	* pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
824790075Sobrien	* call.c (build_over_call): Just allow the VTT arg.
824890075Sobrien	* method.c (make_thunk): Don't set DECL_VTT_PARM.
824990075Sobrien	(do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
825090075Sobrien	(synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
825190075Sobrien	* decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
825290075Sobrien	* error.c (dump_function_decl): Likewise.
825390075Sobrien	* call.c (build_user_type_conversion_1,	convert_like_real): Abort
825490075Sobrien	if we try to call a constructor with in-charge or VTT parms.
825590075Sobrien	* method.c (skip_artificial_parms_for): New fn.
825690075Sobrien	* call.c (add_function_candidate, build_over_call): Call it.
825790075Sobrien	* call.c (build_new_method_call): Use current_vtt_parm.
825890075Sobrien	* init.c (expand_virtual_init): Likewise.
825990075Sobrien	* class.c (same_signature_p): No longer static.
826090075Sobrien	* cp-tree.h: Declare it.
826190075Sobrien	* search.c (look_for_overrides_r): Use it.
826252284Sobrien
826390075Sobrien2001-02-17  Mark Mitchell  <mark@codesourcery.com>
826452284Sobrien
826590075Sobrien	* cp-tree.h (new_abi_rtti_p): Remove.
826690075Sobrien	(name_mangling_version): Likewise.
826790075Sobrien	(flag_do_squangling): Likewise.
826890075Sobrien	* class.c (build_rtti_vtbl_entries): Remove old ABI support.
826990075Sobrien	* decl.c (grokfndecl): Likewise.
827090075Sobrien	* decl2.c (name_mangling_version): Remove.
827190075Sobrien	(flag_do_squangling): Likewise.
827290075Sobrien	(lang_f_options): Remove `squangle'.
827390075Sobrien	(unsupported_options): Add `squangle'.
827490075Sobrien	(cxx_decode_option): Issue a warning about uses of
827590075Sobrien	-fname-mangling-version.
827690075Sobrien	(finish_file): Remove old ABI support.
827790075Sobrien	* pt.c (check_explicit_specialization): Likewise.
827890075Sobrien	(tsubst_decl): Likewise.
827990075Sobrien	* rtti.c (init_rtti_processing): Likewise.
828090075Sobrien	(build_headof): Likewise.
828190075Sobrien	(get_tinfo_decl_dynamic): Likewise.
828290075Sobrien	(tinfo_from_decl): Likewise.
828390075Sobrien	(build_dynamic_cast_1): Likewise.
828490075Sobrien	(synthesize_tinfo_var): Likewise.
828590075Sobrien	* init.c (build_new): Allow enumeration types for the array-bounds
828690075Sobrien	in a direct-new-declarator.
828752284Sobrien
828890075Sobrien	* semantics.c (finish_typeof): Resolve OFFSET_REFs.
828952284Sobrien
829090075Sobrien	* pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
829190075Sobrien	TREE_PROTECTED from the template being specialized.
829252284Sobrien
829390075Sobrien2001-02-17  Jason Merrill  <jason@redhat.com>
829452284Sobrien
829590075Sobrien	* decl2.c (build_artificial_parm): Set TREE_READONLY.
829652284Sobrien
829790075Sobrien	* decl.c (bad_specifiers): Allow throw specs on things with
829890075Sobrien	pointer-to-function or -member-function type.
829990075Sobrien	* init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
830090075Sobrien	a pmf.
830152284Sobrien
830290075Sobrien2001-02-17  Mark Mitchell  <mark@codesourcery.com>
830352284Sobrien
830490075Sobrien	* call.c (check_dtor_name): Handle template names correctly.
830552284Sobrien
830690075Sobrien2001-02-16  Jason Merrill  <jason@redhat.com>
830718334Speter
830890075Sobrien	* cp-tree.h (DECL_USE_VTT_PARM): Remove.
830990075Sobrien	* decl2.c (maybe_retrofit_in_chrg): Don't create it.
831090075Sobrien	* optimize.c (maybe_clone_body): Don't substitute it.
831190075Sobrien	* call.c (build_new_method_call): Check in_chrg instead.
831290075Sobrien	* init.c (expand_virtual_init): Likewise.
831318334Speter
831490075Sobrien2001-02-16  Gabriel Dos Reis  <gdr@codesourcery.com>
831552284Sobrien
831690075Sobrien	* decl.c (check_tag_decl): Make sure a typedef for an anonymous
831790075Sobrien	class-type introduces at least a type-name.
831852284Sobrien
831990075Sobrien2001-02-16  Jakub Jelinek  <jakub@redhat.com>
832052284Sobrien
832190075Sobrien	* call.c (convert_like_real): Create a temporary for non-lvalue.
832252284Sobrien
832390075Sobrien2001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
832452284Sobrien
832590075Sobrien	* cp-tree.h: Fix typos in comments.
832652284Sobrien
832790075Sobrien2001-02-16  Jason Merrill  <jason@redhat.com>
832818334Speter
832990075Sobrien	* optimize.c (remap_block): If we're compiling a clone, pass the
833090075Sobrien	new block to insert_block.
833152284Sobrien
833290075Sobrien2001-02-16  Mark Mitchell  <mark@codesourcery.com>
833318334Speter
833490075Sobrien	* semantics.c (finish_asm_stmt): Robustify.
833552284Sobrien
833690075Sobrien2001-02-15  Mark Mitchell  <mark@codesourcery.com>
833752284Sobrien
833890075Sobrien	* pt.c (push_template_decl_real): Don't remangle the name of a
833990075Sobrien	class template.
834052284Sobrien
834190075Sobrien2001-02-15  Jim Meyering  <meyering@lucent.com>
834252284Sobrien
834390075Sobrien	* Make-lang.in (c++.install-common): Depend on installdirs.
834490075Sobrien	(c++.install-info): Likewise.
834590075Sobrien	(c++.install-man): Likewise.
834652284Sobrien
834790075Sobrien2001-02-15  Mark Mitchell  <mark@codesourcery.com>
834852284Sobrien
834990075Sobrien	* typeck2.c (build_m_component_ref): Robustify.
835018334Speter
835190075Sobrien2001-02-15  Alexandre Oliva  <aoliva@redhat.com>
835250397Sobrien
835390075Sobrien	* friend.c (do_friend): Don't take the nested [template] class
835490075Sobrien	into account when deciding whether to warn about the friend
835590075Sobrien	function not referring to a template function.
835652284Sobrien
835790075Sobrien2001-02-14  Jakub Jelinek  <jakub@redhat.com>
835852284Sobrien
835990075Sobrien	* typeck.c (build_unary_op): Clarify error message.
836050397Sobrien
836190075Sobrien2001-02-08  Aldy Hernandez  <aldyh@redhat.com>
836250397Sobrien
836390075Sobrien	* parse.y (component_constructor_declarator): allow optional
836490075Sobrien	parentheses around constructor class name.
836552284Sobrien
836690075Sobrien2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
836752284Sobrien
836890075Sobrien	* cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
836990075Sobrien	section.
837090075Sobrien	* init.c (emit_base_init): Remove incorrect comment about
837190075Sobrien	virtual bases.
837290075Sobrien	* method.c (make_thunk): Fix comment alignment.
837352284Sobrien
837490075Sobrien2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
837552284Sobrien
837690075Sobrien	Kill remnants of this is variable.
837790075Sobrien	* cp-tree.h (flag_this_is_variable): Remove.
837890075Sobrien	* decl2.c (flag_this_is_variable): Remove.
837990075Sobrien	* class.c (fixed_type_or_null): Add cdtor parm. Adjust.
838090075Sobrien	(build_vbase_path): The path is non-static, even in a cdtor.
838190075Sobrien	(resolves_to_fixed_type_p): Add additional return value.
838290075Sobrien	* search.c (init_vbase_pointers): Adjust.
838390075Sobrien	* tree.c (lvalue_p_1): Adjust.
838490075Sobrien	* typeck.c (mark_addressable): Adjust.
838552284Sobrien
838690075Sobrien2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
838752284Sobrien
838890075Sobrien	* pt.c (unify): Don't check cv quals of array types.
838952284Sobrien
839090075Sobrien2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
839152284Sobrien
839290075Sobrien	* tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
839390075Sobrien	check whether we already have the type.
839452284Sobrien
839590075Sobrien2001-02-13  Mark Mitchell  <mark@codesourcery.com>
839652284Sobrien
839790075Sobrien	* cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
839890075Sobrien	* call.c (build_op_delete_call): Simplify to remove duplicate
839990075Sobrien	code.
840090075Sobrien	* class.c (clone_function_decl): Don't build the deleting variant
840190075Sobrien	of a non-virtual destructor.
840290075Sobrien	* decl.c (finish_destructor_body): Don't call delete if this is a
840390075Sobrien	non-virtual destructor.
840490075Sobrien	* init.c (build_delete): Explicitly call `operator delete' when
840590075Sobrien	deleting an object with a non-virtual destructor.
840652284Sobrien
840790075Sobrien2001-02-13  Jason Merrill  <jason@redhat.com>
840852284Sobrien
840990075Sobrien	* lang-specs.h: Add more __EXCEPTIONS.
841052284Sobrien
841190075Sobrien2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
841252284Sobrien
841390075Sobrien	* typeck2.c (process_init_constructor): Check
841490075Sobrien	TREE_HAS_CONSTRUCTOR before issuing missing init warning.
841552284Sobrien
841690075Sobrien2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
841752284Sobrien
841890075Sobrien	* pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
841990075Sobrien	Remove spurious information in comment. Allow further
842090075Sobrien	adjustments of REFERENCE_TYPE args.
842152284Sobrien
842290075Sobrien2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
842352284Sobrien
842490075Sobrien	* errfn.c (cp_deprecated): Tweak diagnostic text.
842590075Sobrien	* parse.y (new_initializer): Deprecate initializer lists
842690075Sobrien	extension.
842752284Sobrien
842890075Sobrien2001-02-12  Mark Mitchell  <mark@codesourcery.com>
842952284Sobrien
843090075Sobrien	Remove old ABI support.
843152284Sobrien
843290075Sobrien2001-02-11  Mark Mitchell  <mark@codesourcery.com>
843352284Sobrien
843490075Sobrien	* decl2.c (flag_vtable_thunks): Always set it to 1.
843590075Sobrien	(flag_new_abi): Likewise.
843690075Sobrien	* lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
843752284Sobrien
843890075Sobrien	* Makefile.in (g++spec.o): Fix typo.
843952284Sobrien
844090075Sobrien2001-02-09  Jason Merrill  <jason@redhat.com>
844152284Sobrien
844290075Sobrien	* lang-specs.h: Restore definition of __EXCEPTIONS.
844352284Sobrien
844490075Sobrien2001-02-08  Jason Merrill  <jason@redhat.com>
844552284Sobrien
844690075Sobrien	* search.c (shared_member_p): New function.
844790075Sobrien	(lookup_field_r): Use it.
844890075Sobrien	* cp-tree.h (SHARED_MEMBER_P): Remove.
844952284Sobrien
845090075Sobrien	* method.c (process_overload_item): Handle template-dependent array
845190075Sobrien	bounds.
845290075Sobrien	* pt.c (type_unification_real): If we end up with undeduced nontype
845390075Sobrien	parms, try again.
845452284Sobrien
845590075Sobrien	* decl.c (lookup_name_real): Tweak warning to refer to decls, not
845690075Sobrien	types.
845752284Sobrien
845890075Sobrien	* typeck2.c (friendly_abort): Don't say anything if we have
845990075Sobrien	earlier errors or sorries.
846052284Sobrien
846190075Sobrien	* decl.c (check_tag_decl): Notice attempts to redefine bool and
846290075Sobrien	wchar_t.  Ignore if in_system_header.
846352284Sobrien
846490075Sobrien	* decl.c (maybe_push_cleanup_level): New fn...
846590075Sobrien	(start_decl_1): ...split out from here.
846690075Sobrien	* cvt.c (build_up_reference): Use it.
846790075Sobrien	* cp-tree.h: Declare it.
846852284Sobrien
846990075Sobrien2001-02-07  Mark Mitchell  <mark@codesourcery.com>
847052284Sobrien
847190075Sobrien	* lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
847290075Sobrien	spec.
847352284Sobrien
847490075Sobrien2001-02-06  Nathan Sidwell  <nathan@codesourcery.com>
847552284Sobrien
847690075Sobrien	* pt.c (lookup_template_class): Make sure it's a primary
847790075Sobrien	template or template_template_parm when called from the parser.
847890075Sobrien	(instantiate_template_class): Add assertion.
847952284Sobrien
848090075Sobrien2001-02-05  Alexandre Oliva  <aoliva@redhat.com>
848152284Sobrien
848290075Sobrien	* method.c (build_mangled_name) [old abi]: Protect flush_repeats()
848390075Sobrien	from error_mark_node.
848452284Sobrien
848590075Sobrien2001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
848652284Sobrien
848790075Sobrien	Fix specification and implementation bugs in V3 ABI
848890075Sobrien	construction vtables.
848990075Sobrien	* cp-tree.h (flag_dump_class_layout): New flag.
849090075Sobrien	(BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
849190075Sobrien	(BINFO_LOST_PRIMARY_P): New flag.
849290075Sobrien	(SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
849390075Sobrien	(BINFO_PRIMARY_MARKED_P): Rename to ...
849490075Sobrien	(BINFO_PRIMARY_P): ... here.
849590075Sobrien	(binfo_via_virtual): New prototype.
849690075Sobrien	* decl2.c (flag_dump_class_layout): New flag.
849790075Sobrien	(cxx_decode_option): Set it. Adjust -fdump-translation-unit to
849890075Sobrien	use `=' as a file name separator.
849990075Sobrien	* init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
850090075Sobrien	bases.
850190075Sobrien	(build_vtbl_address): If this is a virtual primary base, then
850290075Sobrien	get the vtbl of what it is ultimately primary for.
850390075Sobrien	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
850490075Sobrien	for BINFO_PRIMARY_P.
850590075Sobrien	(dfs_skip_nonprimary_vbases_markedp): Likewise.
850690075Sobrien	(get_shared_vbase_if_not_primary): Likewise.
850790075Sobrien	(dfs_get_pure_virtuals): Likewise.
850890075Sobrien	(expand_upcast_fixups): Likewise.
850990075Sobrien	(fixup_virtual_upcast_offsets): Likewise.
851090075Sobrien	(dfs_find_vbase_instance): Likewise.
851190075Sobrien	(find_vbase_instance): Likewise.
851290075Sobrien	(binfo_from_vbase): Adjust comment to reflect reality.
851390075Sobrien	(binfo_via_virtual): New function.
851490075Sobrien	* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
851590075Sobrien	for binfo walking during VTT construction.
851690075Sobrien	(dfs_mark_primary_bases): Remove.
851790075Sobrien	(force_canonical_binfo_r): New function.
851890075Sobrien	(force_canonical_binfo): New function.
851990075Sobrien	(mark_primary_virtual_base): New function.
852090075Sobrien	(mark_primary_bases): Walk in inheritance graph order, use
852190075Sobrien	mark_primary_virtual_base.
852290075Sobrien	(determine_primary_base): Use some more intermediate variables.
852390075Sobrien	(dfs_find_final_overrider): Don't check for overriding along a
852490075Sobrien	virtual path.
852590075Sobrien	(dfs_modify_vtables): Walk into primary virtual bases too.
852690075Sobrien	(walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
852790075Sobrien	(build_base_fields): Likewise.
852890075Sobrien	(dfs_set_offset_for_unshared_vbases): Likewise.
852990075Sobrien	(layout_virtual_bases): Likewise.
853090075Sobrien	(end_of_class): Likewise.
853190075Sobrien	(finish_struct_1): Call dump_class_hierarchy, if requested.
853290075Sobrien	(dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
853390075Sobrien	(dump_class_hierarchy_r): Add stream parameter. Emit more information.
853490075Sobrien	(dump_class_hierarchy): Add file parameter. Append to file, if
853590075Sobrien	required.
853690075Sobrien	(finish_vtbls): Adjust accumulate_vtbl_inits call.
853790075Sobrien	Use canonical base for virtual bases.
853890075Sobrien	(build_vtt): Add more comments. Adjust build_vtt_inits call.
853990075Sobrien	(build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
854090075Sobrien	Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
854190075Sobrien	VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
854290075Sobrien	virtual VTTs.
854390075Sobrien	(dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
854490075Sobrien	from DATA.  We want virtual primary bases and all bases via virtual.
854590075Sobrien	Only set BINFO_VPTR_INDEX for top level. Look up from a primary
854690075Sobrien	virtual base when not a construction vtable.
854790075Sobrien	(dfs_ctor_vtable_bases_queue_p): New DFS predicate.
854890075Sobrien	(build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
854990075Sobrien	Use canonical bases when processing virtual bases.
855090075Sobrien	(accumulate_vtbl_inits): We're interested in any base via a
855190075Sobrien	virtual path.
855290075Sobrien	(dfs_accumulate_vtbl_inits): If this is a primary virtual base
855390075Sobrien	within a construction vtable, determine what is being overridden.
855490075Sobrien	(build_vtbl_initializer): Add more comments
855590075Sobrien	(add_vcall_offset_vtbl_entries_1): Adjust comment.
855690075Sobrien	(build_rtti_vtbl_entries): Check if the base has lost its
855790075Sobrien	primary.
855852284Sobrien
855990075Sobrien2001-02-05  Mark Mitchell  <mark@codesourcery.com>
856052284Sobrien
856190075Sobrien	* Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
856252284Sobrien
856390075SobrienSun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
856452284Sobrien
856590075Sobrien	* decl.c (pushdecl): Call abort instead of fatal.
856690075Sobrien	* except.c (decl_is_java_type): Call fatal_error instead of fatal.
856790075Sobrien	* init.c (build_new_1): Likewise.
856890075Sobrien	(build_java_class_ref): Call internal_error and fatal_error, not fatal.
856990075Sobrien	* decl.c (build_typename_type): hash_table_init now returns void.
857090075Sobrien	decl.c (init_decl_processing): Make an error non-fatal.
857152284Sobrien
857290075Sobrien2001-02-04  Mark Mitchell  <mark@codesourcery.com>
857352284Sobrien
857490075Sobrien	* cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
857590075Sobrien	Document.
857690075Sobrien	(CLASSTYPE_INTERFACE_KNOWN): Likewise.
857790075Sobrien	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
857890075Sobrien	(SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
857990075Sobrien	(SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
858090075Sobrien	* decl.c (maybe_commonize_var): Use the new name-mangling where
858190075Sobrien	appropriate.
858290075Sobrien	* decl2.c (comdat_linkage): Enhance comments.  Make all
858390075Sobrien	compiler-generated things static, if COMDAT is not available.
858490075Sobrien	(get_tinfo_decl): Do not make typeinfo objects that belong in the
858590075Sobrien	library COMDAT.
858690075Sobrien	(tinfo_base_init): Use the correct mangled name for typeinfo
858790075Sobrien	strings, and push them into the global scope.
858890075Sobrien	(typeinfo_in_lib_p): New function.
858990075Sobrien	(synthesize_tinfo_var): Use it.
859090075Sobrien	(create_real_tinfo_var): Likewise.
859152284Sobrien
859290075Sobrien2001-02-03  Jakub Jelinek  <jakub@redhat.com>
859352284Sobrien
859490075Sobrien	* decl.c (push_class_binding): Use context_for_name_lookup instead
859590075Sobrien	of CP_DECL_CONTEXT.
859690075Sobrien	* search.c (context_for_name_lookup): Remove static.  Check for NULL
859790075Sobrien	context in the loop.
859890075Sobrien	* cp-tree.h (context_for_name_lookup): Add prototype.
859952284Sobrien
860090075Sobrien2001-02-02  Jakub Jelinek  <jakub@redhat.com>
860152284Sobrien
860290075Sobrien	* cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
860390075Sobrien	* tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
860490075Sobrien	Remove.
860590075Sobrien	* call.c (convert_class_to_reference, build_user_type_conversion_1,
860690075Sobrien	add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
860752284Sobrien
860890075Sobrien2001-02-02  Mark Mitchell  <mark@codesourcery.com>
860952284Sobrien
861090075Sobrien	* Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
861190075Sobrien	of macros used when compiling g++spec.c.
861290075Sobrien	* g++spec.c (lang_specific_driver): Link with the shared
861390075Sobrien	libgcc by default.
861452284Sobrien
861590075Sobrien2001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
861652284Sobrien
861790075Sobrien	* decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
861890075Sobrien	make_reference_declarator, make_call_declarator), method.c
861990075Sobrien	(implicitly_declare_fn), parse.y (namespace_using_decl,
862090075Sobrien	notype_unqualified_id, expr_or_declarator, new_type_id,
862190075Sobrien	after_type_declarator, direct_after_type_declarator,
862290075Sobrien	notype_declarator, complex_notype_declarator,
862390075Sobrien	complex_direct_notype_declarator, qualified_id,
862490075Sobrien	notype_qualified_id, overqualified_id, direct_new_declarator,
862590075Sobrien	absdcl, direct_abstract_declarator, conversion_declarator), pt.c
862690075Sobrien	(tsubst), semantics.c (begin_constructor_declarator): Use build_nt
862790075Sobrien	instead of build_parse_node.
862852284Sobrien
862990075Sobrien2001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
863052284Sobrien
863190075Sobrien	* cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
863290075Sobrien	(minus_one_node): Moved to top level gcc directory.  Renamed
863390075Sobrien	to integer_minus_one_node.
863452284Sobrien
863590075Sobrien	* init.c (init_init_processing): Don't set minus_one_node.
863690075Sobrien	(build_vec_init): Use integer_minus_one_node.
863752284Sobrien
863890075Sobrien	* rtti.c (get_tinfo_decl_dynamic): Likewise.
863952284Sobrien
864090075Sobrien2001-01-28  Jakub Jelinek  <jakub@redhat.com>
864152284Sobrien
864290075Sobrien	* optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
864390075Sobrien	identical and they would be replaced with constant, remove
864490075Sobrien	MODIFY_EXPR from the tree.
864552284Sobrien
864690075Sobrien2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
864752284Sobrien
864890075Sobrien	* Make-lang.in: Remove all dependencies on defaults.h.
864990075Sobrien	* call.c: Don't include defaults.h.
865090075Sobrien	* decl.c: Likewise.
865190075Sobrien	* decl2.c: Likewise.
865290075Sobrien	* except.c: Likewise.
865390075Sobrien	* pt.c: Likewise.
865490075Sobrien	* rtti.c: Likewise.
865590075Sobrien	* tree.c: Likewise.
865690075Sobrien	* typeck.c: Likewise.
865752284Sobrien
865890075Sobrien2001-01-25  Jakub Jelinek  <jakub@redhat.com>
865952284Sobrien
866090075Sobrien	* mangle.c (write_mangled_name, write_encoding): Mangle overloaded
866190075Sobrien	operators even in "C" linkage.
866290075Sobrien	* method.c (set_mangled_name_for_decl): Likewise.
866390075Sobrien	* decl.c (grokfndecl): Call set_mangled_name_for_decl even for
866490075Sobrien	overloaded operators in "C" linkage.
866552284Sobrien
866690075Sobrien2001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
866752284Sobrien
866890075Sobrien	* pt.c (tsubst_decl): Remove IN_DECL parameter.
866990075Sobrien	(tsubst_arg_types): Check parameter is not void.
867090075Sobrien	(tsubst): Adjust tsubst_decl call.
867152284Sobrien
867290075Sobrien2001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
867352284Sobrien
867490075Sobrien	* call.c (add_builtin_candidate): Quote std properly, from
867590075Sobrien	previous change.
867652284Sobrien
867790075Sobrien2001-01-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
867852284Sobrien
867990075Sobrien	* pt.c (check_explicit_specialization): Clone constructors and
868090075Sobrien	destructors.
868152284Sobrien
868290075Sobrien2001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
868352284Sobrien
868490075Sobrien	* decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
868590075Sobrien	indicates anything special about template depth. Make sure we
868690075Sobrien	only count the user visible template classes.
868752284Sobrien
868890075Sobrien2001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
868952284Sobrien
869090075Sobrien	* call.c (build_conv): Typo in comment.
869190075Sobrien	(add_builtin_candidate): Add more explanation.
869290075Sobrien	Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
869390075Sobrien	Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
869490075Sobrien	when we have enumeral types.
869590075Sobrien	(add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
869690075Sobrien	candidates for relops and eqops.
869790075Sobrien	(joust): Simplify control flow. Allow a non-template user
869890075Sobrien	function to hide a builtin.
869950397Sobrien
870090075Sobrien2001-01-22  Nathan Sidwell  <nathan@codesourcery.com>
870152284Sobrien
870290075Sobrien	* cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
870390075Sobrien	(more_specialized): Add deduction parameter.
870490075Sobrien	* call.c (joust): Adjust more_specialized call.
870590075Sobrien	* pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
870690075Sobrien	UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
870790075Sobrien	(get_bindings_order): Remove.
870890075Sobrien	(get_bindings_real): Add DEDUCE parameter.
870990075Sobrien	(maybe_adjust_types_for_deduction): Return extra unify flags. Do
871090075Sobrien	REFERENCE_TYPE jig for DEDUCE_ORDER.
871190075Sobrien	(type_unification_real): Deal with DEDUCE_ORDER. Use result of
871290075Sobrien	maybe_adjust_types_for_deduction.
871390075Sobrien	(more_specialized): Add DEDUCE parameter. Call get_bindings_real
871490075Sobrien	directly.
871590075Sobrien	(try_one_overload): Use result of maybe_adjust_types_for_deduction.
871690075Sobrien	(check_cv_quals_for_unify): Use new unify qualifier flags.
871790075Sobrien	(unify): Clear new unify qualifier flags.
871890075Sobrien	(get_bindings_real): Add DEDUCE parameter.
871990075Sobrien	(get_bindings): Adjust call to get_bindings_real.
872090075Sobrien	(get_bindings_overload): Likewise.
872190075Sobrien	(most_specialized_instantiation): Adjust call to
872290075Sobrien	more_specialized.
872352284Sobrien
872490075Sobrien2001-01-19  Jason Merrill  <jason@redhat.com>
872552284Sobrien
872690075Sobrien	* decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
872752284Sobrien
872890075Sobrien	* decl.c (init_decl_processing): Just force -fvtable-thunks on if
872990075Sobrien	-fnew-abi.
873052284Sobrien
873190075Sobrien2001-01-19  Ute Pelkmann  <scope.muc@t-online.de>
873252284Sobrien
873390075Sobrien	* decl2.c (arg_assoc_class): Fix double iteration logic.
873452284Sobrien
873590075Sobrien2001-01-19  Jason Merrill  <jason@redhat.com>
873652284Sobrien
873790075Sobrien	* init.c (build_delete): Always call convert_force to strip cv-quals.
873852284Sobrien
873990075Sobrien	* decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
874090075Sobrien	* lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
874190075Sobrien	* g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
874252284Sobrien
874390075Sobrien2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
874452284Sobrien
874590075Sobrien	* search.c (get_vbase_1): Count only virtual bases.
874652284Sobrien
874790075Sobrien2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
874852284Sobrien
874990075Sobrien	* class.c (duplicate_tag_error): Robustify flag clearing.
875052284Sobrien
875190075Sobrien2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
875252284Sobrien
875390075Sobrien	* cp-tree.h (lookup_template_class): Add complain parm.
875490075Sobrien	* decl.c (lookup_namespace_name): Adjust call to
875590075Sobrien	lookup_template_class.
875690075Sobrien	(make_typename_type): Likewise.
875790075Sobrien	* semantics.c (finish_template_type): Likewise.
875890075Sobrien	* pt.c (lookup_template_class): Add complain parm. Adjust.
875990075Sobrien	(tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
876090075Sobrien	(tsubst): Likewise.
876152284Sobrien
876290075Sobrien2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
876352284Sobrien
876490075Sobrien	* pt.c (copy_default_args_to_explicit_spec): Preserve
876590075Sobrien	object's CV quals. Reorganize.
876652284Sobrien
876790075Sobrien2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
876852284Sobrien
876990075Sobrien	* typeck.c (build_modify_expr): Say `initialization' for
877090075Sobrien	INIT_EXPRs.
877190075Sobrien	* init.c (build_default_init): Convert to enumeral type, if
877290075Sobrien	needed.
877352284Sobrien
877490075Sobrien2001-01-18  Jakub Jelinek  <jakub@redhat.com>
877552284Sobrien
877690075Sobrien	* parse.y (nomods_initdcl0): Properly set things up for
877790075Sobrien	initdcl0_innards.
877852284Sobrien
877990075Sobrien2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
878052284Sobrien
878190075Sobrien	* pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
878290075Sobrien	(type_unification_real): Set it.
878390075Sobrien	(unify): Use it.
878452284Sobrien
878590075Sobrien2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
878652284Sobrien
878790075Sobrien	* decl.c (finish_destructor_body): Convert to vbase pointer here.
878852284Sobrien
878990075Sobrien2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
879052284Sobrien
879190075Sobrien	* semantics.c (begin_class_definition): Check we're not inside a
879290075Sobrien	template parm list.
879352284Sobrien
879490075Sobrien2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
879552284Sobrien
879690075Sobrien	* tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
879790075Sobrien	BASELINK_P.
879852284Sobrien
879990075Sobrien2001-01-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
880052284Sobrien
880190075Sobrien	* typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
880290075Sobrien	* call.c (build_over_call): Add comment.
880352284Sobrien
880490075Sobrien2001-01-16 Daniel Berlin <dberlin@redhat.com>
880552284Sobrien
880690075Sobrien	* cvt.c (ocp_convert): Handle vector type conversion
880790075Sobrien	* typeck2.c (digest_init): Handle vector type initializations
880852284Sobrien
880990075Sobrien2001-01-16  Phil Edwards  <pme@sources.redhat.com>
881052284Sobrien
881190075Sobrien	* g++spec.c:  Don't add libraries needlessly if -fsyntax-only
881290075Sobrien	  was given.
881352284Sobrien
881490075Sobrien2001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
881552284Sobrien
881690075Sobrien	* pt.c (check_nontype_parm): Rename to ...
881790075Sobrien	(invalid_nontype_parm_type_p): ... here.
881890075Sobrien	(process_template_parm): Adjust.
881990075Sobrien	(convert_template_argument): Adjust.
882052284Sobrien
882190075Sobrien2001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
882252284Sobrien
882390075Sobrien	* pt.c (check_nontype_parm): New function.
882490075Sobrien	(process_template_parm): Use it.
882590075Sobrien	(convert_template_argument): Use it.
882690075Sobrien	(convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
882790075Sobrien	member.
882852284Sobrien
882990075Sobrien2001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
883052284Sobrien
883190075Sobrien	* tree.c: Add defaults.h
883290075Sobrien	(cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
883390075Sobrien	* Make-lang.in (cp/tree.o): Add defaults.h.
883452284Sobrien
883590075Sobrien2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
883652284Sobrien
883790075Sobrien	* Make-lang.in (CXX_C_OBJS): Add c-format.o.
883852284Sobrien
883990075Sobrien2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
884052284Sobrien
884190075Sobrien	* g++.1: Change to be ".so man1/gcc.1".
884252284Sobrien
884390075Sobrien2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
884452284Sobrien
884590075Sobrien	* Make-lang.in (c++.info, c++.install-info): Build and install g++
884690075Sobrien	internals info.
884790075Sobrien	(c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
884890075Sobrien	($(srcdir)/cp/g++int.info): New target.
884990075Sobrien	* gxxint.texi: Add info directory entry.  Use @@ in email address.
885090075Sobrien	* .cvsignore: Update.
885152284Sobrien
885290075Sobrien2001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
885352284Sobrien
885490075Sobrien	* typeck.c (build_c_cast): Do template processing earlier.
885590075Sobrien	Always pedwarn on array casts.
885652284Sobrien
885790075Sobrien2001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
885852284Sobrien
885990075Sobrien	* friend.c (make_friend_class): Make sure a templated class is
886090075Sobrien	actually a template.
886152284Sobrien
886290075Sobrien2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
886352284Sobrien
886490075Sobrien	* decl2.c (get_guard): Set linkage from guarded decl.
886552284Sobrien
886690075Sobrien2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
886752284Sobrien
886890075Sobrien	* call.c (convert_default_arg): Check for unprocessed
886990075Sobrien	DEFAULT_ARG.
887090075Sobrien	* cp-tree.h (replace_defarg): Move to spew.c.
887190075Sobrien	(maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
887290075Sobrien	spew.c, which is where they really are.
887390075Sobrien	(done_pending_defargs): Declare.
887490075Sobrien	(unprocessed_defarg_fn): Declare.
887590075Sobrien	* decl.c (replace_defarg): Move to spew.c
887690075Sobrien	* parse.y (structsp): Call done_pending_defargs.
887790075Sobrien	* spew.c (defarg_fns): Rearrange list structure.
887890075Sobrien	(defarg_fnsdone): New static variable.
887990075Sobrien	(defarg_depfns): New static variable.
888090075Sobrien	(init_spew): Adjust.
888190075Sobrien	(add_defarg_fn): Store the type in TREE_TYPE.
888290075Sobrien	(do_pending_defargs): Detect and deal with ordering constraints
888390075Sobrien	and circularity.
888490075Sobrien	(done_pending_defargs): New function.
888590075Sobrien	(unprocessed_defarg_fn): New function.
888690075Sobrien	(replace_defarg): Moved from decl.c. Robustify. Don't save
888790075Sobrien	if circularity detected.
888852284Sobrien
888990075Sobrien2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
889052284Sobrien
889190075Sobrien	* pt.c (unify): Check array has a domain, before checking
889290075Sobrien	whether it is variable sized.
889352284Sobrien
889490075Sobrien2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
889552284Sobrien
889690075Sobrien	* decl.c (grokparms): Unobfuscate and get correct diagnostic for
889790075Sobrien	parameters with pointers to arrays of unknown bound.
889852284Sobrien
889990075Sobrien2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
890052284Sobrien
890190075Sobrien	* parse.y (template_parm_header, template_spec_header): New
890290075Sobrien	reductions. Split out from ...
890390075Sobrien	(template_header): ... here. Use them.
890490075Sobrien	(template_template_parm): Use template_parm_header.
890590075Sobrien	* semantics.c (finish_template_template_parm): Add assert.
890652284Sobrien
890790075Sobrien2001-01-10  Mark Mitchell  <mark@codesourcery.com>
890852284Sobrien
890990075Sobrien	* mangle.c (write_builtin_type): Fix thinko.
891052284Sobrien
891190075Sobrien	* pt.c (copy_default_args_to_explicit_spec_1): New function.
891290075Sobrien	(copy_default_args_to_explicit_spec): Likewise.
891390075Sobrien	(check_explicit_specialization): Use it.
891452284Sobrien
891590075Sobrien	* class.c (finish_struct_1):  Remove last argument in call to
891690075Sobrien	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
891790075Sobrien	* decl.c (builtin_function): Likewise.
891890075Sobrien	(build_cp_library_fn): Likewise.
891990075Sobrien	(check_initializer): Likewise.
892090075Sobrien	(make_rtl_for_nonlocal_decl): Likewise.
892190075Sobrien	(cp_finish_decl): Likewise.
892290075Sobrien	(start_function): Likewise.
892390075Sobrien	* decl2.c (finish_anon_union): Likewise.
892452284Sobrien	* friend.c (do_friend): Likewise.
892590075Sobrien	* init.c (build_java_class_ref): Likewise.
892690075Sobrien	* method.c (make_thunk): Likewise.
892790075Sobrien	* pt.c (tsubst_friend_function): Likewise.
892890075Sobrien	* semantics.c (expand_body): Likewise.
892952284Sobrien
893090075Sobrien2001-01-10  Mark Mitchell  <mark@codesourcery.com>
893152284Sobrien
893290075Sobrien	* cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
893390075Sobrien	looking at DECL_CLONED_FUNCTION for non-functions.
893452284Sobrien
893590075Sobrien2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
893652284Sobrien
893790075Sobrien	* error.c (dump_template_parameter): Use parm to determine how
893890075Sobrien	to print default value.
893952284Sobrien
894090075Sobrien2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
894152284Sobrien
894290075Sobrien	* class.c (duplicate_tag_error): Clear more flags.
894352284Sobrien
894490075Sobrien2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
894552284Sobrien
894690075Sobrien	* call.c (build_new_method_call): Use binfo_for_vbase.
894752284Sobrien
894890075Sobrien2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
894952284Sobrien
895090075Sobrien	* cp-tree.h (flag_cond_mismatch): Don't declare.
895190075Sobrien	* decl2.c (flag_cond_mismatch): Don't define.
895290075Sobrien	(lang_f_options): Remove cond-mismatch.
895390075Sobrien	(unsupported_options): Add cond-mismatch.
895452284Sobrien
895590075Sobrien2001-01-09  Nathan Sidwell  <nathan@codesourcery.com>
895652284Sobrien
895790075Sobrien	* class.c (handle_using_decl): Reject using of constructor name
895890075Sobrien	of sourcing class. Allow injecting of a method with same name as
895990075Sobrien	nested class. Fixup error messages.
896052284Sobrien
896190075Sobrien2001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
896252284Sobrien
896390075Sobrien	* decl2.c (lang_decode_option): Handle -Wformat=2.
896450397Sobrien
896590075Sobrien2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
896652284Sobrien
896790075Sobrien	* cp-tree.h (lang_decl_flags): Rename defined_in_class to
896890075Sobrien	initialized_in_class.
896990075Sobrien	(DECL_DEFINED_IN_CLASS_P): Rename to ...
897090075Sobrien	(DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
897190075Sobrien	* decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
897290075Sobrien	(cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
897390075Sobrien	* pt.c (check_default_tmpl_args): Adjust for
897490075Sobrien	DECL_INITIALIZED_IN_CLASS_P.
897590075Sobrien	(instantiate_class_template): Likewise.
897690075Sobrien	(instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
897752284Sobrien
897890075Sobrien	* class.c (finish_struct): Constify saved_filename.
897952284Sobrien
898090075Sobrien2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
898152284Sobrien
898290075Sobrien	* class.c (duplicate_tag_error): Adjust diagnostic.
898390075Sobrien	(finish_struct): Locally set location to start of struct.
898490075Sobrien	* decl.c (fixup_anonymous_aggr): Use cp_error_at.
898552284Sobrien
898690075Sobrien2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
898750397Sobrien
898890075Sobrien	* decl.c (struct binding_level): Adjust class_shadowed comments
898990075Sobrien	to reflect reality.
899090075Sobrien	(push_class_level_binding): Adjust comments to reflect reality.
899190075Sobrien	Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
899290075Sobrien	Don't set TREE_VALUE on the class_shadowed list.
899352284Sobrien
899490075Sobrien2001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
899552284Sobrien
899690075Sobrien	* decl2.c (acceptable_java_type): Allow references too.
899790075Sobrien	* init.c (build_java_class_ref): When using the new ABI, search
899890075Sobrien	`class$' and have it mangled with `mangle_decl.'
899990075Sobrien	* mangle.c (write_java_integer_type_codes): New function.
900090075Sobrien	(write_builtin_type): Detect and mangle Java integer and real
900190075Sobrien	types.
900252284Sobrien
900390075Sobrien2001-01-07  Mark Mitchell  <mark@codesourcery.com>
900452284Sobrien
900590075Sobrien	* decl2.c (grokfield): Don't accept `asm' specifiers for
900690075Sobrien	non-static data members.
900752284Sobrien
900890075Sobrien2001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
900952284Sobrien
901090075Sobrien	* expr.c (cplus_expand_expr): Don't reset `target'.
901150397Sobrien
901290075Sobrien2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
901350397Sobrien
901490075Sobrien	* cp/decl2.c (cxx_post_options): Call cpp_post_options.
901552284Sobrien
901690075Sobrien2001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
901752284Sobrien
901890075Sobrien	* parse.y (template_datadef): Check for error_mark_node.
901952284Sobrien
902090075Sobrien2001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
902152284Sobrien
902290075Sobrien	* cp-tree.def (DEFAULT_ARG): Make `x' class.
902352284Sobrien
902490075Sobrien2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
902552284Sobrien
902690075Sobrien	* decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
902790075Sobrien	(record_builtin_type): Make non-static.
902890075Sobrien	(flag_short_double): Don't declare.
902990075Sobrien	(init_decl_processing): Remove the creation of many tree nodes now
903090075Sobrien	in c_common_nodes_and_builtins.
903190075Sobrien	(build_void_list_node): New function.
903290075Sobrien	* decl2.c (flag_short_double, flag_short_wchar): Don't define.
903390075Sobrien	* cp-tree.h (flag_short_wchar): Don't declare.
903452284Sobrien
903590075Sobrien2001-01-04  Mark Mitchell  <mark@codesourcery.com>
903652284Sobrien
903790075Sobrien	* call.c (build_conv): Don't use build1 for USER_CONV.
903890075Sobrien	* pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
903952284Sobrien
904090075Sobrien2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
904152284Sobrien
904290075Sobrien	* lex.c (lang_init): Call c_common_lang_init.
904352284Sobrien
904490075Sobrien2001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
904552284Sobrien
904690075Sobrien	* search.c (lookup_fnfields_here): Remove.
904790075Sobrien	(look_for_overrides_r): Use lookup_fnfields_1.
904890075Sobrien	Ignore functions from using declarations.
904952284Sobrien
905090075Sobrien2001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
905152284Sobrien
905290075Sobrien	Implement exceptions specifiers for implicit member functions.
905390075Sobrien	* cp-tree.h (merge_exceptions_specifiers): Declare new function.
905490075Sobrien	* method.c (synthesize_exception_spec): New function.
905590075Sobrien	(locate_dtor, locate_ctor, locate_copy): New functions.
905690075Sobrien	(implicitly_declare_fn): Generate the exception spec too.
905790075Sobrien	* search.c (check_final_overrider): Check artificial functions
905890075Sobrien	too.
905990075Sobrien	* typeck2.c (merge_exception_specifiers): New function.
906050397Sobrien
906190075Sobrien2001-01-03  Jason Merrill  <jason@redhat.com>
906252284Sobrien
906390075Sobrien	* init.c (build_default_init): New fn.
906490075Sobrien	(perform_member_init): Split out from here.
906590075Sobrien	(build_new_1): Use it.  Simplify initialization logic.
906690075Sobrien	(build_vec_init): Take an array, rather than a pointer and maxindex.
906790075Sobrien	Speed up simple initializations.  Don't clean up if we're assigning.
906890075Sobrien	* cp-tree.h: Adjust.
906990075Sobrien	* decl2.c (do_static_initialization): Remove TREE_VEC case.
907090075Sobrien	* parse.y (new_initializer): Return void_zero_node for ().
907190075Sobrien	* typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
907290075Sobrien	* typeck2.c (digest_init): Only complain about user-written
907390075Sobrien	CONSTRUCTORs.
907450397Sobrien
907590075Sobrien2000-12-22  Mike Stump  <mrs@wrs.com>
907652284Sobrien
907790075Sobrien	* decl2.c: (max_tinst_depth): Increase to 50.
907852284Sobrien
907990075Sobrien2001-01-02  Mark Mitchell  <mark@codesourcery.com>
908052284Sobrien
908190075Sobrien	* class.c (invalidate_class_lookup_cache): Zero the
908290075Sobrien	previous_class_values.
908390075Sobrien	* cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
908490075Sobrien	TREE_INT_CST_HIGH.
908590075Sobrien	(CLASSTYPE_TEMPLATE_LEVEL): Likewise.
908690075Sobrien	* decl.c (free_bindings): New variable.
908790075Sobrien	(push_binding): Don't create a new binding if we have one on the
908890075Sobrien	free list.
908990075Sobrien	(pop_binding): Put old bindings on the free list.
909090075Sobrien	(init_decl_processing): Use size_int, not build_int_2.
909190075Sobrien	Register free_bindings as a GC root.
909290075Sobrien	(cp_make_fname_decl): Use size_int, not build_int_2.
909390075Sobrien	(push_inline_template_parms_recursive): Likewise.
909490075Sobrien	(end_template_parm_list): Likewise.
9095117395Skan	(for_each_template_parm): Do not use walk_tree_without_duplicates.
909690075Sobrien	(tsubst_template_parms): Use size_int, not build_int_2.
909752284Sobrien	(tsubst): Likewise.
909890075Sobrien	* rtti.c (get_vmi_pseudo_type_info): Likewise.
909952284Sobrien
910090075Sobrien2001-01-02  Richard Henderson  <rth@redhat.com>
910152284Sobrien
910290075Sobrien	* parse.y (asm): Set ASM_INPUT_P.
910352284Sobrien
910490075Sobrien2001-01-02  Jason Merrill  <jason@redhat.com>
910552284Sobrien
910690075Sobrien	* tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
910790075Sobrien	for v3 ABI.
910852284Sobrien
910990075Sobrien	* typeck.c (cp_truthvalue_conversion): New fn.
911090075Sobrien	* cvt.c (ocp_convert): Use it.
911152284Sobrien
911290075Sobrien	* cp-tree.h: Lose c-common.c decls.
911352284Sobrien
911490075Sobrien	* typeck.c (build_unary_op): Restore old &a.f diagnostic code.
911590075Sobrien	* cvt.c (convert_to_void): Use type_unknown_p.
911652284Sobrien
911790075Sobrien	* typeck.c (strip_all_pointer_quals): Also strip quals from
911890075Sobrien	pointer-to-member types.
911952284Sobrien
912090075Sobrien	* Make-lang.in (cp/TAGS): Use --no-globals.  Ignore parse.c, and treat
912190075Sobrien	parse.y as C.
912252284Sobrien
912390075Sobrien	* call.c (build_new_method_call): Do evaluate the object parameter
912490075Sobrien	when accessing a static member.
912590075Sobrien	* typeck.c (build_component_ref): Likewise.
912652284Sobrien
912790075Sobrien2001-01-02  Andreas Jaeger  <aj@suse.de>
912852284Sobrien
912990075Sobrien	* decl.c (cp_missing_noreturn_ok_p): New.
913090075Sobrien	(init_decl_processing): Set lang_missing_noreturn_ok_p.
913152284Sobrien
913290075Sobrien2000-12-29  Jakub Jelinek  <jakub@redhat.com>
913352284Sobrien
913490075Sobrien	* decl.c (init_decl_processing): Fix sign of wchar_type_node.
913552284Sobrien
913690075Sobrien2000-12-29  Mark Mitchell  <mark@codesourcery.com>
913752284Sobrien
913890075Sobrien	* class.c (pushclass): Remove #if 0'd code.
913990075Sobrien	* cp-tree.h (overload_template_name): Remove.
914090075Sobrien	* decl.c (store_bindings): Simplify.
914190075Sobrien	(pop_from_top_level): Likewise.
914290075Sobrien	* pt.c (overload_template_name): Remove.
914390075Sobrien	(instantiate_decl): Don't call push_to_top_level if it's not
914490075Sobrien	needed.
914552284Sobrien
914690075Sobrien2000-12-28  Mark Mitchell  <mark@codesourcery.com>
914750397Sobrien
914890075Sobrien	* pt.c (register_local_specialization): Don't return a value.
914990075Sobrien	(lookup_template_class): Use move-to-front heuristic when looking
915090075Sobrien	up template instantiations.
915190075Sobrien	(instantiate_decl): Only push_to_top_level when we're actually
915290075Sobrien	going to instantiate the template.
915350397Sobrien
915490075Sobrien2000-12-29  Hans-Peter Nilsson  <hp@bitrange.com>
915550397Sobrien
915690075Sobrien	* search.c (binfo_for_vtable): Return least derived class, not
915790075Sobrien	most.  Handle secondary vtables.
915852284Sobrien
915990075Sobrien2000-12-22  Jason Merrill  <jason@redhat.com>
916052284Sobrien
916190075Sobrien	* pt.c (more_specialized): Don't optimize len==0.
916290075Sobrien	(fn_type_unification): If we're adding the return type, increase len.
916350397Sobrien
916490075Sobrien	* typeck.c (build_binary_op): Fix pmf comparison logic.
916550397Sobrien
916690075Sobrien	* call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
916790075Sobrien	DECL_STATIC_FUNCTION_P.
916852284Sobrien
916990075Sobrien	* semantics.c (genrtl_finish_function): Don't try to jump to
917090075Sobrien	return_label unless it exists.
917152284Sobrien
917290075Sobrien	In partial ordering for a call, ignore parms for which we don't have
917390075Sobrien	a real argument.
917490075Sobrien	* call.c (joust): Pass len to more_specialized.
917590075Sobrien	(add_template_candidate_real): Strip 'this', pass len.
917690075Sobrien	* pt.c (more_specialized): Pass len down.  Lose explicit_args parm.
917790075Sobrien	(get_bindings_order): New fn.  Pass len down.
917890075Sobrien	(get_bindings_real): Strip 'this', pass len.
917990075Sobrien	(fn_type_unification): Likewise.
918090075Sobrien	(type_unification_real): Succeed after checking 'len' args.
918190075Sobrien	(most_specialized_instantiation): Lose explicit_args parm.
918290075Sobrien	* class.c (resolve_address_of_overloaded_function): Strip 'this',
918390075Sobrien	pass len.
918450397Sobrien
918590075Sobrien2000-12-21  Jason Merrill  <jason@redhat.com>
918650397Sobrien
918790075Sobrien	* pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
918890075Sobrien	DECL_TEMPLATE_RESULT.
918950397Sobrien
919090075Sobrien	* search.c (lookup_field_r): Call lookup_fnfields_1, not
919190075Sobrien	lookup_fnfields_here.
919250397Sobrien
919390075Sobrien	* parse.y (typename_sub2): Return the TYPE_DECL, not the type.
919450397Sobrien
919590075Sobrien	* call.c (build_object_call): Also allow conversions that return
919690075Sobrien	reference to pointer to function.
919790075Sobrien	(add_conv_candidate): Handle totype being ref to ptr to fn.
919890075Sobrien	(build_field_call): Also allow members of type reference to function.
919990075Sobrien	Lose support for calling pointer to METHOD_TYPE fields.
920052284Sobrien
920190075Sobrien	* error.c (dump_expr): Handle *_CAST_EXPR.
920252284Sobrien
920390075Sobrien	* typeck2.c (build_scoped_ref): Always convert to the naming class.
920450397Sobrien
920590075Sobrien	* tree.c (break_out_cleanups): Lose.
920690075Sobrien	* cp-tree.h: Remove prototype.
920790075Sobrien	* typeck.c (build_component_ref): Don't break_out_cleanups.
920890075Sobrien	(build_compound_expr): Likewise.
920990075Sobrien	* semantics.c (finish_expr_stmt): Likewise.
921050397Sobrien
921190075Sobrien2000-12-20  Richard Henderson  <rth@redhat.com>
921250397Sobrien
921390075Sobrien	* cp-tree.h: Update declarations.
921490075Sobrien	* decl.c (finish_case_label): Return the new stmt node.
921590075Sobrien	* semantics.c (finish_goto_stmt): Likewise.
921690075Sobrien	(finish_expr_stmt, finish_return_stmt): Likewise.
921790075Sobrien	(finish_break_stmt, finish_continue_stmt): Likewise.
921890075Sobrien	(finish_asm_stmt): Likewise.
921990075Sobrien	* parse.y (already_scoped_stmt): Set STMT_LINENO.
922090075Sobrien	(compstmt, implicitly_scoped_stmt, stmt): Likewise.
922190075Sobrien	(simple_if, simple_stmt): Return the new stmt node.
922290075Sobrien	(save_lineno): New.
922350397Sobrien
922490075Sobrien2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
922550397Sobrien
922690075Sobrien	* cp-tree.h: Don't declare warn_long_long.
922750397Sobrien
922890075Sobrien2000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
922950397Sobrien
923090075Sobrien	* tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
923190075Sobrien	IS_AGGR_TYPE.
923250397Sobrien
923390075Sobrien2000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
923450397Sobrien
923590075Sobrien	* pt.c (unify): Handle when both ARG and PARM are
923690075Sobrien	BOUND_TEMPLATE_TEMPLATE_PARM.
923750397Sobrien
923890075Sobrien2000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
923950397Sobrien
924090075Sobrien	* pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
924190075Sobrien	DECL_TEMPLATE_PARM_P.
924250397Sobrien
924390075Sobrien2000-12-15  Jason Merrill  <jason@redhat.com>
924450397Sobrien
924590075Sobrien	* init.c (build_new_1): Reorganize.  Now with 100% fewer SAVE_EXPRs!
924650397Sobrien
924790075Sobrien	* init.c (build_new_1): Don't strip quals from type.
924850397Sobrien
924990075Sobrien	* decl.c (pushdecl): Don't check for linkage on a non-decl.
925050397Sobrien
925190075Sobrien	* call.c (build_op_delete_call): See through ARRAY_TYPEs.
925250397Sobrien
925390075Sobrien	* call.c (build_new_function_call): Lose space before paren in
925490075Sobrien	error message.
925590075Sobrien	(build_new_method_call): Likewise.
925650397Sobrien
925790075Sobrien	* typeck2.c (build_m_component_ref): Propagate quals from datum.
925850397Sobrien
925990075Sobrien2000-12-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
926050397Sobrien
926190075Sobrien	* pt.c (check_explicit_specialization): Propagate default
926290075Sobrien	function arguments to explicit specializations.
926352284Sobrien
926490075Sobrien2000-12-13  DJ Delorie  <dj@redhat.com>
926552284Sobrien
926690075Sobrien	* typeck.c (build_binary_op): Do signed/unsigned warnings for >?
926790075Sobrien	and <? operators.
926850397Sobrien
926990075Sobrien2000-12-08  Jason Merrill  <jason@redhat.com>
927050397Sobrien
927190075Sobrien	* error.c (dump_function_name): Don't let the user see __comp_ctor.
927250397Sobrien
927390075Sobrien	Clean up copy-initialization in overloading code.
927490075Sobrien	* call.c (build_user_type_conversion_1): Die if we are asked to
927590075Sobrien	convert to the same or a base type.
927690075Sobrien	(implicit_conversion): Avoid doing so.  Lose reference binding code.
927790075Sobrien	(convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
927890075Sobrien	direct-initialization.  Also do direct-init part of copy-init.
927990075Sobrien	(build_user_type_conversion): Don't provide context to convert_like.
928090075Sobrien	* cvt.c (ocp_convert): build_user_type_conversion will now provide
928190075Sobrien	the constructor call for copy-init.
928250397Sobrien
928390075Sobrien	* pt.c (tsubst_decl): Call clone_function_decl here if this is an
928490075Sobrien	instantiation of a member template.
928590075Sobrien	(do_decl_instantiation): Not here.
928652284Sobrien
928790075Sobrien2000-12-07  Nathan Sidwell  <nathan@codesourcery.com>
928818334Speter
928990075Sobrien	* class.c (check_field_decls): Don't special case anonymous
929090075Sobrien	fields in error messages.
929190075Sobrien	(note_name_declared_in_class): Use %D on diagnostic.
929218334Speter
929390075Sobrien	* tree.c (pod_type_p): Use strip_array_types.
929490075Sobrien	(cp_valid_lang_attribute): Likewise.
929590075Sobrien	* typeck.c (cp_type_quals): Strip arrays separately, to avoid
929690075Sobrien	multiple evaluations.
929790075Sobrien	(cp_has_mutable_p): Use strip_array_types.
929818334Speter
929990075Sobrien2000-12-07  Nathan Sidwell  <nathan@codesourcery.com>
930018334Speter
930190075Sobrien	* cp-tree.h (sufficient_parms_p): Declare new function.
930290075Sobrien	* call.c (sufficient_parms_p): New function, broken out of ...
930390075Sobrien	(add_function_candidate): ... here. Use it.
930490075Sobrien	(add_conv_candidate): Use it.
930590075Sobrien	* decl.c (grok_ctor_properties): Use it.
930618334Speter
930790075Sobrien2000-12-07  Jakub Jelinek  <jakub@redhat.com>
930818334Speter
930990075Sobrien	* optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
931018334Speter
931190075Sobrien2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
931218334Speter
931390075Sobrien	* decl2.c (lang_decode_option): Handle -Wformat-security.
931418334Speter
931590075Sobrien2000-12-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
931618334Speter
931790075Sobrien	* pt.c (verify_class_unification): New function.
931890075Sobrien	(get_class_bindings): Use it.
931990075Sobrien	(try_class_unification): Tidy.
932090075Sobrien	(unify): Handle when argument of a template-id is not
932190075Sobrien	template parameter dependent.
932290075Sobrien	(template_args_equal): Handle when TREE_CODE's do not match.
932318334Speter
932490075Sobrien2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
932518334Speter
932690075Sobrien	* lang-specs.h (c++): When invoking the stand-alone preprocessor
932790075Sobrien	for -save-temps, pass all relevant -Defines to it, and then don't
932890075Sobrien	pass them to cc1plus.
932918334Speter
933090075Sobrien2000-12-05  Will Cohen  <wcohen@redhat.com>
933118334Speter
933290075Sobrien	* decl.c (finish_case_label): Cleared
933390075Sobrien	more_cleanups_ok in surrounding function scopes.
933490075Sobrien	(define_label): Likewise.
933518334Speter
933690075Sobrien2000-12-05  Nathan Sidwell  <nathan@codesourcery.com>
933718334Speter
933890075Sobrien	* cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
933990075Sobrien	(get_matching_virtual): Remove.
934090075Sobrien	(look_for_overrides): Declare new function.
934190075Sobrien	* decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
934290075Sobrien	DECL_VINDEX here.
934390075Sobrien	* class.c (check_for_override): Move base class iteration code
934490075Sobrien	to look_for_overrides.
934590075Sobrien	* search.c (next_baselink): Remove.
934690075Sobrien	(get_virtuals_named_this): Remove.
934790075Sobrien	(get_virtual_destructor): Remove.
934890075Sobrien	(tree_has_any_destructors_p): Remove.
934990075Sobrien	(struct gvnt_info): Remove.
935090075Sobrien	(check_final_overrider): Remove `virtual' from error messages.
935190075Sobrien	(get_matching_virtuals): Remove. Move functionality to ...
935290075Sobrien	(look_for_overrides): ... here, and ...
935390075Sobrien	(look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
935490075Sobrien	to be overriding.
935518334Speter
935690075Sobrien2000-12-05  Nathan Sidwell  <nathan@codesourcery.com>
935718334Speter
935890075Sobrien	* typeck.c (get_delta_difference): If via a virtual base,
935990075Sobrien	return zero.
936090075Sobrien	* cvt.c (cp_convert_to_pointer): If via a virtual base, do no
936190075Sobrien	adjustment.
936218334Speter
936390075Sobrien2000-12-04  Richard Henderson  <rth@redhat.com>
936418334Speter
936590075Sobrien	* error.c (dump_tree): Use output_add_string not OB_PUTS.
936618334Speter
936790075Sobrien2000-12-04  Jason Merrill  <jason@redhat.com>
936818334Speter
936990075Sobrien	* mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
937090075Sobrien	(write_builtin_type): Pass intSI_type_node and the like through
937190075Sobrien	type_for_mode.
937290075Sobrien	* method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
937390075Sobrien	Pass intSI_type_node and the like through type_for_mode.
937490075Sobrien	* decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
937590075Sobrien	* pt.c (tsubst, unify): Likewise.
937690075Sobrien	* tree.c (walk_tree): Likewise.
937790075Sobrien	* error.c (dump_type): Likewise.
937890075Sobrien	(dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
937918334Speter
938090075Sobrien	* Make-lang.in: Tweak top comment for emacs.
938190075Sobrien	(cp/TAGS): Restore.
938218334Speter
938390075Sobrien	* except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
938418334Speter
938590075Sobrien	* class.c (clone_function_decl): Robustify.
938618334Speter
938790075Sobrien2000-12-04  Michael Matz  <matzmich@cs.tu-berlin.de>
938818334Speter
938990075Sobrien	* decl.c (store_bindings): Only search in the non modified
939090075Sobrien	old_bindings for duplicates.
939118334Speter
939290075Sobrien2000-12-04  Nathan Sidwell  <nathan@codesourcery.com>
939318334Speter
939490075Sobrien	* error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
939590075Sobrien	TYPE_POLYMORPHIC_P.
939618334Speter
939790075Sobrien	* typeck.c (build_static_cast): Remove unused variable.
939818334Speter
939990075Sobrien2000-12-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
940018334Speter
940190075Sobrien	* pt.c: Fix typo in comment.
940218334Speter
940390075Sobrien2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
940418334Speter
940590075Sobrien	* decl2.c (warn_format): Remove definition.
940690075Sobrien	(lang_decode_option): Handle -Wformat-nonliteral,
940790075Sobrien	-Wno-format-extra-args and -Wno-format-y2k.  Use set_Wformat.
940818334Speter
940990075Sobrien2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
941018334Speter
941190075Sobrien	* decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
941290075Sobrien	(init_decl_processing): Don't create string_type_node,
941390075Sobrien	const_string_type_node, wint_type_node, intmax_type_node,
941490075Sobrien	uintmax_type_node, default_function_type, ptrdiff_type_node and
941590075Sobrien	unsigned_ptrdiff_type_node.  Adjust position of call to
941690075Sobrien	c_common_nodes_and_builtins.
941790075Sobrien	(identifier_global_value): New function.
941818334Speter
941990075Sobrien2000-12-01  Nathan Sidwell  <nathan@codesourcery.com>
942018334Speter
942190075Sobrien	* call.c (standard_conversion): Reject pointer to member
942290075Sobrien	conversions from ambiguous, inaccessible or virtual bases.
942390075Sobrien	* typeck.c (build_static_cast): Don't check pointers to members
942490075Sobrien	specially.
942518334Speter
942690075Sobrien2000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
942718334Speter
942890075Sobrien	* method.c (do_build_copy_constructor): Preserve cv
942990075Sobrien	qualifications when accessing source object members.
943090075Sobrien	(do_build_assign_ref): Likewise. Remove separate diagnostics for
943190075Sobrien	unnamed fields.
943218334Speter
943390075Sobrien2000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
943418334Speter
943590075Sobrien	* method.c (do_build_assign_ref): Construct appropriately
943690075Sobrien	CV-qualified base reference. Don't allow const casts in base
943790075Sobrien	conversion.
943818334Speter
943990075Sobrien2000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
944018334Speter
944190075Sobrien	* call.c (build_over_call): Use VOID_TYPE_P. Don't die on
944290075Sobrien	incomplete return type.
944318334Speter
944490075Sobrien2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
944518334Speter
944690075Sobrien	* parse.y (base_class.1): Produce a _TYPE not a _DECL.
944790075Sobrien	* semantics.c (finish_base_specifier): Accept a _TYPE not a
944890075Sobrien	_DECL.
944952284Sobrien
945090075Sobrien2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
945152284Sobrien
945290075Sobrien	* spew.c (yyerror): Cope if yylval.ttype is NULL.
945352284Sobrien
945490075Sobrien2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
945518334Speter
945690075Sobrien	* decl.c (grokdeclarator): Diagnose undefined template contexts.
945718334Speter
945890075Sobrien2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
945918334Speter
946090075Sobrien	* decl.c (grokdeclarator): Do type access control on friend
946190075Sobrien	class.
946218334Speter
946390075Sobrien2000-11-27  Nathan Sidwell  <nathan@codesourcery.com>
946418334Speter
946590075Sobrien	* decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
946690075Sobrien	bison parser ickiness.
946790075Sobrien	* pt.c (tsubst_friend_function): Enter namespace scope when
946890075Sobrien	tsubsting the function name.
946990075Sobrien	* cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
947018334Speter
947190075Sobrien2000-11-27  Nathan Sidwell  <nathan@codesourcery.com>
947218334Speter
947390075Sobrien	* cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
947490075Sobrien	* cvt.c (cp_convert_to_pointer): Add force parameter.
947590075Sobrien	Allow conversions via virtual base if forced.
947690075Sobrien	(convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
947790075Sobrien	(ocp_convert): Likewise.
947890075Sobrien	* search.c (binfo_from_vbase): Return the virtual base's binfo.
947990075Sobrien	* typeck.c (get_delta_difference): Adjust handling of virtual
948090075Sobrien	bases.
948118334Speter
948290075Sobrien2000-11-26  Mark Mitchell  <mark@codesourcery.com>
948352284Sobrien
948490075Sobrien	* tree.c (struct list_hash): Remove.
948590075Sobrien	(list_hash_table): Make it be an htab.
948690075Sobrien	(struct list_proxy): New type.
948790075Sobrien	(list_hash_eq): New function.
948890075Sobrien	(list_hash_pieces): Renamed from ...
948990075Sobrien	(list_hash): ... this.
949090075Sobrien	(list_hash_lookup): Remove.
949190075Sobrien	(list_hash_add): Remove.
949290075Sobrien	(hash_tree_cons): Use the generic hashtable.
949390075Sobrien	(mark_list_hash): Remove.
949490075Sobrien	(init_tree): Create the hashtable.
949518334Speter
949690075Sobrien2000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>
949718334Speter
949890075Sobrien	* method.c (build_mangled_C9x_name): Rename to
949990075Sobrien	build_mangled_C99_name.  Change C9X references in comments to
950090075Sobrien	refer to C99.
950118334Speter
950290075Sobrien2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
950318334Speter
950490075Sobrien	* parse.y (unary_expr): Move VA_ARG from here ...
950590075Sobrien	(primary): ... to here.
950618334Speter
950790075Sobrien2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
950818334Speter
950990075Sobrien	* semantics.c (finish_id_expr): If type is error_mark, return
951090075Sobrien	error_mark.
951118334Speter
951290075Sobrien2000-11-23  Nathan Sidwell  <nathan@codesourcery.com>
951318334Speter
951490075Sobrien	* pt.c (lookup_template_class): Simplify loop exit constructs.
951590075Sobrien	Cope when there is no partial instantiation of a template
951690075Sobrien	template member.
951718334Speter
951890075SobrienThu Nov 23 02:16:47 2000  J"orn Rennecke <amylaar@redhat.com>
951918334Speter
952090075Sobrien	* Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
952118334Speter
952290075Sobrien2000-11-22  Mark Mitchell  <mark@codesourcery.com>
952318334Speter
952490075Sobrien	* mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
952590075Sobrien	prefix.
952618334Speter
952790075Sobrien	* pt.c (do_decl_instantiate): Explicitly clone constructors and
952890075Sobrien	destructors that haven't already been cloned.
952918334Speter
953090075Sobrien2000-11-20  Richard Henderson  <rth@redhat.com>
953118334Speter
953290075Sobrien	* parse.y (yyparse_1): Rename the parser entry point.
953318334Speter
953490075Sobrien2000-11-20  Alex Samuel  <samuel@codesourcery.com>
953518334Speter
953690075Sobrien	* mangle.c (write_name): Use <unscoped-name> for names directly in
953790075Sobrien	function scope.
953890075Sobrien	(write_unscoped_name): Accept names directly in function scope.
953918334Speter
954090075Sobrien2000-11-20  Nathan Sidwell  <nathan@codesourcery.com>
954118334Speter
954290075Sobrien	* lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
954390075Sobrien	* parse.y (extdef): Add EXPORT reduction.
954490075Sobrien	* spew.c (yylex): Don't skip export here.
954518334Speter
954690075Sobrien2000-11-19  Mark Mitchell  <mark@codesourcery.com>
954718334Speter
954890075Sobrien	* decl.c (init_decl_processing): Correct name of pure virtual
954990075Sobrien	function under the new ABI.
955090075Sobrien	* rtti.c (throw_bad_cast): Likewise, for bad cast function.
955190075Sobrien	(throw_bad_typeid): Likewise for bad typeid function.
955218334Speter
955390075Sobrien2000-11-18  Mark Mitchell  <mark@codesourcery.com>
955418334Speter
955590075Sobrien	* decl.c (grokparms): Don't even function types of `void' type,
955690075Sobrien	either.
955790075Sobrien	* mangle.c (write_type): Don't crash when confronted with the
955890075Sobrien	error_mark_node.
955918334Speter
956090075Sobrien	* decl.c (grokparms): Don't create parameters of `void' type.
956118334Speter
956290075Sobrien2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
956318334Speter
956490075Sobrien	* lex.c (mark_impl_file_chain): Delete.
956590075Sobrien	(init_parse): Remove call to ggc_add_string_root.  No need to
956690075Sobrien	ggc_strdup a string constant.  Do not add impl_file_chain to GC
956790075Sobrien	roots.
956890075Sobrien	(handle_pragma_implementation): No need to ggc_strdup main_filename.
956918334Speter
957090075Sobrien2000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
957118334Speter
957290075Sobrien	* pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
957318334Speter
957490075Sobrien2000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
957518334Speter
957690075Sobrien	* cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
957790075Sobrien	* decl.c (grokdeclarator): Don't reject void parms here.
957890075Sobrien	(require_complete_types_for_parms): Simplify, use
957990075Sobrien	complete_type_or_else.
958090075Sobrien	(grokparms): Remove bitrot. Remove funcdef parm.
958190075Sobrien	Deal with ellipsis parm lists here.
958290075Sobrien	* semantics.c (finish_parmlist): Don't append void_list_node
958390075Sobrien	here. Set PARMLIST_ELLIPSIS_P.
958418334Speter
958590075Sobrien2000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
958618334Speter
9587117395Skan	* typeck2.c (incomplete_type_error): Reorganize to avoid
958890075Sobrien	excessive diagnostics.
958918334Speter
959090075Sobrien2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
959118334Speter
959290075Sobrien	* lex.c (struct impl_files, internal_filename): Constify a char *.
959318334Speter
959490075Sobrien2000-11-16  Mark Mitchell  <mark@codesourcery.com>
959518334Speter
959690075Sobrien	* mangle.c (write_special_name_constructor): Don't generate
959790075Sobrien	assembler junk when confronted with an old-style constructor.
959890075Sobrien	(write_special_name_destructor): Likewise.
959990075Sobrien	(mangle_decl_string): Do it here instead.
960018334Speter
960190075Sobrien2000-11-16  Nathan Sidwell  <nathan@codesourcery.com>
960218334Speter
960390075Sobrien	* call.c (op_error): Make error messages clearer.
960418334Speter
960590075Sobrien2000-11-15  Mark Mitchell  <mark@codesourcery.com>
960618334Speter
960790075Sobrien	* decl.c (wrapup_globals_for_namespace): Don't mark things
960890075Sobrien	TREE_ASM_WRITTEN when they're not.
960918334Speter
961090075Sobrien2000-11-15  Jason Merrill  <jason@redhat.com>
961118334Speter
961290075Sobrien	* typeck2.c (friendly_abort): Uncount the error before handing
961390075Sobrien	off to fancy_abort.
961418334Speter
961590075Sobrien2000-11-15  Nathan Sidwell  <nathan@codesourcery.com>
961618334Speter
961790075Sobrien	* typeck.c (lookup_anon_field): Cope with qv qualifiers.
961818334Speter
961990075Sobrien2000-11-14  Mark Mitchell  <mark@codesourcery.com>
962018334Speter
962190075Sobrien	* class.c (build_vtbl_initializer): Fix typo in comment.
962290075Sobrien	* typeck.c (expr_sizeof): Don't crash on errors.
962318334Speter
962490075Sobrien2000-11-14  Jim Wilson  <wilson@redhat.com>
962518334Speter
962690075Sobrien	* lang-specs.h: Add %2 after %(cc1_options).
962718334Speter
962890075Sobrien2000-11-14  Richard Henderson  <rth@redhat.com>
962918334Speter
963090075Sobrien	* typeck.c (c_sizeof): Be strict about casting result value
963190075Sobrien	back to c_size_type_node.
963290075Sobrien	(expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
963318334Speter
963490075Sobrien2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
963518334Speter
963690075Sobrien	* typeck.c (build_unary_op): Use boolean_increment from
963790075Sobrien	c-common.c, moving the relevant code there.
963818334Speter
963990075Sobrien2000-11-11  Jason Merrill  <jason@redhat.com>
964018334Speter
964190075Sobrien	* typeck.c (mark_addressable): Don't call put_var_into_stack.
964218334Speter
964390075Sobrien	* decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
964490075Sobrien	in inlines.
964518334Speter
964690075Sobrien2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
964718334Speter
964890075Sobrien	* decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
964990075Sobrien	* lex.c (copy_lang_decl): Likewise.
965018334Speter
965190075Sobrien2000-11-09  Mark Mitchell  <mark@codesourcery.com>
965218334Speter
965390075Sobrien	* dump.c (cp_dump_tree): Don't dump function bodies here.
965418334Speter
965590075Sobrien	* Make-lang.in (CXX_C_OBJS): Add c-dump.o.
965690075Sobrien	(dump.o): Update dependency list.
965790075Sobrien	* cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
965890075Sobrien	(flag_dump_translation_unit): Likewise.
965990075Sobrien	(CP_TYPE_QUALS): Adjust definition.
966090075Sobrien	(DECL_C_BIT_FIELD): Remove.
966190075Sobrien	(SET_DECL_C_BIT_FIELD): Likewise.
966290075Sobrien	(CLEAR_DECL_C_BIT_FIELD): Likewise.
966390075Sobrien	(add_maybe_template): Likewise.
966490075Sobrien	(strip_array_types): Likewise.
966590075Sobrien	(dump_node_to_file): Likewise.
966690075Sobrien	(cp_dump_tree): New function.
966790075Sobrien	* decl.c (init_decl_processing): Set lang_dump_tree.
966890075Sobrien	* decl2.c (flag_dump_translation_unit): Remove.
966990075Sobrien	* dump.c: Move most of it to ../c-dump.c.
967090075Sobrien	(cp_dump_tree): New function.
967190075Sobrien	* pt.c (add_maybe_template): Remove.
967290075Sobrien	* typeck.c (strip_array_types): Likewise.
967318334Speter
967490075Sobrien2000-11-07  Eric Christopher  <echristo@redhat.com>
967518334Speter
967690075Sobrien	* decl.c (init_decl_processing): Change definition of
967790075Sobrien	__wchar_t to wchar_t.  Remove artificial declaration of
967890075Sobrien	wchar_t.
967990075Sobrien	* lex.c: Change instances of __wchar_t to wchar_t.
968018334Speter
968190075Sobrien2000-11-09  Nathan Sidwell  <nathan@codesourcery.com>
968218334Speter
968390075Sobrien	* lex.c (do_identifier): Don't lookup_name for operators.
968490075Sobrien	* parse.y (operator): Save looking_for_typename.
968590075Sobrien	(unoperator): Restore it.
968690075Sobrien	* spew.c (frob_opname): Use nth_token for lookahead.
968718334Speter
968890075Sobrien2000-11-08  Nathan Sidwell  <nathan@codesourcery.com>
968918334Speter
969090075Sobrien	* decl.c (grok_op_properties): Always use coerce_new_type and
969190075Sobrien	coerce_delete_type.
969290075Sobrien	* decl2.c (coerce_new_type): Use c_size_type_node. Preserve
969390075Sobrien	exception specification. Tidy up.
969490075Sobrien	(coerce_delete_type): Preserve exception specification. Tidy up.
969518334Speter
969690075Sobrien2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
969718334Speter
969890075Sobrien	* class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
969990075Sobrien	(push_binding_level), error.c (cp_tree_printer), pt.c
970090075Sobrien	(process_partial_specialization, tsubst_template_arg_vector),
970190075Sobrien	search.c (lookup_member): Use memset () instead of bzero ().
970218334Speter
970390075Sobrien2000-11-07  Nathan Sidwell  <nathan@codesourcery.com>
970418334Speter
970590075Sobrien	* decl.c (build_ptrmemfunc_type): Allow error_mark_node.
970618334Speter
970790075Sobrien2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
970818334Speter
970990075Sobrien	* Make-lang.in (c++.distdir): Remove.
971018334Speter
971190075Sobrien2000-11-04  Mark Mitchell  <mark@codesourcery.com>
971218334Speter
971390075Sobrien	* decl2.c (do_nonmember_using_decl): Allow `extern "C"'
971490075Sobrien	declarations from different namespaces to be combined.
971518334Speter
971690075Sobrien2000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>
971718334Speter
971890075Sobrien	* decl.c: Include tm_p.h.
971918334Speter
972090075Sobrien2000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
972118334Speter
972290075Sobrien	* tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
972318334Speter
972490075Sobrien2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
972518334Speter
972690075Sobrien	* dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
972790075Sobrien	(build_overload_value), repo.c (open_repo_file), xref.c
972890075Sobrien	(open_xref_file): Use strchr () and strrchr () instead of index ()
972990075Sobrien	and rindex ().
973018334Speter
973190075Sobrien2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
973218334Speter
973390075Sobrien	* call.c (build_over_call): Call fold on the CALL_EXPR.
973418334Speter
973590075Sobrien2000-11-01  Gabriel Dos Reis  <gdr@codesourcery.com>
973618334Speter
973790075Sobrien	* error.c (dump_template_decl): Separate template hearders with
973890075Sobrien	space not comma.
973918334Speter
974090075Sobrien2000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>
974118334Speter
974290075Sobrien	* error.c: Move TFF_ macros into cp-tree.h.  Throughout, replace
974390075Sobrien	TS_* flags with corresponding TFF_*.  Adjust prototypes of
974490075Sobrien	functions (which used to take a tree_string_flags) to take an int.
974518334Speter
974690075Sobrien	* cp-tree.h (enum tree_string_flags): Remove
974790075Sobrien	(TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
974890075Sobrien	TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
974990075Sobrien	TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
975090075Sobrien	TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
975190075Sobrien	TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
975290075Sobrien	TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
975390075Sobrien	(type_as_string, decl_as_string, expr_as_string,
975490075Sobrien	context_as_string): Adjust prototype.
975518334Speter
975690075Sobrien	* class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
975790075Sobrien	instead of TS_PLAIN.
975818334Speter
975990075Sobrien	* pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
976090075Sobrien	instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
976190075Sobrien	plain `0'.
976218334Speter
976390075Sobrien2000-10-30  Mark Mitchell  <mark@codesourcery.com>
976418334Speter
976590075Sobrien	* cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
976690075Sobrien	(linkage_kind): New enumeration.
976790075Sobrien	(decl_linkage): New function.
976890075Sobrien	* decl2.c (comdat_linkage): Extend comment.
976990075Sobrien	* error.c (dump_function_decl): Print the arguments used to
977090075Sobrien	instantiate a template, even when not printing the type of the
977190075Sobrien	function.
977290075Sobrien	* pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
977390075Sobrien	not TREE_PUBLIC, to test for external linkage.
977490075Sobrien	* tree.c (decl_linkage): New function.
977518334Speter
977690075Sobrien2000-10-28  Mark Mitchell  <mark@codesourcery.com>
977718334Speter
977890075Sobrien	* pt.c (instantiate_decl): Always instantiate static data members
977990075Sobrien	initialized in-class.
978018334Speter
978190075Sobrien2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
978218334Speter
978390075Sobrien	* Make-lang.in: Move all build rules here from Makefile.in,
978490075Sobrien	adapt to new context.  Wrap all rules that change the current
978590075Sobrien	directory in parentheses.  Expunge all references to $(P).
978690075Sobrien	When one command depends on another and they're run all at
978790075Sobrien	once, use && to separate them, not ;.  Add OUTPUT_OPTION to
978890075Sobrien	all object-file generation rules.  Delete obsolete variables.
978918334Speter
979090075Sobrien	* Makefile.in: Delete.
979190075Sobrien	* config-lang.in: Delete outputs= line.
979218334Speter
979390075Sobrien2000-10-26  Gabriel Dos Reis  <gdr@codesourcery.com>
979418334Speter
979590075Sobrien	* error.c (dump_function_decl): Print no space between
979690075Sobrien	`ptr-operator' the `type-specifier' of the return type.
979790075Sobrien	(dump_type_prefix): Make sure we put space at the appropriate
979890075Sobrien	place.
979918334Speter
980090075Sobrien2000-10-23  Jason Merrill  <jason@redhat.com>
980118334Speter
980290075Sobrien	* call.c (equal_functions): Also call decls_match for extern "C" fns.
980318334Speter
980490075Sobrien2000-10-22  Jason Merrill  <jason@redhat.com>
980518334Speter
980690075Sobrien	* call.c (build_conditional_expr): Use ocp_convert to force
980790075Sobrien	rvalue conversion.
980818334Speter
980990075Sobrien2000-10-22  Mark Mitchell  <mark@codesourcery.com>
981018334Speter
981190075Sobrien	* call.c (standard_conversion): Use RVALUE_CONVs for all
981290075Sobrien	expressions that satisfy lvalue_p, not just those that satisfy
981390075Sobrien	real_lvalue_p.
981452284Sobrien
981590075Sobrien	* optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
981618334Speter
981790075Sobrien	* typeck.c (c_sizeof): Return an expression of `size_t' type,
981890075Sobrien	not one with TYPE_IS_SIZETYPE set.
981990075Sobrien	(dubious_conversion_warnings): Remove special-case code.
982018334Speter
982190075Sobrien2000-10-21  Geoffrey Keating  <geoffk@cygnus.com>
982218334Speter
982390075Sobrien	* decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
982490075Sobrien	* error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
982590075Sobrien	(dump_type_prefix): Print vector-of-int as 'int vector'.
982690075Sobrien	(dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
982790075Sobrien	* tree.c (walk_tree): Handle VECTOR_TYPE.
982818334Speter
982990075Sobrien	* decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
983018334Speter
983190075Sobrien2000-10-21  Jason Merrill  <jason@redhat.com>
983218334Speter
983390075Sobrien	* parse.y (operator): Set got_object from got_scope.
983490075Sobrien	Set looking_for_typename.
983590075Sobrien	* decl.c (lookup_name_real): Clear val after setting from_obj.
983690075Sobrien	Reorganize diagnostic.
983718334Speter
983890075Sobrien2000-10-20  Jason Merrill  <jason@redhat.com>
983918334Speter
984090075Sobrien	* tree.c (walk_tree): Don't walk into default args.
984118334Speter
984290075Sobrien	* error.c (dump_expr): Use host_integerp.
984318334Speter
984490075Sobrien2000-10-20  David Edelsohn  <edelsohn@gnu.org>
984518334Speter
984690075Sobrien	* typeck2.c (abstract_virtuals_error): Use "because" instead of
984790075Sobrien	"since" in error message.
984818334Speter
984990075SobrienFri Oct 20 13:54:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
985018334Speter
985190075Sobrien	* typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
985218334Speter
985390075Sobrien2000-10-20  Jeffrey Oldham  <oldham@codesourcery.com>
985418334Speter
985590075Sobrien	* decl.c (revert_static_member_fn): Fixed typo.
985618334Speter
985790075Sobrien2000-10-19  Mark Mitchell  <mark@codesourcery.com>
985818334Speter
985990075Sobrien	* class.c (subobject_offset_fn): New type.
986090075Sobrien	(dfs_record_base_offsets): Remove.
986190075Sobrien	(record_base_offsets): Likewise.
986290075Sobrien	(dfs_search_base_offsets): Likewise.
986390075Sobrien	(record_subobject_offset): New function.
986490075Sobrien	(check_subobject_offset): Likewise.
986590075Sobrien	(walk_subobject_offsets): Likewise.
986690075Sobrien	(record_subobject_offsets): Likewise.
986790075Sobrien	(layout_conflict_p): Reimplement.
986890075Sobrien	(layout_nonempty_base_or_field): Correct handling of type
986990075Sobrien	conflicts during layout.
987090075Sobrien	(layout_empty_base): Likewise.
987190075Sobrien	(build_base_field): Adjust to handle new representation of empty
987290075Sobrien	base offset table.
987390075Sobrien	(build_base_fields): Likewise.
987490075Sobrien	(layout_virtual_bases): Likewise.
987590075Sobrien	(splay_tree_compare_integer_csts): New function.
987690075Sobrien	(layout_class_type): Use a splay_tree, rather than a varray, to
987790075Sobrien	represent the offsets of empty bases.
987818334Speter
987990075Sobrien	* cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
988090075Sobrien	* decl.c (select_decl): Don't return declarations that are
988190075Sobrien	DECL_ANTICIPATED.
988218334Speter
988390075Sobrien2000-10-18  Mark Mitchell  <mark@codesourcery.com>
988418334Speter
988590075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
988690075Sobrien	(fake_std_node): New macro.
988790075Sobrien	* decl.c (in_std): Rename to ...
988890075Sobrien	(in_fake_std): ... this.
988990075Sobrien	(flag_no_builtin): Remove.
989090075Sobrien	(flag_no_nonansi_builtin): Likewise.
989190075Sobrien	(walk_namespaces_r): Use fake_std_node.
989290075Sobrien	(push_namespace): Use std_identifier.
989390075Sobrien	(pop_namespace): Use in_fake_std.
989490075Sobrien	(lookup_name_real): Use fake_std_node.
989590075Sobrien	(init_decl_processing): When -fhonor-std, create the `std'
989690075Sobrien	namespace.  Don't create a dummy fake_std_node in that case.
989790075Sobrien	Adjust call to c_common_nodes_and_builtins.  Use std_identifier.
989890075Sobrien	(builtin_function): Put builtins whose names don't begin
989990075Sobrien	with `_' in the std namespace.
990090075Sobrien	* decl2.c (flag_no_builtin): Remove.
990190075Sobrien	(flag_no_nonansi_builtin): Likewise.
990290075Sobrien	(set_decl_namespace): Use fake_std_node.
990390075Sobrien	(validate_nonmember_using_decl): Likewise.
990450397Sobrien	(do_using_directive): Likewise.
990590075Sobrien	(handle_class_head): Likewise.
990690075Sobrien	* dump.c (dequeue_and_dump): Likewise.
990790075Sobrien	* except.c (init_exception_processing): Use std_identifier.
990890075Sobrien	* init.c (build_member_call): Use fake_std_node.
990990075Sobrien	* rtti.c (init_rtti_processing): Use std_identifier.
991018334Speter
991190075Sobrien2000-10-17  Mark Mitchell  <mark@codesourcery.com>
991218334Speter
991390075Sobrien	* cp-tree.h (back_end_hook): Remove declaration.
991490075Sobrien	* decl2.c (back_end_hook): Remove definition.
991518334Speter
991690075Sobrien	* dump.c (dequeue_and_dump): Dump TREE_USED.
991718334Speter
991890075SobrienTue Oct 17 20:19:06 2000  Brad Lucier <lucier@math.purdue.edu>
991918334Speter
992090075Sobrien	* spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
992118334Speter
992290075Sobrien2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
992318334Speter
992490075Sobrien	* decl.c (WINT_TYPE): Define.
992590075Sobrien	(init_decl_processing): Create types unsigned_ptrdiff_type_node,
992690075Sobrien	c_size_type_node, signed_size_type_node and wint_type_node.
992718334Speter
992890075Sobrien2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
992918334Speter
993090075Sobrien	* decl2.c (warn_missing_format_attribute): New variable.
993190075Sobrien	(lang_decode_option): Decode -Wmissing-format-attribute.
993218334Speter
993390075Sobrien2000-10-16  Mark Mitchell  <mark@codesourcery.com>
993418334Speter
993590075Sobrien	* typeck.c (qualify_type): Remove.
993690075Sobrien	(composite_pointer_type): Fix handling of conversions to `cv void*'.
993718334Speter
993890075Sobrien2000-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
993918334Speter
994090075Sobrien	* Makefile.in (parse.c, parse.h): Fix think-o in last patch.
994118334Speter
994290075Sobrien2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
994318334Speter
994490075Sobrien	* Makefile.in (parse.c, parse.h): Create atomically.
994518334Speter
994690075Sobrien2000-10-12  Mark Mitchell  <mark@codesourcery.com>
994718334Speter
994890075Sobrien	* class.c (current_obstack): Remove.
994990075Sobrien	* decl.c (ggc_p): Remove.
995090075Sobrien	(start_decl): Don't use decl_tree_cons.
995190075Sobrien	(grokdeclarator): Don't use build_decl_list.
995290075Sobrien	(start_function): Don't use decl_tree_cons.
995390075Sobrien	(finish_function): Don't mess with obstacks.
995490075Sobrien	* decl2.c (grok_x_components): Don't use build_decl_list.
995590075Sobrien	* lex.c (make_call_declarator): Don't call decl_tree_cons.
995690075Sobrien	(implicitly_declare_fn): Don't call build_decl_list.
995790075Sobrien	* parse.y (frob_specs): Don't call build_decl_list or
995890075Sobrien	decl_tree_cons.
995990075Sobrien	(expr_or_declarator_intern): Don't call decl_tree_cons.
996090075Sobrien	(primary): Don't call build_decl_list.
996190075Sobrien	(fcast_or_absdcl): Likewise.
996290075Sobrien	(typed_declspecs): Don't call decl_tree_cons.
996390075Sobrien	(reserved_declspecs): Don't call build_decl_list.
996490075Sobrien	(declmods): Likewise.
996590075Sobrien	(reserved_typespecquals): Likewise.
996690075Sobrien	(aggr): Likewise.
996790075Sobrien	(new_type_id): Likewise.
996890075Sobrien	(cv_qualifiers): Likewise.
996990075Sobrien	(after_type_declarator_intern): Likewise.
997090075Sobrien	(notype_declarator_intern): Likewise.
997190075Sobrien	(absdcl_intern): Likewise.
997290075Sobrien	(named_parm): Likewise.
997390075Sobrien	* pt.c (most_specialized_class): Likewise.
997490075Sobrien	* repo.c (temporary_obstack): Make it a structure, not a pointer.
997590075Sobrien	(init_repo): Initialize it.
997690075Sobrien	* search.c (current_obstack): Remove.
997790075Sobrien	* typeck2.c (add_exception_specifier): Don't call build_decl_list.
997818334Speter
997990075Sobrien2000-10-09  Richard Henderson  <rth@cygnus.com>
998018334Speter
998190075Sobrien	* Make-lang.in (CXX_EXTRA_HEADERS): Remove.
998290075Sobrien	(c++ language support bits for libgcc): Remove.
998390075Sobrien	(c++.clean): Remove cplib2.txt cleanup.
998490075Sobrien	* config-lang.in (headers, lib2funcs): Remove.
998518334Speter
998690075Sobrien	* exception.cc, new.cc, new1.cc, new2.cc: Remove files.
998790075Sobrien	* tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
998890075Sobrien	* inc/cxxabi.h, inc/exception, inc/new: Remove files.
998990075Sobrien	* inc/new.h, inc/typeinfo: Remove files.
999018334Speter
999190075Sobrien2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
999218334Speter
999390075Sobrien	* decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
999490075Sobrien	defined.
999590075Sobrien	(init_decl_processing): Initialize intmax_type_node and
999690075Sobrien	uintmax_type_node.
999718334Speter
999890075Sobrien2000-10-06  Richard Henderson  <rth@cygnus.com>
999918334Speter
1000090075Sobrien	* cp-tree.h (struct cp_language_function): Remove x_result_rtx.
1000190075Sobrien	(original_result_rtx): Remove.
1000290075Sobrien	* decl.c (save_function_data): Don't clear x_result_rtx.
1000390075Sobrien	(mark_lang_function): Don't mark it either.
1000490075Sobrien	* expr.c (fixup_result_decl): Remove.
1000590075Sobrien	* semantics.c (genrtl_named_return_value): Frob the return decl
1000690075Sobrien	before calling emit_local_var.
1000790075Sobrien	(genrtl_finish_function): Don't call fixup_result_decl.
1000890075Sobrien	Always emit the jump to return_label.
1000918334Speter
1001090075Sobrien2000-10-06  Nathan Sidwell  <nathan@codesourcery.com>
1001118334Speter
1001290075Sobrien	* pt.c (lookup_template_class): Set current access for enum.
1001390075Sobrien	(tsubst_enum): Set file & line for enum decl.
1001418334Speter
1001590075Sobrien	* spew.c (yylex): Remove unused variable.
1001618334Speter
1001790075Sobrien2000-10-05  Richard Henderson  <rth@cygnus.com>
1001818334Speter
1001990075Sobrien	* semantics.c (genrtl_finish_function): Don't init or check
1002090075Sobrien	can_reach_end; remove noreturn and return value checks.
1002118334Speter
1002290075Sobrien2000-10-05  Tom Tromey  <tromey@cygnus.com>
1002318334Speter
1002490075Sobrien	* init.c (build_java_class_ref): Use `build_static_name' with a
1002590075Sobrien	suffix, not a prefix, to build the class object's name.
1002618334Speter
1002790075Sobrien2000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
1002818334Speter
1002990075Sobrien	* cp-tree.h (access_kind): Fix comment typo.
1003090075Sobrien	* decl2.c (grokfield): Fix diagnostic typo.
1003190075Sobrien	* semantics.c (finish_template_type): Fix comment typo.
1003290075Sobrien	(finish_qualified_object_call_expr): Likewise.
1003318334Speter
1003490075Sobrien2000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
1003518334Speter
1003690075Sobrien	* pt.c (tsubst_expr, DECL_STMT case): Don't process if
1003790075Sobrien	tsubsting fails.
1003818334Speter
1003990075Sobrien2000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
1004018334Speter
1004190075Sobrien	* spew.c (frob_id): New static function.
1004290075Sobrien	(frob_opname): Use it.
1004390075Sobrien	(yylex): Use it.
1004418334Speter
1004590075Sobrien2000-10-01  Mark Mitchell  <mark@codesourcery.com>
1004618334Speter
1004790075Sobrien	* decl.c (lang_mark_false_label_stack): Remove.
1004890075Sobrien	* lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
1004918334Speter
1005090075Sobrien2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
1005118334Speter
1005290075Sobrien	* gxxint.texi: Use @email for formatting email addresses.
1005318334Speter
1005490075Sobrien2000-09-29  Gabriel Dos Reis  <gdr@codesourcery.com>
1005518334Speter
1005690075Sobrien	* error.c: Remove direct obstack manipulation.  Replace with
1005790075Sobrien	output_buffer-based formatting.  Adjust calls to removed macros.
1005890075Sobrien	(obstack_chunk_alloc, obstack_chunk_free): Remove.
1005990075Sobrien	(OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
1006090075Sobrien	OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
1006118334Speter
1006290075Sobrien2000-09-24  Mark Mitchell  <mark@codesourcery.com>
1006318334Speter
1006490075Sobrien	* ir.texi: Move to ../c-tree.texi.
1006518334Speter
1006690075Sobrien2000-09-20  Jason Merrill  <jason@redhat.com>
1006718334Speter
1006890075Sobrien	* decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
1006918334Speter
1007090075Sobrien2000-09-21  Andreas Jaeger  <aj@suse.de>
1007118334Speter
1007290075Sobrien	* errfn.c: Move declaration of cp_printer and cp_printers to ...
1007390075Sobrien	* cp-tree.h: ... here.
1007418334Speter
1007590075Sobrien	* error.c: Remove declaration of cp_printer.
1007618334Speter
1007790075Sobrien2000-09-20  Mark Mitchell  <mark@codesourcery.com>
1007818334Speter
1007990075Sobrien	* tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
1008018334Speter
1008190075Sobrien2000-09-20  Hans-Peter Nilsson  <hp@axis.com>
1008218334Speter
1008390075Sobrien	* except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
1008490075Sobrien	users.
1008518334Speter
1008690075Sobrien2000-09-18  Mark Mitchell  <mark@codesourcery.com>
1008718334Speter
1008890075Sobrien	* decl.c (start_function): Robustify.
1008918334Speter
1009090075Sobrien2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1009118334Speter
1009290075Sobrien	* cp-tree.h (check_function_format): Accept a `status' parameter.
1009318334Speter
1009490075Sobrien	* call.c, typeck.c: Updates calls to `check_function_format'.
1009518334Speter
1009690075Sobrien2000-09-17  Geoffrey Keating  <geoffk@cygnus.com>
1009718334Speter
1009890075Sobrien	* decl2.c (handle_class_head): Always push some scope even
1009990075Sobrien	in the error case.
1010018334Speter
1010190075Sobrien2000-09-16  Mark Mitchell  <mark@codesourcery.com>
1010218334Speter
1010390075Sobrien	* cp-tree.h (struct cp_language_function): Remove
1010490075Sobrien	x_scope_stmt_stack and name_declared.
1010590075Sobrien	(current_scope_stmt_stack): Remove.
1010690075Sobrien	(function_name_declared_p): New macro.
1010790075Sobrien	(struct lang_decl_flags): Use c_lang_decl as a base class.
1010890075Sobrien	(context): Remove.
1010990075Sobrien	(struct lang_decl): Replace saved_tree with context.
1011090075Sobrien	(DECL_FRIEND_CONTEXT): Adjust accordingly.
1011190075Sobrien	(SET_DECL_FRIEND_CONTEXT): Likewise.
1011290075Sobrien	(DECL_VIRTUAL_CONTEXT): Likewise.
1011390075Sobrien	(DECL_SAVED_TREE): Remove.
1011490075Sobrien	(C_DECLARED_LABEL_FLAG): Likewise.
1011590075Sobrien	(cplus_expand_expr_stmt): Don't declare.
1011690075Sobrien	(add_decl_stmt): Likewise.
1011790075Sobrien	(add_scope_stmt): Likewise.
1011890075Sobrien	* decl.c (mark_stmt_tree): Remove.
1011990075Sobrien	(case_compare): Likewise.
1012090075Sobrien	(finish_case_label): Use c_add_case_label.
1012190075Sobrien	(init_decl_processing): Set more language-specific hooks.
1012290075Sobrien	(build_enumerator): Fix typo in comment.
1012390075Sobrien	(cplus_expand_expr_stmt): Remove.
1012490075Sobrien	(mark_lang_function): Use mark_c_language_function.
1012590075Sobrien	(lang_mark_tree): Use c_mark_lang_decl.
1012690075Sobrien	* decl2.c: Change order of inclusion.
1012790075Sobrien	* except.c: Likewise.
1012890075Sobrien	* expr.c (cplus_expand_expr): Remove handling of STMT_EXPR.  Fall
1012990075Sobrien	back on c_expand_expr.
1013090075Sobrien	* friend.c: Include expr.h.
1013190075Sobrien	* init.c: Change order of inclusion.
1013290075Sobrien	* Makefile.in: Update dependencies.
1013390075Sobrien	* lex.h (free_lang_decl_chain): Remove.
1013490075Sobrien	* optimize.c (maybe_clone_body): Use function_name_declared_p.
1013590075Sobrien	* pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
1013690075Sobrien	it doesn't exist.
1013790075Sobrien	(instantiate_decl): Use function_name_declared_p.
1013890075Sobrien	* semantics.c (lang_expand_expr_stmt): Remove.
1013990075Sobrien	(set_current_function_name_declared): Likewise.
1014090075Sobrien	(current_function_name_declared): Likewise.
1014190075Sobrien	(begin_compound_stmt): Use function_name_declared_p.
1014290075Sobrien	(add_decl_stmt): Remove.
1014390075Sobrien	(setup_vtbl_ptr): Use function_name_declared_p.
1014490075Sobrien	(add_scope_stmt): Remove.
1014590075Sobrien	(current_scope_stmt_stack): New function.
1014690075Sobrien	(cp_expand_stmt): Don't handle SCOPE_STMTs.
1014790075Sobrien	(expand_body): Use function_name_declared_p.
1014890075Sobrien	* tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
1014990075Sobrien	* typeck.c: Change order of includes.
1015090075Sobrien	(convert_sequence): Remove.
1015118334Speter
1015290075Sobrien2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
1015318334Speter
1015490075Sobrien	* lex.c (reswords): Add _Complex.
1015518334Speter
1015690075SobrienThu Sep 14 12:10:45 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1015718334Speter
1015890075Sobrien	* Make-lang.in (cplib2.txt): Depend on cp/Makefile.
1015918334Speter
1016090075Sobrien2000-09-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1016118334Speter
1016290075Sobrien	* init.c (begin_init_stmts): Don't use // comments.
1016318334Speter
1016490075Sobrien2000-09-12  Jason Merrill  <jason@redhat.com>
1016518334Speter
1016690075Sobrien	* decl.c (maybe_deduce_size_from_array_init): Set do_default for
1016790075Sobrien	all non-extern arrays.
1016818334Speter
1016990075Sobrien	* decl.c (grokdeclarator): Complain about 'friend T' for implicit
1017090075Sobrien	typenames, too.  Downgrade complaint to pedwarn.
1017190075Sobrien	(xref_tag): Warn about surprising behavior of 'friend struct T'.
1017290075Sobrien	* decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
1017390075Sobrien	'class This::Inherited'.
1017418334Speter
1017590075Sobrien2000-09-12  Mark Mitchell  <mark@codesourcery.com>
1017618334Speter
1017790075Sobrien	* decl.c (finish_case_label): Given the LABEL_DECL a
1017890075Sobrien	DECL_CONTEXT.
1017918334Speter
1018090075Sobrien2000-09-12  Gabriel Dos Reis  <gdr@codesourcery.com>
1018152284Sobrien
1018290075Sobrien	* error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
1018390075Sobrien	TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
1018490075Sobrien	TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
1018590075Sobrien	TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
1018690075Sobrien	TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
1018790075Sobrien	New macros.
1018890075Sobrien	(sorry_for_unsupported_tree, print_scope_operator,
1018990075Sobrien	print_left_paren, print_right_paren, print_left_bracket,
1019090075Sobrien	print_right_bracket, print_whitespace): Likewise.
1019190075Sobrien	(aggr_variety): Rename to class_key_or_enum.
1019290075Sobrien	(print_type): Rename to print_type_id.
1019390075Sobrien	(print_type_specifier_seq, print_simple_type_specifier,
1019490075Sobrien	print_elaborated_type_specifier,
1019590075Sobrien	print_rest_of_abstract_declarator,
1019690075Sobrien	print_parameter_declaration_clause, print_exception_specification,
1019790075Sobrien	print_nested_name_specifier, print_template_id,
1019890075Sobrien	typedef_original_name,  print_template_argument_list_start,
1019990075Sobrien	print_template_argument_list_end): New functions.
1020018334Speter
1020190075Sobrien2000-09-11  Gabriel Dos Reis  <gdr@codesourcery.com>
1020218334Speter
1020390075Sobrien	* ir.texi: Add more documentation.
1020418334Speter
1020590075Sobrien2000-09-11  Mark Mitchell  <mark@codesourcery.com>
1020618334Speter
1020790075Sobrien	* cp-tree.h (struct saved_scope): Remove x_function_parms.
1020890075Sobrien	(current_function_parms): Don't define.
1020990075Sobrien	(struct cp_language_function): Remove parms_stored.
1021090075Sobrien	(current_function_just_assigned_this): Don't define.
1021190075Sobrien	(current_function_parms_stored): Likewise.
1021290075Sobrien	(static_ctors): Declare.
1021390075Sobrien	(static_dtors): Likewise.
1021490075Sobrien	(SF_EXPAND): Don't define.
1021590075Sobrien	(expand_start_early_try_stmts): Remove declaration.
1021690075Sobrien	(store_parm_decls): Likewise.
1021790075Sobrien	* decl.c (static_ctors): Don't declare.
1021890075Sobrien	(static_dtors): Likewise.
1021990075Sobrien	(struct binding_level): Remove this_block.
1022090075Sobrien	(poplevel): Remove dead code.
1022190075Sobrien	(set_block): Likewise.
1022290075Sobrien	(mark_binding_level): Don't mark this_block.
1022390075Sobrien	(mark_saved_scope): Don't mark x_function_parms.
1022490075Sobrien	(init_decl_processing): Don't add current_function_parms as a GC
1022590075Sobrien	root.
1022690075Sobrien	(check_function_type): Change prototype.
1022790075Sobrien	(start_function): Remove RTL-generation code.
1022890075Sobrien	(expand_start_early_try_stmts): Remove.
1022990075Sobrien	(store_parm_decls): Give it internal linkage.  Remove
1023090075Sobrien	RTL-generation code.
1023190075Sobrien	(finish_function): Remove RTL-generation code.
1023290075Sobrien	* decl2.c (static_ctors): Fix formatting.
1023390075Sobrien	(static_dtors): Likewise.
1023490075Sobrien	* method.c (use_thunk): Don't call store_parm_decls.
1023590075Sobrien	(synthesize_method): Likewise.
1023690075Sobrien	* optimize.c (maybe_clone_body): Likewise.
1023790075Sobrien	* parse.y (fn.def2): Likewise.
1023890075Sobrien	(.set_base_init): Likewise.
1023990075Sobrien	(nodecls): Likewise.
1024090075Sobrien	* pt.c (instantiate_decl): Likewise.
1024190075Sobrien	* rtti.c (synthesize_tinfo_fn): Likewise.
1024290075Sobrien	* semantics.c (genrtl_try_block): Simplify.
1024390075Sobrien	(expand_body): Use genrtl_start_function and
1024490075Sobrien	genrtl_finish_function.
1024590075Sobrien	(genrtl_start_function): New function.
1024690075Sobrien	(genrtl_finish_function): Likewise.
1024718334Speter
1024890075Sobrien2000-09-11  Nathan Sidwell  <nathan@codesourcery.com>
1024918334Speter
1025090075Sobrien	* error.c (cp_tree_printer, case 'P'): Append break.
1025118334Speter
1025290075Sobrien2000-09-11  Nathan Sidwell  <nathan@codesourcery.com>
1025318334Speter
1025490075Sobrien	* cp-tree.h (frob_opname): Declare.
1025590075Sobrien	* parse.y (saved_scopes): New static variable.
1025690075Sobrien	(cp_parse_init): Adjust.
1025790075Sobrien	(do_id): If lastiddecl is NULL, do do_identifier.
1025890075Sobrien	(operator): Save scope information.
1025990075Sobrien	(unoperator): New reduction. Restore scope information.
1026090075Sobrien	(operator_name): Append unoperator. Call frob_opname.
1026190075Sobrien	* spew.c (frob_opname): Define.
1026218334Speter
1026390075Sobrien2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
1026418334Speter
1026590075Sobrien	* decl.c, rtti.c: Include defaults.h if not already included.
1026690075Sobrien	Don't define the *_TYPE_SIZE macros.
1026718334Speter
1026890075Sobrien2000-09-09  Mark Mitchell  <mark@codesourcery.com>
1026918334Speter
1027090075Sobrien	* cp-tree.h (push_switch): Change prototype.
1027190075Sobrien	(check_cp_case_value): Remove declaration.
1027290075Sobrien	(decl_constant_value): Likewise.
1027390075Sobrien	* decl.c (struct cp_switch): Add switch_stmt and cases.
1027490075Sobrien	(case_compare): New function.
1027590075Sobrien	(push_switch): Set switch_stmt.  Initialize cases.
1027690075Sobrien	(pop_switch): Clean up cases.
1027790075Sobrien	(define_case_label): Rename to ...
1027890075Sobrien	(finish_case_label): ... this.  Do semantic analysis for case
1027990075Sobrien	labels here.
1028090075Sobrien	(start_function): Correct comment.
1028190075Sobrien	* decl2.c (check_cp_case_value): Remove.
1028290075Sobrien	* expr.c (do_case): Remove.
1028390075Sobrien	* pt.c (tsubst_expr): Adjust call to finish_case_label.
1028490075Sobrien	* semantics.c (genrtl_do_poplevel): Remove declaration.
1028590075Sobrien	(RECHAIN_STMTS): Remove.
1028690075Sobrien	(finish_break_stmt): Use build_break_stmt.
1028790075Sobrien	(finish_continue_stmt): Use build_continue_stmt.
1028890075Sobrien	(finish_switch_cond): Adjust condition here, rater than in
1028990075Sobrien	c_expand_start_case.
1029090075Sobrien	(finish_case_label): Remove.
1029190075Sobrien	* typeck.c (c_expand_return): Remove.
1029290075Sobrien	(c_expand_start_case): Likewise.
1029318334Speter
1029490075Sobrien2000-09-07  Gabriel Dos Reis  <gdr@codesourcery.com>
1029518334Speter
1029690075Sobrien	* ir.texi: Document type nodes.
1029718334Speter
1029890075Sobrien2000-09-06  Mark Mitchell  <mark@codesourcery.com>
1029918334Speter
1030090075Sobrien	* cp-tree.h (init_cp_semantics): Declare.
1030190075Sobrien	(genrtl_try_block): Don't declare.
1030290075Sobrien	(genrtl_handler): Likewise.
1030390075Sobrien	(genrtl_catch_block): Likewise.
1030490075Sobrien	(genrtl_ctor_stmt): Likewise.
1030590075Sobrien	(genrtl_subobject): Likewise.
1030690075Sobrien	(genrtl_do_poplevel): Likewise.
1030790075Sobrien	(genrtl_named_return_value): Likewise.
1030890075Sobrien	* lex.c (init_parse): Call init_cp_semantics.
1030990075Sobrien	* semantics.c (genrtl_try_block): Give it internal linkage.
1031090075Sobrien	(genrtl_handler): Likewise.
1031190075Sobrien	(genrtl_catch_block): Likewise.
1031290075Sobrien	(genrtl_ctor_stmt): Likewise.
1031390075Sobrien	(genrtl_subobject): Likewise.
1031490075Sobrien	(genrtl_do_poplevel): Likewise.
1031590075Sobrien	(genrtl_named_return_value): Likewise.
1031690075Sobrien	(lang_expand_stmt): Rename to ...
1031790075Sobrien	(cp_expand_stmt): ... this.  Only handle C++-specific nodes.
1031890075Sobrien	(init_cp_semantics): Define.
1031918334Speter
1032090075Sobrien	* decl.c (initialize_local_var): Remove RTL-generating code.
1032190075Sobrien	* semantics.c (genrtl_try_block): Fix formatting.
1032218334Speter
1032390075Sobrien	Move statement-tree facilities from C++ to C front-end.
1032490075Sobrien	* cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
1032590075Sobrien	(void_zero_node): Remove.
1032690075Sobrien	(stmt_tree): Likewise.
1032790075Sobrien	(scope_chain): Adjust.
1032890075Sobrien	(language_function): Rename to cp_language_function.
1032990075Sobrien	(cp_function_chain): Adjust.
1033090075Sobrien	(current_stmt_tree): Remove.
1033190075Sobrien	(last_tree): Likewise.
1033290075Sobrien	(last_expr_type): Likewise.
1033390075Sobrien	(struct lang_decl): Adjust.
1033490075Sobrien	(STMT_IS_FULL_EXPR_P): Remove.
1033590075Sobrien	(add_tree): Remove.
1033690075Sobrien	(begin_stmt_tree): Likewise.
1033790075Sobrien	(finish_stmt_tree): Likewise.
1033890075Sobrien	(walk_tree_fn): Likewise.
1033990075Sobrien	(walk_stmt_tree): Likewise.
1034090075Sobrien	* class.c (finish_struct): Replace use of add_tree with add_stmt.
1034190075Sobrien	* decl.c (mark_stmt_tree): Adjust type.
1034290075Sobrien	(init_decl_processing): Don't build void_zero_node.
1034390075Sobrien	(initialize_local_var): Adjust usage of current_stmt_tree.
1034490075Sobrien	(finish_enum): Use add_stmt, not add_tree.
1034590075Sobrien	(save_function_data): Adjust use of language_function.
1034690075Sobrien	(finish_constructor_body): Use add_stmt, not add_tree.
1034790075Sobrien	(finish_destructor_body): Likewise.
1034890075Sobrien	(push_cp_function_context): Adjust use of language_function.
1034990075Sobrien	(pop_cp_function_context): Likewise.
1035090075Sobrien	(mark_lang_function): Likewise.
1035190075Sobrien	(mark_cp_function_context): Likewise.
1035290075Sobrien	* init.c (build_aggr_init): Adjust use of current_stmt_tree.
1035390075Sobrien	(build_vec_init): Likewise.
1035490075Sobrien	* semantics.c (SET_LAST_STMT): Remove.
1035590075Sobrien	(RECHAIN_STMTS): Don't use it.
1035690075Sobrien	(stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
1035790075Sobrien	(current_stmt_tree): Define.
1035890075Sobrien	(add_tree): Remove.
1035990075Sobrien	(finish_goto_stmt): Use add_stmt, not add_tree.
1036090075Sobrien	(finish_expr_stmt): Likewise.
1036190075Sobrien	(begin_if_stmt): Likewise.
1036290075Sobrien	(finish_then_clause): Likewise.
1036390075Sobrien	(begin_while_stmt): Likewise.
1036490075Sobrien	(begin_do_stmt): Likewise.
1036590075Sobrien	(finish_return_stmt): Likewise.
1036690075Sobrien	(begin_for_stmt): Likewise.
1036790075Sobrien	(finish_break_stmt): Likewise.
1036890075Sobrien	(finish_continue_stmt): Likewise.
1036990075Sobrien	(begin_switch_stmt): Likewise.
1037090075Sobrien	(finish_case_label): Likewise.
1037190075Sobrien	(begin_try_block): Likewise.
1037290075Sobrien	(begin_function_try_block): Likewise.
1037390075Sobrien	(begin_handler): Likewise.
1037490075Sobrien	(begin_catch_block): Likewise.
1037590075Sobrien	(begin_compound_stmt): Likewise.
1037690075Sobrien	(begin_asm_stmt): Likewise.
1037790075Sobrien	(finish_asm_stmt): Likewise.
1037890075Sobrien	(finish_label_stmt): Likewise.
1037990075Sobrien	(add_decl_stmt): Likewise.
1038090075Sobrien	(finish_subobject): Likewise.
1038190075Sobrien	(finish_decl_cleanup): Likewise.
1038290075Sobrien	(finish_named_return_value): Likewise.
1038390075Sobrien	(setup_vtbl_ptr): Likewise.
1038490075Sobrien	(add_scope_stmt): Likewise.
1038590075Sobrien	(finish_stmt_expr): Likewise.
1038690075Sobrien	(prune_unused_decls): Remove.
1038790075Sobrien	(begin_stmt_tree): Likewise.
1038890075Sobrien	(finish_stmt_tree): Likewise.
1038990075Sobrien	(prep_stmt): Adjust use of current_stmt_tree.
1039090075Sobrien	(lang_expand_stmt): Likewise.
1039190075Sobrien	* tree.c (statement_code_p): Remove.
1039290075Sobrien	(cp_statement_code_p): New function.
1039390075Sobrien	(walk_stmt_tree): Remove.
1039490075Sobrien	(init_tree): Set lang_statement_code_p.
1039518334Speter
1039690075Sobrien2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
1039718334Speter
1039890075Sobrien	Integrated preprocessor.
1039918334Speter
1040090075Sobrien	* Make-lang.in, Makefile.in: Remove all references to input.c,
1040190075Sobrien	gxx.gperf, and hash.h.  Add ../c-lex.o to C_OBJS.
1040290075Sobrien	* gxx.gperf, hash.h, input.c: Delete.
1040390075Sobrien	* lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
1040490075Sobrien	initialized properly.
1040518334Speter
1040690075Sobrien	* class.c (fixup_pending_inline): Take a tree, not a
1040790075Sobrien	struct pending_inline *.  All callers changed.
1040890075Sobrien	(init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
1040990075Sobrien	RID_PROTECTED entries in ridpointers[] array here.
1041090075Sobrien	* decl.c (duplicate_decls): Do not refer to struct
1041190075Sobrien	pending_inline.
1041290075Sobrien	(record_builtin_type, init_decl_processing): Use RID_MAX not
1041390075Sobrien	CP_RID_MAX.
1041490075Sobrien	(grokdeclarator): Use C_IS_RESERVED_WORD.
1041590075Sobrien	* decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
1041690075Sobrien	cpplib.
1041790075Sobrien	(grok_x_components): Do not inspect pending_inlines chain.
1041818334Speter
1041990075Sobrien	* cp-tree.h (struct lang_identifier): Add rid_code entry.
1042090075Sobrien	(C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
1042190075Sobrien	(flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
1042290075Sobrien	(DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
1042390075Sobrien	TIME_IDENTIFIER_FILEINFO): Kill.
1042490075Sobrien	Update prototypes.
1042590075Sobrien	* lex.h: Expunge cp_rid.  Rewrite RIDBIT macros to use just a
1042690075Sobrien	single 32-bit word.
1042790075Sobrien	* parse.y: Call do_pending_inlines unconditionally.
1042890075Sobrien	reinit_parse_for_method is now snarf_method.  fn.defpen is no
1042990075Sobrien	longer necessary.  Remove unnecessary <itype> annotation on
1043090075Sobrien	SCOPE.  Do not refer to end_of_file or struct pending_inline.
1043190075Sobrien	* semantics.c (begin_inline_definitions): Call
1043290075Sobrien	do_pending_inlines unconditionally.
1043318334Speter
1043490075Sobrien	* lex.c: Remove all code now shared with C front end.
1043590075Sobrien	Initialize cpplib properly if USE_CPPLIB.  Put reserved words
1043690075Sobrien	into the get_identifier table.  Rewrite pragma handling to
1043790075Sobrien	work with the registry.  Move code to save tokens for later
1043890075Sobrien	processing to spew.c.
1043918334Speter
1044090075Sobrien	* spew.c: Rewrite everything in terms of token streams instead
1044190075Sobrien	of text.  Move routines here from lex.c / input.c as
1044290075Sobrien	appropriate.  GC-mark trees hanging off the pending inlines
1044390075Sobrien	chain.
1044418334Speter
1044590075Sobrien2000-09-06  Mark Mitchell  <mark@codesourcery.com>
1044618334Speter
1044790075Sobrien	* NEWS: Mention that the named return value extension has been
1044890075Sobrien	deprecated.
1044990075Sobrien	* cp-tree.h (original_result_rtx): Define.
1045090075Sobrien	(TREE_REFERENCE_EXPR): Remove.
1045190075Sobrien	(DECL_VPARENT): Likewise.
1045290075Sobrien	(pushdecl_nonclass_level): Likewise.
1045390075Sobrien	(store_return_init): Likewise.
1045490075Sobrien	(reinit_lang_specific): Likewise.
1045590075Sobrien	(genrtl_named_return_value): Change prototype.
1045690075Sobrien	* decl.c (original_result_rtx): Remove.
1045790075Sobrien	(cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
1045890075Sobrien	Do not generate RTL for local variables here.
1045990075Sobrien	(store_return_init): Remove.
1046090075Sobrien	* semantics.c (genrtl_named_return_value): Simplify.  Fold in
1046190075Sobrien	store_return_init.
1046290075Sobrien	(finish_named_return_value): Adjust accordingly.  Warn that this
1046390075Sobrien	extension is deprecated.
1046490075Sobrien	(lang_expand_stmt): Adjust call to genrtl_named_return_value.
1046518334Speter
1046690075Sobrien2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
1046718334Speter
1046890075Sobrien	* pt.c (type_unification_real): Replace switch with if.
1046990075Sobrien	(unify): Tsubst non-type parms before comparing.
1047018334Speter
1047190075Sobrien2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
1047218334Speter
1047390075Sobrien	* error.c (dump_typename): New function, broken out of ...
1047490075Sobrien	(dump_type): ... here. Use it.
1047590075Sobrien	* typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
1047618334Speter
1047790075Sobrien2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
1047818334Speter
1047990075Sobrien	* init.c (build_offset_ref): Deal with namespace scoped
1048090075Sobrien	TEMPLATE_ID_EXPRs.
1048118334Speter
1048290075Sobrien2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
1048318334Speter
1048490075Sobrien	* class.c (resolve_address_of_overloaded_function): Add
1048590075Sobrien	explanation message.
1048690075Sobrien	* decl.c (define_case_label): Reformat explanation.
1048790075Sobrien	* decl2.c (finish_static_data_member_decl): Likewise.
1048890075Sobrien	(grokfield): Likewise.
1048950397Sobrien	* friend.c (do_friend): Likewise.
1049018334Speter
1049190075Sobrien2000-09-05  Zack Weinberg  <zack@wolery.cumb.org>
1049218334Speter
1049390075Sobrien	* tree.c (walk_tree): Expose tail recursion.
1049490075Sobrien	(walk_stmt_tree): New function.
1049590075Sobrien	* cp-tree.h: Prototype walk_stmt_tree.
1049690075Sobrien	* semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
1049790075Sobrien	the BLOCKs directly.  If a BLOCK has no variables after
1049890075Sobrien	pruning, discard it.
1049990075Sobrien	(finish_stmt_tree): Use walk_stmt_tree.  No need to save and
1050090075Sobrien	restore the line number.
1050118334Speter
1050290075Sobrien2000-09-05  Mark Mitchell  <mark@codesourcery.com>
1050318334Speter
1050490075Sobrien	* Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
1050590075Sobrien	(pt.o): Remove dependency on HTAB_H.
1050690075Sobrien	* cp-tree.h: Include hashtab.h.
1050790075Sobrien	(walk_tree): Change prototype.
1050890075Sobrien	(walk_tree_without_duplicates): New function.
1050990075Sobrien	* decl.c (check_default_argument): Use it.
1051090075Sobrien	* optimize.c (remap_decl): Adjust calls to walk_tree.
1051190075Sobrien	(copy_body): Likewise.
1051290075Sobrien	(expand_calls_inline): Likewise.
1051390075Sobrien	(calls_setjmp_p): Use walk_tree_without_duplicates.
1051490075Sobrien	* pt.c: Don't include hashtab.h.
1051590075Sobrien	(for_each_template_parm): Use walk_tree_without_duplicates.
1051690075Sobrien	* semantics.c (finish-stmt_tree): Likewise.
1051790075Sobrien	(expand_body): Likewise.
1051890075Sobrien	* tree.c (walk_tree): Add additional parameter.
1051990075Sobrien	(walk_tree_without_duplicates): New function.
1052090075Sobrien	(count_trees): Use it.
1052190075Sobrien	(verify_stmt_tree): Adjust call to walk_tree.
1052290075Sobrien	(find_tree): Use walk_tree_without_duplicates.
1052390075Sobrien	(no_linkage_check): Likewise.
1052490075Sobrien	(break_out_target_exprs): Adjust call to walk_tree.
1052590075Sobrien	(cp_unsave): Likewise.
1052618334Speter
1052790075Sobrien2000-09-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1052818334Speter
1052990075Sobrien	* cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
1053090075Sobrien	(TEMPLATE_TEMPLATE_PARM): Adjust comment.
1053190075Sobrien	* cp-tree.h (TYPE_BINFO): Adjust comment.
1053290075Sobrien	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
1053390075Sobrien	(TEMPLATE_TYPE_PARM_INDEX): Likewise.
1053490075Sobrien	(IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
1053590075Sobrien	(TYPE_TEMPLATE_INFO): Likewise.
1053690075Sobrien	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
1053790075Sobrien	* class.c (push_nested_class): Likewise.
1053890075Sobrien	* decl.c (lookup_name_real): Likewise.
1053990075Sobrien	(grokdeclarator): Likewise.
1054090075Sobrien	(grok_op_properties): Likewise.
1054190075Sobrien	(xref_tag): Likewise.
1054290075Sobrien	(xref_basetypes): Likewise.
1054350397Sobrien	* decl2.c (constructor_name_full): Likewise.
1054490075Sobrien	(arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
1054590075Sobrien	(arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
1054690075Sobrien	* error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
1054790075Sobrien	(dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
1054890075Sobrien	(dump_type_suffix): Likewise.
1054990075Sobrien	* init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
1055090075Sobrien	instead.
1055190075Sobrien	(get_aggr_from_typedef): Likewise.
1055290075Sobrien	* mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
1055390075Sobrien	(write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
1055490075Sobrien	(write_template_parm): Likewise.
1055590075Sobrien	(write_template_template_parm): Check tree code instead of
1055690075Sobrien	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
1055790075Sobrien	* method.c (build_overload_nested_name): Add
1055890075Sobrien	BOUND_TEMPLATE_TEMPLATE_PARM.
1055990075Sobrien	(process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
1056090075Sobrien	* parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
1056190075Sobrien	* pt.c (convert_template_argument): Check tree code instead of
1056290075Sobrien	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
1056390075Sobrien	(for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
1056490075Sobrien	(for_each_template_parm): Adjust comment.
1056590075Sobrien	(tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM.  Reorganize.
1056690075Sobrien	(tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
1056790075Sobrien	(unify): Add BOUND_TEMPLATE_TEMPLATE_PARM.  Reorganize.  Use
1056890075Sobrien	template_args_equal to compare template template parameter cases.
1056990075Sobrien	* ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
1057090075Sobrien	* search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
1057190075Sobrien	instead.
1057290075Sobrien	* tree.c (copy_template_template_parm): Decide whether to create
1057390075Sobrien	a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
1057490075Sobrien	(walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
1057590075Sobrien	(copy_tree_r): Likewise.
1057690075Sobrien	* typeck.c (comptypes): Likewise.  Check tree code instead of
1057790075Sobrien	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
1057818334Speter
1057990075Sobrien2000-09-04  Mark Elbrecht  <snowball3@bigfoot.com>
1058018334Speter
1058190075Sobrien	* decl.c (finish_function): Move the code for handling functions
1058290075Sobrien	marked with the constructor and destructor attributes inside the
1058390075Sobrien	expand_p block.
1058418334Speter
1058590075Sobrien2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
1058618334Speter
1058790075Sobrien	* init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
1058818334Speter
1058990075Sobrien2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
1059018334Speter
1059190075Sobrien	* pt.c (lookup_template_class): Remove abort.
1059290075Sobrien	* tree.c (get_type_decl): Allow error_mark_node.
1059318334Speter
1059490075Sobrien2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
1059518334Speter
1059690075Sobrien	* decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
1059790075Sobrien	TEMPLATE_ID_EXPRs.
1059818334Speter
1059990075Sobrien2000-09-03  Mark Mitchell  <mark@codesourcery.com>
1060018334Speter
1060190075Sobrien	* operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
1060290075Sobrien	new ABI mangling.
1060318334Speter
1060490075Sobrien2000-09-01  Nathan Sidwell  <nathan@codesourcery.com>
1060518334Speter
1060690075Sobrien	* parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
1060790075Sobrien	union tag mismatch error reporting.
1060818334Speter
1060990075Sobrien2000-09-01  Nathan Sidwell  <nathan@codesourcery.com>
1061018334Speter
1061190075Sobrien	* call.c (build_scoped_method_call): Check it is not a namespace.
1061218334Speter
1061390075Sobrien2000-08-30  Jason Merrill  <jason@redhat.com>
1061418334Speter
1061590075Sobrien	* cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
1061618334Speter
1061790075Sobrien	* tree.c (bot_manip): Check TREE_CONSTANT rather than
1061890075Sobrien	!TREE_SIDE_EFFECTS.  Call break_out_target_exprs and
1061990075Sobrien	build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
1062018334Speter
1062190075Sobrien	* decl.c (start_function): Always call make_function_rtl.
1062218334Speter
1062390075Sobrien2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
1062418334Speter
1062590075Sobrien	* semantics.c (prune_unused_decls): New function.
1062690075Sobrien	(finish_stmt_tree): Call it via walk_tree.
1062718334Speter
1062890075Sobrien2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
1062918334Speter
1063090075Sobrien	* class.c (build_secondary_vtable): Constify a char *.
1063190075Sobrien	* decl.c (init_decl_processing): Initialize function_id_node,
1063290075Sobrien	pretty_function_id_node, and func_id_node.
1063390075Sobrien	* input.c (struct input_source): Constify 'str'.
1063490075Sobrien	(feed_input): Constify first argument.
1063590075Sobrien	* mangle.c (write_identifier): Constify argument.
1063690075Sobrien	* pt.c (mangle_class_name_for_template): Constify argument.
1063718334Speter
1063890075Sobrien2000-08-29  Mark Mitchell  <mark@codesourcery.com>
1063918334Speter
1064090075Sobrien	* typeck.c (mark_addressable): Remove code that pokes around in
1064190075Sobrien	RTL.
1064218334Speter
1064390075Sobrien2000-08-28  Jason Merrill  <jason@redhat.com>
1064418334Speter
1064590075Sobrien	* lex.c (file_name_nondirectory): Move to toplev.c.
1064618334Speter
1064790075Sobrien	* cp-tree.h (LOCAL_CLASS_P): New macro.
1064890075Sobrien	* class.c (finish_struct_1): Use it.
1064918334Speter
1065090075Sobrien2000-08-27  Alex Samuel  <samuel@codesourcery.com>
1065118334Speter
1065290075Sobrien	* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
1065390075Sobrien	(write_encoding): Pass another argument to write_name.
1065490075Sobrien	(write_name): Add ignore_local_scope parameter.  Fix handling of
1065590075Sobrien	local names.
1065690075Sobrien	(write_nested_name): Use write_unqualified_name.
1065790075Sobrien	(write_prefix): Likewise.  Skip out on FUNCTION_DECLs.
1065890075Sobrien	(write_template_prefix): Use write_unqualified_name.
1065990075Sobrien	(write_component): Remove.
1066090075Sobrien	(write_local_name): Add parameter.  Use direct local entity to
1066190075Sobrien	discriminator calculation.
1066290075Sobrien	(write_class_enum_type): Pass another argument to write_name.
1066390075Sobrien	(write_template_template_arg): Likewise.
1066490075Sobrien	(make_guard_variable): Likewise.
1066518334Speter
1066690075Sobrien2000-08-27  Jason Merrill  <jason@redhat.com>
1066718334Speter
1066890075Sobrien	* decl.c (pushdecl): Matching decls for local externs are found in
1066990075Sobrien	the current level.  Propagate linkage information from previous
1067090075Sobrien	declarations.
1067118334Speter
1067290075Sobrien2000-08-26  Gabriel Dos Reis  <gdr@codesourcery.com>
1067318334Speter
1067490075Sobrien	* ir.texi (Expressions): Fix typo.
1067518334Speter
1067690075Sobrien2000-08-25  Greg McGary  <greg@mcgary.org>
1067718334Speter
1067890075Sobrien	* tree.c (init_tree): Use ARRAY_SIZE.
1067918334Speter
1068090075Sobrien2000-08-25  Gabriel Dos Reis  <gdr@codesourcery.com>
1068118334Speter
1068290075Sobrien	* error.c (cp_tree_printer): Rework.
1068318334Speter
1068490075Sobrien2000-08-25  Mark Mitchell  <mark@codesourcery.com>
1068518334Speter
1068690075Sobrien	* Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
1068790075Sobrien	dyn-string.o.
1068890075Sobrien	(CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
1068990075Sobrien	(cp-demangle.o): Remove target.
1069090075Sobrien	(dyn-string.o): Likewise.
1069118334Speter
1069290075Sobrien	* decl.c (grokfndecl): Require that `main' return an `int'.
1069390075Sobrien	* mangle.c (write_encoding): Don't mangle return types for
1069490075Sobrien	conversion functions.
1069518334Speter
1069690075Sobrien2000-08-25  Gabriel Dos Reis  <gdr@codesourcery.com>
1069718334Speter
1069890075Sobrien	* error.c (tree_formatting_info): New data type.
1069990075Sobrien	(tree_being_formatted): New macro.
1070090075Sobrien	(tree_formatting_flags): Likewise.
1070190075Sobrien	(put_whitespace): Likewise.
1070290075Sobrien	(print_tree_identifier): Likewise.
1070390075Sobrien	(print_identifier): Likewise.
1070490075Sobrien	(cp_tree_printer, print_function_argument_list, print_declaration,
1070590075Sobrien	print_expression, print_function_declaration,
1070690075Sobrien	print_function_parameter, print_type, print_cv_qualifier): New
1070790075Sobrien	functions.
1070890075Sobrien	(init_error): Initialize lang_printer.
1070918334Speter
1071090075Sobrien2000-08-24  Jason Merrill  <jason@redhat.com>
1071118334Speter
1071290075Sobrien	* typeck.c (build_ptrmemfunc): Just reinterpret if there's no
1071390075Sobrien	adjustment necessary.
1071418334Speter
1071590075Sobrien2000-08-24  Greg McGary  <greg@mcgary.org>
1071618334Speter
1071790075Sobrien	* cp-tree.h (MAIN_NAME_P): Remove macro.
1071818334Speter
1071990075Sobrien2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
1072018334Speter
1072190075Sobrien	* error.c (print_instantiation_context): Don't forget to flush the
1072290075Sobrien	buffer.
1072318334Speter
1072490075Sobrien2000-08-23  Jason Merrill  <jason@redhat.com>
1072518334Speter
1072690075Sobrien	* typeck.c (build_ptrmemfunc): Save the input pmf.
1072718334Speter
1072890075Sobrien	* method.c (process_modifiers): Use same_type_p.
1072918334Speter
1073090075Sobrien2000-08-23  Mark Mitchell  <mark@codesourcery.com>
1073118334Speter
1073290075Sobrien	* cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
1073390075Sobrien	* mangle.c (write_function_type): Change prototype.
1073490075Sobrien	(write_encoding): Don't mangle return types for
1073590075Sobrien	constructors or destructors.
1073690075Sobrien	(write_type): Adjust call to write_function_type.
1073790075Sobrien	* pt.c (instantiate_template): Instantiate alternate entry points
1073890075Sobrien	when instantiating the main function.
1073918334Speter
1074090075Sobrien2000-08-23  Gabriel Dos Reis  <gdr@codesourcery.com>
1074118334Speter
1074290075Sobrien	* error.c (cp_print_error_function): Don't use embedded '\n' in
1074390075Sobrien	output_printf.
1074418334Speter
1074590075Sobrien2000-08-23  Gabriel Dos Reis  <gdr@codesourcery.com>
1074618334Speter
1074790075Sobrien	* decl.c (init_decl_processing): Remove bogus initialization.
1074890075Sobrien	* error.c (lang_print_error_function): Restore here.
1074990075Sobrien	(init_error): Initialize print_error_function.
1075018334Speter
1075190075Sobrien2000-08-22  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
1075218334Speter
1075390075Sobrien	* decl2.c (arg_assoc): Revert my 2000-08-11 change.
1075418334Speter
1075590075Sobrien2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
1075618334Speter
1075790075Sobrien	* Makefile.in (error.o): Depends on diagnostic.h
1075818334Speter
1075990075Sobrien	* cp-tree.h (problematic_instantiation_changed,
1076090075Sobrien	record_last_problematic_instantiation, current_instantiation,
1076190075Sobrien	print_instantiation_context): Declare.
1076290075Sobrien	(maybe_print_template_context): Remove.
1076318334Speter
1076490075Sobrien	* decl.c (init_decl_processing): Set print_error_function to NULL.
1076590075Sobrien	(lang_print_error_function): Remove, since we're using a new
1076690075Sobrien	machinery.
1076718334Speter
1076890075Sobrien	* error.c: #include diagnostic.h
1076990075Sobrien	(function_category): New function.
1077090075Sobrien	(cp_diagnostic_starter): Likewise.
1077190075Sobrien	(cp_diagnostic_finalizer): Likewise.
1077290075Sobrien	(cp_print_error_function): Likewise.
1077390075Sobrien	(maybe_print_instantiation_context): Likewise.
1077490075Sobrien	(print_instantiation_full_context): Likewise.
1077590075Sobrien	(print_instantiation_partial_context): Likewise.
1077690075Sobrien	(print_instantiation_context): Define.
1077790075Sobrien	(init_error): Initialize diagnostic pager and finalizer.
1077818334Speter
1077990075Sobrien	* pt.c (problematic_instantiation_changed): Define.
1078090075Sobrien	(record_last_problematic_instantiation): Likewise.
1078190075Sobrien	(current_instantiation): Likewise.
1078290075Sobrien	(maybe_print_template_context): Remove.
1078390075Sobrien	(print_template_context): Likewise.
1078490075Sobrien	(current_tinst_level): Make static to reflect Brendan Kehoe's
1078590075Sobrien	change of 1995-04-13.
1078690075Sobrien	(push_tinst_level): Call print_instantiation_context.
1078718334Speter
1078890075Sobrien2000-08-21  Nix  <nix@esperi.demon.co.uk>
1078918334Speter
1079090075Sobrien	* lang-specs.h: Do not process -o or run the assembler if
1079190075Sobrien	-fsyntax-only.
1079218334Speter
1079390075Sobrien2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1079418334Speter
1079590075Sobrien	* decl.c (flag_hosted, flag_noniso_default_format_attributes): New
1079690075Sobrien	variables.
1079790075Sobrien	* decl2.c (lang_decode_option): Disable gettext attributes for
1079890075Sobrien	-ansi.
1079918334Speter
1080090075Sobrien2000-08-21  Gabriel Dos Reis  <gdr@codesourcery.com>
1080118334Speter
1080290075Sobrien	* lex.c (lang_init_options): Default diagnostic message maximum
1080390075Sobrien	length to 80, when line-wrapping.
1080418334Speter
1080590075Sobrien2000-08-20  Mark Mitchell  <mark@codesourcery.com>
1080618334Speter
1080790075Sobrien	* class.c (build_vtbl_initializer): Clear the entire
1080890075Sobrien	vtbl_init_data.  Start keeping track of the functions for which we
1080990075Sobrien	have created vcall offsets here.
1081090075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Remove.
1081190075Sobrien	(build_vcall_offset_vtbl_entries): Reimplement.
1081290075Sobrien	(add_vcall_offset_vtbl_entries_r): New function.
1081390075Sobrien	(add_vcall_offset_vtbl_entries_1): Likewise.  Tweak logic for
1081490075Sobrien	computing when vcall offsets are necessary.
1081518334Speter
1081690075Sobrien2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
1081718334Speter
1081890075Sobrien	* decl.c (member_function_or_else): Use cp_error ... %T.
1081952284Sobrien	(grokdeclarator): Likewise.
1082052284Sobrien	(start_method): Likewise.
1082190075Sobrien	* friend.c (make_friend_class): Use cp_pedwarn ... %T.
1082218334Speter
1082390075Sobrien2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
1082418334Speter
1082590075Sobrien	* decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
1082690075Sobrien	TYPE_DECLs.
1082718334Speter
1082890075Sobrien2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
1082918334Speter
1083090075Sobrien	* cp-tree.h (PTRMEM_OK_P): New macro.
1083190075Sobrien	(itf_ptrmem_ok): New enumeration value.
1083290075Sobrien	* class.c (resolve_address_of_overloaded_function): Add PTRMEM
1083390075Sobrien	argument. Diagnose implicit pointer to member.
1083490075Sobrien	(instantiate_type): Don't diagnose implicit pointer to member
1083590075Sobrien	here. Pass itf_ptrmem_ok if ok. Adjust calls to
1083690075Sobrien	resolve_address_of_overloaded_function.
1083790075Sobrien	* init.c (build_offset_ref): Set PTRMEM_OK_P.
1083890075Sobrien	(resolve_offset_ref): Don't diagnose implicit pointer to member here.
1083990075Sobrien	* semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
1084090075Sobrien	* typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
1084190075Sobrien	(build_unary_op): Deal with single non-static member in
1084290075Sobrien	microsoft-land.
1084318334Speter
1084490075Sobrien2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
1084518334Speter
1084690075Sobrien	* decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
1084718334Speter
1084890075Sobrien2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
1084918334Speter
1085090075Sobrien	* cp-tree.h (enum_name_string): Remove prototype.
1085190075Sobrien	(report_case_error): Remove prototype.
1085290075Sobrien	* cp/typeck2.c (enum_name_string): Remove.
1085390075Sobrien	(report_case_error): Remove.
1085490075Sobrien	* error.c (dump_expr): Deal with enum values directly.
1085590075Sobrien	Correctly negate integer constant.
1085618334Speter
1085790075Sobrien2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
1085818334Speter
1085990075Sobrien	* inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
1086090075Sobrien	(__cxa_vec_delete2, __cxa_vec_delete3): Declare.
1086190075Sobrien	* vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
1086290075Sobrien	(__cxa_vec_delete2, __cxa_vec_delete3): Implement.
1086390075Sobrien	(__cxa_vec_new): Use __cxa_vec_new2.
1086490075Sobrien	(__cxa_vec_delete): Use __cxa_vec_delete2.
1086518334Speter
1086690075Sobrien2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
1086718334Speter
1086890075Sobrien	* vec.cc (__cxa_vec_new): Set "C" linkage.
1086990075Sobrien	(__cxa_vec_ctor): Likewise.
1087090075Sobrien	(__cxa_vec_cctor): Likewise.
1087190075Sobrien	(__cxa_vec_dtor): Likewise.
1087290075Sobrien	(__cxa_vec_delete): Likewise.
1087390075Sobrien	* inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
1087490075Sobrien	(__cxa_vec_ctor): Likewise.
1087590075Sobrien	(__cxa_vec_cctor): Likewise.
1087690075Sobrien	(__cxa_vec_dtor): Likewise.
1087790075Sobrien	(__cxa_vec_delete): Likewise.
1087818334Speter
1087990075Sobrien2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
1088018334Speter
1088190075Sobrien	* class.c (instantiate_type): Reinstate local variable
1088290075Sobrien	deleted in previous change.
1088318334Speter
1088490075Sobrien	* cvt.c (cp_convert_to_pointer): Pass itf_complain, not
1088590075Sobrien	itf_no_attributes.
1088618334Speter
1088790075Sobrien2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
1088818334Speter
1088990075Sobrien	* cp-tree.h (instantiate_type_flags): New enumeration.
1089090075Sobrien	(instantiate_type): Change parameter.
1089190075Sobrien	* class.c (instantiate_type): Adjust prototype. Adjust.
1089290075Sobrien	* call.c (standard_conversion): Adjust instantiate_type call.
1089390075Sobrien	(reference_binding): Likewise.
1089450397Sobrien	(build_op_delete_call): Likewise.
1089590075Sobrien	(convert_like_real): Likewise.
1089690075Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
1089790075Sobrien	(convert_to_reference): Likewise.
1089890075Sobrien	* pt.c (convert_nontype_argument): Likewise.
1089990075Sobrien	* typeck.c (build_binary_op): Likewise.
1090090075Sobrien	(build_ptrmemfunc): Likewise.
1090190075Sobrien	(convert_for_assignment): Likewise.
1090218334Speter
1090390075Sobrien2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
1090418334Speter
1090590075Sobrien	* cp-tree.h (CPTR_AGGR_TAG): New global tree node.
1090690075Sobrien	(current_aggr): Define.
1090790075Sobrien	* decl.c (grokdeclarator): Make sure a friend class is an
1090890075Sobrien	elaborated type specifier.
1090990075Sobrien	* parse.y (current_aggr): Remove static definition.
1091090075Sobrien	(cp_parse_init): Adjust.
1091190075Sobrien	(structsp): Clear and restore current_aggr.
1091290075Sobrien	(component_decl_list): Clear current_aggr.
1091318334Speter
1091490075Sobrien	* error.c (dump_type, case TYPENAME_TYPE): Don't emit the
1091590075Sobrien	aggregate tag on the typename's context.
1091618334Speter
1091790075Sobrien	* pt.c (tsubst_friend_class): Return error_mark_node, if
1091890075Sobrien	parms becomes NULL.
1091990075Sobrien	(instantiate_class_template): Ignore error_mark_node friend types.
1092018334Speter
1092190075Sobrien2000-08-14  Nathan Sidwell  <nathan@codesourcery.com>
1092218334Speter
1092390075Sobrien	* cvt.c (warn_ref_binding): New static function, broken out of ...
1092490075Sobrien	(convert_to_reference): ... here. Use it.
1092518334Speter
1092690075Sobrien2000-08-11  Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
1092718334Speter
1092890075Sobrien	* parse.y (template_arg): Add rule for template qualified with
1092990075Sobrien	global scope.
1093018334Speter
1093190075Sobrien2000-08-11  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1093218334Speter
1093390075Sobrien	* decl2.c (add_function): Reorganize.
1093490075Sobrien	(arg_assoc): Do not consider function template decls.
1093518334Speter
1093690075Sobrien2000-08-11  Jason Merrill  <jason@redhat.com>
1093718334Speter
1093890075Sobrien	* decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
1093990075Sobrien	looking inside.
1094018334Speter
1094190075Sobrien2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
1094218334Speter
1094390075Sobrien	* cp-tree.h (resolve_scope_to_name): Remove unused prototype.
1094490075Sobrien	(lookup_nested_tag): Likewise.
1094518334Speter
1094690075Sobrien	* decl2.c (grokfield): Fix comment to reflect many types of _DECLs
1094790075Sobrien	can be produced.
1094818334Speter
1094990075Sobrien2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
1095018334Speter
1095190075Sobrien	* parse.y (named_complex_class_head_sans_basetype): Remove
1095290075Sobrien	always true if.
1095318334Speter
1095490075Sobrien2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
1095518334Speter
1095690075Sobrien	* decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
1095790075Sobrien	explicit TEMPLATE_ID_EXPR args.
1095890075Sobrien	(build_expr_from_tree, case CALL_EXPR): Likewise.
1095918334Speter
1096090075Sobrien2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
1096118334Speter
1096290075Sobrien	* decl.c (check_tag_decl): Diagnose typename's which don't
1096390075Sobrien	declare anything.
1096418334Speter
1096590075Sobrien2000-08-10  Nathan Sidwell  <nathan@codesourcery.com>
1096618334Speter
1096790075Sobrien	* init.c (build_aggr_init): Reject bogus array initializers
1096890075Sobrien	early.
1096918334Speter
1097090075Sobrien2000-08-09  Nathan Sidwell  <nathan@codesourcery.com>
1097118334Speter
1097290075Sobrien	* rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
1097390075Sobrien	runtime.
1097490075Sobrien	* cp/tinfo.cc (__dynamic_cast): Likewise.
1097590075Sobrien	* cp/inc/cxxabi.h (__dynamic_cast): Likewise.
1097618334Speter
1097790075Sobrien2000-08-09  Nathan Sidwell  <nathan@codesourcery.com>
1097818334Speter
1097990075Sobrien	* cvt.c (convert_to_pointer_force): Fix error message when
1098090075Sobrien	attempting to cast from ambiguous base.
1098118334Speter
1098290075Sobrien2000-08-08  Jason Merrill  <jason@redhat.com>
1098318334Speter
1098490075Sobrien	* pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
1098590075Sobrien	(tsubst_template_arg_vector): Likewise.
1098618334Speter
1098790075Sobrien	* decl2.c (build_anon_union_vars): Choose the largest field; don't
1098890075Sobrien	assume that one will be as large as the union.
1098918334Speter
1099090075Sobrien2000-08-07  Kazu Hirata  <kazu@hxi.com>
1099118334Speter
1099290075Sobrien	* cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
1099390075Sobrien	* decl.c (pop_labels): Likewise.
1099418334Speter
1099590075Sobrien2000-08-04  Jeffrey Oldham  <oldham@codesourcery.com>
1099618334Speter
1099790075Sobrien	* inc/cxxabi.h (__pbase_type_info): Changed member names to match
1099890075Sobrien	specifications.
1099990075Sobrien	(__pointer_to_member_type_info): Likewise.
1100090075Sobrien	(__base_class_info): Likewise.
1100190075Sobrien	(__class_type_info): Likewise.
1100290075Sobrien	(__si_class_type_info): Likewise.
1100390075Sobrien	(__vmi_class_type_info): Likewise.
1100490075Sobrien	* tinfo.cc (__si_class_type_info::__do_find_public_src):
1100590075Sobrien	Changed member names to match specifications.
1100690075Sobrien	(__vmi_class_type_info::__do_find_public_src): Likewise.
1100790075Sobrien	(__si_class_type_info::__do_dyncast): Likewise.
1100890075Sobrien	(__vmi_class_type_info::__do_dyncast): Likewise.
1100990075Sobrien	(__si_class_type_info::__do_upcast): Likewise.
1101090075Sobrien	(__vmi_class_type_info::__do_upcast): Likewise.
1101190075Sobrien	* tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
1101290075Sobrien	(__pbase_type_info::__pointer_catch): Likewise.
1101390075Sobrien	(__pointer_type_info::__pointer_catch): Likewise.
1101490075Sobrien	(__pointer_to_member_type_info::__pointer_catch): Likewise.
1101518334Speter
1101690075Sobrien2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
1101718334Speter
1101890075Sobrien	* Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
1101990075Sobrien	* Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
1102090075Sobrien	(cc1plus): Link with $(BACKEND) and $(C_OBJS).
1102118334Speter
1102290075Sobrien2000-08-04  Mark Mitchell  <mark@codesourcery.com>
1102318334Speter
1102490075Sobrien	* cp-tree.h (add_method): Change prototype.
1102590075Sobrien	* class.c (add_method): Remove FIELDS parameter.  Add ERROR_P.
1102690075Sobrien	Don't double the size of the method vector in the error case.
1102790075Sobrien	(handle_using_decl): Adjust call to add_method.
1102890075Sobrien	(add_implicitly_declared_members): Likewise.
1102990075Sobrien	(clone_function_decl): Likewise.
1103090075Sobrien	* decl2.c (check_classfn): Likewise.
1103190075Sobrien	* semantics.c (finish_member_declaration): Likewise.
1103218334Speter
1103390075Sobrien2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
1103418334Speter
1103590075Sobrien	* decl.c (flag_isoc94): New variable.
1103618334Speter
1103790075Sobrien2000-08-02  Jason Merrill  <jason@redhat.com>
1103818334Speter
1103990075Sobrien	* pt.c (do_type_instantiation): Add complain parm; don't complain
1104090075Sobrien	if called recursively.
1104190075Sobrien	* cp-tree.h, parse.y: Adjust.
1104218334Speter
1104390075Sobrien2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
1104418334Speter
1104590075Sobrien	* decl2.c: Silently ignore -Wstrict-prototypes; warn about
1104690075Sobrien	-Wno-strict-prototypes.
1104718334Speter
1104890075Sobrien	* g++spec.c: Adjust type of second argument to
1104990075Sobrien	lang_specific_driver, and update code as necessary.
1105018334Speter
1105190075Sobrien	* cp-tree.h: Don't prototype min_precision here.
1105290075Sobrien	(my_friendly_assert): Cast expression to void.
1105390075Sobrien	* semantics.c (do_poplevel): Initialize scope_stmts.
1105418334Speter
1105590075Sobrien2000-08-02  Mark Mitchell  <mark@codesourcery.com>
1105618334Speter
1105790075Sobrien	* cp-tree.h (DECL_NEEDED_P): Tweak.
1105818334Speter
1105990075Sobrien2000-07-28  Jason Merrill  <jason@redhat.com>
1106052284Sobrien
1106190075Sobrien	* lang-specs.h: Use %i in rule for .ii files.
1106218334Speter
1106390075Sobrien2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
1106418334Speter
1106590075Sobrien	* lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
1106618334Speter
1106790075Sobrien2000-07-30  Mark Mitchell  <mark@codesourcery.com>
1106818334Speter
1106990075Sobrien	Allow indirect primary bases.
1107090075Sobrien	* cp-tree.h (struct lang_type): Remove vfield_parent.  Add
1107190075Sobrien	primary_base.
1107290075Sobrien	(CLASSTYPE_VFIELD_PARENT): Remove.
1107390075Sobrien	(CLASSTYPE_PRIMARY_BINFO): Reimplement.
1107490075Sobrien	(BINFO_PRIMARY_BINFO): Remove.
1107590075Sobrien	(CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
1107690075Sobrien	(BINFO_VBASE_PRIMARY_P): Likewise.
1107790075Sobrien	(BINFO_PRIMARY_BASE_OF): New macro.
1107890075Sobrien	(BINFO_INDIRECT_PRIMARY_P): Likewise.
1107990075Sobrien	(get_primary_binfo): New function.
1108090075Sobrien	* decl.c (lang_mark_tree): Make lang_type::primary_base.
1108190075Sobrien	* class.c (vcall_offset_data_s): Rename to ...
1108290075Sobrien	(vtbl_init_data_s): ... this.  Rename primary_p to primary_vtbl_p,
1108390075Sobrien	and add ctor_vtbl_p.
1108490075Sobrien	(get_derived_offset): Use get_primary_binfo.
1108590075Sobrien	(dfs_mark_primary_bases): Adjust handling of virtual primary
1108690075Sobrien	bases.
1108790075Sobrien	(mark_primary_bases): Likewise.
1108890075Sobrien	(set_primary_base): Take a binfo, not an integer, as a
1108990075Sobrien	representation of the primary base.
1109090075Sobrien	(indirect_primary_base_p): Remove.
1109190075Sobrien	(determine_primary_base): Adjust for indirect primary bases.
1109290075Sobrien	(dfs_find_final_overrider): Fix typo in coment.
1109390075Sobrien	(update_vtable_entry_for_fn): Use get_primary_binfo.
1109490075Sobrien	(layout_nonempty_base_or_field): Tweak.
1109590075Sobrien	(build_base_fields): Adjust for new primary base semantics.
1109690075Sobrien	(dfs_propagate_binfo_offsets): Remove.
1109790075Sobrien	(propagate_binfo_offsets): Rewrite.
1109890075Sobrien	(dfs_set_offset_for_shared_vbases): Remove.
1109990075Sobrien	(layout_virtual_bases): Don't use it.
1110090075Sobrien	(layout_class_type): Set CLASSTYPE_SIZE correctly under the new
1110190075Sobrien	ABI.
1110290075Sobrien	(finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
1110390075Sobrien	CLASSTYPE_VFIELD_PARENT.
1110490075Sobrien	(dfs_get_primary_binfo): New function.
1110590075Sobrien	(get_primary_binfo): Likewise.
1110690075Sobrien	(dump_class_hierarchy_r): Tweak printing of primary bases.
1110790075Sobrien	(build_vtbl_initializer): Fix typo in comments.  Use
1110890075Sobrien	vtbl_init_data.
1110990075Sobrien	(build_vcall_and_vbase_vtbl_entries): Likewise.
1111090075Sobrien	(build_vbaes_offset_vtbl_entries): Likewise.
1111190075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Adjust setting of
1111290075Sobrien	BV_VCALL_INDEX to handle indirect primary bases.
1111390075Sobrien	(build_vcall_offset_vtbl_entries): Use vtbl_init_data.
1111490075Sobrien	(build_rtti_vtbl_entries): Likewise.
1111590075Sobrien	* search.c (get_shared_vbase_if_not_primary): Tweak.
1111690075Sobrien	(find_vbase_instance): Likewise.
1111790075Sobrien	(binfo_for_vtable): Simplify.
1111890075Sobrien	* tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
1111990075Sobrien	(make_binfo): Make it have 11 entries.
1112018334Speter
1112190075Sobrien2000-07-30  Alex Samuel  <samuel@codesourcery.com>
1112218334Speter
1112390075Sobrien	* mangle.c (DECL_TEMPLATE_ID_P): Remove.
1112490075Sobrien	(CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
1112590075Sobrien	ascertaining primaryness.
1112690075Sobrien	(G): Remove template_args.
1112790075Sobrien	(decl_is_template_id): New function.
1112890075Sobrien	(write_encoding): Use decl_is_template_id.
1112990075Sobrien	(write_name): Likewise.  Handle type_decls.  Get main variant of
1113090075Sobrien	type decls.
1113190075Sobrien	(write_nested_name): Likewise.
1113290075Sobrien	(write_prefix): Likewise.
1113390075Sobrien	(write_template_prefix): Likewise.
1113490075Sobrien	(write_special_name_constructor): Remove defunct production from
1113590075Sobrien	comment.
1113690075Sobrien	(write_bare_function_type): Remove comment about absent parameter.
1113790075Sobrien	(write_template_template_arg): Add missing grammar production to
1113890075Sobrien	comment.
1113918334Speter
1114090075Sobrien2000-07-27  Jason Merrill  <jason@redhat.com>
1114118334Speter
1114290075Sobrien	* decl.c (duplicate_decls): If common_type produces a non-typedef
1114390075Sobrien	type for a typedef, just use the old type.
1114418334Speter
1114590075Sobrien2000-07-27  Mark Mitchell  <mark@codesourcery.com>
1114618334Speter
1114790075Sobrien	* cp-tree.h (function_depth): Declare.
1114890075Sobrien	(verify_stmt_tree): Likewise.
1114990075Sobrien	(find_tree): Likewise.
1115090075Sobrien	* decl.c (function_depth): Give it external linkage.
1115190075Sobrien	* optimize.c (optimize_function): Increment and decrement it.
1115290075Sobrien	* tree.c (verify_stmt_tree_r): New function.
1115390075Sobrien	(verify_stmt_tree): Likewise.
1115490075Sobrien	(find_tree_r): Likewise.
1115590075Sobrien	(find_tree): Likewise.
1115618334Speter
1115790075Sobrien2000-07-27  Jason Merrill  <jason@redhat.com>
1115818334Speter
1115990075Sobrien	* pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
1116090075Sobrien	TYPE_PTRMEMFUNC_P.
1116190075Sobrien	* cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
1116250397Sobrien
1116390075Sobrien2000-07-26  Mark Mitchell  <mark@codesourcery.com>
1116450397Sobrien
1116590075Sobrien	* decl.c (start_cleanup_fn): Mark the function as `inline'.
1116690075Sobrien	* decl2.c (get_guard): Call cp_finish_decl, not
1116790075Sobrien	rest_of_decl_compilation, for local guards.
1116890075Sobrien	* lex.c (do_identifier): Remove unused variable.
1116950397Sobrien
1117090075SobrienWed Jul 26 15:05:51 CEST 2000	Marc Espie <espie@cvs.openbsd.org>
1117150397Sobrien
1117290075Sobrien	* parse.y:  Add missing ';'.
1117350397Sobrien
1117490075Sobrien2000-07-26  Mark Mitchell  <mark@codesourcery.com>
1117550397Sobrien
1117690075Sobrien	* parse.y (empty_parms): Use `()', not `(...)', when in the scope
1117790075Sobrien	of `extern "C++"'.
1117852284Sobrien
1117990075Sobrien2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1118018334Speter
1118190075Sobrien	Kill strict_prototype. Backwards compatibility only for
1118290075Sobrien	non NO_IMPLICIT_EXTERN_C systems.
1118390075Sobrien	* cp-tree.h (flag_strict_prototype): Remove.
1118490075Sobrien	(strict_prototype): Remove.
1118590075Sobrien	(strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
1118690075Sobrien	* decl.c (maybe_push_to_top_level): Adjust.
1118790075Sobrien	(pop_from_top_level): Adjust.
1118890075Sobrien	(decls_match): Only allow sloppy parm matching for ancient
1118990075Sobrien	system headers.
1119090075Sobrien	(init_decl_processing): Adjust.
1119190075Sobrien	(grokdeclarator): Adjust.
1119290075Sobrien	* decl2.c (flag_strict_prototype): Remove.
1119390075Sobrien	(strict_prototype): Remove.
1119490075Sobrien	(strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
1119590075Sobrien	(lang_f_options): Remove "strict-prototype".
1119690075Sobrien	(unsupported-options): Add "strict-prototype".
1119790075Sobrien	* lex.c (do_identifier): Adjust.
1119890075Sobrien	(do_scoped_id): Adjust.
1119990075Sobrien	* parse.y (empty_parms): Adjust.
1120090075Sobrien	* class.c (push_lang_context): Adjust.
1120190075Sobrien	(pop_lang_context): Adjust.
1120290075Sobrien	* typeck.c (comp_target_parms): Adjust.
1120318334Speter
1120490075Sobrien2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
1120518334Speter
1120690075Sobrien	* decl.c (poplevel): Deal with anonymous variables at for scope.
1120790075Sobrien	(maybe_inject_for_scope_var): Likewise.
1120818334Speter
1120990075Sobrien2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
1121018334Speter
1121190075Sobrien	* decl.c: Remove all signal handling code, now done in toplev.c.
1121218334Speter
1121390075Sobrien2000-07-23  Mark Mitchell  <mark@codesourcery.com>
1121418334Speter
1121590075Sobrien	* decl.c (make_rtl_for_nonlocal_decl): Rework.
1121618334Speter
1121790075Sobrien	* pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
1121890075Sobrien	correctly.
1121952284Sobrien
1122090075Sobrien2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
1122118334Speter
1122290075Sobrien	* cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
1122390075Sobrien	Define my_friendly_assert and my_friendly_abort as macros
1122490075Sobrien	which may call friendly_abort.  Prototype friendly abort, not
1122590075Sobrien	my_friendly_abort or my_friendly_assert.
1122690075Sobrien	* decl.c (signal_catch): Report the signal caught in the error
1122790075Sobrien	message.  Call fatal directly.
1122890075Sobrien	* typeck2.c (ack, my_friendly_assert): Delete.
1122990075Sobrien	(my_friendly_abort): Rename to friendly_abort.  Expect file,
1123090075Sobrien	line, and function parameters.  Report the abort code, then
1123190075Sobrien	call fancy_abort.  Do not mask an abort if errors have
1123290075Sobrien	already occurred.
1123318334Speter
1123490075Sobrien2000-07-18  Nathan Sidwell  <nathan@codesourcery.com>
1123518334Speter
1123690075Sobrien	* typeck.c (comp_target_parms): Remove obsolete parameter.
1123790075Sobrien	(comp_target_types): Adjust.
1123818334Speter
1123990075Sobrien2000-07-17  Jason Merrill  <jason@redhat.com>
1124018334Speter
1124190075Sobrien	* typeck.c (mark_addressable): Never set TREE_USED.
1124290075Sobrien	* call.c (build_call): Don't abort on calls to library functions
1124390075Sobrien	that have been declared normally.
1124418334Speter
1124590075Sobrien	* typeck.c (build_binary_op): Fix grammar in warning.
1124618334Speter
1124790075Sobrien	* exception.cc (__eh_free): Fix prototype.
1124818334Speter
1124990075Sobrien	* decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
1125018334Speter
1125190075Sobrien	* decl.c (pushdecl): Handle seeing an OVERLOAD in
1125290075Sobrien	IDENTIFIER_NAMESPACE_VALUE.
1125318334Speter
1125490075Sobrien2000-07-16  Mark Mitchell  <mark@codesourcery.com>
1125518334Speter
1125690075Sobrien	* cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
1125790075Sobrien	* method.c (use_thunk): Correct handling of vcall offsets.
1125818334Speter
1125990075Sobrien2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
1126018334Speter
1126190075Sobrien	* .cvsignore: parse.h and parse.c have no cp- prefix.
1126218334Speter
1126390075Sobrien2000-07-13  Mark Mitchell  <mark@codesourcery.com>
1126418334Speter
1126590075Sobrien	* .cvsignore: New file.
1126618334Speter
1126790075Sobrien2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
1126818334Speter
1126990075Sobrien	* lang-specs.h: Use the new named specs.  Remove unnecessary braces.
1127018334Speter
1127190075Sobrien2000-07-12  Mark Mitchell  <mark@codesourcery.com>
1127218334Speter
1127390075Sobrien	* Makefile.in ($(PARSE_H)): Depend directly on parse.y.
1127490075Sobrien	* parse.c: Remove.
1127590075Sobrien	* parse.h: Likewise.
1127618334Speter
1127790075Sobrien2000-07-11  Mark Mitchell  <mark@codesourcery.com>
1127818334Speter
1127990075Sobrien	* class.c (layout_class_type): Add pointers to virtual bases after
1128090075Sobrien	base classes under the old ABI.
1128118334Speter
1128290075Sobrien2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
1128318334Speter
1128490075Sobrien	* semantics.c (finish_for_stmt): Remove call to emit_line_note.
1128590075Sobrien	(finish_continue_stmt): Likewise.
1128690075Sobrien	(begin_for_stmt): Remove call to note_level_for_for.
1128790075Sobrien	(finish_goto_stmt): Change call from build_min_nt
1128890075Sobrien	to build_stmt.
1128990075Sobrien	(finish_expr_stmt): Likewise.
1129090075Sobrien	(begin_if_stmt): Likewise.
1129190075Sobrien	(begin_while_stmt): Likewise.
1129290075Sobrien	(finish_while_stmt): Likewise.
1129390075Sobrien	(finish_return_stmt): Likewise.
1129490075Sobrien	(begin_for_stmt): Likewise.
1129590075Sobrien	(finish_for_stmt): Likewise.
1129690075Sobrien	(finish_break_stmt): Likewise.
1129790075Sobrien	(begin_switch_stmt): Likewise.
1129890075Sobrien	(finish_case_label): Likewise.
1129990075Sobrien	(genrtl_try_block): Likewise.
1130090075Sobrien	(begin_try_block): Likewise.
1130190075Sobrien	(begin_handler): Likewise.
1130290075Sobrien	(begin_compound_stmt): Likewise.
1130390075Sobrien	(finish_asm_stmt): Likewise.
1130490075Sobrien	(finish_label_stmt): Likewise.
1130590075Sobrien	(add_decl_stmt): Likewise.
1130690075Sobrien	(finish_subobject): Likewise.
1130790075Sobrien	(finish_decl_cleanup): Likewise.
1130890075Sobrien	(finish_named_return_value): Likewise.
1130990075Sobrien	(setup_vtbl_ptr): Likewise.
1131090075Sobrien	(add_scope_stmt): Likewise.
1131190075Sobrien	* decl.c (finish_constructor_body): Likewise.
1131290075Sobrien	(finish_destructor_body): Likewise.
1131390075Sobrien	* optimize.c (copy_body_r): Likewise.
1131490075Sobrien	(initialize_inlined_parameters): Likewise.
1131590075Sobrien	(declare_return_variable): Likewise.
1131690075Sobrien	(expand_call_inline): Likewise.
1131718334Speter
1131890075Sobrien2000-07-10  Jakub Jelinek  <jakub@redhat.com>
1131918334Speter
1132090075Sobrien	* semantics.c (expand_body): Sync interface information
1132190075Sobrien	at the end of function body expansion.
1132218334Speter
1132390075Sobrien2000-07-09  Jason Merrill  <jason@redhat.com>
1132452284Sobrien
1132590075Sobrien	* init.c (build_new_1): Bail early if the call to new fails.
1132618334Speter
1132790075Sobrien	* decl.c (compute_array_index_type): Check specifically for
1132890075Sobrien	an INTEGER_CST, not just TREE_CONSTANT.
1132918334Speter
1133090075Sobrien	* decl.c (duplicate_decls): Don't call duplicate_decls on
1133190075Sobrien	the DECL_TEMPLATE_RESULT.
1133290075Sobrien	(decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
1133390075Sobrien	codes.
1133418334Speter
1133590075Sobrien	* error.c (dump_template_bindings): Don't crash if we had an
1133690075Sobrien	invalid argument list.
1133718334Speter
1133890075Sobrien	* typeck.c (c_expand_start_case): Do narrowing here.
1133990075Sobrien	* semantics.c (finish_switch_cond): Not here.
1134018334Speter
1134190075Sobrien2000-07-09  Hidvegi Zoli  <hzoli@austin.ibm.com>
1134218334Speter
1134390075Sobrien	* parse.y (asm_clobbers): Do string concatenation.
1134418334Speter
1134590075Sobrien2000-07-09  Mark Mitchell  <mark@codesourcery.com>
1134618334Speter
1134790075Sobrien	* decl.c (pushtag): Don't put local classes in template functions
1134890075Sobrien	on the local_classes list.
1134918334Speter
1135090075Sobrien2000-07-04  Scott Snyder  <snyder@fnal.gov>
1135118334Speter
1135290075Sobrien	* decl2.c (get_guard): Add missing return for old ABI local
1135390075Sobrien	variable case.
1135418334Speter
1135590075Sobrien2000-07-09  Mark Mitchell  <mark@codesourcery.com>
1135618334Speter
1135790075Sobrien	* cp-tree.h (char_type_p): New function.
1135890075Sobrien	* decl.c (init_decl_processing): Don't initialize
1135990075Sobrien	signed_wchar_type_node or unsigned_wchar_type_node.
1136090075Sobrien	(complete_array_type): Handle brace-enclosed string-constants.
1136190075Sobrien	* rtti.c (emit_support_tinfos): Remove #if 0'd code.
1136290075Sobrien	* tree.c (char_type_p): New function.
1136390075Sobrien	* typeck2.c (digest_init): Use char_type_p.
1136418334Speter
1136590075Sobrien2000-07-06  Nathan Sidwell  <nathan@codesourcery.com>
1136618334Speter
1136790075Sobrien	* pt.c (tsubst): Don't layout type, if it's error_mark.
1136818334Speter
1136990075Sobrien2000-07-06  Nathan Sidwell  <nathan@codesourcery.com>
1137018334Speter
1137190075Sobrien	* pt.c (instantiate_pending_templates): Reset template level.
1137218334Speter
1137390075Sobrien2000-07-05  Jason Merrill  <jason@redhat.com>
1137418334Speter
1137590075Sobrien	* call.c (joust): Don't complain about `operator char *()' beating
1137690075Sobrien	`operator const char *() const'.
1137718334Speter
1137890075Sobrien2000-07-04  scott snyder  <snyder@fnal.gov>
1137990075Sobrien	    Jason Merrill  <jason@redhat.com>
1138018334Speter
1138190075Sobrien	* repo.c (repo_get_id): Handle the case where a class with virtual
1138290075Sobrien	bases has a null TYPE_BINFO_VTABLE.
1138318334Speter
1138490075Sobrien2000-07-04  Kevin Buhr  <buhr@stat.wisc.edu>
1138590075Sobrien	    Jason Merrill  <jason@redhat.com>
1138618334Speter
1138790075Sobrien	* parse.y (member_init): Just pass in the type.
1138890075Sobrien	* init.c (expand_member_init): Handle getting a type.
1138918334Speter
1139090075Sobrien2000-07-04  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1139190075Sobrien	    Jason Merrill  <jason@redhat.com>
1139218334Speter
1139390075Sobrien	* decl.c (finish_function): Warn if a function has no return
1139490075Sobrien	statement.
1139590075Sobrien	Suggested by Andrew Koenig.
1139690075Sobrien	* typeck.c (check_return_expr): Do set current_function_returns_value
1139790075Sobrien	if we got an error_mark_node.
1139818334Speter
1139990075Sobrien2000-07-03  Nathan Sidwell  <nathan@codesourcery.com>
1140018334Speter
1140190075Sobrien	* decl2.c (push_decl_namespace): Push the original namespace.
1140218334Speter
1140390075Sobrien2000-07-03  Nathan Sidwell  <nathan@codesourcery.com>
1140418334Speter
1140590075Sobrien	* pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES.
1140690075Sobrien	* semantics.c (begin_class_definition): Clear it.
1140718334Speter
1140890075Sobrien2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
1140918334Speter
1141090075Sobrien	* cp-tree.h (genrtl_goto_stmt): Remove declaration.
1141190075Sobrien	(genrtl_expr_stmt): Likewise.
1141290075Sobrien	(genrtl_decl_stmt): Likewise.
1141390075Sobrien	(genrtl_if_stmt): Likewise.
1141490075Sobrien	(genrtl_while_stmt): Likewise.
1141590075Sobrien	(genrtl_do_stmt): Likewise.
1141690075Sobrien	(genrtl_return_stmt): Likewise.
1141790075Sobrien	(genrtl_for_stmt): Likewise.
1141890075Sobrien	(genrtl_break_stmt): Likewise.
1141990075Sobrien	(genrtl_continue_stmt): Likewise.
1142090075Sobrien	(genrtl_scope_stmt): Likewise.
1142190075Sobrien	(genrtl_switch_stmt): Likewise.
1142290075Sobrien	(genrtl_case_label): Likewise.
1142390075Sobrien	(genrtl_begin_compound_stmt): Likewise.
1142490075Sobrien	(genrtl_finish_compound_stmt): Likewise.
1142590075Sobrien	(genrtl_compound_stmt): Likewise.
1142690075Sobrien	(genrtl_asm_stmt): Likewise.
1142718334Speter
1142890075Sobrien	* init.c (begin_init_stmts): Remove call to
1142990075Sobrien	genrtl_begin_compound_stmt.
1143090075Sobrien	(finish_init_stmts): Remove call to genrtl_finish_compound_stmt.
1143118334Speter
1143290075Sobrien	* semantics.c (lang_expand_stmt): Changed call to
1143390075Sobrien	genrtl_compound_stmt to ignore return value.
1143418334Speter
1143590075Sobrien2000-07-02  Mark Mitchell  <mark@codesourcery.com>
1143618334Speter
1143790075Sobrien	* mangle.c (canonicalize_for_substitution): Return the canonical
1143890075Sobrien	variant of a type.
1143918334Speter
1144090075Sobrien	* decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a
1144190075Sobrien	TYPE_DECL.
1144290075Sobrien	* typeck.c (commonparms): Remove obstack manipulations.
1144318334Speter
1144490075Sobrien2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
1144518334Speter
1144690075Sobrien	* Make-lang.in (cc1plus$(exeext)): Added c-semantics.o.
1144718334Speter
1144890075Sobrien	* Makefile.in (OBJS): Added ../c-semantics.o.
1144990075Sobrien	(OBJDEPS): Likewise.
1145018334Speter
1145190075Sobrien	* cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to
1145290075Sobrien	../c-common.h.
1145390075Sobrien	(struct stmt_tree): Added comment.
1145490075Sobrien	(current_function_name_declared): Removed.
1145590075Sobrien	(stmts_are_full_exprs_p): Likewise.
1145690075Sobrien	(genrtl_do_pushlevel): Likewise.
1145790075Sobrien	(genrtl_clear_out_block): Likewise.
1145890075Sobrien	(COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h.
1145990075Sobrien	(DECL_ANON_UNION_ELEMS): Likewise.
1146090075Sobrien	(emit_local_var): Likewise.
1146190075Sobrien	(make_rtl_for_local_static): Likewise.
1146290075Sobrien	(do_case): Likewise.
1146390075Sobrien	(expand_stmt): Likewise.
1146490075Sobrien	(genrtl_decl_cleanup): Likewise.
1146590075Sobrien	(c_expand_asm_operands): Likewise.
1146690075Sobrien	(c_expand_return): Likewise.
1146790075Sobrien	(c_expand_start_case): Likewise.
1146818334Speter
1146990075Sobrien	* decl.c (make_rtl_for_local_static): Moved to c-semantics.c.
1147090075Sobrien	(emit_local_var): Likewise.
1147190075Sobrien	(initialize_local_var): Change reference to
1147290075Sobrien	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
1147390075Sobrien	Change reference to stmts_are_full_exprs_p to
1147490075Sobrien	current_stmt_tree->stmts_are_full_exprs_p.
1147590075Sobrien	(push_cp_function_context): Likewise.
1147618334Speter
1147790075Sobrien	* expect.c (expand_throw): Change reference to
1147890075Sobrien	stmts_are_full_exprs_p.
1147918334Speter
1148090075Sobrien	* init.c (build_aggr_init): Change reference to
1148190075Sobrien	stmts_are_full_exprs_p.
1148290075Sobrien	(build_vec_init): Likewise.
1148318334Speter
1148490075Sobrien	* optimize.c (maybe_clone_body): Change reference to
1148590075Sobrien	current_function_name_declared to
1148690075Sobrien	cp_function_chain->name_declared.
1148718334Speter
1148890075Sobrien	* pt.c (instantiate_decl): Change reference to
1148990075Sobrien	current_function_name_declared to
1149090075Sobrien	cp_function_chain->name_declared.
1149118334Speter
1149290075Sobrien	* semantics.c (expand_cond): Moved declaration to c-common.h.
1149390075Sobrien	(genrtl_do_pushlevel): Moved to c-semantics.c.
1149490075Sobrien	(genrtl_clear_out_block): Likewise.
1149590075Sobrien	(genrtl_goto_stmt): Likewise.
1149690075Sobrien	(genrtl_expr_stmt): Likewise.
1149790075Sobrien	(genrtl_decl_stmt): Likewise.
1149890075Sobrien	(gerntl_if_stmt): Likewise.
1149990075Sobrien	(genrtl_while_stmt): Likewise.
1150090075Sobrien	(genrtl_do_stmt): Likewise.
1150190075Sobrien	(genrtl_return_stmt): Likewise.
1150290075Sobrien	(genrtl_for_stmt): Likewise.
1150390075Sobrien	(genrtl_break_stmt): Likewise.
1150490075Sobrien	(genrtl_continue_stmt): Likewise.
1150590075Sobrien	(genrtl_scope_stmt): Likewise.
1150690075Sobrien	(genrtl_switch_stmt): Likewise.
1150790075Sobrien	(genrtl_case_label): Likewise.
1150890075Sobrien	(genrtl_begin_compound_stmt): Likewise.
1150990075Sobrien	(genrtl_finish_compound_stmt): Likewise.
1151090075Sobrien	(genrtl_compound_stmt): Likewise.
1151190075Sobrien	(genrtl_asm_stmt): Likewise.
1151290075Sobrien	(genrtl_decl_cleanup): Likewise.
1151390075Sobrien	(expand_cond): Likewise.
1151490075Sobrien	(expand_stmt): Renamed to ...
1151590075Sobrien	(lang_expand_stmt): ... this.
1151690075Sobrien	(lang_expand_expr_stmt): Initialize.
1151790075Sobrien	(set_current_function_name_declared): Likewise.
1151890075Sobrien	(stmts_are_full_exprs_p): Likewise.
1151990075Sobrien	(current_function_name_declared): Likewise.
1152090075Sobrien	(anon_aggr_type_p): Likewise.
1152190075Sobrien	(do_poplevel): Change reference to
1152290075Sobrien	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
1152390075Sobrien	Change reference to stmts_are_full_exprs_p to
1152490075Sobrien	current_stmt_tree->stmts_are_full_exprs_p.
1152590075Sobrien	(add_tree): Likewise.
1152690075Sobrien	(finish_expr_stmt): Likewise.
1152790075Sobrien	(prep_stmt): Likewise.
1152890075Sobrien	(lang_expand_stmt): Likewise.
1152990075Sobrien	(begin_compound_stmt): Change reference to
1153090075Sobrien	current_function_name_declared to
1153190075Sobrien	cp_function_chain->name_declared and call to
1153290075Sobrien	current_function_name_declared().
1153390075Sobrien	(setup_vtbl_ptr): Likewise.
1153490075Sobrien	(genrtl_do_poplevel): Removed.
1153518334Speter
1153690075Sobrien2000-06-30  Jason Merrill  <jason@redhat.com>
1153718334Speter
1153890075Sobrien	* init.c (init_init_processing): Go back to aligning like
1153990075Sobrien	double_type_node for old ABI.
1154090075Sobrien	(get_cookie_size): Make cookie larger if we get a type that needs
1154190075Sobrien	more alignment.
1154290075Sobrien	(build_vec_delete): Call it.
1154318334Speter
1154490075Sobrien	* typeck.c (qualify_type_recursive): New fn.
1154590075Sobrien	(composite_pointer_type): Use it.
1154690075Sobrien	(build_binary_op): Use composite_pointer_type.
1154752284Sobrien
1154890075Sobrien2000-06-24  Carlos O'Ryan  <coryan@cs.wustl.edu>
1154990075Sobrien	    Jason Merrill  <jason@redhat.com>
1155052284Sobrien
1155190075Sobrien	* typeck.c (check_return_expr): Don't complain about returning
1155290075Sobrien	NULL from operator new if -fcheck-new.
1155390075Sobrien	* cp-tree.h: Declare flag_check_new here.
1155490075Sobrien	* init.c: Not here.
1155518334Speter
1155690075Sobrien2000-06-28  Alex Samuel  <samuel@codesourcery.com>
1155718334Speter
1155890075Sobrien	* mangle.c (find_substitution): Use same_type_p.
1155990075Sobrien	(write_encoding): Don't check for substitutions.
1156018334Speter
1156190075Sobrien2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
1156218334Speter
1156390075Sobrien	* parse.y (expr_no_comma_rangle): New non-terminal.
1156490075Sobrien	(template_parm): Use it for default parameter case.
1156590075Sobrien	(template_arg): Use it.
1156690075Sobrien	(expr_no_commas): Remove commented out undefined extensions.
1156790075Sobrien	* Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r.
1156890075Sobrien	* parse.h, parse.c: Rebuilt.
1156918334Speter
1157090075Sobrien2000-06-30  Mark Mitchell  <mark@codesourcery.com>
1157118334Speter
1157290075Sobrien	* semantics.c (genrtl_asm_stmt): Don't decay input operands here.
1157390075Sobrien	(finish_asm_stmt): Do it here, instead.
1157418334Speter
1157590075Sobrien	* cp-tree.h (ridpointers): Don't declare.
1157690075Sobrien	* decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX.
1157790075Sobrien	(record_builtin_java_type): Likewise.
1157890075Sobrien	(init_decl_processing): Likewise.
1157990075Sobrien	* lex.c: Move inclusion of lex.h.
1158090075Sobrien	(ridpointers): Don't define.
1158190075Sobrien	(init_parse): Initialize ripdointers.  Use CP_RID_MAX instead of
1158290075Sobrien	RID_MAX.
1158390075Sobrien	* lex.h (enum rid): Rename to ...
1158490075Sobrien	(enum cp_rid): ... this.
1158590075Sobrien	(ridpointers): Don't declare.
1158690075Sobrien	* parse.y: Move inclusion of lex.h.
1158750397Sobrien	* parse.c: Regenerated.
1158890075Sobrien	* spew.c: Move inclusion of lex.h.
1158952284Sobrien
1159090075Sobrien	* cp-tree.h (struct language_function): Remove temp_name_counter.
1159190075Sobrien	(temp_name_counter): Remove.
1159290075Sobrien	(get_temp_name): Change prototype.
1159390075Sobrien	(get_guard): New function.
1159490075Sobrien	(get_guard_cond): Likewise.
1159590075Sobrien	(set_guard): Likewise.
1159690075Sobrien	* cvt.c (build_up_reference): Adjust call to get_temp_name.
1159790075Sobrien	* decl.c (expand_static_init): Use get_guard and friends to
1159890075Sobrien	implement guard variables.
1159990075Sobrien	* decl2.c (get_temp_name): Assume that the variables created are
1160090075Sobrien	always static.
1160190075Sobrien	(get_sentry): Rename to ...
1160290075Sobrien	(get_guard): ... this.  Implement new ABI guard	variables.
1160390075Sobrien	(get_guard_bits): New function.
1160490075Sobrien	(get_guard_cond): Likewise.
1160590075Sobrien	(set_guard): Likewise.
1160690075Sobrien	(start_static_initialization_or_destruction): Use them.
1160790075Sobrien	(do_static_initialization): Replace sentry with guard throughout.
1160890075Sobrien	(do_static_destruction): Likewise.
1160990075Sobrien	* init.c (create_temporary_var): Add comment.
1161018334Speter
1161190075Sobrien2000-06-28  Alex Samuel  <samuel@codesourcery.com>
1161218334Speter
1161390075Sobrien	* mangle.c (find_substitution): Use same_type_p.
1161490075Sobrien	(write_encoding): Don't check for substitutions.
1161518334Speter
1161690075Sobrien2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
1161718334Speter
1161890075Sobrien	* parse.y (expr_no_comma_rangle): New non-terminal.
1161990075Sobrien	(template_parm): Use it for default parameter case.
1162090075Sobrien	(template_arg): Use it.
1162190075Sobrien	(expr_no_commas): Remove commented out undefined extensions.
1162290075Sobrien	* Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r.
1162390075Sobrien	* parse.h, parse.c: Rebuilt.
1162418334Speter
1162590075Sobrien2000-06-29  Mark Mitchell  <mark@codesourcery.com>
1162618334Speter
1162790075Sobrien	* cp-tree.h (flag_const_strings): Remove.
1162890075Sobrien	(warn_parentheses): Likewise.
1162990075Sobrien	(warn_format): Likewise.
1163090075Sobrien	(common_type): Likewise.
1163190075Sobrien	(default_conversion): Likewise.
1163290075Sobrien	(build_binary_op): Likewise.
1163390075Sobrien	(cp_build_binary_op): New macro.
1163490075Sobrien	* call.c (build_new_op): Use cp_build_binary_op instead of
1163590075Sobrien	build_binary_op.
1163690075Sobrien	* class.c (build_vtable_entry_ref): Likewise.
1163790075Sobrien	* decl.c (expand_static_init): Likewise.
1163890075Sobrien	(compute_array_index_type): Likewise.
1163990075Sobrien	(build_enumerator): Likewise.
1164090075Sobrien	* decl2.c (delete_sanity): Likewise.
1164190075Sobrien	(start_static_initialization_or_destruction): Likewise.
1164290075Sobrien	* error.c (dump_type_suffix): Likewise.
1164390075Sobrien	* init.c (resolve_offset_ref): Likewise.
1164490075Sobrien	(build_new): Likewise.
1164590075Sobrien	(build_new_1): Likewise.
1164690075Sobrien	(build_vec_delete_1): Likewise.
1164790075Sobrien	(build_vec_init): Likewise.
1164890075Sobrien	(build_delete): Likewise.
1164990075Sobrien	* rtti.c (synthesize_tinfo_fn): Likewise.
1165090075Sobrien	(synthesize_tinfo_var): Likewise.
1165190075Sobrien	* search.c (expand_upcast_fixups): Likewise.
1165290075Sobrien	(fixup_all_virtual_upcast_offsets): Likewise.
1165390075Sobrien	* typeck.c (build_array_ref): Likewise.
1165490075Sobrien	(get_member_function_from_ptrfunc): Likewise.
1165590075Sobrien	(build_binary_op): Add parameter.
1165690075Sobrien	(pointer_int_sum): Use cp_build_binary_op.
1165790075Sobrien	(pointer_diff): Likewise.
1165890075Sobrien	(build_modify_expr): Likewise.
1165990075Sobrien	(get_delta_difference): Likewise.
1166090075Sobrien	(build_ptrmemfunc): Likewise.
1166118334Speter
1166290075Sobrien2000-06-29  Nathan Sidwell  <nathan@codesourcery.com>
1166318334Speter
1166490075Sobrien	* cp-tree.h (SET_DECL_ARTIFICIAL): Remove.
1166590075Sobrien	* decl.c (create_implicit_typedef): Adjust.
1166690075Sobrien	* decl2.c (build_artificial_parm): Adjust.
1166790075Sobrien	* method.c (implicitly_declare_fn): Adjust.
1166890075Sobrien	* pt.c (push_inline_template_parms_recursive): Adjust.
1166990075Sobrien	(process_template_parm): Adjust.
1167090075Sobrien	(overloaded_template_name): Adjust.
1167190075Sobrien	* semantics.c (finish_template_template_parm): Adjust.
1167218334Speter
1167390075Sobrien2000-06-28  Mark Mitchell  <mark@codesourcery.com>
1167418334Speter
1167590075Sobrien	* cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove.
1167690075Sobrien	* class.c (update_vtable_entry_for_fn): Correct logic for deciding
1167790075Sobrien	where to emit thunks.
1167890075Sobrien	(build_vtt): Adjust call to build_vtt_inits.
1167990075Sobrien	(build_vtt_inits): Add parameter to indicate whether or not
1168090075Sobrien	sub-VTTs for virtual bases should be included.  Adjust handling of
1168190075Sobrien	construction vtables.
1168290075Sobrien	(get_matching_base): New function.
1168390075Sobrien	(dfs_build_vtt_inits): Rename to ...
1168490075Sobrien	(dfs_build_secondary_vptr_vtt_inits): Adjust handling of
1168590075Sobrien	construction vtables.
1168690075Sobrien	(dfs_fixup_binfo_vtbls): Likewise.
1168790075Sobrien	(build_ctor_vtbl_groups): Build construction vtables for virtual
1168890075Sobrien	bases, too.
1168990075Sobrien	(accumulate_vtbl_inits): Tweak logic for deciding whether or not
1169090075Sobrien	to build construction vtbls.
1169190075Sobrien	(dfs_accumulate_vtbl_inits): Adjust handling of
1169290075Sobrien	construction vtables.
1169318334Speter
1169490075Sobrien	* pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified
1169590075Sobrien	types correctly.
1169618334Speter
1169790075Sobrien2000-06-27  Mark Mitchell  <mark@codesourcery.com>
1169818334Speter
1169990075Sobrien	* decl.c (grokfndecl): Set DECL_CONTEXT for static functions too.
1170018334Speter
1170190075Sobrien2000-06-26  Nathan Sidwell  <nathan@codesourcery.com>
1170218334Speter
1170390075Sobrien	* search.c (hides): Remove.
1170490075Sobrien	(is_subobject_of_p): Add most_derived parameter. Use
1170590075Sobrien	CANONICAL_BINFO.
1170690075Sobrien	(lookup_field_queue_p): Adjust.
1170790075Sobrien	(lookup_field_r): Adjust.
1170818334Speter
1170990075Sobrien2000-06-26  Nathan Sidwell  <nathan@codesourcery.com>
1171018334Speter
1171190075Sobrien	* decl2.c (handle_class_head): Bash typedefs to the type's main
1171252284Sobrien	decl.
1171318334Speter
1171490075Sobrien2000-06-25  Mark Mitchell  <mark@codesourcery.com>
1171518334Speter
1171690075Sobrien	* cp-tree.h (genrtl_begin_stmt_expr): Rename to ...
1171790075Sobrien	(begin_global_stmt_expr): ... this.
1171890075Sobrien	(genrtl_finish_stmt_expr): Rename to ...
1171990075Sobrien	(finish_global_stmt_expr): ... this.
1172090075Sobrien	* init.c (begin_init_stmts): Adjust calls.
1172190075Sobrien	(finish_init_stmts): Likewise.
1172290075Sobrien	* semantics.c (genrtl_begin_stmt_expr): Rename to ...
1172390075Sobrien	(begin_global_stmt_expr): ... this.
1172490075Sobrien	(genrtl_finish_stmt_expr): Rename to ...
1172590075Sobrien	(finish_global_stmt_expr): ... this.
1172618334Speter
1172790075Sobrien2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1172818334Speter
1172990075Sobrien	* search.c (lookup_member): Fix typo in comment.
1173018334Speter
1173190075Sobrien2000-06-24  Jason Merrill  <jason@redhat.com>
1173218334Speter
1173390075Sobrien	* decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace.
1173490075Sobrien	(push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL.
1173518334Speter
1173690075Sobrien2000-06-24  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1173718334Speter
1173890075Sobrien	* parse.y (complex_direct_notype_declarator): Support global_scope.
1173990075Sobrien	* Makefile.in: Adjust conflict count.
1174018334Speter
1174190075Sobrien2000-06-23  Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
1174218334Speter
1174390075Sobrien	* parse.y (template_arg): Convert TEMPLATE_DECL
1174490075Sobrien	that is a template template parameter to
1174590075Sobrien	TEMPLATE_TEMPLATE_PARM here.
1174618334Speter
1174790075Sobrien	* cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment.
1174890075Sobrien	* cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro.
1174990075Sobrien	(copy_template_template_parm): Adjust prototype.
1175090075Sobrien	* decl.c (grokdeclarator): Remove dead code.
1175190075Sobrien	* pt.c (process_template_parm): Tidy.
1175290075Sobrien	(lookup_template_class): Construct nodes in
1175390075Sobrien	copy_template_template_parm.
1175490075Sobrien	(tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to
1175590075Sobrien	lookup_template_class.  Use TYPE_TI_TEMPLATE.
1175690075Sobrien	* tree.c (copy_template_template_parm): Add NEWARGS
1175790075Sobrien	parameter.
1175890075Sobrien	(mapcar): Adjust call to copy_template_template_parm.
1175990075Sobrien	* typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.
1176090075Sobrien	* method.c (build_template_template_parm_names): Change error
1176190075Sobrien	code to avoid compilation warning.
1176218334Speter
1176390075Sobrien	* gxxint.texi: Document template template parameter
1176490075Sobrien	name mangling.
1176518334Speter
1176690075Sobrien2000-06-21  Alex Samuel  <samuel@codesourcery.com>
1176718334Speter
1176890075Sobrien	* Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o.
1176990075Sobrien	(CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c.
1177090075Sobrien	(cp-demangle.o): New rule.
1177190075Sobrien	(dyn-string.o): Likewise.
1177290075Sobrien	* inc/cxxabi.h (__cxa_demangle): New declaration.
1177318334Speter
1177490075Sobrien2000-06-22  Mark Mitchell  <mark@codesourcery.com>
1177518334Speter
1177690075Sobrien	* cp-tree.h (BV_USE_VCALL_INDEX_P): New macro.
1177790075Sobrien	(BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise.
1177890075Sobrien	(lang_decl_flags): Add generate_with_vtable_p.  Make vcall_offset
1177990075Sobrien	a tree, not an int.
1178090075Sobrien	(THUNK_GENERATE_WITH_VTABLE_P): New macro.
1178190075Sobrien	(make_thunk): Change prototype.
1178290075Sobrien	(emit_thunk): Rename to use_thunk.
1178390075Sobrien	(mangle_thunk): Change prototype.
1178490075Sobrien	* class.c (get_derived_offset): Simplify.
1178590075Sobrien	(copy_virtuals): Clear BV_USE_VCALL_INDEX_P and
1178690075Sobrien	BV_GENERATE_THUNK_WITH_VTABLE_P.
1178790075Sobrien	(build_primary_vtable): Simplify.
1178890075Sobrien	(add_virtual_function): Use BV_FN, rather than TREE_VALUE.
1178990075Sobrien	(dfs_find_base): Remove.
1179090075Sobrien	(update_vtable_entry_for_fn): Correct bug in finding the base
1179190075Sobrien	where a virtual function was first declared.  Figure out whether
1179290075Sobrien	or not to emit a vcall-thunk with the vtables in which it appears.
1179390075Sobrien	Correct logic for deciding whether to use an ordinary thunk, or a
1179490075Sobrien	vcall thunk.
1179590075Sobrien	(finish_struct_1): Remove unnecssary code.
1179690075Sobrien	(build_vtbl_initializer): Use ssize_int for the running counter of
1179790075Sobrien	negative indices.
1179890075Sobrien	(build_vtbl_initializer): Only use vcall thunks where necessary.
1179990075Sobrien	Mark thunks as needing to be emitted with their vtables, or not.
1180090075Sobrien	(build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in
1180190075Sobrien	indices.  Use size_binop.
1180290075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Don't rely on
1180390075Sobrien	BINFO_PRIMARY_MARKED_P here.  Use BV_FN consistently.  Use
1180490075Sobrien	size_binop.
1180590075Sobrien	(build_rtti_vtbl_entries): Adjust call to build_vtable_entry.
1180690075Sobrien	(build_vtable_entry): Mark thunks as needing to be emitted with
1180790075Sobrien	their vtables, or not.
1180890075Sobrien	* decl.c (lang_mark_tree): Mark the vcall_offset in a thunk.
1180990075Sobrien	* decl2.c (mark_vtable_entries): Use use_thunk instead of
1181090075Sobrien	emit_thunk.
1181190075Sobrien	* dump.c (dequeue_and_dump): Remove dead code.  Dump new thunk
1181290075Sobrien	information.
1181390075Sobrien	* error.c (dump_expr): Use BV_FN.
1181490075Sobrien	* mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree,
1181590075Sobrien	not an int.
1181690075Sobrien	* method.c (make_thunk): Likewise.
1181790075Sobrien	(emit_thunk): Rename to use_thunk.  Allow callers to decide
1181890075Sobrien	whether or not to actually emit the thunk.  Adjust for changes in
1181990075Sobrien	representation of vcall offsets.
1182090075Sobrien	* search.c (dfs_get_pure_virtuals): Use BV_FN.
1182190075Sobrien	* semantics.c (emit_associated_thunks): New function.
1182290075Sobrien	(expand_body): Use it.
1182390075Sobrien	* ir.texi: Adjust decriptions of thunks.
1182418334Speter
1182590075Sobrien2000-06-22  Jason Merrill  <jason@redhat.com>
1182618334Speter
1182790075Sobrien	* pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE.
1182890075Sobrien	(tsubst_friend_function): Copy it here.
1182918334Speter
1183090075Sobrien	* decl.c (grok_op_properties): Fix typo.
1183118334Speter
1183290075Sobrien	* decl2.c (delete_sanity): Clarify warning, avoid failure on
1183390075Sobrien	deleting void*.
1183418334Speter
1183590075Sobrien	* pt.c (check_explicit_specialization): Clarify error.
1183618334Speter
1183790075Sobrien	* decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from
1183890075Sobrien	an old OVERLOAD when we're declaring a non-function.
1183990075Sobrien	(pushdecl, destroy_local_var): Check for error_mark_node.
1184090075Sobrien	(warn_extern_redeclared_static): Also bail early if
1184190075Sobrien	we're a CONST_DECL.
1184290075Sobrien	(push_overloaded_decl): Ignore an old error_mark_node.
1184318334Speter
1184490075Sobrien2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1184518334Speter
1184690075Sobrien	* call.c (build_x_va_arg): Check if in a template decl.
1184790075Sobrien	* pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg.
1184818334Speter
1184990075Sobrien2000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1185018334Speter
1185190075Sobrien	* class.c (push_lang_context): TYPE_NAME gets you to the Java
1185290075Sobrien	types DECLs.
1185390075Sobrien	* decl.c (check_goto): Computed gotos assumed OK.
1185418334Speter
1185590075Sobrien2000-06-20  Jason Merrill  <jason@redhat.com>
1185652284Sobrien
1185790075Sobrien	* pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs
1185890075Sobrien	for which we don't need to look for instantiations.
1185918334Speter
1186090075Sobrien2000-06-21  Nathan Sidwell  <nathan@codesourcery.com>
1186118334Speter
1186290075Sobrien	* parse.y (program): Always call finish_translation_unit.
1186390075Sobrien	* parse.c, parse.h: Rebuilt.
1186452284Sobrien
1186590075Sobrien2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
1186618334Speter
1186790075Sobrien	* method.c: Don't include hard-reg-set.h.
1186818334Speter
1186990075Sobrien2000-06-20  Nathan Sidwell  <nathan@codesourcery.com>
1187018334Speter
1187190075Sobrien	* rtti.c (get_base_offset): Cope when vbase field is in a base.
1187218334Speter
1187390075Sobrien2000-06-20  Nathan Sidwell  <nathan@codesourcery.com>
1187418334Speter
1187590075Sobrien	* call.c (build_conditional_expr): Use VOID_TYPE_P.
1187690075Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
1187790075Sobrien	(convert_to_void): Likewise.
1187850397Sobrien	* error.c (dump_expr): Likewise.
1187990075Sobrien	* except.c (complete_ptr_ref_or_void_ptr_p): Likewise.
1188090075Sobrien	* init.c (build_delete): Likewise.
1188190075Sobrien	* method.c (emit_thunk): Likewise.
1188290075Sobrien	* optmize.c (declare_return_variable): Likewise.
1188390075Sobrien	* rtti.c (get_tinfo_decl_dynamic): Likewise.
1188490075Sobrien	(get_typeid): Likewise.
1188590075Sobrien	(build_dynamic_cast_1): Likewise.
1188690075Sobrien	* typeck.c (composite_pointer_type): Likewise.
1188790075Sobrien	(common_type): Likewise.
1188890075Sobrien	(build_indirect_ref): Likewise.
1188990075Sobrien	(build_binary_op): Likewise.
1189090075Sobrien	(build_x_compound_expr): Likewise.
1189190075Sobrien	(check_return_expr): Likewise.
1189290075Sobrien	* typeck2.c (add_exception_specifier): Likewise.
1189352284Sobrien
1189490075Sobrien	* mangle.c (write_method_parms): Use direct comparison for end
1189590075Sobrien	of parmlist.
1189618334Speter
1189790075Sobrien2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
1189852284Sobrien
1189990075Sobrien	* cp-tree.h (genrtl_try_block): Declare function.
1190090075Sobrien	(genrtl_handler): Likewise.
1190190075Sobrien	(genrtl_catch_block): Likewise.
1190290075Sobrien	(genrtl_ctor_stmt): Likewise.
1190390075Sobrien	(genrtl_subobject): Likewise.
1190490075Sobrien	(genrtl_decl_cleanup): Likewise.
1190590075Sobrien	(genrtl_do_poplevel): Likewise.
1190690075Sobrien	(genrtl_do_pushlevel): Likewise.
1190790075Sobrien	(genrtl_clear_out_block): Likewise.
1190890075Sobrien	(genrtl_goto_stmt): Likewise.
1190990075Sobrien	(genrtl_expr_stmt): Likewise.
1191090075Sobrien	(genrtl_decl_stmt): Likewise.
1191190075Sobrien	(genrtl_if_stmt): Likewise.
1191290075Sobrien	(genrtl_while_stmt): Likewise.
1191390075Sobrien	(genrtl_do_stmt): Likewise.
1191490075Sobrien	(genrtl_return_stmt): Likewise.
1191590075Sobrien	(genrtl_for_stmt): Likewise.
1191690075Sobrien	(genrtl_break_stmt): Likewise.
1191790075Sobrien	(genrtl_continue_stmt): Likewise.
1191890075Sobrien	(genrtl_scope_stmt): Likewise.
1191990075Sobrien	(genrtl_switch_stmt): Likewise.
1192090075Sobrien	(genrtl_case_label): Likewise.
1192190075Sobrien	(genrtl_begin_compound_stmt): Likewise.
1192290075Sobrien	(genrtl_finish_compound_stmt): Likewise.
1192390075Sobrien	(genrtl_compound_stmt): Likewise.
1192490075Sobrien	(genrtl_asm_stmt): Likewise.
1192590075Sobrien	(genrtl_named_return_value): Likewise.
1192690075Sobrien	(genrtl_begin_stmt_expr): Likewise.
1192790075Sobrien	(genrtl_finish_stmt_expr): Likewise.
1192890075Sobrien	(finish_for_stmt): Removed first argument.
1192990075Sobrien	(finish_switch_stmt): Likewise.
1193018334Speter
1193190075Sobrien	* semantics.c (genrtl_try_block): Define function.
1193290075Sobrien	(genrtl_handler): Likewise.
1193390075Sobrien	(genrtl_catch_block): Likewise.
1193490075Sobrien	(genrtl_ctor_stmt): Likewise.
1193590075Sobrien	(genrtl_subobject): Likewise.
1193690075Sobrien	(genrtl_decl_cleanup): Likewise.
1193790075Sobrien	(genrtl_do_poplevel): Likewise.
1193890075Sobrien	(genrtl_do_pushlevel): Likewise.
1193990075Sobrien	(genrtl_clear_out_block): Likewise.
1194090075Sobrien	(genrtl_goto_stmt): Likewise.
1194190075Sobrien	(genrtl_expr_stmt): Likewise.
1194290075Sobrien	(genrtl_decl_stmt): Likewise.
1194390075Sobrien	(genrtl_if_stmt): Likewise.
1194490075Sobrien	(genrtl_while_stmt): Likewise.
1194590075Sobrien	(genrtl_do_stmt): Likewise.
1194690075Sobrien	(genrtl_return_stmt): Likewise.
1194790075Sobrien	(genrtl_for_stmt): Likewise.
1194890075Sobrien	(genrtl_break_stmt): Likewise.
1194990075Sobrien	(genrtl_continue_stmt): Likewise.
1195090075Sobrien	(genrtl_scope_stmt): Likewise.
1195190075Sobrien	(genrtl_switch_stmt): Likewise.
1195290075Sobrien	(genrtl_case_label): Likewise.
1195390075Sobrien	(genrtl_begin_compound_stmt): Likewise.
1195490075Sobrien	(genrtl_finish_compound_stmt): Likewise.
1195590075Sobrien	(genrtl_compound_stmt): Likewise.
1195690075Sobrien	(genrtl_asm_stmt): Likewise.
1195790075Sobrien	(genrtl_named_return_value): Likewise.
1195890075Sobrien	(genrtl_begin_stmt_expr): Likewise.
1195990075Sobrien	(genrtl_finish_stmt_expr): Likewise.
1196090075Sobrien	(finish_for_stmt): Removed first argument and generate rtl
1196190075Sobrien	specific code.
1196290075Sobrien	(finish_switch_stmt): Likewise.
1196390075Sobrien	(do_poplevel): Removed generate rtl specific code.
1196490075Sobrien	(do_pushlevel): Likewise.
1196590075Sobrien	(add_tree): Likewise.
1196690075Sobrien	(finish_goto_stmt): Likewise.
1196790075Sobrien	(finish_expr_stmt): Likewise.
1196890075Sobrien	(begin_if_stmt): Likewise.
1196990075Sobrien	(finish_if_stmt_cond): Likewise.
1197090075Sobrien	(finish_then_clause): Likewise.
1197190075Sobrien	(begin_else_clause): Likewise.
1197290075Sobrien	(finish_else_clause): Likewise.
1197390075Sobrien	(finish_if_stmt): Likewise.
1197490075Sobrien	(clear_out_block): Likewise.
1197590075Sobrien	(begin_while_stmt): Likewise.
1197690075Sobrien	(finish_while_stmt_cond): Likewise.
1197790075Sobrien	(finish_while_stmt): Likewise.
1197890075Sobrien	(begin_do_stmt): Likewise.
1197990075Sobrien	(finish_do_body): Likewise.
1198090075Sobrien	(finish_do_stmt): Likewise.
1198190075Sobrien	(finish_return_stmt): Likewise.
1198290075Sobrien	(begin_for_stmt): Likewise.
1198390075Sobrien	(finish_for_init_stmt): Likewise.
1198490075Sobrien	(finish_for_cond): Likewise.
1198590075Sobrien	(finish_for_expr): Likewise.
1198690075Sobrien	(finish_break_stmt): Likewise.
1198790075Sobrien	(finish_continue_stmt): Likewise.
1198890075Sobrien	(begin_switch_stmt): Likewise.
1198990075Sobrien	(finish_switch_cond): Likewise.
1199090075Sobrien	(finish_case_label): Likewise.
1199190075Sobrien	(begin_try_block): Likewise.
1199290075Sobrien	(begin_function_try_block): Likewise.
1199390075Sobrien	(finish_try_block): Likewise.
1199490075Sobrien	(finish_cleanup_try_block): Likewise.
1199590075Sobrien	(finish_cleanup): Likewise.
1199690075Sobrien	(finish_function_try_block): Likewise.
1199790075Sobrien	(finish_handler_sequence): Likewise.
1199890075Sobrien	(finish_function_handler_sequence): Likewise.
1199990075Sobrien	(begin_handler): Likewise.
1200090075Sobrien	(finish_handler_parms): Likewise.
1200190075Sobrien	(begin_catch_block): Likewise.
1200290075Sobrien	(finish_handler): Likewise.
1200390075Sobrien	(begin_compound_stmt): Likewise.
1200490075Sobrien	(finish_compound_stmt): Likewise.
1200590075Sobrien	(finish_asm_stmt): Likewise.
1200690075Sobrien	(finish_label_stmt): Likewise.
1200790075Sobrien	(finish_label_decl): Likewise.
1200890075Sobrien	(finish_subobject): Likewise.
1200990075Sobrien	(finish_decl_cleanup): Likewise.
1201090075Sobrien	(finish_named_return_value): Likewise.
1201190075Sobrien	(begin_stmt_expr): Likewise.
1201290075Sobrien	(finish_stmt_expr): Likewise.
1201318334Speter
1201490075Sobrien	* decl.c (initialize_local_var): Changed call to finish_expr_stmt
1201590075Sobrien	to call genrtl_expr_stmt when appropriate.
1201618334Speter
1201790075Sobrien	* init.c (begin_init_stmts): Changed calls to begin_stmt_expr and
1201890075Sobrien	begin_compound_expr to call genrtl_begin_stmt_expr and
1201990075Sobrien	genrtl_begin_compound_expr when appropriate.
1202090075Sobrien	(finish_init_stmts): Changed calls to finish_compound_expr and
1202190075Sobrien	finish_stmt_expr to call genrtl_finish_compound_expr and
1202290075Sobrien	genrtl_finish_stmt_expr when appropriate.
1202390075Sobrien	(expand_default_init): Changed call to finish_expr_stmt to call
1202490075Sobrien	genrtl_expr_stmt when appropriate.
1202590075Sobrien	(build_vec_init): Likewise.
1202618334Speter
1202790075Sobrien	* parse.y (simple_stmt): Removed first argument from call to
1202890075Sobrien	finish_for_stmt. Removed first argument from call to
1202990075Sobrien	finish_switch_stmt.
1203018334Speter
1203190075Sobrien	* parse.c: Regenerated.
1203218334Speter
1203390075Sobrien	* pt.c (tsubst_expr): Removed first argument from call to
1203490075Sobrien	finish_for_stmt. Removed first argument from call to
1203590075Sobrien	finish_switch_stmt.
1203618334Speter
1203790075Sobrien2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
1203818334Speter
1203990075Sobrien	* cp-tree.h (enum cplus_tree_code): Changed __DUMMY to
1204090075Sobrien	CP_DUMMY_TREE_CODE. Remove #include "c-common.def".
1204118334Speter
1204290075Sobrien	* lex.c (cplus_tree_code_type[]): Removed #include "c-common.def".
1204390075Sobrien	(cplus_tree_code_length[]): Likewise.
1204490075Sobrien	(cplus_tree_code_name[]): Likewise.
1204590075Sobrien	(init_parse): Added call to add_c_tree_codes. Changed
1204690075Sobrien	LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE.
1204718334Speter
1204890075Sobrien2000-06-16  Mark Mitchell  <mark@codesourcery.com>
1204918334Speter
1205090075Sobrien	* cp-tree.h (finish_mem_initializers): Declare.
1205190075Sobrien	(count_trees): Likewise.
1205290075Sobrien	* parse.y (base_init): Use finish_mem_initializers.
1205390075Sobrien	* semantics.c (finish_mem_initializers): New function.
1205418334Speter
1205590075Sobrien	* tree.c (count_trees_r): Prototype.  Use DATA parameter to store
1205690075Sobrien	the number of trees.
1205790075Sobrien	(n_trees): Remove.
1205890075Sobrien	(count_trees): Don't use it.
1205918334Speter
1206090075Sobrien2000-06-15  Jason Merrill  <jason@redhat.com>
1206118334Speter
1206290075Sobrien	* tree.c (count_trees): New debugging function.
1206318334Speter
1206490075Sobrien	* typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P.
1206590075Sobrien	* init.c (build_member_call): Pull out the name of a DECL.
1206618334Speter
1206790075Sobrien	* Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H.
1206890075Sobrien	* semantics.c (expand_body): Push to TV_INTEGRATION here.
1206990075Sobrien	* optimize.c (optimize_function): Not here.
1207090075Sobrien	* pt.c (instantiate_decl): Push to TV_PARSE.
1207118334Speter
1207290075Sobrien2000-06-15  Mark Mitchell  <mark@codesourcery.com>
1207318334Speter
1207490075Sobrien	* cp-tree.h (struct language_function): Remove x_base_init_list
1207590075Sobrien	and x_member_init_list.
1207690075Sobrien	(current_base_init_list): Remove.
1207790075Sobrien	(current_member_init_list): Likewise.
1207890075Sobrien	(setup_vtbl_ptr): Change prototype.
1207990075Sobrien	(emit_base_init): Likewise.
1208090075Sobrien	(expand_member_init): Likewise.
1208190075Sobrien	(reinit_parse_for_function): Remove.
1208290075Sobrien	* decl.c (save_function_data): Don't clear x_base_init_list and
1208390075Sobrien	x_member_init_list.
1208490075Sobrien	(mark_language_function): Don't mark them.
1208590075Sobrien	* init.c (perform_member_init): Tweak comment.
1208690075Sobrien	(sort_member_init): Take the list of initializers as an argument.
1208790075Sobrien	(sort_base_init): Likewise.
1208890075Sobrien	(emit_base_init): Likewise.
1208990075Sobrien	(expand_member_init): Return the initializer.  Don't use global
1209090075Sobrien	variables.
1209190075Sobrien	* lex.c (reinit_parse_for_function): Remove.
1209290075Sobrien	* method.c (build_template_parm_names): Correct substitution.
1209390075Sobrien	(do_build_copy_constructor): Don't use current_member_init_list
1209490075Sobrien	and current_base_init_list.
1209590075Sobrien	(synthesize_method): Likewise.
1209690075Sobrien	* parse.y (base_init): Split mem-initializers into
1209790075Sobrien	base-initializers and field-initializers.
1209890075Sobrien	(member_init_list): Build up the list here.
1209990075Sobrien	(member_init): Return the initializer.
1210090075Sobrien	(fn.depfn): Don't use reinit_parse_for_function.
1210190075Sobrien	* parse.c: Regenerated.
1210290075Sobrien	* pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the
1210390075Sobrien	ERROR_MARK.
1210490075Sobrien	(tsubst_expr): Don't use current_member_init_list
1210590075Sobrien	and current_base_init_list.
1210690075Sobrien	(tsubst_expr_values): Rename to ...
1210790075Sobrien	(tsubst_initializer_list): ... this.  Use convert_from_reference.
1210890075Sobrien	* semantics.c (setup_vtbl_ptr): Don't use current_member_init_list
1210990075Sobrien	and current_base_init_list.
1211090075Sobrien	(begin_function_definition): Don't call reinit_parse_for_function.
1211118334Speter
1211290075Sobrien	* dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors.
1211318334Speter
1211490075Sobrien	* error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE
1211552284Sobrien	correctly.
1211652284Sobrien
1211790075Sobrien	* cp-tree.h (DECL_PENDING_INLINE_P): Relax checking.
1211818334Speter
1211990075Sobrien2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
1212018334Speter
1212190075Sobrien	* cp-tree.h (IF_COND): Move to c-common.h.
1212290075Sobrien	(THEN_CLAUSE): Likewise.
1212390075Sobrien	(ELSE_CLAUSE): Likewise.
1212490075Sobrien	(WHILE_COND): Likewise.
1212590075Sobrien	(WHILE_BODY): Likewise.
1212690075Sobrien	(DO_COND): Likewise.
1212790075Sobrien	(DO_BODY): Likewise.
1212890075Sobrien	(RETURN_EXPR): Likewise.
1212990075Sobrien	(EXPR_STMT_EXPR): Likewise.
1213090075Sobrien	(FOR_INIT_STMT): Likewise.
1213190075Sobrien	(FOR_COND): Likewise.
1213290075Sobrien	(FOR_EXPR): Likewise.
1213390075Sobrien	(FOR_BODY): Likewise.
1213490075Sobrien	(SWITCH_COND): Likewise.
1213590075Sobrien	(SWITCH_BODY): Likewise.
1213690075Sobrien	(CASE_LOW): Likewise.
1213790075Sobrien	(CASE_HIGH): Likewise.
1213890075Sobrien	(GOTO_DESTINATION): Likewise.
1213990075Sobrien	(COMPOUND_BODY): Likewise.
1214090075Sobrien	(ASM_CV_QUAL): Likewise.
1214190075Sobrien	(ASM_STRING): Likewise.
1214290075Sobrien	(ASM_OUTPUTS): Likewise.
1214390075Sobrien	(ASM_INPUTS): Likewise.
1214490075Sobrien	(ASM_CLOBBERS): Likewise.
1214590075Sobrien	(DECL_STMT_DECL): Likewise.
1214690075Sobrien	(STMT_EXPR_STMT): Likewise.
1214790075Sobrien	(LABEL_STMT_LABEL): Likewise.
1214890075Sobrien	(SCOPE_BEGIN_P): Likewise.
1214990075Sobrien	(SCOPE_END_P): Likewise.
1215090075Sobrien	(SCOPE_STMT_BLOCK): Likewise.
1215190075Sobrien	(SCOPE_NULLIFIED_P): Likewise.
1215290075Sobrien	(SCOPE_NO_CLEANUPS_P): Likewise.
1215390075Sobrien	(SCOPE_PARTIAL_P): Likewise.
1215490075Sobrien	(ASM_VOLATILE_P): Likewise.
1215590075Sobrien	(STMT_LINENO): Likewise.
1215690075Sobrien	(STMT_LINENO_FOR_FN_P): Likewise.
1215752284Sobrien
1215890075Sobrien	* cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
1215990075Sobrien	ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
1216090075Sobrien	FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
1216190075Sobrien	CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
1216290075Sobrien	SCOPE_STMT, CASE_LABEL, STMT_EXPR.
1216318334Speter
1216490075Sobrien	* Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def.
1216518334Speter
1216690075Sobrien	* Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def.
1216790075Sobrien	(cc1plus$(exeext)): Added $(srcdir)/c-common.def.
1216818334Speter
1216990075Sobrien	* lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'.
1217090075Sobrien	(cplus_tree_code_length[]): Added '#include "c-common.def"'.
1217190075Sobrien	(cplus_tree_code_name[]): Added '#include "c-common.def"'.
1217218334Speter
1217390075Sobrien2000-06-14  Mark Mitchell  <mark@codesourcery.com>
1217418334Speter
1217590075Sobrien	* cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro.
1217690075Sobrien	* class.c (dfs_find_final_overrider): Set it appropriately.
1217790075Sobrien	(dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to
1217890075Sobrien	avoid unneeded secondary vptrs.
1217918334Speter
1218090075Sobrien2000-06-13  Jakub Jelinek  <jakub@redhat.com>
1218118334Speter
1218290075Sobrien	* class.c (build_secondary_vtable): Set DECL_USER_ALIGN.
1218390075Sobrien	(check_bitfield_decl, check_field_decl): Likewise.
1218490075Sobrien	(build_vtbl_or_vbase_field, build_base_field): Likewise.
1218590075Sobrien	(layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN.
1218690075Sobrien	* decl.c (record_unknown_type): Set TYPE_USER_ALIGN.
1218790075Sobrien	(xfer_tag, finish_enum): Likewise.
1218890075Sobrien	* decl2.c (finish_builtin_type): Likewise.
1218990075Sobrien	* init.c (init_init_processing): Likewise.
1219090075Sobrien	* pt.c (instantiate_class_template): Likewise.
1219190075Sobrien	* rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN.
1219290075Sobrien	* cp-tree.h (struct lang_type): Add user_align member.
1219390075Sobrien	(CLASSTYPE_USER_ALIGN): Define.
1219418334Speter
1219590075SobrienTue Jun 13 15:48:03 2000  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
1219618334Speter
1219790075Sobrien	* Make-lang.in (c++.install-common): Install g++-cross in
1219890075Sobrien	$(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as
1219990075Sobrien	$(target_alias)-g++ and $(target_alias)-c++.
1220018334Speter
1220190075Sobrien2000-06-12  Mark Mitchell  <mark@codesourcery.com>
1220218334Speter
1220390075Sobrien	* class.c (vcall_offset_data_s): Add last_init and fns.
1220490075Sobrien	(overrides): Rename to same_signature_p.
1220590075Sobrien	(dfs_find_final_overrider): Adjust accordingly.
1220690075Sobrien	(mark_overriders): Likewise.
1220790075Sobrien	(warn_hidden): Likewise.
1220890075Sobrien	(build_vtbl_initializer): Reorganize machinery for building things
1220990075Sobrien	at negative offsets.
1221090075Sobrien	(build_vcall_and_vbase_vtbl_entries): Likewise.
1221190075Sobrien	(build_vbase_offset_vtbl_entries): Likewise.
1221290075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Correct order of vcall
1221390075Sobrien	offset entries.  Do not create two entries for functions with the
1221490075Sobrien	same signature.
1221590075Sobrien	(build_vcall_offset_vtbl_entries): Initialize vod->fns.
1221690075Sobrien	(build_rtti_vtbl_entries): Reorganize machinery for building things
1221790075Sobrien	at negative offsets.
1221818334Speter
1221990075Sobrien	* optimize.c (expand_call_inline): Don't recurse into the code
1222090075Sobrien	used to initialize the parameters more than once.
1222118334Speter
1222290075Sobrien2000-06-11  Mark Mitchell <mark@codesourcery.com>
1222352284Sobrien
1222490075Sobrien	* mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment.
1222590075Sobrien	(is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here.
1222690075Sobrien	(find_substitution): Only use the `Sa' substitution for
1222790075Sobrien	std::allocator, not instantiations of it.
1222890075Sobrien	(write_template_prefix): Move comment.  Only use a TREE_LIST to
1222990075Sobrien	represent substitutions for a member template.
1223090075Sobrien	(write_array_type): Mangle array dimensions correctly.
1223190075Sobrien	* optimize.c (maybe_clone_body): Copy more information from the
1223290075Sobrien	cloned function.
1223390075Sobrien	* pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE
1223490075Sobrien	on the regenerated declaration.
1223518334Speter
1223690075Sobrien2000-06-11  Chip Salzenberg  <chip@valinux.com>
1223790075Sobrien	    Mark Mitchell <mark@codesourcery.com>
1223818334Speter
1223990075Sobrien	* class.c (build_vtable): Clarify comment.
1224090075Sobrien	(build_ctor_vtbl_group): Pass the most derived type to
1224190075Sobrien	build_vtable.
1224218334Speter
1224390075Sobrien2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1224418334Speter
1224590075Sobrien	* decl2.c (compare_options): Don't needlessly cast away const-ness.
1224618334Speter
1224790075Sobrien2000-06-10  Mark Mitchell  <mark@codesourcery.com>
1224818334Speter
1224990075Sobrien	* decl.c (add_binding): Handle duplicate declarations of external
1225090075Sobrien	variables.
1225118334Speter
1225290075Sobrien2000-06-09  Chip Salzenberg  <chip@valinux.com>
1225390075Sobrien	    Mark Mitchell <mark@codesourcery.com>
1225418334Speter
1225590075Sobrien	* mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an
1225690075Sobrien	argument.
1225790075Sobrien	(write_signed_number): New macro.
1225890075Sobrien	(write_unsigned_number): Likewise.
1225990075Sobrien	(write_source_name): Use them.
1226090075Sobrien	(write_number): Handle signed and unsigned values.
1226190075Sobrien	(write_integer_cst): Use tree_int_cst_sgn, and use
1226290075Sobrien	write_unsigned_number or write_signed_number as appropriate.
1226390075Sobrien	(write_discriminator): Use write_unsigned_number or
1226490075Sobrien	write_signed_number as appropriate.
1226590075Sobrien	(write_template_arg_literal): Likewise.
1226690075Sobrien	(write_array_type): Use tree_low_cst.
1226790075Sobrien	(write_template_parm):  Use write_unsigned_number or
1226890075Sobrien	write_signed_number as appropriate.
1226990075Sobrien	(write_substitution): Adjust call to write_number.
1227090075Sobrien	(write_type): Get the TYPE_MAIN_VARIANT before mangling it.
1227190075Sobrien	(write_expression): Handle non-type template arguments of
1227290075Sobrien	reference type correctly.
1227390075Sobrien	(mangle_thunk): Use write_signed_number.
1227418334Speter
1227590075Sobrien2000-06-09  Chip Salzenberg  <chip@valinux.com>
1227618334Speter
1227790075Sobrien	* mangle.c (find_substition): Don't mangle objects with typename
1227890075Sobrien	substitutions (e.g. "cin" as "Si").
1227918334Speter
1228090075Sobrien2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
1228118334Speter
1228290075Sobrien	* call.c (add_candidate): Use ggc_alloc_cleared.
1228390075Sobrien	* decl.c (lookup_label): Likewise.
1228490075Sobrien	* lex.c (retrofit_lang_decl): Likewise.
1228518334Speter
1228690075Sobrien2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
1228718334Speter
1228890075Sobrien	* semantics.c (expand_body): Push to TV_EXPAND.
1228990075Sobrien	* optimize.c (optimize_function): Push to TV_INTEGRATION.
1229090075Sobrien	* decl.c (start_function): Always call announce_function.
1229118334Speter
1229290075Sobrien	* tinfo2.cc: Just declare abort.
1229318334Speter
1229490075Sobrien2000-06-09  Gabriel Dos Reis  <gdr@codesourcery.com>
1229518334Speter
1229690075Sobrien	* lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @'
1229790075Sobrien	whenever @ is a symbolic name.
1229818334Speter
1229990075Sobrien2000-06-08  Jakub Jelinek  <jakub@redhat.com>
1230018334Speter
1230190075Sobrien	* method.c (make_thunk): Clear DECL_VTT_PARM in thunk.
1230218334Speter
1230390075Sobrien2000-06-07  Mark Mitchell  <mark@codesourcery.com>
1230418334Speter
1230590075Sobrien	* decl.c (pushdecl): Look up functions by DECL_NAME, not
1230690075Sobrien	DECL_ASSEMBLER_NAME.
1230718334Speter
1230890075Sobrien2000-06-06  Mark Mitchell  <mark@codesourcery.com>
1230918334Speter
1231090075Sobrien	* decl2.c (c_language): Define.
1231118334Speter
1231290075Sobrien2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
1231318334Speter
1231490075Sobrien	* lex.c (lang_init_options): Tweak.
1231518334Speter
1231690075Sobrien	* decl2.c: Remove #inclusion of diagnostic.h
1231790075Sobrien	(lang_decode_option): Move diagnostic formatting options to
1231890075Sobrien	toplevel.
1231918334Speter
1232090075Sobrien	* lang-options.h: Remove documentation for diagnostic options.
1232118334Speter
1232290075Sobrien	* Makefile.in (lex.o): Depends upon diagnostic.h
1232318334Speter
1232490075Sobrien2000-06-06  Mark Mitchell  <mark@codesourcery.com>
1232518334Speter
1232690075Sobrien	* decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have
1232790075Sobrien	the same DECL_RESULT, it's not a redefinition.
1232890075Sobrien	* pt.c (tsubst_decl): Remove code to handle illegal
1232950397Sobrien	specializations.
1233018334Speter
1233190075Sobrien2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
1233218334Speter
1233390075Sobrien	* exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c
1233418334Speter
1233590075Sobrien2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
1233618334Speter
1233790075Sobrien	* search.c (maybe_suppress_debug_info): Don't check
1233890075Sobrien	CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set.
1233918334Speter
1234090075Sobrien	* pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION
1234190075Sobrien	here if extern_p.
1234218334Speter
1234390075Sobrien	Remember instantiation context in deferred instantiations.
1234490075Sobrien	* cp-tree.h (struct tinst_level): Remove.
1234590075Sobrien	(TINST_DECL, TINST_LINE, TINST_FILE): New macros.
1234690075Sobrien	* pt.c (current_tinst_level): Now a tree.
1234790075Sobrien	(print_template_context, push_tinst_level, pop_tinst_level,
1234890075Sobrien	tinst_for_decl): Adjust.
1234990075Sobrien	(reopen_tinst_level): New fn.
1235090075Sobrien	(init_pt): Register current_tinst_level as a root.
1235190075Sobrien	(add_pending_template): Put current_tinst_level in TREE_PURPOSE
1235290075Sobrien	of the pending templates list.
1235390075Sobrien	(instantiate_pending_templates): Adjust.  Call reopen_tinst_level.
1235490075Sobrien	* lex.c (extract_interface_info): Adjust.
1235590075Sobrien	* decl2.c (warn_if_unknown_interface): Adjust.
1235618334Speter
1235790075Sobrien2000-06-05  Mark Mitchell  <mark@codesourcery.com>
1235818334Speter
1235990075Sobrien	* class.c (indirect_primary_base_p): New function.
1236090075Sobrien	(determine_primary_base): Use it.
1236118334Speter
1236290075Sobrien2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
1236318334Speter
1236490075Sobrien	Update new-abi dynamic cast algorithm.
1236590075Sobrien	* tinfo.cc (__class_type_info::__dyncast_result): Add
1236690075Sobrien	whole_details. Adjust constructor.
1236790075Sobrien	(__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags.
1236890075Sobrien	Avoid unnecessary searching.
1236990075Sobrien	(__dynamic_cast): Adjust for __dyncast_result::whole_details.
1237018334Speter
1237190075SobrienMon Jun  5 06:48:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1237218334Speter
1237390075Sobrien	* decl.c (init_decl_processing): Don't call record_component_aliases.
1237490075Sobrien	* tree.c (build_cplus_array_type_1): Likewise.
1237518334Speter
1237690075Sobrien2000-06-04  Mark Mitchell  <mark@codesourcery.com>
1237718334Speter
1237890075Sobrien	* ir.texi: Correct typo.
1237990075Sobrien	* mangle.c (write_expression): Handle non-type template arguments
1238090075Sobrien	with reference type.
1238190075Sobrien	* method.c (build_overload_value): Likewise.
1238290075Sobrien	* pt.c (convert_nontype_argument): Explicitly represent conversion
1238390075Sobrien	to a reference with an ADDR_EXPR.
1238490075Sobrien	(unify): Always unify arguments in left-to-right order.
1238518334Speter
1238690075Sobrien2000-06-03  Alex Samuel    <samuel@codesourcery.com>
1238790075Sobrien	    Mark Mitchell  <mark@codesourcery.com>
1238818334Speter
1238990075Sobrien	* Make-lang.in (CXX_SRCS): Add mangle.c.
1239090075Sobrien	* Makefile.in (CXX_OBJS): Add mangle.o.
1239190075Sobrien	(mangle.o): New rule.
1239218334Speter
1239390075Sobrien	* class.c (local_classes): New variable.
1239490075Sobrien	* class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI.
1239590075Sobrien	(get_vtt_name): Use mangle_vtt_name for new ABI.
1239690075Sobrien	(init_class_processing): Initialize local_classes.
1239790075Sobrien	(build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI.
1239890075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER.
1239990075Sobrien	(std_identifier): New macro.
1240090075Sobrien	(DECL_VOLATILE_MEMFUNC_P): New macro.
1240190075Sobrien	(DECL_NAMESPACE_STD_P): Likewise.
1240290075Sobrien	(local_classes): Declare.
1240390075Sobrien	(get_mostly_instantiated_function_type): Declare.
1240490075Sobrien	(init_mangle): Declare.
1240590075Sobrien	(mangle_decl): Likewise.
1240690075Sobrien	(mangle_type_string): Likewise.
1240790075Sobrien	(mangle_type): Likewise.
1240890075Sobrien	(mangle_typeinfo_for_type): Likewise.
1240990075Sobrien	(mangle_typeinfo_string_for_type): Likewise.
1241090075Sobrien	(mangle_vtbl_for_type): Likewise.
1241190075Sobrien	(mangle_vtt_for_type): Likewise.
1241290075Sobrien	(mangle_ctor_vtbl_for_type): Likewise.
1241390075Sobrien	(mangle_thunk): Likewise.
1241490075Sobrien	(mangle_conv_op_name_for_type): Likewise.
1241590075Sobrien	(mangle_guard_variable): Likewise.
1241690075Sobrien	* decl.c (pushtag): Keep track of local classes.
1241790075Sobrien	(initialize_predefined_identifiers): Initialize std_identifier.
1241890075Sobrien	(init_decl_processing): Use std_identifier.
1241990075Sobrien	(start_decl): Don't treat instantiations as specializations.
1242090075Sobrien	(grokdeclarator): Likewise.
1242190075Sobrien	(grokvardecl): Call mangle_decl for new ABI.  Only set mangled
1242290075Sobrien	name for fully-instantiated templates.
1242390075Sobrien	* decl2.c (grokclassfn): Use set_mangled_name_for_decl for
1242490075Sobrien	destructors with the new ABI.
1242590075Sobrien	(finish_static_data_member_decl): Use mangle_decl under the new ABI.
1242690075Sobrien	(grokfield): Use mangle_type for new ABI.
1242790075Sobrien	(grokoptypename): Use mangle_conv_op_for_type for new ABI.
1242890075Sobrien	(get_sentry): Use mangle_guard_variable for new ABI.
1242990075Sobrien	(start_static_initialization_or_destruction): Likewise.
1243090075Sobrien	* expr.c (extract_aggr_init): Remove.
1243190075Sobrien	(extract_scalar_init): Likewise.
1243290075Sobrien	(extract_init): Remove #if 0'd code.
1243390075Sobrien	* mangle.c: New function.
1243490075Sobrien	* method.c (build_mangled_name): Assert not flag_new_abi.
1243590075Sobrien	(build_static_name): Likewise.
1243690075Sobrien	(build_decl_overload_real): Likewise.
1243790075Sobrien	(build_typename_overload): Likewise.
1243890075Sobrien	(build_overload_with_type): Likewise.
1243990075Sobrien	(build_overload_name): Likewise.
1244090075Sobrien	(get_ctor_vtbl_name): Likewise.
1244190075Sobrien	(start_squangling): Likewise.
1244290075Sobrien	(get_id_2): Likewise.
1244390075Sobrien	(set_mangled_name_for_decl): Call mangle_decl for new ABI.
1244490075Sobrien	(init_method): Call init_mangle for new ABI.
1244590075Sobrien	(make_thunk): Call mangle_thunk for new ABI.
1244690075Sobrien	* operators.def: Correct new ABI manglings for the `%' operator.
1244790075Sobrien	Add `::' operator.
1244890075Sobrien	* pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and
1244990075Sobrien	DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL.
1245090075Sobrien	(lookup_template_class): Call mangle_decl for new ABI.
1245190075Sobrien	(get_mostly_instantiated_function_type): New function.
1245290075Sobrien	(set_mangled_name_for_template_decl): Use it.
1245390075Sobrien	(tsubst_decl): Use set_mangled_name_for_decl for destructors with
1245490075Sobrien	the new ABI.  Use mangle_conv_op_name_for_type for instantiated
1245590075Sobrien	conversion op names.
1245690075Sobrien	* rtti.c (tinfo_name): Call mangle_type_string for new ABI.
1245790075Sobrien	(get_tinfo_decl): Call mangle_typeinfo_for_type for new	ABI.
1245890075Sobrien	(tinfo_base_init):  Likewise.  Mangle typeinfo string name with
1245990075Sobrien	mangle_typeinfo_string_for_type.
1246018334Speter
1246190075Sobrien2000-06-03  Mark Mitchell  <mark@codesourcery.com>
1246218334Speter
1246390075Sobrien	* cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment.
1246490075Sobrien	(INNERMOST_TEMPLATE_ARGS): New macro.
1246590075Sobrien	(innermost_args): Remove.
1246690075Sobrien	(get_innermost_template_args): New function.
1246790075Sobrien	* decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS.
1246890075Sobrien	* error.c (dump_function_decl): Be caution when using
1246990075Sobrien	most_general_template.
1247090075Sobrien	* method.c (build_template_parm_names):  Use
1247190075Sobrien	INNERMOST_TEMPLATE_ARGS.
1247290075Sobrien	* pt.c (add_to_template_args): Tidy comment
1247390075Sobrien	(get_innermost_template_args): New function.
1247490075Sobrien	(check_explicit_specialization): Clear DECL_INITIAL for a new
1247590075Sobrien	specialization.
1247690075Sobrien	(process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS.
1247790075Sobrien	Tidy.
1247890075Sobrien	(push_template_decl): Always register specializations of the most
1247990075Sobrien	general template.
1248090075Sobrien	(convert_template_argument): Use INNERMOST_TEMPLATE_ARGS.
1248190075Sobrien	(coerce_template_parms): Likewise.
1248290075Sobrien	(lookup_template_class): Likewise.
1248390075Sobrien	(innermost_args): Remove.
1248490075Sobrien	(tsubst_decl): Use INNERMOST_TEMPLATE_ARGS.
1248590075Sobrien	(tsubst_decl): Handle tricky specializations.  Use
1248690075Sobrien	get_innermost_template_args.
1248790075Sobrien	(instantiate_template): Simplify handling of partial
1248852284Sobrien	instantiations.
1248990075Sobrien	(get_class_bindings): Use INNERMOST_TEMPLATE_ARGS.
1249090075Sobrien	(most_general_template): Reimplement, in a more straightforward
1249190075Sobrien	manner.
1249290075Sobrien	(regenerate_decl_from_template): Tweak formatting.  Use
1249390075Sobrien	TMPL_ARGS_DEPTH for clarity.
1249490075Sobrien	(set_mangled_name_for_template_decl): Use INNERMOST_ARGS.
1249518334Speter
1249690075Sobrien	* dump.c (dequeue_and_dump): Dump information about thunks.
1249718334Speter
1249890075Sobrien2000-06-01  Richard Henderson  <rth@cygnus.com>
1249918334Speter
1250090075Sobrien	* decl.c (init_decl_processing): Set lang_get_alias_set first thing.
1250118334Speter
1250290075Sobrien2000-06-01  Richard Henderson  <rth@cygnus.com>
1250318334Speter
1250490075Sobrien	* decl2.c (unsupported_options): Fix typo, make const.
1250590075Sobrien	(lang_decode_option): Fix bsearch argument order.
1250618334Speter
1250790075Sobrien2000-06-01  Mark Mitchell  <mark@codesourcery.com>
1250818334Speter
1250990075Sobrien	* init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE
1251090075Sobrien	on FIELD_DECLs.
1251118334Speter
1251290075SobrienWed May 31 14:09:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1251318334Speter
1251490075Sobrien	* cp-tree.h (c_get_alias_set): Deleted.
1251590075Sobrien	* Makefile.in (decl.o): Include ../expr.h.
1251690075Sobrien	* decl.c (expr.h): Include.
1251790075Sobrien	(init_decl_processing): Call record_component_aliases for arrays.
1251890075Sobrien	(grokdeclarator): Likewise.
1251990075Sobrien	Set TREE_ADDRESSABLE for fields that aren't bitfields.
1252090075Sobrien	* tree.c (build_cplus_array_type_1): Call record_component_aliases.
1252118334Speter
1252290075Sobrien2000-05-31  Mark Mitchell  <mark@codesourcery.com>
1252318334Speter
1252490075Sobrien	Remove guiding declaration support.
1252590075Sobrien	* cp/cp-tree.h (flag_dump_translation_unit): Make it const.
1252690075Sobrien	(flag_guiding_decls): Remove.
1252790075Sobrien	* call.c (build_user_type_conversion_1): Remove support for
1252890075Sobrien	guiding decls.
1252950397Sobrien	(build_new_function_call): Likewise.
1253050397Sobrien	(build_new_op): Likewise.
1253150397Sobrien	(build_new_method_call): Likewise.
1253290075Sobrien	* decl.c (start_function): Likewise.
1253390075Sobrien	* friend.c (is_friend): Likewise.
1253490075Sobrien	(do_friend): Likewise.
1253590075Sobrien	* decl2.c ((flag_dump_translation_unit): Make it const.
1253690075Sobrien	(flag_guiding_decls): Remove.
1253790075Sobrien	(unsupported_options): New variable
1253890075Sobrien	(compare_options): New function.
1253990075Sobrien	(lang_decode_option): Use them.
1254052284Sobrien
1254190075Sobrien	* decl.c (build_cp_library_fn): Set DECL_CONTEXT.
1254252284Sobrien
1254390075Sobrien	* method.c (mangle_expression): Adjust test for legal expression
1254452284Sobrien	operators.
1254518334Speter
1254690075Sobrien	* pt.c (instantiate_decl): Save and restore the local
1254790075Sobrien	specializations list.
1254818334Speter
1254990075Sobrien2000-05-30  Jason Merrill  <jason@decepticon.cygnus.com>
1255052284Sobrien
1255190075Sobrien	* decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING.
1255218334Speter
1255390075Sobrien2000-05-30  Mark Mitchell  <mark@codesourcery.com>
1255418334Speter
1255590075Sobrien	* call.c (add_template_candidate_real): Handle member template
1255690075Sobrien	constructors for classes with virtual bases.
1255790075Sobrien	(build_user_type_conversion_1): Use in_charge_arg_for_name.
1255890075Sobrien	(build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P.
1255918334Speter
1256090075Sobrien	* ir.texi: Update thunk documentation.
1256118334Speter
1256290075Sobrien	* call.c (joust): Fix handling of overloaded builtin operators.
1256318334Speter
1256490075Sobrien2000-05-30  Zack Weinberg  <zack@wolery.cumb.org>
1256518334Speter
1256690075Sobrien	* cp-tree.h (DECL_ANTICIPATED): New macro.
1256790075Sobrien	Document new use of DECL_LANG_FLAG_7.
1256890075Sobrien	* decl.c (builtin_function): Set DECL_ANTICIPATED on builtins
1256990075Sobrien	in the user namespace.
1257090075Sobrien	* lex.c (do_identifier): If the identifier's declaration has
1257190075Sobrien	DECL_ANTICIPATED on, it has not yet been declared.  But do not
1257290075Sobrien	replace it with an ordinary implicit declaration.
1257318334Speter
1257490075Sobrien	* tinfo2.cc: Include stdlib.h.
1257518334Speter
1257690075Sobrien2000-05-29  Mark Mitchell  <mark@codesourcery.com>
1257718334Speter
1257890075Sobrien	* cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro.
1257990075Sobrien	* class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not
1258090075Sobrien	CLASSTYPE_ALIGN.
1258118334Speter
1258290075Sobrien2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
1258318334Speter
1258490075Sobrien	* decl2.c (lang_decode_option): Use skip_leading_substring instead
1258590075Sobrien	of plain strncmp.
1258618334Speter
1258790075Sobrien2000-05-28  Alexandre Oliva  <aoliva@cygnus.com>
1258818334Speter
1258990075Sobrien	* operators.def (<?): Duplicated, should have been...
1259090075Sobrien	(>?): this.  Fixed.
1259118334Speter
1259290075Sobrien2000-05-27  Alex Samuel    <samuel@codesourcery.com>
1259390075Sobrien	    Mark Mitchell  <mark@codesourcery.com>
1259418334Speter
1259590075Sobrien	* cp-tree.h (ansi_opname): Make it a macro.
1259690075Sobrien	(ansi_assopname): Likewise.
1259790075Sobrien	(struct lang_decl_flags): Add assignment_operator_p.
1259890075Sobrien	(struct lang_decl): Add operator_code.
1259990075Sobrien	(DECL_VTT_PARM): Adjust.
1260090075Sobrien	(DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an
1260190075Sobrien	overloaded operator.
1260290075Sobrien	(SET_OVERLOADED_OPERATOR_CODE): New macro.
1260390075Sobrien	(DECL_ASSIGNMENT_OPERATOR_P): New macro.
1260490075Sobrien	(DECL_ARRAY_DELETE_OPERATOR_P): Adjust.
1260590075Sobrien	(opname_tab): Remove.
1260690075Sobrien	(assignop_tab): Likewise.
1260790075Sobrien	(operator_name_info_t): New type.
1260890075Sobrien	(operator_name_info): New variable.
1260990075Sobrien	(assignment_operator_name_info): Likewise.
1261090075Sobrien	(build_cp_library_fn): Remove declaration.
1261190075Sobrien	(push_cp_library_fn): Likewise.
1261290075Sobrien	(operator_name_string): Likewise.
1261390075Sobrien	(build_decl_overload): Likewise.
1261490075Sobrien	* call.c (print_z_candidates): Simplify.
1261590075Sobrien	(build_object_call): Adjust usage of ansi_opname.  Use
1261690075Sobrien	DECL_OVERLOADED_OPERATOR_P.
1261790075Sobrien	(op_error): Adjust operator name lookup.
1261890075Sobrien	(build_conditional_expr): Adjust usage of ansi_opname.
1261950397Sobrien	(build_new_op): Likewise.
1262090075Sobrien	(build_op_delete_call): Likewise.
1262190075Sobrien	(build_over_call): Likewise.
1262290075Sobrien	(joust): Use DECL_OVERLOADED_OPERATOR_P.
1262390075Sobrien	* decl.c (duplicate_decls): Copy operator_code.
1262490075Sobrien	(init_decl_processing): Adjust parameters to push_cp_library_fn.
1262590075Sobrien	(builtin_function): Adjust parameters to build_library_fn_1.
1262690075Sobrien	(build_library_fn_1): Accept an overloaded operator code.
1262790075Sobrien	(build_library_fn): Pass ERROR_MARK.
1262890075Sobrien	(build_cp_library_fn): Accept an overloaded operator code.
1262990075Sobrien	(push_cp_library_fn): Likewise.
1263090075Sobrien	(grokfndecl): Tweak.
1263190075Sobrien	(grokdeclarator): Simplify code to compute names of overloaded
1263290075Sobrien	operators.  Adjust use of ansi_opname.
1263390075Sobrien	(ambi_op_p): Work on tree_codes, not identifiers.
1263490075Sobrien	(unary_op_p): Likewise.
1263590075Sobrien	(grok_op_properties): Likewise.
1263690075Sobrien	(start_function): Use DECL_OVERLOADED_OPERATOR_P.
1263790075Sobrien	(lang_mark_tree): Don't try to mark the operator_code.
1263890075Sobrien	* decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P.
1263990075Sobrien	* error.c (dump_decl): Remove special handling for operator
1264090075Sobrien	names.
1264190075Sobrien	(dump_function_name): Likewise.
1264290075Sobrien	(dump_expr): Adjust name lookup of operators.
1264390075Sobrien	(op_to_string): Simplify.
1264490075Sobrien	(assop_to_string): Likewise.
1264590075Sobrien	* init.c (build_new_1): Adjust use of ansi_opname.
1264690075Sobrien	* lex.c (opname_tab): Remove.
1264790075Sobrien	(assignop_tab): Likewise.
1264890075Sobrien	(ansi_opname): Likewise.
1264990075Sobrien	(ansi_assopname): Likewise.
1265090075Sobrien	(operator_name_string): Likewise.
1265190075Sobrien	(reinit_lang_specific): Likewise.
1265290075Sobrien	(operator_name_info): New variable.
1265390075Sobrien	(assignment_operator_name_info): Likewise.
1265490075Sobrien	(init_operators): New function.
1265590075Sobrien	(init_parse): Use it.
1265690075Sobrien	(do_identifier): Adjust use of ansi_opname.
1265790075Sobrien	* method.c (mangle_expression): Don't use ansi_opname for
1265890075Sobrien	mangling.
1265990075Sobrien	(build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P.
1266090075Sobrien	(build_decl_overload): Remove.
1266190075Sobrien	(build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly.
1266290075Sobrien	(do_build_assign_ref): Adjust use of ansi_opname.
1266390075Sobrien	(synthesize_method): Likewise.
1266490075Sobrien	(implicitly_declare_fn): Likewise.
1266590075Sobrien	* operators.def: New file.
1266690075Sobrien	* parse.y (operator): Adjust use of ansi_opname.
1266790075Sobrien	* pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P.
1266890075Sobrien	(set_mangled_name_for_template_decl): Don't play games with
1266990075Sobrien	current_namespace.
1267090075Sobrien	(special_function_p): Adjust use of ansi_opname.
1267190075Sobrien	* typeck.c (check_return_expr): Likewise.
1267290075Sobrien	* Make-lang.in (cc1plus): Depend on operators.def.
1267390075Sobrien	* Makefile.in (lex.o): Likewise.
1267490075Sobrien	(decl.o): Likewise.
1267518334Speter
1267690075Sobrien2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
1267718334Speter
1267890075Sobrien	* Make-lang.in (cplib2.ready): Eradicate.
1267918334Speter
1268090075SobrienSat May 27 11:25:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1268118334Speter
1268290075Sobrien	* method.c (mangle_expression): Use TREE_CODE_LENGTH.
1268390075Sobrien	* tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH.
1268490075Sobrien	(built_min, cp_tree_equal): Likewise.
1268518334Speter
1268690075Sobrien2000-05-26  Mark Mitchell  <mark@codesourcery.com>
1268718334Speter
1268890075Sobrien	* class.c (layout_nonempty_base_or_field): Replace
1268990075Sobrien	`record_layout_info' with `record_layout_info_s'.
1269018334Speter
1269190075Sobrien2000-05-26  Jason Merrill  <jason@casey.soma.redhat.com>
1269218334Speter
1269390075Sobrien	Fix goto checking.
1269490075Sobrien	* cp-tree.h (struct language_function): x_named_labels is now
1269590075Sobrien	a struct named_label_list*.
1269690075Sobrien	* decl.c (struct named_label_use_list): Renamed from...
1269790075Sobrien	(struct named_label_list): ...this.  New struct.
1269890075Sobrien	(push_binding_level): Don't set eh_region.
1269990075Sobrien	(note_level_for_eh): New fn.
1270090075Sobrien	(pop_label): Take label and old value directly.
1270190075Sobrien	(pop_labels): Adjust for new named_labels format.
1270290075Sobrien	(lookup_label): Likewise.
1270390075Sobrien	(poplevel): Note characteristics of a binding level containing a
1270490075Sobrien	named label.  Mess with named label lists earlier.
1270590075Sobrien	(mark_named_label_lists): New fn.
1270690075Sobrien	(mark_lang_function): Call it.
1270790075Sobrien	(use_label): New fn, split out from...
1270890075Sobrien	(make_label_decl): ...here.  Don't call it.
1270990075Sobrien	(decl_jump_unsafe, check_previous_goto, check_previous_goto_1,
1271090075Sobrien	check_previous_gotos): New fns,	split out from...
1271190075Sobrien	(define_label): ...here.
1271290075Sobrien	(check_switch_goto): New fn.
1271390075Sobrien	(define_case_label): Call it.
1271490075Sobrien	(check_goto): New fn.
1271590075Sobrien	* semantics.c (finish_goto_stmt): Call it and use_label.
1271690075Sobrien	(begin_compound_stmt): If we're a try block, call note_level_for_eh.
1271790075Sobrien	(expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings.
1271818334Speter
1271990075Sobrien2000-05-26  Mark Mitchell  <mark@codesourcery.com>
1272018334Speter
1272190075Sobrien	* class.c (build_vtable_entry_ref): Correct usage of
1272290075Sobrien	get_vtbl_decl_for_binfo.
1272318334Speter
1272490075Sobrien	* decl2.c (grokclassfn): Set DECL_LANGUAGE here.
1272590075Sobrien	* method.c (implicitly_declare_fn): Not here.
1272618334Speter
1272790075Sobrien2000-05-26  Nathan Sidwell  <nathan@codesourcery.com>
1272818334Speter
1272990075Sobrien	* cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ...
1273090075Sobrien	(CPTI_PTMD_DESC_TYPE): ... here.
1273190075Sobrien	(ptmd_desc_type_node): Rename to ...
1273290075Sobrien	(ptm_desc_type_node): ... here.
1273390075Sobrien	* decl.c: Likewise.
1273490075Sobrien	* rtti.c (ptmd_initializer): Rename to ...
1273590075Sobrien	(ptm_initializer): ... here.
1273690075Sobrien	(sythesize_tinfo_var): Adjust. Deal with pointer to member
1273790075Sobrien	function.
1273890075Sobrien	(create_tinfo_types): Adjust.
1273918334Speter
1274090075Sobrien2000-05-25  Mark Mitchell  <mark@codesourcery.com>
1274118334Speter
1274290075Sobrien	Finish implementation of VTTs.
1274390075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and
1274490075Sobrien	CPTI_VTT_PARM_IDENTIFIER.
1274590075Sobrien	(vtt_parm_identifier): New macro.
1274690075Sobrien	(vtt_parm_type): Likewise.
1274790075Sobrien	(BINFO_SUBVTT_INDEX): Likewise.
1274890075Sobrien	(BINFO_VPTR_INDEX): Likewise.
1274990075Sobrien	(struct lang_decl): Add vtt_parm.
1275090075Sobrien	(DECL_VTT_PARM): New macro.
1275190075Sobrien	(DECL_USE_VTT_PARM): Likewise.
1275290075Sobrien	(DECL_NEEDS_VTT_PARM_P): Likewise.
1275390075Sobrien	(get_vtt_name): Declare.
1275490075Sobrien	(build_artificial_parm): Likewise.
1275590075Sobrien	(fixup_all_virtual_upcast_offsets): Likewise.
1275690075Sobrien	(expand_indirect_vtbls_init): Remove.
1275790075Sobrien	* call.c (build_new_method_call): Pass the vtt to subobject
1275890075Sobrien	constructors and destructors.
1275990075Sobrien	* class.c (get_vtt_name): Give it external linkage.
1276090075Sobrien	(build_clone): Handle the magic VTT parameters for clones.
1276190075Sobrien	(clone_function_decl): Fix typo in comment.
1276290075Sobrien	(build_vtt): Keep track of the indices in the VTTs where various
1276390075Sobrien	entities are stored.
1276490075Sobrien	(build_vtt_inits): Likewise.
1276590075Sobrien	(dfs_build_vtt_inits): Likewise.
1276690075Sobrien	(build_ctor_vtbl_group): Tweak type of construction vtables.
1276790075Sobrien	(dfs_accumulate_vtbl_inits): Build vtables for all bases, even
1276890075Sobrien	primary bases, when building construction vtables.
1276990075Sobrien	* decl.c (duplicate_decls): Handle DECL_VTT_PARM.
1277090075Sobrien	(initialize_predefined_identifiers): Add vtt_parm_identifier.
1277190075Sobrien	(init_decl_processing): Initialize vtt_parm_type.
1277290075Sobrien	(grokfndecl): Use DECL_OVERLOADED_OPERATOR_P.
1277390075Sobrien	(lang_mark_tree): Make vtt_parm.
1277490075Sobrien	* decl2.c (build_artificial_parm): New function.
1277590075Sobrien	(maybe_retrofit_in_chrg): Use it.  Add VTT parameters.
1277690075Sobrien	(grokclassfn): Use build_artificial_parm.
1277790075Sobrien	* init.c (initialize_vtbl_ptrs): Call
1277890075Sobrien	fixup_all_virtual_upcast_offsets directly.
1277990075Sobrien	(perform_member_init): Use the complete subobject destructor for
1278090075Sobrien	member cleanups.
1278190075Sobrien	(build_vtbl_address): New function.
1278290075Sobrien	(expand_virtual_init): Handle VTTs.
1278390075Sobrien	* optimize (maybe_clone_body): Likewise.
1278490075Sobrien	* search.c (fixup_all_virtual_upcast_offsets): Give it external
1278590075Sobrien	linkage.
1278690075Sobrien	(expand_indirect_vtbls_init): Remove.
1278790075Sobrien	* semantics.c (setup_vtbl_ptr): Fix typos in comment.
1278890075Sobrien	* tree.c (make_binfo): Make them bigger.
1278918334Speter
1279090075Sobrien2000-05-25  Nathan Sidwell  <nathan@codesourcery.com>
1279118334Speter
1279290075Sobrien	* inc/cxxabi.h (__pbase_type_info): Define, based on
1279390075Sobrien	__pointer_type_info.
1279490075Sobrien	(__pointer_type_info): Derive from __pbase_type_info. Adjust.
1279590075Sobrien	(__pointer_to_member_type_info): Likewise.
1279690075Sobrien	* tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement.
1279790075Sobrien	(__pointer_to_member_type_info::__is_pointer_p): Remove.
1279890075Sobrien	(__pointer_type_info::__do_catch): Rename to ...
1279990075Sobrien	(__pbase_type_info::__do_catch): ... here. Adjust.
1280090075Sobrien	(__pbase_type_info::__pointer_catch): Implement.
1280190075Sobrien	(__pointer_type_info::__pointer_catch): Adjust.
1280290075Sobrien	(__pointer_to_member_type_info::__pointer_catch): Adjust.
1280318334Speter
1280490075Sobrien2000-05-25  Nathan Sidwell  <nathan@codesourcery.com>
1280518334Speter
1280690075Sobrien	* tinfo.h (__user_type_info::contained_virtual_p): New
1280790075Sobrien	predicate.
1280890075Sobrien	* tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond
1280990075Sobrien	shaped hierarchy.
1281090075Sobrien	(__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to
1281190075Sobrien	diamond shaped hierarchy. Add early out for mixed diamond and
1281290075Sobrien	duplicate shaped hierarchy.
1281318334Speter
1281490075Sobrien2000-05-24  Mark Mitchell  <mark@codesourcery.com>
1281518334Speter
1281690075Sobrien	* cp-tree.h (build_delete): Change prototype.
1281790075Sobrien	(build_vec_delete): Likewise.
1281890075Sobrien	* call.c (build_scoped_method_call): Use special_function_kind
1281990075Sobrien	values to indicate the kind of destruction to be done.
1282090075Sobrien	(build_method_call): Likewise.
1282190075Sobrien	* decl.c (finish_destructor_body): Likewise.
1282290075Sobrien	(maybe_build_cleanup_1): Likewise.  Rename to ...
1282390075Sobrien	(maybe_build_cleanup): ... this.
1282490075Sobrien	* decl2.c (delete_sanity): Use special_function_kind
1282590075Sobrien	values to indicate the kind of destruction to be done.
1282690075Sobrien	(build_cleanup): Likewise.
1282790075Sobrien	* init.c (perform_member_init): Likewise.
1282890075Sobrien	(build_vec_delete_1): Likewise.
1282990075Sobrien	(build_dtor_call): Simplify.
1283090075Sobrien	(build_delete): Use special_function_kind
1283190075Sobrien	values to indicate the kind of destruction to be done.
1283290075Sobrien	(build_vbase_delete): Likewise.
1283390075Sobrien	(build_vec_delete): Likewise.
1283418334Speter
1283590075Sobrien	* init.c (sort_member_init): Fix typo in error message generation
1283690075Sobrien	code.
1283718334Speter
1283890075SobrienMon May 15 11:46:29 2000  Donald Lindsay  <dlindsay@cygnus.com>
1283918334Speter
1284090075Sobrien	* semantics.c (begin_class_definition): make the packed
1284190075Sobrien	attribute be sensitive to the "-fpack-struct" command line flag
1284218334Speter
1284390075Sobrien2000-05-24  Nathan Sidwell  <nathan@codesourcery.com>
1284418334Speter
1284590075Sobrien	Update new-abi upcast algorithm.
1284690075Sobrien	* inc/cxxabi.h (__class_type_info::__do_upcast): Change
1284790075Sobrien	prototype and meaning of return value.
1284890075Sobrien	(__si_class_type_info::__do_upcast): Likewise.
1284990075Sobrien	(__vmi_class_type_info::__do_upcast): Likewise.
1285090075Sobrien	* tinfo.cc (__class_type_info::__upcast_result): Replace
1285190075Sobrien	whole2dst with part2dst. Adjust ctor.
1285290075Sobrien	(__class_type_info::__do_upcast): Adjust call of worker function.
1285390075Sobrien	(__class_type_info::__do_upcast): Adjust.
1285490075Sobrien	(__si_class_type_info::__do_upcast): Adjust. Use parent's
1285590075Sobrien	__do_upcast.
1285690075Sobrien	(__vmi_class_type_info::__do_upcast): Likewise. Fix private
1285790075Sobrien	virtual base in diamond hierarchy bug.
1285818334Speter
1285990075Sobrien2000-05-23  Mark Mitchell  <mark@codesourcery.com>
1286018334Speter
1286190075Sobrien	* cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable
1286290075Sobrien	and bitfield to tinfo_fn_p.
1286390075Sobrien	(DECL_TINFO_FN_P): Adjust.
1286490075Sobrien	(SET_DECL_TINFO_FN_P): Likewise.
1286590075Sobrien	(DECL_MUTABLE_P): Likewise.
1286690075Sobrien	(DECL_C_BIT_FIELD): Likewise.
1286790075Sobrien	(SET_DECL_C_BIT_FIELD): Likewise.
1286890075Sobrien	(CLEAR_DECL_C_BIT_FIELD): Likewise.
1286990075Sobrien	(DECL_UNINLINABLE): Likewise.
1287090075Sobrien	* class.c (alter_access): Call retrofit_lang_decl if ncessary.
1287190075Sobrien	(handle_using_decl): Remove assertion.
1287290075Sobrien	(build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl,
1287390075Sobrien	to build FIELD_DECLs.
1287490075Sobrien	(build_base_field): Likewise.
1287590075Sobrien	(layout_class_type): Likewise.
1287690075Sobrien	* decl.c (init_decl_processing): Likewise.
1287790075Sobrien	(build_ptrmemfunc_type): Likewise.
1287890075Sobrien	(grokdeclarator): Likewise.
1287990075Sobrien	* decl2.c (grok_x_components): Likewise.
1288090075Sobrien	* except.c (call_eh_info): Likewise.
1288190075Sobrien	* init.c (init_init_processing): Likewise.
1288290075Sobrien	* rtti.c (expand_class_desc): Likewise.
1288390075Sobrien	(create_pseudo_type_info): Likewise.
1288490075Sobrien	(get_vmi_pseudo_type_info): Likewise.
1288590075Sobrien	(create_tinfo_types): Likewise.
1288690075Sobrien	* ptree.c (print_lang_decl): Adjust.
1288790075Sobrien	* typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC
1288890075Sobrien	before checking DECL_MUTABLE_P.
1288918334Speter
1289090075Sobrien	* decl2.c (maybe_retrofit_in_chrg): Don't create in-charge
1289190075Sobrien	parameters for template functions.
1289290075Sobrien	* pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for
1289390075Sobrien	destructors as well as constructors.
1289418334Speter
1289590075Sobrien2000-05-22  Mark Mitchell  <mark@codesourcery.com>
1289618334Speter
1289790075Sobrien	* class.c (build_ctor_vtbl_group): Set inits.
1289890075Sobrien	* optimize.c (maybe_clone_body): Set DECL_INLINE and
1289990075Sobrien	DECL_THIS_INLINE appropriately for clones.
1290018334Speter
1290190075Sobrien	* cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp.
1290290075Sobrien	(DECL_CONV_FN_P): Simplify.
1290390075Sobrien	(DECL_OPERATOR): Remove.
1290490075Sobrien	(language_to_string): Declare.
1290590075Sobrien	* decl.c (duplicate_decls): Fix typo in comment.
1290690075Sobrien	(grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P.
1290790075Sobrien	(grok_op_properties): Use DECL_CONV_FN_P instead of
1290890075Sobrien	IDENTIFIER_TYPENAME_P.
1290990075Sobrien	* dump.c (dequeue_and_dump): Dump the language linkage of
1291090075Sobrien	declarations.
1291190075Sobrien	* error.c (language_to_string): Give it external linkage.
1291290075Sobrien	* method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P.
1291390075Sobrien	(implicitly_declare_fn): Set DECL_LANGUAGE.
1291490075Sobrien	* pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not
1291590075Sobrien	IDENTIFIER_TYPENAME_P.
1291690075Sobrien	(tsubst_decl): Likewise.
1291790075Sobrien	(tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P.
1291890075Sobrien	* semantics.c (finish_member_declaration): Don't mark members of
1291990075Sobrien	classes declared in an extern "C" region as extern "C".
1292018334Speter
1292190075Sobrien2000-05-22  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1292218334Speter
1292390075Sobrien	* decl2.c (qualified_lookup_using_namespace): Look through
1292490075Sobrien	namespace aliases.
1292518334Speter
1292690075Sobrien	* decl.c (push_using_decl): Return the old decl on namespace level.
1292718334Speter
1292890075Sobrien2000-05-21  Mark Mitchell  <mark@codesourcery.com>
1292918334Speter
1293090075Sobrien	* cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks.
1293190075Sobrien	(VTT_NAME_PREFIX): New macro.
1293290075Sobrien	(CTOR_VTBL_NAME_PREFIX): Likewise.
1293390075Sobrien	(get_ctor_vtbl_name): New function.
1293490075Sobrien	* class.c (get_vtable_name): Simplify.
1293590075Sobrien	(get_vtt_name): New function.
1293690075Sobrien	(get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE.
1293790075Sobrien	(dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list
1293890075Sobrien	when a virtual base becomes primary.
1293990075Sobrien	(finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier.  Build
1294090075Sobrien	VTTs.
1294190075Sobrien	(finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in
1294290075Sobrien	additional parameters.
1294390075Sobrien	(dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED.
1294490075Sobrien	(initialize_array): New function.
1294590075Sobrien	(build_vtt): Likewise.
1294690075Sobrien	(build_vtt_inits): Likewise.
1294790075Sobrien	(dfs_build_vtt_inits): Likewise.
1294890075Sobrien	(dfs_fixup_binfo_vtbls): Likewise.
1294990075Sobrien	(build_ctor_vtbl_group): Likewise.
1295090075Sobrien	(initialize_vtable): Use initialize_array.
1295190075Sobrien	(accumulate_vtbl_inits): Reimplement to handle construction
1295290075Sobrien	vtables.
1295390075Sobrien	(dfs_accumulate_vtbl_inits): Likewise.
1295490075Sobrien	(bulid_vtbl_initializer): Adjust parameter name.
1295590075Sobrien	* method.c (build_typename_overload): Remove #if 0'd code.
1295690075Sobrien	(get_ctor_vtbl_name): New function.
1295790075Sobrien	* search.c (dfs_walk_real): Use BINFO_N_BASETYPES.
1295890075Sobrien	(init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo.
1295918334Speter
1296090075Sobrien	* cp-tree.h (struct lang_type): Remove search_slot.
1296190075Sobrien	(CLASSTYPE_SEARCH_SLOT): Remove.
1296290075Sobrien	(emit_base_init): Change prototype.
1296390075Sobrien	(initialize_vtbl_ptrs): Likewise.
1296490075Sobrien	(expand_indirect_vtbls_init): Likewise.
1296590075Sobrien	(clear_search_slots): Remove.
1296690075Sobrien	* decl.c (lang_mark_tree): Don't mark search_slot.
1296790075Sobrien	* init.c (initialize_vtbl_ptrs): Simplify.
1296850397Sobrien	(emit_base_init): Likewise.
1296990075Sobrien	* search.c (struct vbase_info): Document decl_ptr.
1297090075Sobrien	(convert_pointer_to_single_level): Remove.
1297190075Sobrien	(dfs_find_vbases): Remove.
1297290075Sobrien	(dfs_init_base_pointers): Simplify.
1297390075Sobrien	(dfs_clear_vbase_slots): Remove.
1297490075Sobrien	(dfs_vtable_path_unmark): New function.
1297590075Sobrien	(init_vbase_pointers): Simplify.
1297690075Sobrien	(expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT.
1297790075Sobrien	(expand_indirect_vtbls_init): Simplify.  Don't call
1297890075Sobrien	mark_all_temps_used.
1297990075Sobrien	* semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and
1298090075Sobrien	initialize_vtbl_ptrs.
1298152284Sobrien
1298290075Sobrien2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
1298318334Speter
1298490075Sobrien	* except.c: Add static prototypes.
1298518334Speter
1298690075Sobrien2000-05-20  H.J. Lu  <hjl@gnu.org>
1298752284Sobrien
1298890075Sobrien	* Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext).
1298918334Speter
1299090075Sobrien2000-05-19  Mark Mitchell  <mark@codesourcery.com>
1299118334Speter
1299290075Sobrien	Don't create a separate copy of virtual bases for the
1299390075Sobrien	CLASSTYPE_VBASECLASSES list.
1299490075Sobrien	* cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation.
1299590075Sobrien	(BINFO_FOR_VBASE): Remove.
1299690075Sobrien	(CANONICAL_BINFO): Adjust.
1299790075Sobrien	(binfo_for_vbase): New function.
1299890075Sobrien	* class.c (build_vbase_pointer_fields): Use binfo_for_vbase
1299990075Sobrien	instead of BINFO_FOR_VBASE.
1300090075Sobrien	(build_vbase_pointer): Likewise.
1300190075Sobrien	(build_secondary_vtable): Likewise.
1300290075Sobrien	(dfs_mark_primary_bases): Likewise.
1300390075Sobrien	(mark_primary_bases): Likewise.
1300490075Sobrien	(layout_nonempty_base_or_field): Likewise.
1300590075Sobrien	(dfs_set_offset_for_shared_vbases): Likewise.
1300690075Sobrien	(dfs_set_offset_for_unshared_vbases): Likewise.
1300790075Sobrien	(layout_virtual_bases): Likewise.  Adjust for changes to the
1300890075Sobrien	CLASSTYPE_VBASECLASSES list.
1300990075Sobrien	(dump_class_hierarchy_r): Use binfo_for_vbase
1301090075Sobrien	instead of BINFO_FOR_VBASE.
1301190075Sobrien	(dump_class_hierarchy): Likewise.
1301290075Sobrien	(finish_vtbls): Likewise.
1301390075Sobrien	(build_vtbl_initializer): Adjust for changes to the
1301490075Sobrien	CLASSTYPE_VBASECLASSES list.
1301590075Sobrien	(build_vbase_offset_vtbl_entries): Use binfo_for_vbase.
1301690075Sobrien	* decl.c (finish_destructor_body): Adjust for changes to the
1301790075Sobrien	CLASSTYPE_VBASECLASSES list.
1301890075Sobrien	* init.c (sort_base_init): Use binfo_for_vbase.
1301990075Sobrien	(construct_virtual_bases): Adjust for changes to the
1302090075Sobrien	CLASSTYPE_VBASECLASSES list.
1302190075Sobrien	(expand_member_init): Use binfo_for_vbase.
1302290075Sobrien	(build_vbase_delete):  Adjust for changes to the
1302390075Sobrien	CLASSTYPE_VBASECLASSES list.
1302490075Sobrien	* method.c (do_build_copy_constructor): Likewise.
1302590075Sobrien	* rtti.c (get_base_offset): Use binfo_for_vbase.
1302690075Sobrien	(expand_class_desc): Remove #if 0'd code.
1302790075Sobrien	* search.c (struct vbase_info): Remove vbase_types.
1302890075Sobrien	(get_base_distance):  Use binfo_for_vbase.
1302990075Sobrien	(lookup_field_queue_p): Use CANONICAL_BINFO.
1303090075Sobrien	(get_shared_vbase_if_not_primary): Use binfo_for_vbase.
1303190075Sobrien	(get_pure_virtuals): Adjust for changes to the
1303290075Sobrien	CLASSTYPE_VBASECLASSES list.
1303390075Sobrien	(dfs_find_vbases): Use binfo_for_vbase.
1303490075Sobrien	(dfs_init_vbase_pointers): Likewise.
1303590075Sobrien	(init_vbase_pointers): Don't initialize vi.vbase_types.
1303690075Sobrien	(virtual_context): Use binfo_for_vbase.
1303790075Sobrien	(fixup_all_virtual_upcast_offsets): Adjust for changes to the
1303890075Sobrien	CLASSTYPE_VBASECLASSES list.
1303990075Sobrien	(expand_indirect_vtbls_init): Simplify.
1304090075Sobrien	(dfs_get_vbase_types): Don't replicate virtual bases.
1304190075Sobrien	(find_vbase_instance): Use binfo_for_vbase.
1304290075Sobrien	(binfo_for_vbase): New function.
1304390075Sobrien	* typeck.c (get_delta_difference): Use binfo_for_vbase.
1304418334Speter
1304590075Sobrien2000-05-17  Mark Mitchell  <mark@codesourcery.com>
1304618334Speter
1304790075Sobrien	* decl2.c (finish_anon_union): Generalize error messages to handle
1304890075Sobrien	anonymous structures.
1304990075Sobrien	* init.c (perform_member_init): Remove `name' parameter.
1305090075Sobrien	(build_field_list): New function.
1305190075Sobrien	(sort_member_init): Handle anonymous union initialization order
1305290075Sobrien	correctly.  Check for multiple initializations of the same union.
1305390075Sobrien	(emit_base_init): Don't look up fields by name here.
1305490075Sobrien	(expand_member_init): Record the result of name lookup for future
1305590075Sobrien	reference.
1305690075Sobrien	* typeck.c (build_component_ref): Fix formatting.
1305718334Speter
1305890075SobrienWed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
1305918334Speter
1306090075Sobrien	* decl.c (pop_label): Replace warn_unused with warn_unused_label.
1306190075Sobrien	* typeck.c (build_x_compound_expr): Replace warn_unused with
1306290075Sobrien	warn_unused_value.
1306318334Speter
1306490075Sobrien	* decl2.c (lang_decode_option): Update -Wall unused flags by
1306590075Sobrien	calling set_Wunused.
1306618334Speter
1306790075Sobrien2000-05-16  Mark Mitchell  <mark@codesourcery.com>
1306818334Speter
1306990075Sobrien	* cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation.
1307090075Sobrien	* init.c (dfs_vtable_path_unmark): Remove.
1307190075Sobrien	* search.c (marked_new_vtable_p): Likewise.
1307290075Sobrien	(unmarked_new_vtable_p): Likewise.
1307390075Sobrien	(dfs_search_slot_nonempty_p): Likewise.
1307490075Sobrien	(dfs_mark): Likewise.
1307590075Sobrien	(dfs_vtable_path_unmark): Likewise.
1307690075Sobrien	(dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED.
1307790075Sobrien	(dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED.
1307890075Sobrien	(dfs_init_vbase_pointers): Remove special-case new ABI code.
1307990075Sobrien	(dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED.
1308090075Sobrien	(init_vbase_pointers): Simplify.
1308190075Sobrien	(expand_indirect_vtbls_init): Likewise.
1308218334Speter
1308390075Sobrien	* class.c (copy_virtuals): New function.
1308490075Sobrien	(build_primary_table): Use it.
1308590075Sobrien	(build_secondary_vtable): Likewise.
1308690075Sobrien	(modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to
1308790075Sobrien	indicate that no vcall offset is required.
1308890075Sobrien	(add_virtual_function): Likewise.
1308990075Sobrien	(modify_all_vtables): Likewise.
1309090075Sobrien	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
1309190075Sobrien	(dfs_accumulate_vtbl_inits): Likewise.
1309290075Sobrien	(build_vtbl_initializer): Make changes to handle construction
1309390075Sobrien	vtables.
1309490075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Likewise.
1309590075Sobrien	(build_rtti_vtbl_entries): Likewise.
1309690075Sobrien	(build_vtable_entries): Handle a NULL vcall_index.
1309718334Speter
1309890075Sobrien2000-05-15  Gabriel Dos Reis  <gdr@codesourcery.com>
1309918334Speter
1310090075Sobrien	* decl2.c (lang_decode_option): Fix thinko.
1310118334Speter
1310290075Sobrien2000-05-14  Jason Merrill  <jason@casey.cygnus.com>
1310318334Speter
1310490075Sobrien	* except.c (check_handlers): New fn.
1310590075Sobrien	* cp-tree.h: Declare it.
1310690075Sobrien	* semantics.c (finish_handler_sequence): Call it.
1310790075Sobrien	(finish_function_handler_sequence): Likewise.
1310890075Sobrien	(finish_handler_parms): Set TREE_TYPE on the handler.
1310990075Sobrien	* cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro.
1311090075Sobrien	* search.c (get_base_distance_recursive): If protect>1, ignore
1311190075Sobrien	special access.
1311290075Sobrien	(get_base_distance): Don't reduce watch_access.
1311318334Speter
1311490075Sobrien2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
1311518334Speter
1311690075Sobrien	* lex.c: #include diagnostic.h.
1311790075Sobrien	(lang_init_options): Set default prefixing rules.
1311818334Speter
1311990075Sobrien	* lang-options.h: Add -fdiagnostics-show-location=.
1312018334Speter
1312190075Sobrien	* decl2.c: #include diagnostic.h.
1312290075Sobrien	(lang_decode_option): Handle -fdiagnostics-show-location=.
1312318334Speter
1312490075Sobrien2000-05-12  Nathan Sidwell  <nathan@codesourcery.com>
1312518334Speter
1312690075Sobrien	* tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes.
1312790075Sobrien	* vec.cc: Revert my 2000-05-07 change.
1312818334Speter
1312990075Sobrien2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
1313052284Sobrien
1313190075Sobrien	* class.c (check_field_decls): Complain about non-static data
1313290075Sobrien	members with same name as class in class with constructor.
1313318334Speter
1313490075Sobrien2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
1313518334Speter
1313690075Sobrien	* decl.c (grokdeclarator): Allow non-static data members with
1313790075Sobrien	same name as class.
1313818334Speter
1313990075Sobrien2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
1314018334Speter
1314190075Sobrien	* cp-tree.h: Constify tree_srcloc.filename, tinst_level.file,
1314290075Sobrien	and pending_inline.filename.  Update prototypes.
1314390075Sobrien	* decl.c (define_label): Constify filename parameter.
1314490075Sobrien	* decl2.c (warn_if_unknown_interface): Constify local char *.
1314590075Sobrien	* input.c Constify input_source.filename. Don't declare
1314690075Sobrien	input_filename or lineno.  Constify filename parameter to feed_input.
1314790075Sobrien	* lex.c (init_parse): Constify parameter and return value.
1314890075Sobrien	(cp_pragma_interface, cp_pragma_implementation): Constify
1314990075Sobrien	filename argument.
1315090075Sobrien	(reinit_parse_for_method, reinit_parse_for_block,
1315190075Sobrien	reinit_parse_for_expr, feed_defarg, handle_cp_pragma):
1315290075Sobrien	Constify local char *.
1315390075Sobrien	* pt.c: Don't declare lineno or input_filename.
1315490075Sobrien	(print_template_context, tsubst_friend_function, tsubst_decl,
1315590075Sobrien	tsubst, instantiate_decl): Constify local char *.
1315690075Sobrien	* semantics.c (expand_body): Constify local char *.
1315790075Sobrien	* tree.c (build_srcloc): Constify filename parameter.
1315890075Sobrien	* typeck.c (c_expand_asm_operands): Constify filename
1315990075Sobrien	parameter.
1316018334Speter
1316190075Sobrien2000-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1316218334Speter
1316390075Sobrien	* tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix
1316490075Sobrien	offsetof expansion.
1316518334Speter
1316690075Sobrien2000-05-08  Branko Cibej  <branko.cibej@hermes.si>
1316718334Speter
1316890075Sobrien	* inc/cxxabi.h:  Fix typos in comment.
1316990075Sobrien	(__base_class_info::__offset): Use a static_cast.
1317018334Speter
1317190075Sobrien2000-05-07  Nathan Sidwell  <nathan@codesourcery.com>
1317218334Speter
1317390075Sobrien	* inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place
1317490075Sobrien	of std::size_t and std::ptrdiff_t respectively.
1317590075Sobrien	* tinfo.cc: Likewise.
1317690075Sobrien	* vec.cc: Likewise.
1317718334Speter
1317890075Sobrien2000-05-06  Richard Henderson  <rth@cygnus.com>
1317918334Speter
1318090075Sobrien	* typeck.c (build_c_cast): Don't warn integer->pointer size
1318190075Sobrien	mismatch for constants.
1318218334Speter
1318390075Sobrien2000-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1318418334Speter
1318590075Sobrien	* rtti.c (ptmd_initializer): Set non-public, if class is
1318690075Sobrien	incomplete.
1318718334Speter
1318890075Sobrien	* inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++".
1318990075Sobrien	(__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
1319090075Sobrien	__cxa_vec_delete): Likewise.
1319190075Sobrien	* tinfo.cc (__dynamic_cast): Likewise.
1319290075Sobrien	* vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
1319390075Sobrien	__cxa_vec_delete): Likewise.
1319418334Speter
1319590075Sobrien2000-05-04  Mark Mitchell  <mark@codesourcery.com>
1319618334Speter
1319790075Sobrien	* cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove.
1319890075Sobrien	(SET_FNADDR_FROM_VTABLE_ENTRY): Likewise.
1319990075Sobrien	(lang_decl_flags): Add vcall_offset.
1320090075Sobrien	(THUNK_VCALL_OFFSET): Use it.
1320190075Sobrien	* decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk.
1320290075Sobrien	* method.c (make_thunk): Create the lang_decl here, not in
1320390075Sobrien	emit_thunk.
1320490075Sobrien	(emit_thunk): Make generic thunks into ordinary functions once
1320590075Sobrien	they have been fed to expand_body.
1320690075Sobrien	* semantics.c (expand_body): Set current_function_is_thunk here.
1320718334Speter
1320890075Sobrien2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1320918334Speter
1321090075Sobrien	* class.c (update_vtable_entry_for_fn): Prototype.
1321118334Speter
1321290075Sobrien	* pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl'
1321390075Sobrien	and `tmpl'.
1321418334Speter
1321590075Sobrien	* search.c (dfs_build_inheritance_graph_order): Prototype.
1321618334Speter
1321790075Sobrien2000-05-04  Mark Mitchell  <mark@codesourcery.com>
1321818334Speter
1321990075Sobrien	* cp-tree.h (special_function_kind): Add various kinds of
1322090075Sobrien	destructors.
1322190075Sobrien	(special_function_p): New function.
1322290075Sobrien	* class.c (overrides): Don't let one kind of destructor override
1322390075Sobrien	another.
1322490075Sobrien	* decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding
1322590075Sobrien	whether or not to instantiate a template.
1322690075Sobrien	* tree.c (special_function_p): Define.
1322718334Speter
1322890075Sobrien2000-05-03  Mark Mitchell  <mark@codesourcery.com>
1322918334Speter
1323090075Sobrien	* cp-tree.def (THUNK_DECL): Remove.
1323190075Sobrien	* cp-tree.h (DECL_THUNK_P): New macro.
1323290075Sobrien	(DECL_NON_THUNK_FUNCTION_P): Likewise.
1323390075Sobrien	(DECL_EXTERN_C_FUNCTION_P): Likewise.
1323490075Sobrien	(SET_DECL_THUNK_P): Likewise.
1323590075Sobrien	(DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P.
1323690075Sobrien	(FNADDR_FROM_VTABLE_ENTRY): Likewise.
1323790075Sobrien	(DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P.
1323890075Sobrien	* decl.c (decls_match): Use DECL_EXTERN_C_P.
1323950397Sobrien	(duplicate_decls): Likewise.
1324090075Sobrien	(pushdecl): Likewise.  Adjust thunk handling.
1324190075Sobrien	(grokfndecl): Use DECL_EXTERN_C_P.
1324290075Sobrien	* decl2.c (mark_vtable_entries): Use DECL_THUNK_P.
1324390075Sobrien	* dump.c (dequeue_and_dump): Remove THUNK_DECL handling.
1324490075Sobrien	* except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P.
1324590075Sobrien	* expr.c (cplus_expand_expr): Remove THUNK_DECL handling.
1324690075Sobrien	* method.c (make_thunk): Use SET_DECL_THUNK_P.  Set
1324790075Sobrien	DECL_NO_STATIC_CHAIN.
1324890075Sobrien	(emit_thunk): Don't play games with TREE_CODE on thunks.  Don't
1324990075Sobrien	set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk.
1325090075Sobrien	* search.c (covariant_return_p): Remove THUNK_DECL handling.
1325190075Sobrien	* ir.texi: Update.
1325218334Speter
1325390075Sobrien2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
1325418334Speter
1325590075Sobrien	* tree.c (walk_tree): Set lineno.
1325618334Speter
1325790075Sobrien2000-05-01  Mark Mitchell  <mark@codesourcery.com>
1325818334Speter
1325990075Sobrien	* exception.cc: Update license notice.
1326090075Sobrien	* new.cc: Likewise.
1326190075Sobrien	* new1.cc: Likewise.
1326290075Sobrien	* new2.cc: Likewise.
1326390075Sobrien	* tinfo.cc: Likewise.
1326490075Sobrien	* tinfo2.cc: Likewise.
1326590075Sobrien	* vec.cc: Likewise.
1326690075Sobrien	* inc/cxxabi.h: Likewise.
1326790075Sobrien	* inc/exception: Likewise.
1326890075Sobrien	* inc/new: Likewise.
1326990075Sobrien	* inc/new.h: Likewise.
1327090075Sobrien	* inc/typeinfo: Likewise.
1327118334Speter
1327290075Sobrien2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
1327318334Speter
1327490075Sobrien	* tree.c (build_target_expr_with_type): If we already have a
1327590075Sobrien	TARGET_EXPR, just return it.
1327618334Speter
1327790075Sobrien	* optimize.c (initialize_inlined_parameters): Don't generate an
1327890075Sobrien	EXPR_STMT if we can just use DECL_INITIAL.
1327990075Sobrien	* decl.c (emit_local_var): Only make the initialization a
1328090075Sobrien	full-expression if stmts_are_full_exprs_p.
1328118334Speter
1328290075Sobrien2000-05-01  Mark Mitchell  <mark@codesourcery.com>
1328318334Speter
1328490075Sobrien	* cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New
1328590075Sobrien	macro.
1328690075Sobrien	* call.c (standard_conversion): Use it.
1328790075Sobrien	(direct_reference_binding): Likewise.
1328890075Sobrien	(build_over_call): Likewise.
1328990075Sobrien	(is_properly_derived_from): Likewise.
1329090075Sobrien	(compare_ics): Likewise.
1329190075Sobrien	* class.c (resolves_to_fixed_type_p): Likewise.
1329290075Sobrien	* optimize.c (declare_return_variable): Likewise.
1329390075Sobrien	* pt.c (is_specialization_of): Likewise.
1329490075Sobrien	(unify): Likewise.
1329590075Sobrien	* typeck.c (comp_target_parms): Likeiwse.
1329690075Sobrien	(build_static_cast): Likewise.
1329790075Sobrien	(build_reinterpret_cast): Likewise.
1329890075Sobrien	(build_const_cast): Likewise.
1329990075Sobrien	(comp_ptr_ttypes_real): Likewise.
1330090075Sobrien	(comp_ptr_ttypes_const): Likewise.
1330190075Sobrien	* typeck2.c (process_init_constructor): Likewise.
1330218334Speter
1330390075Sobrien2000-04-30  Scott Snyder <snyder@fnal.gov>
1330418334Speter
1330590075Sobrien	* decl.c (finish_destructor_body): Use the base destructor when
1330690075Sobrien	destroying virtual bases.
1330718334Speter
1330890075Sobrien2000-04-30  Mark Mitchell  <mark@codesourcery.com>
1330918334Speter
1331090075Sobrien	* expr.c (cplus_expand_expr): Preserve temporaries when expanding
1331190075Sobrien	STMT_EXPRs.
1331290075Sobrien	* optimize.c (struct inline_data): Add target_exprs field.
1331390075Sobrien	(declare_return_variable): When a function returns an aggregate,
1331490075Sobrien	use the variable declared in the TARGET_EXPR as the remapped
1331590075Sobrien	DECL_RESULT.
1331690075Sobrien	(expand_call_inline): Update the pending target_exprs stack.
1331790075Sobrien	(optimize_function): Initialize the stack.
1331818334Speter
1331990075Sobrien	* decl2.c (finish_file): Fix typo in comment.
1332018334Speter
1332190075Sobrien	* method.c (emit_thunk): Don't try to return a `void' value.
1332218334Speter
1332390075Sobrien	* optimize.c (initialize_inlined_parameters): If the parameter is
1332490075Sobrien	addressable, we need to make a new VAR_DECL, even if the
1332590075Sobrien	initializer is constant.
1332618334Speter
1332790075Sobrien2000-04-28  Cosmin Truta  <cosmint@cs.ubbcluj.ro>
1332818334Speter
1332990075Sobrien	* decl.c (grok_op_properties): Add an extra check of argtypes.
1333018334Speter
1333190075Sobrien2000-04-27  Mark Mitchell  <mark@codesourcery.com>
1333218334Speter
1333390075Sobrien	* optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying
1333490075Sobrien	variables.
1333590075Sobrien	(initialize_inlined_parameters): Try to avoid creating new
1333690075Sobrien	VAR_DECLs.
1333718334Speter
1333890075Sobrien2000-04-27  Alex Samuel  <samuel@codesourcery.com>
1333918334Speter
1334090075Sobrien	* lex.c (my_get_run_time): Remove.
1334190075Sobrien	(init_filename_times): Use get_run_time instead of my_get_run_time.
1334290075Sobrien	(check_newline): Likewise.
1334390075Sobrien	(dump_time_statistics): Likewise.
1334490075Sobrien	* decl2.c (finish_file): Push and pop timevar TV_VARCONST instead
1334590075Sobrien	of computing elapsed time explicitly.
1334618334Speter
1334790075Sobrien2000-04-26  Mark Mitchell  <mark@codesourcery.com>
1334818334Speter
1334990075Sobrien	* cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P.
1335090075Sobrien	* init.c (decl_constant_value): Check TREE_READONLY_DECL_P.
1335190075Sobrien	* call.c (convert_like_real): Don't test TREE_READONLY_DECL_P
1335290075Sobrien	before calling decl_constant_value.
1335390075Sobrien	* class.c (check_bitfield_decl): Likewise.
1335490075Sobrien	* cvt.c (ocp_convert): Likewise.
1335590075Sobrien	(convert): Likewise.
1335690075Sobrien	* decl.c (compute_array_index_type): Likewise.
1335790075Sobrien	(build_enumerator): Likewise.
1335890075Sobrien	* decl2.c (check_cp_case_value): Likewise.
1335990075Sobrien	* pt.c (convert_nontype_argument): Likewise.
1336090075Sobrien	(tsubst): Likewise.
1336190075Sobrien	* typeck.c (decay_conversion): Likewise.
1336290075Sobrien	(build_compound_expr): Likewise.
1336390075Sobrien	(build_reinterpret_cast): Likewise.
1336490075Sobrien	(build_c_cast): Likewise.
1336590075Sobrien	(convert_for_assignment): Likewise.
1336618334Speter
1336790075Sobrien2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
1336818334Speter
1336990075Sobrien	* decl.c (finish_function): Don't play games with DECL_INLINE.
1337018334Speter
1337190075Sobrien2000-04-25  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
1337218334Speter
1337390075Sobrien	* ir.texi: Correct typo.
1337418334Speter
1337590075Sobrien2000-04-25  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1337618334Speter
1337790075Sobrien	* decl.c (grokdeclarator): Reject VLAs as members.
1337818334Speter
1337990075Sobrien2000-04-24  Gabriel Dos Reis  <gdr@codesourcery.com>
1338018334Speter
1338190075Sobrien	* call.c (standard_conversion): Accept conversion between
1338290075Sobrien	COMPLEX_TYPEs.
1338318334Speter
1338490075Sobrien	* cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE.
1338518334Speter
1338690075Sobrien2000-04-24  Zack Weinberg  <zack@wolery.cumb.org>
1338718334Speter
1338890075Sobrien	* decl2.c (finish_file): Remove double setup for accounting
1338990075Sobrien	compile time.
1339018334Speter
1339190075Sobrien2000-04-24  Robert Lipe <robertlipe@usa.net>
1339218334Speter
1339390075Sobrien	* cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD.
1339418334Speter
1339590075Sobrien2000-04-23  Benjamin Kosnik  <bkoz@cygnus.com>
1339618334Speter
1339790075Sobrien	* new.cc (set_new_handler): Needs to be in std::.
1339818334Speter
1339990075Sobrien2000-04-23  Mark Mitchell  <mark@codesourcery.com>
1340018334Speter
1340190075Sobrien	* cp-tree.h (lang_decl): Remove pretty_function_p.
1340290075Sobrien	(DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the
1340390075Sobrien	language-specific node.
1340490075Sobrien	* decl.c (cp_make_fname_decl): Use build_decl, not
1340590075Sobrien	build_lang_decl, to build the variables.
1340690075Sobrien	(grokvardecl): Don't call build_lang_decl for local variables in
1340750397Sobrien	templates.
1340890075Sobrien	(grokdeclarator): Don't call build_lang_decl for local type
1340990075Sobrien	declarations in templates.
1341090075Sobrien	* lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated
1341190075Sobrien	zero'd memory, rather than calling memset.
1341290075Sobrien	* pt.c: Include hashtab.h.
1341390075Sobrien	(local_specializations): New variable.
1341490075Sobrien	(retrieve_local_specialization): Use it.
1341590075Sobrien	(register_local_specialization): Likewise.
1341690075Sobrien	(tsubst_decl): Don't assume local variables have
1341790075Sobrien	DECL_LANG_SPECIFIC.
1341890075Sobrien	(instantiate_decl): Set up local_specializations.
1341990075Sobrien	* Makefile.in (HTAB_H): New variable.
1342018334Speter
1342190075Sobrien2000-04-23  Richard Henderson  <rth@cygnus.com>
1342218334Speter
1342390075Sobrien	* typeck.c (c_expand_asm_operands): Restore the original
1342490075Sobrien	contents of the output list.
1342518334Speter
1342690075Sobrien2000-04-22  Gabriel Dos Reis <gdr@codesourcery.com>
1342718334Speter
1342890075Sobrien	* ir.texi:  Document complex number representation.
1342918334Speter
1343090075Sobrien2000-04-20  Nathan Sidwell  <nathan@codesourcery.com>
1343118334Speter
1343290075Sobrien	* rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi.
1343390075Sobrien	(target_incomplete_p): New function.
1343490075Sobrien	(tinfo_base_init): Create comdat NTBS name variable.
1343590075Sobrien	(ptr_initializer): Add non_public parameter. Calculate it.
1343690075Sobrien	(ptmd_initializer): Likewise.
1343790075Sobrien	(synthesize_tinfo_var): Adjust. Emit incomplete class tinfo.
1343890075Sobrien	(create_real_tinfo_var): Add non_public parameter. Use it.
1343990075Sobrien	Push proxy into global namespace.
1344090075Sobrien	* inc/cxxabi.h (__pointer_type_info::incomplete_class_mask):
1344190075Sobrien	New enumeration.
1344290075Sobrien	* inc/typeinfo (type_info::before, type_info::operator==):
1344390075Sobrien	Compare __name addresses.
1344418334Speter
1344590075Sobrien	* tinfo2.cc: Remove new-abi builtins comment.
1344618334Speter
1344790075Sobrien2000-04-20  Jason Merrill  <jason@casey.cygnus.com>
1344818334Speter
1344990075Sobrien	* typeck.c (build_x_function_call): Resolve an OFFSET_REF.
1345018334Speter
1345190075Sobrien	* call.c (joust): Exit early if we get the same function, too.
1345218334Speter
1345390075Sobrien	* decl2.c (key_method): Return NULL_TREE for template classes.
1345490075Sobrien	(import_export_class): Don't need to check for template classes.
1345518334Speter
1345690075Sobrien2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
1345718334Speter
1345890075Sobrien	* lex.c: Remove references to cccp.c.
1345918334Speter
1346090075Sobrien2000-04-18  Mark Mitchell  <mark@codesourcery.com>
1346118334Speter
1346290075Sobrien	* cp-tree.h (lang_decl_flags): Remove const_memfunc and
1346390075Sobrien	volatile_memfunc.  Add destructor_attr.  Adjust dummy.
1346490075Sobrien	(DECL_DESTRUCTOR_P): Use destructor_attr.
1346590075Sobrien	(DECL_CONST_MEMFUNC_P): Reimplement.
1346690075Sobrien	(DECL_VOLATILE_MEMFUNC_P): Remove.
1346790075Sobrien	* class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS.
1346890075Sobrien	(overrides): Use DECL_DESTRUCTOR_P.
1346990075Sobrien	(check_for_override): Likewise.
1347090075Sobrien	* decl.c (start_function): Likewise.
1347190075Sobrien	* decl2.c (grokfclassfn): Likewise.
1347290075Sobrien	(check_classfn): Likewise.
1347390075Sobrien	(grok_function_init): Likewise.
1347418334Speter
1347590075Sobrien2000-04-17  Mark Mitchell  <mark@codesourcery.com>
1347618334Speter
1347790075Sobrien	* decl2.c (grokfield): Issue error on illegal data member
1347890075Sobrien	declaration.
1347918334Speter
1348090075SobrienMon Apr 17 17:11:16 2000  Mark P Mitchell  <mark@codesourcery.com>
1348118334Speter
1348290075Sobrien	* method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL.
1348318334Speter
1348490075Sobrien2000-04-16  Mark Mitchell  <mark@codesourcery.com>
1348518334Speter
1348690075Sobrien	* class.c (build_vtable_entry): Don't build thunks for type-info
1348750397Sobrien	functions.
1348850397Sobrien
1348990075Sobrien2000-04-16  Jason Merrill  <jason@casey.cygnus.com>
1349050397Sobrien
1349190075Sobrien	* decl.c (decls_match): Allow a redeclaration of a builtin to
1349290075Sobrien	specify args while the builtin did not.
1349318334Speter
1349490075Sobrien2000-04-15  Mark Mitchell  <mark@codesourcery.com>
1349518334Speter
1349690075Sobrien	* cp-tree.def (THUNK_DECL): Add to documentation.
1349790075Sobrien	* cp-tree.h (flag_huge_objects): Declare.
1349890075Sobrien	* class.c (modify_vtable_entry): Tidy.
1349990075Sobrien	(update_vtable_entry_for_fn): Split out from dfs_modify_vtables.
1350090075Sobrien	Calculate delta appropriately for the new ABI.
1350190075Sobrien	(dfs_modify_vtables): Use it.
1350290075Sobrien	(modify_all_vtables): Fix thinko in code to add overriding copies
1350390075Sobrien	of functions to primary vtables.
1350490075Sobrien	(build_clone): Fix typo in comment.
1350590075Sobrien	(clone_function_decl): Correct order of destructors in vtable.
1350690075Sobrien	(build_vbase_offset_vtbl_entries): Adjust comment.
1350790075Sobrien	(dfs_vcall_offset_queue_p): Remove.
1350890075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX.
1350990075Sobrien	(build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases.
1351090075Sobrien	(build_vtable_entry): Correct check for pure virtual functions.
1351190075Sobrien	Don't declare flag_huge_objects.
1351290075Sobrien	* decl.c (flag_huge_objects): Remove declaration.
1351390075Sobrien	* method.c (make_thunk): Tweak mangling for vcall offset thunks.
1351490075Sobrien	Use int_size_in_bytes.
1351590075Sobrien	(emit_thunk): Handle vcall offset thunks.
1351618334Speter
1351790075SobrienSat Apr 15 16:00:01 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1351818334Speter
1351990075Sobrien	* decl2.c (parse_time, varconst_time): Delete declarations.
1352090075Sobrien	(finish_file): Delete LINENO declaration.
1352190075Sobrien	START_TIME and THIS_TIME now long.
1352218334Speter
1352390075Sobrien2000-04-13  Nathan Sidwell  <nathan@codesourcery.com>
1352418334Speter
1352590075Sobrien	* class.c (build_base_field): Reformat comment.
1352618334Speter
1352790075Sobrien	* inc/cxxabi.h (stddef.h): Comment inclusion.
1352890075Sobrien	(__base_class_info::__offset): Comment shift.
1352918334Speter
1353090075Sobrien2000-04-12  Mark Mitchell  <mark@codesourcery.com>
1353118334Speter
1353290075Sobrien	* cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro.
1353390075Sobrien	(cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER.
1353490075Sobrien	(cp_push_exception_identifier): New macro.
1353590075Sobrien	(DECL_COMPLETE_DESTRUCTOR_P): New macro.
1353690075Sobrien	(DECL_BASE_DESTRUCTOR_P): Likewise.
1353790075Sobrien	(DECL_DELETING_DESTRUCTOR_P): Likewise.
1353890075Sobrien	(get_vtbl_decl_for_binfo): Fix formatting.
1353990075Sobrien	(in_charge_arg_for_name): New macro.
1354090075Sobrien	(maybe_build_cleanup_and_delete): Remove declaration.
1354190075Sobrien	* call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P.
1354290075Sobrien	(in_charge_arg_for_name): New function.
1354390075Sobrien	(build_new_method_call): Use it.  Handle cloned destructors.
1354490075Sobrien	(build_clone): Don't make the base constructor virtual.
1354590075Sobrien	Automatically defer generated functions.
1354690075Sobrien	(clone_function_decl): Handle destructors, too.
1354790075Sobrien	(clone_constructors_and_destructors): Likewise.
1354890075Sobrien	(create_vtable_ptr): Don't create a vtable entry for a cloned
1354990075Sobrien	function.
1355090075Sobrien	* decl.c (predefined_identifier): Add ctor_or_dtor_p.
1355190075Sobrien	(initialize_predefined_identifiers): Update appropriately.
1355290075Sobrien	(finish_destructor_body): Simplify.
1355390075Sobrien	(maybe_build_cleanup_and_delete): Remove.
1355490075Sobrien	* except.c (expand_throw): Handle new-ABI destructors.
1355590075Sobrien	* init.c (expand_cleanup_for_base): Use base_dtor_identifier.
1355690075Sobrien	(build_dtor_call): New function.
1355790075Sobrien	(build_delete): Use it.  Simplify.
1355890075Sobrien	* optimize.c (maybe_clone_body): Handle destructors.
1355990075Sobrien	* search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P.
1356018334Speter
1356190075Sobrien	* exception.cc (cleanup_fn): New typedef.
1356290075Sobrien	(CALL_CLEANUP): New macro.
1356390075Sobrien	(cp_eh_info): Use them.
1356490075Sobrien	(__cp_push_exception): Likewise.
1356590075Sobrien	(__cp_pop_exception): Likewise.
1356618334Speter
1356790075Sobrien2000-04-11  Mark Mitchell  <mark@codesourcery.com>
1356818334Speter
1356990075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER.
1357090075Sobrien	(complete_dtor_identifier): New macro.
1357190075Sobrien	(CLASSTYPE_FIRST_CONVERSION): Remove.
1357290075Sobrien	(CLASSTYPE_CONSTRUCTOR_SLOT): New macro.
1357390075Sobrien	(CLASSTYPE_DESTRUCTOR_SLOT): Likewise.
1357490075Sobrien	(CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise.
1357590075Sobrien	(CLASSTYPE_CONSTRUCTORS): Likewise.
1357690075Sobrien	(CLASSTYPE_DESTRUCTORS): Likewise.
1357790075Sobrien	(lang_decl): Add cloned_function.
1357890075Sobrien	(DECL_COMPLETE_CONSTRUCTOR_P): New macro.
1357990075Sobrien	(DECL_BASE_CONSTRUCTOR_P): Likewise.
1358090075Sobrien	(DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise.
1358190075Sobrien	(DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise.
1358290075Sobrien	(DECL_CLONED_FUNCTION_P): Likewise.
1358390075Sobrien	(DECL_CLONED_FUNCTION): Likewise.
1358490075Sobrien	(clone_function_decl): Declare.
1358590075Sobrien	(maybe_clone_body): Likewise.
1358690075Sobrien	* call.c (build_user_type_conversion_1): Call complete object
1358790075Sobrien	constructors in the new ABI.
1358890075Sobrien	(build_new_method_call): Don't add in-charge parameters under the
1358990075Sobrien	new ABI.
1359090075Sobrien	* class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P,
1359190075Sobrien	DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and
1359290075Sobrien	CLASSTYPE_DESTRUCTOR_SLOT.
1359390075Sobrien	(build_clone): New function.
1359490075Sobrien	(clone_function_decl): Likewise.
1359590075Sobrien	(clone_constructors_and_destructors): Likewise.
1359690075Sobrien	(check_bases_and_members): Use it.
1359790075Sobrien	* decl.c (iniitialize_predefined_identifiers): Initialize
1359890075Sobrien	complete_dtor_identifier.
1359990075Sobrien	(finish_function): Don't add extra code to a clone.
1360090075Sobrien	(lang_mark_tree): Mark cloned_function.
1360190075Sobrien	* decl2.c (mark_used): Don't bother trying to instantiate things
1360290075Sobrien	we synthesized.
1360390075Sobrien	* dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice.
1360490075Sobrien	* method.c (set_mangled_name_for_decl): Don't treat clones as
1360590075Sobrien	constructors.
1360690075Sobrien	(synthesize_method): Sythesize cloned functions, not the clones.
1360790075Sobrien	* optimize.c (inline_data): Update comment on ret_label.
1360890075Sobrien	(remap_block): Don't assume DECL_INITIAL exists.
1360990075Sobrien	(copy_body_r): Allow ret_label to be NULL.
1361090075Sobrien	(maybe_clone_body): Define.
1361190075Sobrien	* pt.c (tsubst_decl): Handle clones.
1361290075Sobrien	(instantiate_clone): New function.
1361390075Sobrien	(instantiate_template): Use it.
1361490075Sobrien	(set_mangled_name_for_template_decl): Don't treat clones as
1361590075Sobrien	constructors.
1361690075Sobrien	* search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT,
1361790075Sobrien	CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT.
1361890075Sobrien	* semantics.c (expand_body): Clone function bodies as necessary.
1361918334Speter
1362090075Sobrien	* optimize.c (remap_decl): Avoid sharing structure for arrays
1362190075Sobrien	whose size is only known at run-time.
1362290075Sobrien	* tree.c (copy_tree_r): Don't copy PARM_DECLs.
1362318334Speter
1362490075Sobrien	* cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr
1362590075Sobrien	to has_in_charge_parm_p.
1362690075Sobrien	(DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ...
1362790075Sobrien	(DECL_HAS_IN_CHARGE_PARM_P): ... this.
1362890075Sobrien	(DECL_COPY_CONSTRUCTOR_P): New macro.
1362990075Sobrien	* call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P.
1363090075Sobrien	(build_user_type_conversion_1): Likewise.
1363190075Sobrien	(convert_like_real): Likewise.
1363290075Sobrien	(build_over_call): Likeiwse.  Use DECL_COPY_CONSTRUCTOR_P.
1363390075Sobrien	* decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P.
1363490075Sobrien	(copy_args_p): Likewise.
1363590075Sobrien	(grok_ctor_properties): Likewise.
1363650397Sobrien	(start_function): Likewise.
1363790075Sobrien	* decl2.c (maybe_retrofit_in_charge): Likewise.  Set it.
1363890075Sobrien	* error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P.
1363990075Sobrien	* init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P.
1364090075Sobrien	* method.c (do_build_copy_constructor): Use
1364190075Sobrien	DECL_HAS_IN_CHARGE_PARM_P.
1364290075Sobrien	(synthesize_method): Likewise.
1364390075Sobrien	* pt.c (instantiate_template): Remove goto.
1364490075Sobrien	* tree.c (build_cplus_method_type): Remove mention of obstacks in
1364590075Sobrien	comment.
1364650397Sobrien
1364790075Sobrien	* cp-tre.h (finish_function): Change prototype.
1364890075Sobrien	* decl.c (end_cleanup_fn): Adjust caller.
1364990075Sobrien	(finish_function): Take only one parameter.
1365090075Sobrien	* decl2.c (finish_objects): Adjust caller.
1365190075Sobrien	(finish_static_storage_duration_function): Likewise.
1365290075Sobrien	* method.c (emit_thunk): Likewise.
1365350397Sobrien	* parse.y: Likewise.
1365490075Sobrien	* parse.c: Regenerated.
1365590075Sobrien	* pt.c (instantiate_decl): Likewise.
1365690075Sobrien	* rtti.c (synthesize_tinfo_fn): Likewise.
1365790075Sobrien	* semantics.c (expand_body): Likewise.
1365852284Sobrien
1365990075Sobrien	* cp-tree.h (copy_decl): New function.
1366090075Sobrien	* class.c (finish_struct_1): Use it.
1366190075Sobrien	* lex.c (copy_decl): Define it.
1366290075Sobrien	* pt.c (tsubst_decl): Likewise.
1366390075Sobrien	* tree.c (copy_template_template_parm): Likewise.
1366418334Speter
1366590075Sobrien	* cp-tree.h (lang_type): Remove has_nonpublic_ctor and
1366690075Sobrien	has_nonpublic_assign_ref.
1366790075Sobrien	(TYPE_HAS_NONPUBLIC_CTOR): Don't declare.
1366890075Sobrien	(TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise.
1366990075Sobrien	* class.c (finish_struct_methods): Don't set
1367090075Sobrien	TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF.
1367190075Sobrien	(interface_only): Don't declare.
1367290075Sobrien	(interface_unknown): Likewise.
1367318334Speter
1367490075Sobrien2000-04-11  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1367518334Speter
1367690075Sobrien	* tree.h (HAVE_TEMPLATES): Remove definition.
1367790075Sobrien	* lang-options.h (-fthis-is-variable): Remove documentation.
1367852284Sobrien
1367990075Sobrien2000-04-10  Jason Merrill  <jason@casey.cygnus.com>
1368052284Sobrien
1368190075Sobrien	* class.c (instantiate_type): Handle object-relative template-id.
1368218334Speter
1368390075Sobrien	* semantics.c (finish_expr_stmt): Call convert_to_void here.
1368490075Sobrien	* decl.c (cplus_expand_expr_stmt): Not here.
1368518334Speter
1368690075Sobrien	* rtti.c (build_dynamic_cast_1): Call non_lvalue.
1368790075Sobrien	Initialize exprtype earlier.
1368818334Speter
1368990075Sobrien	* parse.y (fn.def1): Check for defining types in return types.
1369018334Speter
1369190075Sobrien	* decl.c (check_tag_decl): Notice extra fundamental types.
1369290075Sobrien	Diagnose empty decls in classes, too.
1369318334Speter
1369490075Sobrien	* decl.c (grokdeclarator): Don't override an anonymous name if no
1369590075Sobrien	declarator was given.
1369618334Speter
1369790075Sobrien	* cvt.c (convert_to_void): Call resolve_offset_ref.
1369818334Speter
1369990075Sobrien	* typeck.c (build_x_function_call): Abort if we get an OFFSET_REF.
1370018334Speter
1370190075Sobrien	* decl2.c (decl_namespace): Handle getting a type.
1370218334Speter
1370390075Sobrien	* typeck.c (build_c_cast): Re-enable warning for cast between
1370490075Sobrien	pointer and integer of different size.
1370518334Speter
1370690075Sobrien2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
1370718334Speter
1370890075Sobrien	* inc/cxxabi.h (__pointer_type_info): Add restrict and
1370990075Sobrien	incomplete flags.
1371090075Sobrien	(__pointer_type_info::__pointer_catch): New virtual function.
1371190075Sobrien	(__pointer_to_member_type_info): Derive from
1371290075Sobrien	__pointer_type_info. Adjust.
1371390075Sobrien	(__pointer_to_member_type_info::__do_catch): Remove.
1371490075Sobrien	(__pointer_to_member_type_info::__is_pointer_p): Declare.
1371590075Sobrien	(__pointer_to_member_type_info::__pointer_catch): Declare.
1371690075Sobrien	* rtti.c (qualifier_flags): Add restrict flag.
1371790075Sobrien	(ptmd_initializer): Reorder members.
1371890075Sobrien	(create_tinfo_types): Expand comments. Reorder
1371990075Sobrien	ptmd_desc_type_node members.
1372090075Sobrien	* tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p):
1372190075Sobrien	Implement.
1372290075Sobrien	(__pointer_type_info::__do_catch): Move specific code into
1372390075Sobrien	__pointer_catch. Call it.
1372490075Sobrien	(__pointer_type_info::__pointer_catch): Non-pointer-to-member
1372590075Sobrien	specific catch checking. Fix void conversion check.
1372690075Sobrien	(__pointer_to_member_type_info::__do_catch): Remove.
1372790075Sobrien	(__pointer_to_member_type_info::__pointer_catch): Implement.
1372818334Speter
1372990075Sobrien2000-04-10  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1373018334Speter
1373190075Sobrien	* lex.c (init_parse): Remove traces of classof and headof.
1373290075Sobrien	* decl2.c (flag_operator_names): Default to 1.
1373390075Sobrien	(lang_decode_option): Do not set it for -ansi.
1373418334Speter
1373590075Sobrien2000-04-09  Mark Mitchell  <mark@codesourcery.com>
1373618334Speter
1373790075Sobrien	* cp-tree.h (struct lang_decl): Remove main_decl_variant.
1373890075Sobrien	(DECL_MAIN_VARIANT): Remove.
1373990075Sobrien	* decl.c (duplicate_decls): Don't set it.
1374090075Sobrien	(start_function): Likewise.
1374190075Sobrien	(lang_mark_tree): Don't mark it.
1374290075Sobrien	* decl2.c (defer_fn): Don't use it.
1374390075Sobrien	* lex.c (retrofit_lang_decl): Don't set it.
1374490075Sobrien	* pt.c (tsubst_decl): Likewise.
1374590075Sobrien	* ptree.c (print_lang_decl): Don't print it.
1374690075Sobrien	* typeck.c (mark_addressable): Don't use it.
1374718334Speter
1374890075Sobrien2000-04-09  Nathan Sidwell  <nathan@codesourcery.com>
1374918334Speter
1375090075Sobrien	* vec.cc: Include <new> and <exception>.
1375190075Sobrien	(__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup.
1375290075Sobrien	(__cxa_vec_dtor): Catch dtor exceptions, and rethrow or
1375390075Sobrien	terminate.
1375490075Sobrien	(__cxa_vec_delete): Catch dtor exceptions.
1375518334Speter
1375690075Sobrien2000-04-09  Nathan Sidwell  <nathan@codesourcery.com>
1375718334Speter
1375890075Sobrien	Prepend __ to implementation defined names.
1375990075Sobrien	* inc/typeinfo (type_info): Rename _name to __name.
1376090075Sobrien	(type_info::type_info): Rename parameter.
1376190075Sobrien	(type_info::operator==, type_info::operator!=,
1376290075Sobrien	type_info::before): Likewise.
1376390075Sobrien	(type_info::is_pointer_p, type_info::is_function_p,
1376490075Sobrien	type_info::do_catch, type_info::do_upcast): Prepend __. Rename
1376590075Sobrien	parameters.
1376690075Sobrien	* inc/cxxabi.h
1376790075Sobrien	(__fundamental_type_info::__fundamental_type_info) Rename parameters.
1376890075Sobrien	(__pointer_type_info::__pointer_type_info): Likewise.
1376990075Sobrien	(__pointer_type_info::is_pointer_p,
1377090075Sobrien	__pointer_type_info::do_catch): Prepend __. Rename parameters.
1377190075Sobrien	(__array_type_info::__array_type_info): Rename parameters.
1377290075Sobrien	(__function_type_info::__function_type_info): Likewise.
1377390075Sobrien	(__function_type_info::is_function_p): Prepend __.
1377490075Sobrien	(__enum_type_info::__enum_type_info): Rename parameters.
1377590075Sobrien	(__pointer_to_member_type_info::__pointer_to_member_type_info):
1377690075Sobrien	Likewise.
1377790075Sobrien	(__pointer_to_member_type_info::do_catch): Prepend __. Rename
1377890075Sobrien	parameters.
1377990075Sobrien	(__base_class_info::is_virtual_p, is_public_p, offset): Prepend	__.
1378090075Sobrien	(__class_type_info::__class_type_info): Rename parameters.
1378190075Sobrien	(__class_type_info::sub_kind): Prepend __. Adjust member names.
1378290075Sobrien	(__class_type_info::upcast_result,
1378390075Sobrien	__class_type_info::dyncast_result): Prepend __. Move definition
1378490075Sobrien	into tinfo.cc.
1378590075Sobrien	(__class_type_info::do_upcast, __class_type_info::do_catch,
1378690075Sobrien	__class_type_info::find_public_src,
1378790075Sobrien	__class_type_info::do_dyncast,
1378890075Sobrien	__class_type_info::do_find_public_src): Prepend __. Rename
1378990075Sobrien	parameters.
1379090075Sobrien	(__si_class_type_info::__si_class_type_info): Rename parameters.
1379190075Sobrien	(__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast,
1379290075Sobrien	__si_class_type_info::do_find_public_src): Prepent __. Rename
1379390075Sobrien	parameters.
1379490075Sobrien	(__vmi_class_type_info::__vmi_class_type_info): Rename parameters.
1379590075Sobrien	(__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast,
1379690075Sobrien	__vmi_class_type_info::do_find_public_src): Prepent __. Rename
1379790075Sobrien	parameters.
1379890075Sobrien	(__dynamic_cast): Rename parameters.
1379990075Sobrien	* tinfo.cc (type_info::is_pointer_p, type_info::is_function_p,
1380090075Sobrien	type_info::do_catch, type_info::do_upcast): Prepend __.
1380190075Sobrien	(contained_p, public_p, virtual_p, contained_public_p,
1380290075Sobrien	contained_nonpublic_p, contained_nonvirtual_p): Adjust.
1380390075Sobrien	(__class_type_info::do_catch,
1380490075Sobrien	__class_type_info::do_upcast): Prepend __. Adjust.
1380590075Sobrien	(__class_type_info::__upcast_result,
1380690075Sobrien	__class_type_info::__dyncast_result): Move from inc/cxxabi.h.
1380790075Sobrien	Adjust.
1380890075Sobrien	(__class_type_info::find_public_src): Prepend __. Adjust.
1380990075Sobrien	(__class_type_info::do_find_public_src,
1381090075Sobrien	__si_class_type_info::do_find_public_src,
1381190075Sobrien	__vmi_class_type_info::do_find_public_src): Likewise.
1381290075Sobrien	(__class_type_info::do_dyncast,
1381390075Sobrien	__si_class_type_info::do_dyncast,
1381490075Sobrien	__vmi_class_type_info::do_dyncast): Likewise.
1381590075Sobrien	(__class_type_info::do_upcast,
1381690075Sobrien	__si_class_type_info::do_upcast,
1381790075Sobrien	__vmi_class_type_info::do_upcast): Likewise.
1381890075Sobrien	(__dynamic_cast): Adjust.
1381990075Sobrien	* tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __.
1382090075Sobrien	(__function_type_info::is_function_p): Likewise.
1382190075Sobrien	(__pointer_type_info::do_catch): Likewise. Adjust.
1382290075Sobrien	(__pointer_to_member_type_info::do_catch): Likewise. Adjust.
1382390075Sobrien	(__throw_type_match_rtti_2): Adjust.
1382490075Sobrien	(__is_pointer): Adjust.
1382518334Speter
1382690075Sobrien2000-04-08  Mark Mitchell  <mark@codesourcery.com>
1382718334Speter
1382890075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER.
1382990075Sobrien	(complete_ctor_identifier): New macro.
1383090075Sobrien	(special_function_kind): Add sfk_copy_constructor and
1383190075Sobrien	sfk_assignment_operator.
1383290075Sobrien	(LOOKUP_HAS_IN_CHARGE): Remove.
1383390075Sobrien	(cons_up_default_function): Rename to ...
1383490075Sobrien	(implicitly_declare_fn): ... this.
1383590075Sobrien	* call.c (build_new_method_call): Add in-charge parameters for
1383690075Sobrien	constructors here.
1383790075Sobrien	* class.c (add_implicitly_declared_members): Change parameter name
1383890075Sobrien	from cant_have_assignment to cant_have_const_assignment.
1383990075Sobrien	Replace calls to cons_up_default_function to implicitly_declare_fn.
1384090075Sobrien	* cvt.c (ocp_convert): Use complete_ctor_identifier.
1384190075Sobrien	* decl.c (initialize_predefined_identifiers): Initialize it.
1384290075Sobrien	(start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of
1384390075Sobrien	complex expression.
1384490075Sobrien	* init.c (expand_default_init): Don't calculate the in-charge
1384590075Sobrien	parameter here.
1384690075Sobrien	(build_new_1): Likewise.
1384790075Sobrien	* lex.c (cons_up_default_function): Move to method.c.
1384890075Sobrien	* method.c (synthesize_method): Use DECL_DESTRUCTOR_P.
1384990075Sobrien	(implicitly_declare_fn): New function.
1385090075Sobrien	* typeck.c (build_static_cast): Use complete_ctor_identifier.
1385190075Sobrien	(build_modify_expr): Likewise.
1385290075Sobrien	* typeck2.c (build_functional_cast): Likewise.
1385318334Speter
1385490075Sobrien	Under the new ABI, constructors don't return `this'.
1385590075Sobrien	* cp-tree.h (warn_reorder): Declare.
1385690075Sobrien	(special_function_kind): New enum.
1385790075Sobrien	(global_base_init_list): Remove declaration.
1385890075Sobrien	(emit_base_init): Don't return a value.
1385990075Sobrien	(check_base_init): Don't declare.
1386090075Sobrien	(is_aggr_typedef): Likewise.
1386190075Sobrien	* decl.c (check_special_function_return_type): New function.
1386290075Sobrien	(return_types): Remove.
1386390075Sobrien	(grokdeclarator): Use check_special_function_return_type.
1386490075Sobrien	(start_function): Don't initialize ctor_label under the new ABI.
1386590075Sobrien	(finish_construtor_body): Don't create a corresponding LABEL_STMT.
1386690075Sobrien	* init.c (begin_init_stmts): Move to top of file.
1386790075Sobrien	(finish_init_stmts): Likewise.
1386890075Sobrien	(warn_reorder): Don't declare.
1386990075Sobrien	(emit_base_init): Don't create a STMT_EXPR here.  Don't return a
1387090075Sobrien	value.
1387190075Sobrien	(check_base_init): Remove.
1387290075Sobrien	(is_aggr_typedef): Likewise.
1387390075Sobrien	(build_new_1): Don't use the return value of a constructor.
1387490075Sobrien	* semantics.c (setup_vtbl_ptr): Don't use the return value
1387590075Sobrien	of emit_base_init.
1387690075Sobrien	* typeck.c (check_return_expr): Don't magically convert return
1387790075Sobrien	statements into `return this' in constructors under the new ABI.
1387818334Speter
1387990075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER,
1388090075Sobrien	CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER.
1388190075Sobrien	(base_ctor_identifier): New macro.
1388290075Sobrien	(base_dtor_identifier): Likewise.
1388390075Sobrien	(deleting_dtor_identifier): Likewise.
1388490075Sobrien	* decl.c: Don't include obstack.h.
1388590075Sobrien	(obstack_chunk_alloc): Don't define.
1388690075Sobrien	(obstack_chunk_free): Likewise.
1388790075Sobrien	(struct predefined_identifier): New type.
1388890075Sobrien	(initialize_predefined_identifiers): New function.
1388990075Sobrien	(init_decl_processing): Use it.
1389090075Sobrien	(debug_temp_inits): Remove.
1389190075Sobrien	(start_method): Don't call preserve_data.
1389290075Sobrien	(hack_incomplete_structures): Update comment.
1389390075Sobrien	* init.c (init_init_processing): Don't initialize
1389490075Sobrien	nelts_identifier.
1389590075Sobrien	(build_offset_rf): Remove dead code.
1389690075Sobrien	(build_delete): Use CLASSTYPE_N_BASECLASSES.
1389790075Sobrien	* search.c (init_search_processing): Don't initialize
1389890075Sobrien	vptr_identifier.
1389918334Speter
1390090075Sobrien2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1390118334Speter
1390290075Sobrien	* typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide
1390390075Sobrien	some sign_compare warnings.
1390418334Speter
1390590075Sobrien2000-04-07  Nathan Sidwell  <nathan@codesourcery.com>
1390618334Speter
1390790075Sobrien	Rename abi::__vmi_class_type_info members.
1390890075Sobrien	* inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases,
1390990075Sobrien	base_list, detail_masks members to vmi_flags, vmi_base_count,
1391090075Sobrien	vmi_bases and vmi_flags_masks respectively.
1391190075Sobrien	(__vmi_class_type_info::vmi_flags_masks): Rename
1391290075Sobrien	details_unknown_mask to flags_unknown_mask.
1391390075Sobrien	* tinfo.cc (__class_type_info::do_upcast): Adjust.
1391490075Sobrien	(__vmi_class_type_info::do_find_public_src): Adjust.
1391590075Sobrien	(__vmi_class_type_info::do_dyncast): Adjust.
1391690075Sobrien	(__vmi_class_type_info::do_upcast): Adjust.
1391718334Speter
1391890075Sobrien2000-04-07  Nathan Sidwell  <nathan@codesourcery.com>
1391918334Speter
1392090075Sobrien	* tinfo.cc (convert_to_base): New function.
1392190075Sobrien	(get_vbase_offset): Remove. Move into convert_to_base.
1392290075Sobrien	(__vmi_class_type_info::do_find_public_src): Adjust.
1392390075Sobrien	(__vmi_class_type_info::do_dyncast): Adjust.
1392490075Sobrien	(__vmi_class_type_info::do_upcast): Adjust.
1392518334Speter
1392690075Sobrien2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
1392718334Speter
1392890075Sobrien	* tinfo.cc (operator=): Use __builtin_strcmp.
1392990075Sobrien	* tinfo2.cc (before): Likewise.
1393018334Speter
1393190075Sobrien2000-04-06  Mark Mitchell  <mark@codesourcery.com>
1393218334Speter
1393390075Sobrien	* cp-tree.h (lang_decl_flags): Rename saved_inline to deferred.
1393490075Sobrien	(DECL_SAVED_INLINE): Rename to ...
1393590075Sobrien	(DECL_DEFERRED_FN): ... this.
1393690075Sobrien	(in_function_p): Remove declaration.
1393790075Sobrien	(mark_inline_for_output): Rename to ...
1393890075Sobrien	(defer_fn): ... this.
1393990075Sobrien	* decl.c (finish_function): Adjust call to mark_inline_for_output.
1394090075Sobrien	(in_function_p): Remove definition.
1394190075Sobrien	* decl2.c (saved_inlines): Rename to ...
1394290075Sobrien	(deferred_fns): ... this.
1394390075Sobrien	(saved_inlines_used): Rename to ...
1394490075Sobrien	(deferred_fns_used): ... this.
1394590075Sobrien	(mark_inline_for_output): Rename to ...
1394690075Sobrien	(defer_fn): ... this.
1394790075Sobrien	(finish_file): Adjust accordingly.
1394890075Sobrien	(init_decl2): Likewise.
1394990075Sobrien	* lex.c (cons_up_default_function): Likewise.
1395090075Sobrien	* pt.c (mark_decl_instantiated): Likewise.
1395190075Sobrien	(instantiate_decl): Don't set DECL_DEFER_OUTPUT under any
1395290075Sobrien	circumstances.
1395390075Sobrien	* rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output.
1395490075Sobrien	* semantics.c (expand_body): Defer more functions.
1395518334Speter
1395690075Sobrien2000-04-06  Nathan Sidwell  <nathan@codesourcery.com>
1395718334Speter
1395890075Sobrien	* vec.cc: New file.
1395990075Sobrien	* Make-lang.in (CXX_LIB2FUNCS): Add it.
1396090075Sobrien	(vec.o): Build it.
1396190075Sobrien	* inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
1396290075Sobrien	__cxa_vec_delete): Declare.
1396318334Speter
1396490075Sobrien2000-04-06  Nathan Sidwell  <nathan@codesourcery.com>
1396518334Speter
1396690075Sobrien	* rtti.c (dfs_class_hint_mark): New static function.
1396790075Sobrien	(dfs_class_hint_unmark): New static function.
1396890075Sobrien	(class_hint_flags): Use them.
1396918334Speter
1397090075Sobrien2000-04-05  Benjamin Kosnik  <bkoz@cygnus.com>
1397118334Speter
1397290075Sobrien	* decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE.
1397318334Speter
1397490075Sobrien2000-04-05  Mark Mitchell  <mark@codesourcery.com>
1397518334Speter
1397690075Sobrien	* cp-tree.h (instantiate_decl): Change prototype.
1397790075Sobrien	* decl2.c (mark_used): Adjust call.
1397890075Sobrien	* optimize.c (inlinable_function_p): Adjust handling of templates.
1397990075Sobrien	* pt.c (do_decl_instantiation): Adjust call to instantiate_decl.
1398090075Sobrien	(do_type_instantiation): Likewise.
1398190075Sobrien	(instantiate_decl): Defer more templates.
1398290075Sobrien	(instantiate_pending_templates): Adjust logic to handle inline
1398390075Sobrien	friend functions.
1398418334Speter
1398590075Sobrien	* Makefile.in (GGC_H): New variable.  Use it throughout in place
1398690075Sobrien	of ggc.h.
1398718334Speter
1398890075Sobrien	* call.c: Don't include obstack.h.  Include ggc.h.
1398990075Sobrien	(obstack_chunk_alloc): Don't define.
1399090075Sobrien	(obstack_chunk_free): Likewise.
1399190075Sobrien	(add_candidate): Allocate the z_candidate with ggc_alloc_obj.
1399290075Sobrien	* decl.c (push_switch): Use xmalloc to allocate the cp_switch.
1399390075Sobrien	(pop_switch): Free it.
1399418334Speter
1399590075Sobrien	* decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs.
1399618334Speter
1399790075Sobrien	* dump.c (dequeue_and_dump): Don't try to print the bit_position
1399890075Sobrien	if we don't have a DECL_FIELD_OFFSET.
1399918334Speter
1400090075SobrienWed Apr  5 15:12:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1400118334Speter
1400290075Sobrien	* optimize.c (calls_setjmp_r): Use setjmp_call_p instead of
1400390075Sobrien	special_function_p.
1400418334Speter
1400590075Sobrien2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1400618334Speter
1400790075Sobrien	* cfns.gperf (hash, libc_name_p): Prototype.
1400818334Speter
1400990075Sobrien	* rtti.c (build_dynamic_cast_1): Constification.
1401018334Speter
1401190075Sobrien	* search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes.
1401218334Speter
1401390075Sobrien	* semantics.c (deferred_type_access_control): Prototype.
1401418334Speter
1401590075Sobrien2000-04-04  Mark Mitchell  <mark@codesourcery.com>
1401618334Speter
1401790075Sobrien	Correct many new ABI issues regarding vbase and vcall offset
1401890075Sobrien	layout.
1401990075Sobrien	* cp-tree.h (BINFO_VTABLE): Document.
1402090075Sobrien	(struct lang_type): Tweak formatting.
1402190075Sobrien	(BINFO_PRIMARY_BINFO): Add to documentation.
1402290075Sobrien	(CLASSTYPE_VSIZE): Fix typo in comment.
1402390075Sobrien	(CLASSTYPE_VBASECLASSES): Update documentation.
1402490075Sobrien	(BINFO_VBASE_MARKED): Remove.
1402590075Sobrien	(SET_BINFO_VBASE_MARKED): Likewise.
1402690075Sobrien	(CLEAR_BINFO_VBASE_MARKED): Likewise.
1402790075Sobrien	(BINFO_FIELDS_MARKED): Remove.
1402890075Sobrien	(SET_BINFO_FIELDS_MARKED): Likewise.
1402990075Sobrien	(CLEAR_BINFO_FIELDS_MARKED): Likewise.
1403090075Sobrien	(enum access_kind): New enumeration.
1403190075Sobrien	(num_extra_vtbl_entries): Remove declaration.
1403290075Sobrien	(size_extra_vtbl_entries): Likewise.
1403390075Sobrien	(get_vtbl_decl_for_binfo): New function.
1403490075Sobrien	(dfs_vbase_unmark): Remove declaration.
1403590075Sobrien	(mark_primary_bases): Likewise.
1403690075Sobrien	* class.c (SAME_FN): Remove.
1403790075Sobrien	(struct vcall_offset_data_s): Move definition.
1403890075Sobrien	(build_vbase_pointer): Use `build', not `build_binary_op', to
1403990075Sobrien	access the vbase pointer under the new ABI.
1404090075Sobrien	(build_vtable_entry_ref): Use get_vtbl_decl_for_binfo.
1404190075Sobrien	(build_primary_vtable): Likewise.
1404290075Sobrien	(dfs_mark_primary_bases): Move here from search.c.
1404390075Sobrien	(mark_primary_bases): Likewise.
1404490075Sobrien	(determine_primary_bases): Under the new ABI, don't make a base
1404590075Sobrien	class a primary base just because we don't yet have any virtual
1404690075Sobrien	functions.
1404790075Sobrien	(layout_vtable_decl): Use get_vtbl_decl_for_binfo.
1404890075Sobrien	(num_vfun_entries): Remove.
1404990075Sobrien	(dfs_count_virtuals): Likewise.
1405090075Sobrien	(num_extra_vtbl_entries): Likewise.
1405190075Sobrien	(size_extra_vtbl_entries): Likewise.
1405290075Sobrien	(layout_virtual_bases): Iterate in inheritance graph order under
1405390075Sobrien	the new ABI.
1405490075Sobrien	(finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to
1405590075Sobrien	indicate that a vfield is present.
1405690075Sobrien	(init_class_processing): Initialize access_public_node, etc., from
1405790075Sobrien	ak_public, etc.
1405890075Sobrien	(get_vtbl_decl_for_binfo): New function.
1405990075Sobrien	(dump_class_hierarchy_r): Likewise.
1406090075Sobrien	(dump_class_hierarchy): Use it.
1406190075Sobrien	(finish_vtbls): Build the vtbls in inheritance graph order.
1406290075Sobrien	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
1406390075Sobrien	(initialize_vtable): Use get_vtbl_decl_for_binfo.
1406490075Sobrien	(accumulate_vtbl_inits): Add comments explaining why a pre-order
1406590075Sobrien	walk is required.
1406690075Sobrien	(dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location
1406790075Sobrien	where the vptr points, even for primary vtables.
1406890075Sobrien	(build_vtbl_initializer): Adjust handling of vbase and vcall
1406990075Sobrien	offsets.
1407090075Sobrien	(build_vcall_and_vbase_vtable_entries): New function.
1407190075Sobrien	(dfs_build_vbase_offset_vtbl_entries): Remove.
1407290075Sobrien	(build_vbase_offset_vtbl_entries): Reimplement.
1407390075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that
1407490075Sobrien	were already handled in a primary base class vtable.
1407590075Sobrien	(build_vcall_offset_vtbl_entries): Adjust.
1407690075Sobrien	(build_rtti_vtbl_entries): Adjust.
1407790075Sobrien	* decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo.
1407890075Sobrien	* init.c (expand_virtual_init): Simplify.
1407990075Sobrien	* repo.c (repo_get_id): Use get_vtbl_decl_for_binfo.
1408090075Sobrien	* rtti.c (create_pseudo_type_info): Adjust calculation of vptr.
1408190075Sobrien	* search.c (BINFO_ACCESS): New macro.
1408290075Sobrien	(SET_BINFO_ACCESS): Likewise.
1408390075Sobrien	(dfs_access_in_type): Manipulate access_kinds, not access nodes.
1408490075Sobrien	(access_in_type): Likewise.
1408590075Sobrien	(dfs_accessible_p): Likewise.
1408690075Sobrien	(protected_accessible_p): Likewise.
1408790075Sobrien	(lookup_fnfields_1): Adjust documentation.
1408890075Sobrien	(dfs_mark_primary_bases): Move to class.c
1408990075Sobrien	(mark_primary_bases): Likewise.
1409090075Sobrien	(dfs_vbase_unmark): Remove.
1409190075Sobrien	(virtual_context): Use BINFO_FOR_VBASE.
1409290075Sobrien	(dfs_get_vbase_types): Simplify.
1409390075Sobrien	(dfs_build_inheritance_graph_order): New function.
1409490075Sobrien	(get_vbase_types): Use it.
1409590075Sobrien	* tree.c (debug_binfo): Use get_vtbl_decl_for_binfo.
1409618334Speter
1409790075Sobrien	* tinfo.cc (get_vbase_offset): New function.
1409890075Sobrien	(__vmi_class_type_info::do_find_public_src): Use it.
1409990075Sobrien	(__vmi_class_type_info::do_dyncast): Likewise.
1410090075Sobrien	(__vmi_class_type_info::do_upcast): Likewise.
1410118334Speter
1410290075Sobrien2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
1410318334Speter
1410490075Sobrien	* lang-specs.h: Pass -fno-show-column to the preprocessor.
1410518334Speter
1410690075Sobrien2000-03-30  Nathan Sidwell  <nathan@codesourcery.com>
1410718334Speter
1410890075Sobrien	* rtti.c (class_hint_flags): Rename flags.
1410990075Sobrien	(class_initializer): Remove flags.
1411090075Sobrien	(synthesize_tinfo_var): Combine offset and flags. Add flags
1411190075Sobrien	for __vmi_class_type_info.
1411290075Sobrien	(create_tinfo_types): Remove flags from __class_type_info and
1411390075Sobrien	__si_class_type_info. Merge flags and offset from
1411490075Sobrien	base_class_type_info.
1411590075Sobrien	* inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags.
1411690075Sobrien	(__base_class_info::is_virtual_p): Adjust.
1411790075Sobrien	(__base_class_info::is_public_p): Adjust.
1411890075Sobrien	(__base_class_info::offset): New accessor.
1411990075Sobrien	(__class_type_info::details): Remove member.
1412090075Sobrien	(__class_type_info::__class_type_info): Lose details.
1412190075Sobrien	(__class_type_info::detail_masks): Remove.
1412290075Sobrien	(__si_class_type_info::__si_class_type_info): Lose details.
1412390075Sobrien	(__vmi_class_type_info::details): New member.
1412490075Sobrien	(__vmi_class_type_info::__vmi_class_type_info): Adjust.
1412590075Sobrien	(__vmi_class_type_info::detail_masks): New member.
1412690075Sobrien	* tinfo.cc (__class_type_info::do_upcast): Initialize result
1412790075Sobrien	with unknown_details_mask.
1412890075Sobrien	(__vmi_class_type_info::do_find_public_src): Adjust
1412990075Sobrien	(__vmi_class_type_info::do_dyncast): Adjust.
1413090075Sobrien	(__vmi_class_type_info::do_upcast): Set result details, if
1413190075Sobrien	needed. Adjust.
1413290075Sobrien	(__dynamic_cast): Temporarily #if out optimization.
1413318334Speter
1413490075Sobrien2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
1413518334Speter
1413690075Sobrien	* rtti.c (get_tinfo_decl): Mark used.
1413790075Sobrien	(emit_tinfo_decl): Don't optimize polymorphic type_info. Only
1413890075Sobrien	mark as dealt with, if we output it.
1413918334Speter
1414090075Sobrien2000-03-28  Mark Mitchell  <mark@codesourcery.com>
1414118334Speter
1414290075Sobrien	* class.c: Reorganize to put virtual function table initialization
1414390075Sobrien	machinery at the end of the file.
1414418334Speter
1414590075Sobrien2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
1414618334Speter
1414790075Sobrien	* class.c (finish_struct): Use bitsize_zero_node.
1414890075Sobrien	* pt.c (instantiate_class_template): Likewise.
1414918334Speter
1415090075Sobrien2000-03-28  Mark Mitchell  <mark@codesourcery.com>
1415118334Speter
1415290075Sobrien	Put RTTI entries at negative offsets in new ABI.
1415390075Sobrien	* class.c (dfs_build_vbase_offset_vtbl_entries): Put the first
1415490075Sobrien	vbase offset at index -3, not -1.
1415590075Sobrien	(build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not
1415690075Sobrien	dfs_vtable_path_unmarked_real_bases_queue_p to walk bases.
1415790075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff.
1415890075Sobrien	(build_rtti_vtbl_entries): New function.
1415990075Sobrien	(set_rtti_entry): Remove.
1416090075Sobrien	(build_primary_vtable): Don't use it.
1416190075Sobrien	(build_secondary_vtable): Likewise.
1416290075Sobrien	(start_vtable): Remove.
1416390075Sobrien	(first_vfun_index): New function.
1416490075Sobrien	(set_vindex): Likewise.
1416590075Sobrien	(add_virtual_function): Don't call start_vtable.  Do call
1416690075Sobrien	set_vindex.
1416790075Sobrien	(set_primary_base): Rename parameter.
1416890075Sobrien	(determine_primary_base): Likewise.
1416990075Sobrien	(num_vfun_entries): Don't use skip_rtti_stuff.
1417090075Sobrien	(num_extra_vtbl_entries): Include RTTI information.
1417190075Sobrien	(build_vtbl_initializer): Use build_rtti_vtbl_entries.
1417290075Sobrien	(skip_rtti_stuff): Remove.
1417390075Sobrien	(dfs_modify_vtables): Don't use it.
1417490075Sobrien	(modify_all_vtables): Don't use start_vtable.  Do use set_vindex.
1417590075Sobrien	(layout_nonempty_base_or_field): Update size handling.
1417690075Sobrien	(create_vtable_ptr): Tweak.
1417790075Sobrien	(layout_class_type): Adjust parameter names.
1417890075Sobrien	(finish_struct_1): Simplify.
1417990075Sobrien	* cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation.
1418090075Sobrien	(skip_rtti_stuff): Remove.
1418190075Sobrien	(first_vfun_index): New function.
1418290075Sobrien	(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
1418390075Sobrien	(dfs_vtable_path_marked_real_bases_queue_p): Remove.
1418490075Sobrien	(marked_vtable_pathp): Declare.
1418590075Sobrien	(unmarked_vtable_pathp): Likewise.
1418690075Sobrien	* error.c (dump_expr): Use first_vfun_index to calculate vtable
1418790075Sobrien	offsets.
1418890075Sobrien	* rtti.c (build_headof): Look for RTTI at negative offsets.
1418990075Sobrien	(get_tinfo_decl_dynamic): Likewise.
1419090075Sobrien	(tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL
1419190075Sobrien	here.
1419290075Sobrien	(create_pseudo_type_info): Do it here instead.  Adjust so that
1419390075Sobrien	vptr points at first virtual function.
1419490075Sobrien	* search.c (marked_vtable_pathp): Make it global.
1419590075Sobrien	(unmarked_vtable_pathp): Likewise.
1419690075Sobrien	(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
1419790075Sobrien	(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
1419890075Sobrien	(dfs_get_pure_virtuals): Don't use skip_rtti_stuff.
1419990075Sobrien	(get_pure_virtuals): Likewise.
1420090075Sobrien	(expand_upcast_fixups): Likewise.
1420190075Sobrien	* tree.c (debug_binfo): Likewise.
1420290075Sobrien	* tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate
1420390075Sobrien	negative offset.
1420418334Speter
1420590075SobrienSun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1420618334Speter
1420790075Sobrien	* class.c (check_field_decl): Fix typo.
1420890075Sobrien	(build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS.
1420990075Sobrien	(check_methods): Likewise.
1421090075Sobrien	(check_field_decls): Likewise.
1421190075Sobrien	Use DECL_CONTEXT, not DECL_FIELD_CONTEXT.
1421290075Sobrien	* cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT):
1421390075Sobrien	Use DECL_RESULT_FLD, not DECL_RESULT.
1421490075Sobrien	* decl.c (xref_tag): Use DECL_TEMPLATE_RESULT.
1421590075Sobrien	* lex.c (identifier_type): Likewise.
1421690075Sobrien	* pt.c (determine_specialization, lookup_template_class): Likewise.
1421790075Sobrien	(tsubst_friend_function, tsubst_decl, instantiate_template): Likewise.
1421890075Sobrien	(resolve_overloaded_unification, more_specialized): Likewise.
1421990075Sobrien	* semantics.c (finish_member_declaration): Likewise.
1422090075Sobrien	* typeck.c (build_x_function_call): Likewise.
1422118334Speter
1422290075Sobrien2000-03-26  Mark Mitchell  <mark@codesourcery.com>
1422318334Speter
1422490075Sobrien	* class.c (layout_empty_base): Handle empty bases with non-byte
1422590075Sobrien	alignment.
1422690075Sobrien	(build_base_field): Likewise.
1422790075Sobrien	(layout_virtual_bases): Likewise.
1422818334Speter
1422990075Sobrien	* class.c (finish_struct_1): Fix typo in this change:
1423018334Speter
1423190075Sobrien	Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1423218334Speter
1423390075Sobrien2000-03-25  Mark Mitchell  <mark@codesourcery.com>
1423418334Speter
1423590075Sobrien	* decl.c (grokdeclarator): Count partial specializations when
1423690075Sobrien	keeping track of how many template classes have been seen.
1423718334Speter
1423890075Sobrien	* dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT.
1423918334Speter
1424090075SobrienSat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1424118334Speter
1424290075Sobrien	* class.c (build_vbase_pointer_fields): layout_field now place_field.
1424390075Sobrien	(get_vfield_offset): Use byte_position.
1424490075Sobrien	(set_rtti_entry): Set OFFSET to ssizetype zero.
1424590075Sobrien	(get_binfo_offset_as_int): Deleted.
1424690075Sobrien	(dfs_record_base_offsets): Use tree_low_cst.
1424790075Sobrien	(dfs_search_base_offsets): Likewise.
1424890075Sobrien	(layout_nonempty_base_or_field): Reflect changes in RLI format
1424990075Sobrien	and call byte_position.
1425090075Sobrien	(layout_empty_base): Convert offset to ssizetype.
1425190075Sobrien	(build_base_field): use rli_size_unit_so_far.
1425290075Sobrien	(dfs_propagate_binfo_offsets): Do computation in proper type.
1425390075Sobrien	(layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets.
1425490075Sobrien	(layout_class_type): Reflect changes in RLI names and fields.
1425590075Sobrien	(finish_struct_1): Set DECL_FIELD_OFFSET.
1425690075Sobrien	* dump.c (dequeue_and_dump): Call bit_position.
1425790075Sobrien	* expr.c (cplus_expand_constant): Use byte_position.
1425890075Sobrien	* rtti.c (expand_class_desc): Use bitsize_one_node.
1425990075Sobrien	* typeck.c (build_component_addr): Use byte_position and don't
1426090075Sobrien	special case for zero offset.
1426118334Speter
1426290075Sobrien2000-03-24  Nathan Sidwell  <nathan@codesourcery.com>
1426318334Speter
1426490075Sobrien	* decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P.
1426518334Speter
1426690075Sobrien	* rtti.c (get_tinfo_decl): Set comdat linkage on new-abi
1426790075Sobrien	tinfo object.
1426890075Sobrien	(emit_tinfo_decl): Only emit polymorphic tinfo's when emitting
1426990075Sobrien	vtable.
1427018334Speter
1427190075Sobrien2000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1427218334Speter
1427390075Sobrien	* call.c (check_dtor_name, build_new_method_call): Use TYPE_P and
1427490075Sobrien	DECL_P macros.
1427590075Sobrien	* decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name,
1427690075Sobrien	make_typename_type, check_initializer, cp_finish_decl,
1427790075Sobrien	xref_tag): Likewise.
1427890075Sobrien	* decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree,
1427990075Sobrien	decl_namespace, arg_assoc_template_arg, arg_assoc,
1428090075Sobrien	validate_nonmember_using_decl, do_class_using_decl): Likewise.
1428190075Sobrien	* error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of,
1428290075Sobrien	args_to_string): Likewise.
1428390075Sobrien	* friend.c (is_friend): Likewise.
1428490075Sobrien	* lex.c (note_got_semicolon, note_list_got_semicolon,
1428590075Sobrien	is_global): Likewise.
1428690075Sobrien	* method.c (build_overload_nested_name, build_overload_value,
1428790075Sobrien	build_qualified_name, build_qualified_name, hack_identifier): Likewise.
1428890075Sobrien	* parse.y (typename_sub, typename_sub1): Likewise.
1428990075Sobrien	* pt.c (push_inline_template_parms_recursive, check_template_shadow,
1429090075Sobrien	process_partial_specialization, convert_template_argument,
1429190075Sobrien	template_args_equal, add_pending_template, lookup_template_class,
1429290075Sobrien	for_each_template_parm_r, maybe_fold_nontype_arg,
1429390075Sobrien	tsubst, instantiate_template, type_unification_real, unify,
1429490075Sobrien	instantiate_pending_templates, set_mangled_name_for_template_decl):
1429590075Sobrien	Likewise.
1429690075Sobrien	* repo.c (repo_get_id, repo_template_used): Likewise.
1429790075Sobrien	* search.c (lookup_field_1): Likewise.
1429890075Sobrien	* tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise.
1429990075Sobrien	* xref.c (classname): Likewise.
1430018334Speter
1430190075Sobrien2000-03-22  Mark Mitchell  <mark@codesourcery.com>
1430218334Speter
1430390075Sobrien	* cp-tree.h (BINFO_FOR_VBASE): Adjust documentation.
1430490075Sobrien	(CANONICAL_BINFO): New macro.
1430590075Sobrien	(BINFO_NEW_VTABLE_MARKED): Use it.
1430690075Sobrien	(SET_BINFO_NEW_VTABLE_MARKED): Likewise.
1430790075Sobrien	(CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise.
1430890075Sobrien	* class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE,
1430990075Sobrien	not TREE_TYPE.
1431090075Sobrien	(build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED.
1431190075Sobrien	(build_secondary_vtable): Likewise.
1431290075Sobrien	(dfs_finish_vtbls): Likewise.
1431390075Sobrien	(dfs_accumulate_vtbl_inits): Likewise.
1431490075Sobrien	(accumulate_vtbl_inits): New function.
1431590075Sobrien	(finish_vtbls): Make sure that virtual bases come after
1431690075Sobrien	non-virtual bases in the vtable group.
1431790075Sobrien	(record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL.
1431890075Sobrien	(finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED.
1431990075Sobrien	* search.c (struct vbase_info): Move definition.
1432090075Sobrien	(marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED.
1432190075Sobrien	(unmarked_new_vtable_p): Likewise.
1432290075Sobrien	(dfs_mark_vtable_path): Remove.
1432390075Sobrien	(dfs_mark_new_vtable): Remove.
1432490075Sobrien	(dfs_unmark_new_vtable): Likewise.
1432590075Sobrien	(dfs_clear_search_slot): Likewise.
1432690075Sobrien	(dfs_find_vbases):  Adjust usage of BINFO_NEW_VTABLE_MARKED.
1432790075Sobrien	(dfs_clear_vbase_slots): Likewise.
1432890075Sobrien	(init_vbase_pointers): LIkewise.
1432918334Speter
1433090075Sobrien2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
1433118334Speter
1433290075Sobrien	* typeck.c (type_after_usual_arithmetic_conversions): Prefer a
1433390075Sobrien	SIZETYPE to a non-SIZETYPE.
1433418334Speter
1433590075Sobrien2000-03-21  Mark Mitchell  <mark@codesourcery.com>
1433618334Speter
1433790075Sobrien	* class.c (layout_virtual_bases): Adjust names in conditionally
1433890075Sobrien	compiled code.
1433918334Speter
1434090075Sobrien	* class.c (record_base_offsets): New function.
1434190075Sobrien	(layout_conflict_p): Likewise.
1434290075Sobrien	(layout_nonempty_base_or_field): Use it.
1434390075Sobrien	(layout_empty_base): New function.
1434490075Sobrien	(build_base_field): Use it.
1434590075Sobrien	(build_base_fields): Update comment.
1434690075Sobrien	(layout_virtual_bases): Fold in a little code form
1434790075Sobrien	layout_basetypes.  Use layout_empty_base.
1434890075Sobrien	(layout_basetypes): Remove.
1434990075Sobrien	(end_of_class): New function.
1435090075Sobrien	(layout_class_type): Use it.  Adjust.
1435118334Speter
1435290075Sobrien	* cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment.
1435390075Sobrien	(fntype_p): Remove.
1435490075Sobrien	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in
1435590075Sobrien	comment.
1435690075Sobrien	(dfs_skip_nonprimary_vbases_markedp): Likewise.
1435790075Sobrien	* typeck.c (fntype_p): Remove.
1435818334Speter
1435990075Sobrien	* cp-tree.h (TI_SPEC_INFO): Remove.
1436090075Sobrien	(CLASSTYPE_TI_SPEC_INFO): Likewise.
1436190075Sobrien	* pt.c (process_partial_specialization): Likewise.
1436218334Speter
1436390075Sobrien	* class.c (build_base_field): Fix thinko in computation of binfo
1436490075Sobrien	offsets.
1436518334Speter
1436690075Sobrien	* tree.c (mark_local_for_remap_p): Mark variables declared in
1436790075Sobrien	TARGET_EXPRs as well.
1436818334Speter
1436990075Sobrien2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1437018334Speter
1437190075Sobrien	* typeck.c (require_complete_type, complete_type,
1437290075Sobrien	complete_type_or_else, c_sizeof, c_sizeof_nowarn,
1437390075Sobrien	build_array_ref, convert_arguments, pointer_diff,
1437490075Sobrien	build_x_unary_op, build_unary_op, build_c_cast,
1437590075Sobrien	build_modify_expr): Use COMPLETE_TYPE_P etc.
1437690075Sobrien	* call.c (is_complete, convert_like_real,
1437790075Sobrien	build_new_method_call): Likewise.
1437890075Sobrien	* class.c (build_vbase_pointer_fields, check_bases,
1437990075Sobrien	build_base_field, finish_struct_1, pushclass): Likewise.
1438090075Sobrien	* cvt.c (cp_convert_to_pointer, convert_to_void): Likewise.
1438190075Sobrien	* decl.c (maybe_process_template_type_declaration, pushtag,
1438290075Sobrien	pushdecl, redeclaration_error_message, start_decl, start_decl_1,
1438390075Sobrien	layout_var_decl, check_initializer, cp_finish_decl,
1438490075Sobrien	grokdeclarator, require_complete_types_for_parms,
1438590075Sobrien	grok_op_properties, xref_tag, xref_basetypes,
1438690075Sobrien	check_function_type): Likewise.
1438790075Sobrien	* decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise.
1438890075Sobrien	* friend.c (do_friend): Likewise.
1438990075Sobrien	* init.c (build_offset_ref): Likewise.
1439090075Sobrien	* parse.y (structsp): Likewise.
1439190075Sobrien	* pt.c (maybe_process_partial_specialization,
1439290075Sobrien	tsubst_friend_function, instantiate_class_template, tsubst,
1439390075Sobrien	do_type_instantiation, instantiate_pending_templates): Likewise.
1439490075Sobrien	* repo.c (repo_get_id): Likewise.
1439590075Sobrien	* rtti.c (build_typeid, get_typeid, build_dynamic_cast_1,
1439690075Sobrien	synthesize_tinfo_var, emit_support_tinfos): Likewise.
1439790075Sobrien	* search.c (lookup_fnfields_1, lookup_conversions): Likewise.
1439890075Sobrien	* semantics.c (begin_class_definition): Likewise.
1439990075Sobrien	* tree.c (build_cplus_method_type): Likewise.
1440090075Sobrien	* typeck2.c (digest_init, build_functional_cast,
1440190075Sobrien	add_exception_specifier): Likewise.
1440290075Sobrien	* parse.h, parse.c: Regenerated.
1440318334Speter
1440490075Sobrien2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1440518334Speter
1440690075Sobrien	* inc/cxxabi.h: New header file. Define new-abi entry points.
1440790075Sobrien	(__pointer_type_info::target): Rename member to ...
1440890075Sobrien	(__pointer_type_info::type): ... here.
1440990075Sobrien	(__base_class_info::type): Rename member to ...
1441090075Sobrien	(__base_class_info::base): ... here.
1441190075Sobrien	* Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h
1441290075Sobrien	* cp-tree.h (CPTI_ABI): New global tree enumeration.
1441390075Sobrien	(abi_node): New global tree node.
1441490075Sobrien	* decl.c (abi_node): Document.
1441590075Sobrien	(init_decl_processing): Initialize abi_node.
1441690075Sobrien	* rtti.c (build_dynamic_cast_1): Use abi_node for new-abi.
1441790075Sobrien	(get_vmi_pseudo_type_info): Likewise.
1441890075Sobrien	(create_tinfo_types): Likewise.
1441990075Sobrien	(emit_support_tinfos): Likewise.
1442090075Sobrien	* tinfo.h (cxxabi.h): Include for new-abi.
1442190075Sobrien	Move rtti class definitions to new header file.
1442290075Sobrien	* tinfo.cc (abi): Use the namespace.
1442390075Sobrien	(std): Move new abi rtti classes from here ...
1442490075Sobrien	(__cxxabiv1): ... to here.
1442590075Sobrien	* tinfo2.cc (cxxabi.h): Include for new-abi.
1442690075Sobrien	Move rtti class definitions to new header file.
1442790075Sobrien	(std): Move new abi rtti classes from here ...
1442890075Sobrien	(__cxxabiv1): ... to here.
1442990075Sobrien	* inc/typeinfo (__class_type_info): Move into __cxxabiv1
1443090075Sobrien	namespace.
1443118334Speter
1443290075Sobrien2000-03-20  Jed Wing <jedwin@zloty.ugcs.caltech.edu>
1443390075Sobrien	    Jason Merrill  <jason@casey.cygnus.com>
1443418334Speter
1443590075Sobrien	* method.c (build_overload_int): Use host_integerp.
1443618334Speter
1443790075Sobrien2000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1443818334Speter
1443990075Sobrien	* init.c (build_offset_ref): Handle the case of a templated member
1444090075Sobrien	function.
1444118334Speter
1444290075Sobrien2000-03-19  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1444318334Speter
1444490075Sobrien	* except.c (expand_exception_blocks): Clear catch_clauses_last.
1444518334Speter
1444690075Sobrien2000-03-18  Mark Mitchell  <mark@codesourcery.com>
1444718334Speter
1444890075Sobrien	* cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro.
1444990075Sobrien	* class.c (check_bitfield_decl): Turn illegal bitfields into
1445090075Sobrien	non-bitfields.
1445190075Sobrien	(dfs_propagate_binfo_offsets): Adjust for new size_binop
1445290075Sobrien	semantics.
1445390075Sobrien	(dfs_offset_for_unshared_vbases): Likewise.
1445490075Sobrien	* cvt.c (cp_convert_to_pointer): Convert NULL to a
1445590075Sobrien	pointer-to-member correctly under the new ABI.
1445690075Sobrien	* expr.c (cplus_expand_constant): Don't use cp_convert when
1445790075Sobrien	turning an offset into a pointer-to-member.
1445890075Sobrien	* init.c (resolve_offset_ref): Don't adjust pointers-to-members
1445990075Sobrien	when dereferencing them under the new ABI.
1446090075Sobrien	* typeck.c (get_member_function_from_ptrfunc): Tweak calculation
1446190075Sobrien	of pointers-to-members under the new ABI.
1446218334Speter
1446390075Sobrien	* class.c (check_bitfield_decl): Remove restriction on really long
1446490075Sobrien	bitfields.
1446590075Sobrien	(layout_class_type): Implement new ABI handling of bitfields
1446690075Sobrien	longer than their types.
1446718334Speter
1446890075Sobrien2000-03-18  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1446918334Speter
1447090075Sobrien	* parse.y (extdefs): Call ggc_collect.
1447190075Sobrien	* parse.c: Regenerated.
1447218334Speter
1447390075Sobrien2000-03-18  Nathan Sidwell  <nathan@codesourcery.com>
1447418334Speter
1447590075Sobrien	* class.c (build_base_field): Use TYPE_ALIGN to examine a type.
1447690075Sobrien	(note_name_declared_in_class): Use OVL_CURRENT to get at a
1447790075Sobrien	potential overload.
1447818334Speter
1447990075SobrienFri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1448018334Speter
1448190075Sobrien	* class.c (build_vbase_path): Use integer_zerop.
1448290075Sobrien	(build_vtable_entry): Use tree_low_cst.
1448390075Sobrien	(get_vfield_offset): Use bit_position.
1448490075Sobrien	(dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT.
1448590075Sobrien	Use tree_low_cst.
1448690075Sobrien	(check_bitfield_decl): Set DECL_SIZE using convert.
1448790075Sobrien	(build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop.
1448890075Sobrien	(layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT.
1448990075Sobrien	Use tree_low_cst.
1449090075Sobrien	(finish_struct_1): Use bit_position.
1449190075Sobrien	(dump_class_hierarchy): Use tree_low_cst.
1449290075Sobrien	* cp-tree.h (min_precision): Add declaration.
1449390075Sobrien	* decl.c (xref_tag, xref_basetypes): Use tree_low_cst.
1449490075Sobrien	* error.c (dump_type_suffix): Use host_integerp and tree_low_cst.
1449590075Sobrien	(dump_expr): Use integer_zerop, host_integerp, and tree_low_cst.
1449690075Sobrien	* expr.c (cplus_expand_constant): Use bit_position.
1449790075Sobrien	* init.c (build_vec_init): Use host_integerp and tree_low_cst.
1449890075Sobrien	* rtti.c (get_base_offset): Use bit_position.
1449990075Sobrien	* typeck.c (build_binary_op): Use integer_zerop, compare_tree_int,
1450090075Sobrien	host_integerp, and tree_low_cst.
1450190075Sobrien	(pointer_int_sum): Use integer_zerop.
1450290075Sobrien	(build_component_addr): Use bit_position.
1450318334Speter
1450490075Sobrien2000-03-17  Nathan Sidwell  <nathan@codesourcery.com>
1450518334Speter
1450690075Sobrien	* typeck.c (require_complete_type): Don't assume size_zero_node.
1450790075Sobrien	(complete_type_or_else): Likewise.
1450818334Speter
1450990075Sobrien2000-03-16  Steven Grady <grady@digitaldeck.com>
1451090075Sobrien	    Jason Merrill  <jason@casey.cygnus.com>
1451118334Speter
1451290075Sobrien	* rtti.c (build_dynamic_cast_1): Improve diagnostics.
1451318334Speter
1451490075Sobrien2000-03-16  Nathan Sidwell  <nathan@codesourcery.com>
1451518334Speter
1451690075Sobrien	* decl2.c (grokfield): Bail out if type is error_mark_node.
1451718334Speter
1451890075Sobrien2000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
1451918334Speter
1452090075Sobrien	* tinfo2.cc (__ptr_to_member_data): Rename to ...
1452190075Sobrien	(__pointer_to_member_data): ... here. Adjust.
1452290075Sobrien	* rtti.c (create_tinfo_types): Adjust.
1452318334Speter
1452490075Sobrien2000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
1452518334Speter
1452690075Sobrien	* cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove.
1452790075Sobrien	* decl.c (ref_desc_type_node): Undocument.
1452890075Sobrien	* rtti.c (ptr_ref_initializer): Rename to ...
1452990075Sobrien	(ptr_initializer): ... here. Adjust comments.
1453090075Sobrien	(ptmd_initializer): Fix comment thinko.
1453190075Sobrien	(synthesize_tinfo_var): Remove REFERENCE_TYPE case.
1453290075Sobrien	(create_tinfo_types): Remove ref_desc_type_node init.
1453390075Sobrien	* tinfo2.cc (__reference_type_info): Remove.
1453418334Speter
1453590075Sobrien2000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
1453618334Speter
1453790075Sobrien	* decl.c (cp_finish_decl): Remove obsolete comment.
1453818334Speter
1453990075Sobrien	* typeck.c (build_ptrmemfunc1): Kill uninitialized warning.
1454018334Speter
1454190075Sobrien2000-03-14  Mark Mitchell  <mark@codesourcery.com>
1454218334Speter
1454390075Sobrien	* cp-tree.h: Tweak documentation.
1454490075Sobrien	* class.c (build_vbase_pointer_fields): Layout the fields, too.
1454590075Sobrien	(avoid_overlap): Remove.
1454690075Sobrien	(get_binfo_offset_as_int): New function.
1454790075Sobrien	(dfs_serach_base_offsets): Likewise.
1454890075Sobrien	(layout_nonempty_base_or_field): Likewise.
1454990075Sobrien	(build_base_field): Layout fields here.  Avoid placing two objects
1455090075Sobrien	of the same type at the same address, under the new ABI.
1455190075Sobrien	(build_base_fields): Adjust accordingly.
1455290075Sobrien	(create_vtable_ptr): Return the new field, but don't attach it to
1455390075Sobrien	TYPE_FIELDS.
1455490075Sobrien	(remove_base_field): Remove.
1455590075Sobrien	(remove_base_fields): Remove.
1455690075Sobrien	(layout_basetypes): Adjust accordingly.
1455790075Sobrien	(layout_class_type): Call layout_field for each field, rather than
1455890075Sobrien	just making a wholesale call to layout_type.
1455918334Speter
1456090075Sobrien2000-03-14  Jeff Sturm  <jsturm@sigma6.com>
1456118334Speter
1456290075Sobrien	* except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw.
1456318334Speter
1456490075Sobrien2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
1456518334Speter
1456690075Sobrien	* decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P.
1456718334Speter
1456890075Sobrien	* except.c (dtor_nothrow): New fn.
1456990075Sobrien	(do_pop_exception): Use it.  Take type parm.
1457090075Sobrien	(push_eh_cleanup): Take type parm.
1457190075Sobrien	(expand_start_catch_block): Pass it.
1457290075Sobrien	(build_eh_type_type_ref): Accept null type.
1457318334Speter
1457490075Sobrien2000-03-12  Mark Mitchell  <mark@codesourcery.com>
1457518334Speter
1457690075Sobrien	* cp-tree.h (revert_static_member_fn): Change prototype.
1457790075Sobrien	* decl.c (grokfndecl): Adjust call to revert_static_member_fn.
1457890075Sobrien	(grok_op_properties): Likewise.
1457990075Sobrien	(start_function): Likewise.
1458090075Sobrien	(revert_static_member_fn): Simplify.
1458190075Sobrien	* pt.c (check_explicit_specialization): Adjust call to
1458290075Sobrien	revert_static_member_fn.
1458318334Speter
1458490075Sobrien2000-03-11  Mark Mitchell  <mark@codesourcery.com>
1458518334Speter
1458690075Sobrien	* cp-tree.h (scope_kind): New type.
1458790075Sobrien	(tmpl_spec_kind): Likewise.
1458890075Sobrien	(declare_pseudo_global_level): Remove.
1458990075Sobrien	(pseudo_global_level_p): Rename to template_parm_scope_p.
1459090075Sobrien	(pushlevel): Remove declaration.
1459190075Sobrien	(begin_scope): New function.
1459290075Sobrien	(finish_scope): Likewise.
1459390075Sobrien	(current_tmpl_spec_kind): Likewise.
1459490075Sobrien	* decl.c (struct binding_level): Shorten parm_flag to 2 bits.
1459590075Sobrien	Shorten keep to 2 bits.  Rename pseudo_global to template_parms_p.
1459690075Sobrien	Add template_spec_p.
1459790075Sobrien	(toplevel_bindings_p): Adjust.
1459890075Sobrien	(declare_pseudo_global_level): Remove.
1459990075Sobrien	(pseudo_global_level_p): Rename to template_parm_scope_p.
1460090075Sobrien	(current_tmpl_spec_kind): New function.
1460190075Sobrien	(begin_scope): Likewise.
1460290075Sobrien	(finish_scope): Likewise.
1460390075Sobrien	(maybe_push_to_top_level): Adjust.
1460490075Sobrien	(maybe_process_template_type_declaration): Likewise.
1460590075Sobrien	(pushtag): Likewise.
1460690075Sobrien	(pushdecl_nonclass_level): Likewise.
1460790075Sobrien	(lookup_tag): Likewise.
1460890075Sobrien	(grokfndecl): Handle member template specializations.  Share
1460990075Sobrien	constructor and non-constructor code.
1461090075Sobrien	* decl2.c (check_classfn): Handle member template specializations.
1461190075Sobrien	* pt.c (begin_template_parm_list): Use begin_scope.
1461290075Sobrien	(begin_specialization): Likewise.
1461390075Sobrien	(end_specialization): Likewise.
1461490075Sobrien	(check_explicit_specialization): Use current_tmpl_spec_kind.
1461590075Sobrien	Handle member template specializations.
1461690075Sobrien	(end_template_decl): Use finish_scope.  Remove call to
1461790075Sobrien	get_pending_sizes.
1461890075Sobrien	(push_template_decl_real): Remove bogus error message.
1461990075Sobrien	(tsubst_decl): Fix typo in code contained in comment.
1462090075Sobrien	(instantiate_template): Handle member template specializations.
1462190075Sobrien	(most_general_template): Likewise.
1462218334Speter
1462390075Sobrien2000-03-11  Gabriel Dos Reis  <gdr@codesourcery.com>
1462418334Speter
1462590075Sobrien	* lex.c (whitespace_cr): Compress consecutive calls to warning().
1462690075Sobrien	(do_identifier): Ditto for error().
1462718334Speter
1462890075Sobrien	* pt.c (convert_nontype_argument): Ditto for cp_error().
1462990075Sobrien	(convert_template_argument): Ditto for cp_pedwarn().
1463018334Speter
1463190075Sobrien2000-03-11  Jason Merrill  <jason@casey.cygnus.com>
1463218334Speter
1463390075Sobrien	* exception.cc (__check_null_eh_spec): New fn.
1463490075Sobrien	* except.c (expand_end_eh_spec): Call it if the spec is throw().
1463518334Speter
1463690075Sobrien2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
1463718334Speter
1463890075Sobrien	* decl.c (push_throw_library_fn): Take the FUNCTION_TYPE.
1463990075Sobrien	* except.c (expand_end_eh_spec): Add the return type.
1464090075Sobrien	* rtti.c (throw_bad_cast): Add the parmtypes.
1464190075Sobrien	(throw_bad_typeid): Likewise.
1464218334Speter
1464390075Sobrien	* semantics.c (expand_stmt): Only leave out rtl for unused
1464490075Sobrien	artificials, and set DECL_IGNORED_P on them as well.
1464590075Sobrien	* decl.c (wrapup_globals_for_namespace): Likewise.
1464618334Speter
1464790075Sobrien2000-03-09  Nathan Sidwell  <nathan@codesourcery.com>
1464818334Speter
1464990075Sobrien	* decl.c (maybe_commonize_var): Skip all artificial decls.
1465090075Sobrien	* pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN.
1465118334Speter
1465290075Sobrien2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
1465318334Speter
1465490075Sobrien	* lang-options.h, decl2.c: Add -fno-enforce-eh-specs.
1465590075Sobrien	* cp-tree.h: Declare flag_enforce_eh_specs.
1465690075Sobrien	* decl.c (store_parm_decls, finish_function): Check it.
1465718334Speter
1465890075Sobrien	C library functions don't throw.
1465990075Sobrien	* Makefile.in (cfns.h): New target.
1466090075Sobrien	(except.o): Depend on it.
1466190075Sobrien	* Make-lang.in (cc1plus): Depend on cfns.gperf.
1466290075Sobrien	* cfns.gperf: New file.
1466390075Sobrien	* cfns.h: Generated.
1466490075Sobrien	* except.c: Include it.
1466590075Sobrien	(nothrow_libfn_p): New fn.
1466690075Sobrien	* decl.c (grokfndecl): Use it.
1466790075Sobrien	* cp-tree.h: Declare it.
1466818334Speter
1466990075Sobrien	* decl.c (push_overloaded_decl_1, auto_function,
1467090075Sobrien	define_function): Lose.
1467190075Sobrien	(build_library_fn_1): New static fn.
1467290075Sobrien	(builtin_function): Use it.
1467390075Sobrien	(get_atexit_node): Use build_library_fn_ptr.
1467490075Sobrien	(build_library_fn, build_cp_library_fn, build_library_fn_ptr,
1467590075Sobrien	build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn,
1467690075Sobrien	push_void_library_fn, push_throw_library_fn): New fns.
1467790075Sobrien	* cp-tree.h: Declare them.
1467890075Sobrien	(cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID.
1467990075Sobrien	(throw_bad_cast_node, throw_bad_typeid_node): Lose.
1468090075Sobrien	* except.c (init_exception_processing, call_eh_info, do_pop_exception,
1468190075Sobrien	(expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns.
1468290075Sobrien	* rtti.c (build_runtime_decl): Lose.
1468390075Sobrien	(throw_bad_cast, throw_bad_typeid, get_tinfo_decl,
1468490075Sobrien	build_dynamic_cast_1, expand_si_desc, expand_class_desc,
1468590075Sobrien	expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns.
1468618334Speter
1468790075Sobrien	* call.c (build_call): Remove result_type parm.
1468890075Sobrien	Call mark_used on unused artificial fns.
1468990075Sobrien	* init.c, method.c, typeck.c, except.c, rtti.c: Adjust.
1469018334Speter
1469190075Sobrien2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
1469218334Speter
1469390075Sobrien	* call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as
1469490075Sobrien	appropriate.
1469590075Sobrien	* decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL.
1469690075Sobrien	* except.c (call_eh_info, alloc_eh_object, expand_throw): Set
1469790075Sobrien	TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate.
1469890075Sobrien	* rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1,
1469990075Sobrien	expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc,
1470090075Sobrien	expand_generic_desc): Likewise.
1470118334Speter
1470290075Sobrien2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
1470318334Speter
1470490075Sobrien	* exception.cc (__cp_pop_exception): Cleanup the original object.
1470518334Speter
1470690075Sobrien2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
1470718334Speter
1470890075Sobrien	* decl.c (grok_op_properties): Merge conversion to void warning
1470990075Sobrien	with other silly op warnings.
1471018334Speter
1471190075Sobrien2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
1471218334Speter
1471390075Sobrien	* typeck2.c (process_init_constructor): Set TREE_PURPOSE of
1471490075Sobrien	array CONSTRUCTOR elements.  Don't use expr_tree_cons.
1471518334Speter
1471690075Sobrien2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
1471718334Speter
1471890075Sobrien	* decl.c (cp_make_fname_decl): New function.
1471990075Sobrien	(wrapup_globals_for_namespace): Don't emit unused static vars.
1472090075Sobrien	(init_decl_processing): Remove comment about use of
1472190075Sobrien	array_domain_type. Set make_fname_decl.
1472290075Sobrien	(cp_finish_decl): Remove __FUNCTION__ nadgering.
1472390075Sobrien	* semantics.c (begin_compound_stmt): Remove
1472490075Sobrien	current_function_name_declared flagging.
1472590075Sobrien	(expand_stmt): Don't emit unused local statics.
1472690075Sobrien	* typeck.c (decay_conversion): Don't treat __FUNCTION__ decls
1472790075Sobrien	specially.
1472818334Speter
1472990075Sobrien2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
1473018334Speter
1473190075Sobrien	* typeck.c (convert_for_assignment): Don't look at array
1473290075Sobrien	initializer.
1473390075Sobrien	* call.c (convert_like_real): Likewise.
1473450397Sobrien
1473590075Sobrien2000-03-07  Jason Merrill  <jason@casey.cygnus.com>
1473650397Sobrien
1473790075Sobrien	Add initial support for '\uNNNN' specifier.
1473890075Sobrien	* lex.c (read_ucs): New fn.
1473990075Sobrien	(readescape, skip_white_space): Call it.
1474090075Sobrien	(is_extended_char, is_extended_char_1): New fns.
1474190075Sobrien	(utf8_extend_token): New fn, #if 0'd out.
1474290075Sobrien	(real_yylex): Treat extended chars like letters.
1474350397Sobrien
1474490075Sobrien	* search.c (note_debug_info_needed): Walk the bases even if we
1474590075Sobrien	weren't deferring the type itself.
1474650397Sobrien
1474790075Sobrien2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1474850397Sobrien
1474990075Sobrien	* decl2.c (finish_objects): Constify a char*.
1475050397Sobrien
1475190075Sobrien	* method.c (emit_thunk): Likewise.
1475250397Sobrien
1475390075Sobrien2000-03-06  Nathan Sidwell  <nathan@codesourcery.com>
1475450397Sobrien
1475590075Sobrien	* typeck.c (dubious_conversion_warnings): Look through
1475690075Sobrien	REFERENCE_TYPE.
1475750397Sobrien
1475890075SobrienMon Mar  6 08:46:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1475918334Speter
1476090075Sobrien	* class.c (dfs_modify_vtables): I is now unsigned.
1476190075Sobrien	(check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int.
1476290075Sobrien	(build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT.
1476390075Sobrien	* error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned.
1476490075Sobrien	* init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
1476590075Sobrien	* method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned.
1476690075Sobrien	* typeck.c (build_binary_op, case TRUNC_DIV_EXPR):
1476790075Sobrien	Call integer_all_onesp.
1476890075Sobrien	* typeck2.c (process_init_constructor): Use compare_tree_int.
1476918334Speter
1477090075Sobrien	* lang-specs.h (as): Don't call if -syntax-only.
1477118334Speter
1477290075Sobrien2000-03-06  Mark Mitchell  <mark@codesourcery.com>
1477318334Speter
1477490075Sobrien	* expr.c (cplus_expand_expr, case STMT_EXPR): Don't set
1477590075Sobrien	RTL_EXPR_HAS_NO_SCOPE after all.
1477618334Speter
1477790075Sobrien2000-03-05  Mark Mitchell  <mark@codesourcery.com>
1477818334Speter
1477990075Sobrien	* expr.c (cplus_expand_expr, case STMT_EXPR): Use
1478090075Sobrien	expand_start_stmt_expr and expand_end_stmt_expr directly.  Set
1478190075Sobrien	RTL_EXPR_HAS_NO_SCOPE.
1478218334Speter
1478390075Sobrien	* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little
1478450397Sobrien	later.
1478518334Speter
1478690075Sobrien	* dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P.
1478718334Speter
1478890075Sobrien2000-03-05  Nathan Sidwell  <nathan@codesourcery.com>
1478918334Speter
1479090075Sobrien	* call.c (convert_like): Macrofy.
1479190075Sobrien	(convert_like_with_context): New macro.
1479290075Sobrien	(convert_like_real): Renamed from convert_like.  Add calling
1479390075Sobrien	context parameters, for diagnostics. Add recursive flag.  Call
1479490075Sobrien	dubious_conversion_warnings for outer conversion.
1479590075Sobrien	(build_user_type_conversion): Use convert_like_with_context.
1479690075Sobrien	(build_over_call): Likewise. Don't warn about dubious
1479790075Sobrien	conversions here. Adjust convert_default_arg calls.
1479890075Sobrien	(convert_default_arg): Add context parameters for diagnostics.
1479990075Sobrien	Pass through to convert_like_with_context.
1480090075Sobrien	* cp-tree.h (convert_default_arg): Add context parameters.
1480190075Sobrien	(dubious_conversion_warnings): Prototype new function.
1480290075Sobrien	* typeck.c (convert_arguments): Adjust convert_default_arg call.
1480390075Sobrien	(dubious_conversion_warnings): New function, broken
1480490075Sobrien	out of convert_for_assignment.
1480590075Sobrien	(convert_for_assignment): Adjust.
1480618334Speter
1480790075Sobrien2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
1480818334Speter
1480990075Sobrien	* decl2.c (key_method): Break out from...
1481090075Sobrien	(import_export_vtable, import_export_class): ...here.
1481118334Speter
1481290075Sobrien	* decl.c (finish_function): Don't mess with flag_keep_inline_functions.
1481390075Sobrien	* decl2.c (finish_vtable_vardecl): Don't check decl_function_context.
1481418334Speter
1481590075Sobrien	* search.c (note_debug_info_needed, dfs_debug_mark,
1481690075Sobrien	dfs_debug_unmarkedp): Uncomment.  Adjust for new scheme.
1481790075Sobrien	* decl2.c (finish_vtable_vardecl): Call note_debug_info_needed.
1481818334Speter
1481990075Sobrien2000-03-03  Nathan Sidwell  <nathan@codesourcery.com>
1482018334Speter
1482190075Sobrien	* decl.c (cp_finish_decl): Remove obsolete obstack comments, fix
1482290075Sobrien	typos.
1482318334Speter
1482490075Sobrien2000-03-02  Mark Mitchell  <mark@codesourcery.com>
1482518334Speter
1482690075Sobrien	* cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ...
1482790075Sobrien	(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this.
1482890075Sobrien	(TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro.
1482990075Sobrien	(lang_type): Split gets_new into has_new and has_array_new.
1483090075Sobrien	(TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1483190075Sobrien	(TYPE_GETS_NEW): Split into ...
1483290075Sobrien	(TYPE_HAS_NEW_OPERATOR): ... this, and ...
1483390075Sobrien	(TYPE_HAS_ARRAY_NEW_OPERATOR): ... this.
1483490075Sobrien	(DECL_ARRAY_DELETE_OPERATOR_P): New macro
1483590075Sobrien	(build_op_new_call): Don't declare.
1483690075Sobrien	(build_new_1): Likewise.
1483790075Sobrien	* call.c (build_op_new_call): Remove.
1483890075Sobrien	* class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR
1483990075Sobrien	instead of TYPE_NEEDS_DESTRUCTOR.
1484090075Sobrien	(finish_struct_bits): Likewise.
1484190075Sobrien	(add_implicitly_declared_members): Likewise.
1484290075Sobrien	(check_field_decl): Likewise.
1484390075Sobrien	(check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it
1484490075Sobrien	correctly under the new ABI.
1484590075Sobrien	* decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR
1484690075Sobrien	instead of TYPE_NEEDS_DESTRUCTOR.
1484790075Sobrien	(initialize_local_var): Likewise.
1484890075Sobrien	(destroy_local_var): Likewise.
1484990075Sobrien	(cp_finish_decl): Likewise.
1485090075Sobrien	(register_dtor_fn): Likewise.
1485190075Sobrien	(grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and
1485290075Sobrien	TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW.  Don't set
1485390075Sobrien	TYPE_VEC_DELETE_TAKES_SIZE here.
1485490075Sobrien	(xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and
1485590075Sobrien	TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW.
1485690075Sobrien	(store_parm_decls):  Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1485790075Sobrien	(finish_destructor_body): Likewise.
1485890075Sobrien	(maybe_build_cleanup_1): Likewise.
1485990075Sobrien	* decl2.c (do_static_destruction): Likewise.
1486090075Sobrien	* init.c (build_new_1): Make it static.
1486190075Sobrien	(perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1486290075Sobrien	(expand_cleanup_for_base): Likewise.
1486390075Sobrien	(get_cookie_size): New function.
1486490075Sobrien	(build_new_1): Handle array-new cookies correctly under the new
1486590075Sobrien	ABI.
1486690075Sobrien	(build_vec_delete_1): Likewise.
1486790075Sobrien	(build_vec_init):  Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1486890075Sobrien	(build_delete): Likewise.
1486990075Sobrien	(build_vec_delete): Handle array-new cookies correctly under the new
1487090075Sobrien	ABI.
1487190075Sobrien	* lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1487290075Sobrien	* pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and
1487390075Sobrien	TYPE_HAS_ARRAY_NEW_OPERATOR.
1487490075Sobrien	* ptree.c (print_lang_type): Check them.
1487590075Sobrien	* search.c (context_for_name_lookup): Fix typo in comment.
1487690075Sobrien	(tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1487790075Sobrien	* tree.c (break_out_cleanups): Likewise.
1487890075Sobrien	(build_cplus_array_test_1): Likewise.
1487990075Sobrien	(cp_build_qualified_type_real): Likewise.
1488090075Sobrien	* typeck.c (complete_type): Likewise.
1488118334Speter
1488290075Sobrien	* g++spec.c (lang_specific_driver): Add -fnew-abi at the start of
1488390075Sobrien	the command-line, not the end.
1488418334Speter
1488590075Sobrien2000-03-01  Jason Merrill  <jason@casey.cygnus.com>
1488618334Speter
1488790075Sobrien	* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG.
1488818334Speter
1488990075Sobrien2000-03-02  Tom Tromey  <tromey@cygnus.com>
1489018334Speter
1489190075Sobrien	* cp-tree.h (build_java_class_ref): Declare.
1489290075Sobrien	* init.c (build_java_class_ref): No longer static.
1489390075Sobrien	* except.c (expand_throw): Generate a Java-style `throw' if the
1489490075Sobrien	thrown object is a "Java" object.
1489590075Sobrien	(initialize_handler_parm): Generate a Java-style lookup of
1489690075Sobrien	exception info if the caught object is a "Java" object.
1489790075Sobrien	(catch_language, catch_language_init): New globals.
1489890075Sobrien	(decl_is_java_type): New function.
1489990075Sobrien	(expand_start_catch_block): Don't call push_eh_info() or
1490090075Sobrien	push_eh_cleanup() when handling a Java-style "catch".  Pass Java
1490190075Sobrien	class reference to build_catch_block.
1490218334Speter
1490390075SobrienThu Mar  2 13:32:01 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1490418334Speter
1490590075Sobrien	* typeck.c (comptypes): Treat sizetype like its language equivalent.
1490618334Speter
1490790075Sobrien2000-03-01  Bernd Schmidt  <bernds@cygnus.co.uk>
1490818334Speter
1490990075Sobrien	* typeck.c (maybe_warn_about_returning_address_of_local): Reorganize
1491090075Sobrien	to merge reference/pointer code and fix incorrect warnings.
1491118334Speter
1491290075Sobrien2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
1491318334Speter
1491490075Sobrien	* search.c (protected_accessible_p): Use context_for_name_lookup.
1491518334Speter
1491690075Sobrien	* init.c (construct_virtual_bases): Fix thinko.
1491790075Sobrien	* typeck.c (expand_ptrmemfunc_cst): Fix thinko.
1491818334Speter
1491990075Sobrien2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1492018334Speter
1492190075Sobrien	* decl.c (current_function_decl): Move to toplev.c.
1492218334Speter
1492390075Sobrien2000-02-29  Nathan Sidwell  <nathan@codesourcery.com>
1492418334Speter
1492590075Sobrien	* pt.c (fn_type_unification): Unify return type, whenever
1492690075Sobrien	provided.
1492790075Sobrien	(get_bindings_real): Only pass return type when necessary.
1492890075Sobrien	Remove explicit return type check.
1492990075Sobrien	* class.c (resolve_address_of_overloaded_function): Pass desired
1493090075Sobrien	return type to fn_type_unification.
1493118334Speter
1493290075SobrienMon Feb 28 08:15:23 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1493318334Speter
1493490075Sobrien	* class.c (build_vtbl_or_vbase_field, check_methods): Don't clear
1493590075Sobrien	DECL_FIELD_SIZE.
1493690075Sobrien	(check_bitfield_decl, check_field_decls): Set DECL_SIZE, not
1493790075Sobrien	DECL_FIELD_SIZE.
1493890075Sobrien	* rtti.c (expand_class_desc): Likewise.
1493990075Sobrien	* cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name.
1494090075Sobrien	(THUNK_VCALL_OFFSET): Likewise.
1494190075Sobrien	(THUNK_DELTA): Reflect changes in ../tree.h.
1494218334Speter
1494390075Sobrien2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
1494452284Sobrien
1494590075Sobrien	* search.c (protected_accessible_p): Also allow the access if
1494690075Sobrien	the member is public in DERIVED.  Lose TYPE parm.
1494790075Sobrien	(friend_accessible_p): Lose TYPE parm.
1494890075Sobrien	(accessible_p): Adjust.
1494918334Speter
1495090075SobrienSun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1495118334Speter
1495290075Sobrien	* class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop
1495390075Sobrien	on things that are not sizes; ssize_binop deleted.
1495490075Sobrien	Call size_diffop when appropriate.
1495590075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Likewise.
1495690075Sobrien	(build_primary_vtable, build_secondary_vtable): Likewise.
1495790075Sobrien	(dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise.
1495890075Sobrien	Variable I is HOST_WIDE_INT.
1495990075Sobrien	(get_vfield_offset): Pass proper types to size_binop.
1496090075Sobrien	(size_extra_vtbl_entries, layout_virtual_bases): Likewise.
1496190075Sobrien	(finish_struct_1): Likewise.
1496290075Sobrien	(skip_rtti_stuff): Arg N is now pointer to signed.
1496390075Sobrien	(layout_class_type): Use size_zero_node.
1496490075Sobrien	* cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed.
1496590075Sobrien	* cvt.c (cp_convert_to_pointer): Pass proper types to size_binop.
1496690075Sobrien	* decl.c (complete_arry_type): Pass proper types to size_binop.
1496790075Sobrien	(xref_basetypes): BINFO_OFFSET is sizetype.
1496890075Sobrien	* error.c (dump_expr): Don't use size_binop non-sizes.
1496990075Sobrien	* expr.c (cplus_expand_constant): Pass proper types to size_binop.
1497090075Sobrien	* init.c (construct_virtual_bases): Fix type error.
1497190075Sobrien	(build_vec_delete_1): Pass proper type to size_binop and don't
1497290075Sobrien	fold result.
1497390075Sobrien	* lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype.
1497490075Sobrien	* rtti.c (get_base_offset): Pass proper type to size_binop.
1497590075Sobrien	* search.c (dfs_find_vbases): Fix type error.
1497690075Sobrien	(expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed.
1497790075Sobrien	(dfs_get_vbase_types): BINFO_OFFSET is sizetype.
1497890075Sobrien	* tree.c (debug_binfo): Variable N is signed.
1497990075Sobrien	Use HOST_WIDE_INT_PRINT_DEC.
1498090075Sobrien	* typeck.c (comptypes): sizetype is same as equivalent integer type.
1498190075Sobrien	(c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT,
1498290075Sobrien	size_one_node and size_zero_node.
1498390075Sobrien	(c_alignof): Use size_one_node.
1498490075Sobrien	(build_component_addr): Pass proper types to size_binop.
1498590075Sobrien	(expand_ptrmemfunc_cst): Don't use size_binop on non-sizes.
1498618334Speter
1498790075Sobrien2000-02-26  Jason Merrill  <jason@casey.cygnus.com>
1498818334Speter
1498990075Sobrien	Implement class scope using-declarations for functions.
1499090075Sobrien	* class.c (handle_using_decl): Call add_method for used functions.
1499190075Sobrien	Use IDENTIFIER_CLASS_VALUE to check for conflicts.
1499290075Sobrien	(add_method): Used functions are hidden by local functions.
1499390075Sobrien	(check_bases_and_members): Handle using-decls before finalizing
1499490075Sobrien	CLASSTYPE_METHOD_VEC.
14995117395Skan	* call.c (add_function_candidate): Add ctype parm; if nonzero,
1499690075Sobrien	override the type of 'this' accordingly.
1499790075Sobrien	(add_template_candidate, add_template_candidate_real): Add ctype parm.
1499890075Sobrien	(convert_class_to_reference, build_user_type_conversion_1,
1499990075Sobrien	build_new_function_call, build_object_call, build_new_op,
1500090075Sobrien	build_new_method_call): Pass ctype parm.
1500118334Speter
1500290075Sobrien	* search.c (lookup_member): Put rval_binfo, not basetype_path, in
1500390075Sobrien	the baselink.
1500490075Sobrien	* call.c (convert_class_to_reference, build_user_type_conversion_1,
1500590075Sobrien	build_new_function_call, build_object_call, build_new_op,
1500690075Sobrien	build_new_method_call, build_op_delete_call): Don't get basetype_path
1500790075Sobrien	from a baselink.
1500890075Sobrien	* typeck.c (build_component_ref): Likewise.
1500990075Sobrien	* init.c (build_offset_ref): Likewise.
1501090075Sobrien	(resolve_offset_ref): Don't call enforce_access.
1501190075Sobrien	Call build_scoped_ref.
1501290075Sobrien	* typeck2.c (build_scoped_ref): Simplify.  Do nothing if it
1501390075Sobrien	would cause an error or if -pedantic.
1501490075Sobrien	* class.c (alter_access): Lose binfo parm.
1501518334Speter
1501690075Sobrien2000-02-26  Mark Mitchell  <mark@codesourcery.com>
1501718334Speter
1501890075Sobrien	* semantics.c (simplify_aggr_init_exprs_p): Don't walk into
1501990075Sobrien	types.
1502018334Speter
1502190075Sobrien2000-02-25  Alfred Minarik <a8601248@unet.univie.ac.at>
1502218334Speter
1502390075Sobrien	* rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info
1502490075Sobrien	pseudo_type_info creation into the std namespace
1502518334Speter
1502690075Sobrien2000-02-26  Mark Mitchell  <mark@codesourcery.com>
1502718334Speter
1502890075Sobrien	* cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF.
1502990075Sobrien	(import_export_class): Remove declaration.
1503090075Sobrien	* decl2.c (import_export_class): Make it static.
1503190075Sobrien	* dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR,
1503290075Sobrien	PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR,
1503390075Sobrien	EXPR_WITH_FILE_LOCATION.
1503490075Sobrien	* lex.c (check_newline): Tweak filename/lineno setting.
1503590075Sobrien	* semantics.c (begin_while_stmt): Fix typo in comment.
1503618334Speter
1503790075SobrienSat Feb 26 19:50:23 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1503818334Speter
1503990075Sobrien	* lang-options.h (-fmessage-length=): Add missing option.
1504018334Speter
1504190075Sobrien	* Make-lang.in (CXX_SRCS): Add .h files and sort list.
1504218334Speter
1504390075Sobrien2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
1504418334Speter
1504590075Sobrien	* Make-lang.in: Delete refs to LIBGCC2_DEPS.
1504618334Speter
1504790075SobrienFri Feb 25 14:52:33 2000  Jim Wilson  <wilson@cygnus.com>
1504818334Speter
1504990075Sobrien	* optimize.c (expand_call_inline): Emit the return label before
1505090075Sobrien	evaluating the return value.
1505118334Speter
1505290075Sobrien2000-02-24  Mark Mitchell  <mark@codesourcery.com>
1505318334Speter
1505490075Sobrien	* lex.c (check_newline): Use push_srcloc and pop_srcloc, rather
1505590075Sobrien	than duplicating functionality here.
1505690075Sobrien	* optimize.c: Include input.h.
1505790075Sobrien	(expand_call_inline): Use push_srcloc and pop_srcloc.
1505890075Sobrien	* parse.y (maybe_cv_qualifier): Remove calls to emit_line_note.
1505990075Sobrien	* parse.c: Regenerated.
1506090075Sobrien	* Makefile.in (lex.o): Depend on input.h.
1506190075Sobrien	(optimize.o): Likewise.
1506218334Speter
1506390075Sobrien2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
1506418334Speter
1506590075Sobrien	* decl.c (grokdeclarator): Diagnose qualifiers on non-member
1506690075Sobrien	function type, rather than ICE.
1506718334Speter
1506890075Sobrien2000-02-23  Jason Merrill  <jason@casey.cygnus.com>
1506918334Speter
1507090075Sobrien	* decl.c (grokdeclarator): Call decl_type_access_control.
1507190075Sobrien	* parse.y (parse_end_decl): Don't call decl_type_access_control if
1507290075Sobrien	decl is null.
1507318334Speter
1507490075Sobrien2000-02-23  Nathan Sidwell  <nathan@codesourcery.com>
1507552284Sobrien
1507690075Sobrien	* decl.c (decls_match): Remove obsolete static member nadgering.
1507718334Speter
1507890075Sobrien2000-02-21  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1507918334Speter
1508090075Sobrien	* decl.c (grokdeclarator): Change ANSI to ISO.
1508190075Sobrien	* lex.c (consume_string, readescape, do_identifier): Likewise.
1508290075Sobrien	(parse_float, real_yylex): Likewise.
1508390075Sobrien	* parse.y (paren_expr_or_null, paren_cond_or_null): Likewise.
1508490075Sobrien	(unary_expr, new_initializer, cast_expr, primary, primary_no_id,
1508590075Sobrien	new_type_id, maybe_label_decls, simple_stmt,
1508690075Sobrien	for.init.statement): Likewise.
1508790075Sobrien	* pt.c (do_decl_instantiation, do_type_instantiation): Likewise.
1508890075Sobrien	* semantics.c (finish_named_return_value): Likewise.
1508990075Sobrien	* parse.c: Regenerate.
1509018334Speter
1509190075Sobrien2000-02-21  Mark Mitchell  <mark@codesourcery.com>
1509218334Speter
1509390075Sobrien	* cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro.
1509490075Sobrien	(CPTI_CLASS_STAR_TYPE): Remove.
1509590075Sobrien	(vtable_index_type): Likewise.
1509690075Sobrien	(class_star_type_node): Remove.
1509790075Sobrien	(TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI.
1509890075Sobrien	(build_binary_op_nodefault): Remove.
1509990075Sobrien	* call.c (build_new_op): Use build_binary_op instead of
1510090075Sobrien	build_binary_op_nodefault.
1510190075Sobrien	* decl.c (init_decl_processing): Remove class_star_type_node
1510290075Sobrien	initialization.  Make delta_type_node ptrdiff_type_node under the
1510390075Sobrien	new ABI.  Initialize vtable_index_type.
1510490075Sobrien	(build_ptrmemfunc_type): Build different structures for the new
1510590075Sobrien	ABI.
1510690075Sobrien	(build_enumerator): Use build_binary_op instead of
1510790075Sobrien	build_binary_op_nodefault.
1510890075Sobrien	* method.c (build_overload_value): Mangle pointers-to-members
1510990075Sobrien	appropriately under the new ABI.
1511090075Sobrien	* typeck.c (build_array_ref): Use build_binary_op instead of
1511190075Sobrien	build_binary_op_nodefault.
1511290075Sobrien	(get_member_function_from_ptrfunc): Adjust for the new ABI.
1511390075Sobrien	(build_binary_op_nodefault): Rename to ...
1511490075Sobrien	(build_binary_op): ... this.  Remove old version.  Adjust for
1511590075Sobrien	pointer-to-member comparisons under the new ABI.
1511690075Sobrien	(build_ptrmemfunc1): Remove dead code.  Adjust for the new ABI.
1511790075Sobrien	(build_ptrmemfunc): Adjust for the new ABI.
1511890075Sobrien	(expand_ptrmemfunc_cst): Likewise.
1511990075Sobrien	(delta2_from_ptrmemfunc): Assert that we're not using the new ABI.
1512090075Sobrien	(pfn_from_ptrmemfunc): Adjust for the new ABI.
1512118334Speter
1512290075Sobrien2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
1512318334Speter
1512490075Sobrien	* call.c (build_object_call): Compress consecutive calls to
1512590075Sobrien	cp_error.
1512690075Sobrien	(build_conditional_expr): Say 'ISO C++' not 'ANSI C++'.
1512790075Sobrien	(build_op_delete_call): Adjust message formatting.
1512818334Speter
1512990075Sobrien	* class.c (check_bases): Compress consecutive calls to
1513090075Sobrien	cp_pedwarn.
1513190075Sobrien	(finish_struct_anon): Say 'ISO C++'.
1513218334Speter
1513390075Sobrien	* decl.c (start_decl): Same here.
1513490075Sobrien	(grok_reference_init): Likewise.
1513590075Sobrien	(grokfndecl): Correct message formatting.
1513690075Sobrien	(grokfndecl): Improve diagnostic.
1513790075Sobrien	(check_static_variable_definition): Likewise. Say 'ISO C++'
1513890075Sobrien	(compute_array_index_type): Say 'ISO C++'
1513990075Sobrien	(create_array_type_for_decl): Compress consecutive calls to
1514090075Sobrien	cp_error.
1514190075Sobrien	(grokdeclarator): Say 'ISO C++'
1514290075Sobrien	(grok_op_properties): Likewise.
1514318334Speter
1514490075Sobrien	* decl2.c (delete_sanity): Clairify diagnostic.
1514590075Sobrien	(check_member_template): Same here.
1514690075Sobrien	(grok_function_init): Use consistent terminology.
1514718334Speter
1514890075Sobrien	* expr.c (do_case): Say 'ISO C++'
1514918334Speter
1515090075Sobrien	* friend.c (do_friend): Compress consecutive calls to warning.
1515118334Speter
1515290075Sobrien2000-02-20  Mark Mitchell  <mark@codesourcery.com>
1515318334Speter
1515490075Sobrien	* cp-tree.h (merge_primary_and_secondary_vtables_p): New macro.
1515590075Sobrien	* class.c (build_secondary_vtable): Reorganize.  Don't create a
1515690075Sobrien	new vtable under the new ABI.
1515790075Sobrien	(layout_vtable_decl): Don't add num_extra_vtbl_entries when
1515890075Sobrien	computing the size.
1515990075Sobrien	(build_vtbl_initializer): Don't return a CONSTRUCTOR; just return
1516090075Sobrien	the initializing elements.
1516190075Sobrien	(initialize_vtable): New function.
1516290075Sobrien	(dfs_finish_vtbls): Use it.
1516390075Sobrien	(dfs_accumulate_vtbl_inits): New function.
1516490075Sobrien	(finish_vtbls): Merge primary and secondary vtables under the new
1516590075Sobrien	ABI.
1516690075Sobrien	(finish_struct_1): Remove redundant call to layout_vtable_decl.
1516790075Sobrien	* init.c (expand_virtual_init): Deal with BINFO_VTABLEs that
1516890075Sobrien	aren't VAR_DECLs.
1516918334Speter
1517090075Sobrien	* class.c (build_vtable): New function, split out from ...
1517190075Sobrien	(get_vtable_decl): ... here, and ...
1517290075Sobrien	(build_secondary_vtable): ... here.
1517318334Speter
1517490075Sobrien	* pt.c (tsubst_decl): Fix formatting.
1517518334Speter
1517690075SobrienSat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1517718334Speter
1517890075Sobrien	* class.c (build_primary_vtable, layout_vtable_decl): Likewise.
1517990075Sobrien	(avoid_overlap, build_base_field): Likewise.
1518090075Sobrien	(build_base_field, build_base_fields, is_empty_class):
1518190075Sobrien	Test DECL_SIZE with integer_zero.
1518290075Sobrien	(layout_class_type): Set CLASSTYPE_SIZE_UNIT.
1518390075Sobrien	* cp-tree.h (struct lang_type): New field size_unit.
1518490075Sobrien	(CLASSTYPE_SIZE_UNIT): New macro.
1518590075Sobrien	* decl.c (init_decl_processing): Set DECL_SIZE_UNIT.
1518690075Sobrien	(cp_finish_decl): Delete -Wlarger-than processing.
1518790075Sobrien	* optimize.c (remap_decl): Walk DECL_SIZE_UNIT.
1518890075Sobrien	* pt.c (tsubst_decl): Set DECL_SIZE_UNIT.
1518990075Sobrien	* tree.c (make_binfo): binfo vector is one entry longer.
1519090075Sobrien	(walk_tree): Walk DECL_SIZE_UNIT.
1519118334Speter
1519290075Sobrien2000-02-19  Mark Mitchell  <mark@codesourcery.com>
1519318334Speter
1519490075Sobrien	* class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in
1519590075Sobrien	comment.
1519690075Sobrien	(build_vtable_entry): Don't assume all vtable entries are
1519750397Sobrien	functions.
1519890075Sobrien	(build_vtbl_initializer): Adjust accordingly.
1519990075Sobrien	(get_vtable_decl): Fix formatting.
1520018334Speter
1520190075Sobrien2000-02-18  Jason Merrill  <jason@casey.cygnus.com>
1520218334Speter
1520390075Sobrien	* semantics.c (deferred_type_access_control): Walk the entire
1520490075Sobrien	type_lookups list.
1520590075Sobrien	(save_type_access_control): Rename from
1520690075Sobrien	initial_deferred_type_access_control.  Just remember the value.
1520790075Sobrien	(decl_type_access_control): New fn.
1520890075Sobrien	(begin_function_definition): Use deferred_type_access_control, after
1520990075Sobrien	we've started the function.  Set type_lookups to error_mark_node.
1521090075Sobrien	* parse.y (frob_specs, fn.def1): Adjust.
1521190075Sobrien	(parse_decl0, parse_field, parse_field0, parse_bitfield): New fns.
1521290075Sobrien	(parse_end_decl, parse_bitfield0, parse_method): New fns.
1521390075Sobrien	(fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them.
1521490075Sobrien	(after_type_component_declarator0): Likewise.
1521590075Sobrien	(after_type_component_declarator): Likewise.
1521690075Sobrien	(notype_component_declarator): Likewise.
1521750397Sobrien	* cp-tree.h: Adjust.
1521818334Speter
1521990075Sobrien	* decl.c (redeclaration_error_message): Allow redeclaration of
1522090075Sobrien	namespace-scope decls.
1522118334Speter
1522290075Sobrien2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1522318334Speter
1522490075Sobrien	* typeck2.c (my_friendly_abort): Use GCCBUGURL.
1522518334Speter
1522690075Sobrien2000-02-17  Mark Mitchell  <mark@codesourcery.com>
1522718334Speter
1522890075Sobrien	* class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT.
1522990075Sobrien	* decl2.c (grokclassfn): Likewise.
1523018334Speter
1523190075Sobrien	* ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS.
1523218334Speter
1523390075Sobrien	* decl2.c (lang_decode_option): Don't set default message length
1523490075Sobrien	here.
1523590075Sobrien	* lex.c (lang_init_options): Set it here.
1523618334Speter
1523790075Sobrien2000-02-16  Mark Mitchell  <mark@codesourcery.com>
1523818334Speter
1523990075Sobrien	Make DECL_CONTEXT mean the class in which a member function was
1524090075Sobrien	declared, even for a virtual function.
1524190075Sobrien	* cp-tree.h (DECL_CLASS_CONTEXT): Adjust.
1524290075Sobrien	(DECL_FRIEND_CONTEXT): New macro.
1524390075Sobrien	(DECL_REAL_CONTEXT): Remove.
1524490075Sobrien	(SET_DECL_FRIEND_CONTEXT): Likewise.
1524590075Sobrien	(DECL_VIRTUAL_CONTEXT): Adjust.
1524690075Sobrien	(DECL_CLASS_SCOPE_P): Use TYPE_P.
1524790075Sobrien	(add_friends): Remove.
1524890075Sobrien	(hack_decl_function_context): Likewise.
1524990075Sobrien	* call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with
1525090075Sobrien	CP_DECL_CONTEXT.
1525190075Sobrien	(build_over_call): Fix indentation.  Use DECL_CONTEXT
1525290075Sobrien	instead of DECL_CLASS_CONTEXT.
1525390075Sobrien	* class.c (dfs_build_vcall_offset_vtbl_entries): Likewise.
1525490075Sobrien	(add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
1525590075Sobrien	(strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
1525690075Sobrien	(build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT.
1525790075Sobrien	(build_base_field): Likewise.
1525850397Sobrien	(finish_struct_1): Likewise.
1525990075Sobrien	(build_self_reference): Likewise.
1526090075Sobrien	* decl.c (push_class_binding): Use CP_DECL_CONTEXT, not
1526190075Sobrien	DECL_REAL_CONTEXT.
1526290075Sobrien	(pushtag): Use decl_function_context, not
1526350397Sobrien	hack_decl_function_context.
1526490075Sobrien	(decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
1526590075Sobrien	(duplicate_decls): Use DECL_VIRTUAL_CONTEXT.
1526690075Sobrien	(pushdecl): Remove bogus code.
1526790075Sobrien	(start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT.
1526890075Sobrien	(cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
1526990075Sobrien	(grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
1527090075Sobrien	Use decl_function_context, nothack_decl_function_context.
1527190075Sobrien	(grokvardecl): Don't set DECL_CLASS_CONTEXT.
1527290075Sobrien	(grokdeclarator): Likewise.  Use decl_function_context, not
1527390075Sobrien	hack_decl_function_context.
1527490075Sobrien	(copy_args_p): Document.  Don't use DECL_CLASS_CONTEXT.
1527590075Sobrien	(start_function): Use DECL_FRIEND_CONTEXT, not
1527690075Sobrien	DECL_CLASS_CONTEXT.  Use decl_function_context, not
1527790075Sobrien	hack_decl_function_context.
1527890075Sobrien	(finish_function): Use decl_function_context, not
1527990075Sobrien	hack_decl_function_context.
1528090075Sobrien	(maybe_retrofit_in_chrg): Use DECL_CONTEXT, not
1528190075Sobrien	DECL_CLASS_CONTEXT.
1528290075Sobrien	(grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT.
1528390075Sobrien	(finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT.
1528490075Sobrien	(grokfield): Likewise.
1528590075Sobrien	(finish_builtin_type): Likewise.
1528690075Sobrien	(finish_vtable_vardec): Use decl_function_context, not
1528790075Sobrien	hack_decl_function_context.
1528890075Sobrien	(import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
1528990075Sobrien	(start_static_initialization_or_destruction): Likewise.
1529090075Sobrien	(finish_static_initialization_or_destruction): Likewise.
1529190075Sobrien	(mark_used): Adjust logic for deciding when to synthesize methods.
1529290075Sobrien	* dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not
1529390075Sobrien	DECL_REAL_CONTEXT.
1529490075Sobrien	* error.c (dump_function_decl): Use DECL_CONTEXT, not
1529590075Sobrien	DECL_CLASS_CONTEXT.
1529690075Sobrien	* friend.c (is_friend): Likewise.
1529790075Sobrien	(add_friends): Remove.
1529890075Sobrien	(do_friend): Use SET_DECL_FRIEND_CONTEXT.
1529990075Sobrien	* lex.c (begin_definition_of_inclass_inline): Use
1530090075Sobrien	decl_function_context, not hack_decl_function_context.
1530190075Sobrien	(process_next_inline): Likewise.
1530290075Sobrien	(do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
1530390075Sobrien	* method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not
1530490075Sobrien	DECL_CLASSS_CONTEXT.
1530590075Sobrien	(hack_identifier): Likewise.
1530690075Sobrien	(synthesize_method):  Use decl_function_context, not
1530790075Sobrien	hack_decl_function_context.
1530890075Sobrien	* pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not
1530990075Sobrien	DECL_REAL_CONTEXT.
1531090075Sobrien	(is_member_template): Use decl_function_context, not
1531190075Sobrien	hack_decl_function_context.  Use DECL_CONTEXT, not
1531290075Sobrien	DECL_CLASS_CONTEXT.
1531390075Sobrien	(build_template_decl): Set DECL_VIRTUAL_CONTEXT, not
1531490075Sobrien	DECL_CLASS_CONTEXT.
1531590075Sobrien	(check_default_tmpl_args): Use CP_DECL_CONTEXT, not
1531690075Sobrien	DECL_REAL_CONTEXT.
1531790075Sobrien	(push_template_decl_real): Likewise.
1531890075Sobrien	(instantiate_class_template): Don't call add_friends.
1531990075Sobrien	(tsubst_default_argument): Use DECL_CONTEXT, not
1532090075Sobrien	DECL_REAL_CONTEXT.
1532190075Sobrien	(tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
1532290075Sobrien	Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
1532390075Sobrien	(set_meangled_name_for_template_decl): Use DECL_CONTEXT, not
1532490075Sobrien	DECL_CLASS_CONTEXT.
1532590075Sobrien	* repo.c (repo_inline_used): Likewise.
1532690075Sobrien	* search.c (current_scope): Adjust for new _CONTEXT macros.
1532790075Sobrien	(context_for_name_lookup): Use CP_DECL_CONTEXT, not
1532890075Sobrien	DECL_REAL_CONTEXT.
1532990075Sobrien	(friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
1533090075Sobrien	(lookup_fnfields_here):Likewise.
1533190075Sobrien	(check_final_overrider): Likewise.
1533290075Sobrien	(init_vbase_pointers): Likewise.
1533390075Sobrien	(virtual_context): Likewise.
1533490075Sobrien	* semantics.c (finish_member_declaration): Just set DECL_CONTEXT.
1533590075Sobrien	(expand_body): Use decl_function_context, not
1533690075Sobrien	hack_decl_function_context.
1533790075Sobrien	* tree.c (hack_decl_function_context): Remove.
1533890075Sobrien	* typeck.c (build_x_function_call): Use DECL_CONTEXT, not
1533990075Sobrien	DECL_CLASS_CONTEXT.
1534090075Sobrien	* typeck2.c (error_not_base_type): Likewise.
1534118334Speter
1534290075Sobrien2000-02-15  Jason Merrill  <jason@casey.cygnus.com>
1534318334Speter
1534490075Sobrien	* decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE.
1534518334Speter
1534690075Sobrien2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1534718334Speter
1534890075Sobrien	* Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h.
1534918334Speter
1535090075Sobrien2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
1535118334Speter
1535290075Sobrien	* lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec.
1535318334Speter
1535490075Sobrien2000-01-16  Gabriel Dos Reis  <gdr@codesourcery.com>
1535518334Speter
1535690075Sobrien	* decl2.c (lang_decode_option): Enable automatic line wrapping.
1535718334Speter
1535890075Sobrien2000-02-13  Jason Merrill  <jason@casey.cygnus.com>
1535918334Speter
1536090075Sobrien	* parse.y (frob_specs): Split out...
1536190075Sobrien	(parse_decl): From here.
1536290075Sobrien	(fn.def2): Call initial_deferred_type_access_control.
1536390075Sobrien	(after_type_component_declarator0): Call frob_specs.
1536490075Sobrien	(notype_component_declarator0): Likewise.
1536590075Sobrien	* search.c (friend_accessible_p): Nested classes are friends of their
1536690075Sobrien	enclosing classes.
1536718334Speter
1536890075Sobrien2000-02-10  Mark Mitchell  <mark@codesourcery.com>
1536918334Speter
1537090075Sobrien	* ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be
1537190075Sobrien	used to create an implicit temporary.
1537218334Speter
1537390075Sobrien	* class.c (dfs_modify_vtables): Tweak calculation of functions to
1537490075Sobrien	override.
1537518334Speter
1537690075Sobrien2000-02-08  Nathan Sidwell  <nathan@acm.org>
1537718334Speter
1537890075Sobrien	* typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to
1537990075Sobrien	strip array element qualifiers too.
1538018334Speter
1538190075Sobrien2000-02-07  Mark Mitchell  <mark@codesourcery.com>
1538218334Speter
1538390075Sobrien	* decl.c (store_parm_decls): Don't build cleanups for parameters
1538490075Sobrien	while processing_template_decl.
1538518334Speter
1538690075Sobrien2000-02-07  Jason Merrill  <jason@casey.cygnus.com>
1538718334Speter
1538890075Sobrien	* cp-tree.h (struct saved_scope): Add incomplete field.
1538990075Sobrien	(namespace_scope_incomplete): New macro.
1539090075Sobrien	* decl.c (pushdecl): Use it.
1539190075Sobrien	(hack_incomplete_structures): Use it.  See through artificial
1539290075Sobrien	binding levels.
1539390075Sobrien	(mark_saved_scope): Mark it.
1539418334Speter
1539590075Sobrien	Implement access control for nested types.
1539690075Sobrien	* search.c (type_access_control): New fn.
1539790075Sobrien	(accessible_p): Now we do perform access control for types.
1539890075Sobrien	* semantics.c (deferred_type_access_control): New fn.
1539990075Sobrien	(initial_deferred_type_access_control): New fn.
1540090075Sobrien	(begin_function_definition): Call it.  Add lookups parm.
1540190075Sobrien	* decl.c (struct binding_level): Add this_class field.
1540290075Sobrien	(pushlevel_class): Set it.
1540390075Sobrien	(mark_binding_level): Mark it.
1540490075Sobrien	(lookup_name_real): Use it.  Call type_access_control.
1540590075Sobrien	(mark_saved_scope): Mark lookups field.
1540690075Sobrien	* cp-tree.h (flagged_type_tree): Add lookups field.
1540790075Sobrien	(struct saved_scope): Add lookups field.
1540890075Sobrien	(type_lookups): New macro.
1540990075Sobrien	* parse.y (declmods): Now <ftype>.
1541090075Sobrien	(parse_decl): Add lookups parm.  Call
1541190075Sobrien	initial_deferred_type_access_control.
1541290075Sobrien	(lang_extdef): Clear type_lookups.
1541390075Sobrien	(typed_declspecs, declmods, typespec): Set lookups field.
1541490075Sobrien	(initdcl): Call deferred_type_access_control.
1541590075Sobrien	(fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0,
1541690075Sobrien	component_decl_1, named_parm): Adjust.
1541790075Sobrien	* friend.c (is_friend): Nested classes are friends of their
1541890075Sobrien	enclosing classes.
1541918334Speter
1542090075Sobrien	* class.c (currently_open_derived_class): New fn.
1542190075Sobrien	* method.c (hack_identifier): Use it.
1542218334Speter
1542390075Sobrien	* lex.c (do_identifier): Remove obsolete code.
1542418334Speter
1542590075Sobrien	* parse.y (typed_typespecs): Propagate new_type_flag properly.
1542618334Speter
1542790075Sobrien2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
1542818334Speter
1542990075Sobrien	* tinfo.h: Remove apostrophes from C++ comment (xgettext
1543090075Sobrien	thinks this file is plain C).
1543118334Speter
1543290075Sobrien2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1543318334Speter
1543490075Sobrien	* Makefile.in (call.o): Depend on $(EXPR_H).
1543518334Speter
1543690075Sobrien	* call.c: Include "expr.h".
1543718334Speter
1543890075Sobrien	* class.c (dump_class_hierarchy): Add prototype.
1543918334Speter
1544090075Sobrien	* search.c (dfs_get_pure_virtuals): Likewise.
1544118334Speter
1544290075Sobrien2000-02-1  Ulrich Drepper  <drepper@redhat.com>
1544318334Speter
1544490075Sobrien	* parse.y (simple_stmt): Allow :: token in asm parameter list.
1544590075Sobrien	* parse.c: Rebuilt.
1544618334Speter
1544790075SobrienMon Jan 31 15:35:29 2000  Jim Wilson  <wilson@cygnus.com>
1544818334Speter
1544990075Sobrien	* class.c (build_vtbl_or_vbase_field): New parameter fcontext.
1545090075Sobrien	Store it in DECL_FCONTEXT.
1545190075Sobrien	(build_vbase_pointer_fields, create_vtable_ptr): Fix callers.
1545218334Speter
1545390075Sobrien2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
1545418334Speter
1545590075Sobrien	* tinfo.h (old abi): #include "tconfig.h".
1545690075Sobrien	* tinfo.cc (convert_to_base): Move into old abi section.
1545718334Speter
1545890075Sobrien2000-01-31  Mark Mitchell  <mark@codesourcery.com>
1545918334Speter
1546090075Sobrien	* cp-tree.h (BINFO_VIRTUALS): Tweak documentation.
1546190075Sobrien	(CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO.
1546290075Sobrien	(BINFO_PRIMARY_BINFO): New macro.
1546390075Sobrien	(BF_DELTA): Rename to ...
1546490075Sobrien	(BV_DELTA): ... this.
1546590075Sobrien	(BF_VCALL_INDEX): Rename to ...
1546690075Sobrien	(BV_VCALL_INDEX): ... this.
1546790075Sobrien	(BF_FN): Rename to ...
1546890075Sobrien	(BV_FN): ... this.
1546990075Sobrien	* class.c (build_vbase_path): Adjust for changes to reverse_path.
1547090075Sobrien	(set_rtti_entry): Rename BF_ macros to BV_ variants.
1547190075Sobrien	(modify_vtable_entry): Simplify.
1547290075Sobrien	(add_virtual_function): Rename BF_ macros to BV_ variants.
1547390075Sobrien	(build_vtable_initializer): Likewise.
1547490075Sobrien	(get_class_offset_1): Remove.
1547590075Sobrien	(dfs_get_class_offset): Likewise.
1547690075Sobrien	(get_class_offset): Likewise.
1547790075Sobrien	(dfs_find_final_overrider): New function.
1547890075Sobrien	(find_final_overrider): Likewise.
1547990075Sobrien	(modify_one_vtable): Remove.
1548090075Sobrien	(dfs_find_base): New function.
1548190075Sobrien	(dfs_modify_vtables): Fold modify_one_vtable in here.  Use
1548290075Sobrien	find_final_overrider.
1548390075Sobrien	(modify_all_vtables): Adjust.  Set BV_VCALL_INDEX on new
1548490075Sobrien	virtuals.
1548590075Sobrien	(dfs_fixup_vtable_deltas): Remove.
1548690075Sobrien	(override_one_vtable): Remove.
1548790075Sobrien	(merge_overrides): Likewise.
1548890075Sobrien	(layout_virtual_bases): Make sure BINFO_OFFSET is set right for
1548990075Sobrien	unreal chilren of virtual bases.
1549090075Sobrien	(finish_struct_1): Don't use merge_overrides.  Don't use
1549190075Sobrien	dfs_fixup_vtable_deltas.
1549290075Sobrien	* tree.c (reverse_path): Return a TREE_LIST, not a chain of
1549390075Sobrien	BINFOs.
1549418334Speter
1549590075Sobrien2000-01-31  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1549690075Sobrien	    Jason Merrill  <jason@yorick.cygnus.com>
1549718334Speter
1549890075Sobrien	* tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT.
1549918334Speter
1550090075Sobrien2000-01-31  Alfred Minarik <a8601248@unet.univie.ac.at>
1550118334Speter
1550290075Sobrien	* exception.cc (__throw_bad_typeid): Add missing std::.
1550350397Sobrien
1550490075Sobrien2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1550550397Sobrien
1550690075Sobrien	* cp-tree.h (make_thunk): PROTO -> PARAMS.
1550750397Sobrien
1550890075Sobrien2000-01-31  Nathan Sidwell  <sidwell@codesourcery.com>
1550950397Sobrien
1551090075Sobrien	* cp-tree.h (new_abi_rtti_p): Use flag_new_abi.
1551150397Sobrien
1551290075Sobrien	Runtime support for new-abi rtti.
1551390075Sobrien	* inc/typeinfo (type_info::operator!=): Define in class.
1551490075Sobrien	(type_info::before, type_info::name, type_info::operator==,
1551590075Sobrien	type_info::operator!=): Define new ABI implementations.
1551690075Sobrien	(type_info::is_pointer_p, type_info::is_function_p): Declare
1551790075Sobrien	new virtual functions.
1551890075Sobrien	(type_info::do_catch, type_info::do_upcast): Likewise.
1551950397Sobrien
1552090075Sobrien	* tinfo.h (__base_class_info): Define new class.
1552190075Sobrien	(__class_type_info): Likewise.
1552290075Sobrien	(__si_class_type_info): Likewise.
1552390075Sobrien	(__vmi_class_type_info): Likewise.
1552490075Sobrien	(__dynamic_cast): Prototype.
1552550397Sobrien
1552690075Sobrien	* tinfo.cc: Conditionalize old and new rtti mechanisms.
1552790075Sobrien	(type_info::is_pointer_p): Define new function.
1552890075Sobrien	(type_info::is_function_p): Likewise.
1552990075Sobrien	(type_info::do_catch): Likewise.
1553090075Sobrien	(type_info::do_upcast): Likewise.
1553190075Sobrien	(vtable_prefix): New structure for vtable access.
1553290075Sobrien	(adjust_pointer): Define new template function.
1553390075Sobrien	(contained_p, public_p, virtual_p, contained_public_p,
1553490075Sobrien	contained_nonpublic_p, contained_nonvirtual_p): Define new
1553550397Sobrien	functions.
1553690075Sobrien	(nonvirtual_base_type): New local variable.
1553790075Sobrien	(__class_type_info::~__class_type_info): Define.
1553890075Sobrien	(__si_class_type_info::~__si_class_type_info): Likewise.
1553990075Sobrien	(__vmi_class_type_info::~__vmi_class_type_info): Likewise.
1554090075Sobrien	(__class_type_info::do_catch): Define new function.
1554190075Sobrien	(__class_type_info::do_upcast): Likewise.
1554290075Sobrien	(__class_type_info::find_public_src): Likewise.
1554390075Sobrien	(__class_type_info::do_find_public_src): Likewise.
1554490075Sobrien	(__si_class_type_info::do_find_public_src): Likewise.
1554590075Sobrien	(__vmi_class_type_info::do_find_public_src): Likewise.
1554690075Sobrien	(__class_type_info::do_dyncast): Likewise.
1554790075Sobrien	(__si_class_type_info::do_dyncast): Likewise.
1554890075Sobrien	(__vmi_class_type_info::do_dyncast): Likewise.
1554990075Sobrien	(__class_type_info::do_upcast): Likewise.
1555090075Sobrien	(__si_class_type_info::do_upcast): Likewise.
1555190075Sobrien	(__vmi_class_type_info::do_upcast): Likewise.
1555290075Sobrien	(__dynamic_cast): Likewise.
1555318334Speter
1555490075Sobrien	* tinfo2.cc (__fundamental_type_info): Define new class.
1555590075Sobrien	(__pointer_type_info): Likewise.
1555690075Sobrien	(__reference_type_info): Likewise.
1555790075Sobrien	(__array_type_info): Likewise.
1555890075Sobrien	(__function_type_info): Likewise.
1555990075Sobrien	(__enum_type_info): Likewise.
1556090075Sobrien	(__ptr_to_member_type_info): Likewise.
1556190075Sobrien	(__fundamental_type_info::~__fundamental_type_info): Define.
1556290075Sobrien	(__pointer_type_info::~__pointer_type_info): Likewise.
1556390075Sobrien	(__reference_type_info::~__reference_type_info): Likewise.
1556490075Sobrien	(__array_type_info::~__array_type_info): Likewise.
1556590075Sobrien	(__function_type_info::~__function_type_info): Likewise.
1556690075Sobrien	(__enum_type_info::~__enum_type_info): Likewise.
1556790075Sobrien	(__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise.
1556890075Sobrien	(__pointer_type_info::do_catch): Define new function.
1556990075Sobrien	(__ptr_to_member_type_info::do_catch): Define new function.
1557018334Speter
1557190075Sobrien	(__throw_type_match_rtti_2): Use new ABI interface, if enabled.
1557290075Sobrien	(__is_pointer): Likewise.
1557318334Speter
1557490075Sobrien	* exception.cc (__cplus_type_matcher): Deal with new-abi rtti.
1557518334Speter
1557690075Sobrien2000-01-30  Mark Mitchell  <mark@codesourcery.com>
1557718334Speter
1557890075Sobrien	* cp/class.c (build_vtable): Rename to build_primary_vtable.
1557990075Sobrien	(prepare_fresh_vtable): Rename to build_secondary_vtable.
1558090075Sobrien	(make_new_vtable): New function.
1558190075Sobrien	(modify_vtable_entry): Handle generation of new vtables correctly.
1558290075Sobrien	(modify_one_vtable): Remove unused parameter.
1558390075Sobrien	(dfs_fixup_vtable_deltas): Likewise.
1558490075Sobrien	(override_one_vtable): Use build_secondary_vtable.
1558590075Sobrien	(finish_struct_1): Use build_primary_vtable and
1558690075Sobrien	build_secondary_vtable.
1558718334Speter
1558890075Sobrien2000-01-28  Ulrich Drepper  <drepper@redhat.com>
1558918334Speter
1559090075Sobrien	* cp/decl.c: Adjust variable names, comments, help strings.
1559118334Speter
1559290075Sobrien2000-01-29  Nathan Sidwell  <nathan@acm.org>
1559318334Speter
1559490075Sobrien	* new2.cc (operator delete[]): Use operator delete, don't assume
1559590075Sobrien	implementation.
1559618334Speter
1559790075Sobrien2000-01-29  Nathan Sidwell  <sidwell@codesourcery.com>
1559818334Speter
1559990075Sobrien	* class.c (build_vtbl_initializer): Add argument to
1560090075Sobrien	build_vtable_entry call.
1560118334Speter
1560290075Sobrien2000-01-27  Mark Mitchell  <mark@codesourcery.com>
1560318334Speter
1560490075Sobrien	* cp-tree.def (THUNK_DECL): Discuss vcall indices.
1560590075Sobrien	* cp-tree.h (BINFO_VIRTUALS): Update documentation.
1560690075Sobrien	(BF_DELTA): New macro.
1560790075Sobrien	(BF_VCALL_INDEX): Likewise.
1560890075Sobrien	(BF_FN): Likewise.
1560990075Sobrien	(THUNK_VCALL_OFFSET): Likewise.
1561090075Sobrien	(make_thunk): Change prototype.
1561190075Sobrien	* class.c (build_vtable_entry): Integrate
1561290075Sobrien	build_vtable_entry_for_fn.  Handle vcall indices.
1561390075Sobrien	(build_vtable_entry_for_fn): Remove.
1561490075Sobrien	(set_rtti_entry): Handle vcall indices.  Use BF_DELTA,
1561590075Sobrien	BF_VCALL_INDEX, BF_FN.
1561690075Sobrien	(modify_vtable_entry): Integrate common code from
1561790075Sobrien	modify_one_vtable and dfs_fixup_vtable_deltas.
1561890075Sobrien	(add_virtual_function): Set BF_VCALL_INDEX.
1561990075Sobrien	(build_vtbl_initializer): Simplify.  Use BF_DELTA, BF_VCALL_INDEX,
1562090075Sobrien	and BF_FN.
1562190075Sobrien	(modify_one_vtable): Simplify.
1562290075Sobrien	(dfs_fixup_vtable_deltas): Likewise.
1562390075Sobrien	(override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN.
1562490075Sobrien	* method.c (make_thunk): Handle vcall indices.
1562518334Speter
1562690075Sobrien2000-01-28  Nathan Sidwell  <sidwell@codesourcery.com>
1562718334Speter
1562890075Sobrien	Compiler side new abi rtti (not enabled).
1562990075Sobrien	* cp-tree.h (new_abi_rtti_p): New macro.
1563090075Sobrien	(emit_support_tinfos): Prototype new function.
1563190075Sobrien	(tinfo_decl_p): Likewise.
1563290075Sobrien	(emit_tinfo_decl): Likwise.
1563390075Sobrien	* rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor
1563490075Sobrien	macros.
1563590075Sobrien	(doing_runtime): New local static.
1563690075Sobrien	(init_rtti_processing): Add new-abi initializer.
1563790075Sobrien	(get_tinfo_decl): Add new-abi logic.
1563890075Sobrien	(tinfo_from_decl): Likewise.
1563990075Sobrien	(build_dynamic_cast_1): Likewise.
1564090075Sobrien	(qualifier_flags): New static function.
1564190075Sobrien	(tinfo_base_init): Likewise.
1564290075Sobrien	(generic_initializer): Likewise.
1564390075Sobrien	(ptr_ref_initializer): Likewise.
1564490075Sobrien	(ptmd_initializer): Likewise.
1564590075Sobrien	(class_hint_flags): Likewise.
1564690075Sobrien	(class_initializer): Likewise.
1564790075Sobrien	(synthesize_tinfo_var): Likewise.
1564890075Sobrien	(create_real_tinfo_var): Likewise.
1564990075Sobrien	(create_pseudo_type_info): Likewise.
1565090075Sobrien	(get_vmi_pseudo_type_info): Likewise.
1565190075Sobrien	(create_tinfo_types): Likewise.
1565290075Sobrien	(emit_support_tinfos): New global function.
1565390075Sobrien	(tinfo_decl_p): New global predicate.
1565490075Sobrien	(emit_tinfo_decl): New global function.
1565590075Sobrien	* class.c (set_rtti_entry): Generalize for old and new rtti.
1565690075Sobrien	(build_vtbl_initializer): Likewise.
1565790075Sobrien	* decl2.c (finish_file): Likewise.
1565818334Speter
1565990075SobrienThu Jan 27 20:53:36 2000  Jim Wilson  <wilson@cygnus.com>
1566018334Speter
1566190075Sobrien	* optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t)
1566290075Sobrien	and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))).
1566318334Speter
1566490075SobrienThu Jan 27 13:54:12 2000  Mike Stump  <mrs@wrs.com>
1566518334Speter
1566690075Sobrien	* decl.c (pushdecl): Fix up shadow warnings with respect to implicit
1566790075Sobrien	for scopes.
1566818334Speter
1566990075Sobrien2000-01-26  Jason Merrill  <jason@casey.cygnus.com>
1567018334Speter
1567190075Sobrien	* pt.c (unify): Use fold, not maybe_fold_nontype_arg.
1567218334Speter
1567390075SobrienWed Jan 26 22:19:14 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1567418334Speter
1567590075Sobrien	* optimize.c (calls_setjmp_r): Supply new argument
1567690075Sobrien	to special_function_p.
1567752284Sobrien
1567890075Sobrien2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1567918334Speter
1568090075Sobrien	* call.c: PROTO -> PARAMS.
1568190075Sobrien	* class.c: Likewise.
1568290075Sobrien	* cp-tree.h: Likewise.
1568390075Sobrien	* cvt.c: Likewise.
1568490075Sobrien	* decl.c: Likewise.
1568590075Sobrien	* decl.h: Likewise.
1568690075Sobrien	* decl2.c: Likewise.
1568790075Sobrien	* dump.c: Likewise.
1568890075Sobrien	* errfn.c: Likewise.
1568990075Sobrien	* error.c: Likewise.
1569090075Sobrien	* except.c: Likewise.
1569190075Sobrien	* expr.c: Likewise.
1569290075Sobrien	* init.c: Likewise.
1569390075Sobrien	* input.c: Likewise.
1569490075Sobrien	* lex.c: Likewise.
1569590075Sobrien	* lex.h: Likewise.
1569690075Sobrien	* method.c: Likewise.
1569790075Sobrien	* optimize.c: Likewise.
1569890075Sobrien	* parse.y: Likewise.
1569990075Sobrien	* pt.c: Likewise.
1570090075Sobrien	* repo.c: Likewise.
1570190075Sobrien	* rtti.c: Likewise.
1570290075Sobrien	* search.c: Likewise.
1570390075Sobrien	* semantics.c: Likewise.
1570490075Sobrien	* spew.c: Likewise.
1570590075Sobrien	* tree.c: Likewise.
1570690075Sobrien	* typeck.c: Likewise.
1570790075Sobrien	* typeck2.c: Likewise.
1570890075Sobrien	* xref.c: Likewise.
1570918334Speter
1571090075Sobrien2000-01-25  Richard Henderson  <rth@cygnus.com>
1571118334Speter
1571290075Sobrien	* typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR.
1571318334Speter
1571490075Sobrien2000-01-25  Mark Mitchell  <mark@codesourcery.com>
1571518334Speter
1571690075Sobrien	* cp-tree.h (vcall_offset_in_vtable_p): New macro.
1571790075Sobrien	* class.c (build_vbase_offset_vtbl_entries): Fix typo in commment.
1571890075Sobrien	(struct vcall_offset_data_s): New type.
1571990075Sobrien	(dfs_vcall_offset_queue_p): New function.
1572090075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Likewise.
1572190075Sobrien	(build_vcall_offset_vtbl_entries): Likewise.
1572290075Sobrien	(layout_vtable_decl): Likewise.
1572390075Sobrien	(num_vfun_entries): Likewise.
1572490075Sobrien	(num_extra_vtbl_entries): Add the entries for vcall offsets.
1572590075Sobrien	(build_vtbl_initializer): Likewise.
1572690075Sobrien	(dfs_finish_vtabls): Use layout_vtable_decl.
1572790075Sobrien	(modify_one_vtables): Always duplicate vtables under the new ABI.
1572890075Sobrien	(finish_struct_1): Use layout_vtable_decl.
1572918334Speter
1573090075Sobrien2000-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1573118334Speter
1573290075Sobrien	* decl.c (member_function_or_else): Change third arg from a format
1573390075Sobrien	specifier to an `enum overload_flags'.  Callers changed.
1573418334Speter
1573590075Sobrien2000-01-25  Gabriel Dos Reis  <gdr@codesourcery.com>
1573618334Speter
1573790075Sobrien	* typeck.c (composite_pointer_type, c_sizeof, expr_sizeof,
1573890075Sobrien	build_binary_op_nodefault, build_unary_op, build_reinterpret_cast,
1573990075Sobrien	build_const_cast, get_delta_difference, check_return_expr): Avoid
1574090075Sobrien	ANSI string concatenation usage.
1574118334Speter
1574290075Sobrien2000-01-24  Mark Mitchell  <mark@codesourcery.com>
1574318334Speter
1574490075Sobrien	* class.c (layout_class_type): Put the fields required to make a
1574590075Sobrien	class non-empty at the end, not the beginning, of the TYPE_FIELDs
1574690075Sobrien	list.
1574718334Speter
1574890075Sobrien2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
1574918334Speter
1575090075Sobrien	* pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a
1575190075Sobrien	template.
1575218334Speter
1575390075Sobrien	* decl2.c (mark_used): Do instantiate inlines that have been
1575490075Sobrien	explicitly instantiated.
1575518334Speter
1575690075Sobrien2000-01-24  Richard Henderson  <rth@cygnus.com>
1575718334Speter
1575890075Sobrien	* call.c (build_over_call): Use expand_tree_builtin.
1575990075Sobrien	* typeck.c (build_function_call_real): Likewise.
1576090075Sobrien	(build_binary_op_nodefault): Handle unordered compares.
1576118334Speter
1576290075Sobrien2000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
1576318334Speter
1576490075Sobrien	* cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New
1576590075Sobrien	cp_tree_index values.
1576690075Sobrien	(throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node):
1576790075Sobrien	New global node #defines for them.
1576890075Sobrien	* rtti.c (call_void_fn): Replace with ...
1576990075Sobrien	(build_runtime_decl): ... new static function.
1577090075Sobrien	(throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl.
1577190075Sobrien	(throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl.
1577290075Sobrien	(build_dynamic_cast_1): Always produce correctly typed result.
1577390075Sobrien	Explicitly produce type_info addresses. Use dynamic_cast_node.
1577490075Sobrien	* exception.cc (__throw_bad_cast): Return `void *'.
1577590075Sobrien	(__throw_bad_typeid): Return `const type_info &'.
1577618334Speter
1577790075Sobrien2000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
1577818334Speter
1577990075Sobrien	* cp-tree.h (get_vtable_decl): Prototype new function.
1578090075Sobrien	* class.c (get_vtable_decl): New function. Broken out from ...
1578190075Sobrien	(build_vtable): ... here. Use it.
1578290075Sobrien	* decl2.c (finish_vtable_vardecl): Ignore dummy vtables created
1578390075Sobrien	by get_vtable_decl.
1578418334Speter
1578590075Sobrien2000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
1578618334Speter
1578790075Sobrien	* cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE,
1578890075Sobrien	CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE,
1578990075Sobrien	CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations.
1579090075Sobrien	(CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE,
1579190075Sobrien	CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE,
1579290075Sobrien	CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations.
1579390075Sobrien	(CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ...
1579490075Sobrien	(CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here.
1579590075Sobrien	(CPTI_TINFO_VAR_ID): New enumeration.
1579690075Sobrien	(__tp_desc_type_node, __access_mode_type_node,
1579790075Sobrien	__bltn_desc_type_node, __user_desc_type_node,
1579890075Sobrien	__class_desc_type_node, __ptr_desc_type_node,
1579990075Sobrien	__attr_desc_type_node, __func_desc_type_node,
1580090075Sobrien	__ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines.
1580190075Sobrien	(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
1580290075Sobrien	ref_desc_type_node, ary_desc_type_node, func_desc_type_node,
1580390075Sobrien	enum_desc_type_node, class_desc_type_node,
1580490075Sobrien	si_class_desc_type_node, vmi_class_desc_type_node,
1580590075Sobrien	ptmd_desc_type_node, base_desc_type_node): New #defines.
1580690075Sobrien	(tinfo_fn_id, tinfo_fn_type): Rename to ...
1580790075Sobrien	(tinfo_decl_id, tinfo_decl_type): ... here. Adjust.
1580890075Sobrien	(tinfo_var_id): New enumeration.
1580990075Sobrien	(DECL_TINFO_FN_P): Augment comment.
1581090075Sobrien	* decl.c (cp_global_trees): Adjust documentation.
1581190075Sobrien	* rtti.c (init_rtti_processing): Adjust for tinfo_decl_id,
1581290075Sobrien	tinfo_decl_type and tinfo_var_id.
1581390075Sobrien	(get_tinfo_decl_dynamic): Adjust for tinfo_decl_type.
1581490075Sobrien	(build_typeid): Remove unused variable.
1581590075Sobrien	(get_tinfo_var): Use tinfo_var_id.
1581690075Sobrien	(tinfo_name): New static function.
1581790075Sobrien	(get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type.
1581890075Sobrien	(tinfo_from_decl): Likewise.
1581990075Sobrien	(get_base_offset): New static function, broken out of
1582090075Sobrien	expand_class_desc.
1582190075Sobrien	(expand_si_desc): Use tinfo_name.
1582290075Sobrien	(expand_class_desc): Likewise. Lose local static variable.
1582390075Sobrien	Use base_desc_type_node. Use get_base_offset.
1582490075Sobrien	(expand_ptr_desc): Use tinfo_name.
1582590075Sobrien	(expand_attr_desc): Likewise.
1582690075Sobrien	(expand_generic_desc): Likewise.
1582718334Speter
1582890075Sobrien	* tinfo.cc (__GXX_ABI_VERSION): Test value and existence.
1582990075Sobrien	* tinfo.h (__GXX_ABI_VERSION): Test value and existence.
1583018334Speter
1583190075Sobrien2000-01-23  Mark Mitchell  <mark@codesourcery.com>
1583218334Speter
1583390075Sobrien	* cp-tree.h (__eprintf): Remove declaration.
1583490075Sobrien	* tree.c (__eprintf): Remove definition.
1583518334Speter
1583690075Sobrien2000-01-23  Zack Weinberg  <zack@rabi.columbia.edu>
1583790075Sobrien	    Mark Mitchell  <mark@codesourcery.com>
1583818334Speter
1583990075Sobrien	* cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N,
1584090075Sobrien	CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings.
1584118334Speter
1584290075Sobrien2000-01-23  Brad Lucier  <lucier@math.purdue.edu>
1584318334Speter
1584490075Sobrien	* class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly.
1584518334Speter
1584690075Sobrien2000-01-23  Mark Mitchell  <mark@codesourcery.com>
1584718334Speter
1584890075Sobrien	* cp-tree.h (register_dtor_fn): New function.
1584990075Sobrien	* decl.c (destroy_local_static): Rename to ...
1585090075Sobrien	(register_dtor_fn): ... this.  Give it external linkage.
1585190075Sobrien	(expand_static_init): Use it.
1585290075Sobrien	* decl2.c (do_static_initialization): Likewise, if using
1585390075Sobrien	__cxa_atexit.
1585490075Sobrien	(do_static_destruction): Check that __cxa_atexit is not in use.
1585590075Sobrien	(finish_file): Don't call do_static_destruction if using
1585690075Sobrien	__cxa_atexit.
1585718334Speter
1585890075Sobrien	* typeck.c (convert_arguments): Restore two-message error
1585990075Sobrien	reporting.
1586018334Speter
1586190075Sobrien2000-01-20  Nathan Sidwell  <sidwell@codesourcery.com>
1586218334Speter
1586390075Sobrien	Remap dynamic cast hint values to be consistent across ABIs.
1586490075Sobrien	* search.c (dynamic_cast_base_recurse): Remap generated value.
1586590075Sobrien	(get_dynamic_cast_base_type): Adjust documentation.
1586690075Sobrien	* tinfo.h (__user_type_info::dyncast): Likewise.
1586790075Sobrien	(__user_type_info::find_public_subobj): Remap BOFF meaning.
1586890075Sobrien	* tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning.
1586990075Sobrien	(__class_type_info::do_dyncast): Likewise.
1587090075Sobrien	(__class_type_info::do_find_public_subobj): Likewise.
1587190075Sobrien	* tinfo2.cc (__dynamic_cast): Remap BOFF parameter.
1587218334Speter
1587390075Sobrien2000-01-19  Gabriel Dos Reis  <gdr@codesourcery.com>
1587418334Speter
1587590075Sobrien	* typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn.
1587618334Speter
1587790075Sobrien	* typeck2.c (incomplete_type_error): Restore previous
1587890075Sobrien	cp_error and cp_error_at call sequence.
1587918334Speter
1588090075Sobrien2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
1588118334Speter
1588290075Sobrien	* class.c (dump_class_hierarchy): Make format agree with argument;
1588390075Sobrien	cast pointer to unsigned long and print with %lx.
1588418334Speter
1588590075Sobrien2000-01-19  Gabriel Dos Reis  <gdr@codesourcery.com>
1588618334Speter
1588790075Sobrien	* decl2.c (lang_decode_option): Set default line-wrap length to 72.
1588818334Speter
1588990075Sobrien	* typeck.c (composite_pointer_type, common_type,
1589090075Sobrien	comp_target_parms, c_sizeof, expr_sizeof, build_array_ref,
1589190075Sobrien	build_function_call_real, convert_arguments,
1589290075Sobrien	build_binary_op_nodefault, pointer_int_sum, pointer_diff,
1589390075Sobrien	build_unary_op, mark_addressable, build_compound_expr,
1589490075Sobrien	build_static_cast, build_reinterpret_cast, build_const_cast,
1589590075Sobrien	build_c_cast, build_modify_expr, get_delta_difference,
1589690075Sobrien	build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with
1589790075Sobrien	'ISO C++'.  Fusion consecutive calls to diagnostic message routines
1589890075Sobrien	into a single one.
1589990075Sobrien	* typeck2.c (readonly_error, abstract_virtuals_error,
1590090075Sobrien	process_init_constructor, check_for_new_type): Likewise.
1590118334Speter
1590290075Sobrien2000-01-19  Mark Mitchell  <mark@codesourcery.com>
1590318334Speter
1590490075Sobrien	* tree.c (bot_manip): Set DECL_CONTEXT for newly created
1590590075Sobrien	VAR_DECLs.
1590618334Speter
1590790075Sobrien2000-01-18  Nathan Sidwell  <sidwell@codesourcery.com>
1590818334Speter
1590990075Sobrien	* cp-tree.h (get_tinfo_fn_dynamic): Remove prototype.
1591090075Sobrien	(build_x_typeid): Likewise.
1591190075Sobrien	(get_tinfo_fn): Likewise.
1591290075Sobrien	(get_tinfo_fn_unused): Rename to ...
1591390075Sobrien	(get_tinfo_decl): ... here.
1591490075Sobrien	* rtti.c (build_headof): Replace logic error with assertion.
1591590075Sobrien	(get_tinfo_fn_dynamic): Rename to ...
1591690075Sobrien	(get_tinfo_decl_dynamic): ... here. Make static. Use
1591790075Sobrien	complete_type_or_else.
1591890075Sobrien	(build_x_typeid): Move into ...
1591990075Sobrien	(build_typeid): ... here. Adjust call to
1592090075Sobrien	get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify
1592190075Sobrien	throw_bad_typeid expression.
1592290075Sobrien	(get_tinfo_fn_unused): Rename to ...
1592390075Sobrien	(get_tinfo_decl): ... here. Adjust comment.
1592490075Sobrien	(get_tinfo_fn): Delete.
1592590075Sobrien	(tinfo_from_decl): New static function.
1592690075Sobrien	(get_typeid_1): Call get_tinfo_decl and tinfo_from_decl.
1592790075Sobrien	(get_typeid): Use complete_type_or_else.
1592890075Sobrien	(build_dynamic_cast_1): Adjust calls to
1592990075Sobrien	get_tinfo_decl_dynamic. Simplify throw_bad_cast expression.
1593090075Sobrien	* parse.y (primary): Adjust call to build_typeid.
1593190075Sobrien	* except.c (build_eh_type_type_ref): Adjust call to
1593290075Sobrien	get_tinfo_decl. Mark as used.
1593390075Sobrien	* class.c (set_rtti_entry): Adjust call to get_tinfo_decl.
1593490075Sobrien	* decl2.c (build_expr_from_tree): Adjust call to build_typeid.
1593590075Sobrien	* parse.c: Regenerated.
1593618334Speter
1593790075Sobrien2000-01-17  Mark Mitchell  <mark@codesourcery.com>
1593818334Speter
1593990075Sobrien	* class.c (fixed_type_or_null): Don't clear NONNULL.  Document
1594090075Sobrien	calling convention.
1594190075Sobrien	(resolves_to_fixed_type_p): Document calling convention.
1594290075Sobrien	* rtti.c (build_x_typeid): Initialize NONNULL.
1594318334Speter
1594490075Sobrien	* cp-tree.h (build_shared_int_cst): New function.
1594590075Sobrien	* call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity.
1594690075Sobrien	* class.c (modify_vtable_entry): Likewise.
1594790075Sobrien	(add_virtual_function): Split out code to generated shared
1594890075Sobrien	INTEGER_CSTs to build_share_int_cst.
1594990075Sobrien	(modify_all_vtables): Handle all the overridden functions here.
1595090075Sobrien	Add overridden functions from non-primary virtual bases to the
1595190075Sobrien	primary vtable.
1595290075Sobrien	(finish_struct_1): Adjust call to modify_all_vtables.  Add
1595390075Sobrien	overridden functions from non-primary bases to the vtable.
1595490075Sobrien	* tree.c (build_shared_int_cst): New function.
1595518334Speter
1595690075Sobrien	* cp-tree.h (scratchalloc): Remove.
1595790075Sobrien	(build_scratch_list): Likewise.
1595890075Sobrien	* call.c (convert_class_to_reference): Replace build_scratch_list
1595990075Sobrien	and build_expr_list with build_tree_list.
1596090075Sobrien	(add_candidate): Replace scratchalloc with expralloc.  Note memory
1596190075Sobrien	leak.
1596290075Sobrien	(build_user_type_conversion_1):  Replace build_scratch_list
1596390075Sobrien	and build_expr_list with build_tree_list.
1596490075Sobrien	(build_new_op): Likewise.
1596590075Sobrien	(build_op_delete_call): Likewise.
1596690075Sobrien	(convert_like): Likewise.
1596790075Sobrien	* cvt.c (ocp_convert): Likewise.
1596890075Sobrien	* decl.c (start_decl): Likewise.
1596950397Sobrien	(start_function): Likewise.
1597090075Sobrien	(finish_destructor_body): Likewise.
1597190075Sobrien	(maybe_build_cleanup_1): Likewise.
1597290075Sobrien	* decl2.c (reparse_decl_as_expr): Likewise.
1597390075Sobrien	* init.c (perform_member_init): Likewise.
1597490075Sobrien	(expand_cleanup_for_base): Likewise.
1597590075Sobrien	(build_builtin_delete_call): Likewise.
1597690075Sobrien	(build_new_1): Likewise.
1597790075Sobrien	(build_delete): Likewise.
1597850397Sobrien	* method.c (do_build_assign_ref): Likewise.
1597990075Sobrien	* parse.y (already_scoped_stmt): Likewise.
1598090075Sobrien	(nontrivial_exprlist): Likewise.
1598190075Sobrien	(net_initializer): Likewise.
1598290075Sobrien	(initlist): Likewise.
1598390075Sobrien	* parse.c: Regenerated.
1598490075Sobrien	* rtti.c (build_x_typeid): Likewise.
1598590075Sobrien	(build_dynamic_cast_1): Likewise.
1598690075Sobrien	* typeck.c (build_x_compound_expr): Likewise.
1598790075Sobrien	(build_static_cast): Likewise.
1598890075Sobrien	(build_modify_expr): Likewise.
1598918334Speter
1599090075Sobrien	* cp-tree.h (DECL_VINDEX): Add documentation.
1599190075Sobrien	* class.c (build_vtable_entry): Likewise.
1599290075Sobrien	(start_vtable): Add comment.
1599390075Sobrien	(add_virtual_function): Replace pending_hard_virtuals with
1599490075Sobrien	overridden_virtuals and pending_virtuals with new_virtuals.
1599590075Sobrien	Replace redundant assignments with assertions.
1599690075Sobrien	(check_for_override): Add comment.
1599790075Sobrien	(check_bases_and_members): Replace pending_hard_virtuals with
1599890075Sobrien	overridden_virtuals and pending_virtuals with new_virtuals.
1599990075Sobrien	(create_vtbl_ptr): Likewise.
1600090075Sobrien	(layout_class_type): Likewise.
1600190075Sobrien	(finish_struct_1): Likewise.  Add comments.
1600218334Speter
1600390075Sobrien2000-01-16  Mark Mitchell  <mark@codesourcery.com>
1600418334Speter
1600590075Sobrien	* class.c (finish_struct_1): Replace redundant code with
1600690075Sobrien	assertions.
1600718334Speter
1600890075Sobrien	* cp-tree.h (flag_new_abi): Move.
1600990075Sobrien	(flag_use_cxa_atexit): Likewise.
1601090075Sobrien	(flag_honor_std): Likewise.
1601190075Sobrien	(flag_rtti): Likewise.
1601290075Sobrien	(vbase_offsets_in_vtable_p): Define.
1601390075Sobrien	(vptrs_present_everywhere_p): Likewise.
1601490075Sobrien	(TYPE_CONTAINS_VPTR_P): Likewise.
1601590075Sobrien	(dfs_walk_real): Declare.
1601690075Sobrien	* class.c (build_vbase_pointer_fields): Check
1601790075Sobrien	vbase_offsets_in_vtable_p.
1601890075Sobrien	(dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in
1601990075Sobrien	BINFO_VPTR_FIELD.
1602090075Sobrien	(build_vbase_offset_vtbl_entries): Simplify.
1602190075Sobrien	(build_vbase_offset_vtbl_entries): Adjust.
1602290075Sobrien	(build_vbase_pointer): Add ability to look up vbase offsets in
1602390075Sobrien	vtable.
1602490075Sobrien	(start_vtable): New function.
1602590075Sobrien	(add_virtual_function): Use it.
1602690075Sobrien	(determine_primary_base): Use TYPE_CONTAINS_VPTR_P.
1602790075Sobrien	(num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p.
1602890075Sobrien	(build_vtbl_initializer): Take the type of the complete object as
1602990075Sobrien	input.  Use it to correctly calculate vbase offsets.
1603090075Sobrien	(dfs_finish_vtbls): Pass the complete type to
1603190075Sobrien	build_vtbl_initializer.
1603290075Sobrien	(check_bases_and_members): Use TYPE_CONTAINS_VPTR_P.
1603390075Sobrien	(create_vtable_ptr): Create a vtable even if there are no
1603490075Sobrien	new virtual functions, under the new ABI.
1603590075Sobrien	(finish_struct_1): Likewise.
1603690075Sobrien	(get_vfield_name): Use TYPE_CONTAINS_VPTR_P.
1603790075Sobrien	* decl.c (exapnd_static_init): Remove call to
1603890075Sobrien	preserve_initializer.
1603990075Sobrien	* decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in
1604090075Sobrien	vtables.
1604190075Sobrien	* init.c (initialize_vtbl_ptrs): Initialize them in pre-order.
1604290075Sobrien	(expand_virtual_init): Use vbase_offsets_in_vtable_p.
1604390075Sobrien	(construct_virtual_bases): Don't initialize virtual base pointers
1604490075Sobrien	under the new ABI.
1604590075Sobrien	(build_aggr_init): Clean up comment.
1604690075Sobrien	(expand_aggr_init_1): Likewise.
1604790075Sobrien	* rtti.c (expand_class_desc): Store the virtual function table
1604890075Sobrien	index where the vbase offset lives in the offset field.
1604990075Sobrien	* search.c (dfs_walk_real): Make it global.
1605090075Sobrien	(dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P.
1605190075Sobrien	* tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD.
1605218334Speter
1605390075Sobrien	* tinfo.h (USItype): Make it signed under the new ABI.
1605490075Sobrien	* tinfo.cc (convert_to_base): New function.  Encapsulate base
1605590075Sobrien	conversion logic here.
1605690075Sobrien	(__class_type_info::do_upcast): Use it.
1605790075Sobrien	(__class_type_info::do_dyncast): Likewise.
1605890075Sobrien	(__class_type_info::do_find_public_subobj): Likewise.
1605918334Speter
1606090075Sobrien	* init.c (construct_virtual_bases): Don't look up the addresses of
1606190075Sobrien	virtual bases at run-time.
1606218334Speter
1606390075Sobrien	* class.c (build_vbase_pointer): Relocate.
1606490075Sobrien	(build_vbase_pointer_fields): Likewise.
1606590075Sobrien	(dfs_build_vbase_offset_vtbl_entries): Likewise.
1606690075Sobrien	(build_vbase_offset_vtbl_entries): Likewise.
1606718334Speter
1606890075Sobrien	* decl.c (init_decl_processing): Complain if -fnew-abi
1606990075Sobrien	-fno-vtable-thunks is used.
1607018334Speter
1607190075Sobrien	* decl2.c (lang_decode_option): Don't couple flag_honor_std to
1607290075Sobrien	flag_new_abi.
1607318334Speter
1607490075Sobrien2000-01-15  Mark Mitchell  <mark@codesourcery.com>
1607518334Speter
1607690075Sobrien	* cp-tree.h (num_extra_vtbl_entries): New function.
1607790075Sobrien	(size_extra_vtbl_entries): Likewise.
1607890075Sobrien	(dfs_vtable_path_unmark): Likewise.
1607990075Sobrien	(dfs_vtable_path_unmarked_real_bases_queue_p): Likewise.
1608090075Sobrien	(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
1608190075Sobrien	* class.c (num_extra_vtbl_entries): New function.
1608290075Sobrien	(size_extra_vtbl_entries): Likewise.
1608390075Sobrien	(dfs_build_vbase_offset_vtbl_entries): New function.
1608490075Sobrien	(build_vbase_offset_vtbl_entries): Likewise.
1608590075Sobrien	(build_vtbl_initializer): Use it.
1608690075Sobrien	(finish_struct_1): Adjust vtable sizes (using
1608790075Sobrien	num_extra_vtbl_entries).
1608890075Sobrien	* expr.c (cplus_expand_expr): Assert that the DECL_RTL for a
1608990075Sobrien	THUNK_DECL is non-NULL before expanding it.
1609090075Sobrien	* init.c (expand_virtual_init): Adjust the vtable pointer by
1609190075Sobrien	size_extra_vtbl_entries before storing it.
1609290075Sobrien	* search.c (get_shared_vase_if_not_primary): Adjust prototype.
1609390075Sobrien	Handle TREE_LIST parameters here, not in the dfs_* functions.
1609490075Sobrien	(dfs_unmarked_real_bases_queue_p): Adjust.
1609590075Sobrien	(dfs_marked_real_bases_queue_p): Likewise.
1609690075Sobrien	(dfs_vtable_path_unmarked_real_bases_queue_p): New function.
1609790075Sobrien	(dfs_vtable_path_marked_real_bases_queue_p): New function.
1609890075Sobrien	(dfs_vtable_path_unmark): Likewise.
1609918334Speter
1610090075Sobrien2000-01-14  Mark Mitchell  <mark@codesourcery.com>
1610118334Speter
1610290075Sobrien	* optimize.c (copy_body_r): Clear the operand three of a
1610390075Sobrien	TARGET_EXPR when copying it.
1610418334Speter
1610590075Sobrien2000-01-14  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1610618334Speter
1610790075Sobrien	* method.c (build_decl_overload_real): Check whether we are in ::
1610890075Sobrien	before returning __builtin_new/delete.
1610918334Speter
1611090075Sobrien2000-01-13  Mark Mitchell  <mark@codesourcery.com>
1611118334Speter
1611290075Sobrien	* pt.c (tsubst_friend_function): Improve comment.
1611390075Sobrien	(instantiate_decl): Avoid crashing when a "nested" function is
1611490075Sobrien	instantiated from the top level.
1611518334Speter
1611690075Sobrien	* dump.c (dqeueue_and_dump): Dump
1611790075Sobrien	DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION.
1611818334Speter
1611990075Sobrien2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1612018334Speter
1612190075Sobrien	* call.c: If GATHER_STATISTICS, declare `n_build_method_call'.
1612218334Speter
1612390075Sobrien2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
1612418334Speter
1612590075Sobrien	* g++spec.c (lang_specific_driver): Add -fnew-abi if
1612690075Sobrien	ENABLE_NEW_GXX_ABI defined.
1612790075Sobrien	* Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o,
1612890075Sobrien	opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o,
1612990075Sobrien	opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch.
1613018334Speter
1613190075Sobrien2000-01-12  Mark Mitchell  <mark@codesourcery.com>
1613218334Speter
1613390075Sobrien	* decl.c (start_cleanup_fn): Call pushdecl.
1613418334Speter
1613590075Sobrien	* call.c (convert_class_to_reference): Fix typos.
1613690075Sobrien	(build_conditional_expr): Handle errors gracefully.
1613790075Sobrien	* class.c (push_nested_class): Likewise.
1613890075Sobrien	* cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro.
1613990075Sobrien	(DECL_THIS_EXTERN): Use it.
1614090075Sobrien	(DECL_THIS_STATIC): Likewise.
1614190075Sobrien	* cvt.c (convert_to_void): Handle errors gracefully.
1614290075Sobrien	(build_expr_type_conversion): Likewise.
1614390075Sobrien	* decl.c (maybe_push_decl): Likewise.
1614490075Sobrien	(start_decl_1): Likewise.
1614590075Sobrien	(require_complete_types_for_parms): Likewise.
1614690075Sobrien	* parse.y (structsp): Likewise.
1614790075Sobrien	(base_class): Likewise.
1614890075Sobrien	* parse.c: Regenerated.
1614990075Sobrien	* pt.c (finish_member_template_decl): Likewise.
1615090075Sobrien	* typeck.c (decay_conversion): Likewise.
1615118334Speter
1615290075Sobrien	* cp-tree.h (dfs_skip_vbases): New function.
1615390075Sobrien	(find_vbase_instance): Likewise.
1615490075Sobrien	* class.c (determine_primary_base): Allow a nearly empty base to
1615590075Sobrien	serve as a primary base class under the new ABI.
1615690075Sobrien	(get_class_offset_1): Rename to ...
1615790075Sobrien	(dfs_get_class_offset): ... this.  Simplify.  Don't issue error
1615890075Sobrien	messages here.
1615990075Sobrien	(get_class_offset): Use it.  Issue error messages here.
1616090075Sobrien	(dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to
1616190075Sobrien	find the right copies of virtual bases.
1616290075Sobrien	(fixup_vtable_deltas1): Rename to ...
1616390075Sobrien	(dfs_fixup_vtable_deltas): ... this.  Adjust to handle virtual
1616490075Sobrien	bases as primary bases.
1616590075Sobrien	(fixup_vtable_deltas): Remove.
1616690075Sobrien	(override_one_vtable): Handle virtual bases as primary bases.
1616790075Sobrien	(merge_overrides): Likewise.
1616890075Sobrien	(finish_struct_1): Likewise.
1616990075Sobrien	(dump_class_hierarchy): Dump primary-ness of bases as well.
1617090075Sobrien	* search.c (mark_primary_bases): Use a pre-order traversal to
1617190075Sobrien	handle primary virtual bases.
1617290075Sobrien	(dfs_skip_vbases): New fiunction.
1617390075Sobrien	(expand_upcast_fixups): Adjust to handle primary virtual bases.
1617490075Sobrien	(fixup_virtual_upcast_offsets): Likewise.
1617590075Sobrien	(fixup_all_virtual_upcast_offsets): Likewise.
1617690075Sobrien	(dfs_find_vbase_instances): New function.
1617790075Sobrien	(find_vbase_instance): Likewise.
1617818334Speter
1617990075Sobrien2000-01-11  Mumit Khan  <khan@xraylith.wisc.edu>
1618018334Speter
1618190075Sobrien	* lex.c (DIR_SEPARATOR): Delete macro.
1618218334Speter
1618390075Sobrien2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
1618418334Speter
1618590075Sobrien       * decl2.c (lang_decode_option): Handle automatic line wrapping
1618690075Sobrien       option.
1618718334Speter
1618890075Sobrien2000-01-11  Mark Mitchell  <mark@codesourcery.com>
1618918334Speter
1619090075Sobrien	* friend.c (do_friend): Don't resolve scopes when processing
1619190075Sobrien	template declarations, even if the qualifying scope doesn't
1619290075Sobrien	involve template parameters.
1619318334Speter
1619490075Sobrien2000-01-10  Mark Mitchell  <mitchell@dumbledore.codesourcery.com>
1619518334Speter
1619690075Sobrien	* class.c (dfs_modify_vtables_queue_p): Remove.
1619790075Sobrien	(modify_all_vtables): Use dfs_unmarked_real_bases_queue_p
1619890075Sobrien	and dfs_marked_real_bases_queue_p instead of
1619990075Sobrien	dfs_modify_vtables_queue_p.
1620018334Speter
1620190075Sobrien	* class.c (build_vbase_path): Simplify.
1620290075Sobrien	(dfs_propagate_binfo_offsets): New function.
1620390075Sobrien	(propagate_binfo_offsets): Use it.
1620490075Sobrien	(remove_base_field): Simplify.
1620590075Sobrien	(dfs_set_offset_for_vbases): Remove.
1620690075Sobrien	(dfs_set_offset_for_shared_vbases): New function.
1620790075Sobrien	(dfs_set_offset_for_unshared_vbases): Likewise.
1620890075Sobrien	(layout_virtual_bases): Use them.
1620990075Sobrien	(layout_basetypes): Don't call propagate_binfo_offsets.
1621090075Sobrien	* search.c (dfs_get_vbase_types): Clone completely fresh binfos
1621190075Sobrien	for the vbases.
1621218334Speter
1621390075Sobrien	* class.c (build_base_field): New function, split out from ...
1621490075Sobrien	(build_base_fields): ... here.  Use it.  Allocate primary bases
1621590075Sobrien	first, under the new ABI.
1621690075Sobrien	(get_vtable_entry): Remove.
1621790075Sobrien	(remove_base_field): New function, split out from ...
1621890075Sobrien	(remove_base_fields): ... here.  Adjust since primary bases come
1621990075Sobrien	first under the new ABI.
1622018334Speter
1622190075Sobrien	* cp-tree.h (expand_direct_vtbls_init): Remove declaration.
1622290075Sobrien	(initialize_vtbl_ptrs): New function.
1622390075Sobrien	(expand_indirect_vtbls_init): Change prototype.
1622490075Sobrien	(convert_pointer_to_vbase): Declare.
1622590075Sobrien	* init.c (expand_direct_vtbls_init): Remove.
1622690075Sobrien	(dfs_initialize_vtbl_ptrs): New function.
1622790075Sobrien	(initialize_vtbl_ptrs): Likewise.
1622890075Sobrien	(emit_base_init): Use initialize_vtbl_ptrs.
1622990075Sobrien	* search.c (convert_pointer_to_vbase): Make it global.
1623090075Sobrien	(expand_indirect_vtbls_init): Remove vtable initialization code.
1623190075Sobrien	* semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs.
1623218334Speter
1623390075Sobrien	* class.c (dfs_finish_vtbls): New function.
1623490075Sobrien	(finish_vtbls): Use it.
1623590075Sobrien	(dump_class_hierarchy): New function.
1623618334Speter
1623790075Sobrien	* cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition.
1623890075Sobrien	(BINFO_VBASE_PRIMARY_P): New macro.
1623990075Sobrien	(BINFO_VIRTUALS): Add to documentation.
1624090075Sobrien	(SET_BINFO_PRIMARY_MARKED_P): Remove.
1624190075Sobrien	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
1624290075Sobrien	(dfs_mark_primary_bases_queue_p): Likewise.
1624390075Sobrien	(dfs_unmarked_real_bases_queue_p): New function.
1624490075Sobrien	(dfs_marked_real_bases_queue_p): Likewise.
1624590075Sobrien	* search.c (dfs_mark_primary_bases): Adjust.
1624690075Sobrien	(mark_primary_bases): Likewise.
1624790075Sobrien	(get_shared_vbase_if_not_primary): New function.
1624890075Sobrien	(dfs_unmarked_real_bases_queue_p): Likewise.
1624990075Sobrien	(dfs_marked_real_bases_queue_p): Likewise.
1625090075Sobrien	(dfs_get_pure_virtuals): Simplify.
1625190075Sobrien	(get_pure_virtuals): Likewise.
1625218334Speter
1625390075Sobrien2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1625418334Speter
1625590075Sobrien	* lex.c: Include tm_p.h.
1625618334Speter
1625790075Sobrien2000-01-07  Nathan Sidwell  <sidwell@codesourcery.com>
1625818334Speter
1625990075Sobrien	* lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro.
1626018334Speter
1626190075Sobrien2000-01-06  Jason Merrill  <jason@casey.cygnus.com>
1626218334Speter
1626390075Sobrien	* decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT.
1626490075Sobrien	* pt.c (instantiate_decl): Defer comdat templates that might not be
1626590075Sobrien	needed.
1626618334Speter
1626790075Sobrien	* cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT.
1626890075Sobrien	* decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT.
1626990075Sobrien	(finish_file): Likewise.
1627018334Speter
1627190075Sobrien	* decl2.c (import_export_class): Undo 12/14 change.
1627218334Speter
1627390075Sobrien	* error.c (dump_decl): operator new, not operatornew.
1627418334Speter
1627590075Sobrien	* class.c (field_decl_cmp): A nontype is "greater" than a type.
1627690075Sobrien	* search.c (lookup_field_1): Look for the last field with the
1627790075Sobrien	desired name.
1627818334Speter
1627990075Sobrien2000-01-05  Nathan Sidwell  <nathan@acm.org>
1628018334Speter
1628190075Sobrien	* decl2.c (lookup_arg_dependent): Deal with FNS not being a
1628290075Sobrien	FUNCTION_DECL.
1628318334Speter
1628490075Sobrien2000-01-05  Nathan Sidwell  <nathan@acm.org>
1628552284Sobrien
1628690075Sobrien	* typeck.c (build_static_cast): Don't strip target qualifiers
1628790075Sobrien	when casting from a class.
1628818334Speter
1628990075Sobrien2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1629018334Speter
1629190075Sobrien	* class.c (warn_hidden): Initialize variable `fndecl'.
1629218334Speter
1629390075Sobrien2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
1629418334Speter
1629590075Sobrien	* decl.c (flag_isoc9x): New variable to be able to use code in
1629690075Sobrien	c-common.c.  For now always zero.
1629718334Speter
1629890075Sobrien2000-01-03  Mark Mitchell  <mark@codesourcery.com>
1629918334Speter
1630090075Sobrien	* cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation.
1630190075Sobrien	* class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN
1630290075Sobrien	or unshare_base_binfos for virtual bases here.
1630390075Sobrien	* search.c (dfs_get_vbase_types): Do it here.
1630490075Sobrien	(get_vbase_types): Adjust.
1630518334Speter
1630690075Sobrien2000-01-02  Mark Mitchell  <mark@codesourcery.com>
1630718334Speter
1630890075Sobrien	* cp-tree.h (CLASSTYPE_VFIELDS): Move definition.
1630990075Sobrien	(BINFO_PRIMARY_MARKED_P): Use flag 5.
1631090075Sobrien	(SET_BINFO_PRIMARY_MARKED_P): Likewise.
1631190075Sobrien	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
1631290075Sobrien	(unmark_primary_bases): Remove declaration.
1631390075Sobrien	(unmarkedp): Declare.
1631490075Sobrien	(dfs_vbase_unmark): Likewise.
1631590075Sobrien	* class.c (determine_primary_base): Return immediately if there
1631690075Sobrien	are no base classes.  Call mark_primary_bases here.
1631790075Sobrien	(modify_all_direct_vtables): Remove.
1631890075Sobrien	(modify_all_indirect_vtables): Remove.
1631990075Sobrien	(dfs_modify_vtables_queue_p): New function.
1632090075Sobrien	(dfs_modify_vtables): New function.
1632190075Sobrien	(modify_all_vtables): Use them.
1632290075Sobrien	(build_base_fields): Build FIELD_DECLs for primary virtual base
1632390075Sobrien	classes.
1632490075Sobrien	(create_vtable_ptr): Don't call determine_primary_base here.
1632590075Sobrien	(dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ...
1632690075Sobrien	(dfs_set_offset_for_vbases): ... this.
1632790075Sobrien	(layout_virtual_bases): Use it.
1632890075Sobrien	(layout_class_type): Call determine_primary_base here.
1632990075Sobrien	* search.c (unmarkedp): Make it global.
1633090075Sobrien	(shared_marked_p): Simplify.
1633190075Sobrien	(shared_unmarked_p): Likewise.
1633290075Sobrien	(dfs_primary_bases_queue_p): Remove.
1633390075Sobrien	(dfs_unmark_primary_bases): Likewise.
1633490075Sobrien	(unmark_primary_bases): Likewise.
1633590075Sobrien	(mark_primary_bases): Simplify.
1633690075Sobrien	(get_pure_virtuals): Don't call mark_primary_bases here.
1633790075Sobrien	(dfs_vbase_unmark): New function.
1633890075Sobrien	(get_vbase_types): Simplify.
1633918334Speter
1634090075Sobrien	* class.c (struct base_info): Remove.
1634190075Sobrien	(determine_primary_base): Take has_virtual_p rather than a
1634290075Sobrien	base_info as input.  Don't calculate max_has_virtual.
1634390075Sobrien	(finish_struct_bits): Remove max_has_virtual argument.
1634490075Sobrien	(create_vtable_ptr): Remove max_has_virtual_p argument.
1634590075Sobrien	(layout_virtual_bases): Remove max argument.
1634690075Sobrien	(layout_basetypes): Likewise.
1634790075Sobrien	(layout_class_type): Remove max_has_virtual_p argument.
1634890075Sobrien	(finish_struct_1): Remove max_has_virtual.
1634918334Speter
1635090075Sobrien	* cp-tree.h (dfs_mark_primary_bases_queue_p): New function.
1635190075Sobrien	(layout_basetypes): Remove.
1635290075Sobrien	* class.c (propagate_binfo_offsets): Moved here from tree.c.
1635390075Sobrien	Update to handle primary virtual bases.
1635490075Sobrien	(remove_base_fields): New function, split out from
1635590075Sobrien	layout_basetypes.
1635690075Sobrien	(dfs_mark_primary_bases_and_set_vbase_offsets): New function.
1635790075Sobrien	(layout_virtual_bases): New function, split out from
1635890075Sobrien	layout_basetypes.  Update to handle primary virtual bases.
1635990075Sobrien	(layout_basetypes): Moved here from tree.c.  Use
1636090075Sobrien	remove_base_fields and layout_virtual_bases.
1636190075Sobrien	* search.c (dfs_mark_primary_bases_queue_p): New function.
1636290075Sobrien	(mark_primary_bases): Use it.
1636390075Sobrien	* tree.c (CEIL): Remove.
1636490075Sobrien	(propagate_binfo_offsets): Remove.
1636590075Sobrien	(layout_basetypes): Remove.
1636618334Speter
1636790075Sobrien2000-01-01  Mark Mitchell  <mark@codesourcery.com>
1636818334Speter
1636990075Sobrien	* cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES.
1637090075Sobrien	(BINFO_PRIMARY_MARKED_P): New macro.
1637190075Sobrien	(SET_BINFO_PRIMARY_MARKED_P): Likewise.
1637290075Sobrien	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
1637390075Sobrien	(mark_primary_bases): New function.
1637490075Sobrien	(unmark_primary_bases): Likewise.
1637590075Sobrien	* search.c (get_abstract_virtuals_1): Remove.
1637690075Sobrien	(dfs_mark_primary_bases): New function.
1637790075Sobrien	(mark_primary_bases): Likewise.
1637890075Sobrien	(dfs_unmark_primary_bases): Likewise.
1637990075Sobrien	(unmark_primary_bases): Likewise.
1638090075Sobrien	(dfs_get_pure_virtuals): Likewise.
1638118334Speter
1638290075Sobrien2000-01-01  Mark Mitchell  <mark@codesourcery.com>
1638318334Speter
1638490075Sobrien	* cp-tree.h (skip_rtti_stuff): Adjust prototype.
1638590075Sobrien	* class.c (skip_rtti_stuff): Reorganize parameters and return value.
1638690075Sobrien	(modify_one_vtable): Adjust.
1638790075Sobrien	(fixup_vtable_deltas1): Likewise.
1638890075Sobrien	(override_one_vtable): Likewise.
1638990075Sobrien	* search.c (get_abstract_virtuals_1): Likewise.
1639090075Sobrien	(get_pure_virtuals): Likewise.
1639190075Sobrien	(expand_upcast_fixups): Likewise.
1639290075Sobrien	* tree.c (debug_binfo): Likewise.
1639318334Speter
1639490075Sobrien	* class.c (build_vtable): Don't return a value.  Don't rebuild
1639590075Sobrien	vtables for bases that have already been handled.
1639690075Sobrien	(prepare_fresh_vtable): Don't rebuild vtables for bases that have
1639790075Sobrien	already been handled.
1639890075Sobrien	(modify_one_vtable): Adjust accordingly.
1639990075Sobrien	(fixup_vtable_deltas1): Likewise.
1640090075Sobrien	(finish_struct_1): Likewise.
1640118334Speter
1640290075Sobrien2000-01-01  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1640318334Speter
1640490075Sobrien	* call.c (build_new_method_call): Also check destructors.
16405