ChangeLog revision 103445
12002-09-04  Jakub Jelinek  <jakub@redhat.com>
2
3	* decl.c (start_cleanup_fn): Clear interface_only before
4	start_function, restore it afterwards.
5
62002-09-01  Alexandre Oliva  <aoliva@redhat.com>
7
8	* parse.y (sizeof, alignof, typeof): New non-terminals to
9	increment skip_evaluation.  Replace terminals with them and
10	decrement skip_evaluation at the end of rules using them.
11	* decl2.c (mark_used): Don't assemble_external if
12	skipping evaluation.
13
142002-08-31  Jason Merrill  <jason@redhat.com>
15
16	* cp-lang.c (cp_expr_size): Don't abort.
17
182002-08-27  Mark Mitchell  <mark@codesourcery.com>
19
20	* cp-tree.h (warn_abi): Declare it.
21	* decl.c (warn_abi): Define it.
22	(cxx_decode_option): Set it.
23	* class.c (layout_virtual_bases): Warn about bugs in G++ that
24	result in incorrect object layouts.
25	(layout_class_type): Likewise.
26
272002-08-22  Jason Merrill  <jason@redhat.com>
28
29	PR c++/5607
30	* search.c (check_final_overrider): No longer static.
31	* class.c (update_vtable_entry_for_fn): Call it.
32	* cp-tree.h: Adjust.
33
34	* cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define.
35	(cp_expr_size): New fn.
36	* call.c (convert_arg_to_ellipsis): Promote non-POD warning to error.
37	* typeck.c (build_modify_expr): Don't use save_expr on an lvalue.
38
392002-08-14  Release Manager
40
41	* GCC 3.2 Released.
42
432002-08-03  Nathan Sidwell  <nathan@codesourcery.com>
44
45	PR 7470.
46	C++ ABI change - vfunc ordering.
47	* class.c (add_virtual_function): Remove.
48	(dfs_modify_all_vtables): Take list of all declared
49	virtuals. Assign all that are not in primary base.
50	(check_for_override): Adjust comments.
51	(create_vtable_ptr): Take single list of virtuals. Build chain
52	of declared virtuals here.
53	(layout_class_type): Take single list of virtuals. Adjust.
54	(finish_struct_1): Keep virtuals on single list. Adjust.
55
562002-07-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
57
58	* lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c.
59
602002-07-17  Scott Snyder <snyder@fnal.gov>
61
62	PR c++/7320
63	* rtti.c (get_tinfo_decl): Set DECL_COMDAT.
64
652002-07-05  Nathan Sidwell  <nathan@codesourcery.com>
66
67	Repair damage on weak-impared targets caused by my previous patch.
68	* cp-tree.h (import_export_tinfo): Add parameter.
69	* decl2.c (import_export_tinfo): Add parameter, post adjust
70	DECL_COMDAT.
71	* rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
72	import_export_tinfo.
73
742002-06-30  Nathan Sidwell  <nathan@codesourcery.com>
75
76	* cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
77	(CPTI_TYPE_INFO_PTR_TYPE): ... this.
78	(tinfo_decl_type): Replace with ...
79	(type_info_ptr_type): ... this.
80	(import_export_tinfo): Declare.
81	(tinfo_decl_p): Rename to ...
82	(unemitted_tinfo_decl_p): ... this.
83	* decl2.c (import_export_decl): Break out tinfo handling into ...
84	(import_export_tinfo): ... here. New function.
85	(finish_file): Adjust.
86	* rtti.c (TINFO_REAL_NAME): New macro.
87	(init_rtti_processing): Create the tinfo types.
88	(get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
89	(get_tinfo_decl): Adjust.
90	(get_tinfo_ptr): New function.
91	(get_type_id): Use it.
92	(tinfo_base_init): Create vtable decl here, if it doesn't exist.
93	(ptr_initializer): Use get_tinfo_ptr.
94	(ptm_initializer): Likewise.
95	(synthesize_tinfo_var): Break into ...
96	(get_pseudo_ti_init): ... this. Just create the initializer.
97	(get_pseudo_ti_desc): .. and this.
98	(create_real_tinfo_var): Remove.
99	(create_pseudo_type_info): Don't create the vtable decl here.
100	(get_vmi_pseudo_type_info): Remove.
101	(create_tinfo_types): Adjust.
102	(tinfo_decl_p): Rename to ...
103	(unemitted_tinfo_decl_p): ... here. Adjust.
104	(emit_tinfo_decl): Adjust. Create the initializer.
105
1062002-06-14  Jason Merrill  <jason@redhat.com>
107
108	C++ ABI changes.
109	* class.c (build_base_field): Set DECL_PACKED.
110	(layout_class_type): Don't use tail padding of PODs.
111	* mangle.c (write_unqualified_name): Fix template conversion op
112	mangling.
113
1142002-05-18  Jason Merrill  <jason@redhat.com>
115
116	PR c++/6611
117	* decl2.c (import_export_decl): If we clear
118	DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
119
1202002-05-14  Jason Merrill  <jason@redhat.com>
121
122	* rtti.c (get_tinfo_decl): Don't call comdat_linkage.
123	Do set DECL_COMDAT.
124	(synthesize_tinfo_var): Take the public decl.
125	(create_real_tinfo_var): Likewise.  Check DECL_COMDAT.
126	(emit_tinfo_decl): Adjust.  Call import_export_decl.
127	* decl2.c (import_export_decl): Simplify tinfo decl handling.
128
1292002-07-25  Release Manager
130
131	* GCC 3.1.1 Released.
132
1332002-07-12  Mark Mitchell  <mark@codesourcery.com>
134
135	* class.c (add_method): Correct handling of conversion operators.
136
1372002-07-11  Mark Mitchell  <mark@codesourcery.com>
138
139	PR c++/7224
140	* class.c (add_method): Simplify.
141
1422002-07-11  Jason Merrill  <jason@redhat.com>
143
144	PR c++/7279
145	* tree.c (cp_copy_res_decl_for_inlining): Also copy
146	TREE_ADDRESSABLE.
147
1482002-07-10  Jason Merrill  <jason@redhat.com>
149
150	PR c++/6255
151	* decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
152	modifying the old one.
153
1542002-07-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
155
156	* pt.c (can_complete_type_without_circularity): Add static to
157	function definition.
158
1592002-07-05  Jim Wilson  <wilson@redhat.com>
160
161	* decl.c (mark_named_label_lists): Add missing & in call to
162	mark_binding_level.
163
1642002-07-05  Jason Merrill  <jason@redhat.com>
165
166	* cvt.c (cp_convert_to_pointer): Call force_fit_type for null
167	pointers.
168
169	PR optimization/7145
170	* tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
171
1722002-05-18  Jason Merrill  <jason@redhat.com>
173
174	PR c++/6611
175	* decl2.c (import_export_decl): If we clear
176	DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
177
1782002-07-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
179
180	PR c++/6944
181	* init.c (build_aggr_init): Remove qualifiers of init before calling
182	build_vec_init.
183	(build_vec_init): Flatten multi-dimensional array during cleanup.
184	(build_vec_delete_1): Abort if the type of each element is array.
185
1862002-07-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
187
188	PR c++/6716
189	* pt.c (can_complete_type_without_circularity): New function.
190	(instantiate_class_template): Use it.
191	* typeck2.c (incomplete_type_error): Improve error message
192	due to incomplete fields.
193
1942002-07-01  Mark Mitchell  <mark@codesourcery.com>
195
196	PR c++/7112
197	* mangle.c (write_expression): Add mangling for sizeof when
198	applied to a type.
199	* operators.def: Remove stale comment.
200
2012002-06-27  Mark Mitchell  <mark@codesourcery.com>
202
203	PR c++/6695
204	* pt.c (tsubst_friend_class): Substitute into the context of the
205	friend before using it.
206
2072002-06-23  Matt Thomas  <matt@3am-software.com>
208
209	* decl.c (finish_function): Change "#ifdef VMS_TARGET" to
210	"#if VMS_TARGET".
211
2122002-06-20  Richard Henderson  <rth@redhat.com>
213
214	PR c++/6747
215	* typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
216	Call put_var_into_stack.
217
2182002-06-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
219
220	PR c++/6892
221	* pt.c (tsubst_expr): Handle FILE_STMT.
222
2232002-06-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
224
225	PR c++/6723
226	* pt.c (lookup_template_class): Don't build complete argument of
227	BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
228	argument.
229
2302002-06-16  Richard Henderson  <rth@redhat.com>
231
232	PR opt/6793
233	* tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
234	after template instantiation.
235
2362002-06-07  H.J. Lu  (hjl@gnu.org)
237
238	* decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
239
2402002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
241
242	* cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
243	* cp-tree.h (cxx_post_options): Kill.
244	* cp-lex.c (cxx_post_options): Kill.
245
2462002-05-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
247
248	* error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
249
2502002-05-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
251
252	PR c++/186, DR 259
253	* pt.c (do_decl_instantiation): Don't complain explicit
254	instantiation after explicit specialization.
255	(do_type_instantiation): Likewise.
256
2572002-05-09  Jason Merrill  <jason@redhat.com>
258
259	* pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
260
2612002-05-15  Alexandre Oliva  <aoliva@redhat.com>
262
263	* cp-tree.h (struct lang_type): Added non_zero_init.
264	(CLASSTYPE_NON_ZERO_INIT_P): New macro.
265	(zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
266	* class.c (check_field_decls): Test non_zero_init.
267	* cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
268	zero-to-NULL conversions.
269	* decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
270	type that needs zero-initialization without zeros.
271	(check_initializer_decl): Compute zero-initializer for types
272	that require a non-trivial one.
273	* init.c (build_forced_zero_init): New function.
274	(build_default_init): Use it.
275	* tree.c (zero_init_p): New function.
276	* typeck2.c (force_store_init_value): New function.
277	(process_init_constructor): Create non-trivial zero-initializers
278	for array members and class fields.
279
2802002-05-14  Release Manager
281
282	* GCC 3.1 Released.
283
2842002-05-03  Jason Merrill  <jason@redhat.com>
285
286	* decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
287
2882002-05-02  Mark Mitchell  <mark@codesourcery.com>
289
290	* init.c (perform_base_cleanups): Correct order of base class
291	cleanups.
292
2932002-05-01  Mark Mitchell  <mark@codesourcery.com>
294
295	PR c++/6527
296	* init.c (perform_base_cleanups): Emit cleanups in reverse order
297	of construction.
298
2992002-05-01  Gabriel Dos Reis  <gdr@codesourcery.com>
300
301	* error.c (dump_type): Be careful about implicit typenames.
302
3032002-04-30  Mark Mitchell  <mark@codesourcery.com>
304
305	ABI change, returning simple classes from functions.
306	* class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
307	TYPE_HAS_TRIVIAL_INIT_REF is false or
308	TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
309
3102002-04-30  Jason Merrill  <jason@redhat.com>
311
312	PR debug/6436
313	* decl.c (grokdeclarator): Don't override TYPE_NAME of an
314	anonymous class with a typedef if there are attributes.
315
3162002-04-29  Paul Eggert  <eggert@twinsun.com>
317
318	* parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
319
3202002-04-29  Jakub Jelinek  <jakub@redhat.com>
321
322	PR c++/6477
323	* decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
324	non-NULL first.
325
3262002-04-29  Mark Mitchell  <mark@codesourcery.com>
327
328	PR c++/6492
329	* pt.c (tsubst_friend_class): If the friend has an explicit scope,
330	enter that scope before name lookup.
331
332	PR c++/6486
333	* method.c (do_build_copy_constructor): Avoid building
334	cv-qualified reference types.
335
3362002-04-29  Nathan Sidwell  <nathan@codesourcery.com>
337
338	PR c++/5719
339	* decl.c (grok_op_properties): Assignment ops don't have to return 
340	by value. operator% should.
341
3422002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
343
344	PR c/6343
345	* decl.c (duplicate_decls): Call merge_weak.
346
3472002-04-26  Mark Mitchell  <mark@codesourcery.com>
348
349	PR c++/6479
350	* method.c (do_build_assign_ref): Pass a derivation to
351	build_method_call when calling base class assignment operators.
352
3532002-04-24  Mark Mitchell  <mark@codesourcery.com>
354
355	* mangle.c (write_type): Don't use TYPE_MAIN_VARIANT when writing
356	out an array type.
357	(write_CV_qualifiers_for_type): Use TYPE_QUALS, not cp_type_quals,
358	to determine qualifiers.
359
360	* cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
361	void.
362
3632002-04-24  Jason Merrill  <jason@redhat.com>
364
365	PR c++/6331
366	* method.c (do_build_copy_constructor): Use cp_build_qualified_type.
367	* typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
368	The pedwarn for array assignment is now unconditional.
369	* tree.c (build_cplus_array_type_1): Still process simple array types
370	normally in templates.
371
372	PR c++/6395
373	* decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
374	stuff for comdats.
375
3762002-04-23  Jason Merrill  <jason@redhat.com>
377
378	PR c++/5504 - but re-breaks c++/411
379	* init.c (push_base_cleanups): Rename to perform_base_cleanups.
380	Expand base cleanups now rather than pushing them.
381	* decl.c (begin_destructor_body): Don't call push_base_cleanups.
382	(finish_destructor_body): Call perform_base_cleanups.
383	* cp-tree.h: Adjust prototype.
384
3852002-04-23  Jakub Jelinek  <jakub@redhat.com>
386
387	* parse.y (check_class_key): Allow KEY to be union/enum/struct/class
388	node with attributes.
389
3902002-2-23  David O'Brien  <obrien@FreeBSD.org>
391
392	* g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
393	Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
394
3952002-04-23  Mark Mitchell  <mark@codesourcery.com>
396
397	PR c++/6256:
398	* pt.c (tsubst_friend_class): Handle templates with explicit
399	nested names.
400
401	PR c++/6331:
402	* typeck.c (merge_types): Remember the cv-qualification of pointer
403	types when merging them.
404
4052002-04-18  Jason Merrill  <jason@redhat.com>
406
407	PR c++/5658
408	* search.c (setup_class_bindings): A class template qualifies as a
409	type binding.
410
4112002-04-17  Jakub Jelinek  <jakub@redhat.com>
412
413	PR c++/6316
414	* decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
415	before expanding.
416
4172002-04-16  Mark Mitchell  <mark@codesourcery.com>
418
419	* init.c (begin_init_stmts): Remove commented out code.
420	(finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
421	* semantics.c (begin_gobal_stmt_expr): Adjust call to
422	expand_start_stmt_expr.
423	
4242002-04-15  Mark Mitchell  <mark@codesourcery.com>
425
426	* decl.c (register_dtor_fn): Pass the address of dso_handle, not
427	dso_handle itself, to __cxa_atexit.
428
4292002-04-14  Jakub Jelinek  <jakub@redhat.com>
430
431	* class.c (layout_virtual_bases): Do all dsize computation on trees.
432
4332002-04-12  Mark Mitchell  <mark@codesourcery.com>
434
435	PR c++/5373.
436	* semantics.c (finish_expr_stmt): Remember the type of the
437	expression before any conversions are performed.
438
439	PR c++/5189.
440	* call.c (add_template_candidate_real): Do not treat member
441	templates as copy constructors.
442
443	* decl.c (duplicate_decls): Do not copy the RTL for a variable
444	declaration if the old variable had an incomplete type and the new
445	variable does not.
446	(complete_vars): Do not call layout_decl for completed variables.
447
4482002-04-11  Andrew Haley  <aph@redhat.com>
449
450	* typeck.c (type_after_usual_arithmetic_conversions):
451	If two types have the same variant, return immediately.
452	When two floating-point operands are the same precision: 
453	  convert to float if one of the operands is float;
454	  if neither operand is one of the standard types, return the type
455	  of the first operand.
456 
4572002-04-12  Richard Sandiford  <rsandifo@redhat.com>
458
459	* decl.c (duplicate_decls): Don't try to unify an implicit typedef
460	with an explicit one.
461	(follow_tag_typedef): New.
462	(lookup_tag): Use it to extract the tag of an explicit typedef.
463	(xref_tag): Likewise.
464
4652002-04-10  Nathan Sidwell  <nathan@codesourcery.com>
466
467	PR c++/5507
468	* decl.c (make_typename_type): Remove implicit typenameness.
469
4702002-04-09  Jason Merrill  <jason@redhat.com>
471
472	PR optimization/6189
473	* semantics.c (genrtl_start_function): Don't free
474	DECL_SAVED_FUNCTION_DATA for inline functions.
475
4762002-04-08  Paolo Carlini  <pcarlini@unitus.it>
477
478	* parse.y (namespace_qualifier, maybe_identifier,
479	begin_explicit_instantiation, end_explicit_instantiation,
480	apparent_template_type, .finish_template_type,
481	do_id, maybe_init, defarg_again, component_decl_1):
482	Add ending ';', in accordance with POSIX.
483
4842002-04-06  Mark Mitchell  <mark@codesourcery.com>
485
486	PR c++/5571
487	* class.c (layout_class_type): Remember incomplete static
488	variables.
489	(finish_struct_1): Call complete_vars, not
490	hack_incomplete_structures.
491	* cp-tree.h (hack_incomplete_structures): Rename to ...
492	(complete_vars): ... this.
493	(struct saved_scope): Remove incomplete.
494	(namespace_scope_incomplete): Remove.
495	* decl.c (struct binding_level): Remove incomplete.
496	(incomplete_vars): New variable.
497	(mark_binding_level): Don't mark incomplete.
498	(print_binding_level): Don't print it.
499	(mark_saved_scope): Don't mark incomplete.
500	(pushdecl): Use maybe_register_incopmlete_var.
501	(cxx_init_decl_processing): Register incomplete_vars for GC.
502	(start_decl_1): Clarify error message.
503	(hack_incomplete_vars): Remove.
504	(maybe_register_incomplete_var): New function.
505	(complete_vars): Likewise.
506
5072002-04-06  Jason Merrill  <jason@redhat.com>
508
509	PR c++/4934
510	* error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
511	set before checking it.
512
513	PR c++/6179
514	* method.c (implicitly_declare_fn): Pass unqualified type to 
515	synthesize_exception_spec.
516
5172002-04-03  Jason Merrill  <jason@redhat.com>
518
519	PR c++/525
520	* init.c (build_member_call): Convert to intermediate base even
521	with -pedantic.
522
523	PR c++/5636
524	* semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
525	cleanup for nrv.
526
527	PR c++/5104
528	* typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
529	specifiers.
530	[METHOD_TYPE]: Use same code as FUNCTION_TYPE.
531
5322002-04-03  Roger Sayle  <roger@eyesopen.com>
533
534	PR c++/5998:
535	* decl.c (duplicate_decls): Don't mess with assembler names when
536	redeclaring builtin functions as static.
537
5382002-04-01  Roger Sayle  <roger@eyesopen.com>
539
540	PR c++/5998:
541	* decl.c (duplicate_decls):  Overwrite the RTL when (and only
542	when) overwriting a built-in function.  Don't use COPY_DECL_RTL,
543	but follow the SET_DECL_RTL idiom used elsewhere in the function.
544
5452002-03-28  Roger Sayle  <roger@eyesopen.com>
546
547	PR c++/5998:
548	* decl.c (cxx_init_decl_processing): Re-enable built-in functions
549	in the g++ front-end.
550	(duplicate_decl): Allow redefinition of anticipated built-ins.
551	Fix inlining problem by over-writing the old DECL_RTL.
552	(lookup_namespace_name): Fail to find an identifier in the
553	specified namespace if its still anticipated.
554	(builtin_function_1): New function split out from builtin_function
555	to create a builtin in the current namespace with given context.
556	(builtin_function): Call builtin_function_1 to define the
557	appropriate builtins in both the std and global namespaces.
558	(select_decl): Don't test for anticipated decls here.
559	(unqualified_namespace_lookup): Instead ignore them whilst
560	searching through scopes and namespaces.
561	* decl2.c (do_nonmember_using_decl): If a using declaration
562	specifies an anticipated built-in function, mark it as no longer
563	anticipated in that scope.
564	(ambiguous_decl):  Avoid resolving to an anticipated decl.
565	* lex.c (do_scoped_id): Fail to find an identifier in the global
566	namespace if its still anticipated.
567
5682002-03-29  Jakub Jelinek  <jakub@redhat.com>
569
570	PR c++/6073
571	* class.c (finish_struct_1): Update static field's DECL_MODE even
572	if its type is a variant of t.
573
5742002-03-27  Mark Mitchell  <mark@codesourcery.com>
575
576	PR c++/4884
577	* call.c (build_op_delete_call): Allow for the fact the placement
578	may be a COMPOUND_EXPR.
579	
5802002-03-26  Nathan Sidwell  <nathan@codesourcery.com>
581
582	PR c++/5682
583	* cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
584	(dfs_skip_nonprimary_vbases_unmarkedp): Remove.
585	(dfs_skip_nonprimary_vbases_markedp): Remove.
586	* search.c (get_shared_vbase_if_not_primary): Remove.
587	(dfs_skip_nonprimary_vbases_unmarkedp): Remove.
588	(dfs_skip_nonprimary_vbases_markedp): Remove.
589	(dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
590	(dfs_marked_real_bases_queue_p): Likewise.
591
5922002-03-26  Mark Mitchell  <mark@codesourcery.com>
593
594	PR c++/4884
595	* init.c (build_new_1): Allow for the fact the result of
596	build_function_call may be a COMPOUND_EXPR.
597
5982002-03-25  Jakub Jelinek  <jakub@redhat.com>
599
600	PR c++/6037
601	* decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
602
6032002-03-22  Jeff Knaggs  <jknaggs@redhat.com>
604
605	* typeck.c (expand_ptrmemfunc_cst): Scale idx down to an index
606	into the vtable_entry array regardless of
607	TARGET_PTRMEMFUNC_VBIT_LOCATION.
608
6092002-03-21  Aldy Hernandez  <aldyh@redhat.com>
610
611	* tree.c (cp_cannot_inline_tree_fn): Same.
612
6132002-03-20  Jason Merrill  <jason@redhat.com>
614
615	PR c++/2136
616	* init.c (build_delete): Check access for a member op delete here.
617	* decl2.c (delete_sanity): Not here.
618
6192002-03-19  Jason Merrill  <jason@redhat.com>
620
621	PR c++/5118
622	* class.c (get_vfield_name): Use the constructor_name.
623
6242002-03-18  Eric Botcazou  <ebotcazou@multimania.com>
625
626	PR c++/3882
627	* pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
628	(tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
629	only after recording the declaration.
630
6312002-03-18  Ashif Harji  <asharji@uwaterloo.ca>
632
633	* lang-specs.h (compiler default_compilers): Add   
634	-no-integrated-cpp flag to invoke an external cpp.
635
6362002-03-18  Jason Merrill  <jason@redhat.com>
637
638	PR c++/2039
639	* init.c (resolve_offset_ref): Hand off to build_component_ref.
640
641	PR c++/4222, c++/5995
642	* call.c (build_over_call): Fix empty class logic.
643
644	PR c++/3870
645	* cp-tree.h (struct saved_scope): Add last_parms field.
646	* decl.c (maybe_push_to_top_level): Save last_function_parms.
647	(pop_from_top_level): Restore it.
648
649	PR c++/4377
650	* mangle.c (write_expression): Strip NOP_EXPRs sooner.  Also strip
651	NON_LVALUE_EXPRs.
652
653	PR c++/4003
654	* pt.c (tsubst_friend_function): Use decl_namespace_context.
655
656	PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
657	* class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
658	type with a nontrivial destructor.
659
6602002-03-17  Jason Merrill  <jason@redhat.com>
661
662	PR c++/4460
663	* class.c (build_base_path): Virtual base layout is fixed in
664	in-charge [cd]tors.
665
666	PR c++/5757
667	* init.c (build_new_1): Pass the right pointer to op delete.
668
6692002-03-15  Richard Henderson  <rth@redhat.com>
670
671	* init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
672
6732002-03-15  Richard Henderson  <rth@redhat.com>
674
675	* decl.c (finish_function): Reapply accidentally reverted
676	2002-02-28 patch.
677
6782002-03-15  Mark Mitchell  <mark@codesourcery.com>
679
680	* cp-tree.h (CLEANUP_DECL): Remove.
681	(CLEANUP_EXPR): Likewise.
682	* decl.c (destroy_local_var): Simplify.
683	(maybe_build_cleanup): Tidy.
684	* dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
685	* semantics.c (cp_expand_stmt): Likewise.
686	* cp/tree.c (cp_statement_code_p): Likewise.
687
6882002-03-15  Richard Henderson  <rth@redhat.com>
689
690	* decl.c: Include c-pragma.h.
691	(start_decl, start_function): Invoke maybe_apply_pragma_weak.
692	* Make-lang.in: Update dependencies.
693
6942002-03-15  Jason Merrill  <jason@redhat.com>
695
696	PR c++/5857
697	* decl.c (duplicate_decls): Use merge_types instead of common_type.
698	* typeck.c (common_type): Just hand off to
699	type_after_usual_arithmetic_conversions and
700	composite_pointer_type.
701	(merge_types): New fn.
702	(commonparms): Use it instead of common_type.
703	(type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
704	(composite_pointer_type): Also handle attributes.
705	* cp-tree.h: Declare merge_types.
706
707	* decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
708	variables.
709	* decl2.c (maybe_make_one_only): Also mark the decl as needed.
710
7112002-03-14  Jakub Jelinek  <jakub@redhat.com>
712
713	PR c++/5908
714	* call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
715	* cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
716
7172002-03-12  Richard Sandiford  <rsandifo@redhat.com>
718
719	* mangle.c (write_builtin_type): Handle 128-bit integers even if
720	they are not a standard integer type.
721
7222002-03-12  Nathan Sidwell  <nathan@codesourcery.com>
723
724	PR c++/5659
725	* decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
726	* decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
727	definitions.
728
7292002-03-11  Nathan Sidwell  <nathan@codesourcery.com>
730
731	Revert 2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>,
732	DR209 is now not a defect.
733	* cp-tree.h (skip_type_access_control): Remove.
734	* decl.c (grokdeclarator): Do type access control for friend
735	declarations.
736	* semantics.c (decl_type_access_control): Don't reset
737	current_type_lookups.
738	(save_type_access_control): Always save the lookups.
739	(skip_type_access_control): Remove.
740	(finish_class_definition): Don't change type_lookups.
741
7422002-03-11  Nathan Sidwell  <nathan@codesourcery.com>
743
744	Revert 2000-12-01  Nathan Sidwell  <nathan@codesourcery.com>,
745	It is incorrect.
746	* typeck.c (build_static_cast): Compare non-qualified types
747	with pointer to member conversions.
748
7492002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
750 
751	* cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
752	conditional return void.
753
7542002-03-02  Nathan Sidwell  <nathan@codesourcery.com>
755
756	PR c++/775
757	* decl.c (lookup_tag): Only reject enum/class mismatch, not
758	class/union mismatch.
759	* parse.y (check_class_key): New function.
760	(structsp): Call it.
761
7622002-03-01  Michael Matz  <matz@suse.de>
763
764	* typeck.c (cp_pointer_int_sum): Complete inner type which is
765	used later by size_in_bytes().
766
7672002-03-01  Phil Edwards  <pme@gcc.gnu.org>
768
769	* cp-tree.h (build_init):  Remove prototype.
770
7712002-03-01  Phil Edwards  <pme@gcc.gnu.org>
772
773	* cp-tree.h:  Require __GNUC__ to be #defined.
774	(build_init):  Add missing prototype.
775
7762002-02-28  Jason Merrill  <jason@redhat.com>
777
778	* search.c (lookup_base_r): Don't clear is_non_public just because
779	we found a friendly scope.
780
781	* decl.c (finish_function): Only warn about missing return
782	statement with -Wreturn-type.
783
7842002-02-24 Craig Rodrigues  <rodrigc@gcc.gnu.org> 
785
786	PR c++/4093
787	* cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
788	to void.
789
7902002-02-22  Jakub Jelinek  <jakub@redhat.com>
791
792	PR other/5746
793	* semantics.c (finish_switch_cond): Don't call get_unwidened
794	if error_mark_node.
795
7962002-02-22  Nathan Sidwell  <nathan@codesourcery.com>
797
798	PR c++/2645, DR 295
799	* cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
800	tf_keep_type_decl.
801	(make_typename_type): Use tsubst_flags_t.
802	* decl.c (make_typename_type): Adjust. Return non-artificial
803	TYPE_DECLs, if required.
804	(grokdeclarator): Simplify CVR qualification handling. Allow bad
805	qualifiers on typedef types.
806	* decl2.c (handle_class_head): Adjust make_typename_type call.
807	* parse.y (nested_name_specifier): Likewise.
808	(typename_sub0): Likewise.
809	(typename_sub1): Likewise.
810	* pt.c (convert_template_argument): Adjust make_typename_type
811	return value.
812	(tsubst): Adjust cp_build_qualified_type_real calls.
813	(check_cv_quals_for_unify): Cope with alowing bad qualifications
814	on template type parms.
815	(instantiate_decl): Recheck substitutions to give warnings on bad
816	qualifications.
817	* tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
818
8192002-02-21  Aldy Hernandez  <aldyh@redhat.com>
820
821	* cp/decl.c (duplicate_decls): Merge always_inline attribute.
822
823	* cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
824	unless DECL_ALWAYS_INLINE.
825
8262002-02-20  Jakub Jelinek  <jakub@redhat.com>
827
828	* typeck.c (cp_pointer_int_sum): Renamed from
829	pointer_int_sum, call pointer_int_sum.
830
8312002-02-20  Jakub Jelinek  <jakub@redhat.com>
832
833	* decl.c (duplicate_decls): Return 0 if issued error about
834	redeclaration.
835
8362002-02-19  Jason Merrill  <jason@redhat.com>
837
838	ABI change: Mangle `void (A::*)() const' as 
839	M1AKFvvE, not MK1AFvvE.
840	* mangle.c (write_function_type): Write cv-quals for member
841	function type here.
842	(write_pointer_to_member_type): Not here.
843
8442002-02-18  Jason Merrill  <jason@redhat.com>
845
846	* pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
847	(do_decl_instantiation): Likewise.
848
8492002-02-17  Craig Rodrigues  <rodrigc@gcc.gnu.org>
850
851	PR c++/5685
852	* decl.c (duplicate_decls): Make warning unconditional
853	if duplicate default argument declarations are present.
854
8552002-02-17  Jakub Jelinek  <jakub@redhat.com>
856
857	* typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
858	shortening.
859
8602002-02-15  Nathan Sidwell  <nathan@codesourcery.com>
861
862	* decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
863	remove incorrect comment. Move #if 0'd code to common path. Use
864	IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
865
8662002-02-13  Jason Merrill  <jason@redhat.com>
867
868	* decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
869	(finish_function): Don't warn if current_function_returns_null.
870
871	* typeck2.c (digest_init): Do handle values of vector type.
872
873	* typeck2.c (digest_init, process_init_constructor): Treat vectors
874	like arrays.
875
8762002-02-11  Jason Merrill  <jason@redhat.com>
877
878	* parse.y (reserved_declspecs): Don't handle attributes.
879	(reserved_typespecquals): Handle them here.
880	* Make-lang.in (parse.c): Adjust expected conflicts.
881
8822002-02-08  Jakub Jelinek  <jakub@redhat.com>
883
884	* parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
885	instead of compstmt.
886	(compstmt_or_stmtexpr): Renamed from compstmt.
887	(compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
888
8892002-02-07  Nathan Sidwell  <nathan@codesourcery.com>
890
891	Rename instantiate_type_flags to tsubst_flags_t & expand use.
892	* cp-tree.h (instantiate_type_flags): Rename to ...
893	(tsubst_flags_t): ... here. Rename itf_complain to tf_error,
894	add tf_warning flag.
895	(instantiate_type): Adjust prototype.
896	(tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
897	do_type_instantiation, cp_build_qualified_type_real): Likewise.
898	cp_build_qualified_type: Adjust.
899	* class.c (instantiate_type): Adjust parameter. Rename itf_* to
900	tf_*.
901	* call.c (standard_conversion): Rename itf_* to tf_*.
902	(reference_binding): Likewise.
903	(convert_like_real): Likewise.
904	* cvt.c (cp_convert_to_pointer): Likewise.
905	(convert_to_reference): Likewise.
906	* decl.c (lookup_namespace_name): Use tf_* flags.
907	(make_typename_type): Likewise.
908	(grokdeclarator): Likewise.
909	* pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
910	(coerce_template_template_parms, convert_template_argument,
911	coerce_template_parms, maybe_get_template_decl_from_type_decl,
912	lookup_template_class, tsubst_friend_function, tsubst_friend_class,
913	instantiate_class_template, tsubst_template_arg_vector, 
914	tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 
915	tsubst_decl, tsubst_arg_types, tsubst_function_type,
916	tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 
917	instantiate_template, fn_type_unification,
918	resolve_overloaded_unification, verify_class_unification, 
919	unify, get_bindings_real, do_type_instantiation, 
920	regenerate_decl_from_template, instantiate_decl, 
921	tsubst_initializer_list, tsubst_enum,
922	get_mostly_instantiated_function_type,
923	invalid_nontype_parm_type_p): Likewise.
924	* tree.c (cp_build_qualified_type_real): Likewise.
925	* typeck.c (build_binary_op): Rename itf_* to tf_*.
926	(build_ptrmemfunc): Likewise.
927	(convert_for_assignment): Likewise.
928
9292002-02-07  Nathan Sidwell  <nathan@codesourcery.com>
930
931	PR c++/109
932	* decl.c (grokdeclarator): Allow friend declarations from
933	dependent types.
934	* decl2.c (handle_class_head): Don't push into template parm contexts.
935	* pt.c (push_template_decl_real): Template parm contexts are never
936	being defined.
937
9382002-02-05  Alexandre Oliva  <aoliva@redhat.com>
939
940	* class.c: Include target.h.
941	(check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
942	BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
943	bit-field layout.
944	* Make-lang.in: Adjust deps.
945
9462002-02-05  Jason Merrill  <jason@redhat.com>
947
948	* error.c (dump_type): Be more helpful about VECTOR_TYPE.
949
9502002-02-04  Jakub Jelinek  <jakub@redhat.com>
951
952	* semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
953	(finish_switch_cond): Set SWITCH_TYPE.
954
9552002-02-04  Richard Henderson  <rth@redhat.com>
956
957	* method.c (use_thunk): Always initialize the block tree.  Reindent.
958	* semantics.c (expand_body): Emit thunks after function, not before.
959
9602002-02-04  Jason Merrill  <jason@redhat.com>
961
962	* decl.c (start_function): Call cplus_decl_attributes immediately
963	after grokdeclarator.
964
965	* decl.c (start_function): Combine DECL_RESULT handling code.
966
9672002-02-03  Jason Merrill  <jason@redhat.com>
968
969	* xref.c: Remove.
970	* Make-lang.in (CXX_OBJS): Remove cp/xref.o
971	(cp/xref.o): Remove dependencies.
972	* class.c (finish_struct_1, check_methods): Don't call xref fns.
973	(finish_struct_1): Likewise.
974	* friend.c (make_friend_class): Likewise.
975	* lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
976	* spew.c (read_process_identifier): Likewise.
977
9782002-02-01  Jason Merrill  <jason@redhat.com>
979
980	PR c++/4872
981	* decl.c (finish_function): Warn about a non-void function with 
982	no return statement and no abnormal exit.
983	* cp-tree.h (struct cp_language_function): Add returns_abnormally.
984	(current_function_returns_abnormally): New macro.
985	* call.c (build_call): Set it.
986
987	* typeck.c (build_component_ref): Always complain about offsetof
988	constructs on non-PODs.  Only make it an error for members of
989	virtual bases.
990
991	* error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
992	(dump_function_decl): Always dump parms.
993
994	* decl2.c (finish_static_data_member_decl): Complain about a local
995	class with a static data member.
996
997	PR c++/4286
998	* search.c (lookup_field_1): Don't xref a static data member
999	just because we looked it up.
1000
10012002-01-31  Jason Merrill  <jason@redhat.com>
1002
1003	* Make-lang.in (parse.c): Handle .output file.
1004
1005	PR c++/3395
1006	* decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
1007	not TREE_TYPE.
1008	* semantics.c (finish_class_definition): Adjust.
1009
1010	Allow attributes in parms and casts.
1011	* parse.y (named_parm): Don't strip attrs.
1012	(declmods): Remove 'attributes' production.
1013	(nonempty_cv_qualifiers): Accept attributes.
1014	(ATTRIBUTE): Give precedence.
1015	* decl.c (groktypename): Handle attributes.
1016	(grokparms): Likewise.
1017
10182002-01-29  Jakub Jelinek  <jakub@redhat.com>
1019
1020	* decl2.c (cxx_decode_option): Pass 0 as last argument to
1021	cpp_handle_option.
1022	* lang-specs.h: Use cpp_unique_options instead of cpp_options
1023	when used together with cc1_options.
1024
10252002-01-29  Nathan Sidwell  <nathan@codesourcery.com>
1026
1027	PR c++/5132
1028	* typeck2.c (digest_init): Make sure non-array core type is
1029	instantiated.
1030	* decl2.c (reparse_absdcl_as_casts): Just store the type in the
1031	constructor, rather than build a new one.
1032	(build_expr_from_tree, CONSTRUCTOR case): Be careful with the
1033	PURPOSE of constructor elts.
1034
10352002-01-23  Zack Weinberg  <zack@codesourcery.com>
1036
1037	* Make-lang.in (parse.c): Adjust expected number of
1038	shift-reduce conflicts.
1039	(decl.o): Depend on diagnostic.h.
1040	* decl.c: Include diagnostic.h.
1041	(grokdeclarator): Check for null pointer.
1042	(finish_function): Don't abort when
1043	current_binding_level->parm_flag != 1, if errors have
1044	occurred; throw away the statement tree and extra binding
1045	levels, and continue.
1046	* lex.c (note_list_got_semicolon): Check for null pointer.
1047	* method.c (hack_identifier): Just return error_mark_node if
1048	value is error_mark_node.
1049	* parse.y (primary: TYPEID(type_id)): No need to use
1050	TYPE_MAIN_VARIANT here.
1051	(handler_seq): Accept an empty list of catch clauses and
1052	generate a fake handler block to avoid later crashes.
1053	(ansi_raise_identifier): Accept the error token too.
1054	* semantics.c (begin_class_definition,
1055	finish_class_definition): Check for error_mark_node.
1056
10572002-01-23  Zack Weinberg  <zack@codesourcery.com>
1058
1059	* typeck2.c (friendly_abort): Delete definition.
1060	* cp-tree.h (friendly_abort): Don't prototype.
1061	(my_friendly_assert): Use fancy_abort.
1062
10632002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1064
1065	* cp-tree.h (my_friendly_abort): Remove.
1066
10672002-01-23  Jakub Jelinek  <jakub@redhat.com>
1068
1069	* spew.c (pending_inlines, pending_inlines_tail,
1070	processing_these_inlines): Make static.
1071	(mark_pending_inlines): Remove static.
1072	(begin_parsing_inclass_inline): If in function, save pi
1073	for GC to cp_function_chain->unparsed_inlines instead.
1074	(process_next_inline): Likewise.
1075	* cp-tree.h (struct cp_language_function): Add unparsed_inlines.
1076	(mark_pending_inlines): Add prototype.
1077	* decl.c (spew_debug): Remove unused extern.
1078	(mark_lang_function): Call mark_pending_inlines.
1079
10802002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1081
1082	* call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
1083	init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
1084	semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
1085	Change my_fancy_abort() to abort().
1086
10872002-01-23  Jason Merrill  <jason@redhat.com>
1088
1089	PR c++/5453
1090	* class.c (fixed_type_or_null): Fix thinko.
1091
1092	PR c++/3331
1093	* init.c (resolve_offset_ref): Use build_indirect_ref.
1094
1095	* decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
1096
10972002-01-22  Jason Merrill  <jason@redhat.com>
1098
1099	* parse.y (function_body): Suppress the block for the outermost
1100	curly braces.
1101	* decl.c (pushdecl): Don't try to skip it.
1102	(begin_function_body): Keep the block we create, not the next one.
1103	* init.c (emit_base_init): Don't mess with keep_next_level.
1104
1105	* class.c (build_base_path): Tweak formatting.
1106
11072002-01-19  Nathan Sidwell  <nathan@codesourcery.com>
1108
1109	Fix regression introduced with patch for c++/775
1110	* parse.y (class_head_defn): Check for template specializations
1111	with a different class-key.
1112
11132002-01-17  Jason Merrill  <jason@redhat.com>
1114
1115	* decl.c (begin_constructor_body, begin_destructor_body): New fns.
1116	(begin_function_body): Call them and keep_next_level.
1117	* init.c (emit_base_init): Call keep_next_level.
1118	* semantics.c (setup_vtbl_ptr): Lose.
1119	* cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
1120	(vtbls_set_up_p): Lose.
1121	* pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
1122	* method.c (do_build_copy_constructor): Likewise.
1123	(synthesize_method): Call finish_mem_initializers.
1124	* parse.y (nodecls): Likewise.
1125
1126	* error.c (dump_type_suffix): Print the exception specs before
1127	recursing.
1128	(dump_function_decl): Here, too.
1129
1130	* cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
1131
11322002-01-10  Ira Ruben	<ira@apple.com>
1133
1134	PR c++/907
1135	* decl.c (start_method): Handle attrlist.
1136
11372002-01-10  Jakub Jelinek  <jakub@redhat.com>
1138
1139	* decl2.c (max_tinst_depth): Increase default limit to 500.
1140
11412002-01-10  Graham Stott  <grahams@redhat.com>
1142
1143	* spew.c (YYCHAR): Uppercase macro parameter and add
1144	parenthesis.
1145	(YYCODE): Likewise.
1146	(NAME): Uppercase macro parameter.
1147
11482002-01-09  Graham Stott  <grahams@redhat.com>
1149
1150	* decl.h (grokdeclarator): Wrap long line.
1151
1152	* semantics.c (FINISH_COND): Uppercase macro paramaters and
1153	add parenthesis.
1154
11552002-01-08  Graham Stott  <grahams@redhat.com>
1156
1157	* xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
1158	(PALLOC): Uppercase macro parameter and whitespace.
1159	(SALLOC): Uppercase macro parameter.
1160	(SFREE): Uppercase macros parameter, add parenthese and
1161	whitespace.
1162	(STREQL): Uppercase macro parameter and whitespace.
1163	(STRNEQ): Likewise.
1164	(STRLSS): Likewise.
1165	(STRLEQ): Likewise.
1166	(STRGTR): Likewise.
1167	(STRGEQ): Likewise.
1168
1169	* call.c (convert_like): Add parenthesis and wrap.
1170	(convert_like_with_context): Likewise.
1171	(ICS_RANK): Whitespace.
1172	(NEED_TEMPORARY_P): Remove parenthesis.
1173
1174	* class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
1175	whitespace.
1176	(VTT_MARKED_BINFO_P): Likewise.
1177
1178	* decl.c (BINDING_LEVEL): Add parenthesis.
1179	(DEF_OPERATOR): Likewise.
1180
1181	* mangle.c (MANGLE_TRACE): Add parenthesis.
1182	(MANGLE_TRACE_TREE): Likewise.
1183	(write_signed_number): Likewise.
1184	(write_unsigned_number): Likewise.
1185
1186	* pt.c (ccat): Uppercase macro parameter.
1187	(cat): Likewise
1188
1189	* search.c (SET_BINFO_ACCESS): Add parenthesis.
1190
11912002-01-07  Jason Merrill  <jason@redhat.com>
1192
1193	* decl2.c (coerce_new_type): Downgrade error for size_t mismatch
1194	to pedwarn.
1195
1196	PR c++/3536
1197	* method.c (make_thunk): If !flag_weak, give the thunk the
1198	function's linkage.
1199	(use_thunk): Here, too.
1200
12012002-01-07  Graham Stott  <grahams@redhat.com>
1202
1203	* error.c: Update copyright date.
1204	(print_scope_operator): Add parenthesis.
1205	(print_left_paren): Likewise.
1206	(print_right_paren): Likewise.
1207	(print_left_bracket): Likewise.
1208	(print_right_bracket): Likewise.
1209	(print_template_argument_list_start): Likewise.
1210	(print_template_argument_list_end): Likewise.
1211	(print_non_consecutive_character): Likewise.
1212	(print_tree_identifier): Likewise.
1213	(print_identifier): Likewise.
1214	(NEXT_CODE): Uppercase macro parameter.
1215	(ident_fndecl): Delete unused.
1216	(GLOBAL_THING): Likewise.
1217
12182002-01-06  Graham Stott  <grahams@redhat.com>
1219
1220	* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
1221	(VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
1222	(VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
1223	(RECORD_OR_UNION_TYPE_CHECK): Likewise.
1224	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
1225	(C_IS_RESERVED_WORD): Uppercase macro parameter.
1226	(C_RID_YYCODE) Likewise.
1227	(ptrmem_cst): Use rtx.
1228	(LOCAL_BINDING_P): Add whitespace.
1229	(INHERITED_VALUE_BINDING_P): Likewise.
1230	(BINDING_SCOPE): Wrap long line.
1231	(BINDING_HAS_LEVEL_P): Remove parenthesis.
1232	(BINDING_VALUE): Wrap long line.
1233	(BINDING_TYPE): Whitespace.
1234	(IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
1235	(SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
1236	(IDENTIFIER_NAMESPACE_VALUE): Likewise.
1237	(SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
1238	(same_type_p): Uppercase macro parameters.
1239	(same_type_ignoring_top_level_qualifiers_p): Likewise.
1240	(OVL_FUNCTION): Wrap long line.
1241	(OVL_CHAIN): Whitespace.
1242	(OVL_CURRENT): Add parenthesis and whitespace.
1243	(OVL_NEXT): Whitespace.
1244	(OVL_USED): Likewise.
1245	(IDENTIFIER_TYPE_VALUE): Likewise.
1246	(REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
1247	(SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
1248	(LANG_ID_FIELD): Whitespace.
1249	(SET_LANG_ID(NODE,VALUE,NAME): Likewise.
1250	(IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
1251	(SET_IDENTIFIER_LABEL_VALUE): Whitespace.
1252	(IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
1253	(SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
1254	(IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
1255	(SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
1256	(IDENTIFIER_VIRTUAL_P): Likewise.
1257	(IDENTIFIER_OPNAME_P): Likewise.
1258	(IDENTIFIER_TYPENAME_P): Remove parenthesis.
1259	(C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
1260	(C_SET_EXP_ORIGINAL_CODE): Likewise.
1261	(TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
1262	(TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
1263	(IS_AGGR_TYPE): Uppercase macro parameter.
1264	(CLASS_TYPE_P): Likewise.
1265	(IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
1266	(IS_AGGR_TYPE_2): Whitespace.
1267	(TAGGED_TYPE_P): Uppercase macro parameter.
1268	(TYPE_BUILT_IN): Whitespace.
1269	(TYPE_FOR_JAVA): Likewise.
1270	(FUNCTION_ARG_CHAIN): Remove parenthesis.
1271	(FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
1272	(FUNCTION_FIRST_USER_PARAM): Likewise.
1273	(PROMOTES_TO_AGGR_TYPE): Whitespace.
1274	(DERIVED_FROM_P): Add parenthesis and wrap.
1275	(UNIQUELY_DERIVED_FROM_P): Likewise.
1276	(ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
1277	(PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
1278	(CLASSTYPE_USE_TEMPLATE): Whitespace.
1279	(CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
1280	(TYPE_GETS_DELETE): Add parenthesis.
1281	(TYPE_HAS_CONVERSION): Add parenthesis and wrap.
1282	(TYPE_HAS_ASSIGN_REF): Likewise,
1283	(TYPE_HAS_CONST_ASSIGN_REF): Likewise.
1284	(TYPE_HAS_INIT_REF): Likewise.
1285	(TYPE_HAS_CONST_INIT_REF): Likewise.
1286	(TYPE_BEING_DEFINED): Likewise.
1287	(TYPE_LANG_SPECIFIC): Likewise.
1288	(CLASSTYPE_RTTI): Likewise.
1289	(TYPE_OVERLOADS_CALL_EXPR): Likewise.
1290	(TYPE_OVERLOADS_ARRAY_REF): Likewise.
1291	(TYPE_OVERLOADS_ARROW): Likewise.
1292	(TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
1293	(TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
1294	(CLASSTYPE_METHOD_VEC): Likewise.
1295	(CLASSTYPE_MARKED_N): Likewise.
1296	(CLASSTYPE_MARKED): Likewise.
1297	(CLASSTYPE_MARKED2): Likewise.
1298	(CLASSTYPE_MARKED3): Likewise.
1299	(CLASSTYPE_MARKED4): Likewise.
1300	(CLASSTYPE_MARKED5): Likewise.
1301	(CLASSTYPE_MARKED6): Likewise.
1302	(SET_CLASSTYPE_MARKED): Whitespace.
1303	(CLEAR_CLASSTYPE_MARKED): Likewise.
1304	(SET_CLASSTYPE_MARKED2): Likewise.
1305	(CLEAR_CLASSTYPE_MARKED2): Likewise.
1306	(SET_CLASSTYPE_MARKED3): Likewise.
1307	(CLEAR_CLASSTYPE_MARKED3): Likewise.
1308	(SET_CLASSTYPE_MARKED4): Likewise.
1309	(CLEAR_CLASSTYPE_MARKED4): Likewise.
1310	(SET_CLASSTYPE_MARKED5): Likewise.
1311	(CLEAR_CLASSTYPE_MARKED5): Likewise.
1312	(SET_CLASSTYPE_MARKED6): Likewise.
1313	(CLEAR_CLASSTYPE_MARKED6): Likewise.
1314	(CLASSTYPE_TAGS): Likewise.
1315	(CLASSTYPE_VSIZE): Likewise.
1316	(CLASSTYPE_VBASECLASSES): Likewise.
1317	(CANONICAL_BINFO): Add parenthesis.
1318	(CLASSTYPE_SIZE(NODE): Likewise.
1319	(CLASSTYPE_SIZE_UNIT): Likewise.
1320	(CLASSTYPE_ALIGN(NODE): Likewise.
1321	(CLASSTYPE_USER_ALIGN): Likewise.
1322	(TYPE_JAVA_INTERFACE): Likewise.
1323	(CLASSTYPE_PURE_VIRTUALS): Likewise.
1324	(CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
1325	(TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
1326	(CLASSTYPE_HAS_MUTABLE): Likewise.
1327	(CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
1328	(CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
1329	(CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
1330	(CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
1331	(CLASSTYPE_INTERFACE_ONLY): Likewise.
1332	(CLASSTYPE_INTERFACE_KNOWN): Likewise.
1333	(CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
1334	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
1335	(SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
1336	(SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
1337	(CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
1338	(BINFO_UNSHARED_MARKED): Whitespace.
1339	(BINFO_MARKED): Whitespace and wrap.
1340	(SET_BINFO_MARKED): Likewise.
1341	(CLEAR_BINFO_MARKED): Likewise.
1342	(BINFO_VTABLE_PATH_MARKED): Likewise.
1343	(SET_BINFO_VTABLE_PATH_MARKED): Likewise.
1344	(CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
1345	(BINFO_SUBVTT_INDEX): Remove parenthesis.
1346	(BINFO_VPTR_INDEX): Likewise.
1347	(BINFO_PRIMARY_BASE_OF): Likewise,
1348	(CLASSTYPE_VFIELDS): Whitespace.
1349	(VF_DERIVED_VALUE): Wrap long line.
1350	(NAMESPACE_LEVEL): Whitespace.
1351	(CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
1352	(DEFARG_POINTER): Whitespace.
1353	(DECL_NEEDED_P): Remove parenthesis.
1354	(DECL_LANGUAGE): Whitespace.
1355	(SET_DECL_LANGUAGE): Add parenthesis.
1356	(DECL_CONSTRUCTOR_P): Whitespace and wrap.
1357	(DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
1358	(DECL_IN_AGGR_P): Whitespace.
1359	(DECL_FRIEND_P): Likewise.
1360	(DECL_BEFRIENDING_CLASSES): Likewise.
1361	(DECL_STATIC_FUNCTION_P): Whitespace and wrap.
1362	(DECL_NONCONVERTING_P): Whitespace.
1363	(DECL_PURE_VIRTUAL_P): Likewise.
1364	(DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
1365	(DECL_PENDING_INLINE_INFO): Whitespace.
1366	(DECL_SORTED_FIELDS): Likewise.
1367	(DECL_DEFERRED_FN): Likewise.
1368	(DECL_TEMPLATE_INFO): Likewise.
1369	(CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
1370	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
1371	(SET_TYPE_TEMPLATE_INFO): Add parenthesis.
1372	(TMPL_ARGS_LEVEL): Likewise.
1373	(SET_TMPL_ARGS_LEVEL): Likewise.
1374	(INNERMOST_TEMPLATE_PARMS): Whitespace.
1375	(C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
1376	(INTEGRAL_CODE_P(CODE): Add parenthesis.
1377	(CP_INTEGRAL_TYPE_P): Remove parenthesis.
1378	(TYPE_HAS_CONSTRUCTOR): Whitespace.
1379	(TREE_HAS_CONSTRUCTOR): Likewise.
1380	(TYPE_HAS_DESTRUCTOR): Likewise.
1381	(TYPE_HAS_REAL_ASSIGN_REF): Likewise.
1382	(TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
1383	(TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
1384	(TYPE_HAS_COMPLEX_INIT_REF): Likewise.
1385	(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
1386	(TYPE_PTRMEMFUNC_P): Likewise.
1387	(TYPE_PTRMEMFUNC_FLAG): Likewise.
1388	(TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
1389	(TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
1390	(TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
1391	(TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
1392	(DECL_ACCESS): Whitespace.
1393	(DECL_GLOBAL_CTOR_P): Remove parenthesis.
1394	(DECL_GLOBAL_DTOR_P): Likewise.
1395	(GLOBAL_INIT_PRIORITY): Likewise.
1396	(DECL_TEMPLATE_PARMS): Likewise.
1397	(DECL_TEMPLATE_RESULT): Likewise.
1398	(DECL_TEMPLATE_INSTANTIATIONS): Likewise.
1399	(DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
1400	(DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
1401	(SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
1402	(PRIMARY_TEMPLATE_P): Add parenthesis.
1403	(DECL_USE_TEMPLATE): Whitespace.
1404	(CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
1405	(SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
1406	(CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
1407	(SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
1408	(CALL_DECLARATOR_PARMS): Remove parenthesis.
1409	(CALL_DECLARATOR_QUALS): Likewise.
1410	(CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
1411	(TEMP_NAME_P): Wrap.
1412	(VFIELD_NAME_P): Likewise.
1413	(B_SET): Uppercase macro parameters and add parenthesis.
1414	(B_CLR): Likewise.
1415	(B_TST): Likewise.
1416	(LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
1417	(LOOKUP_TYPES_ONLY): Uppercase macro parameters.
1418	(LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
1419	(same_or_base_type_p): Likewise.
1420	(cp_deprecated): Likewise.
1421
14222002-01-05  Richard Henderson  <rth@redhat.com>
1423
1424	* semantics.c (expand_body): Revert last change.
1425
14262002-01-04  Jason Merrill  <jason@redhat.com>
1427
1428	PR c++/4122
1429	* class.c (update_vtable_entry_for_fn): Set delta to zero for a
1430	lost primary.
1431
1432	* class.c (build_vtbl_initializer): Check for a lost primary
1433	before calculating the vtable entry to throw away.
1434
14352002-01-02  Jason Merrill  <jason@redhat.com>
1436
1437	* semantics.c (expand_body): Call outlining_inline_function when
1438	emitting an inline function out of line.
1439
14402002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
1441
1442	PR c++/5116, c++/764 reversion
1443	* call.c (build_new_op): Revert the instantiations. They are
1444	incorrect.
1445
14462002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
1447
1448	PR c++/5089
1449	* decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
1450
14512002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
1452
1453	PR c++/3716
1454	* pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
1455	(tsubst, case POINTER_TYPE): Handle pmfs here.
1456	(tsubst, case OFFSET_TYPE): Check it is not an offset to
1457	reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
1458
14592002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
1460
1461	PR c++/35
1462	* cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
1463	(DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
1464	* pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
1465	PARM_DECL.
1466	(tsubst_template_parms): Break up loop statements.
1467	(tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
1468	parm PARM_DECLs don't get promoted.
1469
14702002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
1471
1472	PR c++/5123
1473	* typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
1474	(build_x_function_call): Cope with a COMPONENT_REF containing a
1475	TEMPLATE_ID_EXPR.
1476
14772002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
1478
1479	PR c++/5213
1480	* pt.c (convert_template_argument): Be more careful determining
1481	when RECORD_TYPE templates are or are not templates.
1482
14832002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
1484
1485	PR c++/775
1486	* cp-tree.h (handle_class_head): Adjust prototype.
1487	* decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
1488	parameters. Use for all class heads.
1489	* parse.y (named_class_head_sans_basetype, named_class_head,
1490	named_complex_class_head_sans_basetype,
1491	named_class_head_sans_basetype_defn,
1492	unnamed_class_head): Remove.
1493	(class_head, class_head_apparent_template): Recognize class heads
1494	(class_head_decl, class_head_defn): New reductions. Process class
1495	heads.
1496	(structsp): Adjust class definition and class declaration
1497	reductions.
1498	(maybe_base_class_list): Give diagnostic on empty list.
1499
15002002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
1501
1502	PR c++/4379
1503	* typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
1504	single non-static member.
1505	(unary_complex_lvalue): If it cannot be a pointer to member, don't
1506	make it so. Check it is not pointer to reference.
1507
15082002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
1509
1510	PR c++/5132
1511	* decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
1512	are processing a template decl.
1513
15142002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
1515
1516	PR c++/5116, c++/764
1517	* call.c (build_new_op): Make sure template class operands are
1518	instantiated. Simplify arglist construction.
1519
15202001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
1521
1522	* call.c (build_user_type_conversion_1): Use my_friendly_assert
1523	rather than if ... abort.
1524	* cvt.c (convert_to_reference): Likewise.
1525	* semantics.c (setup_vtbl_ptr): Likewise.
1526	* pt.c (lookup_template_class): Comment typo.
1527
15282001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
1529
1530	PR c++/5125
1531	* pt.c (push_template_decl_real): Make sure DECL has
1532	DECL_LANG_SPECIFIC.
1533
15342001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
1535
1536	PR c++/335
1537	* init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
1538	for non-reference fields.
1539	* typeck.c (require_complete_type): Use resolve_offset_ref).
1540
15412001-12-26  Nathan Sidwell  <nathan@codesourcery.com>
1542
1543	PR c++/196
1544	* parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
1545
15462001-12-24  Nathan Sidwell  <nathan@codesourcery.com>
1547
1548	PR c++/160
1549	* typeck.c (build_modify_expr): Remove old unreachable code & tidy
1550	up. Don't stabilize_references when initializing a reference.
1551
15522001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1553
1554	* decl2.c (lang_f_options): Const-ify.
1555
15562001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1557
1558	* config-lang.in (diff_excludes): Remove.
1559
15602001-12-19  Nathan Sidwell  <nathan@codesourcery.com>
1561
1562	PR c++/90
1563	* typeck.c (build_function_call_real): Use original function
1564	expression for errors.
1565
15662001-12-18  Jason Merrill  <jason@redhat.com>
1567
1568	PR c++/3242
1569	* class.c (add_method): Do compare 'this' quals when trying to match a
1570	used function.  Don't defer to another used function.
1571
15722001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
1573
1574	* pt.c (instantiate_clone): Remove, fold into ...
1575	(instantiate_template): ... here. Simplify by removing mutual
1576	recursion.
1577	* typeck2.c (build_m_component_ref): Don't cv qualify the function
1578	pointed to by a pointer to function.
1579	* class.c (delete_duplicate_fields_1): Typo.
1580
15812001-12-18  Jason Merrill  <jason@redhat.com>
1582
1583	C++ ABI change: destroy value arguments in caller.
1584	* semantics.c (genrtl_start_function, genrtl_finish_function): Don't
1585	create an extra binding level for the parameters.
1586	* decl.c (store_parm_decls): Don't do parameter cleanups.
1587
15882001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
1589
1590	* call.c (build_new_method_call): Use '%#V'.
1591	* error.c (cv_to_string): Use V parameter to determine padding.
1592
15932001-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1594
1595	* call.c, decl2.c, init.c: Use "built-in" and "bit-field"
1596	spellings in messages.
1597
15982001-12-17  Zack Weinberg  <zack@codesourcery.com>
1599
1600	* cp-tree.h: Delete #defines for cp_error, cp_warning,
1601	cp_pedwarn, and cp_compiler_error.
1602	* call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
1603	except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
1604	rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
1605	typeck2.c: Change calls to the above macros to use their
1606	language-independent equivalents: error, warning, pedwarn, and
1607	internal_error respectively.
1608
16092001-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1610
1611	* decl2.c (finish_file): Remove back_end_hook.
1612
16132001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
1614
1615	* ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
1616	cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
1617	pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
1618
16192001-12-15  Joseph S. Myers  <jsm28@cam.ac.uk>
1620
1621	* lang-options.h: Use American spelling in messages.
1622
16232001-12-13  Jason Merrill  <jason@redhat.com>
1624
1625	* Make-lang.in (parse.h): Separate rule, just depend on parse.c.
1626
1627	Use cleanups to run base and member destructors.
1628	* init.c (push_base_cleanups): New function, split out from...
1629	(build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
1630	* decl.c (finish_destructor_body): Move vbase destruction code to
1631	push_base_cleanups.
1632	(begin_function_body, finish_function_body): New fns.
1633	(finish_function): Move [cd]tor handling and call_poplevel to
1634	finish_function_body.
1635	(pushdecl): Skip the new level.
1636	* semantics.c (genrtl_try_block): Don't call end_protect_partials.
1637	(setup_vtbl_ptr): Call push_base_cleanups.
1638	* method.c (synthesize_method): Call {begin,end}_function_body.
1639	* pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
1640	* cp-tree.h: Declare new fns.
1641	* parse.y (function_body, .begin_function_body): New nonterminals.
1642	(fndef, pending_inline, function_try_block): Use function_body.
1643	(ctor_initializer_opt, function_try_block): No longer has a value.
1644	(base_init): Remove .set_base_init token.
1645	(.set_base_init, compstmt_or_error): Remove.
1646	* Make-lang.in (parse.c): Expect two fewer s/r conflicts.
1647
1648	* optimize.c (maybe_clone_body): Fix parameter updating.
1649
16502001-12-12  Jason Merrill  <jason@redhat.com>
1651
1652	* decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
1653	* semantics.c (genrtl_start_function): Don't pass
1654	parms_have_cleanups or push an extra binding level.
1655	(genrtl_finish_function): Lose cleanup_label cruft.
1656
1657	* cp-tree.h (struct cp_language_function): Remove x_ctor_label.
1658	(ctor_label): Remove.
1659	* semantics.c (finish_return_stmt): Lose ctor_label support.
1660	* decl.c (finish_constructor_body, mark_lang_function): Likewise.
1661	* typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
1662	dtor_label.
1663
1664	* call.c (build_new_method_call): Let resolves_to_fixed_type_p
1665	check for [cd]tors.
1666	* class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
1667
1668	* decl.c (finish_function): Check VMS_TARGET, not VMS.
1669
1670	* decl.c (start_cleanup_fn): Remove redundant pushlevel.
1671	(end_cleanup_fn): And poplevel.
1672
1673	* semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
1674	if we're in a template.
1675
16762001-12-12  Jakub Jelinek  <jakub@redhat.com>
1677
1678	* cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
1679	ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
1680	THIS_NAME_P): Delete.
1681	* spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
1682	THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
1683	with internal naming scheme.
1684	* error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
1685
16862001-12-12  Nathan Sidwell  <nathan@codesourcery.com>
1687
1688	* decl.c (grokdeclarator): Deprecated implicit typename use.
1689
16902001-12-11  Nathan Sidwell  <nathan@codesourcery.com>
1691
1692	PR g++/51
1693	* parse.y (frob_specs): Indicate it is a language linkage which
1694	contained the extern.
1695	* decl.c (grokdeclarator): Allow extern language linkage with
1696	other specifiers.
1697
16982001-12-10  Nathan Sidwell  <nathan@codesourcery.com>
1699
1700	PR g++/72
1701	* decl.c (add_binding): Don't reject duplicate typedefs involving
1702	template parameters.
1703
17042001-12-10  Neil Booth  <neil@daikokuya.demon.co.uk>
1705
1706	* parse.y, semantics.c: Similarly.
1707
17082001-12-09  Nathan Sidwell  <nathan@codesourcery.com>
1709
1710	PR g++/87
1711	* cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
1712	(copy_args_p): Rename to ...
1713	(copy_fn_p): ... here.
1714	(grok_special_member_properties): New function.
1715	(grok_op_properties): Lose VIRTUALP parameter.
1716	(copy_assignment_arg_p): Remove.
1717	* call.c (build_over_call): Use copy_fn_p.
1718	* decl.c (grokfndecl): Reformat. Adjust call to
1719	grok_op_properties.
1720	(copy_args_p): Rename to ...
1721	(copy_fn_p): ... here. Reject template functions. Check for pass
1722	by value.
1723	(grok_special_member_properties): Remember special functions.
1724	(grok_ctor_properties): Don't remember them here, just check.
1725	(grok_op_properties): Likewise.
1726	(start_method): Call grok_special_member_properties.
1727	* decl2.c (grokfield): Likewise.
1728	(copy_assignment_arg_p): Remove.
1729	(grok_function_init): Don't remember abstract assignment here.
1730	* pt.c (instantiate_class_template): Call
1731	grok_special_member_properties.
1732	(tsubst_decl): Adjust grok_op_properties call.
1733
17342001-12-08  Aldy Hernandez  <aldyh@redhat.com>
1735
1736	* lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
1737	RID_TYPES_COMPATIBLE_P.
1738
17392001-12-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1740
1741	* semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
1742	call to build_aggr_init.
1743	* cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
1744
17452001-12-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1746
1747	* parse.y: Replace uses of the string non-terminal with STRING.
1748	Don't perform string concatentaion here.
1749	(string): Remove non-terminal.
1750	* semantics.c (finish_asm_stmt): Don't concatenate strings here.
1751
17522001-12-05  Jason Merrill  <jason@redhat.com>
1753
1754	* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
1755	(LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
1756	* tree.c (cp_start_inlining, cp_end_inlining): New fns.
1757	* pt.c (push_tinst_level): No longer static.
1758	* cp-tree.h: Declare them.
1759
1760	* init.c (resolve_offset_ref): Don't check access for the base
1761	conversion to access a FIELD_DECL.
1762
1763	* cp-tree.h (TYPE_REFFN_P): New macro.
1764	* decl.c (bad_specifiers): Check it, too.
1765
1766	* rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
1767	on the __*_type_info type if we haven't seen a definition.
1768
17692001-12-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1770
1771	* decl.c: Include c-common.h.
1772	(shadow_warning): Move to c-common.c.
1773
1774Wed Dec  5 17:00:49 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1775
1776	* decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
1777
17782001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
1779
1780	* pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
1781
17822001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
1783
1784	PR g++/164
1785	* init.c (sort_base_init): Allow binfos to be directly specified.
1786	* method.c (do_build_copy_constructor): Explicitly convert to the
1787	base instance.
1788	(do_build_assign_ref): Likewise.
1789
17902001-12-03  Hans-Peter Nilsson  <hp@bitrange.com>
1791
1792	* decl.c (xref_basetypes): Don't use C99 construct in tag_code
1793	declaration and initialization.
1794
17952001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1796
1797	* typeck2.c: Remove leading capital from diagnostic messages, as
1798	per GNU coding standards.
1799
18002001-12-03  Mumit Khan  <khan@nanotech.wisc.edu>
1801
1802	PR c++/3394
1803	* decl.c (xref_basetypes): Handle attributes between
1804	'class' and name.
1805
18062001-12-03  Nathan Sidwell  <nathan@codesourcery.com>
1807
1808	PR g++/3381
1809	* parse.y (named_complex_class_head_sans_basetype): Add new
1810	reduction.
1811	* Make-lang.in (parse.c): Adjust expected conflict count.
1812
18132001-12-03  Jason Merrill  <jason@redhat.com>
1814
1815	* class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
1816	immediate binfos for our virtual bases.
1817
18182001-12-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1819
1820	* call.c (build_java_interface_fn_ref): Similarly.
1821	* except.c (is_admissible_throw_operand): Similarly.
1822	* init.c (build_java_class_ref): Similarly.
1823	* xref.c (open_xref_file): Similarly.
1824
18252001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1826
1827	* class.c (finish_struct): Remove trailing periods from messages.
1828	* decl.c (check_tag_decl): Similarly.
1829	* lex.c (cxx_set_yydebug): Similarly.
1830	* typeck2.c (friendly_abort): Similarly.
1831
18322001-11-29  Mark Mitchell  <mark@codesourcery.com>
1833
1834	PR c++/3048
1835	* cp-tree.h (ovl_member): Remove.
1836	* decl2.c (merge_functions): Handle extern "C" functions
1837	specially.
1838	* tree.c (ovl_member): Remove.
1839
18402001-11-29  Mark Mitchell  <mark@codesourcery.com>
1841
1842	PR c++/4842
1843	* class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
1844	FUNCTION_DECL, as input.
1845	(mark_overriders): Remove.
1846	(warn_hidden): Rework for the new ABI.
1847
18482001-11-29  Mark Mitchell  <mark@codesourcery.com>
1849
1850	PR c++/3471
1851	* call.c (convert_like_real): Do not build additional temporaries
1852	for rvalues of class type.
1853
18542001-11-28  Nathan Sidwell  <nathan@codesourcery.com>
1855
1856	* cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
1857	(ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
1858	(PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
1859	(DERIVED_FROM_P): Likewise.
1860	(enum base_access): Renumber, add ba_quiet bit mask.
1861	(get_binfo): Remove.
1862	(get_base_distance): Remove.
1863	(binfo_value): Remove.
1864	(ACCESSIBLY_DERIVED_FROM_P): Remove.
1865	* call.c (standard_conversion): Use lookup_base.
1866	* class.c (strictly_overrides): Likewise.
1867	(layout_virtual_bases): Likewise.
1868	(warn_about_ambiguous_direct_bases): Likewise.
1869	(is_base_of_enclosing_class): Likewise.
1870	(add_vcall_offset_vtbl_entries_1): Likewise.
1871	* cvt.c (build_up_reference): Adjust comment.
1872	* init.c (build_member_call): Reformat.
1873	* search.c (get_binfo): Remove.
1874	(get_base_distance_recursive): Remove.
1875	(get_base_distance): Remove.
1876	(lookup_base_r): Tweak.
1877	(lookup_base): Add ba_quiet control. Complete the types here.
1878	(covariant_return_p): Use lookup_base.
1879	* tree.c (binfo_value): Remove.
1880	(maybe_dummy_object): Use lookup_base.
1881	* typeck.c (build_static_cast): Use lookup_base.
1882	(get_delta_difference): Likewise.
1883	* typeck2.c (binfo_or_else): Use lookup_base.
1884	(build_scoped_ref): Add back error_mark_check.
1885	(build_m_component_ref): Use lookup_base.
1886
18872001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1888
1889	* Make-lang.in (c++.generated-manpages): New dummy target.
1890
1891Tue Nov 27 09:03:47 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1892
1893	* Make-lang.in (cp-lang.o): Depends on c-common.h.
1894	* cp-lang.c (c-common.h): Include.
1895	(LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
1896	* decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
1897	* expr.c (init_cplus_expand): Don't set lang_expand_constant.
1898
18992001-11-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1900
1901	* decl2.c (c_language): Move to c-common.c.
1902	* lex.c (cxx_post_options, cxx_init_options): Use c-common.c
1903	functions.
1904	(cxx_init): Update.
1905
19062001-11-26  Jason Merrill  <jason@redhat.com>
1907
1908	* call.c (joust): Remove COND_EXPR hack.
1909
19102001-11-25  Aldy Hernandez  <aldyh@redhat.com>
1911
1912	* search.c (lookup_base_r): Declare bk in variable declaration
1913	space.
1914
19152001-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1916
1917	PR g++/3145
1918	* class.c (build_vbase_pointer): Remove.
1919	(build_vbase_path): Remove.
1920	(build_base_path): New function.
1921	* cp-tree.h (base_access, base_kind): New enumerations.
1922	(build_base_path): Declare.
1923	(convert_pointer_to_real): Remove.
1924	(convert_pointer_to): Remove.
1925	(lookup_base): Declare.
1926	(convert_pointer_to_vbase): Remove.
1927	* call.c (build_scoped_method_call): Use lookup_base &
1928	build_base_path instead of convert_pointer_to_real,
1929	get_base_distance & get_binfo.
1930	(build_over_call): Likewise.
1931	* cvt.c (cp_convert_to_pointer): Likewise.
1932	(convert_to_pointer_force): Likewise.
1933	(build_up_reference): Likewise.
1934	(convert_pointer_to_real): Remove.
1935	(convert_pointer_to): Remove.
1936	* init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
1937	instead of convert_pointer_to_vbase & build_vbase_path.
1938	(emit_base_init): Use build_base_path instead of
1939	convert_pointer_to_real.
1940	(expand_virtual_init): Lose unrequired conversions.
1941	(resolve_offset_ref): Use lookup_base and build_base_path
1942	instead of convert_pointer_to.
1943	* rtti.c (build_dynamic_cast_1): Use lookup_base &
1944	build_base_path instead of get_base_distance & build_vbase_path.
1945	* search.c (get_vbase_1): Remove.
1946	(get_vbase): Remove.
1947	(convert_pointer_to_vbase): Remove.
1948	(lookup_base_recursive): New function.
1949	(lookup_base): New function.
1950	* typeck.c (require_complete_type): Use lookup_base &
1951	build_base_path instead of convert_pointer_to.
1952	(build_component_ref): Likewise.
1953	(build_x_function_call): Likewise.
1954	(get_member_function_from_ptrfunc): Likewise.
1955	(build_component_addr): Likewise.
1956	* typeck2.c (build_scoped_ref): Likewise.
1957
19582001-11-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1959
1960	* cp-tree.h (CP_TYPE_QUALS): Removed.
1961	* decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
1962	* cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
1963	LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
1964	* dump.c (cp_dump_tree): Use void* dump_info argument to match
1965	lang-hooks prototype.
1966	* call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
1967	rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
1968	CP_TYPE_QUALS changed to cp_type_quals.
1969	* Make-lang.in: References to c-dump.h changed to tree-dump.h.
1970	(CXX_C_OBJS): Remove c-dump.o.
1971
19722001-11-21  Mark Mitchell  <mark@codesourcery.com>
1973
1974	PR c++/3637
1975	* pt.c (lookup_template_class): Ensure that all specializations
1976	are registered on the list corresponding to the most general
1977	template.
1978
19792001-11-20  Mark Mitchell  <mark@codesourcery.com>
1980
1981	* call.c (non_reference): Add documentation.
1982	(convert_class_to_reference): Do not strip reference types
1983	from conversion operators.
1984	(maybe_handle_ref_bind): Simplify.
1985	(compare_ics): Correct handling of references.
1986
19872001-11-19  John Wilkinson <johnw@research.att.com>
1988
1989	* dump.c (dump_op): New function.
1990	(cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION.  Use
1991	dump_op.  Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
1992	DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
1993
19942001-11-19  Mark Mitchell  <mark@codesourcery.com>
1995
1996	PR4629
1997	* semantics.c (finish_sizeof): Make sure that expression created
1998	while processing a template do not have a type.
1999	(finish_alignof): Likewise.
2000	* typeck.c (c_sizeof): Likewise.
2001	(expr_sizeof): Likewise.
2002
20032001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
2004
2005	* lex.c (cxx_finish): Call c_common_finish.
2006	(finish_parse): Remove.
2007
20082001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2009
2010	* decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
2011	when displaying error message about missing array bounds.
2012
20132001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2014
2015	* mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
2016	CONST_CAST_EXPR.
2017	* operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
2018
20192001-11-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2020
2021	* cp-tree.h (print_class_statistics): Restore.
2022
20232001-11-15  Jason Merrill  <jason@redhat.com>
2024
2025	* method.c (use_thunk): Don't emit debugging information for thunks.
2026
2027	* parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
2028	* decl.c (make_typename_type): Handle getting a class template.
2029	* search.c (lookup_field_r): A class template is good enough for
2030	want_type.
2031
2032	* call.c (convert_like_real): Only use cp_convert for the bad part.
2033	(standard_conversion): Also allow bad int->enum.
2034	* typeck.c (ptr_reasonably_similar): Also allow functions to
2035	interconvert.  Pointers to same-size integers are reasonably
2036	similar.
2037
2038	* cvt.c (convert_to_void): If we build a new COND_EXPR, always
2039	give it void type.
2040
20412001-11-15  Nathan Sidwell  <nathan@codesourcery.com>
2042
2043	PR g++/3154
2044	* init.c (sort_base_init): Remove unreachable code.
2045	(expand_member_init): Adjust comment to reflect reality. Simplify
2046	and remove unreachable code.
2047
20482001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
2049
2050	* cp-tree.h (init_reswords, cxx_init_decl_processing): New.
2051	(cxx_init): Update prototype.
2052	* decl.c (init_decl_processing): Rename.  Move null node init
2053	to its creation time.
2054	* lex.c (cxx_init_options): Update.
2055	(cxx_init): Combine with old init_parse; also call
2056	cxx_init_decl_processing.
2057
20582001-11-14  Richard Sandiford  <rsandifo@redhat.com>
2059
2060	* decl.c (check_initializer): Try to complete the type of an
2061	array element before checking whether it's complete.  Don't
2062	complain about arrays with complete element types but an
2063	unknown size.
2064	(cp_finish_decl): Build the hierarchical constructor before
2065	calling maybe_deduce_size_from_array_init.
2066
20672001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
2068
2069	* Make-lang.in: Change all uses of $(manext) to $(man1ext).
2070
20712001-11-13  Nathan Sidwell  <nathan@codesourcery.com>
2072
2073	PR g++/4206
2074	* parse.y (already_scoped_stmt): Remove.
2075	(simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
2076
20772001-11-12  H.J. Lu <hjl@gnu.org>
2078
2079	* cvt.c (ocp_convert): Don't warn the address of a weak
2080	function is always `true'.
2081
20822001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2083
2084	* cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
2085	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
2086	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
2087	* cp-tree.h (print_class_statistics): Remove.
2088	(cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
2089	cxx_print_identifier, cxx_set_yydebug): New.
2090	* lex.c (set_yydebug): Rename c_set_yydebug.
2091	* ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
2092	lang_print_xnode): Rename.
2093	* tree.c (print_lang_statistics): Rename.
2094
20952001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2096
2097	* class.c (dump_array): Fix format specifier warning.
2098
20992001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2100
2101	* cp-lang.c (LANG_HOOKS_NAME): Override.
2102	(struct lang_hooks): Constify.
2103	* lex.c (cxx_init_options): Update.
2104	(lang_identify): Remove.
2105	* parse.y (language_string): Remove.
2106
21072001-11-08  Andreas Franck  <afranck@gmx.de>
2108
2109	* Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
2110	DEMANGLER_CROSS_NAME): Handle program_transform_name the way
2111	suggested by autoconf.
2112	(GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
2113	(c++.install-common): Use the transformed target alias names.
2114
21152001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
2116
2117	* Make-lang.in: Update.
2118	* cp-lang.c: Include langhooks-def.h.
2119
21202001-11-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2121
2122	* pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
2123
21242001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2125
2126	* lex.c (copy_lang_type): Add static prototype.
2127
21282001-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2129
2130	* pt.c (unify): Handle SCOPE_REF.
2131
21322001-11-01  Jakub Jelinek  <jakub@redhat.com>
2133
2134	* tree.c (cp_copy_res_decl_for_inlining): Adjust
2135	DECL_ABSTRACT_ORIGIN for the return variable.
2136
21372001-10-31  Zack Weinberg  <zack@codesourcery.com>
2138
2139	*  Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
2140
21412001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
2142
2143	* ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
2144	semantics.c, spew.c: Fix spelling errors.
2145
21462001-10-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2147
2148	* decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
2149
21502001-10-25  Zack Weinberg  <zack@codesourcery.com>
2151
2152	* cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
2153	pop_everything.
2154
2155Tue Oct 23 14:00:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2156
2157	* cp-lang.c (cxx_get_alias_set): New function.
2158	Point LANG_HOOKS_GET_ALIAS_SET to it.
2159
21602001-10-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2161
2162	* cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
2163	* cp-tree.h (make_unbound_class_template): Prototype new function.
2164	* decl.c (make_unbound_class_template): New function.
2165	* decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
2166	* error.c (dump_type): Likewise.
2167	* mangle.c (write_type): Likewise.
2168	* parse.y (template_parm): Likewise.
2169	(template_argument): Use make_unbound_class_template.
2170	* pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
2171	(tsubst): Likewise.
2172	(tsubst_copy): Likewise.
2173	(unify): Likewise.
2174	* tree.c (walk_tree): Likewise.
2175	* typeck.c (comptypes): Likewise.
2176
21772001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2178
2179	* xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
2180	extra calls into fewer ones.
2181
21822001-10-18  Alexandre Oliva  <aoliva@redhat.com>
2183
2184	* decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
2185	Warn when merging inline with attribute noinline.
2186	(start_decl, start_function): Warn if inline and attribute
2187	noinline appear in the same declaration.
2188
21892001-10-16  H.J. Lu <hjl@gnu.org>
2190
2191	* cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
2192	for tree checking disabled.
2193
21942001-10-16  Hans-Peter Nilsson  <hp@axis.com>
2195
2196	* cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
2197	NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
2198
21992001-10-15  Richard Sandiford  <rsandifo@redhat.com>
2200
2201	* pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
2202	(unify): Only handle MINUS_EXPR specially if the above flag is set
2203	and the subtracted constant is 1.  Clear the flag on recursive calls.
2204	Set it when unifying the maximum value in an INTEGER_TYPE's range.
2205
22062001-10-15  Richard Sandiford  <rsandifo@redhat.com>
2207
2208	* decl.c (bad_specifiers): Don't allow exception specifications
2209	on any typedefs.
2210
22112001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2212
2213	* cp/lex.c (init_cp_pragma): Similarly.
2214
22152001-10-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2216
2217	* pt.c (lookup_template_class): Build complete template arguments
2218	for BOUND_TEMPLATE_TEMPLATE_PARM.
2219
22202001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2221
2222	* cp-tree.h (TYPE_BINFO): Update comment.
2223	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
2224	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
2225	(TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
2226	(copy_type): Prototype new function.
2227	* lex.c (copy_lang_decl): Gather tree node statistics.
2228	(copy_lang_type): New function.
2229	(copy_type): Likewise.
2230	(cp_make_lang_type): Create lang_type for
2231	BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
2232	and BOUND_TEMPLATE_TEMPLATE_PARM.
2233	* pt.c (tsubst): Use copy_type instead of copy_node.
2234	* search.c (lookup_field_1): Ignore TYPENAME_TYPE.
2235
22362001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2237
2238	* pt.c (determine_specialization): Ignore functions without
2239	DECL_TEMPLATE_INFO.
2240
22412001-10-12  Nathan Sidwell  <nathan@codesourcery.com>
2242
2243	PR g++/4476
2244	* typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
2245
22462001-10-11  Jason Merrill  <jason_merrill@redhat.com>
2247
2248	* typeck2.c (store_init_value): Don't re-digest a bracketed
2249	initializer.
2250
2251	* class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
2252	ANON_AGGR_TYPE_P.
2253
22542001-10-11  Richard Henderson  <rth@redhat.com>
2255
2256	* class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
2257	of an asm statement.
2258	(build_vtbl_ref_1): Split out from build_vtbl_ref.
2259	(build_vfn_ref): Use it to handle vtable descriptors before
2260	calling build_vtable_entry_ref.
2261	* decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
2262
22632001-10-10  Richard Henderson  <rth@redhat.com>
2264
2265	* parse.y (asm_operand): Allow named operands.
2266	* semantics.c (finish_asm_stmt): Tweek for changed location
2267	of the operand constrant.
2268
22692001-10-09  Jason Merrill  <jason_merrill@redhat.com>
2270
2271	* call.c (standard_conversion): Add bad conversion between
2272	integers and pointers.
2273	(convert_like_real): Don't use convert_for_initialization for bad
2274	conversions; complain here and use cp_convert.
2275	(build_over_call): Don't handle bad conversions specially.
2276	(perform_implicit_conversion): Allow bad conversions.
2277	(can_convert_arg_bad): New fn.
2278	* cp-tree.h: Declare it.
2279	* typeck.c (convert_for_assignment): Use it.
2280	(ptr_reasonably_similar): Any target type is similar to void.
2281
22822001-10-08  Alexandre Oliva  <aoliva@redhat.com>
2283
2284	* Make-lang.in (CXX_OBJS): Added cp-lang.o.
2285	(cp/cp-lang.o): New rule.
2286	* cp-tree.h: Declare hooks.
2287	* tree.c: Make hooks non-static.
2288	(init_tree): Don't initialize hooks here.
2289	* lex.c: Likewise.  Move definition of lang_hooks to...
2290	* cp-lang.c: ... new file.
2291
22922001-10-08  Richard Henderson  <rth@redhat.com>
2293
2294	* cp-tree.h (struct lang_decl_flags): Remove declared_inline.
2295	(DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
2296
22972001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2298
2299	* class.c (build_vtable_entry_ref): Const-ify.
2300	* decl.c (predefined_identifier,
2301	initialize_predefined_identifiers): Likewise.
2302	* init.c (build_new_1): Likewise.
2303	* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
2304	Likewise.
2305
23062001-10-05  Alexandre Oliva  <aoliva@redhat.com>
2307
2308	* optimize.c (struct inline_data): Moved to ../tree-inline.c.
2309	(INSNS_PER_STMT): Likewise.
2310	(remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
2311	(copy_body, initialize_inlined_parameters): Likewise.
2312	(declare_return_variable, inlinable_function_p): Likewise.
2313	(expand_call_inline, expand_calls_inline): Likewise.
2314	(optimize_inline_calls, clone_body): Likewise.
2315	* tree.c (walk_tree): Moved to ../tree-inline.c.
2316	(walk_tree_without_duplicates): Likewise.
2317	(copy_tree_r, remap_save_expr): Likewise.
2318
23192001-10-04  Alexandre Oliva  <aoliva@redhat.com>
2320
2321	* Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
2322	(cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
2323	* cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
2324	(TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
2325	(flag_inline_trees): Moved declaration to ../tree-inline.h.
2326	(walk_tree): Moved declaration to ../tree-inline.h.
2327	(walk_tree_without_duplicates, copy_tree_r): Likewise.
2328	(remap_save_expr): Likewise.
2329	* decl.c: Include tree-inline.h.
2330	(lang_mark_tree): Don't mark inlined_fns.
2331	* decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
2332	* optimize.c: Include tree-inline.h.
2333	(optimize_inline_calls): Move declaration to ../tree.h, as
2334	non-static.
2335	(remap_decl): Use language-independent constructs and hooks.
2336	(remap_block, copy_body_r, declare_return_variable): Likewise.
2337	(inlinable_function_p): Likewise.  Don't test for
2338	DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
2339	no longer language-specific.
2340	(optimize_inline_calls): Likewise.  Make it non-static.  Moved
2341	call of dump_function to...
2342	(optimize_function): Here...
2343	(clone_body): New function, extracted from...
2344	(maybe_clone_body): ... here.  Build decl_map locally and pass
2345	it on to clone_body.
2346	* pt.c, semantics.c: Include tree-inline.h.
2347	* tree.c: Likewise.
2348	(cp_walk_subtrees): New language-specific hook for tree inlining.
2349	(cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
2350	cp_is_overload_p, cp_auto_var_in_fn_p,
2351	cp_copy_res_decl_for_inlining): Likewise.
2352	(walk_tree): Move language-specific constructs into...
2353	(cp_walk_subtrees): this new function.
2354	(copy_tree_r): Use language-independent constructs and hooks.
2355	(init_tree): Initialize tree inlining hooks.
2356	(remap_save_expr): Adjust prototype so that the declaration
2357	does not require the definition of splay_tree.
2358
23592001-10-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2360
2361	* rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
2362	to build the declaration instead of the declaration itself.
2363
23642001-10-02  Jason Merrill  <jason_merrill@redhat.com>
2365
2366	* decl2.c (cxx_decode_option): Add 'else'.
2367
2368	* spew.c (end_input): No longer static.
2369	* cp-tree.h: Declare it.
2370	* parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
2371
23722001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2373
2374	* call.c (build_over_call), typeck.c (build_function_call_real):
2375	Pass type attributes to check_function_format rather than name or
2376	assembler name.  Don't require there to be a name or assembler
2377	name to check formats.
2378
23792001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2380
2381	* decl.c (init_decl_processing): Don't call
2382	init_function_format_info.  Initialize lang_attribute_table
2383	earlier.
2384	(builtin_function): Call decl_attributes.
2385	(insert_default_attributes): New.
2386
23872001-10-01  Jason Merrill  <jason_merrill@redhat.com>
2388
2389	* decl.c (grokdeclarator): Copy array typedef handling from C
2390	frontend.
2391
2392	* decl.c (grokdeclarator): Copy too-large array handling from C
2393	frontend.
2394
23952001-09-29  Alexandre Oliva  <aoliva@redhat.com>
2396
2397	* config-lang.in (target_libs): Added target-gperf, so that we
2398	don't try to build it if C++ is disabled.
2399
24002001-09-23  Zack Weinberg  <zack@codesourcery.com>
2401
2402	* Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
2403	(cp/errfn.o): Delete rule.
2404	(cp/error.o): Depend on flags.h.
2405	* errfn.c: Delete file.
2406	* cp-tree.h: Declare warn_deprecated.  Remove definitions of
2407	TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
2408	and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
2409	cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
2410	internal_error respectively.  Make cp_deprecated into a macro.
2411	Don't define cp_printer typedef or declare cp_printers.
2412	* error.c: Include flags.h.
2413	Delete: struct tree_formatting_info, print_function_argument_list,
2414	print_declaration, print_expression, print_function_declaration,
2415	print_function_parameter, print_type_id, print_cv_qualifier_seq,
2416	print_type_specifier_seq, print_simple_type_specifier,
2417	print_elaborated_type_specifier, print_rest_of_abstract_declarator,
2418	print_parameter_declaration_clause, print_exception_specification,
2419	print_nested_name_specifier, and definition of cp_printers.
2420	(locate_error): New function.
2421	(cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
2422	rewritten in terms of locate_error and diagnostic.c.
2423	(cp_tree_printer): Rename cp_printer; wire up to *_to_string
2424	instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
2425	(init_error): Adjust to match.
2426
2427Sat Sep 22 09:15:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2428
2429	* Make-lang.in (CXX_C_OBJS): Add attribs.o.
2430
24312001-09-21  Richard Henderson  <rth@redhat.com>
2432
2433	* class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
2434	(build_vtbl_initializer): Likewise.
2435	(build_vfn_ref): New.
2436	* cp-tree.h: Declare it.
2437	* call.c (build_over_call): Use it.
2438	* decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
2439	* typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
2440
2441Fri Sep 21 08:16:19 2001  J"orn Rennecke <amylaar@redhat.com>
2442
2443	* decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
2444
24452001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
2446
2447	Table-driven attributes.
2448	* decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
2449	* decl2.c (cplus_decl_attributes): Only take one attributes
2450	parameter.
2451	* cp-tree.c (cplus_decl_attributes): Update prototype.
2452	* class.c (finish_struct), decl.c (start_decl, start_function),
2453	decl2.c (grokfield), friend.c (do_friend), parse.y
2454	(parse_bitfield): Update calls to cplus_decl_attributes.
2455	* decl.c (grokdeclarator): Take a pointer to a single ordinary
2456	attribute list.
2457	* decl.h (grokdeclarator): Update prototype.
2458	* decl2.c (grokfield): Take a single ordinary attribute list.
2459	* friend.c (do_friend): Likewise.
2460	* decl.c (shadow_tag, groktypename, start_decl,
2461	start_handler_parms, grokdeclarator, grokparms, start_function,
2462	start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
2463	parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
2464	(process_template_parm, do_decl_instantiation): Pass single
2465	ordinary attribute lists around.
2466	* decl.c (grokdeclarator): Correct handling of nested attributes.
2467	Revert the patch
2468	1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
2469		* decl.c (grokdeclarator): Embedded attrs bind to the right,
2470		not the left.
2471	.
2472	* cp-tree.h (cp_valid_lang_attribute): Remove declaration
2473	(cp_attribute_table): Declare.
2474	* decl.c (valid_lang_attribute): Don't define.
2475	(lang_attribute_table): Define.
2476	(init_decl_processing): Initialize lang_attribute_table instead of
2477	valid_lang_attribute.
2478	* tree.c (cp_valid_lang_attribute): Remove.
2479	(handle_java_interface_attribute, handle_com_interface_attribute,
2480	handle_init_priority_attribute): New functions.
2481	(cp_attribute_table): New array.
2482	* decl2.c (import_export_class): Don't use
2483	targetm.valid_type_attribute.
2484
24852001-09-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2486
2487	* Make-lang.in (cp/error.o): Depend on real.h
2488	* error.c: #include "real.h"
2489
24902001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2491
2492	* mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
2493	xmalloc/strcpy/strcat.
2494
24952001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2496
2497	* decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
2498	Const-ification.
2499	* pt.c (tsubst_decl): Likewise.
2500
25012001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2502
2503	* decl2.c (lang_f_options): Const-ification.
2504	* lex.c (cplus_tree_code_name): Likewise.
2505	* spew.c (yyerror): Likewise.
2506
25072001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
2508
2509	PR c++/3986
2510	* class.c (force_canonical_binfo_r): Check & move an indirect
2511	primary base first.
2512	(force_canonical_binfo): Check that it's not already
2513	canonical.
2514	(mark_primary_virtual_base): Remove BINFO parameter.
2515	(mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
2516
25172001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
2518
2519	Remove TYPE_NONCOPIED_PARTS.
2520	* cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
2521	CLASSTYPE_PURE_VIRTUALS.
2522	(TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
2523	* class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
2524	(layout_class_type): Don't call fixup_inline_methods here ...
2525	(finish_struct_1): ... call it here.
2526
25272001-09-04  Mark Mitchell  <mark@codesourcery.com>
2528
2529	* decl.c (duplicate_decls): Remove code deadling with
2530	DECL_SAVED_INSNS.
2531	* decl2.c (finish_file): Likewise.
2532	* pt.c (instantiate_decl): Likewise.
2533	* semantics.c (expand_body): Don't defer local functions if
2534	they wouldn't be deferred for some other reason.  Don't
2535	generate RTL for functions that will not be emitted.
2536	(genrtl_start_function): Remove code deadling with
2537	DECL_SAVED_INSNS.
2538	(genrtl_finish_function): Likewise.
2539
25402001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
2541
2542	PR c++/4203
2543	* call.c (build_over_call): Do not optimize any empty base
2544	construction.
2545
25462001-08-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2547
2548	* error.c (dump_template_decl): Output template parameters
2549	together with their specifiers.
2550	Output `class' prefix for template template parameter.
2551	(dump_decl): Fix formatting.
2552
25532001-08-30  Kurt Garloff  <garloff@suse.de>
2554
2555	* optimize.c (inlinable_function_p): Allow only smaller single
2556	functions. Halve inline limit after reaching recursive limit.
2557
25582001-08-30  Joern Rennecke <amylaar@redhat.com>
2559	    Jason Merrill  <jason_merrill@redhat.com>
2560
2561	* class.c (build_vtable_entry_ref): Subtract in char*, not
2562	ptrdiff_t.
2563
25642001-08-23  Jason Merrill  <jason_merrill@redhat.com>
2565
2566	* tree.c (cp_build_qualified_type_real): Use get_qualified_type.
2567	(build_cplus_array_type): Use cp_build_qualified_type, not
2568	TYPE_MAIN_VARIANT, to get an unqualified version.
2569
2570	* decl2.c (grok_alignof): Lose.
2571	(build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
2572	* typeck.c (c_alignof): Lose.
2573	* semantics.c (finish_sizeof, finish_alignof): New.
2574	* parse.y: Use them.
2575	* cp-tree.h: Declare them.
2576
25772001-08-22  Jason Merrill  <jason_merrill@redhat.com>
2578
2579	* pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
2580	Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
2581	* tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
2582
25832001-08-19  Jakub Jelinek  <jakub@redhat.com>
2584
2585	* typeck2.c (add_exception_specifier): Only require complete type if
2586	not in processing template declaration.
2587
25882001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2589
2590	* decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
2591	GNU_xref_start_scope and GNU_xref_end_scope.
2592
2593	* tree.c (TYPE_HASH): Moved to ../tree.h.
2594
25952001-08-16  Mark Mitchell  <mark@codesourcery.com>
2596
2597	* cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
2598	on COMPOUND_EXPRs.
2599
26002001-08-14  Richard Henderson  <rth@redhat.com>
2601
2602	* class.c, cp-tree.h (build_vfn_ref): Remove.
2603	* call.c, rtti.c: Replace all refernces with build_vtbl_ref.
2604
26052001-08-13  Mark Mitchell  <mark@codesourcery.com>
2606
2607	* call.c (build_over_call): Mark COMPOUND_EXPRs generated for
2608	empty class assignment as having side-effects to avoid
2609	spurious warnings.
2610
26112001-08-13  Zack Weinberg  <zackw@panix.com>
2612
2613	* Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
2614	* except.c: Include libfuncs.h.
2615
26162001-08-11  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2617
2618	* decl.c (grokdeclarator): Clarify diagnostic message.
2619
26202001-08-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2621
2622	* decl2.c (do_nonmember_using_decl): Replace using directive
2623	with using declaration in the error message.
2624
26252001-08-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2626
2627	* pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
2628	criterion to avoid rebuilding expression tree instead of
2629	processing_template_decl.
2630
26312001-08-07  Jason Merrill  <jason_merrill@redhat.com>
2632
2633	Support named return value optimization for inlines, too.
2634	* decl.c (finish_function): Nullify returns here.
2635	* semantics.c (genrtl_start_function): Not here.
2636	(cp_expand_stmt): Don't mess with CLEANUP_STMTs.
2637	(nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
2638	Also nullify the CLEANUP_STMT for the nrv.
2639	* cp-tree.h: Declare it.
2640	* optimize.c (declare_return_variable): Replace the nrv with the
2641	return variable.
2642	* typeck.c (check_return_expr): Be more flexible on alignment check.
2643	Ignore cv-quals when checking for a matching type.
2644
26452001-08-09  Richard Henderson  <rth@redhat.com>
2646
2647	* decl2.c (finish_objects): Use target hooks instead of
2648	assemble_constructor and assemble_destructor.
2649
26502001-08-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2651
2652	* g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
2653
26542001-08-07  Nathan Sidwell  <nathan@codesourcery.com>
2655
2656	PR c++/3820
2657	Stop using TYPE_NONCOPIED_PARTS.
2658	* call.c (build_over_call): Be careful when copy constructing
2659	or assigning to an empty class.
2660	* class.c (check_bases_and_members): It has a
2661	COMPLEX_ASSIGN_REF if it has a vptr.
2662	(layout_class_type): Don't add empty class padding to
2663	TYPE_NONCOPIED_PARTS.
2664	(finish_struct_1): Don't add the VFIELD either.
2665	* cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
2666	initialization.
2667
26682001-08-07  Jason Merrill  <jason_merrill@redhat.com>
2669
2670	* tree.c (walk_tree): Walk siblings even if !walk_subtrees.
2671
26722001-08-06  Richard Henderson  <rth@redhat.com>
2673
2674	* decl2.c (finish_objects): Pass a symbol_ref and priority to
2675	assemble_{constructor,destructor}.  Remove priority handling.
2676
26772001-08-05  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2678
2679	Don't allow template-id in using-declaration.
2680	* decl2.c (validate_nonmember_using_decl): Handle template-ids.
2681	(do_class_using_decl): Likewise.
2682
26832001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
2684
2685	* cp/spew.c (read_token): No need to pop buffers.
2686
26872001-08-02  Stan Shebs  <shebs@apple.com>
2688
2689	* cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
2690	(fnaddr_from_vtable_entry): Remove decl.
2691	* method.c (use_thunk): Update comment.
2692
26932001-08-01  Andrew Cagney  <ac131313@redhat.com>
2694
2695	* repo.c (get_base_filename): Change return value to const char
2696	pointer.
2697
26982001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
2699
2700	Kill -fhonor-std.
2701	* NEWS: Document.
2702	* cp-tree.h (flag_honor_std): Remove.
2703	(CPTI_FAKE_STD): Remove.
2704	(std_node): Remove comment about it being NULL.
2705	(fake_std_node): Remove.
2706	* decl.c (in_fake_std): Remove.
2707	(walk_namespaces_r): Remove fake_std_node check.
2708	(push_namespace): Remove in_fake_std code.
2709	(pop_namespace): Likewise.
2710	(lookup_name_real): Remove fake_std_node check.
2711	(init_decl_processing): Always create std_node. Always add
2712	std:: things there.
2713	(builtin_function): Always put non '_' fns in std.
2714	* decl2.c (flag_honor_std): Remove.
2715	(lang_f_options): Remove honor-std.
2716	(unsupported_options): Add honor-std.
2717	(set_decl_namespace): Remove fake_std_node check.
2718	(validate_nonmember_using_decl): Likewise.
2719	(do_using_directive): Likewise.
2720	(handle_class_head): Likewise.
2721	* dump.c (cp_dump_tree): Likewise.
2722	* except.c (init_exception_processing): Adjust.
2723	* init.c (build_member_call): Remove fake_std_node check.
2724	(build_offset_ref): Likewise.
2725	* lang-options.h: Remove -fhonor-std, -fno-honor-std.
2726	* rtti.c (init_rtti_processing): Adjust.
2727
27282001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
2729
2730	* tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
2731	operand while calling cp_tree_equal.
2732
27332001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
2734
2735	The 3.0 ABI no longer has vbase pointer fields.
2736	* cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
2737	FORMAT_VBASE_NAME): Remove.
2738	* method.c (do_build_copy_constructor): Adjust.
2739	(do_build_assign_ref): Adjust.
2740	* search.c (lookup_field_r): Adjust.
2741	* typeck.c (build_component_ref): Adjust.
2742
2743	The 3.0 ABI always has a vtable pointer at the start of every
2744	polymorphic class.
2745	* rtti.c (build_headof_sub): Remove.
2746	(build_headof): Adjust.
2747	(get_tinfo_decl_dynamic): No need to check flag_rtti
2748	here. Adjust.
2749	(create_real_tinfo_var): Explain why we need a hidden name.
2750
27512001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
2752
2753	PR c++/3631
2754	* class.c (update_vtable_entry_for_fn): The fixed adjustment
2755	of a virtual thunk should be from declaring base.
2756
27572001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
2758
2759	* class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
2760	the shared virtual base, so preserving inheritance graph order.
2761
27622001-07-30  Andreas Jaeger  <aj@suse.de>
2763
2764	* decl2.c: Remove unused var global_temp_name_counter.
2765
27662001-07-28  Richard Henderson  <rth@redhat.com>
2767
2768	* method.c (pending_inlines): Remove.
2769
27702001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
2771
2772	* class.c (mark_primary_virtual_base): Don't adjust base
2773	offsets here.
2774	(dfs_unshared_virtual_bases): Adjust them here.
2775	(mark_primary_bases): Explain why we adjust at the end.
2776
27772001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
2778
2779	* class.c (finish_struct_1): When copying the primary base's
2780	VFIELD, make sure we find it is at offset zero.
2781
27822001-07-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2783
2784	* pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
2785	tsubst_expr for default template arguments.
2786
27872001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
2788
2789	PR c++/3621
2790	* spew.c (yylex): Only copy the token's lineno, if it is
2791	non-zero.
2792
27932001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
2794
2795	PR c++/3624
2796	* call.c (resolve_args): Simplify, call
2797	convert_from_reference.
2798	(build_new_op): Resolve and convert from reference ARG1
2799	earlier. Adjust ARG2 & ARG3 resolve and conversion.
2800
28012001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
2802
2803	* decl.c (last_function_parm_tags): Remove.
2804	(current_function_parm_tags): Remove.
2805	(init_decl_processing): Adjust.
2806	(start_function): Adjust.
2807	(store_parm_decls): Adjust.
2808
2809	PR c++/3152
2810	* decl.c (grokdeclarator): Detect when a function typedef is
2811	declaring a function, and create last_function_parms correctly.
2812
28132001-07-25  Jason Merrill  <jason_merrill@redhat.com>
2814
2815	* call.c (joust): Only prefer a non-builtin candidate to a builtin
2816	one if they have the same signature.
2817
2818	* cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
2819	it rather than toplevel_bindings_p.  Give it a mangled name if static.
2820	(convert_to_reference): Adjust.
2821	* decl2.c (get_temp_name): Lose.
2822	* mangle.c (mangle_ref_init_variable): New fn.
2823	(mangle_guard_variable): Strip the ref-init header.
2824	* cp-tree.h: Adjust.
2825	* decl.c (cp_finish_decl): Add the DECL_STMT after processing the
2826	initializer.
2827	(grok_reference_init): Always use DECL_INITIAL.
2828
28292001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2830
2831	PR c++/3416
2832	* call.c (build_conditional_expr): Recheck args after
2833	conversions.
2834	* cp-tree.h (build_conditional_expr): Move to correct file.
2835	* typeck.c (decay_conversion): Diagnose any unknown types
2836	reaching here.
2837	(build_binary_op): Don't do initial decay or default
2838	conversions on overloaded functions.
2839	(build_static_cast): Don't do a decay conversion here.
2840
28412001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2842
2843	PR c++/3543
2844	* typeck.c (condition_conversion): Resolve an OFFSET_REF.
2845	* expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
2846
28472001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2848
2849	* class.c (build_vtbl_or_vbase_field): Remove, move into ...
2850	(create_vtbl_ptr): ... here.
2851
28522001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2853
2854	* class.c (build_vbase_offset_vbtl_entries): Look for
2855	non-primary base of which we are a sub vtable.
2856
28572001-07-24  Phil Edwards  <pme@sources.redhat.com>
2858
2859	* semantics.c (finish_this_expr):  Remove unused code.
2860
28612001-07-24  Nathan Sidwell  <nathan@codesourcery.com>
2862
2863	Simplify rtti, now we've only one ABI.
2864	* cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
2865	CPTI_TINFO_VAR_ID.
2866	(tinfo_decl_id, tinfo_var_id): Remove.
2867	(get_typeid_1): Remove.
2868	* rtti.c
2869	(init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
2870	(typeid_ok_p): New function.
2871	(build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
2872	(get_tinfo_decl): Remove old abi documentation.
2873	(tinfo_from_decl): Remove.
2874	(get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
2875	(get_typeid_1): Remove.
2876	(get_base_offset): Remove.
2877	(synthesize_tinfo_var): Absorb get_base_offset.
2878	(create_real_tinfo_var): Don't use tinfo_decl_id.
2879
28802001-07-23  Graham Stott  <grahams@redhat.com>
2881
2882	* cp/class.c (type_requires_array_cookie): Fix use of uninitialised
2883	variable has_two_argument_delete_p.
2884
28852001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
2886
2887	Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
2888	* cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
2889	(CPTI_INDEX_IDENTIFIER): Remove.
2890	(CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
2891	(delta2_identifier): Remove.
2892	(index_identifier): Remove.
2893	(pfn_or_delta2_identifier): Remove.
2894	(flag_vtable_thunks): Remove.
2895	(VTABLE_DELTA2_NAME): Remove.
2896	(VTABLE_INDEX_NAME): Remove.
2897	(FNADDR_FROM_VTABLE_ENTRY): Adjust.
2898	(vfunc_ptr_type_node): Adjust.
2899	(VTABLE_NAME_PREFIX): Adjust.
2900	(build_vfn_ref): Lose first parameter.
2901	(fixup_all_virtual_upcast_offsets): Remove.
2902	* decl.c (initialize_predefined_identifiers): Remove
2903	delta2_identifier, index_identifier, pfn_or_delta2_identifier.
2904	(init_decl_processing): Remove no-vtable-thunk code.
2905	* decl2.c (flag_vtable_thunks): Remove.
2906	(mark_vtable_entries): Remove no-vtable-thunk code.
2907	* error.c (dump_decl): Remove no-vtable-thunk code.
2908	(dump_expr): Adjust ptr to member function code.
2909	* init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
2910	code.
2911	* rtti.c (build_headof): Remove no-vtable-thunk code.
2912	(get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
2913	* search.c (get_base_distance): Remove expand_upcast_fixups case.
2914	(virtual_context) Remove.
2915	(expand_upcast_fixups): Remove.
2916	(fixup_virtual_upcast_offsets): Remove.
2917	(fixup_all_virtual_upcast_offsets): Remove.
2918	* typeck.c (get_member_function_from_ptrfunc): Remove
2919	no-vtable-thunk code.
2920	* call.c (build_over_call): Adjust call to build_vfn_ref.
2921	* class.c (build_vfn_ref): Lose first parameter. Remove
2922	no-vtable-thunk code.
2923	(build_rtti_vtbl_entries): Remove no-vtable-thunk code.
2924	(build_vtable_entry): Remove no-vtable-thunk code.
2925
29262001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
2927
2928	Remove old-abi remnants. Remove comments about old abi
2929	behaviour. Remove references to 'new-abi' in comments.
2930	* cp-tree.h: Adjust comments.
2931	(vbase_offsets_in_vtable_p): Delete.
2932	(vcall_offsets_in_vtable_p): Delete.
2933	(vptrs_present_everywhere_p): Delete.
2934	(all_overridden_vfuns_in_vtables_p): Delete.
2935	(merge_primary_and_secondary_vtables_p): Delete.
2936	(TYPE_CONTAINS_VPTR_P): Adjust.
2937	(VTT_NAME_PREFIX): Remove.
2938	(CTOR_VTBL_NAME_PREFIX): Remove.
2939	(init_vbase_pointers): Remove.
2940	* class.c: Adjust coments.
2941	(build_vbase_pointer_fields): Delete.
2942	(build_vbase_pointer): Remove old-abi code.
2943	(build_secondary_vtable): Likewise.
2944	(modify_all_vtables): Likewise.
2945	(create_vtable_ptr): Likewise.
2946	(layout_class_type): Likewise.
2947	(finish_struct_1): Likewise.
2948	(finish_vtbls): Likewise.
2949	(dfs_finish_vtbls): Delete.
2950	(build_vbase_offset_vtbl_entries): Remove old-abi code.
2951	* cvt.c: Adjust comments.
2952	* decl.c: Adjust comments.
2953	* decl2.c: Adjust comments.
2954	* init.c: Adjust comments.
2955	(construct_virtual_bases): Remove old-abi code.
2956	* lang-specs.h: Remove -fno-new-abi.
2957	* mangle.c: Adjust comments.
2958	* rtti.c: Adjust comments.
2959	(get_base_offset): Remove old-abi-code.
2960	* search.c: Adjust comments.
2961	(dfs_init_vbase_pointers): Remove.
2962	(dfs_vtable_path_unmark): Remove.
2963	(init_vbase_pointers): Remove.
2964	* semantics.c: Adjust comments.
2965	(emit_associated_thunks): Remove old-abi code.
2966	* typeck.c: Adjust comments.
2967
29682001-07-20  Daniel Berlin  <dan@cgsoftware.com>
2969
2970	* Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
2971	params.h.
2972
29732001-07-19  Mark Mitchell  <mark@codesourcery.com>
2974
2975	* class.c (finish_struct_anon): Forbid nested classes.
2976
29772001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
2978
2979	* decl2.c: Don't include dwarfout.h and dwarf2out.h.
2980	* optimize.c: Include debug.h.
2981	(maybe_clone_body): Use debug hook.
2982	* semantics.c: Include debug.h.
2983	(expand_body): Use debug hook.
2984
29852001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
2986
2987	* spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
2988
29892001-07-18  Mark Mitchell  <mark@codesourcery.com>
2990
2991	* class.c (type_requires_array_cookie): New function.
2992	(check_methods): Don't try to figure out whether the type needs a
2993	cookie here.
2994	(check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
2995	* cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
2996	(TYPE_VEC_NEW_USES_COOKIE): Reimplement.
2997	* pt.c (instantiate_class_template): Don't set
2998	TYPE_VEC_DELETE_TAKES_SIZE.
2999	* NEWS: Document ABI changes from GCC 3.0.
3000
30012001-07-18  Xavier Delacour <xavier@fmaudio.net>,
3002	    Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3003
3004	* NEWS (Changes in GCC 3.0): Fix typo.
3005
30062001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3007
3008	* decl2.c (cplus_decl_attributes): Take a pointer to the node to
3009	which attributes are to be attached, and a flags argument.  Update
3010	call to decl_attributes.
3011	(grokfield): Update call to decl_attributes.
3012	* class.c (finish_struct): Update call to cplus_decl_attributes.
3013	* cp-tree.h (cplus_decl_attributes): Update prototype.
3014	* decl.c (start_decl, grokdeclarator, start_function): Update
3015	calls to decl_attributes and cplus_decl_attributes.
3016	* friend.c (do_friend): Update call to cplus_decl_attributes.
3017	* parse.y (parse_bitfield): Update call to cplus_decl_attributes.
3018
30192001-07-12  Mark Mitchell  <mark@codesourcery.com>
3020
3021	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
3022	for `register' variables with an asm-specification.
3023
30242001-07-11  Mark Mitchell  <mark@codesourcery.com>
3025
3026	* semantics.c (finish_asm_stmt): Mark the output operands
3027	to an asm addressable, if necessary.
3028
30292001-07-11  Ben Elliston  <bje@redhat.com>
3030
3031	* Revert this change -- there is a subtle bug.
3032
3033	PR c++/80
3034	* decl.c (finish_enum): New "attributes" argument; pass it to
3035	cplus_decl_attributes.  Use a narrower type if the enum is packed.
3036	* cp-tree.h (finish_enum): Adjust prototype.
3037	* parse.y (enum_head): New non-terminal.
3038	(structsp): Use it. Enums now may be preceded or followed by
3039	optional attributes -- pass their chained tree to finish_enum().
3040	* pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
3041
30422001-07-10  Mark Mitchell  <mark@codesourcery.com>
3043
3044	* pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
3045	variables.
3046
30472001-07-10  Jason Merrill  <jason_merrill@redhat.com>
3048
3049	* semantics.c (cp_expand_stmt): Fix for null
3050	current_function_return_value.
3051
30522001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
3053
3054	* call.c (build_op_delete_call): Initialize fn.
3055	(convert_like_real): Delete conditional.
3056	(joust): Initialize *w and *l.
3057	* class.c: Add prototype for binfo_ctor_vtable.
3058	(get_primary_binfo): Initialize result.
3059	* init.c (build_java_class_ref): Initialize name.
3060
30612001-07-09  Erik Rozendaal  <dlr@acm.org>
3062
3063	* typeck.c (unary_complex_lvalue): Do not duplicate the
3064	argument to modify, pre-, or post-increment when used as an
3065	lvalue and when the argument has side-effects.
3066
30672001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
3068
3069	* decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
3070	(start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES.  Call
3071	cplus_decl_attributes even if attrs is NULL.
3072	* friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
3073
30742001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
3075
3076	* decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
3077	calls to decl_attributes.
3078
30792001-07-06  Ira Ruben   <ira@apple.com>
3080
3081	* cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
3082	be DECL_TEMPLATE_RESULT.
3083
30842001-07-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3085
3086	* cp-tree.h (copy_template_template_parm): Rename to ...
3087	(bind_template_template_parm): ... here.
3088	* tree.c (copy_template_template_parm): Rename to ...
3089	(bind_template_template_parm): ... here.  Remove the case when
3090	NEWARGS is NULL_TREE.
3091	(copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
3092	BOUND_TEMPLATE_TEMPLATE_PARM.
3093	* pt.c (lookup_template_class): Adjust.
3094
30952001-07-05  Jason Merrill  <jason_merrill@redhat.com>
3096
3097	* cvt.c (convert_lvalue): New fn.
3098	* cp-tree.h: Declare it.
3099	* method.c (do_build_assign_ref): Use it.
3100	(do_build_copy_constructor): Convert parm to base types
3101	before calling base constructors.
3102
3103	* typeck.c (check_return_expr): Check DECL_ALIGN instead of
3104	DECL_USER_ALIGN.  Check flag_elide_constructors instead of
3105	optimize.
3106	* semantics.c (cp_expand_stmt): Don't destroy the named return value.
3107
31082001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
3109
3110	* optimize.c (optimize_inline_calls): New function, broken out
3111	of ...
3112	(optimize_function): ... here. Call it. Don't inline if it is
3113	a thunk.
3114	(dump_function): Print name of dump flag causing this dump.
3115	* semantics.c (expand_body): Move thunk inline check to
3116	optimize_function.
3117
31182001-06-29  Joseph S. Myers  <jsm28@cam.ac.uk>
3119
3120	* typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
3121	(comptypes): Use target.comp_type_attributes.
3122
31232001-06-29  Nathan Sidwell  <nathan@codesourcery.com>
3124
3125	* cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
3126
31272001-06-28  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
3128
3129	* error.c (lang_print_error_function): Add a `diagnostic_context *'
3130	parameter. Tweak.
3131
31322001-06-27  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
3133
3134	* decl2.c (import_export_class): Update.
3135
31362001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
3137
3138	* error.c (init_error): Adjust settings.
3139
31402001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
3141
3142	* error.c (init_error): Adjust settings.
3143
31442001-06-19  Richard Sandiford  <rsandifo@redhat.com>
3145
3146	* except.c (initialize_handler_parm): Expect __cxa_begin_catch to
3147	return pointers to data members by reference rather than by value.
3148
31492001-06-18  Jason Merrill  <jason_merrill@redhat.com>
3150
3151	Implement the Named Return Value optimization.
3152	* cp-tree.h (struct cp_language_function): Add x_return_value.
3153	(current_function_return_value): Now a macro.
3154	* decl.c: Don't define it.
3155	(define_label, finish_case_label): Don't clear it.
3156	(init_decl_processing): Don't register it with GC.
3157	* semantics.c (genrtl_finish_function): Don't check it for
3158	no_return_label.  Copy the RTL from the return value to
3159	current_function_return_value and walk, calling...
3160	(nullify_returns_r): ...this new fn.
3161	* typeck.c (check_return_expr): Set current_function_return_value.
3162
31632001-06-15  Jason Merrill  <jason_merrill@redhat.com>
3164
3165	* class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
3166	sharing a ctor vtable with.  Merge code for cases 1 and 2.
3167	(binfo_ctor_vtable): New fn.
3168	(build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
3169
31702001-06-14  Jason Merrill  <jason_merrill@redhat.com>
3171
3172	* class.c (dfs_find_final_overrider): Fix logic.
3173
3174	* class.c (update_vtable_entry_for_fn): Uncomment optimization to use
3175	virtual thunk instead of non-virtual.
3176	(get_matching_virtual): Uncomment.
3177
3178	* pt.c (unify): Don't recurse between the POINTER_TYPE and the
3179	OFFSET_TYPE.  If we're adding cv-quals, the extra ones would be on
3180	PARM, not ARG.
3181
31822001-06-14  Nathan Sidwell  <nathan@codesourcery.com>
3183
3184	* class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
3185	we've not emerged from the hierarchy of RTTI_BINFO on reaching
3186	a non-virtual base.
3187
31882001-06-13  Mark Mitchell  <mark@codesourcery.com>
3189
3190	* NEWS: Update release number.
3191
31922001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
3193
3194	PR c++/3130, c++/3131, c++/3132
3195	* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
3196	* class.c (force_canonical_binfo_r): Move
3197	BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
3198	virtual bases unless they're primary and what they're primary
3199	too has been moved.
3200	(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
3201	with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
3202	BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
3203	derived binfo.
3204	(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
3205	(layout_nonempty_base_or_field): Add most derived type
3206	parameter. Adjust.
3207	(layout_empty_base): Likewise.
3208	(build_base_field): Likewise.
3209	(build_base_fields): Likewise.
3210	(propagate_binfo_offsets): Add most derived type
3211	parameter. Skip non canonical virtual bases too.
3212	(dfs_set_offset_for_unshared_vbases): Don't skip primary
3213	bases. Do skip canonical bases.
3214	(layout_virtual_bases): Adjust.
3215	(layout_class_type): Adjust.
3216	(dfs_get_primary_binfo): Build list of virtual primary base
3217	candidates.
3218	(get_primary_binfo): Check that the shared virtual primary
3219	base candidate was found first.
3220	(accumulate_vtbl_inits): Don't do anything for non-vptr
3221	containing binfos. For case 1 primary virtual bases, keep
3222	checking that we've not emerged from the hierarchy of RTTI_BINFO.
3223
32242001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
3225
3226	PR c++/3089
3227	* class.c (dfs_accumulate_vtbl_inits): Always walk down the
3228	hierarchy looking for primary bases for a ctor
3229	vtable. Recursively call oneself, if we meet our primary via
3230	this route and haven't met it yet via inheritance graph order.
3231
32322001-06-11  Mark Mitchell  <mark@codesourcery.com>
3233
3234	* lang-options.h: Emit documentation for -fno-honor-std, not
3235	-fhonor-std.
3236
32372001-06-10  Alexandre Oliva  <aoliva@redhat.com>
3238
3239	* typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
3240	Don't clobber delta.
3241	(expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
3242
32432001-06-10  Mark Mitchell <mark@codesourcery.com>
3244	    Gabriel Dos Reis  <gdr@codesourcery.com>
3245
3246	* Make-lang.in (cp/call.o): Depend on diagnostic.h
3247	(cp/typeck.o): Depend on diagnostic.h
3248	(cp/typeck2.o): Depend on diagnostic.h
3249	(cp/repo.o): Depend on dignostic.h
3250	* typeck.c: #include diagnostic.h
3251	(convert_for_initialization): Remove extern declaration for
3252	warningcount and errorcount.
3253
3254	* call.c: #include diagnostic.h
3255	(convert_like_real): Remove extern declaration for warnincount and
3256	errorcount.
3257
3258	* repo.c: #include diagnostic.h
3259	* typeck2.c: #include diagnostic.h
3260
32612001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
3262
3263	* decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
3264	in previous change.
3265
32662001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
3267
3268	PR c++/2929
3269	* friend.c (do_friend): Use push_decl_namespace for classes at
3270	namespace scope.
3271
32722001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
3273	    Jason Merrill <jason_merrill@redhat.com>
3274
3275	PR c++/3061
3276	* class.c (build_secondary_vtable): Use assert, rather than an error
3277	message.
3278	(dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
3279	(dfs_accumulate_vtbl_inits): A lost primary virtual base may
3280	be between ORIG_BINFO and RTTI_BINFO, but neither of them.
3281	Don't set BINFO_VTABLE for a primary virtual base.
3282
32832001-06-07  Mark Mitchell  <mark@codesourcery.com>
3284
3285	* decl.c (duplicate_decls): Update source position information
3286	when a template function is defined.
3287
32882001-06-07  Phil Edwards  <pme@sources.redhat.com>
3289
3290	* lang-specs.h:  Move -D_GNU_SOURCE to config/linux.h.
3291
32922001-06-07  Nathan Sidwell  <nathan@codesourcery.com>
3293
3294	PR c++/2914
3295	* decl.c (pushtag): Don't push into a complete type's scope.
3296
32972001-06-06  Jason Merrill  <jason_merrill@redhat.com>
3298
3299	* cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
3300	(struct lang_decl_flags): Lose generate_with_vtable_p.
3301	(BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
3302	* class.c (copy_virtuals): Adjust.
3303	* decl2.c (mark_vtable_entries): Adjust.
3304	* method.c (make_thunk, build_vtable_entry): Adjust.
3305	* class.c (update_vtable_entry_for_fn): Only look as far as the
3306	first defining class.
3307	(build_vtbl_initializer): Put nothing in the slot for a function only
3308	defined in a lost primary virtual base.
3309	(add_vcall_offset_vtbl_entries_1): Use the same code for
3310	the lost primary case and the normal case.
3311	(dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
3312	(get_vfield_offset, get_derived_offset): Lose.
3313	(dfs_find_final_overrider): Use look_for_overrides_here.
3314	(get_matching_virtual): New fn.
3315	* semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
3316	not BV_VCALL_INDEX.
3317	* search.c (look_for_overrides_here): Split out from...
3318	(look_for_overrides_r): Here.
3319
3320	* class.c (find_final_overrider): Return error_mark_node on error.
3321
3322	* decl2.c (key_method): #if 0 accidental change.
3323
33242001-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3325
3326	* call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
3327	(build_over_call): Likewise.
3328	* decl.c (grokparms): Likewise.
3329	* pt.c (tsubst_decl): Likewise.
3330	* typeck.c (convert_arguments): Likewise.
3331
33322001-06-05  Mark Mitchell  <mark@codesourcery.com>
3333
3334	* semantics.c (begin_class_definition): Robustify.
3335
3336	* pt.c (instantiate_decl): Tell the repository code about the
3337	clones, not the cloned functions.
3338	* repo.c (repo_template_used): Explicitly instantiate the cloned
3339	function, not the clones.
3340
33412001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
3342
3343	* call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
3344	ICS_BAD_FLAG on created conversion.
3345	(compare_ics): Break out rank.
3346
33472001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
3348
3349	* decl.c (xref_tag): Remove extraneous %s on dependent name
3350	lookup warning.
3351
33522001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
3353
3354	* class.c (layout_vtable_decl): Fix off by one error on
3355	build_index_type.
3356	(build_vtt): Likewise.
3357	(build_ctor_vtbl_group): Likewise.
3358
33592001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
3360
3361	* class.c (maybe_indent_hierarchy): New function.
3362	(dump_class_hierarchy_r): Add flags. Dump extra binfo
3363	information, if enabled. Use maybe_indent_hierarchy. Adjust
3364	output format.
3365	(dump_class_hierarchy): Adjust prototype. Adjust output format.
3366	(dump_array, dump_vtable, dump_vtt): New functions.
3367	(finish_struct_1): Adjust hierarchy dumping.
3368	(initialize_vtable): Call dump_vtable.
3369	(build_vtt): Call dump_vtt.
3370	(build_ctor_vtbl_group): Call dump_vtable.
3371	* decl2.c (flag_dump_class_layout): Remove.
3372	(cxx_decode_option): Remove dump translation unit
3373	and dump class hierarchy check. Call dump_switch_p.
3374	(finish_file): Adjust dumping.
3375	(dump.c): Only dump base classes if not TDF_SLIM.
3376	Only dump namespace members if not TDF_SLIM.
3377	* optimize.c (dump_function): New function.
3378	(optimize_function): Call dump_function.
3379	* semantics.c (expand_body): Use dump_enabled_p.
3380
33812001-06-01  Nathan Sidwell  <nathan@codesourcery.com>
3382
3383	PR g++/2936
3384	Part missed from first commit
3385	* decl2.c (finish_anon_union): Copy context.
3386
33872001-05-30  Nathan Sidwell  <nathan@codesourcery.com>
3388
3389	PR g++/2936
3390	* optimize.c (remap_decl): Remap anonymous aggregate members too.
3391
33922001-05-26  Nathan Sidwell  <nathan@codesourcery.com>
3393
3394	PR g++/2823
3395	* semantics.c (expand_body): Don't optimize thunks.
3396
33972001-05-25  Sam TH  <sam@uchicago.edu>
3398
3399	* cp-tree.h lex.h: Fix header include guards.
3400
34012001-05-25  Mark Mitchell <mark@codesourcery.com>
3402
3403	* decl.c (init_decl_processing): Tweak.
3404
34052001-05-24  Mark Mitchell  <mark@codesourcery.com>
3406
3407	* decl.c (duplicate_decls): Tidy.
3408	(init_decl_processing): Always set flag_no_builtin.
3409
34102001-05-24  Nathan Sidwell  <nathan@codesourcery.com>
3411
3412	PR c++/2184
3413	* decl2.c (do_local_using_decl): Push the decls, even in a
3414	template.
3415
34162001-05-22  Mark Mitchell  <mark@codesourcery.com>
3417
3418	* optimize.c (initialize_inlined_parameters): Don't set
3419	TREE_READONLY for a VAR_DECL taking the place of an inlined
3420	PARM_DECL.
3421
34222001-05-22  Jason Merrill  <jason_merrill@redhat.com>
3423
3424	* class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
3425	* tree.c (cp_valid_lang_attribute): Warn about use of com_interface
3426	attribute.
3427
34282001-05-22  Joseph S. Myers  <jsm28@cam.ac.uk>
3429
3430	* parse.y: Refer to compound literals as such, not as
3431	constructor-expressions.
3432
34332001-05-21  Mark Mitchell  <mark@codesourcery.com>
3434
3435	* call.c (build_op_delete_call): Ignore exception-specifications
3436	when looking for matching delete operators.
3437	* init.c (build_new_1): Compute whether or not the allocation
3438	function used is a placement allocation function or not, and
3439	communicate this information to build_op_delete_call.
3440
34412001-05-21  Jason Merrill  <jason_merrill@redhat.com>
3442
3443	* class.c (build_vtable_entry_ref): Lose vtbl parm.  Fix for new abi.
3444	(build_vtbl_ref): Adjust.
3445	(dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
3446	* decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
3447	Re-add vtable-gc.
3448	(unsupported_options): Correspondingly.
3449
3450	* decl2.c (maybe_make_one_only): Check flag_weak, not
3451	supports_one_only().
3452
3453	* cp-tree.def (START_CATCH_STMT): Lose.
3454	* dump.c (cp_dump_tree): Don't dump it.  Do dump HANDLER_PARMS.
3455	* tree.c (cp_statement_code_p): Don't case it.
3456	* semantics.c (cp_expand_stmt): Likewise.
3457	* cp-tree.h (START_CATCH_TYPE): Lose.
3458	(HANDLER_TYPE): New.
3459	* except.c (expand_start_catch_block): Don't start any blocks.
3460	Return the type.
3461	(expand_end_catch_block): Don't end any blocks.
3462	* parse.y (handler): Don't pass anything from finish_handler_parms
3463	to finish_handler.
3464	* pt.c (tsubst_expr): Likewise.
3465	* semantics.c (begin_handler): Call note_level_for_catch here.
3466	(finish_handler_parms): Don't return anything.
3467	(genrtl_catch_block, begin_catch_block): Lose.
3468	(genrtl_handler): Call expand_start_catch here.
3469
34702001-05-18  Jason Merrill  <jason_merrill@redhat.com>
3471
3472	* class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
3473	(get_vtable_decl, build_vtt): Not here.
3474
34752001-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3476
3477	PR c++/2781
3478	* optimize.c (update_cloned_parm): Copy addressability and other
3479	flags.
3480
34812001-05-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3482
3483	* pt.c (determine_specialization): Ignore artificial functions.
3484
34852001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3486
3487	* cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
3488	(C_RID_CODE): Remove.
3489	* lex.c (cxx_init_options): Call set_identifier_size.  Update.
3490	(init_parse): Don't do it here.
3491
34922001-05-18  Diego Novillo  <dnovillo@redhat.com>
3493
3494	* decl2.c (finish_objects): Use the original SYMBOL_REF from the
3495	function declaration to avoid stripping the symbol's attributes.
3496
34972001-05-18  Nathan Sidwell  <nathan@codesourcery.com>
3498
3499	* decl.c (pushdecl): Adjust error string.
3500	(xref_tag): Adjust friend class injection warning. Remove the
3501	inherited name from the class shadowed scope.
3502
35032001-05-17  Mark Mitchell  <mark@codesourcery.com>
3504
3505	* except.c (cp_protect_cleanup_actions): New function.
3506	(init_exception_processing): Don't set protect_cleanup_actions
3507	here.  Do set lang_protect_cleanup_actions.
3508
35092001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
3510
3511	* spew.c (read_token): Call yyerror on all unexpected tokens.
3512
35132001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
3514
3515	* init.c (member_init_ok_or_else): Take a tree rather than
3516	string for name.
3517	(expand_member_init): Adjust.
3518
35192001-05-14  Nick Clifton  <nickc@cambridge.redhat.com>
3520
3521	* decl.c (duplicate_decls): Suppress warning about duplicate
3522	decls if the first decl is a friend.
3523
35242001-05-12  Zack Weinberg  <zackw@stanford.edu>
3525
3526	* except.c (choose_personality_routine): Export.  Add
3527	explanatory comment.  Take an enum languages, not a boolean.
3528	(initialize_handler_parm): Adjust to match.
3529	* cp-tree.h: Prototype choose_personality_routine.
3530	* lex.c (handle_pragma_java_exceptions): New function.
3531	(init_cp_pragma): Register #pragma GCC java_exceptions.
3532
35332001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
3534
3535	* method.c (build_mangled_C99_name): Remove unused prototype.
3536
35372001-05-12  Alexandre Oliva  <aoliva@redhat.com>
3538
3539	* cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
3540	* typeck.c (get_member_function_from_ptrfunc,
3541	build_ptrmemfunc, expand_ptrmemfunc_cst): Take
3542	TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
3543
3544	Reverted Geoff Keating's 2001-05-03's patch.
3545
35462001-05-11  Ira Ruben	<ira@apple.com>
3547
3548	* cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
3549
35502001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3551
3552	* cp-tree.h (finish_label_expr, lookup_label): Delete.
3553	* parse.y: Update for '&&'; don't issue warning here.
3554	* semantics.c (finish_label_expr): Delete.
3555
35562001-05-07  Mark Mitchell  <mark@codesourcery.com>
3557
3558	* splay-tree.h (splay_tree_max): New function.
3559	(splay_tree_min): Likewise.
3560
35612001-05-03  Geoffrey Keating  <geoffk@redhat.com>
3562
3563	* cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
3564	(pfn_vflag_identifier): Define.
3565	Update comment about layout of pointer functions.
3566	(build_ptrmemfunc1): Update prototype.
3567	(expand_ptrmemfunc_cst): Update prototype.
3568	* decl.c (initialize_predefined_identifiers): Initialize
3569	pfn_vflag_identifier.
3570	(build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
3571	an extra field to the type.
3572	* expr.c (cplus_expand_constant): Pass 'flag' between
3573	expand_ptrmemfunc_cst and build_ptrmemfunc1.
3574	* typeck.c (get_member_function_from_ptrfunc): When
3575	FUNCTION_BOUNDARY < 16, look at additional field to determine
3576	if a pointer-to-member is a real pointer or a vtable offset.
3577	(build_ptrmemfunc1): Add new parameter to contain extra field.
3578	(build_ptrmemfunc): Pass the extra field around.
3579	(expand_ptrmemfunc_cst): Add new parameter to return extra field.
3580	(pfn_from_ptrmemfunc): Ignore the extra field.
3581
35822001-05-03  Mark Mitchell  <mark@codesourcery.com>
3583
3584	* cp-tree.h (flag_inline_trees): Update documentation.
3585	* decl.c (init_decl_processing): Adjust handling of
3586	flag_inline_functions and flag_inline_trees to support -O3.
3587	(grokfndecl): Set DECL_INLINE on all functions if that's what
3588	the user requested.
3589	(save_function_data): Clear DECL_INLINE in
3590	current_function_cannot_inline is non-NULL.
3591	* decl2.c (flag_inline_trees): Update documentation.
3592
35932001-05-03  Nathan Sidwell  <nathan@codesourcery.com>
3594
3595	* dump.c (cp_dump_tree, USING_STMT case): New case.
3596	* tree.c (cp_statement_code_p): Add USING_STMT.
3597	* decl2.c (do_using_directive): Add the using directive statement.
3598
3599	* tree.c (walk_tree): Reformat an if block.
3600
36012001-05-02  Mark Mitchell  <mark@codesourcery.com>
3602
3603	* decl.c (compute_array_index_type): Don't try to do anything with
3604	the indices when processing a template.
3605
36062001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3607
3608	* call.c: NULL_PTR -> NULL.
3609	* class.c: Likewise.
3610	* cvt.c: Likewise.
3611	* decl.c: Likewise.
3612	* decl2.c: Likewise.
3613	* except.c: Likewise.
3614	* init.c: Likewise.
3615	* rtti.c: Likewise.
3616	* search.c: Likewise.
3617	* tree.c: Likewise.
3618	* typeck.c: Likewise.
3619	* typeck2.c: Likewise.
3620
36212001-05-02  Mark Mitchell  <mark@codesourcery.com>
3622
3623	* decl2.c (do_using_directive): Revert previous patch.
3624
36252001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3626
3627	* cp-tree.def (USING_STMT): New statement node.
3628	* cp-tree.h (USING_STMT_NAMESPACE): New macro.
3629	* decl2.c (do_using_directive): Add USING_STMT to statement
3630	tree. Don't emit errors when processing template decl.
3631	* pt.c (tsubst_expr, USING_STMT case): New case.
3632	* semantics.c (cp_expand_stmt, USING_STMT case): New case.
3633
36342001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3635
3636	* call.c (build_new_op): Convert args from reference here.
3637	(build_conditional_expr): Don't convert here.
3638
36392001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3640
3641	* spew.c (last_token_id): New static variable.
3642	(read_token): Set it here.
3643	(yyerror): Use it here.
3644
36452001-04-30  Richard Henderson  <rth@redhat.com>
3646
3647	* cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
3648	* decl.c: Likewise.
3649
36502001-04-30  Mark Mitchell  <mark@codesourcery.com>
3651
3652	* gxxint.texi: Remove.
3653	* Make-lang.in: Remove all traces of gxxint.texi.
3654
3655Mon Apr 30 16:14:10 2001  Mark P Mitchell  <mark@codesourcery.com>
3656
3657	* decl2.c (start_static_initialization_or_destruction): Correct
3658	logic to handle the -fno-use-cxa-atexit case.
3659
36602001-04-30  Mark Mitchell  <mark@codesourcery.com>
3661
3662	* optimize.c (update_cloned_parm): New function.
3663	(maybe_clone_body): Use it.  Update the `this' parameter too.
3664
36652001-04-29  Joseph S. Myers  <jsm28@cam.ac.uk>
3666
3667	* decl2.c (unsupported_options): Add new-abi.
3668	* lang-options.h: Remove no longer supported options.
3669
36702001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3671
3672	* except.c (can_convert_eh): Don't check template parms,
3673	typename types etc.
3674
36752001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3676
3677	* optimize.c (maybe_clone_body): Copy parameter names and locations.
3678
36792001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3680
3681	* cp-tree.h (adjust_clone_args): Prototype new function.
3682	* class.c (adjust_clone_args): New function.
3683	* decl.c (start_function): Call it for in charge ctors.
3684
36852001-04-26  Mark Mitchell  <mark@codesourcery.com>
3686
3687	* method.c (use_thunk): Make sure that thunks really are emitted
3688	when requested.
3689
36902001-04-26  Nathan Sidwell <nathan@codesourcery.com>
3691
3692	* mangle.c (write_chars): New macro.
3693	(hwint_to_ascii): New function
3694	(write_number): Use it.
3695	(write_integer_cst): Deal with really big numbers.
3696
36972001-04-25  Mark Mitchell  <mark@codesourcery.com>
3698
3699	* optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
3700	the clone.
3701
37022001-04-25  Nathan Sidwell  <nathan@codesourcery.com>
3703
3704	* decl.c (grokdeclarator): Set context of namespace scope
3705	TYPE_DECLS.
3706
37072001-04-24  Zack Weinberg  <zackw@stanford.edu>
3708
3709	* cp/optimize.c: Include hashtab.h.
3710	(struct inline_data): Add tree_pruner.
3711	(expand_call_inline, expand_calls_inline): Use it when calling
3712	walk_tree.
3713	(optimize_function): Initialize and free tree_pruner.
3714
37152001-04-24  Nathan Sidwell <nathan@codesourcery.com>
3716
3717	Lazy __FUNCTION__ generation.
3718	* cp-tree.def (FUNCTION_NAME): Remove.
3719	* cp-tree.h (function_name_declared_p): Remove.
3720	(cp_fname_init): Prototype.
3721	* decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
3722	don't call declare_function_name. Call start_fname_decls.
3723	(cp_make_fname_decl): Adjust parameters. Generate the name. Don't
3724	clobber the line number.
3725	(cp_fname_init): New function.
3726	(start_function): Call start_fname_decls.
3727	(finish_function): Call finish_fname_decls.
3728	* lex.c (reswords): Add slots for __FUNCTION__ et al.
3729	(rid_to_yy): Add mappings for __FUNCTION__ et al.
3730	* optimize.c (maybe_clone_body): Remove function_name_declared_p.
3731	* parse.y (VAR_FUNC_NAME): New token.
3732	(primary): Add VAR_FUNC_NAME.
3733	* pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
3734	generation.
3735	(tsubst, FUNCTION_NAME case): Remove.
3736	(tsubst_copy, FUNCTION_NAME case): Remove.
3737	(tsubst_expr, DECL_STMT case): Be careful with a
3738	DECL_PRETTY_FUNCTION_P.
3739	(instantiate_decl): Remove function_name_declared_p.
3740	* semantics.c (begin_compound_statement): Don't call
3741	declare_function_name here.
3742	(setup_vtbl_ptr). Don't save & restore function_name_declared_p.
3743	(finish_translation_unit): Call finish_fname_decls.
3744	(expand_body): Remove function_name_declared_p.
3745	* typeck2.c (digest_init): Allow any ERROR_MARK.
3746
37472001-04-24  Nathan Sidwell  <nathan@codesourcery.com>
3748
3749	* pt.c (tsubst_decl): Use VOID_TYPE_P.
3750	* semantics.c: Fix some typos.
3751
37522001-04-23  Phil Edwards  <pme@sources.redhat.com>
3753
3754	* cp/decl2.c (flag_honor_std):  Always initialize to 1.
3755
37562001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3757
3758	* xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
3759
37602001-04-23  Jason Merrill  <jason_merrill@redhat.com>
3761
3762	* except.c (build_throw): Wrap the initialization of the exception
3763	object in a MUST_NOT_THROW_EXPR.
3764	(do_free_exception): #if 0.
3765
37662001-04-20  Mark Mitchell  <mark@codesourcery.com>
3767
3768	* cp-tree.h (finish_enum): Change prototype.
3769	* decl.c (finish_enum): Reorganize.
3770	* parse.y (structsp): Adjust calls to finish_enum.
3771
37722001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
3773
3774	* tree.c (cp_tree_equal): Adjust final switch formatting. Add
3775	't' case.
3776
37772001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
3778
3779	* class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
3780	(layout_empty_base): Return at end flag.
3781	(build_base_field): Likewise.
3782	(build_base_fields): Likewise.
3783	(layout_virtual_bases): Don't add 1 to eoc value.
3784	(end_of_class): Use full size for empty bases.
3785	(layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
3786	empty bases. Don't add 1 to eoc value. Only add trailing padding
3787	if we're an empty class with no empty bases.
3788	(dump_class_hierarchy): Dump size and alignment.
3789
37902001-04-20  Jakub Jelinek  <jakub@redhat.com>
3791
3792	* call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
3793	ICS_BAD_FLAG.
3794
37952001-04-20  Jakub Jelinek  <jakub@redhat.com>
3796
3797	* search.c (lookup_field_r): If looking for type and non-TYPE_DECL
3798	is found, look first if name does not match the structure name.
3799
38002001-04-19  Mark Mitchell  <mark@codesourcery.com>
3801
3802	* cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
3803	set.
3804	(SET_DECL_LANGUAGE): New macro.
3805	* decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
3806	(pushdecl): Likewise.
3807	(build_library_fn_1): Likewise.
3808	(build_cp_library_fn): Likewise.
3809	(grokfndecl): Likewise.
3810	(grokvardecl): Mark `extern "C"' variables as having C linkage.
3811	* decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
3812	* lex.c (retrofit_lang_decl): Likewise.
3813	* mangle.c (mangle_decl_string): Don't mangle the names of
3814	variables declared with C language linkage.
3815	* semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
3816
38172001-04-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3818
3819	* semantics.c (simplify_aggr_init_exprs_r): Don't restore
3820	flag_access_control from uninitialized storage.
3821
38222001-04-15  Mark Mitchell  <mark@codesourcery.com>
3823
3824	* cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
3825	* mangle.c (write_pointer_to_member_type): Fix mangling of
3826	pointers to cv-qualified member function types.
3827
3828	* init.c (build_delete): Create a SAVE_EXPR for the address if
3829	we're going to use it more than once.
3830
38312001-04-13  Mark Mitchell  <mark@codesourcery.com>
3832
3833	* cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
3834	(expand_ptremfunc_cst): Change prototype.
3835	(delta2_from_ptrmemfunc): Remove.
3836	* expr.c (cplus_expand_constant): Adjust call to
3837	expand_ptrmemfunc_cst.
3838	* typeck.c (build_ptrmemfunc1): Simplify.
3839	(build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
3840	results in a constant.
3841	(expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
3842	(delta2_from_ptrmemfunc): Remove.
3843	(pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
3844
38452001-04-12  Jason Merrill  <jason_merrill@redhat.com>
3846
3847	* cp-tree.h (decl_namespace_list): New macro.
3848	(struct saved_scope): Add decl_ns_list.
3849	* decl.c (mark_saved_scope): Mark it.
3850	* decl2.c: Lose static decl_namespace_list.
3851	(init_decl2): Don't save it.
3852
38532001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3854
3855	* cp-tree.h (warn_return_type, yylex): Delete redundant
3856	declarations.
3857
3858	* decl.c (current_class_depth, global_namespace): Likewise.
3859
3860	* decl2.c (current_class_depth, flag_gnu_xref): Likewise
3861
3862	* repo.c (flag_use_repository): Likewise.
3863
38642001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3865
3866	* cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
3867	set_block, pushdecl, getdecls, gettags, init_decl_processing,
3868	maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
3869	lvalue_or_else, print_lang_statistics, comp_target_types,
3870	unsigned_type, signed_type, signed_or_unsigned_type,
3871	build_function_call, mark_addressable, incomplete_type_error):
3872	Delete redundant declarations.
3873
38742001-04-11  Jason Merrill  <jason_merrill@redhat.com>
3875
3876	* cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
3877	(TYPE_ANONYMOUS_P): New macro.
3878	(TAGGED_TYPE_P): New macro.
3879	* decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
3880	(grokfndecl, grokvardecl, grokdeclarator): Likewise.
3881	* tree.c (no_linkage_helper): Likewise.
3882	* semantics.c (begin_class_definition): Likewise.
3883	* pt.c (convert_template_argument): Likewise.
3884	* lex.c (check_for_missing_semicolon): Likewise.
3885
38862001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
3887
3888	* class.c (dfs_unshared_virtual_bases): New function.
3889	(mark_primary_bases): Call it.
3890	(check_bases): Ignore virtual bases when determining
3891	nearly-emptiness.
3892
38932001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
3894
3895	* method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
3896
38972001-04-11  Mark Mitchell  <mark@codesourcery.com>
3898
3899	* optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
3900	cloned function to the clone.
3901
39022001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3903
3904	* Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
3905
3906	* semantics.c: Include expr.h.
3907
39082001-04-11  Nathan Sidwell  <nathan@codesourcery.com>
3909
3910	* method.c (implicitly_declare_fn): Commonize code for copy ctor
3911	and assignment op. Set TREE_USED for parameter.
3912
39132001-04-10  Mark Mitchell  <mark@codesourcery.com>
3914
3915	* class.c (find_final_overrider_data): Add `candidates'.
3916	(dfs_find_final_overrider): Don't issue error messages
3917	prematurely.
3918	(find_final_overrider): Issue error messages here.
3919	(build_base_field): Don't warn about amgibuous direct bases here.
3920	(warn_about_ambiguous_direct_bases): New function.
3921	(layout_class_type): Use it.
3922
39232001-04-10  Richard Henderson  <rth@redhat.com>
3924
3925	* typeck.c (build_array_ref): Push the array reference inside
3926	COMPOUND_EXPR and COND_EXPR.
3927
39282001-04-05  Mark Mitchell  <mark@codesourcery.com>
3929
3930	* cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
3931	* decl.c (duplicate_decls): Adjust accordingly.
3932	(maybe_commonize_var): Likewise.
3933	(grokfndecl): Likewise.
3934	(start_function): Likewise.
3935	(start_method): Likewise.
3936	* decl2.c (key_method): Likewise.
3937	(import_export_decl): Likewise.
3938	* method.c (implicitly_declare_fn): Likewise.
3939	* optimize.c (maybe_clone_body): Likewise.
3940
39412001-04-05  Benjamin Kosnik  <bkoz@redhat.com>
3942
3943	* lang-specs.h: Add __DEPRECATED.
3944
3945Thu Apr  5 16:54:29 2001  J"orn Rennecke <amylaar@redhat.com>
3946
3947	* search.c (get_dynamic_cast_base_type): When building a new
3948	constant, set its type to ssizetype.
3949
39502001-04-04  Jakub Jelinek  <jakub@redhat.com>
3951
3952	* optimize.c (expand_call_inline): Only add newly inlined statements
3953	into inlined_stmts.
3954
39552001-04-03  Mark Mitchell  <mark@codesourcery.com>
3956
3957	* cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
3958	(OPERATOR_FORMAT): Likewise.
3959	(OPERATOR_TYPENAME_FORMAT): Likewise.
3960	* operators.def: Remove old name-mangling information.
3961	* decl.c (grok_op_properties): Adjust accordingly.
3962	* lex.c (init_operators): Likewise.
3963	* rtti.c (get_tinfo_decl): Issue error messages about types that
3964	have variable size.
3965
39662001-04-03  Mark Mitchell  <mark@codesourcery.com>
3967
3968	* decl2.c (import_export_decl): Don't call import_export_class
3969	when processing an inline member function.
3970	* semantics.c (expand_body): Call import_export_decl before
3971	emitting inline functions.
3972
39732001-03-28  Richard Henderson  <rth@redhat.com>
3974
3975	IA-64 ABI Exception Handling:
3976	* cp-tree.def (EH_SPEC_BLOCK): New.
3977	(MUST_NOT_THROW_EXPR): New.
3978	* cp-tree.h: Update changed function declarations.
3979	(CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
3980	(CPTI_CALL_UNEXPECTED): New.
3981	(struct cp_language_function): Rename x_eh_spec_try_block
3982	to x_eh_spec_block.
3983	(EH_SPEC_STMTS, EH_SPEC_RAISES): New.
3984	* decl.c (current_binding_level): If no current function
3985	bindings, revert to scope_chain.
3986	(initialize_predefined_identifiers): Remove __cp_push_exception.
3987	(store_parm_decls): Use begin_eh_spec_block.
3988	(finish_function): Use finish_eh_spec_block.
3989	(mark_lang_function): Update for name changes.
3990	* decl2.c (finish_file): No mark_all_runtime_matches.
3991	* dump.c (cp_dump_tree): Handle new tree codes.
3992	* error.c (dump_expr) [BIND_EXPR]: Fix typo.
3993	* except.c (catch_language_init, catch_language): Remove.
3994	(init_exception_processing): Don't set language code.
3995	Initialize call_unexpected_node, protect_cleanup_actions,
3996	eh_personality_libfunc, lang_eh_runtime_type.
3997	(call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
3998	(get_eh_type, get_eh_caught, get_eh_handlers): Remove.
3999	(prepare_eh_type): Split out type canonicalizations ...
4000	(build_eh_type_type): ... from here.
4001	(build_eh_type_type_ref): Remove.
4002	(mark_all_runtime_matches): Remove.
4003	(build_exc_ptr): New.
4004	(do_begin_catch, do_end_catch): New.
4005	(do_pop_exception): Remove.
4006	(build_terminate_handler): Remove.
4007	(choose_personality_routine): Split out language choice from ...
4008	(initialize_handler_parm): ... here.
4009	Use MUST_NOT_THROW_EXPR.
4010	(expand_start_catch_block): Use do_begin_catch.  Simplify Java
4011	exception object handling.
4012	(expand_start_eh_spec, expand_end_eh_spec): Remove.
4013	(expand_exception_blocks, alloc_eh_object): Remove.
4014	(begin_eh_spec_block, finish_eh_spec_block): New.
4015	(do_allocate_exception, do_free_exception): New.
4016	(expand_throw): Merge into ...
4017	(build_throw): ... here.  Update for abi.
4018	* expr.c (cplus_expand_expr): No expand_internal_throw.
4019	Handle MUST_NOT_THROW_EXPR.
4020	* pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
4021	* semantics.c (*) Update for except.h name changes.
4022	(genrtl_try_block): No protect_with_terminate.
4023	(genrtl_eh_spec_block): New.
4024	(genrtl_handler): Don't emit the goto here.
4025	(cp_expand_stmt): Handle EH_SPEC_BLOCK.
4026	(genrtl_finish_function): Don't expand_exception_blocks.
4027	* tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
4028
40292001-03-28  Richard Henderson  <rth@redhat.com>
4030
4031	* decl.c (struct named_label_list): Rename eh_region to
4032	in_try_scope, add in_catch_scope.
4033	(struct binding_level): Rename eh_region to is_try_scope,
4034	add is_catch_scope.
4035	(note_level_for_try): Rename from note_level_for_eh.
4036	(note_level_for_catch): New.
4037	(poplevel): Copy both is_try_scope and is_catch_scope to
4038	the named_label_list struct.
4039	(check_previous_goto_1): Don't check for catch block via
4040	DECL_ARTIFICIAL; use in_try_scope instead.
4041	(check_goto): Likewise.
4042	* cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
4043	* except.c (expand_start_catch_block): Call note_level_for_catch.
4044	* semantics.c (begin_compound_stmt): Update for note_level_for_try.
4045
40462001-03-27  Richard Henderson  <rth@redhat.com>
4047
4048	* except.c: Use USING_SJLJ_EXCEPTIONS instead of
4049	exceptions_via_longjmp.
4050
40512001-03-27  Phil Edwards  <pme@sources.redhat.com>
4052
4053	* pt.c (check_default_tmpl_args):  Make error messages clearer.
4054
40552001-03-26  Phil Edwards  <pme@sources.redhat.com>
4056
4057	* error.c:  Also undefine 'A' macro used for cp_printers definition.
4058
40592001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4060
4061	* Make-lang.in: Depend on $(SYSTEM_H), not system.h.
4062
40632001-03-26  Mike Yang <yang@research.att.com>
4064	    Mark Mitchell  <mark@codesourcery.com>
4065
4066	* dump.c (dump_access): New function.
4067	(cp_dump_tree): Use it.  Dump basetype information for class
4068	types.
4069
40702001-03-26  Mark Mitchell  <mark@codesourcery.com>
4071
4072	* Makefile.in (optimize.o): Depend on params.h.
4073	(duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
4074	(init_decl_processing): Set flag_no_inline when doing
4075	inlining-on-trees.
4076	* optimize.c: Include params.h.
4077	(struct inline_data): Improve documentation of FNS.  Add
4078	FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
4079	(INSNS_PER_STMT): New macro.
4080	(remap_block): Use CLONING_P.
4081	(inlinable_function_p): Don't inline big functions.
4082	(expand_call_inline): Keep track of how much inlining we've done.
4083	(optimize_function): Set FIRST_INLINED_FN.
4084	(maybe_clone_body): Set CLONING_P.
4085	* semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
4086	tree nodes.
4087	(genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
4088	rest_of_compilation.  Clear DECL_RTL for local variables
4089	afterwards.
4090	(clear_decl_rtl): New function.
4091
40922001-03-26  Nathan Sidwell  <nathan@codesourcery.com>
4093
4094	Implement DR 209
4095	* cp-tree.h (skip_type_access_control,
4096	reset_type_access_control): Prototype.
4097	* decl.c (grokdeclarator): Access of friends is not checked.
4098	* parse.y (component_decl_list): Reset type access control.
4099	* semantics.c (decl_type_access_control): Clear
4100	current_type_lookups.
4101	(save_type_access_control): Don't save if not deferring.
4102	(skip_type_access_control, reset_type_access_control): New
4103	functions.
4104	(begin_class_definition): Do type access control for basetypes.
4105	Start deferred access control.
4106	(finish_class_definition): Resume immediate access control if
4107	this is a local class.
4108
41092001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4110
4111	* class.c (add_method): Use memcpy/memmove, not bcopy.
4112
4113	* decl.c (duplicate_decls): Likewise.
4114
41152001-03-23  Jakub Jelinek  <jakub@redhat.com>
4116
4117	* mangle.c (write_discriminator): Use `_0' for discriminator 1,
4118	not `_'.
4119
41202001-03-23  Jakub Jelinek  <jakub@redhat.com>
4121
4122	* decl.c (local_names): Define.
4123	(push_local_name): New.
4124	(grok_reference_init): Return init if initializing static reference
4125	variable with non-constant instead of emitting it.
4126	Move expand_static_init call to cp_finish_decl.
4127	(layout_var_decl): Call push_local_name.
4128	(maybe_commonize_var): Allow inlining functions even if they have
4129	static local variables, use comdat_linkage for them if flag_weak.
4130	(check_initializer): Call obscure_complex_init if
4131	grok_reference_init returned non-zero.
4132	(save_function_data): Clear x_local_names.
4133	(pop_cp_function_context): Free x_local_names.
4134	(mark_inlined_fns): Remove.
4135	(mark_lang_function): Mark x_local_names.
4136	(lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
4137	Mark inlined_fns as tree, remove call to mark_inlined_fns.
4138	* class.c (alter_access): Ensure DECL_ACCESS is never set if
4139	DECL_DISCRIMINATOR_P.
4140	* cp-tree.h (cp_language_function): Add x_local_names.
4141	(lang_decl_flags): Add discriminator into u2.
4142	(lang_decl_inlined_fns): Remove.
4143	(lang_decl): inlined_fns is now a TREE_VEC.
4144	(DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
4145	* optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
4146	TREE_VEC, not a custom structure.
4147	(optimize_function): Likewise.
4148	* mangle.c (discriminator_for_local_entity): Discriminate among
4149	VAR_DECL local entities.
4150	* search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
4151	is not valid.
4152
41532001-03-22  Bryce McKinlay  <bryce@albatross.co.nz>
4154
4155	Add support for Java interface method calls.
4156	* cp-tree.h (struct lang_type): Add java_interface flag.
4157	(TYPE_JAVA_INTERFACE): New macro.
4158	* tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
4159	by setting TYPE_JAVA_INTERFACE.
4160	* call.c (java_iface_lookup_fn): New static.
4161	(build_over_call): If calling a method declared in a
4162	TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
4163	expression which resolves the function address.
4164	(build_java_interface_fn_ref): New function.
4165
41662001-03-22  Richard Henderson  <rth@redhat.com>
4167
4168	* Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
4169	* except.c: Don't include it.
4170
41712001-03-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4172	    based on an idea from Joe Buck <jbuck@synopsys.com>
4173
4174	* parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
4175	New nonterminals.
4176	(data_def, component_decl): Add reductions to bad_decl.
4177
41782001-03-22  Jakub Jelinek  <jakub@redhat.com>
4179
4180	* method.c (do_build_assign_ref): Don't use build_modify_expr for
4181	anonymous aggregates, since they don't have assignment operator
4182	method.
4183	* decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
4184	assignment operators for anonymous structure fields.
4185
41862001-03-21  Jason Merrill  <jason@redhat.com>
4187
4188	* pt.c (instantiate_decl): Abort if we see a member constant
4189	instantiation that doesn't already have its initializer.
4190	Downgrade explicit instantiation without definition to pedwarn.
4191
4192	* cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
4193	* class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
4194	(import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
4195
4196	* cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
4197	(pending_vtables): Remove.
4198	* decl2.c (pending_vtables): Remove.
4199	(import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
4200	CLASSTYPE_VTABLE_NEEDS_WRITING.
4201	(import_export_class): Likewise.
4202	(init_decl2): Don't mark pending_vtables.
4203	* lex.c (handle_pragma_vtable): Just sorry.
4204	* pt.c (instantiate_class_template): Don't mess with
4205	CLASSTYPE_VTABLE_NEEDS_WRITING.
4206	(mark_class_instantiated): Likewise.
4207	* ptree.c (print_lang_type): Don't print it.
4208	* semantics.c (begin_class_definition): Don't set it.
4209
4210	* pt.c (template_tail): Replace with last_pending_template.
4211	(maybe_templates, maybe_template_tail): Remove.
4212	(add_pending_template): Adjust.
4213	(instantiate_pending_templates): Adjust.
4214
4215	* cp-tree.h (struct saved_scope): Remove lang_stack field.
4216	(current_lang_stack): Remove.
4217	* decl.c (maybe_push_to_top_level): Don't initialize it.
4218	(duplicate_decls): Use current_lang_depth.
4219	(xref_basetypes): Likewise.
4220	* class.c (current_lang_depth): New fn.
4221	(push_lang_context): Use more varray functionality.
4222	(pop_lang_context): Likewise.
4223
4224	* error.c (GLOBAL_THING): Always use '__'.
4225
42262001-03-21  Mark Mitchell  <mark@codesourcery.com>
4227
4228	* class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
4229
4230	* mangle.c (mangle_decl_string): Mangle the names of overloaded
4231	operators, even when they have `extern "C"' linkage.
4232
42332001-03-19  Mark Mitchell  <mark@codesourcery.com>
4234
4235	* class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
4236	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
4237	where it's not necessary.
4238	(add_method): Remove optimization involving comparison of
4239	DECL_ASSEMBLER_NAME.
4240	(build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
4241	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
4242	where it's not necessary.
4243	(check_methods): Likewise.
4244	(build_clone): Likewise.
4245	(built_vtt): Likewise.
4246	* cp-tree.h (DECL_NEEDED_P): Likewise.
4247	* decl.c (pushtag): Likewise.
4248	(duplicate_decls): Likewise.
4249	(pushdecl): Likewise.
4250	(builtin_function): Likewise.
4251	(build_library_fn_1): Set DECL_LANGUAGE for library functions.
4252	(build_cp_library_fn): Likewise.
4253	(maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
4254	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
4255	where it's not necessary.
4256	(make_rtl_for_nonlocal_decl): Likewise.
4257	(cp_finish_decl): Likewise.
4258	(grokfndecl): Likewise.
4259	(grokvardecl): Likewise.
4260	(grokdeclarator): Likewise.
4261	(start_function): Likewise.
4262	(cp_missing_return_ok_p): Likewise.
4263	* decl2.c (grokclassfn): Likewise.
4264	(check_classfn): Likewise.
4265	(finish_static_data_member_decl): Likewise.
4266	(grokfield): Likewise.
4267	* error.c (GLOBAL_IORD_P): Remove.
4268	(dump_global_iord): Improve output.
4269	(dump_decl): Avoid using DECL_ASSEMBLER_NAME.
4270	* except.c (nothrow_libfn_p): Summarily reject any function not in
4271	namespace-scope.
4272	* init.c (build_java_class_ref): Don't explicitly set
4273	DECL_ASSEMBLER_NAME after calling mangle_decl.
4274	* mangle.c (mangle_decl_string): Handle extern "C" functions.
4275	(mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
4276	* method.c (set_mangled_name_for_decl): Don't explicitly set
4277	DECL_ASSEMBLER_NAME after calling mangle_decl.
4278	(make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
4279	IDENTIFIER_GLOBAL_VALUE for the thunk.
4280	* pt.c (set_mangled_name_for_template_decl): Remove.
4281	(check_explicit_specialization): Don't use it.
4282	(looup_template_class): Don't set DECL_ASSEMBLER_NAME.
4283	(tsubst_friend_function): Likewise.
4284	(tsubst_decl): Likewise.
4285	(regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
4286	* rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
4287	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
4288	where it's not necessary.
4289	(tinfo_base_init): Likewise.
4290	(create_real_tinfo_var): Likewise.
4291	* search.c (looup_field_1): Likewise.
4292	* semantics.c (finish_named_return_value): Likewise.
4293	* tree.c (init_tree): Set lang_set_decl_assembler_name.
4294
42952001-03-15  Gabriel Dos Reis  <gdr@codesourcery.com>
4296
4297	Correct semantics restrictions checking in throw-expression.
4298	* except.c (is_admissible_throw_operand): New function.
4299	(build_throw): Use it.
4300
43012001-03-14  Mark Mitchell  <mark@codesourcery.com>
4302
4303	* decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
4304	and its ilk.
4305
43062001-03-14  Mark Mitchell  <mark@codesourcery.com>
4307
4308	* class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
4309	* cp-tree.h (DECL_IN_MEMORY_P): Likewise.
4310	* decl.c (duplicate_decls): Likewise.
4311	(builtin_function): Likewise.
4312	(build_library_fn): Likewise.
4313	(build_cp_library_fn): Likewise.
4314	(check_initializer): Likewise.
4315	(cp_finish_decl): Likewise.
4316	* decl2.c (grokfield): Likewise.
4317	(grok_function_init): Remove #if 0'd code.
4318	(finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
4319	* friend.c (do_friend): Likewise.
4320	* init.c (get_temp_regvar): Likewise.
4321	* method.c (make_thunk): Likewise.
4322	* pt.c (tsubst_friend_function): Likewise.
4323	(tsubst_decl): Likewise.
4324	(regenerate_decl_from_template): Likewise.
4325	* semantics.c (genrtl_named_return_value): Likewise.
4326	(expand_body): Likewise.
4327	(genrtl_finish_function): Likewise.
4328	* tree.c (cp_tree_equal): Likewise.
4329
43302001-03-12  Nathan Sidwell  <nathan@codesourcery.com>
4331
4332	* call.c (convert_like_real): Add extra semantics to INNER
4333	parameter. Don't convert to temporary if a user conversion
4334	gives us an lvalue that we're about to bind to a reference.
4335	Set INNER to indicate pending reference binding on recursive
4336	calls.
4337
43382001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
4339
4340	* cp/lex.c: Delete duplicate pending_lang_change.
4341
43422001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
4343
4344	* cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
4345	Similarly.
4346	* cp/repo.c (get_base_filename, open_repo_file): Similarly.
4347	* cp/cp-tree.h: Remove file_name_nondirectory prototype.
4348
43492001-03-09  Zack Weinberg  <zackw@stanford.edu>
4350
4351	* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
4352
43532001-03-08  Stan Shebs  <shebs@apple.com>
4354
4355	* cp-tree.h (set_identifier_local_value): Remove unused decl.
4356
43572001-03-06  Zack Weinberg  <zackw@stanford.edu>
4358
4359	* spew.c: Remove references to CPP_OSTRING.
4360
43612001-03-06  Andrew Haley  <aph@redhat.com>
4362
4363	* typeck.c (convert_arguments): Check that we have an fndecl.
4364
43652001-03-05  Andrew Haley  <aph@redhat.com>
4366
4367	* typeck.c (convert_arguments): Don't do ellipsis conversion for
4368	__built_in_constant_p.
4369
43702001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
4371
4372	* typeck.c (build_static_cast): Allow enum to enum conversions
4373	as per DR 128.
4374
43752001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
4376
4377	* class.c (check_field_decls): Pointers to member do not a
4378	non-pod struct make, as per DR 148.
4379
43802001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
4381
4382	* call.c (joust): cp_pedwarn when using gnu extension concerning
4383	worst conversion sequences.
4384
43852001-03-01  Zack Weinberg  <zackw@stanford.edu>
4386
4387	* decl.c: Replace all uses of 'boolean' with 'bool'.
4388
43892001-03-01  Zack Weinberg  <zackw@stanford.edu>
4390
4391	* lang-specs.h: Add zero initializer for cpp_spec field to
4392	all array elements that need one.  Don't put an #ifdef inside
4393	the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
4394	use it.
4395
43962001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
4397
4398	Implement using decls inside template functions.
4399	* decl2.c (validate_nonmember_using_decl): Don't special case
4400	fake_std_node in the global namespace. Don't reject early when
4401	processing a template.
4402	(do_local_using_decl): Add to statement tree. Don't do further
4403	processing when building a template.
4404	* pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
4405
44062001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
4407
4408	* decl2.c (do_nonmember_using_decl): Don't complain if we find
4409	same function. Do complain about ambiguating extern "C"
4410	declarations.
4411
44122001-02-28  Nathan Sidwell  <nathan@codesourcery.com>
4413
4414	Remove floating point and complex type template constant parms.
4415	* pt.c (convert_nontype_argument): Remove REAL_TYPE and
4416	COMPLEX_TYPE extensions.
4417	(invalid_nontype_parm_type_p): Likewise.
4418
44192001-02-27  Jeffrey Oldham  <oldham@codesourcery.com>
4420
4421	* except.c (call_eh_info): Revert "match_function"'s type.
4422
44232001-02-27  Nathan Sidwell  <nathan@codesourcery.com>
4424
4425	Fix ctor vtable vcall offsets.
4426	* class.c (struct vtbl_init_data_s): Add rtti_binfo member.
4427	(build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
4428	(get_matching_base): Remove.
4429	(get_original_base): New function.
4430	(build_vtbl_initializer): Initialize vid.rtti_binfo.
4431	Use a virtual thunk for a ctor vtable with an index
4432	(add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
4433	primary base within a constructor vtable. Only set
4434	BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
4435	when primary base has been lost.
4436	* cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
4437
44382001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
4439
4440	* call.c (joust): Ensure more_specialized()'s argument length
4441	parameter has correct value for constructors.
4442
44432001-02-26  Nathan Sidwell  <nathan@codesourcery.com>
4444
4445	* except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
4446
4447	* decl.c (mark_inlined_fns): Prototype.
4448
44492001-02-22  Mark Mitchell  <mark@codesourcery.com>
4450
4451	* spew.c (yylex): Correct handling of friends.
4452
44532001-02-22  Mark Mitchell  <mark@codesourcery.com>
4454
4455	* mangle.c (write_encoding): Pass write_function_type the
4456	FUNCTION_DECL for the function being encoded.
4457	(write_function_type): Pass it along to write_bare_function_type.
4458	(write_bare_function_type): Pass it along to write_method_parms.
4459	(write_method_parms): Don't mangle the compiler-generated
4460	parameters to a constructor or destructor.
4461
44622001-02-22  Andreas Jaeger  <aj@suse.de>
4463
4464	* optimize.c: Include toplev.h for
4465	note_deferral_of_defined_inline_function prototype.
4466
44672001-02-22  Jakub Jelinek  <jakub@redhat.com>
4468
4469	* cp-tree.h (struct lang_decl_inlined_fns): New.
4470	(struct lang_decls): Add inlined_fns.
4471	(DECL_INLINED_FNS): New macro.
4472	* optimize.c (struct inline_data): Add inlined_fns.
4473	(declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
4474	(inlinable_function_p): Likewise, fix typo in comment,
4475	function is not inlinable if it already inlined function currently
4476	being optimized.
4477	(expand_call_inline): Add fn to inlined_fns if necessary.
4478	(optimize_function): Initialize inlined_fns.
4479	Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
4480	* decl.c (mark_inlined_fns): New function.
4481	(lang_mark_tree): Call it.
4482
44832001-02-21  Jason Merrill  <jason@redhat.com>
4484
4485	* cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
4486	(DECL_UNINLINABLE): Move to middle-end.
4487
4488	* class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
4489	* decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
4490	* class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
4491	* optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
4492	parms and outer BLOCK.  note_deferral_of_defined_inline_function.
4493
4494	* method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
4495	second parm of op=.
4496
44972001-02-19  Mark Mitchell  <mark@codesourcery.com>
4498
4499	* decl2.c (set_decl_namespace): Allow explicit instantiations in
4500	any namespace.
4501
45022001-02-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4503
4504	* optimize.c (expand_call_inline): Don't walk subtrees of type
4505	nodes.
4506
45072001-02-18  Mark Mitchell  <mark@codesourcery.com>
4508
4509	* class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
4510	for a destructor.
4511
45122001-02-18  Jason Merrill  <jason@redhat.com>
4513
4514	Do put the VTT parameter in DECL_ARGUMENTS.
4515	* cp-tree.h (struct cp_language_function): Add x_vtt_parm.
4516	(current_vtt_parm): New macro.
4517	(struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
4518	(DECL_HAS_VTT_PARM_P): New macro.
4519	(DECL_VTT_PARM): Remove.
4520	(FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
4521	* decl.c (duplicate_decls): Only copy the operator code if
4522	appropriate.
4523	(start_function): Set current_vtt_parm.
4524	(lang_mark_tree): Don't mark vtt_parm.
4525	* decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
4526	DECL_ARGUMENTS.  Set DECL_HAS_VTT_PARM_P.
4527	* class.c (build_clone): Maybe remove the VTT parm.
4528	* optimize.c (maybe_clone_body): Set up the VTT parm.
4529	* pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
4530	* call.c (build_over_call): Just allow the VTT arg.
4531	* method.c (make_thunk): Don't set DECL_VTT_PARM.
4532	(do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
4533	(synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
4534	* decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
4535	* error.c (dump_function_decl): Likewise.
4536	* call.c (build_user_type_conversion_1,	convert_like_real): Abort
4537	if we try to call a constructor with in-charge or VTT parms.
4538	* method.c (skip_artificial_parms_for): New fn.
4539	* call.c (add_function_candidate, build_over_call): Call it.
4540	* call.c (build_new_method_call): Use current_vtt_parm.
4541	* init.c (expand_virtual_init): Likewise.
4542	* class.c (same_signature_p): No longer static.
4543	* cp-tree.h: Declare it.
4544	* search.c (look_for_overrides_r): Use it.
4545
45462001-02-17  Mark Mitchell  <mark@codesourcery.com>
4547
4548	* cp-tree.h (new_abi_rtti_p): Remove.
4549	(name_mangling_version): Likewise.
4550	(flag_do_squangling): Likewise.
4551	* class.c (build_rtti_vtbl_entries): Remove old ABI support.
4552	* decl.c (grokfndecl): Likewise.
4553	* decl2.c (name_mangling_version): Remove.
4554	(flag_do_squangling): Likewise.
4555	(lang_f_options): Remove `squangle'.
4556	(unsupported_options): Add `squangle'.
4557	(cxx_decode_option): Issue a warning about uses of
4558	-fname-mangling-version.
4559	(finish_file): Remove old ABI support.
4560	* pt.c (check_explicit_specialization): Likewise.
4561	(tsubst_decl): Likewise.
4562	* rtti.c (init_rtti_processing): Likewise.
4563	(build_headof): Likewise.
4564	(get_tinfo_decl_dynamic): Likewise.
4565	(tinfo_from_decl): Likewise.
4566	(build_dynamic_cast_1): Likewise.
4567	(synthesize_tinfo_var): Likewise.
4568	* init.c (build_new): Allow enumeration types for the array-bounds
4569	in a direct-new-declarator.
4570
4571	* semantics.c (finish_typeof): Resolve OFFSET_REFs.
4572
4573	* pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
4574	TREE_PROTECTED from the template being specialized.
4575
45762001-02-17  Jason Merrill  <jason@redhat.com>
4577
4578	* decl2.c (build_artificial_parm): Set TREE_READONLY.
4579
4580	* decl.c (bad_specifiers): Allow throw specs on things with
4581	pointer-to-function or -member-function type.
4582	* init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
4583	a pmf.
4584
45852001-02-17  Mark Mitchell  <mark@codesourcery.com>
4586
4587	* call.c (check_dtor_name): Handle template names correctly.
4588
45892001-02-16  Jason Merrill  <jason@redhat.com>
4590
4591	* cp-tree.h (DECL_USE_VTT_PARM): Remove.
4592	* decl2.c (maybe_retrofit_in_chrg): Don't create it.
4593	* optimize.c (maybe_clone_body): Don't substitute it.
4594	* call.c (build_new_method_call): Check in_chrg instead.
4595	* init.c (expand_virtual_init): Likewise.
4596
45972001-02-16  Gabriel Dos Reis  <gdr@codesourcery.com>
4598
4599	* decl.c (check_tag_decl): Make sure a typedef for an anonymous
4600	class-type introduces at least a type-name.
4601
46022001-02-16  Jakub Jelinek  <jakub@redhat.com>
4603
4604	* call.c (convert_like_real): Create a temporary for non-lvalue.
4605
46062001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
4607
4608	* cp-tree.h: Fix typos in comments.
4609
46102001-02-16  Jason Merrill  <jason@redhat.com>
4611
4612	* optimize.c (remap_block): If we're compiling a clone, pass the
4613	new block to insert_block.
4614
46152001-02-16  Mark Mitchell  <mark@codesourcery.com>
4616
4617	* semantics.c (finish_asm_stmt): Robustify.
4618
46192001-02-15  Mark Mitchell  <mark@codesourcery.com>
4620
4621	* pt.c (push_template_decl_real): Don't remangle the name of a
4622	class template.
4623
46242001-02-15  Jim Meyering  <meyering@lucent.com>
4625
4626	* Make-lang.in (c++.install-common): Depend on installdirs.
4627	(c++.install-info): Likewise.
4628	(c++.install-man): Likewise.
4629
46302001-02-15  Mark Mitchell  <mark@codesourcery.com>
4631
4632	* typeck2.c (build_m_component_ref): Robustify.
4633
46342001-02-15  Alexandre Oliva  <aoliva@redhat.com>
4635
4636	* friend.c (do_friend): Don't take the nested [template] class
4637	into account when deciding whether to warn about the friend
4638	function not referring to a template function.
4639
46402001-02-14  Jakub Jelinek  <jakub@redhat.com>
4641
4642	* typeck.c (build_unary_op): Clarify error message.
4643
46442001-02-08  Aldy Hernandez  <aldyh@redhat.com>
4645
4646	* parse.y (component_constructor_declarator): allow optional
4647	parentheses around constructor class name.
4648
46492001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
4650
4651	* cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
4652	section.
4653	* init.c (emit_base_init): Remove incorrect comment about
4654	virtual bases.
4655	* method.c (make_thunk): Fix comment alignment.
4656
46572001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
4658
4659	Kill remnants of this is variable.
4660	* cp-tree.h (flag_this_is_variable): Remove.
4661	* decl2.c (flag_this_is_variable): Remove.
4662	* class.c (fixed_type_or_null): Add cdtor parm. Adjust.
4663	(build_vbase_path): The path is non-static, even in a cdtor.
4664	(resolves_to_fixed_type_p): Add additional return value.
4665	* search.c (init_vbase_pointers): Adjust.
4666	* tree.c (lvalue_p_1): Adjust.
4667	* typeck.c (mark_addressable): Adjust.
4668
46692001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
4670
4671	* pt.c (unify): Don't check cv quals of array types.
4672
46732001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
4674
4675	* tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
4676	check whether we already have the type.
4677
46782001-02-13  Mark Mitchell  <mark@codesourcery.com>
4679
4680	* cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
4681	* call.c (build_op_delete_call): Simplify to remove duplicate
4682	code.
4683	* class.c (clone_function_decl): Don't build the deleting variant
4684	of a non-virtual destructor.
4685	* decl.c (finish_destructor_body): Don't call delete if this is a
4686	non-virtual destructor.
4687	* init.c (build_delete): Explicitly call `operator delete' when
4688	deleting an object with a non-virtual destructor.
4689
46902001-02-13  Jason Merrill  <jason@redhat.com>
4691
4692	* lang-specs.h: Add more __EXCEPTIONS.
4693
46942001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
4695
4696	* typeck2.c (process_init_constructor): Check
4697	TREE_HAS_CONSTRUCTOR before issuing missing init warning.
4698
46992001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
4700
4701	* pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
4702	Remove spurious information in comment. Allow further
4703	adjustments of REFERENCE_TYPE args.
4704
47052001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
4706
4707	* errfn.c (cp_deprecated): Tweak diagnostic text.
4708	* parse.y (new_initializer): Deprecate initializer lists
4709	extension.
4710
47112001-02-12  Mark Mitchell  <mark@codesourcery.com>
4712
4713	Remove old ABI support.
4714
47152001-02-11  Mark Mitchell  <mark@codesourcery.com>
4716
4717	* decl2.c (flag_vtable_thunks): Always set it to 1.
4718	(flag_new_abi): Likewise.
4719	* lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
4720
4721	* Makefile.in (g++spec.o): Fix typo.
4722
47232001-02-09  Jason Merrill  <jason@redhat.com>
4724
4725	* lang-specs.h: Restore definition of __EXCEPTIONS.
4726
47272001-02-08  Jason Merrill  <jason@redhat.com>
4728
4729	* search.c (shared_member_p): New function.
4730	(lookup_field_r): Use it.
4731	* cp-tree.h (SHARED_MEMBER_P): Remove.
4732
4733	* method.c (process_overload_item): Handle template-dependent array
4734	bounds.
4735	* pt.c (type_unification_real): If we end up with undeduced nontype
4736	parms, try again.
4737
4738	* decl.c (lookup_name_real): Tweak warning to refer to decls, not
4739	types.
4740
4741	* typeck2.c (friendly_abort): Don't say anything if we have
4742	earlier errors or sorries.
4743
4744	* decl.c (check_tag_decl): Notice attempts to redefine bool and
4745	wchar_t.  Ignore if in_system_header.
4746
4747	* decl.c (maybe_push_cleanup_level): New fn...
4748	(start_decl_1): ...split out from here.
4749	* cvt.c (build_up_reference): Use it.
4750	* cp-tree.h: Declare it.
4751
47522001-02-07  Mark Mitchell  <mark@codesourcery.com>
4753
4754	* lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
4755	spec.
4756
47572001-02-06  Nathan Sidwell  <nathan@codesourcery.com>
4758
4759	* pt.c (lookup_template_class): Make sure it's a primary
4760	template or template_template_parm when called from the parser.
4761	(instantiate_template_class): Add assertion.
4762
47632001-02-05  Alexandre Oliva  <aoliva@redhat.com>
4764
4765	* method.c (build_mangled_name) [old abi]: Protect flush_repeats()
4766	from error_mark_node.
4767
47682001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
4769
4770	Fix specification and implementation bugs in V3 ABI
4771	construction vtables.
4772	* cp-tree.h (flag_dump_class_layout): New flag.
4773	(BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
4774	(BINFO_LOST_PRIMARY_P): New flag.
4775	(SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
4776	(BINFO_PRIMARY_MARKED_P): Rename to ...
4777	(BINFO_PRIMARY_P): ... here.
4778	(binfo_via_virtual): New prototype.
4779	* decl2.c (flag_dump_class_layout): New flag.
4780	(cxx_decode_option): Set it. Adjust -fdump-translation-unit to
4781	use `=' as a file name separator.
4782	* init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
4783	bases.
4784	(build_vtbl_address): If this is a virtual primary base, then
4785	get the vtbl of what it is ultimately primary for.
4786	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
4787	for BINFO_PRIMARY_P.
4788	(dfs_skip_nonprimary_vbases_markedp): Likewise.
4789	(get_shared_vbase_if_not_primary): Likewise.
4790	(dfs_get_pure_virtuals): Likewise.
4791	(expand_upcast_fixups): Likewise.
4792	(fixup_virtual_upcast_offsets): Likewise.
4793	(dfs_find_vbase_instance): Likewise.
4794	(find_vbase_instance): Likewise.
4795	(binfo_from_vbase): Adjust comment to reflect reality.
4796	(binfo_via_virtual): New function.
4797	* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
4798	for binfo walking during VTT construction.
4799	(dfs_mark_primary_bases): Remove.
4800	(force_canonical_binfo_r): New function.
4801	(force_canonical_binfo): New function.
4802	(mark_primary_virtual_base): New function.
4803	(mark_primary_bases): Walk in inheritance graph order, use
4804	mark_primary_virtual_base.
4805	(determine_primary_base): Use some more intermediate variables.
4806	(dfs_find_final_overrider): Don't check for overriding along a
4807	virtual path.
4808	(dfs_modify_vtables): Walk into primary virtual bases too.
4809	(walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
4810	(build_base_fields): Likewise.
4811	(dfs_set_offset_for_unshared_vbases): Likewise.
4812	(layout_virtual_bases): Likewise.
4813	(end_of_class): Likewise.
4814	(finish_struct_1): Call dump_class_hierarchy, if requested.
4815	(dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
4816	(dump_class_hierarchy_r): Add stream parameter. Emit more information.
4817	(dump_class_hierarchy): Add file parameter. Append to file, if
4818	required.
4819	(finish_vtbls): Adjust accumulate_vtbl_inits call.
4820	Use canonical base for virtual bases.
4821	(build_vtt): Add more comments. Adjust build_vtt_inits call.
4822	(build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
4823	Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
4824	VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
4825	virtual VTTs.
4826	(dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
4827	from DATA.  We want virtual primary bases and all bases via virtual.
4828	Only set BINFO_VPTR_INDEX for top level. Look up from a primary
4829	virtual base when not a construction vtable.
4830	(dfs_ctor_vtable_bases_queue_p): New DFS predicate.
4831	(build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
4832	Use canonical bases when processing virtual bases.
4833	(accumulate_vtbl_inits): We're interested in any base via a
4834	virtual path.
4835	(dfs_accumulate_vtbl_inits): If this is a primary virtual base
4836	within a construction vtable, determine what is being overridden.
4837	(build_vtbl_initializer): Add more comments
4838	(add_vcall_offset_vtbl_entries_1): Adjust comment.
4839	(build_rtti_vtbl_entries): Check if the base has lost its
4840	primary.
4841
48422001-02-05  Mark Mitchell  <mark@codesourcery.com>
4843
4844	* Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
4845
4846Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4847
4848	* decl.c (pushdecl): Call abort instead of fatal.
4849	* except.c (decl_is_java_type): Call fatal_error instead of fatal.
4850	* init.c (build_new_1): Likewise.
4851	(build_java_class_ref): Call internal_error and fatal_error, not fatal.
4852	* decl.c (build_typename_type): hash_table_init now returns void.
4853	decl.c (init_decl_processing): Make an error non-fatal.
4854
48552001-02-04  Mark Mitchell  <mark@codesourcery.com>
4856
4857	* cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
4858	Document.
4859	(CLASSTYPE_INTERFACE_KNOWN): Likewise.
4860	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
4861	(SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
4862	(SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
4863	* decl.c (maybe_commonize_var): Use the new name-mangling where
4864	appropriate.
4865	* decl2.c (comdat_linkage): Enhance comments.  Make all
4866	compiler-generated things static, if COMDAT is not available.
4867	(get_tinfo_decl): Do not make typeinfo objects that belong in the
4868	library COMDAT.
4869	(tinfo_base_init): Use the correct mangled name for typeinfo
4870	strings, and push them into the global scope.
4871	(typeinfo_in_lib_p): New function.
4872	(synthesize_tinfo_var): Use it.
4873	(create_real_tinfo_var): Likewise.
4874
48752001-02-03  Jakub Jelinek  <jakub@redhat.com>
4876
4877	* decl.c (push_class_binding): Use context_for_name_lookup instead
4878	of CP_DECL_CONTEXT.
4879	* search.c (context_for_name_lookup): Remove static.  Check for NULL
4880	context in the loop.
4881	* cp-tree.h (context_for_name_lookup): Add prototype.
4882
48832001-02-02  Jakub Jelinek  <jakub@redhat.com>
4884
4885	* cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
4886	* tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
4887	Remove.
4888	* call.c (convert_class_to_reference, build_user_type_conversion_1,
4889	add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
4890
48912001-02-02  Mark Mitchell  <mark@codesourcery.com>
4892
4893	* Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
4894	of macros used when compiling g++spec.c.
4895	* g++spec.c (lang_specific_driver): Link with the shared
4896	libgcc by default.
4897
48982001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
4899
4900	* decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
4901	make_reference_declarator, make_call_declarator), method.c
4902	(implicitly_declare_fn), parse.y (namespace_using_decl,
4903	notype_unqualified_id, expr_or_declarator, new_type_id,
4904	after_type_declarator, direct_after_type_declarator,
4905	notype_declarator, complex_notype_declarator,
4906	complex_direct_notype_declarator, qualified_id,
4907	notype_qualified_id, overqualified_id, direct_new_declarator,
4908	absdcl, direct_abstract_declarator, conversion_declarator), pt.c
4909	(tsubst), semantics.c (begin_constructor_declarator): Use build_nt
4910	instead of build_parse_node.
4911
49122001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4913
4914	* cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
4915	(minus_one_node): Moved to top level gcc directory.  Renamed
4916	to integer_minus_one_node.
4917
4918	* init.c (init_init_processing): Don't set minus_one_node.
4919	(build_vec_init): Use integer_minus_one_node.
4920
4921	* rtti.c (get_tinfo_decl_dynamic): Likewise.
4922
49232001-01-28  Jakub Jelinek  <jakub@redhat.com>
4924
4925	* optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
4926	identical and they would be replaced with constant, remove
4927	MODIFY_EXPR from the tree.
4928
49292001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4930
4931	* Make-lang.in: Remove all dependencies on defaults.h.
4932	* call.c: Don't include defaults.h.
4933	* decl.c: Likewise.
4934	* decl2.c: Likewise.
4935	* except.c: Likewise.
4936	* pt.c: Likewise.
4937	* rtti.c: Likewise.
4938	* tree.c: Likewise.
4939	* typeck.c: Likewise.
4940
49412001-01-25  Jakub Jelinek  <jakub@redhat.com>
4942
4943	* mangle.c (write_mangled_name, write_encoding): Mangle overloaded
4944	operators even in "C" linkage.
4945	* method.c (set_mangled_name_for_decl): Likewise.
4946	* decl.c (grokfndecl): Call set_mangled_name_for_decl even for
4947	overloaded operators in "C" linkage.
4948
49492001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
4950
4951	* pt.c (tsubst_decl): Remove IN_DECL parameter.
4952	(tsubst_arg_types): Check parameter is not void.
4953	(tsubst): Adjust tsubst_decl call.
4954
49552001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
4956
4957	* call.c (add_builtin_candidate): Quote std properly, from
4958	previous change.
4959
49602001-01-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4961
4962	* pt.c (check_explicit_specialization): Clone constructors and
4963	destructors.
4964
49652001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
4966
4967	* decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
4968	indicates anything special about template depth. Make sure we
4969	only count the user visible template classes.
4970
49712001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
4972
4973	* call.c (build_conv): Typo in comment.
4974	(add_builtin_candidate): Add more explanation.
4975	Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
4976	Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
4977	when we have enumeral types.
4978	(add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
4979	candidates for relops and eqops.
4980	(joust): Simplify control flow. Allow a non-template user
4981	function to hide a builtin.
4982
49832001-01-22  Nathan Sidwell  <nathan@codesourcery.com>
4984
4985	* cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
4986	(more_specialized): Add deduction parameter.
4987	* call.c (joust): Adjust more_specialized call.
4988	* pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
4989	UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
4990	(get_bindings_order): Remove.
4991	(get_bindings_real): Add DEDUCE parameter.
4992	(maybe_adjust_types_for_deduction): Return extra unify flags. Do
4993	REFERENCE_TYPE jig for DEDUCE_ORDER.
4994	(type_unification_real): Deal with DEDUCE_ORDER. Use result of
4995	maybe_adjust_types_for_deduction.
4996	(more_specialized): Add DEDUCE parameter. Call get_bindings_real
4997	directly.
4998	(try_one_overload): Use result of maybe_adjust_types_for_deduction.
4999	(check_cv_quals_for_unify): Use new unify qualifier flags.
5000	(unify): Clear new unify qualifier flags.
5001	(get_bindings_real): Add DEDUCE parameter.
5002	(get_bindings): Adjust call to get_bindings_real.
5003	(get_bindings_overload): Likewise.
5004	(most_specialized_instantiation): Adjust call to
5005	more_specialized.
5006
50072001-01-19  Jason Merrill  <jason@redhat.com>
5008
5009	* decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
5010
5011	* decl.c (init_decl_processing): Just force -fvtable-thunks on if
5012	-fnew-abi.
5013
50142001-01-19  Ute Pelkmann  <scope.muc@t-online.de>
5015
5016	* decl2.c (arg_assoc_class): Fix double iteration logic.
5017
50182001-01-19  Jason Merrill  <jason@redhat.com>
5019
5020	* init.c (build_delete): Always call convert_force to strip cv-quals.
5021
5022	* decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
5023	* lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
5024	* g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
5025
50262001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
5027
5028	* search.c (get_vbase_1): Count only virtual bases.
5029
50302001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
5031
5032	* class.c (duplicate_tag_error): Robustify flag clearing.
5033
50342001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
5035
5036	* cp-tree.h (lookup_template_class): Add complain parm.
5037	* decl.c (lookup_namespace_name): Adjust call to
5038	lookup_template_class.
5039	(make_typename_type): Likewise.
5040	* semantics.c (finish_template_type): Likewise.
5041	* pt.c (lookup_template_class): Add complain parm. Adjust.
5042	(tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
5043	(tsubst): Likewise.
5044
50452001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
5046
5047	* pt.c (copy_default_args_to_explicit_spec): Preserve
5048	object's CV quals. Reorganize.
5049
50502001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
5051
5052	* typeck.c (build_modify_expr): Say `initialization' for
5053	INIT_EXPRs.
5054	* init.c (build_default_init): Convert to enumeral type, if
5055	needed.
5056
50572001-01-18  Jakub Jelinek  <jakub@redhat.com>
5058
5059	* parse.y (nomods_initdcl0): Properly set things up for
5060	initdcl0_innards.
5061
50622001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
5063
5064	* pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
5065	(type_unification_real): Set it.
5066	(unify): Use it.
5067
50682001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
5069
5070	* decl.c (finish_destructor_body): Convert to vbase pointer here.
5071
50722001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
5073
5074	* semantics.c (begin_class_definition): Check we're not inside a
5075	template parm list.
5076
50772001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
5078
5079	* tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
5080	BASELINK_P.
5081
50822001-01-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5083
5084	* typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
5085	* call.c (build_over_call): Add comment.
5086
50872001-01-16 Daniel Berlin <dberlin@redhat.com>
5088
5089	* cvt.c (ocp_convert): Handle vector type conversion
5090	* typeck2.c (digest_init): Handle vector type initializations
5091
50922001-01-16  Phil Edwards  <pme@sources.redhat.com>
5093
5094	* g++spec.c:  Don't add libraries needlessly if -fsyntax-only
5095	  was given.
5096
50972001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
5098
5099	* pt.c (check_nontype_parm): Rename to ...
5100	(invalid_nontype_parm_type_p): ... here.
5101	(process_template_parm): Adjust.
5102	(convert_template_argument): Adjust.
5103
51042001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
5105
5106	* pt.c (check_nontype_parm): New function.
5107	(process_template_parm): Use it.
5108	(convert_template_argument): Use it.
5109	(convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
5110	member.
5111
51122001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
5113
5114	* tree.c: Add defaults.h
5115	(cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
5116	* Make-lang.in (cp/tree.o): Add defaults.h.
5117
51182001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5119
5120	* Make-lang.in (CXX_C_OBJS): Add c-format.o.
5121
51222001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5123
5124	* g++.1: Change to be ".so man1/gcc.1".
5125
51262001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5127
5128	* Make-lang.in (c++.info, c++.install-info): Build and install g++
5129	internals info.
5130	(c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
5131	($(srcdir)/cp/g++int.info): New target.
5132	* gxxint.texi: Add info directory entry.  Use @@ in email address.
5133	* .cvsignore: Update.
5134
51352001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
5136
5137	* typeck.c (build_c_cast): Do template processing earlier.
5138	Always pedwarn on array casts.
5139
51402001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
5141
5142	* friend.c (make_friend_class): Make sure a templated class is
5143	actually a template.
5144
51452001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
5146
5147	* decl2.c (get_guard): Set linkage from guarded decl.
5148
51492001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
5150
5151	* call.c (convert_default_arg): Check for unprocessed
5152	DEFAULT_ARG.
5153	* cp-tree.h (replace_defarg): Move to spew.c.
5154	(maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
5155	spew.c, which is where they really are.
5156	(done_pending_defargs): Declare.
5157	(unprocessed_defarg_fn): Declare.
5158	* decl.c (replace_defarg): Move to spew.c
5159	* parse.y (structsp): Call done_pending_defargs.
5160	* spew.c (defarg_fns): Rearrange list structure.
5161	(defarg_fnsdone): New static variable.
5162	(defarg_depfns): New static variable.
5163	(init_spew): Adjust.
5164	(add_defarg_fn): Store the type in TREE_TYPE.
5165	(do_pending_defargs): Detect and deal with ordering constraints
5166	and circularity.
5167	(done_pending_defargs): New function.
5168	(unprocessed_defarg_fn): New function.
5169	(replace_defarg): Moved from decl.c. Robustify. Don't save
5170	if circularity detected.
5171
51722001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
5173
5174	* pt.c (unify): Check array has a domain, before checking
5175	whether it is variable sized.
5176
51772001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
5178
5179	* decl.c (grokparms): Unobfuscate and get correct diagnostic for
5180	parameters with pointers to arrays of unknown bound.
5181
51822001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
5183
5184	* parse.y (template_parm_header, template_spec_header): New
5185	reductions. Split out from ...
5186	(template_header): ... here. Use them.
5187	(template_template_parm): Use template_parm_header.
5188	* semantics.c (finish_template_template_parm): Add assert.
5189
51902001-01-10  Mark Mitchell  <mark@codesourcery.com>
5191
5192	* mangle.c (write_builtin_type): Fix thinko.
5193
5194	* pt.c (copy_default_args_to_explicit_spec_1): New function.
5195	(copy_default_args_to_explicit_spec): Likewise.
5196	(check_explicit_specialization): Use it.
5197
5198	* class.c (finish_struct_1):  Remove last argument in call to
5199	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
5200	* decl.c (builtin_function): Likewise.
5201	(build_cp_library_fn): Likewise.
5202	(check_initializer): Likewise.
5203	(make_rtl_for_nonlocal_decl): Likewise.
5204	(cp_finish_decl): Likewise.
5205	(start_function): Likewise.
5206	* decl2.c (finish_anon_union): Likewise.
5207	* friend.c (do_friend): Likewise.
5208	* init.c (build_java_class_ref): Likewise.
5209	* method.c (make_thunk): Likewise.
5210	* pt.c (tsubst_friend_function): Likewise.
5211	* semantics.c (expand_body): Likewise.
5212
52132001-01-10  Mark Mitchell  <mark@codesourcery.com>
5214
5215	* cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
5216	looking at DECL_CLONED_FUNCTION for non-functions.
5217
52182001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
5219
5220	* error.c (dump_template_parameter): Use parm to determine how
5221	to print default value.
5222
52232001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
5224
5225	* class.c (duplicate_tag_error): Clear more flags.
5226
52272001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
5228
5229	* call.c (build_new_method_call): Use binfo_for_vbase.
5230
52312001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
5232
5233	* cp-tree.h (flag_cond_mismatch): Don't declare.
5234	* decl2.c (flag_cond_mismatch): Don't define.
5235	(lang_f_options): Remove cond-mismatch.
5236	(unsupported_options): Add cond-mismatch.
5237
52382001-01-09  Nathan Sidwell  <nathan@codesourcery.com>
5239
5240	* class.c (handle_using_decl): Reject using of constructor name
5241	of sourcing class. Allow injecting of a method with same name as
5242	nested class. Fixup error messages.
5243
52442001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
5245
5246	* decl2.c (lang_decode_option): Handle -Wformat=2.
5247
52482001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
5249
5250	* cp-tree.h (lang_decl_flags): Rename defined_in_class to
5251	initialized_in_class.
5252	(DECL_DEFINED_IN_CLASS_P): Rename to ...
5253	(DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
5254	* decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
5255	(cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
5256	* pt.c (check_default_tmpl_args): Adjust for
5257	DECL_INITIALIZED_IN_CLASS_P.
5258	(instantiate_class_template): Likewise.
5259	(instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
5260
5261	* class.c (finish_struct): Constify saved_filename.
5262
52632001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
5264
5265	* class.c (duplicate_tag_error): Adjust diagnostic.
5266	(finish_struct): Locally set location to start of struct.
5267	* decl.c (fixup_anonymous_aggr): Use cp_error_at.
5268
52692001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
5270
5271	* decl.c (struct binding_level): Adjust class_shadowed comments
5272	to reflect reality.
5273	(push_class_level_binding): Adjust comments to reflect reality.
5274	Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
5275	Don't set TREE_VALUE on the class_shadowed list.
5276
52772001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
5278
5279	* decl2.c (acceptable_java_type): Allow references too.
5280	* init.c (build_java_class_ref): When using the new ABI, search
5281	`class$' and have it mangled with `mangle_decl.'
5282	* mangle.c (write_java_integer_type_codes): New function.
5283	(write_builtin_type): Detect and mangle Java integer and real
5284	types.
5285
52862001-01-07  Mark Mitchell  <mark@codesourcery.com>
5287
5288	* decl2.c (grokfield): Don't accept `asm' specifiers for
5289	non-static data members.
5290
52912001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5292
5293	* expr.c (cplus_expand_expr): Don't reset `target'.
5294
52952001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5296
5297	* cp/decl2.c (cxx_post_options): Call cpp_post_options.
5298
52992001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
5300
5301	* parse.y (template_datadef): Check for error_mark_node.
5302
53032001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
5304
5305	* cp-tree.def (DEFAULT_ARG): Make `x' class.
5306
53072001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
5308
5309	* decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
5310	(record_builtin_type): Make non-static.
5311	(flag_short_double): Don't declare.
5312	(init_decl_processing): Remove the creation of many tree nodes now
5313	in c_common_nodes_and_builtins.
5314	(build_void_list_node): New function.
5315	* decl2.c (flag_short_double, flag_short_wchar): Don't define.
5316	* cp-tree.h (flag_short_wchar): Don't declare.
5317
53182001-01-04  Mark Mitchell  <mark@codesourcery.com>
5319
5320	* call.c (build_conv): Don't use build1 for USER_CONV.
5321	* pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
5322
53232001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
5324
5325	* lex.c (lang_init): Call c_common_lang_init.
5326
53272001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
5328
5329	* search.c (lookup_fnfields_here): Remove.
5330	(look_for_overrides_r): Use lookup_fnfields_1.
5331	Ignore functions from using declarations.
5332
53332001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
5334
5335	Implement exceptions specifiers for implicit member functions.
5336	* cp-tree.h (merge_exceptions_specifiers): Declare new function.
5337	* method.c (synthesize_exception_spec): New function.
5338	(locate_dtor, locate_ctor, locate_copy): New functions.
5339	(implicitly_declare_fn): Generate the exception spec too.
5340	* search.c (check_final_overrider): Check artificial functions
5341	too.
5342	* typeck2.c (merge_exception_specifiers): New function.
5343
53442001-01-03  Jason Merrill  <jason@redhat.com>
5345
5346	* init.c (build_default_init): New fn.
5347	(perform_member_init): Split out from here.
5348	(build_new_1): Use it.  Simplify initialization logic.
5349	(build_vec_init): Take an array, rather than a pointer and maxindex.
5350	Speed up simple initializations.  Don't clean up if we're assigning.
5351	* cp-tree.h: Adjust.
5352	* decl2.c (do_static_initialization): Remove TREE_VEC case.
5353	* parse.y (new_initializer): Return void_zero_node for ().
5354	* typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
5355	* typeck2.c (digest_init): Only complain about user-written
5356	CONSTRUCTORs.
5357
53582000-12-22  Mike Stump  <mrs@wrs.com>
5359
5360	* decl2.c: (max_tinst_depth): Increase to 50.
5361
53622001-01-02  Mark Mitchell  <mark@codesourcery.com>
5363
5364	* class.c (invalidate_class_lookup_cache): Zero the
5365	previous_class_values.
5366	* cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
5367	TREE_INT_CST_HIGH.
5368	(CLASSTYPE_TEMPLATE_LEVEL): Likewise.
5369	* decl.c (free_bindings): New variable.
5370	(push_binding): Don't create a new binding if we have one on the
5371	free list.
5372	(pop_binding): Put old bindings on the free list.
5373	(init_decl_processing): Use size_int, not build_int_2.
5374	Register free_bindings as a GC root.
5375	(cp_make_fname_decl): Use size_int, not build_int_2.
5376	(push_inline_template_parms_recursive): Likewise.
5377	(end_template_parm_list): Likewise.
5378	(for_each_tempalte_parm): Do not use walk_tree_without_duplicates.
5379	(tsubst_template_parms): Use size_int, not build_int_2.
5380	(tsubst): Likewise.
5381	* rtti.c (get_vmi_pseudo_type_info): Likewise.
5382
53832001-01-02  Richard Henderson  <rth@redhat.com>
5384
5385	* parse.y (asm): Set ASM_INPUT_P.
5386
53872001-01-02  Jason Merrill  <jason@redhat.com>
5388
5389	* tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
5390	for v3 ABI.
5391
5392	* typeck.c (cp_truthvalue_conversion): New fn.
5393	* cvt.c (ocp_convert): Use it.
5394
5395	* cp-tree.h: Lose c-common.c decls.
5396
5397	* typeck.c (build_unary_op): Restore old &a.f diagnostic code.
5398	* cvt.c (convert_to_void): Use type_unknown_p.
5399
5400	* typeck.c (strip_all_pointer_quals): Also strip quals from
5401	pointer-to-member types.
5402
5403	* Make-lang.in (cp/TAGS): Use --no-globals.  Ignore parse.c, and treat
5404	parse.y as C.
5405
5406	* call.c (build_new_method_call): Do evaluate the object parameter
5407	when accessing a static member.
5408	* typeck.c (build_component_ref): Likewise.
5409
54102001-01-02  Andreas Jaeger  <aj@suse.de>
5411
5412	* decl.c (cp_missing_noreturn_ok_p): New.
5413	(init_decl_processing): Set lang_missing_noreturn_ok_p.
5414
54152000-12-29  Jakub Jelinek  <jakub@redhat.com>
5416
5417	* decl.c (init_decl_processing): Fix sign of wchar_type_node.
5418
54192000-12-29  Mark Mitchell  <mark@codesourcery.com>
5420
5421	* class.c (pushclass): Remove #if 0'd code.
5422	* cp-tree.h (overload_template_name): Remove.
5423	* decl.c (store_bindings): Simplify.
5424	(pop_from_top_level): Likewise.
5425	* pt.c (overload_template_name): Remove.
5426	(instantiate_decl): Don't call push_to_top_level if it's not
5427	needed.
5428
54292000-12-28  Mark Mitchell  <mark@codesourcery.com>
5430
5431	* pt.c (register_local_specialization): Don't return a value.
5432	(lookup_template_class): Use move-to-front heuristic when looking
5433	up template instantiations.
5434	(instantiate_decl): Only push_to_top_level when we're actually
5435	going to instantiate the template.
5436
54372000-12-29  Hans-Peter Nilsson  <hp@bitrange.com>
5438
5439	* search.c (binfo_for_vtable): Return least derived class, not
5440	most.  Handle secondary vtables.
5441
54422000-12-22  Jason Merrill  <jason@redhat.com>
5443
5444	* pt.c (more_specialized): Don't optimize len==0.
5445	(fn_type_unification): If we're adding the return type, increase len.
5446
5447	* typeck.c (build_binary_op): Fix pmf comparison logic.
5448
5449	* call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
5450	DECL_STATIC_FUNCTION_P.
5451
5452	* semantics.c (genrtl_finish_function): Don't try to jump to
5453	return_label unless it exists.
5454
5455	In partial ordering for a call, ignore parms for which we don't have
5456	a real argument.
5457	* call.c (joust): Pass len to more_specialized.
5458	(add_template_candidate_real): Strip 'this', pass len.
5459	* pt.c (more_specialized): Pass len down.  Lose explicit_args parm.
5460	(get_bindings_order): New fn.  Pass len down.
5461	(get_bindings_real): Strip 'this', pass len.
5462	(fn_type_unification): Likewise.
5463	(type_unification_real): Succeed after checking 'len' args.
5464	(most_specialized_instantiation): Lose explicit_args parm.
5465	* class.c (resolve_address_of_overloaded_function): Strip 'this',
5466	pass len.
5467
54682000-12-21  Jason Merrill  <jason@redhat.com>
5469
5470	* pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
5471	DECL_TEMPLATE_RESULT.
5472
5473	* search.c (lookup_field_r): Call lookup_fnfields_1, not
5474	lookup_fnfields_here.
5475
5476	* parse.y (typename_sub2): Return the TYPE_DECL, not the type.
5477
5478	* call.c (build_object_call): Also allow conversions that return
5479	reference to pointer to function.
5480	(add_conv_candidate): Handle totype being ref to ptr to fn.
5481	(build_field_call): Also allow members of type reference to function.
5482	Lose support for calling pointer to METHOD_TYPE fields.
5483
5484	* error.c (dump_expr): Handle *_CAST_EXPR.
5485
5486	* typeck2.c (build_scoped_ref): Always convert to the naming class.
5487
5488	* tree.c (break_out_cleanups): Lose.
5489	* cp-tree.h: Remove prototype.
5490	* typeck.c (build_component_ref): Don't break_out_cleanups.
5491	(build_compound_expr): Likewise.
5492	* semantics.c (finish_expr_stmt): Likewise.
5493
54942000-12-20  Richard Henderson  <rth@redhat.com>
5495
5496	* cp-tree.h: Update declarations.
5497	* decl.c (finish_case_label): Return the new stmt node.
5498	* semantics.c (finish_goto_stmt): Likewise.
5499	(finish_expr_stmt, finish_return_stmt): Likewise.
5500	(finish_break_stmt, finish_continue_stmt): Likewise.
5501	(finish_asm_stmt): Likewise.
5502	* parse.y (already_scoped_stmt): Set STMT_LINENO.
5503	(compstmt, implicitly_scoped_stmt, stmt): Likewise.
5504	(simple_if, simple_stmt): Return the new stmt node.
5505	(save_lineno): New.
5506
55072000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5508
5509	* cp-tree.h: Don't declare warn_long_long.
5510
55112000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5512
5513	* tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
5514	IS_AGGR_TYPE.
5515
55162000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5517
5518	* pt.c (unify): Handle when both ARG and PARM are
5519	BOUND_TEMPLATE_TEMPLATE_PARM.
5520
55212000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5522
5523	* pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
5524	DECL_TEMPLATE_PARM_P.
5525
55262000-12-15  Jason Merrill  <jason@redhat.com>
5527
5528	* init.c (build_new_1): Reorganize.  Now with 100% fewer SAVE_EXPRs!
5529
5530	* init.c (build_new_1): Don't strip quals from type.
5531
5532	* decl.c (pushdecl): Don't check for linkage on a non-decl.
5533
5534	* call.c (build_op_delete_call): See through ARRAY_TYPEs.
5535
5536	* call.c (build_new_function_call): Lose space before paren in
5537	error message.
5538	(build_new_method_call): Likewise.
5539
5540	* typeck2.c (build_m_component_ref): Propagate quals from datum.
5541
55422000-12-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5543
5544	* pt.c (check_explicit_specialization): Propagate default
5545	function arguments to explicit specializations.
5546
55472000-12-13  DJ Delorie  <dj@redhat.com>
5548
5549	* typeck.c (build_binary_op): Do signed/unsigned warnings for >?
5550	and <? operators.
5551
55522000-12-08  Jason Merrill  <jason@redhat.com>
5553
5554	* error.c (dump_function_name): Don't let the user see __comp_ctor.
5555
5556	Clean up copy-initialization in overloading code.
5557	* call.c (build_user_type_conversion_1): Die if we are asked to
5558	convert to the same or a base type.
5559	(implicit_conversion): Avoid doing so.  Lose reference binding code.
5560	(convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
5561	direct-initialization.  Also do direct-init part of copy-init.
5562	(build_user_type_conversion): Don't provide context to convert_like.
5563	* cvt.c (ocp_convert): build_user_type_conversion will now provide
5564	the constructor call for copy-init.
5565
5566	* pt.c (tsubst_decl): Call clone_function_decl here if this is an
5567	instantiation of a member template.
5568	(do_decl_instantiation): Not here.
5569
55702000-12-07  Nathan Sidwell  <nathan@codesourcery.com>
5571
5572	* class.c (check_field_decls): Don't special case anonymous
5573	fields in error messages.
5574	(note_name_declared_in_class): Use %D on diagnostic.
5575
5576	* tree.c (pod_type_p): Use strip_array_types.
5577	(cp_valid_lang_attribute): Likewise.
5578	* typeck.c (cp_type_quals): Strip arrays separately, to avoid
5579	multiple evaluations.
5580	(cp_has_mutable_p): Use strip_array_types.
5581
55822000-12-07  Nathan Sidwell  <nathan@codesourcery.com>
5583
5584	* cp-tree.h (sufficient_parms_p): Declare new function.
5585	* call.c (sufficient_parms_p): New function, broken out of ...
5586	(add_function_candidate): ... here. Use it.
5587	(add_conv_candidate): Use it.
5588	* decl.c (grok_ctor_properties): Use it.
5589
55902000-12-07  Jakub Jelinek  <jakub@redhat.com>
5591
5592	* optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
5593
55942000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
5595
5596	* decl2.c (lang_decode_option): Handle -Wformat-security.
5597
55982000-12-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5599
5600	* pt.c (verify_class_unification): New function.
5601	(get_class_bindings): Use it.
5602	(try_class_unification): Tidy.
5603	(unify): Handle when argument of a template-id is not
5604	template parameter dependent.
5605	(template_args_equal): Handle when TREE_CODE's do not match.
5606
56072000-12-06  Alexandre Oliva  <aoliva@redhat.com>
5608
5609	* lang-specs.h (c++): When invoking the stand-alone preprocessor
5610	for -save-temps, pass all relevant -Defines to it, and then don't
5611	pass them to cc1plus.
5612
56132000-12-05  Will Cohen  <wcohen@redhat.com>
5614
5615	* decl.c (finish_case_label): Cleared
5616	more_cleanups_ok in surrounding function scopes.
5617	(define_label): Likewise.
5618
56192000-12-05  Nathan Sidwell  <nathan@codesourcery.com>
5620
5621	* cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
5622	(get_matching_virtual): Remove.
5623	(look_for_overrides): Declare new function.
5624	* decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
5625	DECL_VINDEX here.
5626	* class.c (check_for_override): Move base class iteration code
5627	to look_for_overrides.
5628	* search.c (next_baselink): Remove.
5629	(get_virtuals_named_this): Remove.
5630	(get_virtual_destructor): Remove.
5631	(tree_has_any_destructors_p): Remove.
5632	(struct gvnt_info): Remove.
5633	(check_final_overrider): Remove `virtual' from error messages.
5634	(get_matching_virtuals): Remove. Move functionality to ...
5635	(look_for_overrides): ... here, and ...
5636	(look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
5637	to be overriding.
5638
56392000-12-05  Nathan Sidwell  <nathan@codesourcery.com>
5640
5641	* typeck.c (get_delta_difference): If via a virtual base,
5642	return zero.
5643	* cvt.c (cp_convert_to_pointer): If via a virtual base, do no
5644	adjustment.
5645
56462000-12-04  Richard Henderson  <rth@redhat.com>
5647
5648	* error.c (dump_tree): Use output_add_string not OB_PUTS.
5649
56502000-12-04  Jason Merrill  <jason@redhat.com>
5651
5652	* mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
5653	(write_builtin_type): Pass intSI_type_node and the like through
5654	type_for_mode.
5655	* method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
5656	Pass intSI_type_node and the like through type_for_mode.
5657	* decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
5658	* pt.c (tsubst, unify): Likewise.
5659	* tree.c (walk_tree): Likewise.
5660	* error.c (dump_type): Likewise.
5661	(dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
5662
5663	* Make-lang.in: Tweak top comment for emacs.
5664	(cp/TAGS): Restore.
5665
5666	* except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
5667
5668	* class.c (clone_function_decl): Robustify.
5669
56702000-12-04  Michael Matz  <matzmich@cs.tu-berlin.de>
5671
5672	* decl.c (store_bindings): Only search in the non modified
5673	old_bindings for duplicates.
5674
56752000-12-04  Nathan Sidwell  <nathan@codesourcery.com>
5676
5677	* error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
5678	TYPE_POLYMORPHIC_P.
5679
5680	* typeck.c (build_static_cast): Remove unused variable.
5681
56822000-12-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
5683
5684	* pt.c: Fix typo in comment.
5685
56862000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
5687
5688	* decl2.c (warn_format): Remove definition.
5689	(lang_decode_option): Handle -Wformat-nonliteral,
5690	-Wno-format-extra-args and -Wno-format-y2k.  Use set_Wformat.
5691
56922000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
5693
5694	* decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
5695	(init_decl_processing): Don't create string_type_node,
5696	const_string_type_node, wint_type_node, intmax_type_node,
5697	uintmax_type_node, default_function_type, ptrdiff_type_node and
5698	unsigned_ptrdiff_type_node.  Adjust position of call to
5699	c_common_nodes_and_builtins.
5700	(identifier_global_value): New function.
5701
57022000-12-01  Nathan Sidwell  <nathan@codesourcery.com>
5703
5704	* call.c (standard_conversion): Reject pointer to member
5705	conversions from ambiguous, inaccessible or virtual bases.
5706	* typeck.c (build_static_cast): Don't check pointers to members
5707	specially.
5708
57092000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
5710
5711	* method.c (do_build_copy_constructor): Preserve cv
5712	qualifications when accessing source object members.
5713	(do_build_assign_ref): Likewise. Remove separate diagnostics for
5714	unnamed fields.
5715
57162000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
5717
5718	* method.c (do_build_assign_ref): Construct appropriately
5719	CV-qualified base reference. Don't allow const casts in base
5720	conversion.
5721
57222000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
5723
5724	* call.c (build_over_call): Use VOID_TYPE_P. Don't die on
5725	incomplete return type.
5726
57272000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
5728
5729	* parse.y (base_class.1): Produce a _TYPE not a _DECL.
5730	* semantics.c (finish_base_specifier): Accept a _TYPE not a
5731	_DECL.
5732
57332000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
5734
5735	* spew.c (yyerror): Cope if yylval.ttype is NULL.
5736
57372000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
5738
5739	* decl.c (grokdeclarator): Diagnose undefined template contexts.
5740
57412000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
5742
5743	* decl.c (grokdeclarator): Do type access control on friend
5744	class.
5745
57462000-11-27  Nathan Sidwell  <nathan@codesourcery.com>
5747
5748	* decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
5749	bison parser ickiness.
5750	* pt.c (tsubst_friend_function): Enter namespace scope when
5751	tsubsting the function name.
5752	* cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
5753
57542000-11-27  Nathan Sidwell  <nathan@codesourcery.com>
5755
5756	* cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
5757	* cvt.c (cp_convert_to_pointer): Add force parameter.
5758	Allow conversions via virtual base if forced.
5759	(convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
5760	(ocp_convert): Likewise.
5761	* search.c (binfo_from_vbase): Return the virtual base's binfo.
5762	* typeck.c (get_delta_difference): Adjust handling of virtual
5763	bases.
5764
57652000-11-26  Mark Mitchell  <mark@codesourcery.com>
5766
5767	* tree.c (struct list_hash): Remove.
5768	(list_hash_table): Make it be an htab.
5769	(struct list_proxy): New type.
5770	(list_hash_eq): New function.
5771	(list_hash_pieces): Renamed from ...
5772	(list_hash): ... this.
5773	(list_hash_lookup): Remove.
5774	(list_hash_add): Remove.
5775	(hash_tree_cons): Use the generic hashtable.
5776	(mark_list_hash): Remove.
5777	(init_tree): Create the hashtable.
5778
57792000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>
5780
5781	* method.c (build_mangled_C9x_name): Rename to
5782	build_mangled_C99_name.  Change C9X references in comments to
5783	refer to C99.
5784
57852000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
5786
5787	* parse.y (unary_expr): Move VA_ARG from here ...
5788	(primary): ... to here.
5789
57902000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
5791
5792	* semantics.c (finish_id_expr): If type is error_mark, return
5793	error_mark.
5794
57952000-11-23  Nathan Sidwell  <nathan@codesourcery.com>
5796
5797	* pt.c (lookup_template_class): Simplify loop exit constructs.
5798	Cope when there is no partial instantiation of a template
5799	template member.
5800
5801Thu Nov 23 02:16:47 2000  J"orn Rennecke <amylaar@redhat.com>
5802
5803	* Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
5804
58052000-11-22  Mark Mitchell  <mark@codesourcery.com>
5806
5807	* mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
5808	prefix.
5809
5810	* pt.c (do_decl_instantiate): Explicitly clone constructors and
5811	destructors that haven't already been cloned.
5812
58132000-11-20  Richard Henderson  <rth@redhat.com>
5814
5815	* parse.y (yyparse_1): Rename the parser entry point.
5816
58172000-11-20  Alex Samuel  <samuel@codesourcery.com>
5818
5819	* mangle.c (write_name): Use <unscoped-name> for names directly in
5820	function scope.
5821	(write_unscoped_name): Accept names directly in function scope.
5822
58232000-11-20  Nathan Sidwell  <nathan@codesourcery.com>
5824
5825	* lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
5826	* parse.y (extdef): Add EXPORT reduction.
5827	* spew.c (yylex): Don't skip export here.
5828
58292000-11-19  Mark Mitchell  <mark@codesourcery.com>
5830
5831	* decl.c (init_decl_processing): Correct name of pure virtual
5832	function under the new ABI.
5833	* rtti.c (throw_bad_cast): Likewise, for bad cast function.
5834	(throw_bad_typeid): Likewise for bad typeid function.
5835
58362000-11-18  Mark Mitchell  <mark@codesourcery.com>
5837
5838	* decl.c (grokparms): Don't even function types of `void' type,
5839	either.
5840	* mangle.c (write_type): Don't crash when confronted with the
5841	error_mark_node.
5842
5843	* decl.c (grokparms): Don't create parameters of `void' type.
5844
58452000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
5846
5847	* lex.c (mark_impl_file_chain): Delete.
5848	(init_parse): Remove call to ggc_add_string_root.  No need to
5849	ggc_strdup a string constant.  Do not add impl_file_chain to GC
5850	roots.
5851	(handle_pragma_implementation): No need to ggc_strdup main_filename.
5852
58532000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
5854
5855	* pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
5856
58572000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
5858
5859	* cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
5860	* decl.c (grokdeclarator): Don't reject void parms here.
5861	(require_complete_types_for_parms): Simplify, use
5862	complete_type_or_else.
5863	(grokparms): Remove bitrot. Remove funcdef parm.
5864	Deal with ellipsis parm lists here.
5865	* semantics.c (finish_parmlist): Don't append void_list_node
5866	here. Set PARMLIST_ELLIPSIS_P.
5867
58682000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
5869
5870	* typeck2.c (incomplete_type_error): Reorganise to avoid
5871	excessive diagnostics.
5872
58732000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
5874
5875	* lex.c (struct impl_files, internal_filename): Constify a char *.
5876
58772000-11-16  Mark Mitchell  <mark@codesourcery.com>
5878
5879	* mangle.c (write_special_name_constructor): Don't generate
5880	assembler junk when confronted with an old-style constructor.
5881	(write_special_name_destructor): Likewise.
5882	(mangle_decl_string): Do it here instead.
5883
58842000-11-16  Nathan Sidwell  <nathan@codesourcery.com>
5885
5886	* call.c (op_error): Make error messages clearer.
5887
58882000-11-15  Mark Mitchell  <mark@codesourcery.com>
5889
5890	* decl.c (wrapup_globals_for_namespace): Don't mark things
5891	TREE_ASM_WRITTEN when they're not.
5892
58932000-11-15  Jason Merrill  <jason@redhat.com>
5894
5895	* typeck2.c (friendly_abort): Uncount the error before handing
5896	off to fancy_abort.
5897
58982000-11-15  Nathan Sidwell  <nathan@codesourcery.com>
5899
5900	* typeck.c (lookup_anon_field): Cope with qv qualifiers.
5901
59022000-11-14  Mark Mitchell  <mark@codesourcery.com>
5903
5904	* class.c (build_vtbl_initializer): Fix typo in comment.
5905	* typeck.c (expr_sizeof): Don't crash on errors.
5906
59072000-11-14  Jim Wilson  <wilson@redhat.com>
5908
5909	* lang-specs.h: Add %2 after %(cc1_options).
5910
59112000-11-14  Richard Henderson  <rth@redhat.com>
5912
5913	* typeck.c (c_sizeof): Be strict about casting result value
5914	back to c_size_type_node.
5915	(expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
5916
59172000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5918
5919	* typeck.c (build_unary_op): Use boolean_increment from
5920	c-common.c, moving the relevant code there.
5921
59222000-11-11  Jason Merrill  <jason@redhat.com>
5923
5924	* typeck.c (mark_addressable): Don't call put_var_into_stack.
5925
5926	* decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
5927	in inlines.
5928
59292000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5930
5931	* decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
5932	* lex.c (copy_lang_decl): Likewise.
5933
59342000-11-09  Mark Mitchell  <mark@codesourcery.com>
5935
5936	* dump.c (cp_dump_tree): Don't dump function bodies here.
5937
5938	* Make-lang.in (CXX_C_OBJS): Add c-dump.o.
5939	(dump.o): Update dependency list.
5940	* cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
5941	(flag_dump_translation_unit): Likewise.
5942	(CP_TYPE_QUALS): Adjust definition.
5943	(DECL_C_BIT_FIELD): Remove.
5944	(SET_DECL_C_BIT_FIELD): Likewise.
5945	(CLEAR_DECL_C_BIT_FIELD): Likewise.
5946	(add_maybe_template): Likewise.
5947	(strip_array_types): Likewise.
5948	(dump_node_to_file): Likewise.
5949	(cp_dump_tree): New function.
5950	* decl.c (init_decl_processing): Set lang_dump_tree.
5951	* decl2.c (flag_dump_translation_unit): Remove.
5952	* dump.c: Move most of it to ../c-dump.c.
5953	(cp_dump_tree): New function.
5954	* pt.c (add_maybe_template): Remove.
5955	* typeck.c (strip_array_types): Likewise.
5956
59572000-11-07  Eric Christopher  <echristo@redhat.com>
5958
5959	* decl.c (init_decl_processing): Change definition of
5960	__wchar_t to wchar_t.  Remove artificial declaration of
5961	wchar_t.
5962	* lex.c: Change instances of __wchar_t to wchar_t.
5963
59642000-11-09  Nathan Sidwell  <nathan@codesourcery.com>
5965
5966	* lex.c (do_identifier): Don't lookup_name for operators.
5967	* parse.y (operator): Save looking_for_typename.
5968	(unoperator): Restore it.
5969	* spew.c (frob_opname): Use nth_token for lookahead.
5970
59712000-11-08  Nathan Sidwell  <nathan@codesourcery.com>
5972
5973	* decl.c (grok_op_properties): Always use coerce_new_type and
5974	coerce_delete_type.
5975	* decl2.c (coerce_new_type): Use c_size_type_node. Preserve
5976	exception specification. Tidy up.
5977	(coerce_delete_type): Preserve exception specification. Tidy up.
5978
59792000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
5980
5981	* class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
5982	(push_binding_level), error.c (cp_tree_printer), pt.c
5983	(process_partial_specialization, tsubst_template_arg_vector),
5984	search.c (lookup_member): Use memset () instead of bzero ().
5985
59862000-11-07  Nathan Sidwell  <nathan@codesourcery.com>
5987
5988	* decl.c (build_ptrmemfunc_type): Allow error_mark_node.
5989
59902000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
5991
5992	* Make-lang.in (c++.distdir): Remove.
5993
59942000-11-04  Mark Mitchell  <mark@codesourcery.com>
5995
5996	* decl2.c (do_nonmember_using_decl): Allow `extern "C"'
5997	declarations from different namespaces to be combined.
5998
59992000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>
6000
6001	* decl.c: Include tm_p.h.
6002
60032000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
6004
6005	* tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
6006
60072000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6008
6009	* dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
6010	(build_overload_value), repo.c (open_repo_file), xref.c
6011	(open_xref_file): Use strchr () and strrchr () instead of index ()
6012	and rindex ().
6013
60142000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
6015
6016	* call.c (build_over_call): Call fold on the CALL_EXPR.
6017
60182000-11-01  Gabriel Dos Reis  <gdr@codesourcery.com>
6019
6020	* error.c (dump_template_decl): Separate template hearders with
6021	space not comma.
6022
60232000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>
6024
6025	* error.c: Move TFF_ macros into cp-tree.h.  Throughout, replace
6026	TS_* flags with corresponding TFF_*.  Adjust prototypes of
6027	functions (which used to take a tree_string_flags) to take an int.
6028
6029	* cp-tree.h (enum tree_string_flags): Remove
6030	(TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
6031	TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
6032	TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
6033	TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
6034	TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
6035	TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
6036	(type_as_string, decl_as_string, expr_as_string,
6037	context_as_string): Adjust prototype.
6038
6039	* class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
6040	instead of TS_PLAIN.
6041
6042	* pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
6043	instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
6044	plain `0'.
6045
60462000-10-30  Mark Mitchell  <mark@codesourcery.com>
6047
6048	* cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
6049	(linkage_kind): New enumeration.
6050	(decl_linkage): New function.
6051	* decl2.c (comdat_linkage): Extend comment.
6052	* error.c (dump_function_decl): Print the arguments used to
6053	instantiate a template, even when not printing the type of the
6054	function.
6055	* pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
6056	not TREE_PUBLIC, to test for external linkage.
6057	* tree.c (decl_linkage): New function.
6058
60592000-10-28  Mark Mitchell  <mark@codesourcery.com>
6060
6061	* pt.c (instantiate_decl): Always instantiate static data members
6062	initialized in-class.
6063
60642000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
6065
6066	* Make-lang.in: Move all build rules here from Makefile.in,
6067	adapt to new context.  Wrap all rules that change the current
6068	directory in parentheses.  Expunge all references to $(P).
6069	When one command depends on another and they're run all at
6070	once, use && to separate them, not ;.  Add OUTPUT_OPTION to
6071	all object-file generation rules.  Delete obsolete variables.
6072
6073	* Makefile.in: Delete.
6074	* config-lang.in: Delete outputs= line.
6075
60762000-10-26  Gabriel Dos Reis  <gdr@codesourcery.com>
6077
6078	* error.c (dump_function_decl): Print no space between
6079	`ptr-operator' the `type-specifier' of the return type.
6080	(dump_type_prefix): Make sure we put space at the appropriate
6081	place.
6082
60832000-10-23  Jason Merrill  <jason@redhat.com>
6084
6085	* call.c (equal_functions): Also call decls_match for extern "C" fns.
6086
60872000-10-22  Jason Merrill  <jason@redhat.com>
6088
6089	* call.c (build_conditional_expr): Use ocp_convert to force
6090	rvalue conversion.
6091
60922000-10-22  Mark Mitchell  <mark@codesourcery.com>
6093
6094	* call.c (standard_conversion): Use RVALUE_CONVs for all
6095	expressions that satisfy lvalue_p, not just those that satisfy
6096	real_lvalue_p.
6097
6098	* optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
6099
6100	* typeck.c (c_sizeof): Return an expression of `size_t' type,
6101	not one with TYPE_IS_SIZETYPE set.
6102	(dubious_conversion_warnings): Remove special-case code.
6103
61042000-10-21  Geoffrey Keating  <geoffk@cygnus.com>
6105
6106	* decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
6107	* error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
6108	(dump_type_prefix): Print vector-of-int as 'int vector'.
6109	(dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
6110	* tree.c (walk_tree): Handle VECTOR_TYPE.
6111
6112	* decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
6113
61142000-10-21  Jason Merrill  <jason@redhat.com>
6115
6116	* parse.y (operator): Set got_object from got_scope.
6117	Set looking_for_typename.
6118	* decl.c (lookup_name_real): Clear val after setting from_obj.
6119	Reorganize diagnostic.
6120
61212000-10-20  Jason Merrill  <jason@redhat.com>
6122
6123	* tree.c (walk_tree): Don't walk into default args.
6124
6125	* error.c (dump_expr): Use host_integerp.
6126
61272000-10-20  David Edelsohn  <edelsohn@gnu.org>
6128
6129	* typeck2.c (abstract_virtuals_error): Use "because" instead of
6130	"since" in error message.
6131
6132Fri Oct 20 13:54:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6133
6134	* typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
6135
61362000-10-20  Jeffrey Oldham  <oldham@codesourcery.com>
6137
6138	* decl.c (revert_static_member_fn): Fixed typo.
6139
61402000-10-19  Mark Mitchell  <mark@codesourcery.com>
6141
6142	* class.c (subobject_offset_fn): New type.
6143	(dfs_record_base_offsets): Remove.
6144	(record_base_offsets): Likewise.
6145	(dfs_search_base_offsets): Likewise.
6146	(record_subobject_offset): New function.
6147	(check_subobject_offset): Likewise.
6148	(walk_subobject_offsets): Likewise.
6149	(record_subobject_offsets): Likewise.
6150	(layout_conflict_p): Reimplement.
6151	(layout_nonempty_base_or_field): Correct handling of type
6152	conflicts during layout.
6153	(layout_empty_base): Likewise.
6154	(build_base_field): Adjust to handle new representation of empty
6155	base offset table.
6156	(build_base_fields): Likewise.
6157	(layout_virtual_bases): Likewise.
6158	(splay_tree_compare_integer_csts): New function.
6159	(layout_class_type): Use a splay_tree, rather than a varray, to
6160	represent the offsets of empty bases.
6161
6162	* cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
6163	* decl.c (select_decl): Don't return declarations that are
6164	DECL_ANTICIPATED.
6165
61662000-10-18  Mark Mitchell  <mark@codesourcery.com>
6167
6168	* cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
6169	(fake_std_node): New macro.
6170	* decl.c (in_std): Rename to ...
6171	(in_fake_std): ... this.
6172	(flag_no_builtin): Remove.
6173	(flag_no_nonansi_builtin): Likewise.
6174	(walk_namespaces_r): Use fake_std_node.
6175	(push_namespace): Use std_identifier.
6176	(pop_namespace): Use in_fake_std.
6177	(lookup_name_real): Use fake_std_node.
6178	(init_decl_processing): When -fhonor-std, create the `std'
6179	namespace.  Don't create a dummy fake_std_node in that case.
6180	Adjust call to c_common_nodes_and_builtins.  Use std_identifier.
6181	(builtin_function): Put builtins whose names don't begin
6182	with `_' in the std namespace.
6183	* decl2.c (flag_no_builtin): Remove.
6184	(flag_no_nonansi_builtin): Likewise.
6185	(set_decl_namespace): Use fake_std_node.
6186	(validate_nonmember_using_decl): Likewise.
6187	(do_using_directive): Likewise.
6188	(handle_class_head): Likewise.
6189	* dump.c (dequeue_and_dump): Likewise.
6190	* except.c (init_exception_processing): Use std_identifier.
6191	* init.c (build_member_call): Use fake_std_node.
6192	* rtti.c (init_rtti_processing): Use std_identifier.
6193
61942000-10-17  Mark Mitchell  <mark@codesourcery.com>
6195
6196	* cp-tree.h (back_end_hook): Remove declaration.
6197	* decl2.c (back_end_hook): Remove definition.
6198
6199	* dump.c (dequeue_and_dump): Dump TREE_USED.
6200
6201Tue Oct 17 20:19:06 2000  Brad Lucier <lucier@math.purdue.edu>
6202
6203	* spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
6204
62052000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
6206
6207	* decl.c (WINT_TYPE): Define.
6208	(init_decl_processing): Create types unsigned_ptrdiff_type_node,
6209	c_size_type_node, signed_size_type_node and wint_type_node.
6210
62112000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
6212
6213	* decl2.c (warn_missing_format_attribute): New variable.
6214	(lang_decode_option): Decode -Wmissing-format-attribute.
6215
62162000-10-16  Mark Mitchell  <mark@codesourcery.com>
6217
6218	* typeck.c (qualify_type): Remove.
6219	(composite_pointer_type): Fix handling of conversions to `cv void*'.
6220
62212000-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6222
6223	* Makefile.in (parse.c, parse.h): Fix think-o in last patch.
6224
62252000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6226
6227	* Makefile.in (parse.c, parse.h): Create atomically.
6228
62292000-10-12  Mark Mitchell  <mark@codesourcery.com>
6230
6231	* class.c (current_obstack): Remove.
6232	* decl.c (ggc_p): Remove.
6233	(start_decl): Don't use decl_tree_cons.
6234	(grokdeclarator): Don't use build_decl_list.
6235	(start_function): Don't use decl_tree_cons.
6236	(finish_function): Don't mess with obstacks.
6237	* decl2.c (grok_x_components): Don't use build_decl_list.
6238	* lex.c (make_call_declarator): Don't call decl_tree_cons.
6239	(implicitly_declare_fn): Don't call build_decl_list.
6240	* parse.y (frob_specs): Don't call build_decl_list or
6241	decl_tree_cons.
6242	(expr_or_declarator_intern): Don't call decl_tree_cons.
6243	(primary): Don't call build_decl_list.
6244	(fcast_or_absdcl): Likewise.
6245	(typed_declspecs): Don't call decl_tree_cons.
6246	(reserved_declspecs): Don't call build_decl_list.
6247	(declmods): Likewise.
6248	(reserved_typespecquals): Likewise.
6249	(aggr): Likewise.
6250	(new_type_id): Likewise.
6251	(cv_qualifiers): Likewise.
6252	(after_type_declarator_intern): Likewise.
6253	(notype_declarator_intern): Likewise.
6254	(absdcl_intern): Likewise.
6255	(named_parm): Likewise.
6256	* pt.c (most_specialized_class): Likewise.
6257	* repo.c (temporary_obstack): Make it a structure, not a pointer.
6258	(init_repo): Initialize it.
6259	* search.c (current_obstack): Remove.
6260	* typeck2.c (add_exception_specifier): Don't call build_decl_list.
6261
62622000-10-09  Richard Henderson  <rth@cygnus.com>
6263
6264	* Make-lang.in (CXX_EXTRA_HEADERS): Remove.
6265	(c++ language support bits for libgcc): Remove.
6266	(c++.clean): Remove cplib2.txt cleanup.
6267	* config-lang.in (headers, lib2funcs): Remove.
6268
6269	* exception.cc, new.cc, new1.cc, new2.cc: Remove files.
6270	* tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
6271	* inc/cxxabi.h, inc/exception, inc/new: Remove files.
6272	* inc/new.h, inc/typeinfo: Remove files.
6273
62742000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6275
6276	* decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
6277	defined.
6278	(init_decl_processing): Initialize intmax_type_node and
6279	uintmax_type_node.
6280
62812000-10-06  Richard Henderson  <rth@cygnus.com>
6282
6283	* cp-tree.h (struct cp_language_function): Remove x_result_rtx.
6284	(original_result_rtx): Remove.
6285	* decl.c (save_function_data): Don't clear x_result_rtx.
6286	(mark_lang_function): Don't mark it either.
6287	* expr.c (fixup_result_decl): Remove.
6288	* semantics.c (genrtl_named_return_value): Frob the return decl
6289	before calling emit_local_var.
6290	(genrtl_finish_function): Don't call fixup_result_decl.
6291	Always emit the jump to return_label.
6292
62932000-10-06  Nathan Sidwell  <nathan@codesourcery.com>
6294
6295	* pt.c (lookup_template_class): Set current access for enum.
6296	(tsubst_enum): Set file & line for enum decl.
6297
6298	* spew.c (yylex): Remove unused variable.
6299
63002000-10-05  Richard Henderson  <rth@cygnus.com>
6301
6302	* semantics.c (genrtl_finish_function): Don't init or check
6303	can_reach_end; remove noreturn and return value checks.
6304
63052000-10-05  Tom Tromey  <tromey@cygnus.com>
6306
6307	* init.c (build_java_class_ref): Use `build_static_name' with a
6308	suffix, not a prefix, to build the class object's name.
6309
63102000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
6311
6312	* cp-tree.h (access_kind): Fix comment typo.
6313	* decl2.c (grokfield): Fix diagnostic typo.
6314	* semantics.c (finish_template_type): Fix comment typo.
6315	(finish_qualified_object_call_expr): Likewise.
6316
63172000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
6318
6319	* pt.c (tsubst_expr, DECL_STMT case): Don't process if
6320	tsubsting fails.
6321
63222000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
6323
6324	* spew.c (frob_id): New static function.
6325	(frob_opname): Use it.
6326	(yylex): Use it.
6327
63282000-10-01  Mark Mitchell  <mark@codesourcery.com>
6329
6330	* decl.c (lang_mark_false_label_stack): Remove.
6331	* lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
6332
63332000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
6334
6335	* gxxint.texi: Use @email for formatting email addresses.
6336
63372000-09-29  Gabriel Dos Reis  <gdr@codesourcery.com>
6338
6339	* error.c: Remove direct obstack manipulation.  Replace with
6340	output_buffer-based formatting.  Adjust calls to removed macros.
6341	(obstack_chunk_alloc, obstack_chunk_free): Remove.
6342	(OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
6343	OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
6344
63452000-09-24  Mark Mitchell  <mark@codesourcery.com>
6346
6347	* ir.texi: Move to ../c-tree.texi.
6348
63492000-09-20  Jason Merrill  <jason@redhat.com>
6350
6351	* decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
6352
63532000-09-21  Andreas Jaeger  <aj@suse.de>
6354
6355	* errfn.c: Move declaration of cp_printer and cp_printers to ...
6356	* cp-tree.h: ... here.
6357
6358	* error.c: Remove declaration of cp_printer.
6359
63602000-09-20  Mark Mitchell  <mark@codesourcery.com>
6361
6362	* tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
6363
63642000-09-20  Hans-Peter Nilsson  <hp@axis.com>
6365
6366	* except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
6367	users.
6368
63692000-09-18  Mark Mitchell  <mark@codesourcery.com>
6370
6371	* decl.c (start_function): Robustify.
6372
63732000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6374
6375	* cp-tree.h (check_function_format): Accept a `status' parameter.
6376
6377	* call.c, typeck.c: Updates calls to `check_function_format'.
6378
63792000-09-17  Geoffrey Keating  <geoffk@cygnus.com>
6380
6381	* decl2.c (handle_class_head): Always push some scope even
6382	in the error case.
6383
63842000-09-16  Mark Mitchell  <mark@codesourcery.com>
6385
6386	* cp-tree.h (struct cp_language_function): Remove
6387	x_scope_stmt_stack and name_declared.
6388	(current_scope_stmt_stack): Remove.
6389	(function_name_declared_p): New macro.
6390	(struct lang_decl_flags): Use c_lang_decl as a base class.
6391	(context): Remove.
6392	(struct lang_decl): Replace saved_tree with context.
6393	(DECL_FRIEND_CONTEXT): Adjust accordingly.
6394	(SET_DECL_FRIEND_CONTEXT): Likewise.
6395	(DECL_VIRTUAL_CONTEXT): Likewise.
6396	(DECL_SAVED_TREE): Remove.
6397	(C_DECLARED_LABEL_FLAG): Likewise.
6398	(cplus_expand_expr_stmt): Don't declare.
6399	(add_decl_stmt): Likewise.
6400	(add_scope_stmt): Likewise.
6401	* decl.c (mark_stmt_tree): Remove.
6402	(case_compare): Likewise.
6403	(finish_case_label): Use c_add_case_label.
6404	(init_decl_processing): Set more language-specific hooks.
6405	(build_enumerator): Fix typo in comment.
6406	(cplus_expand_expr_stmt): Remove.
6407	(mark_lang_function): Use mark_c_language_function.
6408	(lang_mark_tree): Use c_mark_lang_decl.
6409	* decl2.c: Change order of inclusion.
6410	* except.c: Likewise.
6411	* expr.c (cplus_expand_expr): Remove handling of STMT_EXPR.  Fall
6412	back on c_expand_expr.
6413	* friend.c: Include expr.h.
6414	* init.c: Change order of inclusion.
6415	* Makefile.in: Update dependencies.
6416	* lex.h (free_lang_decl_chain): Remove.
6417	* optimize.c (maybe_clone_body): Use function_name_declared_p.
6418	* pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
6419	it doesn't exist.
6420	(instantiate_decl): Use function_name_declared_p.
6421	* semantics.c (lang_expand_expr_stmt): Remove.
6422	(set_current_function_name_declared): Likewise.
6423	(current_function_name_declared): Likewise.
6424	(begin_compound_stmt): Use function_name_declared_p.
6425	(add_decl_stmt): Remove.
6426	(setup_vtbl_ptr): Use function_name_declared_p.
6427	(add_scope_stmt): Remove.
6428	(current_scope_stmt_stack): New function.
6429	(cp_expand_stmt): Don't handle SCOPE_STMTs.
6430	(expand_body): Use function_name_declared_p.
6431	* tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
6432	* typeck.c: Change order of includes.
6433	(convert_sequence): Remove.
6434
64352000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
6436
6437	* lex.c (reswords): Add _Complex.
6438
6439Thu Sep 14 12:10:45 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6440
6441	* Make-lang.in (cplib2.txt): Depend on cp/Makefile.
6442
64432000-09-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
6444
6445	* init.c (begin_init_stmts): Don't use // comments.
6446
64472000-09-12  Jason Merrill  <jason@redhat.com>
6448
6449	* decl.c (maybe_deduce_size_from_array_init): Set do_default for
6450	all non-extern arrays.
6451
6452	* decl.c (grokdeclarator): Complain about 'friend T' for implicit
6453	typenames, too.  Downgrade complaint to pedwarn.
6454	(xref_tag): Warn about surprising behavior of 'friend struct T'.
6455	* decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
6456	'class This::Inherited'.
6457
64582000-09-12  Mark Mitchell  <mark@codesourcery.com>
6459
6460	* decl.c (finish_case_label): Given the LABEL_DECL a
6461	DECL_CONTEXT.
6462
64632000-09-12  Gabriel Dos Reis  <gdr@codesourcery.com>
6464
6465	* error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
6466	TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
6467	TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
6468	TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
6469	TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
6470	New macros.
6471	(sorry_for_unsupported_tree, print_scope_operator,
6472	print_left_paren, print_right_paren, print_left_bracket,
6473	print_right_bracket, print_whitespace): Likewise.
6474	(aggr_variety): Rename to class_key_or_enum.
6475	(print_type): Rename to print_type_id.
6476	(print_type_specifier_seq, print_simple_type_specifier,
6477	print_elaborated_type_specifier,
6478	print_rest_of_abstract_declarator,
6479	print_parameter_declaration_clause, print_exception_specification,
6480	print_nested_name_specifier, print_template_id,
6481	typedef_original_name,  print_template_argument_list_start,
6482	print_template_argument_list_end): New functions.
6483
64842000-09-11  Gabriel Dos Reis  <gdr@codesourcery.com>
6485
6486	* ir.texi: Add more documentation.
6487
64882000-09-11  Mark Mitchell  <mark@codesourcery.com>
6489
6490	* cp-tree.h (struct saved_scope): Remove x_function_parms.
6491	(current_function_parms): Don't define.
6492	(struct cp_language_function): Remove parms_stored.
6493	(current_function_just_assigned_this): Don't define.
6494	(current_function_parms_stored): Likewise.
6495	(static_ctors): Declare.
6496	(static_dtors): Likewise.
6497	(SF_EXPAND): Don't define.
6498	(expand_start_early_try_stmts): Remove declaration.
6499	(store_parm_decls): Likewise.
6500	* decl.c (static_ctors): Don't declare.
6501	(static_dtors): Likewise.
6502	(struct binding_level): Remove this_block.
6503	(poplevel): Remove dead code.
6504	(set_block): Likewise.
6505	(mark_binding_level): Don't mark this_block.
6506	(mark_saved_scope): Don't mark x_function_parms.
6507	(init_decl_processing): Don't add current_function_parms as a GC
6508	root.
6509	(check_function_type): Change prototype.
6510	(start_function): Remove RTL-generation code.
6511	(expand_start_early_try_stmts): Remove.
6512	(store_parm_decls): Give it internal linkage.  Remove
6513	RTL-generation code.
6514	(finish_function): Remove RTL-generation code.
6515	* decl2.c (static_ctors): Fix formatting.
6516	(static_dtors): Likewise.
6517	* method.c (use_thunk): Don't call store_parm_decls.
6518	(synthesize_method): Likewise.
6519	* optimize.c (maybe_clone_body): Likewise.
6520	* parse.y (fn.def2): Likewise.
6521	(.set_base_init): Likewise.
6522	(nodecls): Likewise.
6523	* pt.c (instantiate_decl): Likewise.
6524	* rtti.c (synthesize_tinfo_fn): Likewise.
6525	* semantics.c (genrtl_try_block): Simplify.
6526	(expand_body): Use genrtl_start_function and
6527	genrtl_finish_function.
6528	(genrtl_start_function): New function.
6529	(genrtl_finish_function): Likewise.
6530
65312000-09-11  Nathan Sidwell  <nathan@codesourcery.com>
6532
6533	* error.c (cp_tree_printer, case 'P'): Append break.
6534
65352000-09-11  Nathan Sidwell  <nathan@codesourcery.com>
6536
6537	* cp-tree.h (frob_opname): Declare.
6538	* parse.y (saved_scopes): New static variable.
6539	(cp_parse_init): Adjust.
6540	(do_id): If lastiddecl is NULL, do do_identifier.
6541	(operator): Save scope information.
6542	(unoperator): New reduction. Restore scope information.
6543	(operator_name): Append unoperator. Call frob_opname.
6544	* spew.c (frob_opname): Define.
6545
65462000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
6547
6548	* decl.c, rtti.c: Include defaults.h if not already included.
6549	Don't define the *_TYPE_SIZE macros.
6550
65512000-09-09  Mark Mitchell  <mark@codesourcery.com>
6552
6553	* cp-tree.h (push_switch): Change prototype.
6554	(check_cp_case_value): Remove declaration.
6555	(decl_constant_value): Likewise.
6556	* decl.c (struct cp_switch): Add switch_stmt and cases.
6557	(case_compare): New function.
6558	(push_switch): Set switch_stmt.  Initialize cases.
6559	(pop_switch): Clean up cases.
6560	(define_case_label): Rename to ...
6561	(finish_case_label): ... this.  Do semantic analysis for case
6562	labels here.
6563	(start_function): Correct comment.
6564	* decl2.c (check_cp_case_value): Remove.
6565	* expr.c (do_case): Remove.
6566	* pt.c (tsubst_expr): Adjust call to finish_case_label.
6567	* semantics.c (genrtl_do_poplevel): Remove declaration.
6568	(RECHAIN_STMTS): Remove.
6569	(finish_break_stmt): Use build_break_stmt.
6570	(finish_continue_stmt): Use build_continue_stmt.
6571	(finish_switch_cond): Adjust condition here, rater than in
6572	c_expand_start_case.
6573	(finish_case_label): Remove.
6574	* typeck.c (c_expand_return): Remove.
6575	(c_expand_start_case): Likewise.
6576
65772000-09-07  Gabriel Dos Reis  <gdr@codesourcery.com>
6578
6579	* ir.texi: Document type nodes.
6580
65812000-09-06  Mark Mitchell  <mark@codesourcery.com>
6582
6583	* cp-tree.h (init_cp_semantics): Declare.
6584	(genrtl_try_block): Don't declare.
6585	(genrtl_handler): Likewise.
6586	(genrtl_catch_block): Likewise.
6587	(genrtl_ctor_stmt): Likewise.
6588	(genrtl_subobject): Likewise.
6589	(genrtl_do_poplevel): Likewise.
6590	(genrtl_named_return_value): Likewise.
6591	* lex.c (init_parse): Call init_cp_semantics.
6592	* semantics.c (genrtl_try_block): Give it internal linkage.
6593	(genrtl_handler): Likewise.
6594	(genrtl_catch_block): Likewise.
6595	(genrtl_ctor_stmt): Likewise.
6596	(genrtl_subobject): Likewise.
6597	(genrtl_do_poplevel): Likewise.
6598	(genrtl_named_return_value): Likewise.
6599	(lang_expand_stmt): Rename to ...
6600	(cp_expand_stmt): ... this.  Only handle C++-specific nodes.
6601	(init_cp_semantics): Define.
6602
6603	* decl.c (initialize_local_var): Remove RTL-generating code.
6604	* semantics.c (genrtl_try_block): Fix formatting.
6605
6606	Move statement-tree facilities from C++ to C front-end.
6607	* cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
6608	(void_zero_node): Remove.
6609	(stmt_tree): Likewise.
6610	(scope_chain): Adjust.
6611	(language_function): Rename to cp_language_function.
6612	(cp_function_chain): Adjust.
6613	(current_stmt_tree): Remove.
6614	(last_tree): Likewise.
6615	(last_expr_type): Likewise.
6616	(struct lang_decl): Adjust.
6617	(STMT_IS_FULL_EXPR_P): Remove.
6618	(add_tree): Remove.
6619	(begin_stmt_tree): Likewise.
6620	(finish_stmt_tree): Likewise.
6621	(walk_tree_fn): Likewise.
6622	(walk_stmt_tree): Likewise.
6623	* class.c (finish_struct): Replace use of add_tree with add_stmt.
6624	* decl.c (mark_stmt_tree): Adjust type.
6625	(init_decl_processing): Don't build void_zero_node.
6626	(initialize_local_var): Adjust usage of current_stmt_tree.
6627	(finish_enum): Use add_stmt, not add_tree.
6628	(save_function_data): Adjust use of language_function.
6629	(finish_constructor_body): Use add_stmt, not add_tree.
6630	(finish_destructor_body): Likewise.
6631	(push_cp_function_context): Adjust use of language_function.
6632	(pop_cp_function_context): Likewise.
6633	(mark_lang_function): Likewise.
6634	(mark_cp_function_context): Likewise.
6635	* init.c (build_aggr_init): Adjust use of current_stmt_tree.
6636	(build_vec_init): Likewise.
6637	* semantics.c (SET_LAST_STMT): Remove.
6638	(RECHAIN_STMTS): Don't use it.
6639	(stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
6640	(current_stmt_tree): Define.
6641	(add_tree): Remove.
6642	(finish_goto_stmt): Use add_stmt, not add_tree.
6643	(finish_expr_stmt): Likewise.
6644	(begin_if_stmt): Likewise.
6645	(finish_then_clause): Likewise.
6646	(begin_while_stmt): Likewise.
6647	(begin_do_stmt): Likewise.
6648	(finish_return_stmt): Likewise.
6649	(begin_for_stmt): Likewise.
6650	(finish_break_stmt): Likewise.
6651	(finish_continue_stmt): Likewise.
6652	(begin_switch_stmt): Likewise.
6653	(finish_case_label): Likewise.
6654	(begin_try_block): Likewise.
6655	(begin_function_try_block): Likewise.
6656	(begin_handler): Likewise.
6657	(begin_catch_block): Likewise.
6658	(begin_compound_stmt): Likewise.
6659	(begin_asm_stmt): Likewise.
6660	(finish_asm_stmt): Likewise.
6661	(finish_label_stmt): Likewise.
6662	(add_decl_stmt): Likewise.
6663	(finish_subobject): Likewise.
6664	(finish_decl_cleanup): Likewise.
6665	(finish_named_return_value): Likewise.
6666	(setup_vtbl_ptr): Likewise.
6667	(add_scope_stmt): Likewise.
6668	(finish_stmt_expr): Likewise.
6669	(prune_unused_decls): Remove.
6670	(begin_stmt_tree): Likewise.
6671	(finish_stmt_tree): Likewise.
6672	(prep_stmt): Adjust use of current_stmt_tree.
6673	(lang_expand_stmt): Likewise.
6674	* tree.c (statement_code_p): Remove.
6675	(cp_statement_code_p): New function.
6676	(walk_stmt_tree): Remove.
6677	(init_tree): Set lang_statement_code_p.
6678
66792000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
6680
6681	Integrated preprocessor.
6682
6683	* Make-lang.in, Makefile.in: Remove all references to input.c,
6684	gxx.gperf, and hash.h.  Add ../c-lex.o to C_OBJS.
6685	* gxx.gperf, hash.h, input.c: Delete.
6686	* lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
6687	initialized properly.
6688
6689	* class.c (fixup_pending_inline): Take a tree, not a
6690	struct pending_inline *.  All callers changed.
6691	(init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
6692	RID_PROTECTED entries in ridpointers[] array here.
6693	* decl.c (duplicate_decls): Do not refer to struct
6694	pending_inline.
6695	(record_builtin_type, init_decl_processing): Use RID_MAX not
6696	CP_RID_MAX.
6697	(grokdeclarator): Use C_IS_RESERVED_WORD.
6698	* decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
6699	cpplib.
6700	(grok_x_components): Do not inspect pending_inlines chain.
6701
6702	* cp-tree.h (struct lang_identifier): Add rid_code entry.
6703	(C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
6704	(flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
6705	(DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
6706	TIME_IDENTIFIER_FILEINFO): Kill.
6707	Update prototypes.
6708	* lex.h: Expunge cp_rid.  Rewrite RIDBIT macros to use just a
6709	single 32-bit word.
6710	* parse.y: Call do_pending_inlines unconditionally.
6711	reinit_parse_for_method is now snarf_method.  fn.defpen is no
6712	longer necessary.  Remove unnecessary <itype> annotation on
6713	SCOPE.  Do not refer to end_of_file or struct pending_inline.
6714	* semantics.c (begin_inline_definitions): Call
6715	do_pending_inlines unconditionally.
6716
6717	* lex.c: Remove all code now shared with C front end.
6718	Initialize cpplib properly if USE_CPPLIB.  Put reserved words
6719	into the get_identifier table.  Rewrite pragma handling to
6720	work with the registry.  Move code to save tokens for later
6721	processing to spew.c.
6722
6723	* spew.c: Rewrite everything in terms of token streams instead
6724	of text.  Move routines here from lex.c / input.c as
6725	appropriate.  GC-mark trees hanging off the pending inlines
6726	chain.
6727
67282000-09-06  Mark Mitchell  <mark@codesourcery.com>
6729
6730	* NEWS: Mention that the named return value extension has been
6731	deprecated.
6732	* cp-tree.h (original_result_rtx): Define.
6733	(TREE_REFERENCE_EXPR): Remove.
6734	(DECL_VPARENT): Likewise.
6735	(pushdecl_nonclass_level): Likewise.
6736	(store_return_init): Likewise.
6737	(reinit_lang_specific): Likewise.
6738	(genrtl_named_return_value): Change prototype.
6739	* decl.c (original_result_rtx): Remove.
6740	(cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
6741	Do not generate RTL for local variables here.
6742	(store_return_init): Remove.
6743	* semantics.c (genrtl_named_return_value): Simplify.  Fold in
6744	store_return_init.
6745	(finish_named_return_value): Adjust accordingly.  Warn that this
6746	extension is deprecated.
6747	(lang_expand_stmt): Adjust call to genrtl_named_return_value.
6748
67492000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
6750
6751	* pt.c (type_unification_real): Replace switch with if.
6752	(unify): Tsubst non-type parms before comparing.
6753
67542000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
6755
6756	* error.c (dump_typename): New function, broken out of ...
6757	(dump_type): ... here. Use it.
6758	* typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
6759
67602000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
6761
6762	* init.c (build_offset_ref): Deal with namespace scoped
6763	TEMPLATE_ID_EXPRs.
6764
67652000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
6766
6767	* class.c (resolve_address_of_overloaded_function): Add
6768	explanation message.
6769	* decl.c (define_case_label): Reformat explanation.
6770	* decl2.c (finish_static_data_member_decl): Likewise.
6771	(grokfield): Likewise.
6772	* friend.c (do_friend): Likewise.
6773
67742000-09-05  Zack Weinberg  <zack@wolery.cumb.org>
6775
6776	* tree.c (walk_tree): Expose tail recursion.
6777	(walk_stmt_tree): New function.
6778	* cp-tree.h: Prototype walk_stmt_tree.
6779	* semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
6780	the BLOCKs directly.  If a BLOCK has no variables after
6781	pruning, discard it.
6782	(finish_stmt_tree): Use walk_stmt_tree.  No need to save and
6783	restore the line number.
6784
67852000-09-05  Mark Mitchell  <mark@codesourcery.com>
6786
6787	* Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
6788	(pt.o): Remove dependency on HTAB_H.
6789	* cp-tree.h: Include hashtab.h.
6790	(walk_tree): Change prototype.
6791	(walk_tree_without_duplicates): New function.
6792	* decl.c (check_default_argument): Use it.
6793	* optimize.c (remap_decl): Adjust calls to walk_tree.
6794	(copy_body): Likewise.
6795	(expand_calls_inline): Likewise.
6796	(calls_setjmp_p): Use walk_tree_without_duplicates.
6797	* pt.c: Don't include hashtab.h.
6798	(for_each_template_parm): Use walk_tree_without_duplicates.
6799	* semantics.c (finish-stmt_tree): Likewise.
6800	(expand_body): Likewise.
6801	* tree.c (walk_tree): Add additional parameter.
6802	(walk_tree_without_duplicates): New function.
6803	(count_trees): Use it.
6804	(verify_stmt_tree): Adjust call to walk_tree.
6805	(find_tree): Use walk_tree_without_duplicates.
6806	(no_linkage_check): Likewise.
6807	(break_out_target_exprs): Adjust call to walk_tree.
6808	(cp_unsave): Likewise.
6809
68102000-09-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6811
6812	* cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
6813	(TEMPLATE_TEMPLATE_PARM): Adjust comment.
6814	* cp-tree.h (TYPE_BINFO): Adjust comment.
6815	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
6816	(TEMPLATE_TYPE_PARM_INDEX): Likewise.
6817	(IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
6818	(TYPE_TEMPLATE_INFO): Likewise.
6819	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
6820	* class.c (push_nested_class): Likewise.
6821	* decl.c (lookup_name_real): Likewise.
6822	(grokdeclarator): Likewise.
6823	(grok_op_properties): Likewise.
6824	(xref_tag): Likewise.
6825	(xref_basetypes): Likewise.
6826	* decl2.c (constructor_name_full): Likewise.
6827	(arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
6828	(arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
6829	* error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
6830	(dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
6831	(dump_type_suffix): Likewise.
6832	* init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
6833	instead.
6834	(get_aggr_from_typedef): Likewise.
6835	* mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
6836	(write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
6837	(write_template_parm): Likewise.
6838	(write_template_template_parm): Check tree code instead of
6839	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
6840	* method.c (build_overload_nested_name): Add
6841	BOUND_TEMPLATE_TEMPLATE_PARM.
6842	(process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
6843	* parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
6844	* pt.c (convert_template_argument): Check tree code instead of
6845	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
6846	(for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
6847	(for_each_template_parm): Adjust comment.
6848	(tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM.  Reorganize.
6849	(tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
6850	(unify): Add BOUND_TEMPLATE_TEMPLATE_PARM.  Reorganize.  Use
6851	template_args_equal to compare template template parameter cases.
6852	* ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
6853	* search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
6854	instead.
6855	* tree.c (copy_template_template_parm): Decide whether to create
6856	a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
6857	(walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
6858	(copy_tree_r): Likewise.
6859	* typeck.c (comptypes): Likewise.  Check tree code instead of
6860	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
6861
68622000-09-04  Mark Elbrecht  <snowball3@bigfoot.com>
6863
6864	* decl.c (finish_function): Move the code for handling functions
6865	marked with the constructor and destructor attributes inside the
6866	expand_p block.
6867
68682000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
6869
6870	* init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
6871
68722000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
6873
6874	* pt.c (lookup_template_class): Remove abort.
6875	* tree.c (get_type_decl): Allow error_mark_node.
6876
68772000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
6878
6879	* decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
6880	TEMPLATE_ID_EXPRs.
6881
68822000-09-03  Mark Mitchell  <mark@codesourcery.com>
6883
6884	* operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
6885	new ABI mangling.
6886
68872000-09-01  Nathan Sidwell  <nathan@codesourcery.com>
6888
6889	* parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
6890	union tag mismatch error reporting.
6891
68922000-09-01  Nathan Sidwell  <nathan@codesourcery.com>
6893
6894	* call.c (build_scoped_method_call): Check it is not a namespace.
6895
68962000-08-30  Jason Merrill  <jason@redhat.com>
6897
6898	* cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
6899
6900	* tree.c (bot_manip): Check TREE_CONSTANT rather than
6901	!TREE_SIDE_EFFECTS.  Call break_out_target_exprs and
6902	build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
6903
6904	* decl.c (start_function): Always call make_function_rtl.
6905
69062000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
6907
6908	* semantics.c (prune_unused_decls): New function.
6909	(finish_stmt_tree): Call it via walk_tree.
6910
69112000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
6912
6913	* class.c (build_secondary_vtable): Constify a char *.
6914	* decl.c (init_decl_processing): Initialize function_id_node,
6915	pretty_function_id_node, and func_id_node.
6916	* input.c (struct input_source): Constify 'str'.
6917	(feed_input): Constify first argument.
6918	* mangle.c (write_identifier): Constify argument.
6919	* pt.c (mangle_class_name_for_template): Constify argument.
6920
69212000-08-29  Mark Mitchell  <mark@codesourcery.com>
6922
6923	* typeck.c (mark_addressable): Remove code that pokes around in
6924	RTL.
6925
69262000-08-28  Jason Merrill  <jason@redhat.com>
6927
6928	* lex.c (file_name_nondirectory): Move to toplev.c.
6929
6930	* cp-tree.h (LOCAL_CLASS_P): New macro.
6931	* class.c (finish_struct_1): Use it.
6932
69332000-08-27  Alex Samuel  <samuel@codesourcery.com>
6934
6935	* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
6936	(write_encoding): Pass another argument to write_name.
6937	(write_name): Add ignore_local_scope parameter.  Fix handling of
6938	local names.
6939	(write_nested_name): Use write_unqualified_name.
6940	(write_prefix): Likewise.  Skip out on FUNCTION_DECLs.
6941	(write_template_prefix): Use write_unqualified_name.
6942	(write_component): Remove.
6943	(write_local_name): Add parameter.  Use direct local entity to
6944	discriminator calculation.
6945	(write_class_enum_type): Pass another argument to write_name.
6946	(write_template_template_arg): Likewise.
6947	(make_guard_variable): Likewise.
6948
69492000-08-27  Jason Merrill  <jason@redhat.com>
6950
6951	* decl.c (pushdecl): Matching decls for local externs are found in
6952	the current level.  Propagate linkage information from previous
6953	declarations.
6954
69552000-08-26  Gabriel Dos Reis  <gdr@codesourcery.com>
6956
6957	* ir.texi (Expressions): Fix typo.
6958
69592000-08-25  Greg McGary  <greg@mcgary.org>
6960
6961	* tree.c (init_tree): Use ARRAY_SIZE.
6962
69632000-08-25  Gabriel Dos Reis  <gdr@codesourcery.com>
6964
6965	* error.c (cp_tree_printer): Rework.
6966
69672000-08-25  Mark Mitchell  <mark@codesourcery.com>
6968
6969	* Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
6970	dyn-string.o.
6971	(CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
6972	(cp-demangle.o): Remove target.
6973	(dyn-string.o): Likewise.
6974
6975	* decl.c (grokfndecl): Require that `main' return an `int'.
6976	* mangle.c (write_encoding): Don't mangle return types for
6977	conversion functions.
6978
69792000-08-25  Gabriel Dos Reis  <gdr@codesourcery.com>
6980
6981	* error.c (tree_formatting_info): New data type.
6982	(tree_being_formatted): New macro.
6983	(tree_formatting_flags): Likewise.
6984	(put_whitespace): Likewise.
6985	(print_tree_identifier): Likewise.
6986	(print_identifier): Likewise.
6987	(cp_tree_printer, print_function_argument_list, print_declaration,
6988	print_expression, print_function_declaration,
6989	print_function_parameter, print_type, print_cv_qualifier): New
6990	functions.
6991	(init_error): Initialize lang_printer.
6992
69932000-08-24  Jason Merrill  <jason@redhat.com>
6994
6995	* typeck.c (build_ptrmemfunc): Just reinterpret if there's no
6996	adjustment necessary.
6997
69982000-08-24  Greg McGary  <greg@mcgary.org>
6999
7000	* cp-tree.h (MAIN_NAME_P): Remove macro.
7001
70022000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
7003
7004	* error.c (print_instantiation_context): Don't forget to flush the
7005	buffer.
7006
70072000-08-23  Jason Merrill  <jason@redhat.com>
7008
7009	* typeck.c (build_ptrmemfunc): Save the input pmf.
7010
7011	* method.c (process_modifiers): Use same_type_p.
7012
70132000-08-23  Mark Mitchell  <mark@codesourcery.com>
7014
7015	* cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
7016	* mangle.c (write_function_type): Change prototype.
7017	(write_encoding): Don't mangle return types for
7018	constructors or destructors.
7019	(write_type): Adjust call to write_function_type.
7020	* pt.c (instantiate_template): Instantiate alternate entry points
7021	when instantiating the main function.
7022
70232000-08-23  Gabriel Dos Reis  <gdr@codesourcery.com>
7024
7025	* error.c (cp_print_error_function): Don't use embedded '\n' in
7026	output_printf.
7027
70282000-08-23  Gabriel Dos Reis  <gdr@codesourcery.com>
7029
7030	* decl.c (init_decl_processing): Remove bogus initialization.
7031	* error.c (lang_print_error_function): Restore here.
7032	(init_error): Initialize print_error_function.
7033
70342000-08-22  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
7035
7036	* decl2.c (arg_assoc): Revert my 2000-08-11 change.
7037
70382000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
7039
7040	* Makefile.in (error.o): Depends on diagnostic.h
7041
7042	* cp-tree.h (problematic_instantiation_changed,
7043	record_last_problematic_instantiation, current_instantiation,
7044	print_instantiation_context): Declare.
7045	(maybe_print_template_context): Remove.
7046
7047	* decl.c (init_decl_processing): Set print_error_function to NULL.
7048	(lang_print_error_function): Remove, since we're using a new
7049	machinery.
7050
7051	* error.c: #include diagnostic.h
7052	(function_category): New function.
7053	(cp_diagnostic_starter): Likewise.
7054	(cp_diagnostic_finalizer): Likewise.
7055	(cp_print_error_function): Likewise.
7056	(maybe_print_instantiation_context): Likewise.
7057	(print_instantiation_full_context): Likewise.
7058	(print_instantiation_partial_context): Likewise.
7059	(print_instantiation_context): Define.
7060	(init_error): Initialize diagnostic pager and finalizer.
7061
7062	* pt.c (problematic_instantiation_changed): Define.
7063	(record_last_problematic_instantiation): Likewise.
7064	(current_instantiation): Likewise.
7065	(maybe_print_template_context): Remove.
7066	(print_template_context): Likewise.
7067	(current_tinst_level): Make static to reflect Brendan Kehoe's
7068	change of 1995-04-13.
7069	(push_tinst_level): Call print_instantiation_context.
7070
70712000-08-21  Nix  <nix@esperi.demon.co.uk>
7072
7073	* lang-specs.h: Do not process -o or run the assembler if
7074	-fsyntax-only.
7075
70762000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
7077
7078	* decl.c (flag_hosted, flag_noniso_default_format_attributes): New
7079	variables.
7080	* decl2.c (lang_decode_option): Disable gettext attributes for
7081	-ansi.
7082
70832000-08-21  Gabriel Dos Reis  <gdr@codesourcery.com>
7084
7085	* lex.c (lang_init_options): Default diagnostic message maximum
7086	length to 80, when line-wrapping.
7087
70882000-08-20  Mark Mitchell  <mark@codesourcery.com>
7089
7090	* class.c (build_vtbl_initializer): Clear the entire
7091	vtbl_init_data.  Start keeping track of the functions for which we
7092	have created vcall offsets here.
7093	(dfs_build_vcall_offset_vtbl_entries): Remove.
7094	(build_vcall_offset_vtbl_entries): Reimplement.
7095	(add_vcall_offset_vtbl_entries_r): New function.
7096	(add_vcall_offset_vtbl_entries_1): Likewise.  Tweak logic for
7097	computing when vcall offsets are necessary.
7098
70992000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
7100
7101	* decl.c (member_function_or_else): Use cp_error ... %T.
7102	(grokdeclarator): Likewise.
7103	(start_method): Likewise.
7104	* friend.c (make_friend_class): Use cp_pedwarn ... %T.
7105
71062000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
7107
7108	* decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
7109	TYPE_DECLs.
7110
71112000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
7112
7113	* cp-tree.h (PTRMEM_OK_P): New macro.
7114	(itf_ptrmem_ok): New enumeration value.
7115	* class.c (resolve_address_of_overloaded_function): Add PTRMEM
7116	argument. Diagnose implicit pointer to member.
7117	(instantiate_type): Don't diagnose implicit pointer to member
7118	here. Pass itf_ptrmem_ok if ok. Adjust calls to
7119	resolve_address_of_overloaded_function.
7120	* init.c (build_offset_ref): Set PTRMEM_OK_P.
7121	(resolve_offset_ref): Don't diagnose implicit pointer to member here.
7122	* semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
7123	* typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
7124	(build_unary_op): Deal with single non-static member in
7125	microsoft-land.
7126
71272000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
7128
7129	* decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
7130
71312000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
7132
7133	* cp-tree.h (enum_name_string): Remove prototype.
7134	(report_case_error): Remove prototype.
7135	* cp/typeck2.c (enum_name_string): Remove.
7136	(report_case_error): Remove.
7137	* error.c (dump_expr): Deal with enum values directly.
7138	Correctly negate integer constant.
7139
71402000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
7141
7142	* inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
7143	(__cxa_vec_delete2, __cxa_vec_delete3): Declare.
7144	* vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
7145	(__cxa_vec_delete2, __cxa_vec_delete3): Implement.
7146	(__cxa_vec_new): Use __cxa_vec_new2.
7147	(__cxa_vec_delete): Use __cxa_vec_delete2.
7148
71492000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
7150
7151	* vec.cc (__cxa_vec_new): Set "C" linkage.
7152	(__cxa_vec_ctor): Likewise.
7153	(__cxa_vec_cctor): Likewise.
7154	(__cxa_vec_dtor): Likewise.
7155	(__cxa_vec_delete): Likewise.
7156	* inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
7157	(__cxa_vec_ctor): Likewise.
7158	(__cxa_vec_cctor): Likewise.
7159	(__cxa_vec_dtor): Likewise.
7160	(__cxa_vec_delete): Likewise.
7161
71622000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
7163
7164	* class.c (instantiate_type): Reinstate local variable
7165	deleted in previous change.
7166
7167	* cvt.c (cp_convert_to_pointer): Pass itf_complain, not
7168	itf_no_attributes.
7169
71702000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
7171
7172	* cp-tree.h (instantiate_type_flags): New enumeration.
7173	(instantiate_type): Change parameter.
7174	* class.c (instantiate_type): Adjust prototype. Adjust.
7175	* call.c (standard_conversion): Adjust instantiate_type call.
7176	(reference_binding): Likewise.
7177	(build_op_delete_call): Likewise.
7178	(convert_like_real): Likewise.
7179	* cvt.c (cp_convert_to_pointer): Likewise.
7180	(convert_to_reference): Likewise.
7181	* pt.c (convert_nontype_argument): Likewise.
7182	* typeck.c (build_binary_op): Likewise.
7183	(build_ptrmemfunc): Likewise.
7184	(convert_for_assignment): Likewise.
7185
71862000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
7187
7188	* cp-tree.h (CPTR_AGGR_TAG): New global tree node.
7189	(current_aggr): Define.
7190	* decl.c (grokdeclarator): Make sure a friend class is an
7191	elaborated type specifier.
7192	* parse.y (current_aggr): Remove static definition.
7193	(cp_parse_init): Adjust.
7194	(structsp): Clear and restore current_aggr.
7195	(component_decl_list): Clear current_aggr.
7196
7197	* error.c (dump_type, case TYPENAME_TYPE): Don't emit the
7198	aggregate tag on the typename's context.
7199
7200	* pt.c (tsubst_friend_class): Return error_mark_node, if
7201	parms becomes NULL.
7202	(instantiate_class_template): Ignore error_mark_node friend types.
7203
72042000-08-14  Nathan Sidwell  <nathan@codesourcery.com>
7205
7206	* cvt.c (warn_ref_binding): New static function, broken out of ...
7207	(convert_to_reference): ... here. Use it.
7208
72092000-08-11  Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
7210
7211	* parse.y (template_arg): Add rule for template qualified with
7212	global scope.
7213
72142000-08-11  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7215
7216	* decl2.c (add_function): Reorganize.
7217	(arg_assoc): Do not consider function template decls.
7218
72192000-08-11  Jason Merrill  <jason@redhat.com>
7220
7221	* decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
7222	looking inside.
7223
72242000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
7225
7226	* cp-tree.h (resolve_scope_to_name): Remove unused prototype.
7227	(lookup_nested_tag): Likewise.
7228
7229	* decl2.c (grokfield): Fix comment to reflect many types of _DECLs
7230	can be produced.
7231
72322000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
7233
7234	* parse.y (named_complex_class_head_sans_basetype): Remove
7235	always true if.
7236
72372000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
7238
7239	* decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
7240	explicit TEMPLATE_ID_EXPR args.
7241	(build_expr_from_tree, case CALL_EXPR): Likewise.
7242
72432000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
7244
7245	* decl.c (check_tag_decl): Diagnose typename's which don't
7246	declare anything.
7247
72482000-08-10  Nathan Sidwell  <nathan@codesourcery.com>
7249
7250	* init.c (build_aggr_init): Reject bogus array initializers
7251	early.
7252
72532000-08-09  Nathan Sidwell  <nathan@codesourcery.com>
7254
7255	* rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
7256	runtime.
7257	* cp/tinfo.cc (__dynamic_cast): Likewise.
7258	* cp/inc/cxxabi.h (__dynamic_cast): Likewise.
7259
72602000-08-09  Nathan Sidwell  <nathan@codesourcery.com>
7261
7262	* cvt.c (convert_to_pointer_force): Fix error message when
7263	attempting to cast from ambiguous base.
7264
72652000-08-08  Jason Merrill  <jason@redhat.com>
7266
7267	* pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
7268	(tsubst_template_arg_vector): Likewise.
7269
7270	* decl2.c (build_anon_union_vars): Choose the largest field; don't
7271	assume that one will be as large as the union.
7272
72732000-08-07  Kazu Hirata  <kazu@hxi.com>
7274
7275	* cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
7276	* decl.c (pop_labels): Likewise.
7277
72782000-08-04  Jeffrey Oldham  <oldham@codesourcery.com>
7279
7280	* inc/cxxabi.h (__pbase_type_info): Changed member names to match
7281	specifications.
7282	(__pointer_to_member_type_info): Likewise.
7283	(__base_class_info): Likewise.
7284	(__class_type_info): Likewise.
7285	(__si_class_type_info): Likewise.
7286	(__vmi_class_type_info): Likewise.
7287	* tinfo.cc (__si_class_type_info::__do_find_public_src):
7288	Changed member names to match specifications.
7289	(__vmi_class_type_info::__do_find_public_src): Likewise.
7290	(__si_class_type_info::__do_dyncast): Likewise.
7291	(__vmi_class_type_info::__do_dyncast): Likewise.
7292	(__si_class_type_info::__do_upcast): Likewise.
7293	(__vmi_class_type_info::__do_upcast): Likewise.
7294	* tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
7295	(__pbase_type_info::__pointer_catch): Likewise.
7296	(__pointer_type_info::__pointer_catch): Likewise.
7297	(__pointer_to_member_type_info::__pointer_catch): Likewise.
7298
72992000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
7300
7301	* Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
7302	* Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
7303	(cc1plus): Link with $(BACKEND) and $(C_OBJS).
7304
73052000-08-04  Mark Mitchell  <mark@codesourcery.com>
7306
7307	* cp-tree.h (add_method): Change prototype.
7308	* class.c (add_method): Remove FIELDS parameter.  Add ERROR_P.
7309	Don't double the size of the method vector in the error case.
7310	(handle_using_decl): Adjust call to add_method.
7311	(add_implicitly_declared_members): Likewise.
7312	(clone_function_decl): Likewise.
7313	* decl2.c (check_classfn): Likewise.
7314	* semantics.c (finish_member_declaration): Likewise.
7315
73162000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7317
7318	* decl.c (flag_isoc94): New variable.
7319
73202000-08-02  Jason Merrill  <jason@redhat.com>
7321
7322	* pt.c (do_type_instantiation): Add complain parm; don't complain
7323	if called recursively.
7324	* cp-tree.h, parse.y: Adjust.
7325
73262000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
7327
7328	* decl2.c: Silently ignore -Wstrict-prototypes; warn about
7329	-Wno-strict-prototypes.
7330
7331	* g++spec.c: Adjust type of second argument to
7332	lang_specific_driver, and update code as necessary.
7333
7334	* cp-tree.h: Don't prototype min_precision here.
7335	(my_friendly_assert): Cast expression to void.
7336	* semantics.c (do_poplevel): Initialize scope_stmts.
7337
73382000-08-02  Mark Mitchell  <mark@codesourcery.com>
7339
7340	* cp-tree.h (DECL_NEEDED_P): Tweak.
7341
73422000-07-28  Jason Merrill  <jason@redhat.com>
7343
7344	* lang-specs.h: Use %i in rule for .ii files.
7345
73462000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
7347
7348	* lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
7349
73502000-07-30  Mark Mitchell  <mark@codesourcery.com>
7351
7352	Allow indirect primary bases.
7353	* cp-tree.h (struct lang_type): Remove vfield_parent.  Add
7354	primary_base.
7355	(CLASSTYPE_VFIELD_PARENT): Remove.
7356	(CLASSTYPE_PRIMARY_BINFO): Reimplement.
7357	(BINFO_PRIMARY_BINFO): Remove.
7358	(CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
7359	(BINFO_VBASE_PRIMARY_P): Likewise.
7360	(BINFO_PRIMARY_BASE_OF): New macro.
7361	(BINFO_INDIRECT_PRIMARY_P): Likewise.
7362	(get_primary_binfo): New function.
7363	* decl.c (lang_mark_tree): Make lang_type::primary_base.
7364	* class.c (vcall_offset_data_s): Rename to ...
7365	(vtbl_init_data_s): ... this.  Rename primary_p to primary_vtbl_p,
7366	and add ctor_vtbl_p.
7367	(get_derived_offset): Use get_primary_binfo.
7368	(dfs_mark_primary_bases): Adjust handling of virtual primary
7369	bases.
7370	(mark_primary_bases): Likewise.
7371	(set_primary_base): Take a binfo, not an integer, as a
7372	representation of the primary base.
7373	(indirect_primary_base_p): Remove.
7374	(determine_primary_base): Adjust for indirect primary bases.
7375	(dfs_find_final_overrider): Fix typo in coment.
7376	(update_vtable_entry_for_fn): Use get_primary_binfo.
7377	(layout_nonempty_base_or_field): Tweak.
7378	(build_base_fields): Adjust for new primary base semantics.
7379	(dfs_propagate_binfo_offsets): Remove.
7380	(propagate_binfo_offsets): Rewrite.
7381	(dfs_set_offset_for_shared_vbases): Remove.
7382	(layout_virtual_bases): Don't use it.
7383	(layout_class_type): Set CLASSTYPE_SIZE correctly under the new
7384	ABI.
7385	(finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
7386	CLASSTYPE_VFIELD_PARENT.
7387	(dfs_get_primary_binfo): New function.
7388	(get_primary_binfo): Likewise.
7389	(dump_class_hierarchy_r): Tweak printing of primary bases.
7390	(build_vtbl_initializer): Fix typo in comments.  Use
7391	vtbl_init_data.
7392	(build_vcall_and_vbase_vtbl_entries): Likewise.
7393	(build_vbaes_offset_vtbl_entries): Likewise.
7394	(dfs_build_vcall_offset_vtbl_entries): Adjust setting of
7395	BV_VCALL_INDEX to handle indirect primary bases.
7396	(build_vcall_offset_vtbl_entries): Use vtbl_init_data.
7397	(build_rtti_vtbl_entries): Likewise.
7398	* search.c (get_shared_vbase_if_not_primary): Tweak.
7399	(find_vbase_instance): Likewise.
7400	(binfo_for_vtable): Simplify.
7401	* tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
7402	(make_binfo): Make it have 11 entries.
7403
74042000-07-30  Alex Samuel  <samuel@codesourcery.com>
7405
7406	* mangle.c (DECL_TEMPLATE_ID_P): Remove.
7407	(CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
7408	ascertaining primaryness.
7409	(G): Remove template_args.
7410	(decl_is_template_id): New function.
7411	(write_encoding): Use decl_is_template_id.
7412	(write_name): Likewise.  Handle type_decls.  Get main variant of
7413	type decls.
7414	(write_nested_name): Likewise.
7415	(write_prefix): Likewise.
7416	(write_template_prefix): Likewise.
7417	(write_special_name_constructor): Remove defunct production from
7418	comment.
7419	(write_bare_function_type): Remove comment about absent parameter.
7420	(write_template_template_arg): Add missing grammar production to
7421	comment.
7422
74232000-07-27  Jason Merrill  <jason@redhat.com>
7424
7425	* decl.c (duplicate_decls): If common_type produces a non-typedef
7426	type for a typedef, just use the old type.
7427
74282000-07-27  Mark Mitchell  <mark@codesourcery.com>
7429
7430	* cp-tree.h (function_depth): Declare.
7431	(verify_stmt_tree): Likewise.
7432	(find_tree): Likewise.
7433	* decl.c (function_depth): Give it external linkage.
7434	* optimize.c (optimize_function): Increment and decrement it.
7435	* tree.c (verify_stmt_tree_r): New function.
7436	(verify_stmt_tree): Likewise.
7437	(find_tree_r): Likewise.
7438	(find_tree): Likewise.
7439
74402000-07-27  Jason Merrill  <jason@redhat.com>
7441
7442	* pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
7443	TYPE_PTRMEMFUNC_P.
7444	* cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
7445
74462000-07-26  Mark Mitchell  <mark@codesourcery.com>
7447
7448	* decl.c (start_cleanup_fn): Mark the function as `inline'.
7449	* decl2.c (get_guard): Call cp_finish_decl, not
7450	rest_of_decl_compilation, for local guards.
7451	* lex.c (do_identifier): Remove unused variable.
7452
7453Wed Jul 26 15:05:51 CEST 2000	Marc Espie <espie@cvs.openbsd.org>
7454
7455	* parse.y:  Add missing ';'.
7456
74572000-07-26  Mark Mitchell  <mark@codesourcery.com>
7458
7459	* parse.y (empty_parms): Use `()', not `(...)', when in the scope
7460	of `extern "C++"'.
7461
74622000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
7463
7464	Kill strict_prototype. Backwards compatibility only for
7465	non NO_IMPLICIT_EXTERN_C systems.
7466	* cp-tree.h (flag_strict_prototype): Remove.
7467	(strict_prototype): Remove.
7468	(strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
7469	* decl.c (maybe_push_to_top_level): Adjust.
7470	(pop_from_top_level): Adjust.
7471	(decls_match): Only allow sloppy parm matching for ancient
7472	system headers.
7473	(init_decl_processing): Adjust.
7474	(grokdeclarator): Adjust.
7475	* decl2.c (flag_strict_prototype): Remove.
7476	(strict_prototype): Remove.
7477	(strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
7478	(lang_f_options): Remove "strict-prototype".
7479	(unsupported-options): Add "strict-prototype".
7480	* lex.c (do_identifier): Adjust.
7481	(do_scoped_id): Adjust.
7482	* parse.y (empty_parms): Adjust.
7483	* class.c (push_lang_context): Adjust.
7484	(pop_lang_context): Adjust.
7485	* typeck.c (comp_target_parms): Adjust.
7486
74872000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
7488
7489	* decl.c (poplevel): Deal with anonymous variables at for scope.
7490	(maybe_inject_for_scope_var): Likewise.
7491
74922000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
7493
7494	* decl.c: Remove all signal handling code, now done in toplev.c.
7495
74962000-07-23  Mark Mitchell  <mark@codesourcery.com>
7497
7498	* decl.c (make_rtl_for_nonlocal_decl): Rework.
7499
7500	* pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
7501	correctly.
7502
75032000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
7504
7505	* cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
7506	Define my_friendly_assert and my_friendly_abort as macros
7507	which may call friendly_abort.  Prototype friendly abort, not
7508	my_friendly_abort or my_friendly_assert.
7509	* decl.c (signal_catch): Report the signal caught in the error
7510	message.  Call fatal directly.
7511	* typeck2.c (ack, my_friendly_assert): Delete.
7512	(my_friendly_abort): Rename to friendly_abort.  Expect file,
7513	line, and function parameters.  Report the abort code, then
7514	call fancy_abort.  Do not mask an abort if errors have
7515	already occurred.
7516
75172000-07-18  Nathan Sidwell  <nathan@codesourcery.com>
7518
7519	* typeck.c (comp_target_parms): Remove obsolete parameter.
7520	(comp_target_types): Adjust.
7521
75222000-07-17  Jason Merrill  <jason@redhat.com>
7523
7524	* typeck.c (mark_addressable): Never set TREE_USED.
7525	* call.c (build_call): Don't abort on calls to library functions
7526	that have been declared normally.
7527
7528	* typeck.c (build_binary_op): Fix grammar in warning.
7529
7530	* exception.cc (__eh_free): Fix prototype.
7531
7532	* decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
7533
7534	* decl.c (pushdecl): Handle seeing an OVERLOAD in
7535	IDENTIFIER_NAMESPACE_VALUE.
7536
75372000-07-16  Mark Mitchell  <mark@codesourcery.com>
7538
7539	* cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
7540	* method.c (use_thunk): Correct handling of vcall offsets.
7541
75422000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
7543
7544	* .cvsignore: parse.h and parse.c have no cp- prefix.
7545
75462000-07-13  Mark Mitchell  <mark@codesourcery.com>
7547
7548	* .cvsignore: New file.
7549
75502000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
7551
7552	* lang-specs.h: Use the new named specs.  Remove unnecessary braces.
7553
75542000-07-12  Mark Mitchell  <mark@codesourcery.com>
7555
7556	* Makefile.in ($(PARSE_H)): Depend directly on parse.y.
7557	* parse.c: Remove.
7558	* parse.h: Likewise.
7559
75602000-07-11  Mark Mitchell  <mark@codesourcery.com>
7561
7562	* class.c (layout_class_type): Add pointers to virtual bases after
7563	base classes under the old ABI.
7564
75652000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
7566
7567	* semantics.c (finish_for_stmt): Remove call to emit_line_note.
7568	(finish_continue_stmt): Likewise.
7569	(begin_for_stmt): Remove call to note_level_for_for.
7570	(finish_goto_stmt): Change call from build_min_nt
7571	to build_stmt.
7572	(finish_expr_stmt): Likewise.
7573	(begin_if_stmt): Likewise.
7574	(begin_while_stmt): Likewise.
7575	(finish_while_stmt): Likewise.
7576	(finish_return_stmt): Likewise.
7577	(begin_for_stmt): Likewise.
7578	(finish_for_stmt): Likewise.
7579	(finish_break_stmt): Likewise.
7580	(begin_switch_stmt): Likewise.
7581	(finish_case_label): Likewise.
7582	(genrtl_try_block): Likewise.
7583	(begin_try_block): Likewise.
7584	(begin_handler): Likewise.
7585	(begin_compound_stmt): Likewise.
7586	(finish_asm_stmt): Likewise.
7587	(finish_label_stmt): Likewise.
7588	(add_decl_stmt): Likewise.
7589	(finish_subobject): Likewise.
7590	(finish_decl_cleanup): Likewise.
7591	(finish_named_return_value): Likewise.
7592	(setup_vtbl_ptr): Likewise.
7593	(add_scope_stmt): Likewise.
7594	* decl.c (finish_constructor_body): Likewise.
7595	(finish_destructor_body): Likewise.
7596	* optimize.c (copy_body_r): Likewise.
7597	(initialize_inlined_parameters): Likewise.
7598	(declare_return_variable): Likewise.
7599	(expand_call_inline): Likewise.
7600
76012000-07-10  Jakub Jelinek  <jakub@redhat.com>
7602
7603	* semantics.c (expand_body): Sync interface information
7604	at the end of function body expansion.
7605
76062000-07-09  Jason Merrill  <jason@redhat.com>
7607
7608	* init.c (build_new_1): Bail early if the call to new fails.
7609
7610	* decl.c (compute_array_index_type): Check specifically for
7611	an INTEGER_CST, not just TREE_CONSTANT.
7612
7613	* decl.c (duplicate_decls): Don't call duplicate_decls on
7614	the DECL_TEMPLATE_RESULT.
7615	(decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
7616	codes.
7617
7618	* error.c (dump_template_bindings): Don't crash if we had an
7619	invalid argument list.
7620
7621	* typeck.c (c_expand_start_case): Do narrowing here.
7622	* semantics.c (finish_switch_cond): Not here.
7623
76242000-07-09  Hidvegi Zoli  <hzoli@austin.ibm.com>
7625
7626	* parse.y (asm_clobbers): Do string concatenation.
7627
76282000-07-09  Mark Mitchell  <mark@codesourcery.com>
7629
7630	* decl.c (pushtag): Don't put local classes in template functions
7631	on the local_classes list.
7632
76332000-07-04  Scott Snyder  <snyder@fnal.gov>
7634
7635	* decl2.c (get_guard): Add missing return for old ABI local
7636	variable case.
7637
76382000-07-09  Mark Mitchell  <mark@codesourcery.com>
7639
7640	* cp-tree.h (char_type_p): New function.
7641	* decl.c (init_decl_processing): Don't initialize
7642	signed_wchar_type_node or unsigned_wchar_type_node.
7643	(complete_array_type): Handle brace-enclosed string-constants.
7644	* rtti.c (emit_support_tinfos): Remove #if 0'd code.
7645	* tree.c (char_type_p): New function.
7646	* typeck2.c (digest_init): Use char_type_p.
7647
76482000-07-06  Nathan Sidwell  <nathan@codesourcery.com>
7649
7650	* pt.c (tsubst): Don't layout type, if it's error_mark.
7651
76522000-07-06  Nathan Sidwell  <nathan@codesourcery.com>
7653
7654	* pt.c (instantiate_pending_templates): Reset template level.
7655
76562000-07-05  Jason Merrill  <jason@redhat.com>
7657
7658	* call.c (joust): Don't complain about `operator char *()' beating
7659	`operator const char *() const'.
7660
76612000-07-04  scott snyder  <snyder@fnal.gov>
7662	    Jason Merrill  <jason@redhat.com>
7663
7664	* repo.c (repo_get_id): Handle the case where a class with virtual
7665	bases has a null TYPE_BINFO_VTABLE.
7666
76672000-07-04  Kevin Buhr  <buhr@stat.wisc.edu>
7668	    Jason Merrill  <jason@redhat.com>
7669
7670	* parse.y (member_init): Just pass in the type.
7671	* init.c (expand_member_init): Handle getting a type.
7672
76732000-07-04  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
7674	    Jason Merrill  <jason@redhat.com>
7675
7676	* decl.c (finish_function): Warn if a function has no return
7677	statement.
7678	Suggested by Andrew Koenig.
7679	* typeck.c (check_return_expr): Do set current_function_returns_value
7680	if we got an error_mark_node.
7681
76822000-07-03  Nathan Sidwell  <nathan@codesourcery.com>
7683
7684	* decl2.c (push_decl_namespace): Push the original namespace.
7685
76862000-07-03  Nathan Sidwell  <nathan@codesourcery.com>
7687
7688	* pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES.
7689	* semantics.c (begin_class_definition): Clear it.
7690
76912000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
7692
7693	* cp-tree.h (genrtl_goto_stmt): Remove declaration.
7694	(genrtl_expr_stmt): Likewise.
7695	(genrtl_decl_stmt): Likewise.
7696	(genrtl_if_stmt): Likewise.
7697	(genrtl_while_stmt): Likewise.
7698	(genrtl_do_stmt): Likewise.
7699	(genrtl_return_stmt): Likewise.
7700	(genrtl_for_stmt): Likewise.
7701	(genrtl_break_stmt): Likewise.
7702	(genrtl_continue_stmt): Likewise.
7703	(genrtl_scope_stmt): Likewise.
7704	(genrtl_switch_stmt): Likewise.
7705	(genrtl_case_label): Likewise.
7706	(genrtl_begin_compound_stmt): Likewise.
7707	(genrtl_finish_compound_stmt): Likewise.
7708	(genrtl_compound_stmt): Likewise.
7709	(genrtl_asm_stmt): Likewise.
7710
7711	* init.c (begin_init_stmts): Remove call to
7712	genrtl_begin_compound_stmt.
7713	(finish_init_stmts): Remove call to genrtl_finish_compound_stmt.
7714
7715	* semantics.c (lang_expand_stmt): Changed call to
7716	genrtl_compound_stmt to ignore return value.
7717
77182000-07-02  Mark Mitchell  <mark@codesourcery.com>
7719
7720	* mangle.c (canonicalize_for_substitution): Return the canonical
7721	variant of a type.
7722
7723	* decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a
7724	TYPE_DECL.
7725	* typeck.c (commonparms): Remove obstack manipulations.
7726
77272000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
7728
7729	* Make-lang.in (cc1plus$(exeext)): Added c-semantics.o.
7730
7731	* Makefile.in (OBJS): Added ../c-semantics.o.
7732	(OBJDEPS): Likewise.
7733
7734	* cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to
7735	../c-common.h.
7736	(struct stmt_tree): Added comment.
7737	(current_function_name_declared): Removed.
7738	(stmts_are_full_exprs_p): Likewise.
7739	(genrtl_do_pushlevel): Likewise.
7740	(genrtl_clear_out_block): Likewise.
7741	(COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h.
7742	(DECL_ANON_UNION_ELEMS): Likewise.
7743	(emit_local_var): Likewise.
7744	(make_rtl_for_local_static): Likewise.
7745	(do_case): Likewise.
7746	(expand_stmt): Likewise.
7747	(genrtl_decl_cleanup): Likewise.
7748	(c_expand_asm_operands): Likewise.
7749	(c_expand_return): Likewise.
7750	(c_expand_start_case): Likewise.
7751
7752	* decl.c (make_rtl_for_local_static): Moved to c-semantics.c.
7753	(emit_local_var): Likewise.
7754	(initialize_local_var): Change reference to
7755	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
7756	Change reference to stmts_are_full_exprs_p to
7757	current_stmt_tree->stmts_are_full_exprs_p.
7758	(push_cp_function_context): Likewise.
7759
7760	* expect.c (expand_throw): Change reference to
7761	stmts_are_full_exprs_p.
7762
7763	* init.c (build_aggr_init): Change reference to
7764	stmts_are_full_exprs_p.
7765	(build_vec_init): Likewise.
7766
7767	* optimize.c (maybe_clone_body): Change reference to
7768	current_function_name_declared to
7769	cp_function_chain->name_declared.
7770
7771	* pt.c (instantiate_decl): Change reference to
7772	current_function_name_declared to
7773	cp_function_chain->name_declared.
7774
7775	* semantics.c (expand_cond): Moved declaration to c-common.h.
7776	(genrtl_do_pushlevel): Moved to c-semantics.c.
7777	(genrtl_clear_out_block): Likewise.
7778	(genrtl_goto_stmt): Likewise.
7779	(genrtl_expr_stmt): Likewise.
7780	(genrtl_decl_stmt): Likewise.
7781	(gerntl_if_stmt): Likewise.
7782	(genrtl_while_stmt): Likewise.
7783	(genrtl_do_stmt): Likewise.
7784	(genrtl_return_stmt): Likewise.
7785	(genrtl_for_stmt): Likewise.
7786	(genrtl_break_stmt): Likewise.
7787	(genrtl_continue_stmt): Likewise.
7788	(genrtl_scope_stmt): Likewise.
7789	(genrtl_switch_stmt): Likewise.
7790	(genrtl_case_label): Likewise.
7791	(genrtl_begin_compound_stmt): Likewise.
7792	(genrtl_finish_compound_stmt): Likewise.
7793	(genrtl_compound_stmt): Likewise.
7794	(genrtl_asm_stmt): Likewise.
7795	(genrtl_decl_cleanup): Likewise.
7796	(expand_cond): Likewise.
7797	(expand_stmt): Renamed to ...
7798	(lang_expand_stmt): ... this.
7799	(lang_expand_expr_stmt): Initialize.
7800	(set_current_function_name_declared): Likewise.
7801	(stmts_are_full_exprs_p): Likewise.
7802	(current_function_name_declared): Likewise.
7803	(anon_aggr_type_p): Likewise.
7804	(do_poplevel): Change reference to
7805	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
7806	Change reference to stmts_are_full_exprs_p to
7807	current_stmt_tree->stmts_are_full_exprs_p.
7808	(add_tree): Likewise.
7809	(finish_expr_stmt): Likewise.
7810	(prep_stmt): Likewise.
7811	(lang_expand_stmt): Likewise.
7812	(begin_compound_stmt): Change reference to
7813	current_function_name_declared to
7814	cp_function_chain->name_declared and call to
7815	current_function_name_declared().
7816	(setup_vtbl_ptr): Likewise.
7817	(genrtl_do_poplevel): Removed.
7818
78192000-06-30  Jason Merrill  <jason@redhat.com>
7820
7821	* init.c (init_init_processing): Go back to aligning like
7822	double_type_node for old ABI.
7823	(get_cookie_size): Make cookie larger if we get a type that needs
7824	more alignment.
7825	(build_vec_delete): Call it.
7826
7827	* typeck.c (qualify_type_recursive): New fn.
7828	(composite_pointer_type): Use it.
7829	(build_binary_op): Use composite_pointer_type.
7830
78312000-06-24  Carlos O'Ryan  <coryan@cs.wustl.edu>
7832	    Jason Merrill  <jason@redhat.com>
7833
7834	* typeck.c (check_return_expr): Don't complain about returning
7835	NULL from operator new if -fcheck-new.
7836	* cp-tree.h: Declare flag_check_new here.
7837	* init.c: Not here.
7838
78392000-06-28  Alex Samuel  <samuel@codesourcery.com>
7840
7841	* mangle.c (find_substitution): Use same_type_p.
7842	(write_encoding): Don't check for substitutions.
7843
78442000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
7845
7846	* parse.y (expr_no_comma_rangle): New non-terminal.
7847	(template_parm): Use it for default parameter case.
7848	(template_arg): Use it.
7849	(expr_no_commas): Remove commented out undefined extensions.
7850	* Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r.
7851	* parse.h, parse.c: Rebuilt.
7852
78532000-06-30  Mark Mitchell  <mark@codesourcery.com>
7854
7855	* semantics.c (genrtl_asm_stmt): Don't decay input operands here.
7856	(finish_asm_stmt): Do it here, instead.
7857
7858	* cp-tree.h (ridpointers): Don't declare.
7859	* decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX.
7860	(record_builtin_java_type): Likewise.
7861	(init_decl_processing): Likewise.
7862	* lex.c: Move inclusion of lex.h.
7863	(ridpointers): Don't define.
7864	(init_parse): Initialize ripdointers.  Use CP_RID_MAX instead of
7865	RID_MAX.
7866	* lex.h (enum rid): Rename to ...
7867	(enum cp_rid): ... this.
7868	(ridpointers): Don't declare.
7869	* parse.y: Move inclusion of lex.h.
7870	* parse.c: Regenerated.
7871	* spew.c: Move inclusion of lex.h.
7872
7873	* cp-tree.h (struct language_function): Remove temp_name_counter.
7874	(temp_name_counter): Remove.
7875	(get_temp_name): Change prototype.
7876	(get_guard): New function.
7877	(get_guard_cond): Likewise.
7878	(set_guard): Likewise.
7879	* cvt.c (build_up_reference): Adjust call to get_temp_name.
7880	* decl.c (expand_static_init): Use get_guard and friends to
7881	implement guard variables.
7882	* decl2.c (get_temp_name): Assume that the variables created are
7883	always static.
7884	(get_sentry): Rename to ...
7885	(get_guard): ... this.  Implement new ABI guard	variables.
7886	(get_guard_bits): New function.
7887	(get_guard_cond): Likewise.
7888	(set_guard): Likewise.
7889	(start_static_initialization_or_destruction): Use them.
7890	(do_static_initialization): Replace sentry with guard throughout.
7891	(do_static_destruction): Likewise.
7892	* init.c (create_temporary_var): Add comment.
7893
78942000-06-28  Alex Samuel  <samuel@codesourcery.com>
7895
7896	* mangle.c (find_substitution): Use same_type_p.
7897	(write_encoding): Don't check for substitutions.
7898
78992000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
7900
7901	* parse.y (expr_no_comma_rangle): New non-terminal.
7902	(template_parm): Use it for default parameter case.
7903	(template_arg): Use it.
7904	(expr_no_commas): Remove commented out undefined extensions.
7905	* Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r.
7906	* parse.h, parse.c: Rebuilt.
7907
79082000-06-29  Mark Mitchell  <mark@codesourcery.com>
7909
7910	* cp-tree.h (flag_const_strings): Remove.
7911	(warn_parentheses): Likewise.
7912	(warn_format): Likewise.
7913	(common_type): Likewise.
7914	(default_conversion): Likewise.
7915	(build_binary_op): Likewise.
7916	(cp_build_binary_op): New macro.
7917	* call.c (build_new_op): Use cp_build_binary_op instead of
7918	build_binary_op.
7919	* class.c (build_vtable_entry_ref): Likewise.
7920	* decl.c (expand_static_init): Likewise.
7921	(compute_array_index_type): Likewise.
7922	(build_enumerator): Likewise.
7923	* decl2.c (delete_sanity): Likewise.
7924	(start_static_initialization_or_destruction): Likewise.
7925	* error.c (dump_type_suffix): Likewise.
7926	* init.c (resolve_offset_ref): Likewise.
7927	(build_new): Likewise.
7928	(build_new_1): Likewise.
7929	(build_vec_delete_1): Likewise.
7930	(build_vec_init): Likewise.
7931	(build_delete): Likewise.
7932	* rtti.c (synthesize_tinfo_fn): Likewise.
7933	(synthesize_tinfo_var): Likewise.
7934	* search.c (expand_upcast_fixups): Likewise.
7935	(fixup_all_virtual_upcast_offsets): Likewise.
7936	* typeck.c (build_array_ref): Likewise.
7937	(get_member_function_from_ptrfunc): Likewise.
7938	(build_binary_op): Add parameter.
7939	(pointer_int_sum): Use cp_build_binary_op.
7940	(pointer_diff): Likewise.
7941	(build_modify_expr): Likewise.
7942	(get_delta_difference): Likewise.
7943	(build_ptrmemfunc): Likewise.
7944
79452000-06-29  Nathan Sidwell  <nathan@codesourcery.com>
7946
7947	* cp-tree.h (SET_DECL_ARTIFICIAL): Remove.
7948	* decl.c (create_implicit_typedef): Adjust.
7949	* decl2.c (build_artificial_parm): Adjust.
7950	* method.c (implicitly_declare_fn): Adjust.
7951	* pt.c (push_inline_template_parms_recursive): Adjust.
7952	(process_template_parm): Adjust.
7953	(overloaded_template_name): Adjust.
7954	* semantics.c (finish_template_template_parm): Adjust.
7955
79562000-06-28  Mark Mitchell  <mark@codesourcery.com>
7957
7958	* cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove.
7959	* class.c (update_vtable_entry_for_fn): Correct logic for deciding
7960	where to emit thunks.
7961	(build_vtt): Adjust call to build_vtt_inits.
7962	(build_vtt_inits): Add parameter to indicate whether or not
7963	sub-VTTs for virtual bases should be included.  Adjust handling of
7964	construction vtables.
7965	(get_matching_base): New function.
7966	(dfs_build_vtt_inits): Rename to ...
7967	(dfs_build_secondary_vptr_vtt_inits): Adjust handling of
7968	construction vtables.
7969	(dfs_fixup_binfo_vtbls): Likewise.
7970	(build_ctor_vtbl_groups): Build construction vtables for virtual
7971	bases, too.
7972	(accumulate_vtbl_inits): Tweak logic for deciding whether or not
7973	to build construction vtbls.
7974	(dfs_accumulate_vtbl_inits): Adjust handling of
7975	construction vtables.
7976
7977	* pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified
7978	types correctly.
7979
79802000-06-27  Mark Mitchell  <mark@codesourcery.com>
7981
7982	* decl.c (grokfndecl): Set DECL_CONTEXT for static functions too.
7983
79842000-06-26  Nathan Sidwell  <nathan@codesourcery.com>
7985
7986	* search.c (hides): Remove.
7987	(is_subobject_of_p): Add most_derived parameter. Use
7988	CANONICAL_BINFO.
7989	(lookup_field_queue_p): Adjust.
7990	(lookup_field_r): Adjust.
7991
79922000-06-26  Nathan Sidwell  <nathan@codesourcery.com>
7993
7994	* decl2.c (handle_class_head): Bash typedefs to the type's main
7995	decl.
7996
79972000-06-25  Mark Mitchell  <mark@codesourcery.com>
7998
7999	* cp-tree.h (genrtl_begin_stmt_expr): Rename to ...
8000	(begin_global_stmt_expr): ... this.
8001	(genrtl_finish_stmt_expr): Rename to ...
8002	(finish_global_stmt_expr): ... this.
8003	* init.c (begin_init_stmts): Adjust calls.
8004	(finish_init_stmts): Likewise.
8005	* semantics.c (genrtl_begin_stmt_expr): Rename to ...
8006	(begin_global_stmt_expr): ... this.
8007	(genrtl_finish_stmt_expr): Rename to ...
8008	(finish_global_stmt_expr): ... this.
8009
80102000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
8011
8012	* search.c (lookup_member): Fix typo in comment.
8013
80142000-06-24  Jason Merrill  <jason@redhat.com>
8015
8016	* decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace.
8017	(push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL.
8018
80192000-06-24  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
8020
8021	* parse.y (complex_direct_notype_declarator): Support global_scope.
8022	* Makefile.in: Adjust conflict count.
8023
80242000-06-23  Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
8025
8026	* parse.y (template_arg): Convert TEMPLATE_DECL
8027	that is a template template parameter to
8028	TEMPLATE_TEMPLATE_PARM here.
8029
8030	* cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment.
8031	* cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro.
8032	(copy_template_template_parm): Adjust prototype.
8033	* decl.c (grokdeclarator): Remove dead code.
8034	* pt.c (process_template_parm): Tidy.
8035	(lookup_template_class): Construct nodes in
8036	copy_template_template_parm.
8037	(tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to
8038	lookup_template_class.  Use TYPE_TI_TEMPLATE.
8039	* tree.c (copy_template_template_parm): Add NEWARGS
8040	parameter.
8041	(mapcar): Adjust call to copy_template_template_parm.
8042	* typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.
8043	* method.c (build_template_template_parm_names): Change error
8044	code to avoid compilation warning.
8045
8046	* gxxint.texi: Document template template parameter
8047	name mangling.
8048
80492000-06-21  Alex Samuel  <samuel@codesourcery.com>
8050
8051	* Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o.
8052	(CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c.
8053	(cp-demangle.o): New rule.
8054	(dyn-string.o): Likewise.
8055	* inc/cxxabi.h (__cxa_demangle): New declaration.
8056
80572000-06-22  Mark Mitchell  <mark@codesourcery.com>
8058
8059	* cp-tree.h (BV_USE_VCALL_INDEX_P): New macro.
8060	(BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise.
8061	(lang_decl_flags): Add generate_with_vtable_p.  Make vcall_offset
8062	a tree, not an int.
8063	(THUNK_GENERATE_WITH_VTABLE_P): New macro.
8064	(make_thunk): Change prototype.
8065	(emit_thunk): Rename to use_thunk.
8066	(mangle_thunk): Change prototype.
8067	* class.c (get_derived_offset): Simplify.
8068	(copy_virtuals): Clear BV_USE_VCALL_INDEX_P and
8069	BV_GENERATE_THUNK_WITH_VTABLE_P.
8070	(build_primary_vtable): Simplify.
8071	(add_virtual_function): Use BV_FN, rather than TREE_VALUE.
8072	(dfs_find_base): Remove.
8073	(update_vtable_entry_for_fn): Correct bug in finding the base
8074	where a virtual function was first declared.  Figure out whether
8075	or not to emit a vcall-thunk with the vtables in which it appears.
8076	Correct logic for deciding whether to use an ordinary thunk, or a
8077	vcall thunk.
8078	(finish_struct_1): Remove unnecssary code.
8079	(build_vtbl_initializer): Use ssize_int for the running counter of
8080	negative indices.
8081	(build_vtbl_initializer): Only use vcall thunks where necessary.
8082	Mark thunks as needing to be emitted with their vtables, or not.
8083	(build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in
8084	indices.  Use size_binop.
8085	(dfs_build_vcall_offset_vtbl_entries): Don't rely on
8086	BINFO_PRIMARY_MARKED_P here.  Use BV_FN consistently.  Use
8087	size_binop.
8088	(build_rtti_vtbl_entries): Adjust call to build_vtable_entry.
8089	(build_vtable_entry): Mark thunks as needing to be emitted with
8090	their vtables, or not.
8091	* decl.c (lang_mark_tree): Mark the vcall_offset in a thunk.
8092	* decl2.c (mark_vtable_entries): Use use_thunk instead of
8093	emit_thunk.
8094	* dump.c (dequeue_and_dump): Remove dead code.  Dump new thunk
8095	information.
8096	* error.c (dump_expr): Use BV_FN.
8097	* mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree,
8098	not an int.
8099	* method.c (make_thunk): Likewise.
8100	(emit_thunk): Rename to use_thunk.  Allow callers to decide
8101	whether or not to actually emit the thunk.  Adjust for changes in
8102	representation of vcall offsets.
8103	* search.c (dfs_get_pure_virtuals): Use BV_FN.
8104	* semantics.c (emit_associated_thunks): New function.
8105	(expand_body): Use it.
8106	* ir.texi: Adjust decriptions of thunks.
8107
81082000-06-22  Jason Merrill  <jason@redhat.com>
8109
8110	* pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE.
8111	(tsubst_friend_function): Copy it here.
8112
8113	* decl.c (grok_op_properties): Fix typo.
8114
8115	* decl2.c (delete_sanity): Clarify warning, avoid failure on
8116	deleting void*.
8117
8118	* pt.c (check_explicit_specialization): Clarify error.
8119
8120	* decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from
8121	an old OVERLOAD when we're declaring a non-function.
8122	(pushdecl, destroy_local_var): Check for error_mark_node.
8123	(warn_extern_redeclared_static): Also bail early if
8124	we're a CONST_DECL.
8125	(push_overloaded_decl): Ignore an old error_mark_node.
8126
81272000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
8128
8129	* call.c (build_x_va_arg): Check if in a template decl.
8130	* pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg.
8131
81322000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
8133
8134	* class.c (push_lang_context): TYPE_NAME gets you to the Java
8135	types DECLs.
8136	* decl.c (check_goto): Computed gotos assumed OK.
8137
81382000-06-20  Jason Merrill  <jason@redhat.com>
8139
8140	* pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs
8141	for which we don't need to look for instantiations.
8142
81432000-06-21  Nathan Sidwell  <nathan@codesourcery.com>
8144
8145	* parse.y (program): Always call finish_translation_unit.
8146	* parse.c, parse.h: Rebuilt.
8147
81482000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
8149
8150	* method.c: Don't include hard-reg-set.h.
8151
81522000-06-20  Nathan Sidwell  <nathan@codesourcery.com>
8153
8154	* rtti.c (get_base_offset): Cope when vbase field is in a base.
8155
81562000-06-20  Nathan Sidwell  <nathan@codesourcery.com>
8157
8158	* call.c (build_conditional_expr): Use VOID_TYPE_P.
8159	* cvt.c (cp_convert_to_pointer): Likewise.
8160	(convert_to_void): Likewise.
8161	* error.c (dump_expr): Likewise.
8162	* except.c (complete_ptr_ref_or_void_ptr_p): Likewise.
8163	* init.c (build_delete): Likewise.
8164	* method.c (emit_thunk): Likewise.
8165	* optmize.c (declare_return_variable): Likewise.
8166	* rtti.c (get_tinfo_decl_dynamic): Likewise.
8167	(get_typeid): Likewise.
8168	(build_dynamic_cast_1): Likewise.
8169	* typeck.c (composite_pointer_type): Likewise.
8170	(common_type): Likewise.
8171	(build_indirect_ref): Likewise.
8172	(build_binary_op): Likewise.
8173	(build_x_compound_expr): Likewise.
8174	(check_return_expr): Likewise.
8175	* typeck2.c (add_exception_specifier): Likewise.
8176
8177	* mangle.c (write_method_parms): Use direct comparison for end
8178	of parmlist.
8179
81802000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
8181
8182	* cp-tree.h (genrtl_try_block): Declare function.
8183	(genrtl_handler): Likewise.
8184	(genrtl_catch_block): Likewise.
8185	(genrtl_ctor_stmt): Likewise.
8186	(genrtl_subobject): Likewise.
8187	(genrtl_decl_cleanup): Likewise.
8188	(genrtl_do_poplevel): Likewise.
8189	(genrtl_do_pushlevel): Likewise.
8190	(genrtl_clear_out_block): Likewise.
8191	(genrtl_goto_stmt): Likewise.
8192	(genrtl_expr_stmt): Likewise.
8193	(genrtl_decl_stmt): Likewise.
8194	(genrtl_if_stmt): Likewise.
8195	(genrtl_while_stmt): Likewise.
8196	(genrtl_do_stmt): Likewise.
8197	(genrtl_return_stmt): Likewise.
8198	(genrtl_for_stmt): Likewise.
8199	(genrtl_break_stmt): Likewise.
8200	(genrtl_continue_stmt): Likewise.
8201	(genrtl_scope_stmt): Likewise.
8202	(genrtl_switch_stmt): Likewise.
8203	(genrtl_case_label): Likewise.
8204	(genrtl_begin_compound_stmt): Likewise.
8205	(genrtl_finish_compound_stmt): Likewise.
8206	(genrtl_compound_stmt): Likewise.
8207	(genrtl_asm_stmt): Likewise.
8208	(genrtl_named_return_value): Likewise.
8209	(genrtl_begin_stmt_expr): Likewise.
8210	(genrtl_finish_stmt_expr): Likewise.
8211	(finish_for_stmt): Removed first argument.
8212	(finish_switch_stmt): Likewise.
8213
8214	* semantics.c (genrtl_try_block): Define function.
8215	(genrtl_handler): Likewise.
8216	(genrtl_catch_block): Likewise.
8217	(genrtl_ctor_stmt): Likewise.
8218	(genrtl_subobject): Likewise.
8219	(genrtl_decl_cleanup): Likewise.
8220	(genrtl_do_poplevel): Likewise.
8221	(genrtl_do_pushlevel): Likewise.
8222	(genrtl_clear_out_block): Likewise.
8223	(genrtl_goto_stmt): Likewise.
8224	(genrtl_expr_stmt): Likewise.
8225	(genrtl_decl_stmt): Likewise.
8226	(genrtl_if_stmt): Likewise.
8227	(genrtl_while_stmt): Likewise.
8228	(genrtl_do_stmt): Likewise.
8229	(genrtl_return_stmt): Likewise.
8230	(genrtl_for_stmt): Likewise.
8231	(genrtl_break_stmt): Likewise.
8232	(genrtl_continue_stmt): Likewise.
8233	(genrtl_scope_stmt): Likewise.
8234	(genrtl_switch_stmt): Likewise.
8235	(genrtl_case_label): Likewise.
8236	(genrtl_begin_compound_stmt): Likewise.
8237	(genrtl_finish_compound_stmt): Likewise.
8238	(genrtl_compound_stmt): Likewise.
8239	(genrtl_asm_stmt): Likewise.
8240	(genrtl_named_return_value): Likewise.
8241	(genrtl_begin_stmt_expr): Likewise.
8242	(genrtl_finish_stmt_expr): Likewise.
8243	(finish_for_stmt): Removed first argument and generate rtl
8244	specific code.
8245	(finish_switch_stmt): Likewise.
8246	(do_poplevel): Removed generate rtl specific code.
8247	(do_pushlevel): Likewise.
8248	(add_tree): Likewise.
8249	(finish_goto_stmt): Likewise.
8250	(finish_expr_stmt): Likewise.
8251	(begin_if_stmt): Likewise.
8252	(finish_if_stmt_cond): Likewise.
8253	(finish_then_clause): Likewise.
8254	(begin_else_clause): Likewise.
8255	(finish_else_clause): Likewise.
8256	(finish_if_stmt): Likewise.
8257	(clear_out_block): Likewise.
8258	(begin_while_stmt): Likewise.
8259	(finish_while_stmt_cond): Likewise.
8260	(finish_while_stmt): Likewise.
8261	(begin_do_stmt): Likewise.
8262	(finish_do_body): Likewise.
8263	(finish_do_stmt): Likewise.
8264	(finish_return_stmt): Likewise.
8265	(begin_for_stmt): Likewise.
8266	(finish_for_init_stmt): Likewise.
8267	(finish_for_cond): Likewise.
8268	(finish_for_expr): Likewise.
8269	(finish_break_stmt): Likewise.
8270	(finish_continue_stmt): Likewise.
8271	(begin_switch_stmt): Likewise.
8272	(finish_switch_cond): Likewise.
8273	(finish_case_label): Likewise.
8274	(begin_try_block): Likewise.
8275	(begin_function_try_block): Likewise.
8276	(finish_try_block): Likewise.
8277	(finish_cleanup_try_block): Likewise.
8278	(finish_cleanup): Likewise.
8279	(finish_function_try_block): Likewise.
8280	(finish_handler_sequence): Likewise.
8281	(finish_function_handler_sequence): Likewise.
8282	(begin_handler): Likewise.
8283	(finish_handler_parms): Likewise.
8284	(begin_catch_block): Likewise.
8285	(finish_handler): Likewise.
8286	(begin_compound_stmt): Likewise.
8287	(finish_compound_stmt): Likewise.
8288	(finish_asm_stmt): Likewise.
8289	(finish_label_stmt): Likewise.
8290	(finish_label_decl): Likewise.
8291	(finish_subobject): Likewise.
8292	(finish_decl_cleanup): Likewise.
8293	(finish_named_return_value): Likewise.
8294	(begin_stmt_expr): Likewise.
8295	(finish_stmt_expr): Likewise.
8296
8297	* decl.c (initialize_local_var): Changed call to finish_expr_stmt
8298	to call genrtl_expr_stmt when appropriate.
8299
8300	* init.c (begin_init_stmts): Changed calls to begin_stmt_expr and
8301	begin_compound_expr to call genrtl_begin_stmt_expr and
8302	genrtl_begin_compound_expr when appropriate.
8303	(finish_init_stmts): Changed calls to finish_compound_expr and
8304	finish_stmt_expr to call genrtl_finish_compound_expr and
8305	genrtl_finish_stmt_expr when appropriate.
8306	(expand_default_init): Changed call to finish_expr_stmt to call
8307	genrtl_expr_stmt when appropriate.
8308	(build_vec_init): Likewise.
8309
8310	* parse.y (simple_stmt): Removed first argument from call to
8311	finish_for_stmt. Removed first argument from call to
8312	finish_switch_stmt.
8313
8314	* parse.c: Regenerated.
8315
8316	* pt.c (tsubst_expr): Removed first argument from call to
8317	finish_for_stmt. Removed first argument from call to
8318	finish_switch_stmt.
8319
83202000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
8321
8322	* cp-tree.h (enum cplus_tree_code): Changed __DUMMY to
8323	CP_DUMMY_TREE_CODE. Remove #include "c-common.def".
8324
8325	* lex.c (cplus_tree_code_type[]): Removed #include "c-common.def".
8326	(cplus_tree_code_length[]): Likewise.
8327	(cplus_tree_code_name[]): Likewise.
8328	(init_parse): Added call to add_c_tree_codes. Changed
8329	LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE.
8330
83312000-06-16  Mark Mitchell  <mark@codesourcery.com>
8332
8333	* cp-tree.h (finish_mem_initializers): Declare.
8334	(count_trees): Likewise.
8335	* parse.y (base_init): Use finish_mem_initializers.
8336	* semantics.c (finish_mem_initializers): New function.
8337
8338	* tree.c (count_trees_r): Prototype.  Use DATA parameter to store
8339	the number of trees.
8340	(n_trees): Remove.
8341	(count_trees): Don't use it.
8342
83432000-06-15  Jason Merrill  <jason@redhat.com>
8344
8345	* tree.c (count_trees): New debugging function.
8346
8347	* typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P.
8348	* init.c (build_member_call): Pull out the name of a DECL.
8349
8350	* Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H.
8351	* semantics.c (expand_body): Push to TV_INTEGRATION here.
8352	* optimize.c (optimize_function): Not here.
8353	* pt.c (instantiate_decl): Push to TV_PARSE.
8354
83552000-06-15  Mark Mitchell  <mark@codesourcery.com>
8356
8357	* cp-tree.h (struct language_function): Remove x_base_init_list
8358	and x_member_init_list.
8359	(current_base_init_list): Remove.
8360	(current_member_init_list): Likewise.
8361	(setup_vtbl_ptr): Change prototype.
8362	(emit_base_init): Likewise.
8363	(expand_member_init): Likewise.
8364	(reinit_parse_for_function): Remove.
8365	* decl.c (save_function_data): Don't clear x_base_init_list and
8366	x_member_init_list.
8367	(mark_language_function): Don't mark them.
8368	* init.c (perform_member_init): Tweak comment.
8369	(sort_member_init): Take the list of initializers as an argument.
8370	(sort_base_init): Likewise.
8371	(emit_base_init): Likewise.
8372	(expand_member_init): Return the initializer.  Don't use global
8373	variables.
8374	* lex.c (reinit_parse_for_function): Remove.
8375	* method.c (build_template_parm_names): Correct substitution.
8376	(do_build_copy_constructor): Don't use current_member_init_list
8377	and current_base_init_list.
8378	(synthesize_method): Likewise.
8379	* parse.y (base_init): Split mem-initializers into
8380	base-initializers and field-initializers.
8381	(member_init_list): Build up the list here.
8382	(member_init): Return the initializer.
8383	(fn.depfn): Don't use reinit_parse_for_function.
8384	* parse.c: Regenerated.
8385	* pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the
8386	ERROR_MARK.
8387	(tsubst_expr): Don't use current_member_init_list
8388	and current_base_init_list.
8389	(tsubst_expr_values): Rename to ...
8390	(tsubst_initializer_list): ... this.  Use convert_from_reference.
8391	* semantics.c (setup_vtbl_ptr): Don't use current_member_init_list
8392	and current_base_init_list.
8393	(begin_function_definition): Don't call reinit_parse_for_function.
8394
8395	* dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors.
8396
8397	* error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE
8398	correctly.
8399
8400	* cp-tree.h (DECL_PENDING_INLINE_P): Relax checking.
8401
84022000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
8403
8404	* cp-tree.h (IF_COND): Move to c-common.h.
8405	(THEN_CLAUSE): Likewise.
8406	(ELSE_CLAUSE): Likewise.
8407	(WHILE_COND): Likewise.
8408	(WHILE_BODY): Likewise.
8409	(DO_COND): Likewise.
8410	(DO_BODY): Likewise.
8411	(RETURN_EXPR): Likewise.
8412	(EXPR_STMT_EXPR): Likewise.
8413	(FOR_INIT_STMT): Likewise.
8414	(FOR_COND): Likewise.
8415	(FOR_EXPR): Likewise.
8416	(FOR_BODY): Likewise.
8417	(SWITCH_COND): Likewise.
8418	(SWITCH_BODY): Likewise.
8419	(CASE_LOW): Likewise.
8420	(CASE_HIGH): Likewise.
8421	(GOTO_DESTINATION): Likewise.
8422	(COMPOUND_BODY): Likewise.
8423	(ASM_CV_QUAL): Likewise.
8424	(ASM_STRING): Likewise.
8425	(ASM_OUTPUTS): Likewise.
8426	(ASM_INPUTS): Likewise.
8427	(ASM_CLOBBERS): Likewise.
8428	(DECL_STMT_DECL): Likewise.
8429	(STMT_EXPR_STMT): Likewise.
8430	(LABEL_STMT_LABEL): Likewise.
8431	(SCOPE_BEGIN_P): Likewise.
8432	(SCOPE_END_P): Likewise.
8433	(SCOPE_STMT_BLOCK): Likewise.
8434	(SCOPE_NULLIFIED_P): Likewise.
8435	(SCOPE_NO_CLEANUPS_P): Likewise.
8436	(SCOPE_PARTIAL_P): Likewise.
8437	(ASM_VOLATILE_P): Likewise.
8438	(STMT_LINENO): Likewise.
8439	(STMT_LINENO_FOR_FN_P): Likewise.
8440
8441	* cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
8442	ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
8443	FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
8444	CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
8445	SCOPE_STMT, CASE_LABEL, STMT_EXPR.
8446
8447	* Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def.
8448
8449	* Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def.
8450	(cc1plus$(exeext)): Added $(srcdir)/c-common.def.
8451
8452	* lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'.
8453	(cplus_tree_code_length[]): Added '#include "c-common.def"'.
8454	(cplus_tree_code_name[]): Added '#include "c-common.def"'.
8455
84562000-06-14  Mark Mitchell  <mark@codesourcery.com>
8457
8458	* cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro.
8459	* class.c (dfs_find_final_overrider): Set it appropriately.
8460	(dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to
8461	avoid unneeded secondary vptrs.
8462
84632000-06-13  Jakub Jelinek  <jakub@redhat.com>
8464
8465	* class.c (build_secondary_vtable): Set DECL_USER_ALIGN.
8466	(check_bitfield_decl, check_field_decl): Likewise.
8467	(build_vtbl_or_vbase_field, build_base_field): Likewise.
8468	(layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN.
8469	* decl.c (record_unknown_type): Set TYPE_USER_ALIGN.
8470	(xfer_tag, finish_enum): Likewise.
8471	* decl2.c (finish_builtin_type): Likewise.
8472	* init.c (init_init_processing): Likewise.
8473	* pt.c (instantiate_class_template): Likewise.
8474	* rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN.
8475	* cp-tree.h (struct lang_type): Add user_align member.
8476	(CLASSTYPE_USER_ALIGN): Define.
8477
8478Tue Jun 13 15:48:03 2000  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8479
8480	* Make-lang.in (c++.install-common): Install g++-cross in
8481	$(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as
8482	$(target_alias)-g++ and $(target_alias)-c++.
8483
84842000-06-12  Mark Mitchell  <mark@codesourcery.com>
8485
8486	* class.c (vcall_offset_data_s): Add last_init and fns.
8487	(overrides): Rename to same_signature_p.
8488	(dfs_find_final_overrider): Adjust accordingly.
8489	(mark_overriders): Likewise.
8490	(warn_hidden): Likewise.
8491	(build_vtbl_initializer): Reorganize machinery for building things
8492	at negative offsets.
8493	(build_vcall_and_vbase_vtbl_entries): Likewise.
8494	(build_vbase_offset_vtbl_entries): Likewise.
8495	(dfs_build_vcall_offset_vtbl_entries): Correct order of vcall
8496	offset entries.  Do not create two entries for functions with the
8497	same signature.
8498	(build_vcall_offset_vtbl_entries): Initialize vod->fns.
8499	(build_rtti_vtbl_entries): Reorganize machinery for building things
8500	at negative offsets.
8501
8502	* optimize.c (expand_call_inline): Don't recurse into the code
8503	used to initialize the parameters more than once.
8504
85052000-06-11  Mark Mitchell <mark@codesourcery.com>
8506
8507	* mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment.
8508	(is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here.
8509	(find_substitution): Only use the `Sa' substitution for
8510	std::allocator, not instantiations of it.
8511	(write_template_prefix): Move comment.  Only use a TREE_LIST to
8512	represent substitutions for a member template.
8513	(write_array_type): Mangle array dimensions correctly.
8514	* optimize.c (maybe_clone_body): Copy more information from the
8515	cloned function.
8516	* pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE
8517	on the regenerated declaration.
8518
85192000-06-11  Chip Salzenberg  <chip@valinux.com>
8520	    Mark Mitchell <mark@codesourcery.com>
8521
8522	* class.c (build_vtable): Clarify comment.
8523	(build_ctor_vtbl_group): Pass the most derived type to
8524	build_vtable.
8525
85262000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8527
8528	* decl2.c (compare_options): Don't needlessly cast away const-ness.
8529
85302000-06-10  Mark Mitchell  <mark@codesourcery.com>
8531
8532	* decl.c (add_binding): Handle duplicate declarations of external
8533	variables.
8534
85352000-06-09  Chip Salzenberg  <chip@valinux.com>
8536	    Mark Mitchell <mark@codesourcery.com>
8537
8538	* mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an
8539	argument.
8540	(write_signed_number): New macro.
8541	(write_unsigned_number): Likewise.
8542	(write_source_name): Use them.
8543	(write_number): Handle signed and unsigned values.
8544	(write_integer_cst): Use tree_int_cst_sgn, and use
8545	write_unsigned_number or write_signed_number as appropriate.
8546	(write_discriminator): Use write_unsigned_number or
8547	write_signed_number as appropriate.
8548	(write_template_arg_literal): Likewise.
8549	(write_array_type): Use tree_low_cst.
8550	(write_template_parm):  Use write_unsigned_number or
8551	write_signed_number as appropriate.
8552	(write_substitution): Adjust call to write_number.
8553	(write_type): Get the TYPE_MAIN_VARIANT before mangling it.
8554	(write_expression): Handle non-type template arguments of
8555	reference type correctly.
8556	(mangle_thunk): Use write_signed_number.
8557
85582000-06-09  Chip Salzenberg  <chip@valinux.com>
8559
8560	* mangle.c (find_substition): Don't mangle objects with typename
8561	substitutions (e.g. "cin" as "Si").
8562
85632000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
8564
8565	* call.c (add_candidate): Use ggc_alloc_cleared.
8566	* decl.c (lookup_label): Likewise.
8567	* lex.c (retrofit_lang_decl): Likewise.
8568
85692000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
8570
8571	* semantics.c (expand_body): Push to TV_EXPAND.
8572	* optimize.c (optimize_function): Push to TV_INTEGRATION.
8573	* decl.c (start_function): Always call announce_function.
8574
8575	* tinfo2.cc: Just declare abort.
8576
85772000-06-09  Gabriel Dos Reis  <gdr@codesourcery.com>
8578
8579	* lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @'
8580	whenever @ is a symbolic name.
8581
85822000-06-08  Jakub Jelinek  <jakub@redhat.com>
8583
8584	* method.c (make_thunk): Clear DECL_VTT_PARM in thunk.
8585
85862000-06-07  Mark Mitchell  <mark@codesourcery.com>
8587
8588	* decl.c (pushdecl): Look up functions by DECL_NAME, not
8589	DECL_ASSEMBLER_NAME.
8590
85912000-06-06  Mark Mitchell  <mark@codesourcery.com>
8592
8593	* decl2.c (c_language): Define.
8594
85952000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
8596
8597	* lex.c (lang_init_options): Tweak.
8598
8599	* decl2.c: Remove #inclusion of diagnostic.h
8600	(lang_decode_option): Move diagnostic formatting options to
8601	toplevel.
8602
8603	* lang-options.h: Remove documentation for diagnostic options.
8604
8605	* Makefile.in (lex.o): Depends upon diagnostic.h
8606
86072000-06-06  Mark Mitchell  <mark@codesourcery.com>
8608
8609	* decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have
8610	the same DECL_RESULT, it's not a redefinition.
8611	* pt.c (tsubst_decl): Remove code to handle illegal
8612	specializations.
8613
86142000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
8615
8616	* exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c
8617
86182000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
8619
8620	* search.c (maybe_suppress_debug_info): Don't check
8621	CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set.
8622
8623	* pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION
8624	here if extern_p.
8625
8626	Remember instantiation context in deferred instantiations.
8627	* cp-tree.h (struct tinst_level): Remove.
8628	(TINST_DECL, TINST_LINE, TINST_FILE): New macros.
8629	* pt.c (current_tinst_level): Now a tree.
8630	(print_template_context, push_tinst_level, pop_tinst_level,
8631	tinst_for_decl): Adjust.
8632	(reopen_tinst_level): New fn.
8633	(init_pt): Register current_tinst_level as a root.
8634	(add_pending_template): Put current_tinst_level in TREE_PURPOSE
8635	of the pending templates list.
8636	(instantiate_pending_templates): Adjust.  Call reopen_tinst_level.
8637	* lex.c (extract_interface_info): Adjust.
8638	* decl2.c (warn_if_unknown_interface): Adjust.
8639
86402000-06-05  Mark Mitchell  <mark@codesourcery.com>
8641
8642	* class.c (indirect_primary_base_p): New function.
8643	(determine_primary_base): Use it.
8644
86452000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
8646
8647	Update new-abi dynamic cast algorithm.
8648	* tinfo.cc (__class_type_info::__dyncast_result): Add
8649	whole_details. Adjust constructor.
8650	(__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags.
8651	Avoid unnecessary searching.
8652	(__dynamic_cast): Adjust for __dyncast_result::whole_details.
8653
8654Mon Jun  5 06:48:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8655
8656	* decl.c (init_decl_processing): Don't call record_component_aliases.
8657	* tree.c (build_cplus_array_type_1): Likewise.
8658
86592000-06-04  Mark Mitchell  <mark@codesourcery.com>
8660
8661	* ir.texi: Correct typo.
8662	* mangle.c (write_expression): Handle non-type template arguments
8663	with reference type.
8664	* method.c (build_overload_value): Likewise.
8665	* pt.c (convert_nontype_argument): Explicitly represent conversion
8666	to a reference with an ADDR_EXPR.
8667	(unify): Always unify arguments in left-to-right order.
8668
86692000-06-03  Alex Samuel    <samuel@codesourcery.com>
8670	    Mark Mitchell  <mark@codesourcery.com>
8671
8672	* Make-lang.in (CXX_SRCS): Add mangle.c.
8673	* Makefile.in (CXX_OBJS): Add mangle.o.
8674	(mangle.o): New rule.
8675
8676	* class.c (local_classes): New variable.
8677	* class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI.
8678	(get_vtt_name): Use mangle_vtt_name for new ABI.
8679	(init_class_processing): Initialize local_classes.
8680	(build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI.
8681	* cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER.
8682	(std_identifier): New macro.
8683	(DECL_VOLATILE_MEMFUNC_P): New macro.
8684	(DECL_NAMESPACE_STD_P): Likewise.
8685	(local_classes): Declare.
8686	(get_mostly_instantiated_function_type): Declare.
8687	(init_mangle): Declare.
8688	(mangle_decl): Likewise.
8689	(mangle_type_string): Likewise.
8690	(mangle_type): Likewise.
8691	(mangle_typeinfo_for_type): Likewise.
8692	(mangle_typeinfo_string_for_type): Likewise.
8693	(mangle_vtbl_for_type): Likewise.
8694	(mangle_vtt_for_type): Likewise.
8695	(mangle_ctor_vtbl_for_type): Likewise.
8696	(mangle_thunk): Likewise.
8697	(mangle_conv_op_name_for_type): Likewise.
8698	(mangle_guard_variable): Likewise.
8699	* decl.c (pushtag): Keep track of local classes.
8700	(initialize_predefined_identifiers): Initialize std_identifier.
8701	(init_decl_processing): Use std_identifier.
8702	(start_decl): Don't treat instantiations as specializations.
8703	(grokdeclarator): Likewise.
8704	(grokvardecl): Call mangle_decl for new ABI.  Only set mangled
8705	name for fully-instantiated templates.
8706	* decl2.c (grokclassfn): Use set_mangled_name_for_decl for
8707	destructors with the new ABI.
8708	(finish_static_data_member_decl): Use mangle_decl under the new ABI.
8709	(grokfield): Use mangle_type for new ABI.
8710	(grokoptypename): Use mangle_conv_op_for_type for new ABI.
8711	(get_sentry): Use mangle_guard_variable for new ABI.
8712	(start_static_initialization_or_destruction): Likewise.
8713	* expr.c (extract_aggr_init): Remove.
8714	(extract_scalar_init): Likewise.
8715	(extract_init): Remove #if 0'd code.
8716	* mangle.c: New function.
8717	* method.c (build_mangled_name): Assert not flag_new_abi.
8718	(build_static_name): Likewise.
8719	(build_decl_overload_real): Likewise.
8720	(build_typename_overload): Likewise.
8721	(build_overload_with_type): Likewise.
8722	(build_overload_name): Likewise.
8723	(get_ctor_vtbl_name): Likewise.
8724	(start_squangling): Likewise.
8725	(get_id_2): Likewise.
8726	(set_mangled_name_for_decl): Call mangle_decl for new ABI.
8727	(init_method): Call init_mangle for new ABI.
8728	(make_thunk): Call mangle_thunk for new ABI.
8729	* operators.def: Correct new ABI manglings for the `%' operator.
8730	Add `::' operator.
8731	* pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and
8732	DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL.
8733	(lookup_template_class): Call mangle_decl for new ABI.
8734	(get_mostly_instantiated_function_type): New function.
8735	(set_mangled_name_for_template_decl): Use it.
8736	(tsubst_decl): Use set_mangled_name_for_decl for destructors with
8737	the new ABI.  Use mangle_conv_op_name_for_type for instantiated
8738	conversion op names.
8739	* rtti.c (tinfo_name): Call mangle_type_string for new ABI.
8740	(get_tinfo_decl): Call mangle_typeinfo_for_type for new	ABI.
8741	(tinfo_base_init):  Likewise.  Mangle typeinfo string name with
8742	mangle_typeinfo_string_for_type.
8743
87442000-06-03  Mark Mitchell  <mark@codesourcery.com>
8745
8746	* cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment.
8747	(INNERMOST_TEMPLATE_ARGS): New macro.
8748	(innermost_args): Remove.
8749	(get_innermost_template_args): New function.
8750	* decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS.
8751	* error.c (dump_function_decl): Be caution when using
8752	most_general_template.
8753	* method.c (build_template_parm_names):  Use
8754	INNERMOST_TEMPLATE_ARGS.
8755	* pt.c (add_to_template_args): Tidy comment
8756	(get_innermost_template_args): New function.
8757	(check_explicit_specialization): Clear DECL_INITIAL for a new
8758	specialization.
8759	(process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS.
8760	Tidy.
8761	(push_template_decl): Always register specializations of the most
8762	general template.
8763	(convert_template_argument): Use INNERMOST_TEMPLATE_ARGS.
8764	(coerce_template_parms): Likewise.
8765	(lookup_template_class): Likewise.
8766	(innermost_args): Remove.
8767	(tsubst_decl): Use INNERMOST_TEMPLATE_ARGS.
8768	(tsubst_decl): Handle tricky specializations.  Use
8769	get_innermost_template_args.
8770	(instantiate_template): Simplify handling of partial
8771	instantiations.
8772	(get_class_bindings): Use INNERMOST_TEMPLATE_ARGS.
8773	(most_general_template): Reimplement, in a more straightforward
8774	manner.
8775	(regenerate_decl_from_template): Tweak formatting.  Use
8776	TMPL_ARGS_DEPTH for clarity.
8777	(set_mangled_name_for_template_decl): Use INNERMOST_ARGS.
8778
8779	* dump.c (dequeue_and_dump): Dump information about thunks.
8780
87812000-06-01  Richard Henderson  <rth@cygnus.com>
8782
8783	* decl.c (init_decl_processing): Set lang_get_alias_set first thing.
8784
87852000-06-01  Richard Henderson  <rth@cygnus.com>
8786
8787	* decl2.c (unsupported_options): Fix typo, make const.
8788	(lang_decode_option): Fix bsearch argument order.
8789
87902000-06-01  Mark Mitchell  <mark@codesourcery.com>
8791
8792	* init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE
8793	on FIELD_DECLs.
8794
8795Wed May 31 14:09:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8796
8797	* cp-tree.h (c_get_alias_set): Deleted.
8798	* Makefile.in (decl.o): Include ../expr.h.
8799	* decl.c (expr.h): Include.
8800	(init_decl_processing): Call record_component_aliases for arrays.
8801	(grokdeclarator): Likewise.
8802	Set TREE_ADDRESSABLE for fields that aren't bitfields.
8803	* tree.c (build_cplus_array_type_1): Call record_component_aliases.
8804
88052000-05-31  Mark Mitchell  <mark@codesourcery.com>
8806
8807	Remove guiding declaration support.
8808	* cp/cp-tree.h (flag_dump_translation_unit): Make it const.
8809	(flag_guiding_decls): Remove.
8810	* call.c (build_user_type_conversion_1): Remove support for
8811	guiding decls.
8812	(build_new_function_call): Likewise.
8813	(build_new_op): Likewise.
8814	(build_new_method_call): Likewise.
8815	* decl.c (start_function): Likewise.
8816	* friend.c (is_friend): Likewise.
8817	(do_friend): Likewise.
8818	* decl2.c ((flag_dump_translation_unit): Make it const.
8819	(flag_guiding_decls): Remove.
8820	(unsupported_options): New variable
8821	(compare_options): New function.
8822	(lang_decode_option): Use them.
8823
8824	* decl.c (build_cp_library_fn): Set DECL_CONTEXT.
8825
8826	* method.c (mangle_expression): Adjust test for legal expression
8827	operators.
8828
8829	* pt.c (instantiate_decl): Save and restore the local
8830	specializations list.
8831
88322000-05-30  Jason Merrill  <jason@decepticon.cygnus.com>
8833
8834	* decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING.
8835
88362000-05-30  Mark Mitchell  <mark@codesourcery.com>
8837
8838	* call.c (add_template_candidate_real): Handle member template
8839	constructors for classes with virtual bases.
8840	(build_user_type_conversion_1): Use in_charge_arg_for_name.
8841	(build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P.
8842
8843	* ir.texi: Update thunk documentation.
8844
8845	* call.c (joust): Fix handling of overloaded builtin operators.
8846
88472000-05-30  Zack Weinberg  <zack@wolery.cumb.org>
8848
8849	* cp-tree.h (DECL_ANTICIPATED): New macro.
8850	Document new use of DECL_LANG_FLAG_7.
8851	* decl.c (builtin_function): Set DECL_ANTICIPATED on builtins
8852	in the user namespace.
8853	* lex.c (do_identifier): If the identifier's declaration has
8854	DECL_ANTICIPATED on, it has not yet been declared.  But do not
8855	replace it with an ordinary implicit declaration.
8856
8857	* tinfo2.cc: Include stdlib.h.
8858
88592000-05-29  Mark Mitchell  <mark@codesourcery.com>
8860
8861	* cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro.
8862	* class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not
8863	CLASSTYPE_ALIGN.
8864
88652000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
8866
8867	* decl2.c (lang_decode_option): Use skip_leading_substring instead
8868	of plain strncmp.
8869
88702000-05-28  Alexandre Oliva  <aoliva@cygnus.com>
8871
8872	* operators.def (<?): Duplicated, should have been...
8873	(>?): this.  Fixed.
8874
88752000-05-27  Alex Samuel    <samuel@codesourcery.com>
8876	    Mark Mitchell  <mark@codesourcery.com>
8877
8878	* cp-tree.h (ansi_opname): Make it a macro.
8879	(ansi_assopname): Likewise.
8880	(struct lang_decl_flags): Add assignment_operator_p.
8881	(struct lang_decl): Add operator_code.
8882	(DECL_VTT_PARM): Adjust.
8883	(DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an
8884	overloaded operator.
8885	(SET_OVERLOADED_OPERATOR_CODE): New macro.
8886	(DECL_ASSIGNMENT_OPERATOR_P): New macro.
8887	(DECL_ARRAY_DELETE_OPERATOR_P): Adjust.
8888	(opname_tab): Remove.
8889	(assignop_tab): Likewise.
8890	(operator_name_info_t): New type.
8891	(operator_name_info): New variable.
8892	(assignment_operator_name_info): Likewise.
8893	(build_cp_library_fn): Remove declaration.
8894	(push_cp_library_fn): Likewise.
8895	(operator_name_string): Likewise.
8896	(build_decl_overload): Likewise.
8897	* call.c (print_z_candidates): Simplify.
8898	(build_object_call): Adjust usage of ansi_opname.  Use
8899	DECL_OVERLOADED_OPERATOR_P.
8900	(op_error): Adjust operator name lookup.
8901	(build_conditional_expr): Adjust usage of ansi_opname.
8902	(build_new_op): Likewise.
8903	(build_op_delete_call): Likewise.
8904	(build_over_call): Likewise.
8905	(joust): Use DECL_OVERLOADED_OPERATOR_P.
8906	* decl.c (duplicate_decls): Copy operator_code.
8907	(init_decl_processing): Adjust parameters to push_cp_library_fn.
8908	(builtin_function): Adjust parameters to build_library_fn_1.
8909	(build_library_fn_1): Accept an overloaded operator code.
8910	(build_library_fn): Pass ERROR_MARK.
8911	(build_cp_library_fn): Accept an overloaded operator code.
8912	(push_cp_library_fn): Likewise.
8913	(grokfndecl): Tweak.
8914	(grokdeclarator): Simplify code to compute names of overloaded
8915	operators.  Adjust use of ansi_opname.
8916	(ambi_op_p): Work on tree_codes, not identifiers.
8917	(unary_op_p): Likewise.
8918	(grok_op_properties): Likewise.
8919	(start_function): Use DECL_OVERLOADED_OPERATOR_P.
8920	(lang_mark_tree): Don't try to mark the operator_code.
8921	* decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P.
8922	* error.c (dump_decl): Remove special handling for operator
8923	names.
8924	(dump_function_name): Likewise.
8925	(dump_expr): Adjust name lookup of operators.
8926	(op_to_string): Simplify.
8927	(assop_to_string): Likewise.
8928	* init.c (build_new_1): Adjust use of ansi_opname.
8929	* lex.c (opname_tab): Remove.
8930	(assignop_tab): Likewise.
8931	(ansi_opname): Likewise.
8932	(ansi_assopname): Likewise.
8933	(operator_name_string): Likewise.
8934	(reinit_lang_specific): Likewise.
8935	(operator_name_info): New variable.
8936	(assignment_operator_name_info): Likewise.
8937	(init_operators): New function.
8938	(init_parse): Use it.
8939	(do_identifier): Adjust use of ansi_opname.
8940	* method.c (mangle_expression): Don't use ansi_opname for
8941	mangling.
8942	(build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P.
8943	(build_decl_overload): Remove.
8944	(build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly.
8945	(do_build_assign_ref): Adjust use of ansi_opname.
8946	(synthesize_method): Likewise.
8947	(implicitly_declare_fn): Likewise.
8948	* operators.def: New file.
8949	* parse.y (operator): Adjust use of ansi_opname.
8950	* pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P.
8951	(set_mangled_name_for_template_decl): Don't play games with
8952	current_namespace.
8953	(special_function_p): Adjust use of ansi_opname.
8954	* typeck.c (check_return_expr): Likewise.
8955	* Make-lang.in (cc1plus): Depend on operators.def.
8956	* Makefile.in (lex.o): Likewise.
8957	(decl.o): Likewise.
8958
89592000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
8960
8961	* Make-lang.in (cplib2.ready): Eradicate.
8962
8963Sat May 27 11:25:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8964
8965	* method.c (mangle_expression): Use TREE_CODE_LENGTH.
8966	* tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH.
8967	(built_min, cp_tree_equal): Likewise.
8968
89692000-05-26  Mark Mitchell  <mark@codesourcery.com>
8970
8971	* class.c (layout_nonempty_base_or_field): Replace
8972	`record_layout_info' with `record_layout_info_s'.
8973
89742000-05-26  Jason Merrill  <jason@casey.soma.redhat.com>
8975
8976	Fix goto checking.
8977	* cp-tree.h (struct language_function): x_named_labels is now
8978	a struct named_label_list*.
8979	* decl.c (struct named_label_use_list): Renamed from...
8980	(struct named_label_list): ...this.  New struct.
8981	(push_binding_level): Don't set eh_region.
8982	(note_level_for_eh): New fn.
8983	(pop_label): Take label and old value directly.
8984	(pop_labels): Adjust for new named_labels format.
8985	(lookup_label): Likewise.
8986	(poplevel): Note characteristics of a binding level containing a
8987	named label.  Mess with named label lists earlier.
8988	(mark_named_label_lists): New fn.
8989	(mark_lang_function): Call it.
8990	(use_label): New fn, split out from...
8991	(make_label_decl): ...here.  Don't call it.
8992	(decl_jump_unsafe, check_previous_goto, check_previous_goto_1,
8993	check_previous_gotos): New fns,	split out from...
8994	(define_label): ...here.
8995	(check_switch_goto): New fn.
8996	(define_case_label): Call it.
8997	(check_goto): New fn.
8998	* semantics.c (finish_goto_stmt): Call it and use_label.
8999	(begin_compound_stmt): If we're a try block, call note_level_for_eh.
9000	(expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings.
9001
90022000-05-26  Mark Mitchell  <mark@codesourcery.com>
9003
9004	* class.c (build_vtable_entry_ref): Correct usage of
9005	get_vtbl_decl_for_binfo.
9006
9007	* decl2.c (grokclassfn): Set DECL_LANGUAGE here.
9008	* method.c (implicitly_declare_fn): Not here.
9009
90102000-05-26  Nathan Sidwell  <nathan@codesourcery.com>
9011
9012	* cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ...
9013	(CPTI_PTMD_DESC_TYPE): ... here.
9014	(ptmd_desc_type_node): Rename to ...
9015	(ptm_desc_type_node): ... here.
9016	* decl.c: Likewise.
9017	* rtti.c (ptmd_initializer): Rename to ...
9018	(ptm_initializer): ... here.
9019	(sythesize_tinfo_var): Adjust. Deal with pointer to member
9020	function.
9021	(create_tinfo_types): Adjust.
9022
90232000-05-25  Mark Mitchell  <mark@codesourcery.com>
9024
9025	Finish implementation of VTTs.
9026	* cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and
9027	CPTI_VTT_PARM_IDENTIFIER.
9028	(vtt_parm_identifier): New macro.
9029	(vtt_parm_type): Likewise.
9030	(BINFO_SUBVTT_INDEX): Likewise.
9031	(BINFO_VPTR_INDEX): Likewise.
9032	(struct lang_decl): Add vtt_parm.
9033	(DECL_VTT_PARM): New macro.
9034	(DECL_USE_VTT_PARM): Likewise.
9035	(DECL_NEEDS_VTT_PARM_P): Likewise.
9036	(get_vtt_name): Declare.
9037	(build_artificial_parm): Likewise.
9038	(fixup_all_virtual_upcast_offsets): Likewise.
9039	(expand_indirect_vtbls_init): Remove.
9040	* call.c (build_new_method_call): Pass the vtt to subobject
9041	constructors and destructors.
9042	* class.c (get_vtt_name): Give it external linkage.
9043	(build_clone): Handle the magic VTT parameters for clones.
9044	(clone_function_decl): Fix typo in comment.
9045	(build_vtt): Keep track of the indices in the VTTs where various
9046	entities are stored.
9047	(build_vtt_inits): Likewise.
9048	(dfs_build_vtt_inits): Likewise.
9049	(build_ctor_vtbl_group): Tweak type of construction vtables.
9050	(dfs_accumulate_vtbl_inits): Build vtables for all bases, even
9051	primary bases, when building construction vtables.
9052	* decl.c (duplicate_decls): Handle DECL_VTT_PARM.
9053	(initialize_predefined_identifiers): Add vtt_parm_identifier.
9054	(init_decl_processing): Initialize vtt_parm_type.
9055	(grokfndecl): Use DECL_OVERLOADED_OPERATOR_P.
9056	(lang_mark_tree): Make vtt_parm.
9057	* decl2.c (build_artificial_parm): New function.
9058	(maybe_retrofit_in_chrg): Use it.  Add VTT parameters.
9059	(grokclassfn): Use build_artificial_parm.
9060	* init.c (initialize_vtbl_ptrs): Call
9061	fixup_all_virtual_upcast_offsets directly.
9062	(perform_member_init): Use the complete subobject destructor for
9063	member cleanups.
9064	(build_vtbl_address): New function.
9065	(expand_virtual_init): Handle VTTs.
9066	* optimize (maybe_clone_body): Likewise.
9067	* search.c (fixup_all_virtual_upcast_offsets): Give it external
9068	linkage.
9069	(expand_indirect_vtbls_init): Remove.
9070	* semantics.c (setup_vtbl_ptr): Fix typos in comment.
9071	* tree.c (make_binfo): Make them bigger.
9072
90732000-05-25  Nathan Sidwell  <nathan@codesourcery.com>
9074
9075	* inc/cxxabi.h (__pbase_type_info): Define, based on
9076	__pointer_type_info.
9077	(__pointer_type_info): Derive from __pbase_type_info. Adjust.
9078	(__pointer_to_member_type_info): Likewise.
9079	* tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement.
9080	(__pointer_to_member_type_info::__is_pointer_p): Remove.
9081	(__pointer_type_info::__do_catch): Rename to ...
9082	(__pbase_type_info::__do_catch): ... here. Adjust.
9083	(__pbase_type_info::__pointer_catch): Implement.
9084	(__pointer_type_info::__pointer_catch): Adjust.
9085	(__pointer_to_member_type_info::__pointer_catch): Adjust.
9086
90872000-05-25  Nathan Sidwell  <nathan@codesourcery.com>
9088
9089	* tinfo.h (__user_type_info::contained_virtual_p): New
9090	predicate.
9091	* tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond
9092	shaped hierarchy.
9093	(__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to
9094	diamond shaped hierarchy. Add early out for mixed diamond and
9095	duplicate shaped hierarchy.
9096
90972000-05-24  Mark Mitchell  <mark@codesourcery.com>
9098
9099	* cp-tree.h (build_delete): Change prototype.
9100	(build_vec_delete): Likewise.
9101	* call.c (build_scoped_method_call): Use special_function_kind
9102	values to indicate the kind of destruction to be done.
9103	(build_method_call): Likewise.
9104	* decl.c (finish_destructor_body): Likewise.
9105	(maybe_build_cleanup_1): Likewise.  Rename to ...
9106	(maybe_build_cleanup): ... this.
9107	* decl2.c (delete_sanity): Use special_function_kind
9108	values to indicate the kind of destruction to be done.
9109	(build_cleanup): Likewise.
9110	* init.c (perform_member_init): Likewise.
9111	(build_vec_delete_1): Likewise.
9112	(build_dtor_call): Simplify.
9113	(build_delete): Use special_function_kind
9114	values to indicate the kind of destruction to be done.
9115	(build_vbase_delete): Likewise.
9116	(build_vec_delete): Likewise.
9117
9118	* init.c (sort_member_init): Fix typo in error message generation
9119	code.
9120
9121Mon May 15 11:46:29 2000  Donald Lindsay  <dlindsay@cygnus.com>
9122
9123	* semantics.c (begin_class_definition): make the packed
9124	attribute be sensitive to the "-fpack-struct" command line flag
9125
91262000-05-24  Nathan Sidwell  <nathan@codesourcery.com>
9127
9128	Update new-abi upcast algorithm.
9129	* inc/cxxabi.h (__class_type_info::__do_upcast): Change
9130	prototype and meaning of return value.
9131	(__si_class_type_info::__do_upcast): Likewise.
9132	(__vmi_class_type_info::__do_upcast): Likewise.
9133	* tinfo.cc (__class_type_info::__upcast_result): Replace
9134	whole2dst with part2dst. Adjust ctor.
9135	(__class_type_info::__do_upcast): Adjust call of worker function.
9136	(__class_type_info::__do_upcast): Adjust.
9137	(__si_class_type_info::__do_upcast): Adjust. Use parent's
9138	__do_upcast.
9139	(__vmi_class_type_info::__do_upcast): Likewise. Fix private
9140	virtual base in diamond hierarchy bug.
9141
91422000-05-23  Mark Mitchell  <mark@codesourcery.com>
9143
9144	* cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable
9145	and bitfield to tinfo_fn_p.
9146	(DECL_TINFO_FN_P): Adjust.
9147	(SET_DECL_TINFO_FN_P): Likewise.
9148	(DECL_MUTABLE_P): Likewise.
9149	(DECL_C_BIT_FIELD): Likewise.
9150	(SET_DECL_C_BIT_FIELD): Likewise.
9151	(CLEAR_DECL_C_BIT_FIELD): Likewise.
9152	(DECL_UNINLINABLE): Likewise.
9153	* class.c (alter_access): Call retrofit_lang_decl if ncessary.
9154	(handle_using_decl): Remove assertion.
9155	(build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl,
9156	to build FIELD_DECLs.
9157	(build_base_field): Likewise.
9158	(layout_class_type): Likewise.
9159	* decl.c (init_decl_processing): Likewise.
9160	(build_ptrmemfunc_type): Likewise.
9161	(grokdeclarator): Likewise.
9162	* decl2.c (grok_x_components): Likewise.
9163	* except.c (call_eh_info): Likewise.
9164	* init.c (init_init_processing): Likewise.
9165	* rtti.c (expand_class_desc): Likewise.
9166	(create_pseudo_type_info): Likewise.
9167	(get_vmi_pseudo_type_info): Likewise.
9168	(create_tinfo_types): Likewise.
9169	* ptree.c (print_lang_decl): Adjust.
9170	* typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC
9171	before checking DECL_MUTABLE_P.
9172
9173	* decl2.c (maybe_retrofit_in_chrg): Don't create in-charge
9174	parameters for template functions.
9175	* pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for
9176	destructors as well as constructors.
9177
91782000-05-22  Mark Mitchell  <mark@codesourcery.com>
9179
9180	* class.c (build_ctor_vtbl_group): Set inits.
9181	* optimize.c (maybe_clone_body): Set DECL_INLINE and
9182	DECL_THIS_INLINE appropriately for clones.
9183
9184	* cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp.
9185	(DECL_CONV_FN_P): Simplify.
9186	(DECL_OPERATOR): Remove.
9187	(language_to_string): Declare.
9188	* decl.c (duplicate_decls): Fix typo in comment.
9189	(grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P.
9190	(grok_op_properties): Use DECL_CONV_FN_P instead of
9191	IDENTIFIER_TYPENAME_P.
9192	* dump.c (dequeue_and_dump): Dump the language linkage of
9193	declarations.
9194	* error.c (language_to_string): Give it external linkage.
9195	* method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P.
9196	(implicitly_declare_fn): Set DECL_LANGUAGE.
9197	* pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not
9198	IDENTIFIER_TYPENAME_P.
9199	(tsubst_decl): Likewise.
9200	(tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P.
9201	* semantics.c (finish_member_declaration): Don't mark members of
9202	classes declared in an extern "C" region as extern "C".
9203
92042000-05-22  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
9205
9206	* decl2.c (qualified_lookup_using_namespace): Look through
9207	namespace aliases.
9208
9209	* decl.c (push_using_decl): Return the old decl on namespace level.
9210
92112000-05-21  Mark Mitchell  <mark@codesourcery.com>
9212
9213	* cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks.
9214	(VTT_NAME_PREFIX): New macro.
9215	(CTOR_VTBL_NAME_PREFIX): Likewise.
9216	(get_ctor_vtbl_name): New function.
9217	* class.c (get_vtable_name): Simplify.
9218	(get_vtt_name): New function.
9219	(get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE.
9220	(dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list
9221	when a virtual base becomes primary.
9222	(finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier.  Build
9223	VTTs.
9224	(finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in
9225	additional parameters.
9226	(dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED.
9227	(initialize_array): New function.
9228	(build_vtt): Likewise.
9229	(build_vtt_inits): Likewise.
9230	(dfs_build_vtt_inits): Likewise.
9231	(dfs_fixup_binfo_vtbls): Likewise.
9232	(build_ctor_vtbl_group): Likewise.
9233	(initialize_vtable): Use initialize_array.
9234	(accumulate_vtbl_inits): Reimplement to handle construction
9235	vtables.
9236	(dfs_accumulate_vtbl_inits): Likewise.
9237	(bulid_vtbl_initializer): Adjust parameter name.
9238	* method.c (build_typename_overload): Remove #if 0'd code.
9239	(get_ctor_vtbl_name): New function.
9240	* search.c (dfs_walk_real): Use BINFO_N_BASETYPES.
9241	(init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo.
9242
9243	* cp-tree.h (struct lang_type): Remove search_slot.
9244	(CLASSTYPE_SEARCH_SLOT): Remove.
9245	(emit_base_init): Change prototype.
9246	(initialize_vtbl_ptrs): Likewise.
9247	(expand_indirect_vtbls_init): Likewise.
9248	(clear_search_slots): Remove.
9249	* decl.c (lang_mark_tree): Don't mark search_slot.
9250	* init.c (initialize_vtbl_ptrs): Simplify.
9251	(emit_base_init): Likewise.
9252	* search.c (struct vbase_info): Document decl_ptr.
9253	(convert_pointer_to_single_level): Remove.
9254	(dfs_find_vbases): Remove.
9255	(dfs_init_base_pointers): Simplify.
9256	(dfs_clear_vbase_slots): Remove.
9257	(dfs_vtable_path_unmark): New function.
9258	(init_vbase_pointers): Simplify.
9259	(expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT.
9260	(expand_indirect_vtbls_init): Simplify.  Don't call
9261	mark_all_temps_used.
9262	* semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and
9263	initialize_vtbl_ptrs.
9264
92652000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
9266
9267	* except.c: Add static prototypes.
9268
92692000-05-20  H.J. Lu  <hjl@gnu.org>
9270
9271	* Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext).
9272
92732000-05-19  Mark Mitchell  <mark@codesourcery.com>
9274
9275	Don't create a separate copy of virtual bases for the
9276	CLASSTYPE_VBASECLASSES list.
9277	* cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation.
9278	(BINFO_FOR_VBASE): Remove.
9279	(CANONICAL_BINFO): Adjust.
9280	(binfo_for_vbase): New function.
9281	* class.c (build_vbase_pointer_fields): Use binfo_for_vbase
9282	instead of BINFO_FOR_VBASE.
9283	(build_vbase_pointer): Likewise.
9284	(build_secondary_vtable): Likewise.
9285	(dfs_mark_primary_bases): Likewise.
9286	(mark_primary_bases): Likewise.
9287	(layout_nonempty_base_or_field): Likewise.
9288	(dfs_set_offset_for_shared_vbases): Likewise.
9289	(dfs_set_offset_for_unshared_vbases): Likewise.
9290	(layout_virtual_bases): Likewise.  Adjust for changes to the
9291	CLASSTYPE_VBASECLASSES list.
9292	(dump_class_hierarchy_r): Use binfo_for_vbase
9293	instead of BINFO_FOR_VBASE.
9294	(dump_class_hierarchy): Likewise.
9295	(finish_vtbls): Likewise.
9296	(build_vtbl_initializer): Adjust for changes to the
9297	CLASSTYPE_VBASECLASSES list.
9298	(build_vbase_offset_vtbl_entries): Use binfo_for_vbase.
9299	* decl.c (finish_destructor_body): Adjust for changes to the
9300	CLASSTYPE_VBASECLASSES list.
9301	* init.c (sort_base_init): Use binfo_for_vbase.
9302	(construct_virtual_bases): Adjust for changes to the
9303	CLASSTYPE_VBASECLASSES list.
9304	(expand_member_init): Use binfo_for_vbase.
9305	(build_vbase_delete):  Adjust for changes to the
9306	CLASSTYPE_VBASECLASSES list.
9307	* method.c (do_build_copy_constructor): Likewise.
9308	* rtti.c (get_base_offset): Use binfo_for_vbase.
9309	(expand_class_desc): Remove #if 0'd code.
9310	* search.c (struct vbase_info): Remove vbase_types.
9311	(get_base_distance):  Use binfo_for_vbase.
9312	(lookup_field_queue_p): Use CANONICAL_BINFO.
9313	(get_shared_vbase_if_not_primary): Use binfo_for_vbase.
9314	(get_pure_virtuals): Adjust for changes to the
9315	CLASSTYPE_VBASECLASSES list.
9316	(dfs_find_vbases): Use binfo_for_vbase.
9317	(dfs_init_vbase_pointers): Likewise.
9318	(init_vbase_pointers): Don't initialize vi.vbase_types.
9319	(virtual_context): Use binfo_for_vbase.
9320	(fixup_all_virtual_upcast_offsets): Adjust for changes to the
9321	CLASSTYPE_VBASECLASSES list.
9322	(expand_indirect_vtbls_init): Simplify.
9323	(dfs_get_vbase_types): Don't replicate virtual bases.
9324	(find_vbase_instance): Use binfo_for_vbase.
9325	(binfo_for_vbase): New function.
9326	* typeck.c (get_delta_difference): Use binfo_for_vbase.
9327
93282000-05-17  Mark Mitchell  <mark@codesourcery.com>
9329
9330	* decl2.c (finish_anon_union): Generalize error messages to handle
9331	anonymous structures.
9332	* init.c (perform_member_init): Remove `name' parameter.
9333	(build_field_list): New function.
9334	(sort_member_init): Handle anonymous union initialization order
9335	correctly.  Check for multiple initializations of the same union.
9336	(emit_base_init): Don't look up fields by name here.
9337	(expand_member_init): Record the result of name lookup for future
9338	reference.
9339	* typeck.c (build_component_ref): Fix formatting.
9340
9341Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
9342
9343	* decl.c (pop_label): Replace warn_unused with warn_unused_label.
9344	* typeck.c (build_x_compound_expr): Replace warn_unused with
9345	warn_unused_value.
9346
9347	* decl2.c (lang_decode_option): Update -Wall unused flags by
9348	calling set_Wunused.
9349
93502000-05-16  Mark Mitchell  <mark@codesourcery.com>
9351
9352	* cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation.
9353	* init.c (dfs_vtable_path_unmark): Remove.
9354	* search.c (marked_new_vtable_p): Likewise.
9355	(unmarked_new_vtable_p): Likewise.
9356	(dfs_search_slot_nonempty_p): Likewise.
9357	(dfs_mark): Likewise.
9358	(dfs_vtable_path_unmark): Likewise.
9359	(dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED.
9360	(dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED.
9361	(dfs_init_vbase_pointers): Remove special-case new ABI code.
9362	(dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED.
9363	(init_vbase_pointers): Simplify.
9364	(expand_indirect_vtbls_init): Likewise.
9365
9366	* class.c (copy_virtuals): New function.
9367	(build_primary_table): Use it.
9368	(build_secondary_vtable): Likewise.
9369	(modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to
9370	indicate that no vcall offset is required.
9371	(add_virtual_function): Likewise.
9372	(modify_all_vtables): Likewise.
9373	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
9374	(dfs_accumulate_vtbl_inits): Likewise.
9375	(build_vtbl_initializer): Make changes to handle construction
9376	vtables.
9377	(dfs_build_vcall_offset_vtbl_entries): Likewise.
9378	(build_rtti_vtbl_entries): Likewise.
9379	(build_vtable_entries): Handle a NULL vcall_index.
9380
93812000-05-15  Gabriel Dos Reis  <gdr@codesourcery.com>
9382
9383	* decl2.c (lang_decode_option): Fix thinko.
9384
93852000-05-14  Jason Merrill  <jason@casey.cygnus.com>
9386
9387	* except.c (check_handlers): New fn.
9388	* cp-tree.h: Declare it.
9389	* semantics.c (finish_handler_sequence): Call it.
9390	(finish_function_handler_sequence): Likewise.
9391	(finish_handler_parms): Set TREE_TYPE on the handler.
9392	* cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro.
9393	* search.c (get_base_distance_recursive): If protect>1, ignore
9394	special access.
9395	(get_base_distance): Don't reduce watch_access.
9396
93972000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
9398
9399	* lex.c: #include diagnostic.h.
9400	(lang_init_options): Set default prefixing rules.
9401
9402	* lang-options.h: Add -fdiagnostics-show-location=.
9403
9404	* decl2.c: #include diagnostic.h.
9405	(lang_decode_option): Handle -fdiagnostics-show-location=.
9406
94072000-05-12  Nathan Sidwell  <nathan@codesourcery.com>
9408
9409	* tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes.
9410	* vec.cc: Revert my 2000-05-07 change.
9411
94122000-05-11  Jason Merrill  <jason@casey.cygnus.com>
9413
9414	* class.c (check_field_decls): Complain about non-static data
9415	members with same name as class in class with constructor.
9416
94172000-05-10  Jason Merrill  <jason@casey.cygnus.com>
9418
9419	* decl.c (grokdeclarator): Allow non-static data members with
9420	same name as class.
9421
94222000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
9423
9424	* cp-tree.h: Constify tree_srcloc.filename, tinst_level.file,
9425	and pending_inline.filename.  Update prototypes.
9426	* decl.c (define_label): Constify filename parameter.
9427	* decl2.c (warn_if_unknown_interface): Constify local char *.
9428	* input.c Constify input_source.filename. Don't declare
9429	input_filename or lineno.  Constify filename parameter to feed_input.
9430	* lex.c (init_parse): Constify parameter and return value.
9431	(cp_pragma_interface, cp_pragma_implementation): Constify
9432	filename argument.
9433	(reinit_parse_for_method, reinit_parse_for_block,
9434	reinit_parse_for_expr, feed_defarg, handle_cp_pragma):
9435	Constify local char *.
9436	* pt.c: Don't declare lineno or input_filename.
9437	(print_template_context, tsubst_friend_function, tsubst_decl,
9438	tsubst, instantiate_decl): Constify local char *.
9439	* semantics.c (expand_body): Constify local char *.
9440	* tree.c (build_srcloc): Constify filename parameter.
9441	* typeck.c (c_expand_asm_operands): Constify filename
9442	parameter.
9443
94442000-05-08  Nathan Sidwell  <nathan@codesourcery.com>
9445
9446	* tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix
9447	offsetof expansion.
9448
94492000-05-08  Branko Cibej  <branko.cibej@hermes.si>
9450
9451	* inc/cxxabi.h:  Fix typos in comment.
9452	(__base_class_info::__offset): Use a static_cast.
9453
94542000-05-07  Nathan Sidwell  <nathan@codesourcery.com>
9455
9456	* inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place
9457	of std::size_t and std::ptrdiff_t respectively.
9458	* tinfo.cc: Likewise.
9459	* vec.cc: Likewise.
9460
94612000-05-06  Richard Henderson  <rth@cygnus.com>
9462
9463	* typeck.c (build_c_cast): Don't warn integer->pointer size
9464	mismatch for constants.
9465
94662000-05-06  Nathan Sidwell  <nathan@codesourcery.com>
9467
9468	* rtti.c (ptmd_initializer): Set non-public, if class is
9469	incomplete.
9470
9471	* inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++".
9472	(__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
9473	__cxa_vec_delete): Likewise.
9474	* tinfo.cc (__dynamic_cast): Likewise.
9475	* vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
9476	__cxa_vec_delete): Likewise.
9477
94782000-05-04  Mark Mitchell  <mark@codesourcery.com>
9479
9480	* cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove.
9481	(SET_FNADDR_FROM_VTABLE_ENTRY): Likewise.
9482	(lang_decl_flags): Add vcall_offset.
9483	(THUNK_VCALL_OFFSET): Use it.
9484	* decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk.
9485	* method.c (make_thunk): Create the lang_decl here, not in
9486	emit_thunk.
9487	(emit_thunk): Make generic thunks into ordinary functions once
9488	they have been fed to expand_body.
9489	* semantics.c (expand_body): Set current_function_is_thunk here.
9490
94912000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9492
9493	* class.c (update_vtable_entry_for_fn): Prototype.
9494
9495	* pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl'
9496	and `tmpl'.
9497
9498	* search.c (dfs_build_inheritance_graph_order): Prototype.
9499
95002000-05-04  Mark Mitchell  <mark@codesourcery.com>
9501
9502	* cp-tree.h (special_function_kind): Add various kinds of
9503	destructors.
9504	(special_function_p): New function.
9505	* class.c (overrides): Don't let one kind of destructor override
9506	another.
9507	* decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding
9508	whether or not to instantiate a template.
9509	* tree.c (special_function_p): Define.
9510
95112000-05-03  Mark Mitchell  <mark@codesourcery.com>
9512
9513	* cp-tree.def (THUNK_DECL): Remove.
9514	* cp-tree.h (DECL_THUNK_P): New macro.
9515	(DECL_NON_THUNK_FUNCTION_P): Likewise.
9516	(DECL_EXTERN_C_FUNCTION_P): Likewise.
9517	(SET_DECL_THUNK_P): Likewise.
9518	(DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P.
9519	(FNADDR_FROM_VTABLE_ENTRY): Likewise.
9520	(DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P.
9521	* decl.c (decls_match): Use DECL_EXTERN_C_P.
9522	(duplicate_decls): Likewise.
9523	(pushdecl): Likewise.  Adjust thunk handling.
9524	(grokfndecl): Use DECL_EXTERN_C_P.
9525	* decl2.c (mark_vtable_entries): Use DECL_THUNK_P.
9526	* dump.c (dequeue_and_dump): Remove THUNK_DECL handling.
9527	* except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P.
9528	* expr.c (cplus_expand_expr): Remove THUNK_DECL handling.
9529	* method.c (make_thunk): Use SET_DECL_THUNK_P.  Set
9530	DECL_NO_STATIC_CHAIN.
9531	(emit_thunk): Don't play games with TREE_CODE on thunks.  Don't
9532	set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk.
9533	* search.c (covariant_return_p): Remove THUNK_DECL handling.
9534	* ir.texi: Update.
9535
95362000-05-01  Jason Merrill  <jason@casey.cygnus.com>
9537
9538	* tree.c (walk_tree): Set lineno.
9539
95402000-05-01  Mark Mitchell  <mark@codesourcery.com>
9541
9542	* exception.cc: Update license notice.
9543	* new.cc: Likewise.
9544	* new1.cc: Likewise.
9545	* new2.cc: Likewise.
9546	* tinfo.cc: Likewise.
9547	* tinfo2.cc: Likewise.
9548	* vec.cc: Likewise.
9549	* inc/cxxabi.h: Likewise.
9550	* inc/exception: Likewise.
9551	* inc/new: Likewise.
9552	* inc/new.h: Likewise.
9553	* inc/typeinfo: Likewise.
9554
95552000-05-01  Jason Merrill  <jason@casey.cygnus.com>
9556
9557	* tree.c (build_target_expr_with_type): If we already have a
9558	TARGET_EXPR, just return it.
9559
9560	* optimize.c (initialize_inlined_parameters): Don't generate an
9561	EXPR_STMT if we can just use DECL_INITIAL.
9562	* decl.c (emit_local_var): Only make the initialization a
9563	full-expression if stmts_are_full_exprs_p.
9564
95652000-05-01  Mark Mitchell  <mark@codesourcery.com>
9566
9567	* cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New
9568	macro.
9569	* call.c (standard_conversion): Use it.
9570	(direct_reference_binding): Likewise.
9571	(build_over_call): Likewise.
9572	(is_properly_derived_from): Likewise.
9573	(compare_ics): Likewise.
9574	* class.c (resolves_to_fixed_type_p): Likewise.
9575	* optimize.c (declare_return_variable): Likewise.
9576	* pt.c (is_specialization_of): Likewise.
9577	(unify): Likewise.
9578	* typeck.c (comp_target_parms): Likeiwse.
9579	(build_static_cast): Likewise.
9580	(build_reinterpret_cast): Likewise.
9581	(build_const_cast): Likewise.
9582	(comp_ptr_ttypes_real): Likewise.
9583	(comp_ptr_ttypes_const): Likewise.
9584	* typeck2.c (process_init_constructor): Likewise.
9585
95862000-04-30  Scott Snyder <snyder@fnal.gov>
9587
9588	* decl.c (finish_destructor_body): Use the base destructor when
9589	destroying virtual bases.
9590
95912000-04-30  Mark Mitchell  <mark@codesourcery.com>
9592
9593	* expr.c (cplus_expand_expr): Preserve temporaries when expanding
9594	STMT_EXPRs.
9595	* optimize.c (struct inline_data): Add target_exprs field.
9596	(declare_return_variable): When a function returns an aggregate,
9597	use the variable declared in the TARGET_EXPR as the remapped
9598	DECL_RESULT.
9599	(expand_call_inline): Update the pending target_exprs stack.
9600	(optimize_function): Initialize the stack.
9601
9602	* decl2.c (finish_file): Fix typo in comment.
9603
9604	* method.c (emit_thunk): Don't try to return a `void' value.
9605
9606	* optimize.c (initialize_inlined_parameters): If the parameter is
9607	addressable, we need to make a new VAR_DECL, even if the
9608	initializer is constant.
9609
96102000-04-28  Cosmin Truta  <cosmint@cs.ubbcluj.ro>
9611
9612	* decl.c (grok_op_properties): Add an extra check of argtypes.
9613
96142000-04-27  Mark Mitchell  <mark@codesourcery.com>
9615
9616	* optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying
9617	variables.
9618	(initialize_inlined_parameters): Try to avoid creating new
9619	VAR_DECLs.
9620
96212000-04-27  Alex Samuel  <samuel@codesourcery.com>
9622
9623	* lex.c (my_get_run_time): Remove.
9624	(init_filename_times): Use get_run_time instead of my_get_run_time.
9625	(check_newline): Likewise.
9626	(dump_time_statistics): Likewise.
9627	* decl2.c (finish_file): Push and pop timevar TV_VARCONST instead
9628	of computing elapsed time explicitly.
9629
96302000-04-26  Mark Mitchell  <mark@codesourcery.com>
9631
9632	* cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P.
9633	* init.c (decl_constant_value): Check TREE_READONLY_DECL_P.
9634	* call.c (convert_like_real): Don't test TREE_READONLY_DECL_P
9635	before calling decl_constant_value.
9636	* class.c (check_bitfield_decl): Likewise.
9637	* cvt.c (ocp_convert): Likewise.
9638	(convert): Likewise.
9639	* decl.c (compute_array_index_type): Likewise.
9640	(build_enumerator): Likewise.
9641	* decl2.c (check_cp_case_value): Likewise.
9642	* pt.c (convert_nontype_argument): Likewise.
9643	(tsubst): Likewise.
9644	* typeck.c (decay_conversion): Likewise.
9645	(build_compound_expr): Likewise.
9646	(build_reinterpret_cast): Likewise.
9647	(build_c_cast): Likewise.
9648	(convert_for_assignment): Likewise.
9649
96502000-04-26  Jason Merrill  <jason@casey.cygnus.com>
9651
9652	* decl.c (finish_function): Don't play games with DECL_INLINE.
9653
96542000-04-25  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
9655
9656	* ir.texi: Correct typo.
9657
96582000-04-25  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
9659
9660	* decl.c (grokdeclarator): Reject VLAs as members.
9661
96622000-04-24  Gabriel Dos Reis  <gdr@codesourcery.com>
9663
9664	* call.c (standard_conversion): Accept conversion between
9665	COMPLEX_TYPEs.
9666
9667	* cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE.
9668
96692000-04-24  Zack Weinberg  <zack@wolery.cumb.org>
9670
9671	* decl2.c (finish_file): Remove double setup for accounting
9672	compile time.
9673
96742000-04-24  Robert Lipe <robertlipe@usa.net>
9675
9676	* cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD.
9677
96782000-04-23  Benjamin Kosnik  <bkoz@cygnus.com>
9679
9680	* new.cc (set_new_handler): Needs to be in std::.
9681
96822000-04-23  Mark Mitchell  <mark@codesourcery.com>
9683
9684	* cp-tree.h (lang_decl): Remove pretty_function_p.
9685	(DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the
9686	language-specific node.
9687	* decl.c (cp_make_fname_decl): Use build_decl, not
9688	build_lang_decl, to build the variables.
9689	(grokvardecl): Don't call build_lang_decl for local variables in
9690	templates.
9691	(grokdeclarator): Don't call build_lang_decl for local type
9692	declarations in templates.
9693	* lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated
9694	zero'd memory, rather than calling memset.
9695	* pt.c: Include hashtab.h.
9696	(local_specializations): New variable.
9697	(retrieve_local_specialization): Use it.
9698	(register_local_specialization): Likewise.
9699	(tsubst_decl): Don't assume local variables have
9700	DECL_LANG_SPECIFIC.
9701	(instantiate_decl): Set up local_specializations.
9702	* Makefile.in (HTAB_H): New variable.
9703
97042000-04-23  Richard Henderson  <rth@cygnus.com>
9705
9706	* typeck.c (c_expand_asm_operands): Restore the original
9707	contents of the output list.
9708
97092000-04-22  Gabriel Dos Reis <gdr@codesourcery.com>
9710
9711	* ir.texi:  Document complex number representation.
9712
97132000-04-20  Nathan Sidwell  <nathan@codesourcery.com>
9714
9715	* rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi.
9716	(target_incomplete_p): New function.
9717	(tinfo_base_init): Create comdat NTBS name variable.
9718	(ptr_initializer): Add non_public parameter. Calculate it.
9719	(ptmd_initializer): Likewise.
9720	(synthesize_tinfo_var): Adjust. Emit incomplete class tinfo.
9721	(create_real_tinfo_var): Add non_public parameter. Use it.
9722	Push proxy into global namespace.
9723	* inc/cxxabi.h (__pointer_type_info::incomplete_class_mask):
9724	New enumeration.
9725	* inc/typeinfo (type_info::before, type_info::operator==):
9726	Compare __name addresses.
9727
9728	* tinfo2.cc: Remove new-abi builtins comment.
9729
97302000-04-20  Jason Merrill  <jason@casey.cygnus.com>
9731
9732	* typeck.c (build_x_function_call): Resolve an OFFSET_REF.
9733
9734	* call.c (joust): Exit early if we get the same function, too.
9735
9736	* decl2.c (key_method): Return NULL_TREE for template classes.
9737	(import_export_class): Don't need to check for template classes.
9738
97392000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
9740
9741	* lex.c: Remove references to cccp.c.
9742
97432000-04-18  Mark Mitchell  <mark@codesourcery.com>
9744
9745	* cp-tree.h (lang_decl_flags): Remove const_memfunc and
9746	volatile_memfunc.  Add destructor_attr.  Adjust dummy.
9747	(DECL_DESTRUCTOR_P): Use destructor_attr.
9748	(DECL_CONST_MEMFUNC_P): Reimplement.
9749	(DECL_VOLATILE_MEMFUNC_P): Remove.
9750	* class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS.
9751	(overrides): Use DECL_DESTRUCTOR_P.
9752	(check_for_override): Likewise.
9753	* decl.c (start_function): Likewise.
9754	* decl2.c (grokfclassfn): Likewise.
9755	(check_classfn): Likewise.
9756	(grok_function_init): Likewise.
9757
97582000-04-17  Mark Mitchell  <mark@codesourcery.com>
9759
9760	* decl2.c (grokfield): Issue error on illegal data member
9761	declaration.
9762
9763Mon Apr 17 17:11:16 2000  Mark P Mitchell  <mark@codesourcery.com>
9764
9765	* method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL.
9766
97672000-04-16  Mark Mitchell  <mark@codesourcery.com>
9768
9769	* class.c (build_vtable_entry): Don't build thunks for type-info
9770	functions.
9771
97722000-04-16  Jason Merrill  <jason@casey.cygnus.com>
9773
9774	* decl.c (decls_match): Allow a redeclaration of a builtin to
9775	specify args while the builtin did not.
9776
97772000-04-15  Mark Mitchell  <mark@codesourcery.com>
9778
9779	* cp-tree.def (THUNK_DECL): Add to documentation.
9780	* cp-tree.h (flag_huge_objects): Declare.
9781	* class.c (modify_vtable_entry): Tidy.
9782	(update_vtable_entry_for_fn): Split out from dfs_modify_vtables.
9783	Calculate delta appropriately for the new ABI.
9784	(dfs_modify_vtables): Use it.
9785	(modify_all_vtables): Fix thinko in code to add overriding copies
9786	of functions to primary vtables.
9787	(build_clone): Fix typo in comment.
9788	(clone_function_decl): Correct order of destructors in vtable.
9789	(build_vbase_offset_vtbl_entries): Adjust comment.
9790	(dfs_vcall_offset_queue_p): Remove.
9791	(dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX.
9792	(build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases.
9793	(build_vtable_entry): Correct check for pure virtual functions.
9794	Don't declare flag_huge_objects.
9795	* decl.c (flag_huge_objects): Remove declaration.
9796	* method.c (make_thunk): Tweak mangling for vcall offset thunks.
9797	Use int_size_in_bytes.
9798	(emit_thunk): Handle vcall offset thunks.
9799
9800Sat Apr 15 16:00:01 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9801
9802	* decl2.c (parse_time, varconst_time): Delete declarations.
9803	(finish_file): Delete LINENO declaration.
9804	START_TIME and THIS_TIME now long.
9805
98062000-04-13  Nathan Sidwell  <nathan@codesourcery.com>
9807
9808	* class.c (build_base_field): Reformat comment.
9809
9810	* inc/cxxabi.h (stddef.h): Comment inclusion.
9811	(__base_class_info::__offset): Comment shift.
9812
98132000-04-12  Mark Mitchell  <mark@codesourcery.com>
9814
9815	* cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro.
9816	(cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER.
9817	(cp_push_exception_identifier): New macro.
9818	(DECL_COMPLETE_DESTRUCTOR_P): New macro.
9819	(DECL_BASE_DESTRUCTOR_P): Likewise.
9820	(DECL_DELETING_DESTRUCTOR_P): Likewise.
9821	(get_vtbl_decl_for_binfo): Fix formatting.
9822	(in_charge_arg_for_name): New macro.
9823	(maybe_build_cleanup_and_delete): Remove declaration.
9824	* call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P.
9825	(in_charge_arg_for_name): New function.
9826	(build_new_method_call): Use it.  Handle cloned destructors.
9827	(build_clone): Don't make the base constructor virtual.
9828	Automatically defer generated functions.
9829	(clone_function_decl): Handle destructors, too.
9830	(clone_constructors_and_destructors): Likewise.
9831	(create_vtable_ptr): Don't create a vtable entry for a cloned
9832	function.
9833	* decl.c (predefined_identifier): Add ctor_or_dtor_p.
9834	(initialize_predefined_identifiers): Update appropriately.
9835	(finish_destructor_body): Simplify.
9836	(maybe_build_cleanup_and_delete): Remove.
9837	* except.c (expand_throw): Handle new-ABI destructors.
9838	* init.c (expand_cleanup_for_base): Use base_dtor_identifier.
9839	(build_dtor_call): New function.
9840	(build_delete): Use it.  Simplify.
9841	* optimize.c (maybe_clone_body): Handle destructors.
9842	* search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P.
9843
9844	* exception.cc (cleanup_fn): New typedef.
9845	(CALL_CLEANUP): New macro.
9846	(cp_eh_info): Use them.
9847	(__cp_push_exception): Likewise.
9848	(__cp_pop_exception): Likewise.
9849
98502000-04-11  Mark Mitchell  <mark@codesourcery.com>
9851
9852	* cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER.
9853	(complete_dtor_identifier): New macro.
9854	(CLASSTYPE_FIRST_CONVERSION): Remove.
9855	(CLASSTYPE_CONSTRUCTOR_SLOT): New macro.
9856	(CLASSTYPE_DESTRUCTOR_SLOT): Likewise.
9857	(CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise.
9858	(CLASSTYPE_CONSTRUCTORS): Likewise.
9859	(CLASSTYPE_DESTRUCTORS): Likewise.
9860	(lang_decl): Add cloned_function.
9861	(DECL_COMPLETE_CONSTRUCTOR_P): New macro.
9862	(DECL_BASE_CONSTRUCTOR_P): Likewise.
9863	(DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise.
9864	(DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise.
9865	(DECL_CLONED_FUNCTION_P): Likewise.
9866	(DECL_CLONED_FUNCTION): Likewise.
9867	(clone_function_decl): Declare.
9868	(maybe_clone_body): Likewise.
9869	* call.c (build_user_type_conversion_1): Call complete object
9870	constructors in the new ABI.
9871	(build_new_method_call): Don't add in-charge parameters under the
9872	new ABI.
9873	* class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P,
9874	DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and
9875	CLASSTYPE_DESTRUCTOR_SLOT.
9876	(build_clone): New function.
9877	(clone_function_decl): Likewise.
9878	(clone_constructors_and_destructors): Likewise.
9879	(check_bases_and_members): Use it.
9880	* decl.c (iniitialize_predefined_identifiers): Initialize
9881	complete_dtor_identifier.
9882	(finish_function): Don't add extra code to a clone.
9883	(lang_mark_tree): Mark cloned_function.
9884	* decl2.c (mark_used): Don't bother trying to instantiate things
9885	we synthesized.
9886	* dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice.
9887	* method.c (set_mangled_name_for_decl): Don't treat clones as
9888	constructors.
9889	(synthesize_method): Sythesize cloned functions, not the clones.
9890	* optimize.c (inline_data): Update comment on ret_label.
9891	(remap_block): Don't assume DECL_INITIAL exists.
9892	(copy_body_r): Allow ret_label to be NULL.
9893	(maybe_clone_body): Define.
9894	* pt.c (tsubst_decl): Handle clones.
9895	(instantiate_clone): New function.
9896	(instantiate_template): Use it.
9897	(set_mangled_name_for_template_decl): Don't treat clones as
9898	constructors.
9899	* search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT,
9900	CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT.
9901	* semantics.c (expand_body): Clone function bodies as necessary.
9902
9903	* optimize.c (remap_decl): Avoid sharing structure for arrays
9904	whose size is only known at run-time.
9905	* tree.c (copy_tree_r): Don't copy PARM_DECLs.
9906
9907	* cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr
9908	to has_in_charge_parm_p.
9909	(DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ...
9910	(DECL_HAS_IN_CHARGE_PARM_P): ... this.
9911	(DECL_COPY_CONSTRUCTOR_P): New macro.
9912	* call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P.
9913	(build_user_type_conversion_1): Likewise.
9914	(convert_like_real): Likewise.
9915	(build_over_call): Likeiwse.  Use DECL_COPY_CONSTRUCTOR_P.
9916	* decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P.
9917	(copy_args_p): Likewise.
9918	(grok_ctor_properties): Likewise.
9919	(start_function): Likewise.
9920	* decl2.c (maybe_retrofit_in_charge): Likewise.  Set it.
9921	* error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P.
9922	* init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P.
9923	* method.c (do_build_copy_constructor): Use
9924	DECL_HAS_IN_CHARGE_PARM_P.
9925	(synthesize_method): Likewise.
9926	* pt.c (instantiate_template): Remove goto.
9927	* tree.c (build_cplus_method_type): Remove mention of obstacks in
9928	comment.
9929
9930	* cp-tre.h (finish_function): Change prototype.
9931	* decl.c (end_cleanup_fn): Adjust caller.
9932	(finish_function): Take only one parameter.
9933	* decl2.c (finish_objects): Adjust caller.
9934	(finish_static_storage_duration_function): Likewise.
9935	* method.c (emit_thunk): Likewise.
9936	* parse.y: Likewise.
9937	* parse.c: Regenerated.
9938	* pt.c (instantiate_decl): Likewise.
9939	* rtti.c (synthesize_tinfo_fn): Likewise.
9940	* semantics.c (expand_body): Likewise.
9941
9942	* cp-tree.h (copy_decl): New function.
9943	* class.c (finish_struct_1): Use it.
9944	* lex.c (copy_decl): Define it.
9945	* pt.c (tsubst_decl): Likewise.
9946	* tree.c (copy_template_template_parm): Likewise.
9947
9948	* cp-tree.h (lang_type): Remove has_nonpublic_ctor and
9949	has_nonpublic_assign_ref.
9950	(TYPE_HAS_NONPUBLIC_CTOR): Don't declare.
9951	(TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise.
9952	* class.c (finish_struct_methods): Don't set
9953	TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF.
9954	(interface_only): Don't declare.
9955	(interface_unknown): Likewise.
9956
99572000-04-11  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
9958
9959	* tree.h (HAVE_TEMPLATES): Remove definition.
9960	* lang-options.h (-fthis-is-variable): Remove documentation.
9961
99622000-04-10  Jason Merrill  <jason@casey.cygnus.com>
9963
9964	* class.c (instantiate_type): Handle object-relative template-id.
9965
9966	* semantics.c (finish_expr_stmt): Call convert_to_void here.
9967	* decl.c (cplus_expand_expr_stmt): Not here.
9968
9969	* rtti.c (build_dynamic_cast_1): Call non_lvalue.
9970	Initialize exprtype earlier.
9971
9972	* parse.y (fn.def1): Check for defining types in return types.
9973
9974	* decl.c (check_tag_decl): Notice extra fundamental types.
9975	Diagnose empty decls in classes, too.
9976
9977	* decl.c (grokdeclarator): Don't override an anonymous name if no
9978	declarator was given.
9979
9980	* cvt.c (convert_to_void): Call resolve_offset_ref.
9981
9982	* typeck.c (build_x_function_call): Abort if we get an OFFSET_REF.
9983
9984	* decl2.c (decl_namespace): Handle getting a type.
9985
9986	* typeck.c (build_c_cast): Re-enable warning for cast between
9987	pointer and integer of different size.
9988
99892000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
9990
9991	* inc/cxxabi.h (__pointer_type_info): Add restrict and
9992	incomplete flags.
9993	(__pointer_type_info::__pointer_catch): New virtual function.
9994	(__pointer_to_member_type_info): Derive from
9995	__pointer_type_info. Adjust.
9996	(__pointer_to_member_type_info::__do_catch): Remove.
9997	(__pointer_to_member_type_info::__is_pointer_p): Declare.
9998	(__pointer_to_member_type_info::__pointer_catch): Declare.
9999	* rtti.c (qualifier_flags): Add restrict flag.
10000	(ptmd_initializer): Reorder members.
10001	(create_tinfo_types): Expand comments. Reorder
10002	ptmd_desc_type_node members.
10003	* tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p):
10004	Implement.
10005	(__pointer_type_info::__do_catch): Move specific code into
10006	__pointer_catch. Call it.
10007	(__pointer_type_info::__pointer_catch): Non-pointer-to-member
10008	specific catch checking. Fix void conversion check.
10009	(__pointer_to_member_type_info::__do_catch): Remove.
10010	(__pointer_to_member_type_info::__pointer_catch): Implement.
10011
100122000-04-10  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
10013
10014	* lex.c (init_parse): Remove traces of classof and headof.
10015	* decl2.c (flag_operator_names): Default to 1.
10016	(lang_decode_option): Do not set it for -ansi.
10017
100182000-04-09  Mark Mitchell  <mark@codesourcery.com>
10019
10020	* cp-tree.h (struct lang_decl): Remove main_decl_variant.
10021	(DECL_MAIN_VARIANT): Remove.
10022	* decl.c (duplicate_decls): Don't set it.
10023	(start_function): Likewise.
10024	(lang_mark_tree): Don't mark it.
10025	* decl2.c (defer_fn): Don't use it.
10026	* lex.c (retrofit_lang_decl): Don't set it.
10027	* pt.c (tsubst_decl): Likewise.
10028	* ptree.c (print_lang_decl): Don't print it.
10029	* typeck.c (mark_addressable): Don't use it.
10030
100312000-04-09  Nathan Sidwell  <nathan@codesourcery.com>
10032
10033	* vec.cc: Include <new> and <exception>.
10034	(__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup.
10035	(__cxa_vec_dtor): Catch dtor exceptions, and rethrow or
10036	terminate.
10037	(__cxa_vec_delete): Catch dtor exceptions.
10038
100392000-04-09  Nathan Sidwell  <nathan@codesourcery.com>
10040
10041	Prepend __ to implementation defined names.
10042	* inc/typeinfo (type_info): Rename _name to __name.
10043	(type_info::type_info): Rename parameter.
10044	(type_info::operator==, type_info::operator!=,
10045	type_info::before): Likewise.
10046	(type_info::is_pointer_p, type_info::is_function_p,
10047	type_info::do_catch, type_info::do_upcast): Prepend __. Rename
10048	parameters.
10049	* inc/cxxabi.h
10050	(__fundamental_type_info::__fundamental_type_info) Rename parameters.
10051	(__pointer_type_info::__pointer_type_info): Likewise.
10052	(__pointer_type_info::is_pointer_p,
10053	__pointer_type_info::do_catch): Prepend __. Rename parameters.
10054	(__array_type_info::__array_type_info): Rename parameters.
10055	(__function_type_info::__function_type_info): Likewise.
10056	(__function_type_info::is_function_p): Prepend __.
10057	(__enum_type_info::__enum_type_info): Rename parameters.
10058	(__pointer_to_member_type_info::__pointer_to_member_type_info):
10059	Likewise.
10060	(__pointer_to_member_type_info::do_catch): Prepend __. Rename
10061	parameters.
10062	(__base_class_info::is_virtual_p, is_public_p, offset): Prepend	__.
10063	(__class_type_info::__class_type_info): Rename parameters.
10064	(__class_type_info::sub_kind): Prepend __. Adjust member names.
10065	(__class_type_info::upcast_result,
10066	__class_type_info::dyncast_result): Prepend __. Move definition
10067	into tinfo.cc.
10068	(__class_type_info::do_upcast, __class_type_info::do_catch,
10069	__class_type_info::find_public_src,
10070	__class_type_info::do_dyncast,
10071	__class_type_info::do_find_public_src): Prepend __. Rename
10072	parameters.
10073	(__si_class_type_info::__si_class_type_info): Rename parameters.
10074	(__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast,
10075	__si_class_type_info::do_find_public_src): Prepent __. Rename
10076	parameters.
10077	(__vmi_class_type_info::__vmi_class_type_info): Rename parameters.
10078	(__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast,
10079	__vmi_class_type_info::do_find_public_src): Prepent __. Rename
10080	parameters.
10081	(__dynamic_cast): Rename parameters.
10082	* tinfo.cc (type_info::is_pointer_p, type_info::is_function_p,
10083	type_info::do_catch, type_info::do_upcast): Prepend __.
10084	(contained_p, public_p, virtual_p, contained_public_p,
10085	contained_nonpublic_p, contained_nonvirtual_p): Adjust.
10086	(__class_type_info::do_catch,
10087	__class_type_info::do_upcast): Prepend __. Adjust.
10088	(__class_type_info::__upcast_result,
10089	__class_type_info::__dyncast_result): Move from inc/cxxabi.h.
10090	Adjust.
10091	(__class_type_info::find_public_src): Prepend __. Adjust.
10092	(__class_type_info::do_find_public_src,
10093	__si_class_type_info::do_find_public_src,
10094	__vmi_class_type_info::do_find_public_src): Likewise.
10095	(__class_type_info::do_dyncast,
10096	__si_class_type_info::do_dyncast,
10097	__vmi_class_type_info::do_dyncast): Likewise.
10098	(__class_type_info::do_upcast,
10099	__si_class_type_info::do_upcast,
10100	__vmi_class_type_info::do_upcast): Likewise.
10101	(__dynamic_cast): Adjust.
10102	* tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __.
10103	(__function_type_info::is_function_p): Likewise.
10104	(__pointer_type_info::do_catch): Likewise. Adjust.
10105	(__pointer_to_member_type_info::do_catch): Likewise. Adjust.
10106	(__throw_type_match_rtti_2): Adjust.
10107	(__is_pointer): Adjust.
10108
101092000-04-08  Mark Mitchell  <mark@codesourcery.com>
10110
10111	* cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER.
10112	(complete_ctor_identifier): New macro.
10113	(special_function_kind): Add sfk_copy_constructor and
10114	sfk_assignment_operator.
10115	(LOOKUP_HAS_IN_CHARGE): Remove.
10116	(cons_up_default_function): Rename to ...
10117	(implicitly_declare_fn): ... this.
10118	* call.c (build_new_method_call): Add in-charge parameters for
10119	constructors here.
10120	* class.c (add_implicitly_declared_members): Change parameter name
10121	from cant_have_assignment to cant_have_const_assignment.
10122	Replace calls to cons_up_default_function to implicitly_declare_fn.
10123	* cvt.c (ocp_convert): Use complete_ctor_identifier.
10124	* decl.c (initialize_predefined_identifiers): Initialize it.
10125	(start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of
10126	complex expression.
10127	* init.c (expand_default_init): Don't calculate the in-charge
10128	parameter here.
10129	(build_new_1): Likewise.
10130	* lex.c (cons_up_default_function): Move to method.c.
10131	* method.c (synthesize_method): Use DECL_DESTRUCTOR_P.
10132	(implicitly_declare_fn): New function.
10133	* typeck.c (build_static_cast): Use complete_ctor_identifier.
10134	(build_modify_expr): Likewise.
10135	* typeck2.c (build_functional_cast): Likewise.
10136
10137	Under the new ABI, constructors don't return `this'.
10138	* cp-tree.h (warn_reorder): Declare.
10139	(special_function_kind): New enum.
10140	(global_base_init_list): Remove declaration.
10141	(emit_base_init): Don't return a value.
10142	(check_base_init): Don't declare.
10143	(is_aggr_typedef): Likewise.
10144	* decl.c (check_special_function_return_type): New function.
10145	(return_types): Remove.
10146	(grokdeclarator): Use check_special_function_return_type.
10147	(start_function): Don't initialize ctor_label under the new ABI.
10148	(finish_construtor_body): Don't create a corresponding LABEL_STMT.
10149	* init.c (begin_init_stmts): Move to top of file.
10150	(finish_init_stmts): Likewise.
10151	(warn_reorder): Don't declare.
10152	(emit_base_init): Don't create a STMT_EXPR here.  Don't return a
10153	value.
10154	(check_base_init): Remove.
10155	(is_aggr_typedef): Likewise.
10156	(build_new_1): Don't use the return value of a constructor.
10157	* semantics.c (setup_vtbl_ptr): Don't use the return value
10158	of emit_base_init.
10159	* typeck.c (check_return_expr): Don't magically convert return
10160	statements into `return this' in constructors under the new ABI.
10161
10162	* cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER,
10163	CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER.
10164	(base_ctor_identifier): New macro.
10165	(base_dtor_identifier): Likewise.
10166	(deleting_dtor_identifier): Likewise.
10167	* decl.c: Don't include obstack.h.
10168	(obstack_chunk_alloc): Don't define.
10169	(obstack_chunk_free): Likewise.
10170	(struct predefined_identifier): New type.
10171	(initialize_predefined_identifiers): New function.
10172	(init_decl_processing): Use it.
10173	(debug_temp_inits): Remove.
10174	(start_method): Don't call preserve_data.
10175	(hack_incomplete_structures): Update comment.
10176	* init.c (init_init_processing): Don't initialize
10177	nelts_identifier.
10178	(build_offset_rf): Remove dead code.
10179	(build_delete): Use CLASSTYPE_N_BASECLASSES.
10180	* search.c (init_search_processing): Don't initialize
10181	vptr_identifier.
10182
101832000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10184
10185	* typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide
10186	some sign_compare warnings.
10187
101882000-04-07  Nathan Sidwell  <nathan@codesourcery.com>
10189
10190	Rename abi::__vmi_class_type_info members.
10191	* inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases,
10192	base_list, detail_masks members to vmi_flags, vmi_base_count,
10193	vmi_bases and vmi_flags_masks respectively.
10194	(__vmi_class_type_info::vmi_flags_masks): Rename
10195	details_unknown_mask to flags_unknown_mask.
10196	* tinfo.cc (__class_type_info::do_upcast): Adjust.
10197	(__vmi_class_type_info::do_find_public_src): Adjust.
10198	(__vmi_class_type_info::do_dyncast): Adjust.
10199	(__vmi_class_type_info::do_upcast): Adjust.
10200
102012000-04-07  Nathan Sidwell  <nathan@codesourcery.com>
10202
10203	* tinfo.cc (convert_to_base): New function.
10204	(get_vbase_offset): Remove. Move into convert_to_base.
10205	(__vmi_class_type_info::do_find_public_src): Adjust.
10206	(__vmi_class_type_info::do_dyncast): Adjust.
10207	(__vmi_class_type_info::do_upcast): Adjust.
10208
102092000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
10210
10211	* tinfo.cc (operator=): Use __builtin_strcmp.
10212	* tinfo2.cc (before): Likewise.
10213
102142000-04-06  Mark Mitchell  <mark@codesourcery.com>
10215
10216	* cp-tree.h (lang_decl_flags): Rename saved_inline to deferred.
10217	(DECL_SAVED_INLINE): Rename to ...
10218	(DECL_DEFERRED_FN): ... this.
10219	(in_function_p): Remove declaration.
10220	(mark_inline_for_output): Rename to ...
10221	(defer_fn): ... this.
10222	* decl.c (finish_function): Adjust call to mark_inline_for_output.
10223	(in_function_p): Remove definition.
10224	* decl2.c (saved_inlines): Rename to ...
10225	(deferred_fns): ... this.
10226	(saved_inlines_used): Rename to ...
10227	(deferred_fns_used): ... this.
10228	(mark_inline_for_output): Rename to ...
10229	(defer_fn): ... this.
10230	(finish_file): Adjust accordingly.
10231	(init_decl2): Likewise.
10232	* lex.c (cons_up_default_function): Likewise.
10233	* pt.c (mark_decl_instantiated): Likewise.
10234	(instantiate_decl): Don't set DECL_DEFER_OUTPUT under any
10235	circumstances.
10236	* rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output.
10237	* semantics.c (expand_body): Defer more functions.
10238
102392000-04-06  Nathan Sidwell  <nathan@codesourcery.com>
10240
10241	* vec.cc: New file.
10242	* Make-lang.in (CXX_LIB2FUNCS): Add it.
10243	(vec.o): Build it.
10244	* inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
10245	__cxa_vec_delete): Declare.
10246
102472000-04-06  Nathan Sidwell  <nathan@codesourcery.com>
10248
10249	* rtti.c (dfs_class_hint_mark): New static function.
10250	(dfs_class_hint_unmark): New static function.
10251	(class_hint_flags): Use them.
10252
102532000-04-05  Benjamin Kosnik  <bkoz@cygnus.com>
10254
10255	* decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE.
10256
102572000-04-05  Mark Mitchell  <mark@codesourcery.com>
10258
10259	* cp-tree.h (instantiate_decl): Change prototype.
10260	* decl2.c (mark_used): Adjust call.
10261	* optimize.c (inlinable_function_p): Adjust handling of templates.
10262	* pt.c (do_decl_instantiation): Adjust call to instantiate_decl.
10263	(do_type_instantiation): Likewise.
10264	(instantiate_decl): Defer more templates.
10265	(instantiate_pending_templates): Adjust logic to handle inline
10266	friend functions.
10267
10268	* Makefile.in (GGC_H): New variable.  Use it throughout in place
10269	of ggc.h.
10270
10271	* call.c: Don't include obstack.h.  Include ggc.h.
10272	(obstack_chunk_alloc): Don't define.
10273	(obstack_chunk_free): Likewise.
10274	(add_candidate): Allocate the z_candidate with ggc_alloc_obj.
10275	* decl.c (push_switch): Use xmalloc to allocate the cp_switch.
10276	(pop_switch): Free it.
10277
10278	* decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs.
10279
10280	* dump.c (dequeue_and_dump): Don't try to print the bit_position
10281	if we don't have a DECL_FIELD_OFFSET.
10282
10283Wed Apr  5 15:12:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10284
10285	* optimize.c (calls_setjmp_r): Use setjmp_call_p instead of
10286	special_function_p.
10287
102882000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10289
10290	* cfns.gperf (hash, libc_name_p): Prototype.
10291
10292	* rtti.c (build_dynamic_cast_1): Constification.
10293
10294	* search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes.
10295
10296	* semantics.c (deferred_type_access_control): Prototype.
10297
102982000-04-04  Mark Mitchell  <mark@codesourcery.com>
10299
10300	Correct many new ABI issues regarding vbase and vcall offset
10301	layout.
10302	* cp-tree.h (BINFO_VTABLE): Document.
10303	(struct lang_type): Tweak formatting.
10304	(BINFO_PRIMARY_BINFO): Add to documentation.
10305	(CLASSTYPE_VSIZE): Fix typo in comment.
10306	(CLASSTYPE_VBASECLASSES): Update documentation.
10307	(BINFO_VBASE_MARKED): Remove.
10308	(SET_BINFO_VBASE_MARKED): Likewise.
10309	(CLEAR_BINFO_VBASE_MARKED): Likewise.
10310	(BINFO_FIELDS_MARKED): Remove.
10311	(SET_BINFO_FIELDS_MARKED): Likewise.
10312	(CLEAR_BINFO_FIELDS_MARKED): Likewise.
10313	(enum access_kind): New enumeration.
10314	(num_extra_vtbl_entries): Remove declaration.
10315	(size_extra_vtbl_entries): Likewise.
10316	(get_vtbl_decl_for_binfo): New function.
10317	(dfs_vbase_unmark): Remove declaration.
10318	(mark_primary_bases): Likewise.
10319	* class.c (SAME_FN): Remove.
10320	(struct vcall_offset_data_s): Move definition.
10321	(build_vbase_pointer): Use `build', not `build_binary_op', to
10322	access the vbase pointer under the new ABI.
10323	(build_vtable_entry_ref): Use get_vtbl_decl_for_binfo.
10324	(build_primary_vtable): Likewise.
10325	(dfs_mark_primary_bases): Move here from search.c.
10326	(mark_primary_bases): Likewise.
10327	(determine_primary_bases): Under the new ABI, don't make a base
10328	class a primary base just because we don't yet have any virtual
10329	functions.
10330	(layout_vtable_decl): Use get_vtbl_decl_for_binfo.
10331	(num_vfun_entries): Remove.
10332	(dfs_count_virtuals): Likewise.
10333	(num_extra_vtbl_entries): Likewise.
10334	(size_extra_vtbl_entries): Likewise.
10335	(layout_virtual_bases): Iterate in inheritance graph order under
10336	the new ABI.
10337	(finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to
10338	indicate that a vfield is present.
10339	(init_class_processing): Initialize access_public_node, etc., from
10340	ak_public, etc.
10341	(get_vtbl_decl_for_binfo): New function.
10342	(dump_class_hierarchy_r): Likewise.
10343	(dump_class_hierarchy): Use it.
10344	(finish_vtbls): Build the vtbls in inheritance graph order.
10345	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
10346	(initialize_vtable): Use get_vtbl_decl_for_binfo.
10347	(accumulate_vtbl_inits): Add comments explaining why a pre-order
10348	walk is required.
10349	(dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location
10350	where the vptr points, even for primary vtables.
10351	(build_vtbl_initializer): Adjust handling of vbase and vcall
10352	offsets.
10353	(build_vcall_and_vbase_vtable_entries): New function.
10354	(dfs_build_vbase_offset_vtbl_entries): Remove.
10355	(build_vbase_offset_vtbl_entries): Reimplement.
10356	(dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that
10357	were already handled in a primary base class vtable.
10358	(build_vcall_offset_vtbl_entries): Adjust.
10359	(build_rtti_vtbl_entries): Adjust.
10360	* decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo.
10361	* init.c (expand_virtual_init): Simplify.
10362	* repo.c (repo_get_id): Use get_vtbl_decl_for_binfo.
10363	* rtti.c (create_pseudo_type_info): Adjust calculation of vptr.
10364	* search.c (BINFO_ACCESS): New macro.
10365	(SET_BINFO_ACCESS): Likewise.
10366	(dfs_access_in_type): Manipulate access_kinds, not access nodes.
10367	(access_in_type): Likewise.
10368	(dfs_accessible_p): Likewise.
10369	(protected_accessible_p): Likewise.
10370	(lookup_fnfields_1): Adjust documentation.
10371	(dfs_mark_primary_bases): Move to class.c
10372	(mark_primary_bases): Likewise.
10373	(dfs_vbase_unmark): Remove.
10374	(virtual_context): Use BINFO_FOR_VBASE.
10375	(dfs_get_vbase_types): Simplify.
10376	(dfs_build_inheritance_graph_order): New function.
10377	(get_vbase_types): Use it.
10378	* tree.c (debug_binfo): Use get_vtbl_decl_for_binfo.
10379
10380	* tinfo.cc (get_vbase_offset): New function.
10381	(__vmi_class_type_info::do_find_public_src): Use it.
10382	(__vmi_class_type_info::do_dyncast): Likewise.
10383	(__vmi_class_type_info::do_upcast): Likewise.
10384
103852000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
10386
10387	* lang-specs.h: Pass -fno-show-column to the preprocessor.
10388
103892000-03-30  Nathan Sidwell  <nathan@codesourcery.com>
10390
10391	* rtti.c (class_hint_flags): Rename flags.
10392	(class_initializer): Remove flags.
10393	(synthesize_tinfo_var): Combine offset and flags. Add flags
10394	for __vmi_class_type_info.
10395	(create_tinfo_types): Remove flags from __class_type_info and
10396	__si_class_type_info. Merge flags and offset from
10397	base_class_type_info.
10398	* inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags.
10399	(__base_class_info::is_virtual_p): Adjust.
10400	(__base_class_info::is_public_p): Adjust.
10401	(__base_class_info::offset): New accessor.
10402	(__class_type_info::details): Remove member.
10403	(__class_type_info::__class_type_info): Lose details.
10404	(__class_type_info::detail_masks): Remove.
10405	(__si_class_type_info::__si_class_type_info): Lose details.
10406	(__vmi_class_type_info::details): New member.
10407	(__vmi_class_type_info::__vmi_class_type_info): Adjust.
10408	(__vmi_class_type_info::detail_masks): New member.
10409	* tinfo.cc (__class_type_info::do_upcast): Initialize result
10410	with unknown_details_mask.
10411	(__vmi_class_type_info::do_find_public_src): Adjust
10412	(__vmi_class_type_info::do_dyncast): Adjust.
10413	(__vmi_class_type_info::do_upcast): Set result details, if
10414	needed. Adjust.
10415	(__dynamic_cast): Temporarily #if out optimization.
10416
104172000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
10418
10419	* rtti.c (get_tinfo_decl): Mark used.
10420	(emit_tinfo_decl): Don't optimize polymorphic type_info. Only
10421	mark as dealt with, if we output it.
10422
104232000-03-28  Mark Mitchell  <mark@codesourcery.com>
10424
10425	* class.c: Reorganize to put virtual function table initialization
10426	machinery at the end of the file.
10427
104282000-03-28  Jason Merrill  <jason@casey.cygnus.com>
10429
10430	* class.c (finish_struct): Use bitsize_zero_node.
10431	* pt.c (instantiate_class_template): Likewise.
10432
104332000-03-28  Mark Mitchell  <mark@codesourcery.com>
10434
10435	Put RTTI entries at negative offsets in new ABI.
10436	* class.c (dfs_build_vbase_offset_vtbl_entries): Put the first
10437	vbase offset at index -3, not -1.
10438	(build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not
10439	dfs_vtable_path_unmarked_real_bases_queue_p to walk bases.
10440	(dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff.
10441	(build_rtti_vtbl_entries): New function.
10442	(set_rtti_entry): Remove.
10443	(build_primary_vtable): Don't use it.
10444	(build_secondary_vtable): Likewise.
10445	(start_vtable): Remove.
10446	(first_vfun_index): New function.
10447	(set_vindex): Likewise.
10448	(add_virtual_function): Don't call start_vtable.  Do call
10449	set_vindex.
10450	(set_primary_base): Rename parameter.
10451	(determine_primary_base): Likewise.
10452	(num_vfun_entries): Don't use skip_rtti_stuff.
10453	(num_extra_vtbl_entries): Include RTTI information.
10454	(build_vtbl_initializer): Use build_rtti_vtbl_entries.
10455	(skip_rtti_stuff): Remove.
10456	(dfs_modify_vtables): Don't use it.
10457	(modify_all_vtables): Don't use start_vtable.  Do use set_vindex.
10458	(layout_nonempty_base_or_field): Update size handling.
10459	(create_vtable_ptr): Tweak.
10460	(layout_class_type): Adjust parameter names.
10461	(finish_struct_1): Simplify.
10462	* cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation.
10463	(skip_rtti_stuff): Remove.
10464	(first_vfun_index): New function.
10465	(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
10466	(dfs_vtable_path_marked_real_bases_queue_p): Remove.
10467	(marked_vtable_pathp): Declare.
10468	(unmarked_vtable_pathp): Likewise.
10469	* error.c (dump_expr): Use first_vfun_index to calculate vtable
10470	offsets.
10471	* rtti.c (build_headof): Look for RTTI at negative offsets.
10472	(get_tinfo_decl_dynamic): Likewise.
10473	(tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL
10474	here.
10475	(create_pseudo_type_info): Do it here instead.  Adjust so that
10476	vptr points at first virtual function.
10477	* search.c (marked_vtable_pathp): Make it global.
10478	(unmarked_vtable_pathp): Likewise.
10479	(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
10480	(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
10481	(dfs_get_pure_virtuals): Don't use skip_rtti_stuff.
10482	(get_pure_virtuals): Likewise.
10483	(expand_upcast_fixups): Likewise.
10484	* tree.c (debug_binfo): Likewise.
10485	* tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate
10486	negative offset.
10487
10488Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10489
10490	* class.c (check_field_decl): Fix typo.
10491	(build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS.
10492	(check_methods): Likewise.
10493	(check_field_decls): Likewise.
10494	Use DECL_CONTEXT, not DECL_FIELD_CONTEXT.
10495	* cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT):
10496	Use DECL_RESULT_FLD, not DECL_RESULT.
10497	* decl.c (xref_tag): Use DECL_TEMPLATE_RESULT.
10498	* lex.c (identifier_type): Likewise.
10499	* pt.c (determine_specialization, lookup_template_class): Likewise.
10500	(tsubst_friend_function, tsubst_decl, instantiate_template): Likewise.
10501	(resolve_overloaded_unification, more_specialized): Likewise.
10502	* semantics.c (finish_member_declaration): Likewise.
10503	* typeck.c (build_x_function_call): Likewise.
10504
105052000-03-26  Mark Mitchell  <mark@codesourcery.com>
10506
10507	* class.c (layout_empty_base): Handle empty bases with non-byte
10508	alignment.
10509	(build_base_field): Likewise.
10510	(layout_virtual_bases): Likewise.
10511
10512	* class.c (finish_struct_1): Fix typo in this change:
10513
10514	Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10515
105162000-03-25  Mark Mitchell  <mark@codesourcery.com>
10517
10518	* decl.c (grokdeclarator): Count partial specializations when
10519	keeping track of how many template classes have been seen.
10520
10521	* dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT.
10522
10523Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10524
10525	* class.c (build_vbase_pointer_fields): layout_field now place_field.
10526	(get_vfield_offset): Use byte_position.
10527	(set_rtti_entry): Set OFFSET to ssizetype zero.
10528	(get_binfo_offset_as_int): Deleted.
10529	(dfs_record_base_offsets): Use tree_low_cst.
10530	(dfs_search_base_offsets): Likewise.
10531	(layout_nonempty_base_or_field): Reflect changes in RLI format
10532	and call byte_position.
10533	(layout_empty_base): Convert offset to ssizetype.
10534	(build_base_field): use rli_size_unit_so_far.
10535	(dfs_propagate_binfo_offsets): Do computation in proper type.
10536	(layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets.
10537	(layout_class_type): Reflect changes in RLI names and fields.
10538	(finish_struct_1): Set DECL_FIELD_OFFSET.
10539	* dump.c (dequeue_and_dump): Call bit_position.
10540	* expr.c (cplus_expand_constant): Use byte_position.
10541	* rtti.c (expand_class_desc): Use bitsize_one_node.
10542	* typeck.c (build_component_addr): Use byte_position and don't
10543	special case for zero offset.
10544
105452000-03-24  Nathan Sidwell  <nathan@codesourcery.com>
10546
10547	* decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P.
10548
10549	* rtti.c (get_tinfo_decl): Set comdat linkage on new-abi
10550	tinfo object.
10551	(emit_tinfo_decl): Only emit polymorphic tinfo's when emitting
10552	vtable.
10553
105542000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10555
10556	* call.c (check_dtor_name, build_new_method_call): Use TYPE_P and
10557	DECL_P macros.
10558	* decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name,
10559	make_typename_type, check_initializer, cp_finish_decl,
10560	xref_tag): Likewise.
10561	* decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree,
10562	decl_namespace, arg_assoc_template_arg, arg_assoc,
10563	validate_nonmember_using_decl, do_class_using_decl): Likewise.
10564	* error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of,
10565	args_to_string): Likewise.
10566	* friend.c (is_friend): Likewise.
10567	* lex.c (note_got_semicolon, note_list_got_semicolon,
10568	is_global): Likewise.
10569	* method.c (build_overload_nested_name, build_overload_value,
10570	build_qualified_name, build_qualified_name, hack_identifier): Likewise.
10571	* parse.y (typename_sub, typename_sub1): Likewise.
10572	* pt.c (push_inline_template_parms_recursive, check_template_shadow,
10573	process_partial_specialization, convert_template_argument,
10574	template_args_equal, add_pending_template, lookup_template_class,
10575	for_each_template_parm_r, maybe_fold_nontype_arg,
10576	tsubst, instantiate_template, type_unification_real, unify,
10577	instantiate_pending_templates, set_mangled_name_for_template_decl):
10578	Likewise.
10579	* repo.c (repo_get_id, repo_template_used): Likewise.
10580	* search.c (lookup_field_1): Likewise.
10581	* tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise.
10582	* xref.c (classname): Likewise.
10583
105842000-03-22  Mark Mitchell  <mark@codesourcery.com>
10585
10586	* cp-tree.h (BINFO_FOR_VBASE): Adjust documentation.
10587	(CANONICAL_BINFO): New macro.
10588	(BINFO_NEW_VTABLE_MARKED): Use it.
10589	(SET_BINFO_NEW_VTABLE_MARKED): Likewise.
10590	(CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise.
10591	* class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE,
10592	not TREE_TYPE.
10593	(build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED.
10594	(build_secondary_vtable): Likewise.
10595	(dfs_finish_vtbls): Likewise.
10596	(dfs_accumulate_vtbl_inits): Likewise.
10597	(accumulate_vtbl_inits): New function.
10598	(finish_vtbls): Make sure that virtual bases come after
10599	non-virtual bases in the vtable group.
10600	(record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL.
10601	(finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED.
10602	* search.c (struct vbase_info): Move definition.
10603	(marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED.
10604	(unmarked_new_vtable_p): Likewise.
10605	(dfs_mark_vtable_path): Remove.
10606	(dfs_mark_new_vtable): Remove.
10607	(dfs_unmark_new_vtable): Likewise.
10608	(dfs_clear_search_slot): Likewise.
10609	(dfs_find_vbases):  Adjust usage of BINFO_NEW_VTABLE_MARKED.
10610	(dfs_clear_vbase_slots): Likewise.
10611	(init_vbase_pointers): LIkewise.
10612
106132000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10614
10615	* typeck.c (type_after_usual_arithmetic_conversions): Prefer a
10616	SIZETYPE to a non-SIZETYPE.
10617
106182000-03-21  Mark Mitchell  <mark@codesourcery.com>
10619
10620	* class.c (layout_virtual_bases): Adjust names in conditionally
10621	compiled code.
10622
10623	* class.c (record_base_offsets): New function.
10624	(layout_conflict_p): Likewise.
10625	(layout_nonempty_base_or_field): Use it.
10626	(layout_empty_base): New function.
10627	(build_base_field): Use it.
10628	(build_base_fields): Update comment.
10629	(layout_virtual_bases): Fold in a little code form
10630	layout_basetypes.  Use layout_empty_base.
10631	(layout_basetypes): Remove.
10632	(end_of_class): New function.
10633	(layout_class_type): Use it.  Adjust.
10634
10635	* cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment.
10636	(fntype_p): Remove.
10637	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in
10638	comment.
10639	(dfs_skip_nonprimary_vbases_markedp): Likewise.
10640	* typeck.c (fntype_p): Remove.
10641
10642	* cp-tree.h (TI_SPEC_INFO): Remove.
10643	(CLASSTYPE_TI_SPEC_INFO): Likewise.
10644	* pt.c (process_partial_specialization): Likewise.
10645
10646	* class.c (build_base_field): Fix thinko in computation of binfo
10647	offsets.
10648
10649	* tree.c (mark_local_for_remap_p): Mark variables declared in
10650	TARGET_EXPRs as well.
10651
106522000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
10653
10654	* typeck.c (require_complete_type, complete_type,
10655	complete_type_or_else, c_sizeof, c_sizeof_nowarn,
10656	build_array_ref, convert_arguments, pointer_diff,
10657	build_x_unary_op, build_unary_op, build_c_cast,
10658	build_modify_expr): Use COMPLETE_TYPE_P etc.
10659	* call.c (is_complete, convert_like_real,
10660	build_new_method_call): Likewise.
10661	* class.c (build_vbase_pointer_fields, check_bases,
10662	build_base_field, finish_struct_1, pushclass): Likewise.
10663	* cvt.c (cp_convert_to_pointer, convert_to_void): Likewise.
10664	* decl.c (maybe_process_template_type_declaration, pushtag,
10665	pushdecl, redeclaration_error_message, start_decl, start_decl_1,
10666	layout_var_decl, check_initializer, cp_finish_decl,
10667	grokdeclarator, require_complete_types_for_parms,
10668	grok_op_properties, xref_tag, xref_basetypes,
10669	check_function_type): Likewise.
10670	* decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise.
10671	* friend.c (do_friend): Likewise.
10672	* init.c (build_offset_ref): Likewise.
10673	* parse.y (structsp): Likewise.
10674	* pt.c (maybe_process_partial_specialization,
10675	tsubst_friend_function, instantiate_class_template, tsubst,
10676	do_type_instantiation, instantiate_pending_templates): Likewise.
10677	* repo.c (repo_get_id): Likewise.
10678	* rtti.c (build_typeid, get_typeid, build_dynamic_cast_1,
10679	synthesize_tinfo_var, emit_support_tinfos): Likewise.
10680	* search.c (lookup_fnfields_1, lookup_conversions): Likewise.
10681	* semantics.c (begin_class_definition): Likewise.
10682	* tree.c (build_cplus_method_type): Likewise.
10683	* typeck2.c (digest_init, build_functional_cast,
10684	add_exception_specifier): Likewise.
10685	* parse.h, parse.c: Regenerated.
10686
106872000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
10688
10689	* inc/cxxabi.h: New header file. Define new-abi entry points.
10690	(__pointer_type_info::target): Rename member to ...
10691	(__pointer_type_info::type): ... here.
10692	(__base_class_info::type): Rename member to ...
10693	(__base_class_info::base): ... here.
10694	* Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h
10695	* cp-tree.h (CPTI_ABI): New global tree enumeration.
10696	(abi_node): New global tree node.
10697	* decl.c (abi_node): Document.
10698	(init_decl_processing): Initialize abi_node.
10699	* rtti.c (build_dynamic_cast_1): Use abi_node for new-abi.
10700	(get_vmi_pseudo_type_info): Likewise.
10701	(create_tinfo_types): Likewise.
10702	(emit_support_tinfos): Likewise.
10703	* tinfo.h (cxxabi.h): Include for new-abi.
10704	Move rtti class definitions to new header file.
10705	* tinfo.cc (abi): Use the namespace.
10706	(std): Move new abi rtti classes from here ...
10707	(__cxxabiv1): ... to here.
10708	* tinfo2.cc (cxxabi.h): Include for new-abi.
10709	Move rtti class definitions to new header file.
10710	(std): Move new abi rtti classes from here ...
10711	(__cxxabiv1): ... to here.
10712	* inc/typeinfo (__class_type_info): Move into __cxxabiv1
10713	namespace.
10714
107152000-03-20  Jed Wing <jedwin@zloty.ugcs.caltech.edu>
10716	    Jason Merrill  <jason@casey.cygnus.com>
10717
10718	* method.c (build_overload_int): Use host_integerp.
10719
107202000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10721
10722	* init.c (build_offset_ref): Handle the case of a templated member
10723	function.
10724
107252000-03-19  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
10726
10727	* except.c (expand_exception_blocks): Clear catch_clauses_last.
10728
107292000-03-18  Mark Mitchell  <mark@codesourcery.com>
10730
10731	* cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro.
10732	* class.c (check_bitfield_decl): Turn illegal bitfields into
10733	non-bitfields.
10734	(dfs_propagate_binfo_offsets): Adjust for new size_binop
10735	semantics.
10736	(dfs_offset_for_unshared_vbases): Likewise.
10737	* cvt.c (cp_convert_to_pointer): Convert NULL to a
10738	pointer-to-member correctly under the new ABI.
10739	* expr.c (cplus_expand_constant): Don't use cp_convert when
10740	turning an offset into a pointer-to-member.
10741	* init.c (resolve_offset_ref): Don't adjust pointers-to-members
10742	when dereferencing them under the new ABI.
10743	* typeck.c (get_member_function_from_ptrfunc): Tweak calculation
10744	of pointers-to-members under the new ABI.
10745
10746	* class.c (check_bitfield_decl): Remove restriction on really long
10747	bitfields.
10748	(layout_class_type): Implement new ABI handling of bitfields
10749	longer than their types.
10750
107512000-03-18  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
10752
10753	* parse.y (extdefs): Call ggc_collect.
10754	* parse.c: Regenerated.
10755
107562000-03-18  Nathan Sidwell  <nathan@codesourcery.com>
10757
10758	* class.c (build_base_field): Use TYPE_ALIGN to examine a type.
10759	(note_name_declared_in_class): Use OVL_CURRENT to get at a
10760	potential overload.
10761
10762Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10763
10764	* class.c (build_vbase_path): Use integer_zerop.
10765	(build_vtable_entry): Use tree_low_cst.
10766	(get_vfield_offset): Use bit_position.
10767	(dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT.
10768	Use tree_low_cst.
10769	(check_bitfield_decl): Set DECL_SIZE using convert.
10770	(build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop.
10771	(layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT.
10772	Use tree_low_cst.
10773	(finish_struct_1): Use bit_position.
10774	(dump_class_hierarchy): Use tree_low_cst.
10775	* cp-tree.h (min_precision): Add declaration.
10776	* decl.c (xref_tag, xref_basetypes): Use tree_low_cst.
10777	* error.c (dump_type_suffix): Use host_integerp and tree_low_cst.
10778	(dump_expr): Use integer_zerop, host_integerp, and tree_low_cst.
10779	* expr.c (cplus_expand_constant): Use bit_position.
10780	* init.c (build_vec_init): Use host_integerp and tree_low_cst.
10781	* rtti.c (get_base_offset): Use bit_position.
10782	* typeck.c (build_binary_op): Use integer_zerop, compare_tree_int,
10783	host_integerp, and tree_low_cst.
10784	(pointer_int_sum): Use integer_zerop.
10785	(build_component_addr): Use bit_position.
10786
107872000-03-17  Nathan Sidwell  <nathan@codesourcery.com>
10788
10789	* typeck.c (require_complete_type): Don't assume size_zero_node.
10790	(complete_type_or_else): Likewise.
10791
107922000-03-16  Steven Grady <grady@digitaldeck.com>
10793	    Jason Merrill  <jason@casey.cygnus.com>
10794
10795	* rtti.c (build_dynamic_cast_1): Improve diagnostics.
10796
107972000-03-16  Nathan Sidwell  <nathan@codesourcery.com>
10798
10799	* decl2.c (grokfield): Bail out if type is error_mark_node.
10800
108012000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
10802
10803	* tinfo2.cc (__ptr_to_member_data): Rename to ...
10804	(__pointer_to_member_data): ... here. Adjust.
10805	* rtti.c (create_tinfo_types): Adjust.
10806
108072000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
10808
10809	* cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove.
10810	* decl.c (ref_desc_type_node): Undocument.
10811	* rtti.c (ptr_ref_initializer): Rename to ...
10812	(ptr_initializer): ... here. Adjust comments.
10813	(ptmd_initializer): Fix comment thinko.
10814	(synthesize_tinfo_var): Remove REFERENCE_TYPE case.
10815	(create_tinfo_types): Remove ref_desc_type_node init.
10816	* tinfo2.cc (__reference_type_info): Remove.
10817
108182000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
10819
10820	* decl.c (cp_finish_decl): Remove obsolete comment.
10821
10822	* typeck.c (build_ptrmemfunc1): Kill uninitialized warning.
10823
108242000-03-14  Mark Mitchell  <mark@codesourcery.com>
10825
10826	* cp-tree.h: Tweak documentation.
10827	* class.c (build_vbase_pointer_fields): Layout the fields, too.
10828	(avoid_overlap): Remove.
10829	(get_binfo_offset_as_int): New function.
10830	(dfs_serach_base_offsets): Likewise.
10831	(layout_nonempty_base_or_field): Likewise.
10832	(build_base_field): Layout fields here.  Avoid placing two objects
10833	of the same type at the same address, under the new ABI.
10834	(build_base_fields): Adjust accordingly.
10835	(create_vtable_ptr): Return the new field, but don't attach it to
10836	TYPE_FIELDS.
10837	(remove_base_field): Remove.
10838	(remove_base_fields): Remove.
10839	(layout_basetypes): Adjust accordingly.
10840	(layout_class_type): Call layout_field for each field, rather than
10841	just making a wholesale call to layout_type.
10842
108432000-03-14  Jeff Sturm  <jsturm@sigma6.com>
10844
10845	* except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw.
10846
108472000-03-13  Jason Merrill  <jason@casey.cygnus.com>
10848
10849	* decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P.
10850
10851	* except.c (dtor_nothrow): New fn.
10852	(do_pop_exception): Use it.  Take type parm.
10853	(push_eh_cleanup): Take type parm.
10854	(expand_start_catch_block): Pass it.
10855	(build_eh_type_type_ref): Accept null type.
10856
108572000-03-12  Mark Mitchell  <mark@codesourcery.com>
10858
10859	* cp-tree.h (revert_static_member_fn): Change prototype.
10860	* decl.c (grokfndecl): Adjust call to revert_static_member_fn.
10861	(grok_op_properties): Likewise.
10862	(start_function): Likewise.
10863	(revert_static_member_fn): Simplify.
10864	* pt.c (check_explicit_specialization): Adjust call to
10865	revert_static_member_fn.
10866
108672000-03-11  Mark Mitchell  <mark@codesourcery.com>
10868
10869	* cp-tree.h (scope_kind): New type.
10870	(tmpl_spec_kind): Likewise.
10871	(declare_pseudo_global_level): Remove.
10872	(pseudo_global_level_p): Rename to template_parm_scope_p.
10873	(pushlevel): Remove declaration.
10874	(begin_scope): New function.
10875	(finish_scope): Likewise.
10876	(current_tmpl_spec_kind): Likewise.
10877	* decl.c (struct binding_level): Shorten parm_flag to 2 bits.
10878	Shorten keep to 2 bits.  Rename pseudo_global to template_parms_p.
10879	Add template_spec_p.
10880	(toplevel_bindings_p): Adjust.
10881	(declare_pseudo_global_level): Remove.
10882	(pseudo_global_level_p): Rename to template_parm_scope_p.
10883	(current_tmpl_spec_kind): New function.
10884	(begin_scope): Likewise.
10885	(finish_scope): Likewise.
10886	(maybe_push_to_top_level): Adjust.
10887	(maybe_process_template_type_declaration): Likewise.
10888	(pushtag): Likewise.
10889	(pushdecl_nonclass_level): Likewise.
10890	(lookup_tag): Likewise.
10891	(grokfndecl): Handle member template specializations.  Share
10892	constructor and non-constructor code.
10893	* decl2.c (check_classfn): Handle member template specializations.
10894	* pt.c (begin_template_parm_list): Use begin_scope.
10895	(begin_specialization): Likewise.
10896	(end_specialization): Likewise.
10897	(check_explicit_specialization): Use current_tmpl_spec_kind.
10898	Handle member template specializations.
10899	(end_template_decl): Use finish_scope.  Remove call to
10900	get_pending_sizes.
10901	(push_template_decl_real): Remove bogus error message.
10902	(tsubst_decl): Fix typo in code contained in comment.
10903	(instantiate_template): Handle member template specializations.
10904	(most_general_template): Likewise.
10905
109062000-03-11  Gabriel Dos Reis  <gdr@codesourcery.com>
10907
10908	* lex.c (whitespace_cr): Compress consecutive calls to warning().
10909	(do_identifier): Ditto for error().
10910
10911	* pt.c (convert_nontype_argument): Ditto for cp_error().
10912	(convert_template_argument): Ditto for cp_pedwarn().
10913
109142000-03-11  Jason Merrill  <jason@casey.cygnus.com>
10915
10916	* exception.cc (__check_null_eh_spec): New fn.
10917	* except.c (expand_end_eh_spec): Call it if the spec is throw().
10918
109192000-03-10  Jason Merrill  <jason@casey.cygnus.com>
10920
10921	* decl.c (push_throw_library_fn): Take the FUNCTION_TYPE.
10922	* except.c (expand_end_eh_spec): Add the return type.
10923	* rtti.c (throw_bad_cast): Add the parmtypes.
10924	(throw_bad_typeid): Likewise.
10925
10926	* semantics.c (expand_stmt): Only leave out rtl for unused
10927	artificials, and set DECL_IGNORED_P on them as well.
10928	* decl.c (wrapup_globals_for_namespace): Likewise.
10929
109302000-03-09  Nathan Sidwell  <nathan@codesourcery.com>
10931
10932	* decl.c (maybe_commonize_var): Skip all artificial decls.
10933	* pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN.
10934
109352000-03-10  Jason Merrill  <jason@casey.cygnus.com>
10936
10937	* lang-options.h, decl2.c: Add -fno-enforce-eh-specs.
10938	* cp-tree.h: Declare flag_enforce_eh_specs.
10939	* decl.c (store_parm_decls, finish_function): Check it.
10940
10941	C library functions don't throw.
10942	* Makefile.in (cfns.h): New target.
10943	(except.o): Depend on it.
10944	* Make-lang.in (cc1plus): Depend on cfns.gperf.
10945	* cfns.gperf: New file.
10946	* cfns.h: Generated.
10947	* except.c: Include it.
10948	(nothrow_libfn_p): New fn.
10949	* decl.c (grokfndecl): Use it.
10950	* cp-tree.h: Declare it.
10951
10952	* decl.c (push_overloaded_decl_1, auto_function,
10953	define_function): Lose.
10954	(build_library_fn_1): New static fn.
10955	(builtin_function): Use it.
10956	(get_atexit_node): Use build_library_fn_ptr.
10957	(build_library_fn, build_cp_library_fn, build_library_fn_ptr,
10958	build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn,
10959	push_void_library_fn, push_throw_library_fn): New fns.
10960	* cp-tree.h: Declare them.
10961	(cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID.
10962	(throw_bad_cast_node, throw_bad_typeid_node): Lose.
10963	* except.c (init_exception_processing, call_eh_info, do_pop_exception,
10964	(expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns.
10965	* rtti.c (build_runtime_decl): Lose.
10966	(throw_bad_cast, throw_bad_typeid, get_tinfo_decl,
10967	build_dynamic_cast_1, expand_si_desc, expand_class_desc,
10968	expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns.
10969
10970	* call.c (build_call): Remove result_type parm.
10971	Call mark_used on unused artificial fns.
10972	* init.c, method.c, typeck.c, except.c, rtti.c: Adjust.
10973
109742000-03-09  Jason Merrill  <jason@casey.cygnus.com>
10975
10976	* call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as
10977	appropriate.
10978	* decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL.
10979	* except.c (call_eh_info, alloc_eh_object, expand_throw): Set
10980	TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate.
10981	* rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1,
10982	expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc,
10983	expand_generic_desc): Likewise.
10984
109852000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
10986
10987	* exception.cc (__cp_pop_exception): Cleanup the original object.
10988
109892000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
10990
10991	* decl.c (grok_op_properties): Merge conversion to void warning
10992	with other silly op warnings.
10993
109942000-03-08  Jason Merrill  <jason@casey.cygnus.com>
10995
10996	* typeck2.c (process_init_constructor): Set TREE_PURPOSE of
10997	array CONSTRUCTOR elements.  Don't use expr_tree_cons.
10998
109992000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
11000
11001	* decl.c (cp_make_fname_decl): New function.
11002	(wrapup_globals_for_namespace): Don't emit unused static vars.
11003	(init_decl_processing): Remove comment about use of
11004	array_domain_type. Set make_fname_decl.
11005	(cp_finish_decl): Remove __FUNCTION__ nadgering.
11006	* semantics.c (begin_compound_stmt): Remove
11007	current_function_name_declared flagging.
11008	(expand_stmt): Don't emit unused local statics.
11009	* typeck.c (decay_conversion): Don't treat __FUNCTION__ decls
11010	specially.
11011
110122000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
11013
11014	* typeck.c (convert_for_assignment): Don't look at array
11015	initializer.
11016	* call.c (convert_like_real): Likewise.
11017
110182000-03-07  Jason Merrill  <jason@casey.cygnus.com>
11019
11020	Add initial support for '\uNNNN' specifier.
11021	* lex.c (read_ucs): New fn.
11022	(readescape, skip_white_space): Call it.
11023	(is_extended_char, is_extended_char_1): New fns.
11024	(utf8_extend_token): New fn, #if 0'd out.
11025	(real_yylex): Treat extended chars like letters.
11026
11027	* search.c (note_debug_info_needed): Walk the bases even if we
11028	weren't deferring the type itself.
11029
110302000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11031
11032	* decl2.c (finish_objects): Constify a char*.
11033
11034	* method.c (emit_thunk): Likewise.
11035
110362000-03-06  Nathan Sidwell  <nathan@codesourcery.com>
11037
11038	* typeck.c (dubious_conversion_warnings): Look through
11039	REFERENCE_TYPE.
11040
11041Mon Mar  6 08:46:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11042
11043	* class.c (dfs_modify_vtables): I is now unsigned.
11044	(check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int.
11045	(build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT.
11046	* error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned.
11047	* init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
11048	* method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned.
11049	* typeck.c (build_binary_op, case TRUNC_DIV_EXPR):
11050	Call integer_all_onesp.
11051	* typeck2.c (process_init_constructor): Use compare_tree_int.
11052
11053	* lang-specs.h (as): Don't call if -syntax-only.
11054
110552000-03-06  Mark Mitchell  <mark@codesourcery.com>
11056
11057	* expr.c (cplus_expand_expr, case STMT_EXPR): Don't set
11058	RTL_EXPR_HAS_NO_SCOPE after all.
11059
110602000-03-05  Mark Mitchell  <mark@codesourcery.com>
11061
11062	* expr.c (cplus_expand_expr, case STMT_EXPR): Use
11063	expand_start_stmt_expr and expand_end_stmt_expr directly.  Set
11064	RTL_EXPR_HAS_NO_SCOPE.
11065
11066	* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little
11067	later.
11068
11069	* dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P.
11070
110712000-03-05  Nathan Sidwell  <nathan@codesourcery.com>
11072
11073	* call.c (convert_like): Macrofy.
11074	(convert_like_with_context): New macro.
11075	(convert_like_real): Renamed from convert_like.  Add calling
11076	context parameters, for diagnostics. Add recursive flag.  Call
11077	dubious_conversion_warnings for outer conversion.
11078	(build_user_type_conversion): Use convert_like_with_context.
11079	(build_over_call): Likewise. Don't warn about dubious
11080	conversions here. Adjust convert_default_arg calls.
11081	(convert_default_arg): Add context parameters for diagnostics.
11082	Pass through to convert_like_with_context.
11083	* cp-tree.h (convert_default_arg): Add context parameters.
11084	(dubious_conversion_warnings): Prototype new function.
11085	* typeck.c (convert_arguments): Adjust convert_default_arg call.
11086	(dubious_conversion_warnings): New function, broken
11087	out of convert_for_assignment.
11088	(convert_for_assignment): Adjust.
11089
110902000-03-03  Jason Merrill  <jason@casey.cygnus.com>
11091
11092	* decl2.c (key_method): Break out from...
11093	(import_export_vtable, import_export_class): ...here.
11094
11095	* decl.c (finish_function): Don't mess with flag_keep_inline_functions.
11096	* decl2.c (finish_vtable_vardecl): Don't check decl_function_context.
11097
11098	* search.c (note_debug_info_needed, dfs_debug_mark,
11099	dfs_debug_unmarkedp): Uncomment.  Adjust for new scheme.
11100	* decl2.c (finish_vtable_vardecl): Call note_debug_info_needed.
11101
111022000-03-03  Nathan Sidwell  <nathan@codesourcery.com>
11103
11104	* decl.c (cp_finish_decl): Remove obsolete obstack comments, fix
11105	typos.
11106
111072000-03-02  Mark Mitchell  <mark@codesourcery.com>
11108
11109	* cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ...
11110	(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this.
11111	(TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro.
11112	(lang_type): Split gets_new into has_new and has_array_new.
11113	(TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
11114	(TYPE_GETS_NEW): Split into ...
11115	(TYPE_HAS_NEW_OPERATOR): ... this, and ...
11116	(TYPE_HAS_ARRAY_NEW_OPERATOR): ... this.
11117	(DECL_ARRAY_DELETE_OPERATOR_P): New macro
11118	(build_op_new_call): Don't declare.
11119	(build_new_1): Likewise.
11120	* call.c (build_op_new_call): Remove.
11121	* class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR
11122	instead of TYPE_NEEDS_DESTRUCTOR.
11123	(finish_struct_bits): Likewise.
11124	(add_implicitly_declared_members): Likewise.
11125	(check_field_decl): Likewise.
11126	(check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it
11127	correctly under the new ABI.
11128	* decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR
11129	instead of TYPE_NEEDS_DESTRUCTOR.
11130	(initialize_local_var): Likewise.
11131	(destroy_local_var): Likewise.
11132	(cp_finish_decl): Likewise.
11133	(register_dtor_fn): Likewise.
11134	(grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and
11135	TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW.  Don't set
11136	TYPE_VEC_DELETE_TAKES_SIZE here.
11137	(xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and
11138	TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW.
11139	(store_parm_decls):  Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
11140	(finish_destructor_body): Likewise.
11141	(maybe_build_cleanup_1): Likewise.
11142	* decl2.c (do_static_destruction): Likewise.
11143	* init.c (build_new_1): Make it static.
11144	(perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
11145	(expand_cleanup_for_base): Likewise.
11146	(get_cookie_size): New function.
11147	(build_new_1): Handle array-new cookies correctly under the new
11148	ABI.
11149	(build_vec_delete_1): Likewise.
11150	(build_vec_init):  Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
11151	(build_delete): Likewise.
11152	(build_vec_delete): Handle array-new cookies correctly under the new
11153	ABI.
11154	* lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
11155	* pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and
11156	TYPE_HAS_ARRAY_NEW_OPERATOR.
11157	* ptree.c (print_lang_type): Check them.
11158	* search.c (context_for_name_lookup): Fix typo in comment.
11159	(tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
11160	* tree.c (break_out_cleanups): Likewise.
11161	(build_cplus_array_test_1): Likewise.
11162	(cp_build_qualified_type_real): Likewise.
11163	* typeck.c (complete_type): Likewise.
11164
11165	* g++spec.c (lang_specific_driver): Add -fnew-abi at the start of
11166	the command-line, not the end.
11167
111682000-03-01  Jason Merrill  <jason@casey.cygnus.com>
11169
11170	* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG.
11171
111722000-03-02  Tom Tromey  <tromey@cygnus.com>
11173
11174	* cp-tree.h (build_java_class_ref): Declare.
11175	* init.c (build_java_class_ref): No longer static.
11176	* except.c (expand_throw): Generate a Java-style `throw' if the
11177	thrown object is a "Java" object.
11178	(initialize_handler_parm): Generate a Java-style lookup of
11179	exception info if the caught object is a "Java" object.
11180	(catch_language, catch_language_init): New globals.
11181	(decl_is_java_type): New function.
11182	(expand_start_catch_block): Don't call push_eh_info() or
11183	push_eh_cleanup() when handling a Java-style "catch".  Pass Java
11184	class reference to build_catch_block.
11185
11186Thu Mar  2 13:32:01 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11187
11188	* typeck.c (comptypes): Treat sizetype like its language equivalent.
11189
111902000-03-01  Bernd Schmidt  <bernds@cygnus.co.uk>
11191
11192	* typeck.c (maybe_warn_about_returning_address_of_local): Reorganize
11193	to merge reference/pointer code and fix incorrect warnings.
11194
111952000-02-29  Jason Merrill  <jason@casey.cygnus.com>
11196
11197	* search.c (protected_accessible_p): Use context_for_name_lookup.
11198
11199	* init.c (construct_virtual_bases): Fix thinko.
11200	* typeck.c (expand_ptrmemfunc_cst): Fix thinko.
11201
112022000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
11203
11204	* decl.c (current_function_decl): Move to toplev.c.
11205
112062000-02-29  Nathan Sidwell  <nathan@codesourcery.com>
11207
11208	* pt.c (fn_type_unification): Unify return type, whenever
11209	provided.
11210	(get_bindings_real): Only pass return type when necessary.
11211	Remove explicit return type check.
11212	* class.c (resolve_address_of_overloaded_function): Pass desired
11213	return type to fn_type_unification.
11214
11215Mon Feb 28 08:15:23 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11216
11217	* class.c (build_vtbl_or_vbase_field, check_methods): Don't clear
11218	DECL_FIELD_SIZE.
11219	(check_bitfield_decl, check_field_decls): Set DECL_SIZE, not
11220	DECL_FIELD_SIZE.
11221	* rtti.c (expand_class_desc): Likewise.
11222	* cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name.
11223	(THUNK_VCALL_OFFSET): Likewise.
11224	(THUNK_DELTA): Reflect changes in ../tree.h.
11225
112262000-02-28  Jason Merrill  <jason@casey.cygnus.com>
11227
11228	* search.c (protected_accessible_p): Also allow the access if
11229	the member is public in DERIVED.  Lose TYPE parm.
11230	(friend_accessible_p): Lose TYPE parm.
11231	(accessible_p): Adjust.
11232
11233Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11234
11235	* class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop
11236	on things that are not sizes; ssize_binop deleted.
11237	Call size_diffop when appropriate.
11238	(dfs_build_vcall_offset_vtbl_entries): Likewise.
11239	(build_primary_vtable, build_secondary_vtable): Likewise.
11240	(dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise.
11241	Variable I is HOST_WIDE_INT.
11242	(get_vfield_offset): Pass proper types to size_binop.
11243	(size_extra_vtbl_entries, layout_virtual_bases): Likewise.
11244	(finish_struct_1): Likewise.
11245	(skip_rtti_stuff): Arg N is now pointer to signed.
11246	(layout_class_type): Use size_zero_node.
11247	* cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed.
11248	* cvt.c (cp_convert_to_pointer): Pass proper types to size_binop.
11249	* decl.c (complete_arry_type): Pass proper types to size_binop.
11250	(xref_basetypes): BINFO_OFFSET is sizetype.
11251	* error.c (dump_expr): Don't use size_binop non-sizes.
11252	* expr.c (cplus_expand_constant): Pass proper types to size_binop.
11253	* init.c (construct_virtual_bases): Fix type error.
11254	(build_vec_delete_1): Pass proper type to size_binop and don't
11255	fold result.
11256	* lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype.
11257	* rtti.c (get_base_offset): Pass proper type to size_binop.
11258	* search.c (dfs_find_vbases): Fix type error.
11259	(expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed.
11260	(dfs_get_vbase_types): BINFO_OFFSET is sizetype.
11261	* tree.c (debug_binfo): Variable N is signed.
11262	Use HOST_WIDE_INT_PRINT_DEC.
11263	* typeck.c (comptypes): sizetype is same as equivalent integer type.
11264	(c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT,
11265	size_one_node and size_zero_node.
11266	(c_alignof): Use size_one_node.
11267	(build_component_addr): Pass proper types to size_binop.
11268	(expand_ptrmemfunc_cst): Don't use size_binop on non-sizes.
11269
112702000-02-26  Jason Merrill  <jason@casey.cygnus.com>
11271
11272	Implement class scope using-declarations for functions.
11273	* class.c (handle_using_decl): Call add_method for used functions.
11274	Use IDENTIFIER_CLASS_VALUE to check for conflicts.
11275	(add_method): Used functions are hidden by local functions.
11276	(check_bases_and_members): Handle using-decls before finalizing
11277	CLASSTYPE_METHOD_VEC.
11278	* call.c (add_function_candidate): Add ctype parm; if non-zero,
11279	override the type of 'this' accordingly.
11280	(add_template_candidate, add_template_candidate_real): Add ctype parm.
11281	(convert_class_to_reference, build_user_type_conversion_1,
11282	build_new_function_call, build_object_call, build_new_op,
11283	build_new_method_call): Pass ctype parm.
11284
11285	* search.c (lookup_member): Put rval_binfo, not basetype_path, in
11286	the baselink.
11287	* call.c (convert_class_to_reference, build_user_type_conversion_1,
11288	build_new_function_call, build_object_call, build_new_op,
11289	build_new_method_call, build_op_delete_call): Don't get basetype_path
11290	from a baselink.
11291	* typeck.c (build_component_ref): Likewise.
11292	* init.c (build_offset_ref): Likewise.
11293	(resolve_offset_ref): Don't call enforce_access.
11294	Call build_scoped_ref.
11295	* typeck2.c (build_scoped_ref): Simplify.  Do nothing if it
11296	would cause an error or if -pedantic.
11297	* class.c (alter_access): Lose binfo parm.
11298
112992000-02-26  Mark Mitchell  <mark@codesourcery.com>
11300
11301	* semantics.c (simplify_aggr_init_exprs_p): Don't walk into
11302	types.
11303
113042000-02-25  Alfred Minarik <a8601248@unet.univie.ac.at>
11305
11306	* rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info
11307	pseudo_type_info creation into the std namespace
11308
113092000-02-26  Mark Mitchell  <mark@codesourcery.com>
11310
11311	* cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF.
11312	(import_export_class): Remove declaration.
11313	* decl2.c (import_export_class): Make it static.
11314	* dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR,
11315	PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR,
11316	EXPR_WITH_FILE_LOCATION.
11317	* lex.c (check_newline): Tweak filename/lineno setting.
11318	* semantics.c (begin_while_stmt): Fix typo in comment.
11319
11320Sat Feb 26 19:50:23 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11321
11322	* lang-options.h (-fmessage-length=): Add missing option.
11323
11324	* Make-lang.in (CXX_SRCS): Add .h files and sort list.
11325
113262000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
11327
11328	* Make-lang.in: Delete refs to LIBGCC2_DEPS.
11329
11330Fri Feb 25 14:52:33 2000  Jim Wilson  <wilson@cygnus.com>
11331
11332	* optimize.c (expand_call_inline): Emit the return label before
11333	evaluating the return value.
11334
113352000-02-24  Mark Mitchell  <mark@codesourcery.com>
11336
11337	* lex.c (check_newline): Use push_srcloc and pop_srcloc, rather
11338	than duplicating functionality here.
11339	* optimize.c: Include input.h.
11340	(expand_call_inline): Use push_srcloc and pop_srcloc.
11341	* parse.y (maybe_cv_qualifier): Remove calls to emit_line_note.
11342	* parse.c: Regenerated.
11343	* Makefile.in (lex.o): Depend on input.h.
11344	(optimize.o): Likewise.
11345
113462000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
11347
11348	* decl.c (grokdeclarator): Diagnose qualifiers on non-member
11349	function type, rather than ICE.
11350
113512000-02-23  Jason Merrill  <jason@casey.cygnus.com>
11352
11353	* decl.c (grokdeclarator): Call decl_type_access_control.
11354	* parse.y (parse_end_decl): Don't call decl_type_access_control if
11355	decl is null.
11356
113572000-02-23  Nathan Sidwell  <nathan@codesourcery.com>
11358
11359	* decl.c (decls_match): Remove obsolete static member nadgering.
11360
113612000-02-21  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
11362
11363	* decl.c (grokdeclarator): Change ANSI to ISO.
11364	* lex.c (consume_string, readescape, do_identifier): Likewise.
11365	(parse_float, real_yylex): Likewise.
11366	* parse.y (paren_expr_or_null, paren_cond_or_null): Likewise.
11367	(unary_expr, new_initializer, cast_expr, primary, primary_no_id,
11368	new_type_id, maybe_label_decls, simple_stmt,
11369	for.init.statement): Likewise.
11370	* pt.c (do_decl_instantiation, do_type_instantiation): Likewise.
11371	* semantics.c (finish_named_return_value): Likewise.
11372	* parse.c: Regenerate.
11373
113742000-02-21  Mark Mitchell  <mark@codesourcery.com>
11375
11376	* cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro.
11377	(CPTI_CLASS_STAR_TYPE): Remove.
11378	(vtable_index_type): Likewise.
11379	(class_star_type_node): Remove.
11380	(TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI.
11381	(build_binary_op_nodefault): Remove.
11382	* call.c (build_new_op): Use build_binary_op instead of
11383	build_binary_op_nodefault.
11384	* decl.c (init_decl_processing): Remove class_star_type_node
11385	initialization.  Make delta_type_node ptrdiff_type_node under the
11386	new ABI.  Initialize vtable_index_type.
11387	(build_ptrmemfunc_type): Build different structures for the new
11388	ABI.
11389	(build_enumerator): Use build_binary_op instead of
11390	build_binary_op_nodefault.
11391	* method.c (build_overload_value): Mangle pointers-to-members
11392	appropriately under the new ABI.
11393	* typeck.c (build_array_ref): Use build_binary_op instead of
11394	build_binary_op_nodefault.
11395	(get_member_function_from_ptrfunc): Adjust for the new ABI.
11396	(build_binary_op_nodefault): Rename to ...
11397	(build_binary_op): ... this.  Remove old version.  Adjust for
11398	pointer-to-member comparisons under the new ABI.
11399	(build_ptrmemfunc1): Remove dead code.  Adjust for the new ABI.
11400	(build_ptrmemfunc): Adjust for the new ABI.
11401	(expand_ptrmemfunc_cst): Likewise.
11402	(delta2_from_ptrmemfunc): Assert that we're not using the new ABI.
11403	(pfn_from_ptrmemfunc): Adjust for the new ABI.
11404
114052000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
11406
11407	* call.c (build_object_call): Compress consecutive calls to
11408	cp_error.
11409	(build_conditional_expr): Say 'ISO C++' not 'ANSI C++'.
11410	(build_op_delete_call): Adjust message formatting.
11411
11412	* class.c (check_bases): Compress consecutive calls to
11413	cp_pedwarn.
11414	(finish_struct_anon): Say 'ISO C++'.
11415
11416	* decl.c (start_decl): Same here.
11417	(grok_reference_init): Likewise.
11418	(grokfndecl): Correct message formatting.
11419	(grokfndecl): Improve diagnostic.
11420	(check_static_variable_definition): Likewise. Say 'ISO C++'
11421	(compute_array_index_type): Say 'ISO C++'
11422	(create_array_type_for_decl): Compress consecutive calls to
11423	cp_error.
11424	(grokdeclarator): Say 'ISO C++'
11425	(grok_op_properties): Likewise.
11426
11427	* decl2.c (delete_sanity): Clairify diagnostic.
11428	(check_member_template): Same here.
11429	(grok_function_init): Use consistent terminology.
11430
11431	* expr.c (do_case): Say 'ISO C++'
11432
11433	* friend.c (do_friend): Compress consecutive calls to warning.
11434
114352000-02-20  Mark Mitchell  <mark@codesourcery.com>
11436
11437	* cp-tree.h (merge_primary_and_secondary_vtables_p): New macro.
11438	* class.c (build_secondary_vtable): Reorganize.  Don't create a
11439	new vtable under the new ABI.
11440	(layout_vtable_decl): Don't add num_extra_vtbl_entries when
11441	computing the size.
11442	(build_vtbl_initializer): Don't return a CONSTRUCTOR; just return
11443	the initializing elements.
11444	(initialize_vtable): New function.
11445	(dfs_finish_vtbls): Use it.
11446	(dfs_accumulate_vtbl_inits): New function.
11447	(finish_vtbls): Merge primary and secondary vtables under the new
11448	ABI.
11449	(finish_struct_1): Remove redundant call to layout_vtable_decl.
11450	* init.c (expand_virtual_init): Deal with BINFO_VTABLEs that
11451	aren't VAR_DECLs.
11452
11453	* class.c (build_vtable): New function, split out from ...
11454	(get_vtable_decl): ... here, and ...
11455	(build_secondary_vtable): ... here.
11456
11457	* pt.c (tsubst_decl): Fix formatting.
11458
11459Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11460
11461	* class.c (build_primary_vtable, layout_vtable_decl): Likewise.
11462	(avoid_overlap, build_base_field): Likewise.
11463	(build_base_field, build_base_fields, is_empty_class):
11464	Test DECL_SIZE with integer_zero.
11465	(layout_class_type): Set CLASSTYPE_SIZE_UNIT.
11466	* cp-tree.h (struct lang_type): New field size_unit.
11467	(CLASSTYPE_SIZE_UNIT): New macro.
11468	* decl.c (init_decl_processing): Set DECL_SIZE_UNIT.
11469	(cp_finish_decl): Delete -Wlarger-than processing.
11470	* optimize.c (remap_decl): Walk DECL_SIZE_UNIT.
11471	* pt.c (tsubst_decl): Set DECL_SIZE_UNIT.
11472	* tree.c (make_binfo): binfo vector is one entry longer.
11473	(walk_tree): Walk DECL_SIZE_UNIT.
11474
114752000-02-19  Mark Mitchell  <mark@codesourcery.com>
11476
11477	* class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in
11478	comment.
11479	(build_vtable_entry): Don't assume all vtable entries are
11480	functions.
11481	(build_vtbl_initializer): Adjust accordingly.
11482	(get_vtable_decl): Fix formatting.
11483
114842000-02-18  Jason Merrill  <jason@casey.cygnus.com>
11485
11486	* semantics.c (deferred_type_access_control): Walk the entire
11487	type_lookups list.
11488	(save_type_access_control): Rename from
11489	initial_deferred_type_access_control.  Just remember the value.
11490	(decl_type_access_control): New fn.
11491	(begin_function_definition): Use deferred_type_access_control, after
11492	we've started the function.  Set type_lookups to error_mark_node.
11493	* parse.y (frob_specs, fn.def1): Adjust.
11494	(parse_decl0, parse_field, parse_field0, parse_bitfield): New fns.
11495	(parse_end_decl, parse_bitfield0, parse_method): New fns.
11496	(fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them.
11497	(after_type_component_declarator0): Likewise.
11498	(after_type_component_declarator): Likewise.
11499	(notype_component_declarator): Likewise.
11500	* cp-tree.h: Adjust.
11501
11502	* decl.c (redeclaration_error_message): Allow redeclaration of
11503	namespace-scope decls.
11504
115052000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
11506
11507	* typeck2.c (my_friendly_abort): Use GCCBUGURL.
11508
115092000-02-17  Mark Mitchell  <mark@codesourcery.com>
11510
11511	* class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT.
11512	* decl2.c (grokclassfn): Likewise.
11513
11514	* ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS.
11515
11516	* decl2.c (lang_decode_option): Don't set default message length
11517	here.
11518	* lex.c (lang_init_options): Set it here.
11519
115202000-02-16  Mark Mitchell  <mark@codesourcery.com>
11521
11522	Make DECL_CONTEXT mean the class in which a member function was
11523	declared, even for a virtual function.
11524	* cp-tree.h (DECL_CLASS_CONTEXT): Adjust.
11525	(DECL_FRIEND_CONTEXT): New macro.
11526	(DECL_REAL_CONTEXT): Remove.
11527	(SET_DECL_FRIEND_CONTEXT): Likewise.
11528	(DECL_VIRTUAL_CONTEXT): Adjust.
11529	(DECL_CLASS_SCOPE_P): Use TYPE_P.
11530	(add_friends): Remove.
11531	(hack_decl_function_context): Likewise.
11532	* call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with
11533	CP_DECL_CONTEXT.
11534	(build_over_call): Fix indentation.  Use DECL_CONTEXT
11535	instead of DECL_CLASS_CONTEXT.
11536	* class.c (dfs_build_vcall_offset_vtbl_entries): Likewise.
11537	(add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
11538	(strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
11539	(build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT.
11540	(build_base_field): Likewise.
11541	(finish_struct_1): Likewise.
11542	(build_self_reference): Likewise.
11543	* decl.c (push_class_binding): Use CP_DECL_CONTEXT, not
11544	DECL_REAL_CONTEXT.
11545	(pushtag): Use decl_function_context, not
11546	hack_decl_function_context.
11547	(decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
11548	(duplicate_decls): Use DECL_VIRTUAL_CONTEXT.
11549	(pushdecl): Remove bogus code.
11550	(start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT.
11551	(cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
11552	(grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
11553	Use decl_function_context, nothack_decl_function_context.
11554	(grokvardecl): Don't set DECL_CLASS_CONTEXT.
11555	(grokdeclarator): Likewise.  Use decl_function_context, not
11556	hack_decl_function_context.
11557	(copy_args_p): Document.  Don't use DECL_CLASS_CONTEXT.
11558	(start_function): Use DECL_FRIEND_CONTEXT, not
11559	DECL_CLASS_CONTEXT.  Use decl_function_context, not
11560	hack_decl_function_context.
11561	(finish_function): Use decl_function_context, not
11562	hack_decl_function_context.
11563	(maybe_retrofit_in_chrg): Use DECL_CONTEXT, not
11564	DECL_CLASS_CONTEXT.
11565	(grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT.
11566	(finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT.
11567	(grokfield): Likewise.
11568	(finish_builtin_type): Likewise.
11569	(finish_vtable_vardec): Use decl_function_context, not
11570	hack_decl_function_context.
11571	(import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
11572	(start_static_initialization_or_destruction): Likewise.
11573	(finish_static_initialization_or_destruction): Likewise.
11574	(mark_used): Adjust logic for deciding when to synthesize methods.
11575	* dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not
11576	DECL_REAL_CONTEXT.
11577	* error.c (dump_function_decl): Use DECL_CONTEXT, not
11578	DECL_CLASS_CONTEXT.
11579	* friend.c (is_friend): Likewise.
11580	(add_friends): Remove.
11581	(do_friend): Use SET_DECL_FRIEND_CONTEXT.
11582	* lex.c (begin_definition_of_inclass_inline): Use
11583	decl_function_context, not hack_decl_function_context.
11584	(process_next_inline): Likewise.
11585	(do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
11586	* method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not
11587	DECL_CLASSS_CONTEXT.
11588	(hack_identifier): Likewise.
11589	(synthesize_method):  Use decl_function_context, not
11590	hack_decl_function_context.
11591	* pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not
11592	DECL_REAL_CONTEXT.
11593	(is_member_template): Use decl_function_context, not
11594	hack_decl_function_context.  Use DECL_CONTEXT, not
11595	DECL_CLASS_CONTEXT.
11596	(build_template_decl): Set DECL_VIRTUAL_CONTEXT, not
11597	DECL_CLASS_CONTEXT.
11598	(check_default_tmpl_args): Use CP_DECL_CONTEXT, not
11599	DECL_REAL_CONTEXT.
11600	(push_template_decl_real): Likewise.
11601	(instantiate_class_template): Don't call add_friends.
11602	(tsubst_default_argument): Use DECL_CONTEXT, not
11603	DECL_REAL_CONTEXT.
11604	(tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
11605	Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
11606	(set_meangled_name_for_template_decl): Use DECL_CONTEXT, not
11607	DECL_CLASS_CONTEXT.
11608	* repo.c (repo_inline_used): Likewise.
11609	* search.c (current_scope): Adjust for new _CONTEXT macros.
11610	(context_for_name_lookup): Use CP_DECL_CONTEXT, not
11611	DECL_REAL_CONTEXT.
11612	(friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
11613	(lookup_fnfields_here):Likewise.
11614	(check_final_overrider): Likewise.
11615	(init_vbase_pointers): Likewise.
11616	(virtual_context): Likewise.
11617	* semantics.c (finish_member_declaration): Just set DECL_CONTEXT.
11618	(expand_body): Use decl_function_context, not
11619	hack_decl_function_context.
11620	* tree.c (hack_decl_function_context): Remove.
11621	* typeck.c (build_x_function_call): Use DECL_CONTEXT, not
11622	DECL_CLASS_CONTEXT.
11623	* typeck2.c (error_not_base_type): Likewise.
11624
116252000-02-15  Jason Merrill  <jason@casey.cygnus.com>
11626
11627	* decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE.
11628
116292000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11630
11631	* Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h.
11632
116332000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
11634
11635	* lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec.
11636
116372000-01-16  Gabriel Dos Reis  <gdr@codesourcery.com>
11638
11639	* decl2.c (lang_decode_option): Enable automatic line wrapping.
11640
116412000-02-13  Jason Merrill  <jason@casey.cygnus.com>
11642
11643	* parse.y (frob_specs): Split out...
11644	(parse_decl): From here.
11645	(fn.def2): Call initial_deferred_type_access_control.
11646	(after_type_component_declarator0): Call frob_specs.
11647	(notype_component_declarator0): Likewise.
11648	* search.c (friend_accessible_p): Nested classes are friends of their
11649	enclosing classes.
11650
116512000-02-10  Mark Mitchell  <mark@codesourcery.com>
11652
11653	* ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be
11654	used to create an implicit temporary.
11655
11656	* class.c (dfs_modify_vtables): Tweak calculation of functions to
11657	override.
11658
116592000-02-08  Nathan Sidwell  <nathan@acm.org>
11660
11661	* typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to
11662	strip array element qualifiers too.
11663
116642000-02-07  Mark Mitchell  <mark@codesourcery.com>
11665
11666	* decl.c (store_parm_decls): Don't build cleanups for parameters
11667	while processing_template_decl.
11668
116692000-02-07  Jason Merrill  <jason@casey.cygnus.com>
11670
11671	* cp-tree.h (struct saved_scope): Add incomplete field.
11672	(namespace_scope_incomplete): New macro.
11673	* decl.c (pushdecl): Use it.
11674	(hack_incomplete_structures): Use it.  See through artificial
11675	binding levels.
11676	(mark_saved_scope): Mark it.
11677
11678	Implement access control for nested types.
11679	* search.c (type_access_control): New fn.
11680	(accessible_p): Now we do perform access control for types.
11681	* semantics.c (deferred_type_access_control): New fn.
11682	(initial_deferred_type_access_control): New fn.
11683	(begin_function_definition): Call it.  Add lookups parm.
11684	* decl.c (struct binding_level): Add this_class field.
11685	(pushlevel_class): Set it.
11686	(mark_binding_level): Mark it.
11687	(lookup_name_real): Use it.  Call type_access_control.
11688	(mark_saved_scope): Mark lookups field.
11689	* cp-tree.h (flagged_type_tree): Add lookups field.
11690	(struct saved_scope): Add lookups field.
11691	(type_lookups): New macro.
11692	* parse.y (declmods): Now <ftype>.
11693	(parse_decl): Add lookups parm.  Call
11694	initial_deferred_type_access_control.
11695	(lang_extdef): Clear type_lookups.
11696	(typed_declspecs, declmods, typespec): Set lookups field.
11697	(initdcl): Call deferred_type_access_control.
11698	(fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0,
11699	component_decl_1, named_parm): Adjust.
11700	* friend.c (is_friend): Nested classes are friends of their
11701	enclosing classes.
11702
11703	* class.c (currently_open_derived_class): New fn.
11704	* method.c (hack_identifier): Use it.
11705
11706	* lex.c (do_identifier): Remove obsolete code.
11707
11708	* parse.y (typed_typespecs): Propagate new_type_flag properly.
11709
117102000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
11711
11712	* tinfo.h: Remove apostrophes from C++ comment (xgettext
11713	thinks this file is plain C).
11714
117152000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11716
11717	* Makefile.in (call.o): Depend on $(EXPR_H).
11718
11719	* call.c: Include "expr.h".
11720
11721	* class.c (dump_class_hierarchy): Add prototype.
11722
11723	* search.c (dfs_get_pure_virtuals): Likewise.
11724
117252000-02-1  Ulrich Drepper  <drepper@redhat.com>
11726
11727	* parse.y (simple_stmt): Allow :: token in asm parameter list.
11728	* parse.c: Rebuilt.
11729
11730Mon Jan 31 15:35:29 2000  Jim Wilson  <wilson@cygnus.com>
11731
11732	* class.c (build_vtbl_or_vbase_field): New parameter fcontext.
11733	Store it in DECL_FCONTEXT.
11734	(build_vbase_pointer_fields, create_vtable_ptr): Fix callers.
11735
117362000-01-31  Jason Merrill  <jason@casey.cygnus.com>
11737
11738	* tinfo.h (old abi): #include "tconfig.h".
11739	* tinfo.cc (convert_to_base): Move into old abi section.
11740
117412000-01-31  Mark Mitchell  <mark@codesourcery.com>
11742
11743	* cp-tree.h (BINFO_VIRTUALS): Tweak documentation.
11744	(CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO.
11745	(BINFO_PRIMARY_BINFO): New macro.
11746	(BF_DELTA): Rename to ...
11747	(BV_DELTA): ... this.
11748	(BF_VCALL_INDEX): Rename to ...
11749	(BV_VCALL_INDEX): ... this.
11750	(BF_FN): Rename to ...
11751	(BV_FN): ... this.
11752	* class.c (build_vbase_path): Adjust for changes to reverse_path.
11753	(set_rtti_entry): Rename BF_ macros to BV_ variants.
11754	(modify_vtable_entry): Simplify.
11755	(add_virtual_function): Rename BF_ macros to BV_ variants.
11756	(build_vtable_initializer): Likewise.
11757	(get_class_offset_1): Remove.
11758	(dfs_get_class_offset): Likewise.
11759	(get_class_offset): Likewise.
11760	(dfs_find_final_overrider): New function.
11761	(find_final_overrider): Likewise.
11762	(modify_one_vtable): Remove.
11763	(dfs_find_base): New function.
11764	(dfs_modify_vtables): Fold modify_one_vtable in here.  Use
11765	find_final_overrider.
11766	(modify_all_vtables): Adjust.  Set BV_VCALL_INDEX on new
11767	virtuals.
11768	(dfs_fixup_vtable_deltas): Remove.
11769	(override_one_vtable): Remove.
11770	(merge_overrides): Likewise.
11771	(layout_virtual_bases): Make sure BINFO_OFFSET is set right for
11772	unreal chilren of virtual bases.
11773	(finish_struct_1): Don't use merge_overrides.  Don't use
11774	dfs_fixup_vtable_deltas.
11775	* tree.c (reverse_path): Return a TREE_LIST, not a chain of
11776	BINFOs.
11777
117782000-01-31  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11779	    Jason Merrill  <jason@yorick.cygnus.com>
11780
11781	* tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT.
11782
117832000-01-31  Alfred Minarik <a8601248@unet.univie.ac.at>
11784
11785	* exception.cc (__throw_bad_typeid): Add missing std::.
11786
117872000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11788
11789	* cp-tree.h (make_thunk): PROTO -> PARAMS.
11790
117912000-01-31  Nathan Sidwell  <sidwell@codesourcery.com>
11792
11793	* cp-tree.h (new_abi_rtti_p): Use flag_new_abi.
11794
11795	Runtime support for new-abi rtti.
11796	* inc/typeinfo (type_info::operator!=): Define in class.
11797	(type_info::before, type_info::name, type_info::operator==,
11798	type_info::operator!=): Define new ABI implementations.
11799	(type_info::is_pointer_p, type_info::is_function_p): Declare
11800	new virtual functions.
11801	(type_info::do_catch, type_info::do_upcast): Likewise.
11802
11803	* tinfo.h (__base_class_info): Define new class.
11804	(__class_type_info): Likewise.
11805	(__si_class_type_info): Likewise.
11806	(__vmi_class_type_info): Likewise.
11807	(__dynamic_cast): Prototype.
11808
11809	* tinfo.cc: Conditionalize old and new rtti mechanisms.
11810	(type_info::is_pointer_p): Define new function.
11811	(type_info::is_function_p): Likewise.
11812	(type_info::do_catch): Likewise.
11813	(type_info::do_upcast): Likewise.
11814	(vtable_prefix): New structure for vtable access.
11815	(adjust_pointer): Define new template function.
11816	(contained_p, public_p, virtual_p, contained_public_p,
11817	contained_nonpublic_p, contained_nonvirtual_p): Define new
11818	functions.
11819	(nonvirtual_base_type): New local variable.
11820	(__class_type_info::~__class_type_info): Define.
11821	(__si_class_type_info::~__si_class_type_info): Likewise.
11822	(__vmi_class_type_info::~__vmi_class_type_info): Likewise.
11823	(__class_type_info::do_catch): Define new function.
11824	(__class_type_info::do_upcast): Likewise.
11825	(__class_type_info::find_public_src): Likewise.
11826	(__class_type_info::do_find_public_src): Likewise.
11827	(__si_class_type_info::do_find_public_src): Likewise.
11828	(__vmi_class_type_info::do_find_public_src): Likewise.
11829	(__class_type_info::do_dyncast): Likewise.
11830	(__si_class_type_info::do_dyncast): Likewise.
11831	(__vmi_class_type_info::do_dyncast): Likewise.
11832	(__class_type_info::do_upcast): Likewise.
11833	(__si_class_type_info::do_upcast): Likewise.
11834	(__vmi_class_type_info::do_upcast): Likewise.
11835	(__dynamic_cast): Likewise.
11836
11837	* tinfo2.cc (__fundamental_type_info): Define new class.
11838	(__pointer_type_info): Likewise.
11839	(__reference_type_info): Likewise.
11840	(__array_type_info): Likewise.
11841	(__function_type_info): Likewise.
11842	(__enum_type_info): Likewise.
11843	(__ptr_to_member_type_info): Likewise.
11844	(__fundamental_type_info::~__fundamental_type_info): Define.
11845	(__pointer_type_info::~__pointer_type_info): Likewise.
11846	(__reference_type_info::~__reference_type_info): Likewise.
11847	(__array_type_info::~__array_type_info): Likewise.
11848	(__function_type_info::~__function_type_info): Likewise.
11849	(__enum_type_info::~__enum_type_info): Likewise.
11850	(__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise.
11851	(__pointer_type_info::do_catch): Define new function.
11852	(__ptr_to_member_type_info::do_catch): Define new function.
11853
11854	(__throw_type_match_rtti_2): Use new ABI interface, if enabled.
11855	(__is_pointer): Likewise.
11856
11857	* exception.cc (__cplus_type_matcher): Deal with new-abi rtti.
11858
118592000-01-30  Mark Mitchell  <mark@codesourcery.com>
11860
11861	* cp/class.c (build_vtable): Rename to build_primary_vtable.
11862	(prepare_fresh_vtable): Rename to build_secondary_vtable.
11863	(make_new_vtable): New function.
11864	(modify_vtable_entry): Handle generation of new vtables correctly.
11865	(modify_one_vtable): Remove unused parameter.
11866	(dfs_fixup_vtable_deltas): Likewise.
11867	(override_one_vtable): Use build_secondary_vtable.
11868	(finish_struct_1): Use build_primary_vtable and
11869	build_secondary_vtable.
11870
118712000-01-28  Ulrich Drepper  <drepper@redhat.com>
11872
11873	* cp/decl.c: Adjust variable names, comments, help strings.
11874
118752000-01-29  Nathan Sidwell  <nathan@acm.org>
11876
11877	* new2.cc (operator delete[]): Use operator delete, don't assume
11878	implementation.
11879
118802000-01-29  Nathan Sidwell  <sidwell@codesourcery.com>
11881
11882	* class.c (build_vtbl_initializer): Add argument to
11883	build_vtable_entry call.
11884
118852000-01-27  Mark Mitchell  <mark@codesourcery.com>
11886
11887	* cp-tree.def (THUNK_DECL): Discuss vcall indices.
11888	* cp-tree.h (BINFO_VIRTUALS): Update documentation.
11889	(BF_DELTA): New macro.
11890	(BF_VCALL_INDEX): Likewise.
11891	(BF_FN): Likewise.
11892	(THUNK_VCALL_OFFSET): Likewise.
11893	(make_thunk): Change prototype.
11894	* class.c (build_vtable_entry): Integrate
11895	build_vtable_entry_for_fn.  Handle vcall indices.
11896	(build_vtable_entry_for_fn): Remove.
11897	(set_rtti_entry): Handle vcall indices.  Use BF_DELTA,
11898	BF_VCALL_INDEX, BF_FN.
11899	(modify_vtable_entry): Integrate common code from
11900	modify_one_vtable and dfs_fixup_vtable_deltas.
11901	(add_virtual_function): Set BF_VCALL_INDEX.
11902	(build_vtbl_initializer): Simplify.  Use BF_DELTA, BF_VCALL_INDEX,
11903	and BF_FN.
11904	(modify_one_vtable): Simplify.
11905	(dfs_fixup_vtable_deltas): Likewise.
11906	(override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN.
11907	* method.c (make_thunk): Handle vcall indices.
11908
119092000-01-28  Nathan Sidwell  <sidwell@codesourcery.com>
11910
11911	Compiler side new abi rtti (not enabled).
11912	* cp-tree.h (new_abi_rtti_p): New macro.
11913	(emit_support_tinfos): Prototype new function.
11914	(tinfo_decl_p): Likewise.
11915	(emit_tinfo_decl): Likwise.
11916	* rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor
11917	macros.
11918	(doing_runtime): New local static.
11919	(init_rtti_processing): Add new-abi initializer.
11920	(get_tinfo_decl): Add new-abi logic.
11921	(tinfo_from_decl): Likewise.
11922	(build_dynamic_cast_1): Likewise.
11923	(qualifier_flags): New static function.
11924	(tinfo_base_init): Likewise.
11925	(generic_initializer): Likewise.
11926	(ptr_ref_initializer): Likewise.
11927	(ptmd_initializer): Likewise.
11928	(class_hint_flags): Likewise.
11929	(class_initializer): Likewise.
11930	(synthesize_tinfo_var): Likewise.
11931	(create_real_tinfo_var): Likewise.
11932	(create_pseudo_type_info): Likewise.
11933	(get_vmi_pseudo_type_info): Likewise.
11934	(create_tinfo_types): Likewise.
11935	(emit_support_tinfos): New global function.
11936	(tinfo_decl_p): New global predicate.
11937	(emit_tinfo_decl): New global function.
11938	* class.c (set_rtti_entry): Generalize for old and new rtti.
11939	(build_vtbl_initializer): Likewise.
11940	* decl2.c (finish_file): Likewise.
11941
11942Thu Jan 27 20:53:36 2000  Jim Wilson  <wilson@cygnus.com>
11943
11944	* optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t)
11945	and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))).
11946
11947Thu Jan 27 13:54:12 2000  Mike Stump  <mrs@wrs.com>
11948
11949	* decl.c (pushdecl): Fix up shadow warnings with respect to implicit
11950	for scopes.
11951
119522000-01-26  Jason Merrill  <jason@casey.cygnus.com>
11953
11954	* pt.c (unify): Use fold, not maybe_fold_nontype_arg.
11955
11956Wed Jan 26 22:19:14 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11957
11958	* optimize.c (calls_setjmp_r): Supply new argument
11959	to special_function_p.
11960
119612000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11962
11963	* call.c: PROTO -> PARAMS.
11964	* class.c: Likewise.
11965	* cp-tree.h: Likewise.
11966	* cvt.c: Likewise.
11967	* decl.c: Likewise.
11968	* decl.h: Likewise.
11969	* decl2.c: Likewise.
11970	* dump.c: Likewise.
11971	* errfn.c: Likewise.
11972	* error.c: Likewise.
11973	* except.c: Likewise.
11974	* expr.c: Likewise.
11975	* init.c: Likewise.
11976	* input.c: Likewise.
11977	* lex.c: Likewise.
11978	* lex.h: Likewise.
11979	* method.c: Likewise.
11980	* optimize.c: Likewise.
11981	* parse.y: Likewise.
11982	* pt.c: Likewise.
11983	* repo.c: Likewise.
11984	* rtti.c: Likewise.
11985	* search.c: Likewise.
11986	* semantics.c: Likewise.
11987	* spew.c: Likewise.
11988	* tree.c: Likewise.
11989	* typeck.c: Likewise.
11990	* typeck2.c: Likewise.
11991	* xref.c: Likewise.
11992
119932000-01-25  Richard Henderson  <rth@cygnus.com>
11994
11995	* typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR.
11996
119972000-01-25  Mark Mitchell  <mark@codesourcery.com>
11998
11999	* cp-tree.h (vcall_offset_in_vtable_p): New macro.
12000	* class.c (build_vbase_offset_vtbl_entries): Fix typo in commment.
12001	(struct vcall_offset_data_s): New type.
12002	(dfs_vcall_offset_queue_p): New function.
12003	(dfs_build_vcall_offset_vtbl_entries): Likewise.
12004	(build_vcall_offset_vtbl_entries): Likewise.
12005	(layout_vtable_decl): Likewise.
12006	(num_vfun_entries): Likewise.
12007	(num_extra_vtbl_entries): Add the entries for vcall offsets.
12008	(build_vtbl_initializer): Likewise.
12009	(dfs_finish_vtabls): Use layout_vtable_decl.
12010	(modify_one_vtables): Always duplicate vtables under the new ABI.
12011	(finish_struct_1): Use layout_vtable_decl.
12012
120132000-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12014
12015	* decl.c (member_function_or_else): Change third arg from a format
12016	specifier to an `enum overload_flags'.  Callers changed.
12017
120182000-01-25  Gabriel Dos Reis  <gdr@codesourcery.com>
12019
12020	* typeck.c (composite_pointer_type, c_sizeof, expr_sizeof,
12021	build_binary_op_nodefault, build_unary_op, build_reinterpret_cast,
12022	build_const_cast, get_delta_difference, check_return_expr): Avoid
12023	ANSI string concatenation usage.
12024
120252000-01-24  Mark Mitchell  <mark@codesourcery.com>
12026
12027	* class.c (layout_class_type): Put the fields required to make a
12028	class non-empty at the end, not the beginning, of the TYPE_FIELDs
12029	list.
12030
120312000-01-24  Jason Merrill  <jason@casey.cygnus.com>
12032
12033	* pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a
12034	template.
12035
12036	* decl2.c (mark_used): Do instantiate inlines that have been
12037	explicitly instantiated.
12038
120392000-01-24  Richard Henderson  <rth@cygnus.com>
12040
12041	* call.c (build_over_call): Use expand_tree_builtin.
12042	* typeck.c (build_function_call_real): Likewise.
12043	(build_binary_op_nodefault): Handle unordered compares.
12044
120452000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
12046
12047	* cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New
12048	cp_tree_index values.
12049	(throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node):
12050	New global node #defines for them.
12051	* rtti.c (call_void_fn): Replace with ...
12052	(build_runtime_decl): ... new static function.
12053	(throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl.
12054	(throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl.
12055	(build_dynamic_cast_1): Always produce correctly typed result.
12056	Explicitly produce type_info addresses. Use dynamic_cast_node.
12057	* exception.cc (__throw_bad_cast): Return `void *'.
12058	(__throw_bad_typeid): Return `const type_info &'.
12059
120602000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
12061
12062	* cp-tree.h (get_vtable_decl): Prototype new function.
12063	* class.c (get_vtable_decl): New function. Broken out from ...
12064	(build_vtable): ... here. Use it.
12065	* decl2.c (finish_vtable_vardecl): Ignore dummy vtables created
12066	by get_vtable_decl.
12067
120682000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
12069
12070	* cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE,
12071	CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE,
12072	CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations.
12073	(CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE,
12074	CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE,
12075	CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations.
12076	(CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ...
12077	(CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here.
12078	(CPTI_TINFO_VAR_ID): New enumeration.
12079	(__tp_desc_type_node, __access_mode_type_node,
12080	__bltn_desc_type_node, __user_desc_type_node,
12081	__class_desc_type_node, __ptr_desc_type_node,
12082	__attr_desc_type_node, __func_desc_type_node,
12083	__ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines.
12084	(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
12085	ref_desc_type_node, ary_desc_type_node, func_desc_type_node,
12086	enum_desc_type_node, class_desc_type_node,
12087	si_class_desc_type_node, vmi_class_desc_type_node,
12088	ptmd_desc_type_node, base_desc_type_node): New #defines.
12089	(tinfo_fn_id, tinfo_fn_type): Rename to ...
12090	(tinfo_decl_id, tinfo_decl_type): ... here. Adjust.
12091	(tinfo_var_id): New enumeration.
12092	(DECL_TINFO_FN_P): Augment comment.
12093	* decl.c (cp_global_trees): Adjust documentation.
12094	* rtti.c (init_rtti_processing): Adjust for tinfo_decl_id,
12095	tinfo_decl_type and tinfo_var_id.
12096	(get_tinfo_decl_dynamic): Adjust for tinfo_decl_type.
12097	(build_typeid): Remove unused variable.
12098	(get_tinfo_var): Use tinfo_var_id.
12099	(tinfo_name): New static function.
12100	(get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type.
12101	(tinfo_from_decl): Likewise.
12102	(get_base_offset): New static function, broken out of
12103	expand_class_desc.
12104	(expand_si_desc): Use tinfo_name.
12105	(expand_class_desc): Likewise. Lose local static variable.
12106	Use base_desc_type_node. Use get_base_offset.
12107	(expand_ptr_desc): Use tinfo_name.
12108	(expand_attr_desc): Likewise.
12109	(expand_generic_desc): Likewise.
12110
12111	* tinfo.cc (__GXX_ABI_VERSION): Test value and existence.
12112	* tinfo.h (__GXX_ABI_VERSION): Test value and existence.
12113
121142000-01-23  Mark Mitchell  <mark@codesourcery.com>
12115
12116	* cp-tree.h (__eprintf): Remove declaration.
12117	* tree.c (__eprintf): Remove definition.
12118
121192000-01-23  Zack Weinberg  <zack@rabi.columbia.edu>
12120	    Mark Mitchell  <mark@codesourcery.com>
12121
12122	* cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N,
12123	CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings.
12124
121252000-01-23  Brad Lucier  <lucier@math.purdue.edu>
12126
12127	* class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly.
12128
121292000-01-23  Mark Mitchell  <mark@codesourcery.com>
12130
12131	* cp-tree.h (register_dtor_fn): New function.
12132	* decl.c (destroy_local_static): Rename to ...
12133	(register_dtor_fn): ... this.  Give it external linkage.
12134	(expand_static_init): Use it.
12135	* decl2.c (do_static_initialization): Likewise, if using
12136	__cxa_atexit.
12137	(do_static_destruction): Check that __cxa_atexit is not in use.
12138	(finish_file): Don't call do_static_destruction if using
12139	__cxa_atexit.
12140
12141	* typeck.c (convert_arguments): Restore two-message error
12142	reporting.
12143
121442000-01-20  Nathan Sidwell  <sidwell@codesourcery.com>
12145
12146	Remap dynamic cast hint values to be consistent across ABIs.
12147	* search.c (dynamic_cast_base_recurse): Remap generated value.
12148	(get_dynamic_cast_base_type): Adjust documentation.
12149	* tinfo.h (__user_type_info::dyncast): Likewise.
12150	(__user_type_info::find_public_subobj): Remap BOFF meaning.
12151	* tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning.
12152	(__class_type_info::do_dyncast): Likewise.
12153	(__class_type_info::do_find_public_subobj): Likewise.
12154	* tinfo2.cc (__dynamic_cast): Remap BOFF parameter.
12155
121562000-01-19  Gabriel Dos Reis  <gdr@codesourcery.com>
12157
12158	* typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn.
12159
12160	* typeck2.c (incomplete_type_error): Restore previous
12161	cp_error and cp_error_at call sequence.
12162
121632000-01-20  Brad Lucier  <lucier@math.purdue.edu>
12164
12165	* class.c (dump_class_hierarchy): Make format agree with argument;
12166	cast pointer to unsigned long and print with %lx.
12167
121682000-01-19  Gabriel Dos Reis  <gdr@codesourcery.com>
12169
12170	* decl2.c (lang_decode_option): Set default line-wrap length to 72.
12171
12172	* typeck.c (composite_pointer_type, common_type,
12173	comp_target_parms, c_sizeof, expr_sizeof, build_array_ref,
12174	build_function_call_real, convert_arguments,
12175	build_binary_op_nodefault, pointer_int_sum, pointer_diff,
12176	build_unary_op, mark_addressable, build_compound_expr,
12177	build_static_cast, build_reinterpret_cast, build_const_cast,
12178	build_c_cast, build_modify_expr, get_delta_difference,
12179	build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with
12180	'ISO C++'.  Fusion consecutive calls to diagnostic message routines
12181	into a single one.
12182	* typeck2.c (readonly_error, abstract_virtuals_error,
12183	process_init_constructor, check_for_new_type): Likewise.
12184
121852000-01-19  Mark Mitchell  <mark@codesourcery.com>
12186
12187	* tree.c (bot_manip): Set DECL_CONTEXT for newly created
12188	VAR_DECLs.
12189
121902000-01-18  Nathan Sidwell  <sidwell@codesourcery.com>
12191
12192	* cp-tree.h (get_tinfo_fn_dynamic): Remove prototype.
12193	(build_x_typeid): Likewise.
12194	(get_tinfo_fn): Likewise.
12195	(get_tinfo_fn_unused): Rename to ...
12196	(get_tinfo_decl): ... here.
12197	* rtti.c (build_headof): Replace logic error with assertion.
12198	(get_tinfo_fn_dynamic): Rename to ...
12199	(get_tinfo_decl_dynamic): ... here. Make static. Use
12200	complete_type_or_else.
12201	(build_x_typeid): Move into ...
12202	(build_typeid): ... here. Adjust call to
12203	get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify
12204	throw_bad_typeid expression.
12205	(get_tinfo_fn_unused): Rename to ...
12206	(get_tinfo_decl): ... here. Adjust comment.
12207	(get_tinfo_fn): Delete.
12208	(tinfo_from_decl): New static function.
12209	(get_typeid_1): Call get_tinfo_decl and tinfo_from_decl.
12210	(get_typeid): Use complete_type_or_else.
12211	(build_dynamic_cast_1): Adjust calls to
12212	get_tinfo_decl_dynamic. Simplify throw_bad_cast expression.
12213	* parse.y (primary): Adjust call to build_typeid.
12214	* except.c (build_eh_type_type_ref): Adjust call to
12215	get_tinfo_decl. Mark as used.
12216	* class.c (set_rtti_entry): Adjust call to get_tinfo_decl.
12217	* decl2.c (build_expr_from_tree): Adjust call to build_typeid.
12218	* parse.c: Regenerated.
12219
122202000-01-17  Mark Mitchell  <mark@codesourcery.com>
12221
12222	* class.c (fixed_type_or_null): Don't clear NONNULL.  Document
12223	calling convention.
12224	(resolves_to_fixed_type_p): Document calling convention.
12225	* rtti.c (build_x_typeid): Initialize NONNULL.
12226
12227	* cp-tree.h (build_shared_int_cst): New function.
12228	* call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity.
12229	* class.c (modify_vtable_entry): Likewise.
12230	(add_virtual_function): Split out code to generated shared
12231	INTEGER_CSTs to build_share_int_cst.
12232	(modify_all_vtables): Handle all the overridden functions here.
12233	Add overridden functions from non-primary virtual bases to the
12234	primary vtable.
12235	(finish_struct_1): Adjust call to modify_all_vtables.  Add
12236	overridden functions from non-primary bases to the vtable.
12237	* tree.c (build_shared_int_cst): New function.
12238
12239	* cp-tree.h (scratchalloc): Remove.
12240	(build_scratch_list): Likewise.
12241	* call.c (convert_class_to_reference): Replace build_scratch_list
12242	and build_expr_list with build_tree_list.
12243	(add_candidate): Replace scratchalloc with expralloc.  Note memory
12244	leak.
12245	(build_user_type_conversion_1):  Replace build_scratch_list
12246	and build_expr_list with build_tree_list.
12247	(build_new_op): Likewise.
12248	(build_op_delete_call): Likewise.
12249	(convert_like): Likewise.
12250	* cvt.c (ocp_convert): Likewise.
12251	* decl.c (start_decl): Likewise.
12252	(start_function): Likewise.
12253	(finish_destructor_body): Likewise.
12254	(maybe_build_cleanup_1): Likewise.
12255	* decl2.c (reparse_decl_as_expr): Likewise.
12256	* init.c (perform_member_init): Likewise.
12257	(expand_cleanup_for_base): Likewise.
12258	(build_builtin_delete_call): Likewise.
12259	(build_new_1): Likewise.
12260	(build_delete): Likewise.
12261	* method.c (do_build_assign_ref): Likewise.
12262	* parse.y (already_scoped_stmt): Likewise.
12263	(nontrivial_exprlist): Likewise.
12264	(net_initializer): Likewise.
12265	(initlist): Likewise.
12266	* parse.c: Regenerated.
12267	* rtti.c (build_x_typeid): Likewise.
12268	(build_dynamic_cast_1): Likewise.
12269	* typeck.c (build_x_compound_expr): Likewise.
12270	(build_static_cast): Likewise.
12271	(build_modify_expr): Likewise.
12272
12273	* cp-tree.h (DECL_VINDEX): Add documentation.
12274	* class.c (build_vtable_entry): Likewise.
12275	(start_vtable): Add comment.
12276	(add_virtual_function): Replace pending_hard_virtuals with
12277	overridden_virtuals and pending_virtuals with new_virtuals.
12278	Replace redundant assignments with assertions.
12279	(check_for_override): Add comment.
12280	(check_bases_and_members): Replace pending_hard_virtuals with
12281	overridden_virtuals and pending_virtuals with new_virtuals.
12282	(create_vtbl_ptr): Likewise.
12283	(layout_class_type): Likewise.
12284	(finish_struct_1): Likewise.  Add comments.
12285
122862000-01-16  Mark Mitchell  <mark@codesourcery.com>
12287
12288	* class.c (finish_struct_1): Replace redundant code with
12289	assertions.
12290
12291	* cp-tree.h (flag_new_abi): Move.
12292	(flag_use_cxa_atexit): Likewise.
12293	(flag_honor_std): Likewise.
12294	(flag_rtti): Likewise.
12295	(vbase_offsets_in_vtable_p): Define.
12296	(vptrs_present_everywhere_p): Likewise.
12297	(TYPE_CONTAINS_VPTR_P): Likewise.
12298	(dfs_walk_real): Declare.
12299	* class.c (build_vbase_pointer_fields): Check
12300	vbase_offsets_in_vtable_p.
12301	(dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in
12302	BINFO_VPTR_FIELD.
12303	(build_vbase_offset_vtbl_entries): Simplify.
12304	(build_vbase_offset_vtbl_entries): Adjust.
12305	(build_vbase_pointer): Add ability to look up vbase offsets in
12306	vtable.
12307	(start_vtable): New function.
12308	(add_virtual_function): Use it.
12309	(determine_primary_base): Use TYPE_CONTAINS_VPTR_P.
12310	(num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p.
12311	(build_vtbl_initializer): Take the type of the complete object as
12312	input.  Use it to correctly calculate vbase offsets.
12313	(dfs_finish_vtbls): Pass the complete type to
12314	build_vtbl_initializer.
12315	(check_bases_and_members): Use TYPE_CONTAINS_VPTR_P.
12316	(create_vtable_ptr): Create a vtable even if there are no
12317	new virtual functions, under the new ABI.
12318	(finish_struct_1): Likewise.
12319	(get_vfield_name): Use TYPE_CONTAINS_VPTR_P.
12320	* decl.c (exapnd_static_init): Remove call to
12321	preserve_initializer.
12322	* decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in
12323	vtables.
12324	* init.c (initialize_vtbl_ptrs): Initialize them in pre-order.
12325	(expand_virtual_init): Use vbase_offsets_in_vtable_p.
12326	(construct_virtual_bases): Don't initialize virtual base pointers
12327	under the new ABI.
12328	(build_aggr_init): Clean up comment.
12329	(expand_aggr_init_1): Likewise.
12330	* rtti.c (expand_class_desc): Store the virtual function table
12331	index where the vbase offset lives in the offset field.
12332	* search.c (dfs_walk_real): Make it global.
12333	(dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P.
12334	* tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD.
12335
12336	* tinfo.h (USItype): Make it signed under the new ABI.
12337	* tinfo.cc (convert_to_base): New function.  Encapsulate base
12338	conversion logic here.
12339	(__class_type_info::do_upcast): Use it.
12340	(__class_type_info::do_dyncast): Likewise.
12341	(__class_type_info::do_find_public_subobj): Likewise.
12342
12343	* init.c (construct_virtual_bases): Don't look up the addresses of
12344	virtual bases at run-time.
12345
12346	* class.c (build_vbase_pointer): Relocate.
12347	(build_vbase_pointer_fields): Likewise.
12348	(dfs_build_vbase_offset_vtbl_entries): Likewise.
12349	(build_vbase_offset_vtbl_entries): Likewise.
12350
12351	* decl.c (init_decl_processing): Complain if -fnew-abi
12352	-fno-vtable-thunks is used.
12353
12354	* decl2.c (lang_decode_option): Don't couple flag_honor_std to
12355	flag_new_abi.
12356
123572000-01-15  Mark Mitchell  <mark@codesourcery.com>
12358
12359	* cp-tree.h (num_extra_vtbl_entries): New function.
12360	(size_extra_vtbl_entries): Likewise.
12361	(dfs_vtable_path_unmark): Likewise.
12362	(dfs_vtable_path_unmarked_real_bases_queue_p): Likewise.
12363	(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
12364	* class.c (num_extra_vtbl_entries): New function.
12365	(size_extra_vtbl_entries): Likewise.
12366	(dfs_build_vbase_offset_vtbl_entries): New function.
12367	(build_vbase_offset_vtbl_entries): Likewise.
12368	(build_vtbl_initializer): Use it.
12369	(finish_struct_1): Adjust vtable sizes (using
12370	num_extra_vtbl_entries).
12371	* expr.c (cplus_expand_expr): Assert that the DECL_RTL for a
12372	THUNK_DECL is non-NULL before expanding it.
12373	* init.c (expand_virtual_init): Adjust the vtable pointer by
12374	size_extra_vtbl_entries before storing it.
12375	* search.c (get_shared_vase_if_not_primary): Adjust prototype.
12376	Handle TREE_LIST parameters here, not in the dfs_* functions.
12377	(dfs_unmarked_real_bases_queue_p): Adjust.
12378	(dfs_marked_real_bases_queue_p): Likewise.
12379	(dfs_vtable_path_unmarked_real_bases_queue_p): New function.
12380	(dfs_vtable_path_marked_real_bases_queue_p): New function.
12381	(dfs_vtable_path_unmark): Likewise.
12382
123832000-01-14  Mark Mitchell  <mark@codesourcery.com>
12384
12385	* optimize.c (copy_body_r): Clear the operand three of a
12386	TARGET_EXPR when copying it.
12387
123882000-01-14  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
12389
12390	* method.c (build_decl_overload_real): Check whether we are in ::
12391	before returning __builtin_new/delete.
12392
123932000-01-13  Mark Mitchell  <mark@codesourcery.com>
12394
12395	* pt.c (tsubst_friend_function): Improve comment.
12396	(instantiate_decl): Avoid crashing when a "nested" function is
12397	instantiated from the top level.
12398
12399	* dump.c (dqeueue_and_dump): Dump
12400	DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION.
12401
124022000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12403
12404	* call.c: If GATHER_STATISTICS, declare `n_build_method_call'.
12405
124062000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
12407
12408	* g++spec.c (lang_specific_driver): Add -fnew-abi if
12409	ENABLE_NEW_GXX_ABI defined.
12410	* Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o,
12411	opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o,
12412	opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch.
12413
124142000-01-12  Mark Mitchell  <mark@codesourcery.com>
12415
12416	* decl.c (start_cleanup_fn): Call pushdecl.
12417
12418	* call.c (convert_class_to_reference): Fix typos.
12419	(build_conditional_expr): Handle errors gracefully.
12420	* class.c (push_nested_class): Likewise.
12421	* cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro.
12422	(DECL_THIS_EXTERN): Use it.
12423	(DECL_THIS_STATIC): Likewise.
12424	* cvt.c (convert_to_void): Handle errors gracefully.
12425	(build_expr_type_conversion): Likewise.
12426	* decl.c (maybe_push_decl): Likewise.
12427	(start_decl_1): Likewise.
12428	(require_complete_types_for_parms): Likewise.
12429	* parse.y (structsp): Likewise.
12430	(base_class): Likewise.
12431	* parse.c: Regenerated.
12432	* pt.c (finish_member_template_decl): Likewise.
12433	* typeck.c (decay_conversion): Likewise.
12434
12435	* cp-tree.h (dfs_skip_vbases): New function.
12436	(find_vbase_instance): Likewise.
12437	* class.c (determine_primary_base): Allow a nearly empty base to
12438	serve as a primary base class under the new ABI.
12439	(get_class_offset_1): Rename to ...
12440	(dfs_get_class_offset): ... this.  Simplify.  Don't issue error
12441	messages here.
12442	(get_class_offset): Use it.  Issue error messages here.
12443	(dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to
12444	find the right copies of virtual bases.
12445	(fixup_vtable_deltas1): Rename to ...
12446	(dfs_fixup_vtable_deltas): ... this.  Adjust to handle virtual
12447	bases as primary bases.
12448	(fixup_vtable_deltas): Remove.
12449	(override_one_vtable): Handle virtual bases as primary bases.
12450	(merge_overrides): Likewise.
12451	(finish_struct_1): Likewise.
12452	(dump_class_hierarchy): Dump primary-ness of bases as well.
12453	* search.c (mark_primary_bases): Use a pre-order traversal to
12454	handle primary virtual bases.
12455	(dfs_skip_vbases): New fiunction.
12456	(expand_upcast_fixups): Adjust to handle primary virtual bases.
12457	(fixup_virtual_upcast_offsets): Likewise.
12458	(fixup_all_virtual_upcast_offsets): Likewise.
12459	(dfs_find_vbase_instances): New function.
12460	(find_vbase_instance): Likewise.
12461
124622000-01-11  Mumit Khan  <khan@xraylith.wisc.edu>
12463
12464	* lex.c (DIR_SEPARATOR): Delete macro.
12465
124662000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
12467
12468       * decl2.c (lang_decode_option): Handle automatic line wrapping
12469       option.
12470
124712000-01-11  Mark Mitchell  <mark@codesourcery.com>
12472
12473	* friend.c (do_friend): Don't resolve scopes when processing
12474	template declarations, even if the qualifying scope doesn't
12475	involve template parameters.
12476
124772000-01-10  Mark Mitchell  <mitchell@dumbledore.codesourcery.com>
12478
12479	* class.c (dfs_modify_vtables_queue_p): Remove.
12480	(modify_all_vtables): Use dfs_unmarked_real_bases_queue_p
12481	and dfs_marked_real_bases_queue_p instead of
12482	dfs_modify_vtables_queue_p.
12483
12484	* class.c (build_vbase_path): Simplify.
12485	(dfs_propagate_binfo_offsets): New function.
12486	(propagate_binfo_offsets): Use it.
12487	(remove_base_field): Simplify.
12488	(dfs_set_offset_for_vbases): Remove.
12489	(dfs_set_offset_for_shared_vbases): New function.
12490	(dfs_set_offset_for_unshared_vbases): Likewise.
12491	(layout_virtual_bases): Use them.
12492	(layout_basetypes): Don't call propagate_binfo_offsets.
12493	* search.c (dfs_get_vbase_types): Clone completely fresh binfos
12494	for the vbases.
12495
12496	* class.c (build_base_field): New function, split out from ...
12497	(build_base_fields): ... here.  Use it.  Allocate primary bases
12498	first, under the new ABI.
12499	(get_vtable_entry): Remove.
12500	(remove_base_field): New function, split out from ...
12501	(remove_base_fields): ... here.  Adjust since primary bases come
12502	first under the new ABI.
12503
12504	* cp-tree.h (expand_direct_vtbls_init): Remove declaration.
12505	(initialize_vtbl_ptrs): New function.
12506	(expand_indirect_vtbls_init): Change prototype.
12507	(convert_pointer_to_vbase): Declare.
12508	* init.c (expand_direct_vtbls_init): Remove.
12509	(dfs_initialize_vtbl_ptrs): New function.
12510	(initialize_vtbl_ptrs): Likewise.
12511	(emit_base_init): Use initialize_vtbl_ptrs.
12512	* search.c (convert_pointer_to_vbase): Make it global.
12513	(expand_indirect_vtbls_init): Remove vtable initialization code.
12514	* semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs.
12515
12516	* class.c (dfs_finish_vtbls): New function.
12517	(finish_vtbls): Use it.
12518	(dump_class_hierarchy): New function.
12519
12520	* cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition.
12521	(BINFO_VBASE_PRIMARY_P): New macro.
12522	(BINFO_VIRTUALS): Add to documentation.
12523	(SET_BINFO_PRIMARY_MARKED_P): Remove.
12524	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
12525	(dfs_mark_primary_bases_queue_p): Likewise.
12526	(dfs_unmarked_real_bases_queue_p): New function.
12527	(dfs_marked_real_bases_queue_p): Likewise.
12528	* search.c (dfs_mark_primary_bases): Adjust.
12529	(mark_primary_bases): Likewise.
12530	(get_shared_vbase_if_not_primary): New function.
12531	(dfs_unmarked_real_bases_queue_p): Likewise.
12532	(dfs_marked_real_bases_queue_p): Likewise.
12533	(dfs_get_pure_virtuals): Simplify.
12534	(get_pure_virtuals): Likewise.
12535
125362000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12537
12538	* lex.c: Include tm_p.h.
12539
125402000-01-07  Nathan Sidwell  <sidwell@codesourcery.com>
12541
12542	* lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro.
12543
125442000-01-06  Jason Merrill  <jason@casey.cygnus.com>
12545
12546	* decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT.
12547	* pt.c (instantiate_decl): Defer comdat templates that might not be
12548	needed.
12549
12550	* cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT.
12551	* decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT.
12552	(finish_file): Likewise.
12553
12554	* decl2.c (import_export_class): Undo 12/14 change.
12555
12556	* error.c (dump_decl): operator new, not operatornew.
12557
12558	* class.c (field_decl_cmp): A nontype is "greater" than a type.
12559	* search.c (lookup_field_1): Look for the last field with the
12560	desired name.
12561
125622000-01-05  Nathan Sidwell  <nathan@acm.org>
12563
12564	* decl2.c (lookup_arg_dependent): Deal with FNS not being a
12565	FUNCTION_DECL.
12566
125672000-01-05  Nathan Sidwell  <nathan@acm.org>
12568
12569	* typeck.c (build_static_cast): Don't strip target qualifiers
12570	when casting from a class.
12571
125722000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12573
12574	* class.c (warn_hidden): Initialize variable `fndecl'.
12575
125762000-01-03  Ulrich Drepper  <drepper@cygnus.com>
12577
12578	* decl.c (flag_isoc9x): New variable to be able to use code in
12579	c-common.c.  For now always zero.
12580
125812000-01-03  Mark Mitchell  <mark@codesourcery.com>
12582
12583	* cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation.
12584	* class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN
12585	or unshare_base_binfos for virtual bases here.
12586	* search.c (dfs_get_vbase_types): Do it here.
12587	(get_vbase_types): Adjust.
12588
125892000-01-02  Mark Mitchell  <mark@codesourcery.com>
12590
12591	* cp-tree.h (CLASSTYPE_VFIELDS): Move definition.
12592	(BINFO_PRIMARY_MARKED_P): Use flag 5.
12593	(SET_BINFO_PRIMARY_MARKED_P): Likewise.
12594	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
12595	(unmark_primary_bases): Remove declaration.
12596	(unmarkedp): Declare.
12597	(dfs_vbase_unmark): Likewise.
12598	* class.c (determine_primary_base): Return immediately if there
12599	are no base classes.  Call mark_primary_bases here.
12600	(modify_all_direct_vtables): Remove.
12601	(modify_all_indirect_vtables): Remove.
12602	(dfs_modify_vtables_queue_p): New function.
12603	(dfs_modify_vtables): New function.
12604	(modify_all_vtables): Use them.
12605	(build_base_fields): Build FIELD_DECLs for primary virtual base
12606	classes.
12607	(create_vtable_ptr): Don't call determine_primary_base here.
12608	(dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ...
12609	(dfs_set_offset_for_vbases): ... this.
12610	(layout_virtual_bases): Use it.
12611	(layout_class_type): Call determine_primary_base here.
12612	* search.c (unmarkedp): Make it global.
12613	(shared_marked_p): Simplify.
12614	(shared_unmarked_p): Likewise.
12615	(dfs_primary_bases_queue_p): Remove.
12616	(dfs_unmark_primary_bases): Likewise.
12617	(unmark_primary_bases): Likewise.
12618	(mark_primary_bases): Simplify.
12619	(get_pure_virtuals): Don't call mark_primary_bases here.
12620	(dfs_vbase_unmark): New function.
12621	(get_vbase_types): Simplify.
12622
12623	* class.c (struct base_info): Remove.
12624	(determine_primary_base): Take has_virtual_p rather than a
12625	base_info as input.  Don't calculate max_has_virtual.
12626	(finish_struct_bits): Remove max_has_virtual argument.
12627	(create_vtable_ptr): Remove max_has_virtual_p argument.
12628	(layout_virtual_bases): Remove max argument.
12629	(layout_basetypes): Likewise.
12630	(layout_class_type): Remove max_has_virtual_p argument.
12631	(finish_struct_1): Remove max_has_virtual.
12632
12633	* cp-tree.h (dfs_mark_primary_bases_queue_p): New function.
12634	(layout_basetypes): Remove.
12635	* class.c (propagate_binfo_offsets): Moved here from tree.c.
12636	Update to handle primary virtual bases.
12637	(remove_base_fields): New function, split out from
12638	layout_basetypes.
12639	(dfs_mark_primary_bases_and_set_vbase_offsets): New function.
12640	(layout_virtual_bases): New function, split out from
12641	layout_basetypes.  Update to handle primary virtual bases.
12642	(layout_basetypes): Moved here from tree.c.  Use
12643	remove_base_fields and layout_virtual_bases.
12644	* search.c (dfs_mark_primary_bases_queue_p): New function.
12645	(mark_primary_bases): Use it.
12646	* tree.c (CEIL): Remove.
12647	(propagate_binfo_offsets): Remove.
12648	(layout_basetypes): Remove.
12649
126502000-01-01  Mark Mitchell  <mark@codesourcery.com>
12651
12652	* cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES.
12653	(BINFO_PRIMARY_MARKED_P): New macro.
12654	(SET_BINFO_PRIMARY_MARKED_P): Likewise.
12655	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
12656	(mark_primary_bases): New function.
12657	(unmark_primary_bases): Likewise.
12658	* search.c (get_abstract_virtuals_1): Remove.
12659	(dfs_mark_primary_bases): New function.
12660	(mark_primary_bases): Likewise.
12661	(dfs_unmark_primary_bases): Likewise.
12662	(unmark_primary_bases): Likewise.
12663	(dfs_get_pure_virtuals): Likewise.
12664
126652000-01-01  Mark Mitchell  <mark@codesourcery.com>
12666
12667	* cp-tree.h (skip_rtti_stuff): Adjust prototype.
12668	* class.c (skip_rtti_stuff): Reorganize parameters and return value.
12669	(modify_one_vtable): Adjust.
12670	(fixup_vtable_deltas1): Likewise.
12671	(override_one_vtable): Likewise.
12672	* search.c (get_abstract_virtuals_1): Likewise.
12673	(get_pure_virtuals): Likewise.
12674	(expand_upcast_fixups): Likewise.
12675	* tree.c (debug_binfo): Likewise.
12676
12677	* class.c (build_vtable): Don't return a value.  Don't rebuild
12678	vtables for bases that have already been handled.
12679	(prepare_fresh_vtable): Don't rebuild vtables for bases that have
12680	already been handled.
12681	(modify_one_vtable): Adjust accordingly.
12682	(fixup_vtable_deltas1): Likewise.
12683	(finish_struct_1): Likewise.
12684
126852000-01-01  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
12686
12687	* call.c (build_new_method_call): Also check destructors.
12688