xref: /openbsd/gnu/usr.bin/gcc/gcc/cp/ChangeLog (revision a67f0032)
12005-05-03  Release Manager
2
3	* GCC 3.3.6 Released.
4
52005-04-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6
7	PR c++/18644
8	* call.c (build_new_op): Remove check for warn_synth.
9
102004-12-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11
12	PR c++/17456
13	* cvt.c (convert_to_void): Set expr to void_zero_node after
14	overload failure.
15
162004-12-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
17
18	PR c++/16806
19	* error.c (dump_expr) [BASELINK]: Use dump_expr.
20
212004-12-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
22
23	PR c++/17868
24	* error.c (dump_expr): Add missing case for RDIV_EXPR.
25
262004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
27
28	PR c++/16681
29	* init.c (build_zero_init): Build a RANGE_EXPR for an array
30	initializer.
31
322004-09-30  Release Manager
33
34	* GCC 3.3.5 Released.
35
362004-09-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
37
38	* decl.c (reshape_init): Remove unused variable.
39
402004-09-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
41
42	PR c++/14179
43	* decl.c (reshape_init): Extract array handling into...
44	(reshape_init_array): New function. Use integers instead of trees
45	for indices.
46
472004-09-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
48
49	PR c++/15857
50	Backport from gcc-3_4-branch
51	2004-08-24  Jason Merrill  <jason@redhat.com>
52	PR c++/15461
53	* semantics.c (nullify_returns_r): Replace a DECL_STMT
54	for the NRV with an INIT_EXPR.
55
562004-07-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
57
58	PR c++/16175
59	* error.c (dump_type) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Output
60	cv qualifier.
61
622004-05-31  Release Manager
63
64	* GCC 3.3.4 Released.
65
662004-05-16  Gabriel Dos Reis  <gdr@integrable-solutions.net>
67
68	Backport from mainline:
69	2004-03-18  Mark Mitchell  <mark@codesourcery.com>
70	* call.c (build_conditional_expr): Do not call force_rvalue for
71	operands of void_type when the conditional expression itself has
72	void type.
73
742004-05-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
75
76	* Make-lang.in (cp/init.o): Depend on diagnostic.h.
77	* except.c (do_free_exception): Prototype.
78	* init.c: Include "diagnostic.h".
79
802004-05-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
81
82	Backport:
83	2004-04-01  Mark Mitchell  <mark@codesourcery.com>
84	PR c++/14810
85	* decl.c (maybe_push_cleanup_level): Robustify.
86
872004-05-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
88
89	Backport from gcc-3_4-branch
90	2004-03-30  Mark Mitchell  <mark@codesourcery.com>
91	            Jakub Jelinek  <jakub@redhat.com>
92	PR c++/14763
93	* pt.c (tsubst_default_argument): Clear current_function_decl.
94	* decl2.c (mark_used): Don't segfault if cfun != NULL but
95	current_function_decl == NULL.
96
972004-05-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
98
99	Backport from gcc-3_4-branch:
100	2004-03-30  Mark Mitchell  <mark@codesourcery.com>
101	PR c++/14724
102	* decl.c (start_decl_1): Do not decide whether or not to create a
103	new cleanup level until after the type has been completed.
104
1052004-04-01  Richard Henderson  <rth@redhat.com>
106
107        PR c++/14804
108        * decl.c (cp_finish_decl): Preserve TREE_READONLY more often.
109        * typeck2.c (split_nonconstant_init): Clear TREE_READONLY.
110
1112003-03-17  Matt Austern  <austern@apple.com>
112
113	Backport:
114	PR debug/14079
115	* decl.c (add_decl_to_level): Add extern variables, as well
116	as static, to static_decls array.
117
1182004-03-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
119
120	Backport:
121	2004-03-11  Mark Mitchell  <mark@codesourcery.com>
122	PR c++/14476
123	* decl.c (xref_tag): Do not create dummy ENUMERAL_TYPEs.
124
1252004-03-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
126
127	Backport:
128	2004-03-08  Mark Mitchell  <mark@codesourcery.com>
129	PR c++/14401
130	* class.c (check_field_decls): Complain about non-static data
131	members of reference type in unions.  Propagate
132	CLASSTYPE_REF_FIELDS_NEED_INIT and
133	CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
134	data members.
135	* init.c (perform_member_init): Complain about members with const
136	type that are not explicitly initialized.
137
1382004-03-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
139
140	Backport:
141	2004-03-09  Mark Mitchell  <mark@codesourcery.com>
142        PR c++/14230
143        * call.c (initialize_reference): Handle initializers that are
144        class-member access expressions applies to rvalues.
145
1462004-03-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
147
148	Backport:
149	2004-01-12  Richard Henderson  <rth@redhat.com>
150	PR opt/10776
151	* typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
152	(store_init_value): Use it.
153	* decl.c (check_initializer): Expect full initialization code
154	from store_init_value.
155	* init.c (expand_aggr_init_1): Likewise.
156	* decl2.c (maybe_emit_vtables): Abort if runtime init needed.
157
1582004-03-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
159
160	PR c++/14409
161	* pt.c (determine_specialization): For member templates, match also
162	constness.
163
1642004-03-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
165
166	Backport:
167	2004-02-04  Mark Mitchell  <mark@codesourcery.com>
168
169	PR c++/9941
170	* rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
171	linkage for the typeinfo name string.
172
1732004-02-24  Jason Merrill  <jason@redhat.com>
174
175	PR c++/13944
176	* except.c (do_free_exception): Remove #if 0 wrapper.
177	(build_throw): Use it if we elide a copy into the exception object.
178
1792004-03-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
180
181	* decl.c (current_binding_level): Define as an lvalue.
182
1832004-02-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
184
185	PR c++/13635
186	* pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
187	has full set of arguments.
188
1892004-02-23  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
190
191	PR c++/14250
192	* cvt.c (build_expr_type_conversion): Type must be complete before
193	looking up for conversions.
194
1952004-02-22  Jakub Jelinek  <jakub@redhat.com>
196
197	* decl.c (reshape_init): Convert array designator to sizetype.
198
1992004-02-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
200
201	Backport from mainline
202        2004-02-13  Mark Mitchell  <mark@codesourcery.com>
203	PR c++/14083
204	* call.c (build_conditional_expr): Call force_rvalue on the
205	non-void operand in the case that one result is a throw-expression
206	and the other is not.
207
2082004-02-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
209
210	Backport from mainline
211	2003-02-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
212	PR c++/14033
213	* decl.c (require_complete_types_for_parms): Do not insert
214	error_mark_node in the parameter list.
215
2162004-02-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
217
218	Backport from mainline
219	2004-02-04  Mark Mitchell  <mark@codesourcery.com>
220	PR c++/13932
221	* call.c (convert_like_real): Use "converting" rather than
222	"argument" as the descriptive keyword to
223	dubious_conversion_warnings.
224	* typeck.c (convert_for_assignment): Do not call
225	dubious_conversion_warnings.
226
2272004-02-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
228
229	Backport from mainline
230	2004-02-02  Mark Mitchell  <mark@codesourcery.com>
231	PR c++/13907
232	* call.c (convert_class_to_reference): Keep better track of
233	pedantically invalid user-defined conversions.
234
2352004-02-14  Release Manager
236
237	* GCC 3.3.3 Released.
238
2392004-02-05  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
240
241	PR c++/13086
242	* init.c (build_delete): Emit a more informative error message in
243	case of an incomplete type, and on the correct source line.
244
2452004-01-30  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
246
247	PR c++/13683
248	* call.c (convert_arg_to_ellipsis): Don't emit a warning if within
249	a sizeof expression.block
250
2512004-01-29  Aldy Hernandez  <aldyh@redhat.com>
252
253	Backport:
254
255	2004-01-17  Fred Fish  <fnf@intrinsity.com>
256
257	PR c++/11895
258	* cp/decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
259	except don't call array_type_nelts() with a VECTOR_TYPE.
260
2612004-01-29  Aldy Hernandez  <aldyh@redhat.com>
262
263	Backport:
264	2003-06-03  Jason Merrill  <jason@redhat.com>
265
266	* cp/cp-tree.h (CP_AGGREGATE_TYPE_P): Accept vectors.
267
268	* cp/decl.c (reshape_init): Handle vectors.
269
270	* testsuite/g++.dg/init/array10.C: New.
271
2722004-01-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
273
274	PR c++/13797
275	* pt.c (instantiate_class_template): Add an error_mark_node
276	check.
277	(tsubst_decl) <TEMPLATE_DECL case>: Likewise.
278
279	Backport from mainline
280	2003-05-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
281
282	PR c++/10555, c++/10576
283	* pt.c (lookup_template_class): Handle class template with
284	multiple levels of parameters when one of the levels contain
285	errors.
286
2872004-01-21  Gabriel Dos Reis <gdr@integrable-solutions.net>
288
289	Backport from mainline
290	2004-01-16  Mark Mitchell  <mark@codesourcery.com>
291
292	PR c++/13574
293	* decl.c (compute_array_index_type): Fix grammar in comment.
294	* init.c (build_zero_init): Handle zero-sized arrays correctly.
295
2962004-01-21  Gabriel Dos Reis <gdr@integrable-solutions.net>
297
298	Backport from mainline
299	2004-01-16  Mark Mitchell  <mark@codesourcery.com>
300
301	PR c++/13478
302	* call.c (initialize_reference): Pass -1 for inner parameter to
303	convert_like_real.
304
3052004-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
306
307	Backport from mainline
308	2004-01-05  Mark Mitchell  <mark@codesourcery.com>
309
310        PR c++/13057
311        * class.c (build_clone): Copy type attributes from the original
312        function to the clone.
313
3142004-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
315
316	Backport from mainline
317	2003-12-28  Mark Mitchell  <mark@codesourcery.com>
318
319	PR c++/13009
320	* call.c (build_special_member_call): Do not assume that we have a
321        pointer to the complete object in an assignment operator.
322
3232004-01-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
324
325	PR c++/13289
326	* pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
327	calling regenerate_decl_from_template.
328
3292004-01-14  Gabriel Dos Reis <gdr@integrable-solutions.net>
330
331	Backport from mainline
332	2004-01-05  Mark Mitchell  <mark@codesourcery.com>
333
334	PR c++/12816
335	* class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
336	references as constant.
337
3382004-01-11  Gabriel Dos Reis <gdr@integrable-solutions.net>
339
340	PR c++/13544
341	* decl.c (build_enumerator): Set DECL_CONTEXT after the enumerator
342	has been pushed.
343	(pushdecl): Don't use DECL_NAMESPACE_SCOPE_P to test whether a
344	decl has a namespace-scope; that isn't really what it means.
345
3462004-01-02  Matthias Klose  <doko@debian.org>
347
348	Backport from mainline:
349	2003-12-28  Mark Mitchell  <mark@codesourcery.com>
350
351	PR c++/13081
352	* decl.c (duplicate_decls): Preserve inline-ness when redeclaring
353	a function template.
354
3552003-12-20  Andrew Pinski  <pinskia@physics.uc.edu>
356
357	Backport from mainline:
358	2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
359
360		PR c++/13507
361		* decl.c (duplicate_decls): Use build_type_attribute_variant to
362		merge attributes.
363
3642003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
365
366	PR c++/13445
367	* pt.c (instantiate_class_template): Push to class's scope before
368	tsubsting base.
369
3702003-12-28  Roger Sayle  <roger@eyesopen.com>
371
372	PR c++/13070
373	* decl.c (duplicate_decls): When setting the type of an anticipated
374	declaration, merge the existing type attributes.
375
3762003-12-27  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
377
378	Backport from mainline:
379	2003-12-16  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
380
381	PR c++/2294
382	* decl.c (push_overloaded_decl): always	construct an OVERLOAD
383	if the declaration comes from an using declaration.
384
3852003-12-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>
386
387	Backport from mainline:
388	2003-12-16  Mark Mitchell  <mark@codesourcery.com>
389
390        PR c++/12696
391        * decl.c (reshape_init): Recover quickly from errors.
392
3932003-12-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>
394
395	Backport from mainline:
396	2003-12-22  Mark Mitchell  <mark@codesourcery.com>
397
398	PR C++/12862
399	* decl.c (pushdecl): Look up all namespace-scope entities in their
400	corresponding namespace.
401
4022003-12-22  Andrew Pinski  <pinskia@physics.uc.edu>
403
404	PR c++/5050
405	* tree.c (cp_start_inlining): Remove.
406	(cp_end_inlining): Remove.
407	* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Do not define.
408	(LANG_HOOKS_TREE_INLINING_END_INLINING): Do not define.
409	* cp-tree.h (cp_start_inlining): Do not declare.
410	(cp_end_inlining): Do not declare.
411
4122003-12-21  Mark Mitchell  <mark@codesourcery.com>
413
414	PR c++/11554
415	* init.c (sort_mem_initializers): Add warning.
416
4172003-12-19  Jason Merrill  <jason@redhat.com>
418
419	PR c++/13371
420	* typeck.c (build_modify_expr): Stabilize lhs if we're narrowing.
421
4222003-12-18  Jason Merrill  <jason@redhat.com>
423
424	PR c++/12253
425	* init.c (build_vec_init): Initialization of an element from
426	an initializer list is also a full-expression.
427
4282003-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
429
430	PR c++/13262
431	* pt.c (instantiate_decl): Wrap push_nested_class and
432	pop_nested_class around cp_finish_decl call for static member
433	variable.
434
4352003-12-06  Mark Mitchell  <mark@codesourcery.com>
436
437	PR c++/13323
438	* class.c (same_signature_p): Handle conversion operators
439	correctly.
440	(check_for_override): Likewise.
441
4422003-11-14  Bernardo Innocenti  <bernie@develer.com>
443
444	Backport from 3.4-branch.
445
446	2003-06-25  Giovanni Bajo  <giovannibajo@libero.it>
447
448        PR c++/2094
449        * pt.c (unify): Add support for PTRMEM_CST and
450        FIELD_DECL unification.
451
4522003-11-08  Bernardo Innocenti  <bernie@develer.com>
453
454	Backport from 3.4-branch.
455
456	2003-10-08  Giovanni Bajo  <giovannibajo@libero.it>
457
458	* cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS.
459	* error.c (dump_function_decl): Use it to skip the dump of the
460	arguments.
461	(dump_expr): When dumping a declaration found within an
462	expression, always set TFF_NO_FUNCTION_ARGUMENTS
463	in the flags.
464
4652003-10-23  Jason Merrill  <jason@redhat.com>
466
467	PR c++/12726
468	* tree.c (build_target_expr_with_type): Don't call force_rvalue
469	for CONSTRUCTORs.
470
4712003-10-16  Release Manager
472
473	* GCC 3.3.2 Released.
474
4752003-10-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
476
477	PR c++/12369
478	* decl.c (grokdeclarator): Handle TEMPLATE_ID_EXPR if friend
479	is a member of other class.
480	* friend.c (do_friend): Don't build TEMPLATE_DECL if friend
481	is a specialization of function template.
482
4832003-10-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
484
485	PR c++/7939
486	* typeck.c (comptypes): Don't ICE when its first argument is
487	error_mark_node.
488	(compparms): Reverse the arguments of same_type_p.
489
4902003-10-14  Jason Merrill  <jason@redhat.com>
491
492	PR c++/11878
493	* tree.c (build_target_expr_with_type): Call force_rvalue for
494	classes with non-trivial copy ctors.
495
496	PR c++/11063
497	* typeck.c (build_modify_expr): Call convert rather than abort.
498
4992003-10-06  Mark Mitchell  <mark@codesourcery.com>
500
501	PR c++/10147
502	* call.c (initialize_reference): Tweak error message.
503
504	PR c++/12337
505	* init.c (build_new_1): Make sure that the expression returned is
506	not an lvalue.
507
508	PR c++/12344, c++/12236, c++/8656
509	* decl.c (start_function): Do not ignore attributes embedded in a
510	function declarator.
511
5122003-10-04  Roger Sayle  <roger@eyesopen.com>
513
514	PR c++/11409
515	* class.c (resolve_address_of_overloaded_function): When building
516	list of matching non-template function decls, ignore anticipated
517	declarations of undeclared or shadowed GCC builtins.
518
5192003-10-02  Mark Mitchell  <mark@codesourcery.com>
520
521	PR c++/12486
522	* typeck.c (finish_class_member_access_expr): Issue diagnostic
523	on erroneous use of qualified name.
524
5252003-07-09  Mark Mitchell  <mark@codesourcery.com>
526
527	* cp-tree.h (break_out_calls): Remove declaration.
528	* tree.c (break_out_calls): Remove.
529	* typeck.c (build_modify_expr): Avoid invalid sharing of trees.
530
5312003-09-18  Mark Mitchell  <mark@codesourcery.com>
532
533	* class.c (resolve_address_of_overloaded_function): Replace
534	complain parameter with flags parameter.
535	(instantiate_type): Adjust accordingly.
536
5372003-09-17  Mark Mitchell  <mark@codesourcery.com>
538
539	PR c++/11991
540	* typeck2.c (incomplete_type_diagnostic): Robustify.
541
542	PR c++/12266
543	* cp-tree.h (tsubst_flags_t): Add tf_conv.
544	* class.c (standard_conversion): Pass tf_conv to
545	instantiate_type.
546	(resolve_address_of_overloaded_function): Do not call mark_used
547	when just checking conversions.
548
5492003-09-14  Mark Mitchell  <mark@codesourcery.com>
550
551	PR c++/3907
552	* cp-tree.h (innermost_scope_is_class_p): New function.
553	* class.c (maybe_note_name_used_in_class): Refine test for whether
554	or not we are in a class scope.
555	* decl.c (innermost_scope_is_class_p): Define.
556
5572003-09-14  Mark Mitchell  <mark@codesourcery.com>
558
559	* class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for
560	an bit-field whose width exceeds that of its type.
561
5622003-09-09  Steven Bosscher  <steven@gcc.gnu.org>
563
564	PR c++/11595
565	* decl.c (define_label): Remove unreachable timevar pop.
566	Always return the decl, even if the definition is invalid.
567
5682003-09-08  Mark Mitchell  <mark@codesourcery.com>
569
570	PR c++/11786
571	* decl2.c (add_function): Do not complain about seeing the same
572	non-function twice.
573
5742003-09-08  Mark Mitchell  <mark@codesourcery.com>
575
576	PR c++/5296
577	* pt.c (try_one_overload): Add addr_p parameter.
578	(resolve_overloaded_unification): Pass it.
579
5802003-09-07  Jason Merrill  <jason@redhat.com>
581
582	PR c++/12181
583	* typeck.c (build_modify_expr): Don't always stabilize the lhs and
584	rhs.  Do stabilize the lhs of a MODIFY_EXPR used on the lhs.
585
5862003-09-06  Mark Mitchell  <mark@codesourcery.com>
587
588	PR c++/11867
589	* call.c (standard_conversion): Improve comments.
590	(perform_direct_initialization): Make sure we return an expression
591	of the correct type.
592	* typeck.c (build_static_cast): Check for ambiguity and
593	accessibility when performing conversions.
594
5952003-09-05  Mark Mitchell  <mark@codesourcery.com>
596
597	PR c++/12163
598	* call.c (perform_direct_initialization): Correct logic for
599	direct-initialization of a class type.
600
601	PR c++/12146
602	* pt.c (lookup_template_function): Robustify.
603
6042003-09-04  Mark Mitchell  <mark@codesourcery.com>
605
606	Revert this patch:
607	* class.c (include_empty_classes): Correct logic for ABI version 1.
608
6092003-09-03  Mark Mitchell  <mark@codesourcery.com>
610
611	PR c++/12053
612	* class.c (include_empty_classes): Correct logic for ABI version 1.
613
6142003-09-01  Mark Mitchell  <mark@codesourcery.com>
615
616	PR c++/12114
617	* cp-tree.h (initialize_reference): Change prototype.
618	* call.c (initialize_reference): Add cleanup parameter.
619	* decl.c (grok_reference_init): Likewise.
620	(check_initializer): Likewise.
621	(cp_finish_decl): Insert a CLEANUP_STMT if necessary.
622	(duplicate_decls): When replacing an anticipated builtin, do not
623	honor TREE_NOTHROW.
624	* typeck.c (convert_for_initialization): Correct call to
625	initialize_reference.
626
6272003-08-29  Mark Mitchell  <mark@codesourcery.com>
628
629	PR c++/11928
630	* search.c (add_conversions): Avoid adding two conversion
631	operators for the same type.
632
6332003-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
634
635	* cp-tree.h (build_function_call_real): Remove unused parameter.
636	* typeck.c (build_function_call_real): Likewise.  Caller changed.
637	* decl.c (binding_table_reverse_maybe_remap): Initialize variable.
638
6392003-08-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
640
641	PR c++/5293
642	* call.c (initialize_reference): Improve diagnostic.
643
6442003-08-04  Release Manager
645
646	* GCC 3.3.1 Released.
647
6482003-08-04  Mark Mitchell  <mark@codesourcery.com>
649
650	PR c++/11713
651	* search.c (setup_class_bindings): Handle conversion operators
652	specially.
653
6542003-07-24  Alexandre Oliva  <aoliva@redhat.com>
655
656	PR c++/10796
657	* decl.c (finish_enum): Make sure the underlying integer type has
658	the same precision as some full integer type.  Reverts part
659	2003-06-27's patch that didn't play any role in fixing the PR.
660
6612003-07-24  Mark Mitchell  <mark@codesourcery.com>
662
663	* cp-tree.h (convert_to_base_statically): Declare.
664	* call.c (build_special_member_call): Convert INSTANCE to the base
665	type.
666	* class.c (convert_to_base_statically): New method.
667	* init.c (construct_virtual_base): Use it.
668	* method.c (do_build_assign_ref): Fix typo in comment.
669
6702003-07-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
671
672	PR c++/11513
673	* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): Use current_scope.
674
6752003-07-23  Mark Mitchell  <mark@codesourcery.com>
676
677	PR c++/11645
678	* cp-tree.h (accessible_base_p): Declare.
679	* call.c (build_over_call): Use it.
680	* search.c (accessible_base_p): New function, split out from ...
681	(lookup_base): ... here.
682
6832003-07-23  Nathan Sidwell  <nathan@codesourcery.com>
684
685	PR c++/11282
686	* decl.c: (reshape_init): Always advance *INITP.
687
6882003-07-19  Mark Mitchell  <mark@codesourcery.com>
689
690	PR c++/11546
691	* pt.c (lookup_template_class): Treat TYPE_DECLs as TEMPLATE_DECLs
692	where appropriate.
693
6942003-07-14  Mark Mitchell  <mark@codesourcery.com>
695
696	PR c++/7053
697	* pt.c (unregister_specialization): Rename to ...
698	(reregister_specialization): ... this.
699	(tsubst_friend_function): Use it.
700	(regenerate_decl_from_template): Likewise.
701
7022003-07-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
703
704	PR c++/11154
705	* pt.c (more_specialized_class): Add full_args parameter.
706	(most_specialized_class): Adjust calls to more_specialized_class.
707	* cp-tree.h (more_specialized_class): Adjust declaration.
708
7092003-07-13  Mark Mitchell  <mark@codesourcery.com>
710
711	PR c++/11503
712	* cp-tree.h (DECL_SELF_REFERENCE_P): New macro.
713	(SET_DECL_SELF_REFERENCE_P): Likewise.
714	* class.c (build_self_reference): Use SET_DECL_SELF_REFERENCE_P.
715	* pt.c (tsubst_decl): Copy it.
716	* search.c (lookup_base): Use DECL_SELF_REFERENCE_P.
717
7182003-07-11  Danny Smith  <dannysmith@users.sourceforge.net>
719
720	Backport from mainline.
721
722	2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
723
724	PR c++/9738
725	* decl.c (duplicate_decls): Re-invoke make_decl_rtl
726	if the old decl had instantiated DECL_RTL.
727	(Based on Richard Henderson 2003-05-13 patch to c-decl.c).
728
7292003-07-11  Mark Mitchell  <mark@codesourcery.com>
730
731	PR c++/8164
732	* decl.c (duplicate_decls): Avoid mangling names unnecessarily.
733
7342003-07-10  Mark Mitchell  <mark@codesourcery.com>
735
736	PR c++/10558
737	* parse.y (class_template_ok_as_expr): New variable.
738	(template_arg_1): New non-terminal.
739	(primary): Issue errors about uses of class templates as
740	expressions.
741
7422003-07-09  Mark Mitchell  <mark@codesourcery.com>
743
744	PR c++/10032
745	* decl.c (cxx_init_decl_processing): With -pedantic, pedwarns are
746	still errors.
747
748	PR c++/10527
749	* error.c (decl_to_string): Do not print default argument
750	expressions.
751
7522003-07-10  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
753
754	PR c++/10849
755	* decl2.c (handle_class_head_apparent_template): New function.
756	* cp-tree.h (handle_class_head_apparent_template): Add declaration.
757	* parse.y (class_head_defn): Use it.
758	* search.c (type_access_control): Revert my 2003-05-25 change.
759
7602003-07-06  Mark Mitchell  <mark@codesourcery.com>
761
762	PR c++/11236
763	* cvt.c (convert_to_void): Treat an overloaded function like
764	"((void) 0)" after issuing a diagnostic.
765
766	PR c++/11345
767	* search.c (lookup_base_r): Remove is_non_public and
768	within_current_scope parameters.  Remove other dead code.
769	(lookup_base): Adjust call to lookup_base_r.
770	(adjust_result_of_qualified_name_lookup): Improve comment.
771	* semantics.c (finish_call_expr): Use maybe_dummy_object.
772
7732003-07-05  Mark Mitchell  <mark@codesourcery.com>
774
775	PR c++/11431
776	* typeck.c (build_static_cast): Check for reference conversions
777	earlier.
778
7792003-07-01  Mark Mitchell  <mark@codesourcery.com>
780
781	PR c++/6949
782	* decl2.c (grokfield): Create TEMPLATE_DECLs for methods in local
783	classes.
784
7852003-07-01  Mark Mitchell  <mark@codesourcery.com>
786
787	* call.c (resolve_scoped_fn_name): Return error_mark_node for
788	erroneous cases.
789
790	PR c++/11137
791	* decl2.c (generate_ctor_or_dtor_function): Tolerate a
792	non-existant ssdf_decls array.
793	(finish_file): Call generator_ctor_or_dtor_function when there are
794	static constructors or destructors and no other static
795	initializations.
796
797	PR c++/11149
798	* call.c (resolve_scoped_fn_name): Check that the qualifying scope
799	is a class type.
800
8012003-07-01  Mark Mitchell  <mark@codesourcery.com>
802
803	PR c++/9559
804	* decl2.c (grokfield): Do not build NOP_EXPRs around the
805	error_mark_node.
806
8072003-06-30  Giovanni Bajo  <giovannibajo@libero.it>
808
809        * mangle.c (write_expression): Exit gracefully when trying to
810        mangle a CALL_EXPR.
811
8122003-06-30  Giovanni Bajo <giovannibajo@libero.it>
813
814        PR c++/11106
815        * error.c (dump_decl): Call dump_decl to dump the DECL_NAME for a
816        USING_DECL, instead of print_tree_identifier.
817
8182003-06-27  Mark Mitchell  <mark@codesourcery.com>
819
820	PR c++/10468
821	* pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly.
822
823	PR c++/10796
824	* decl.c (finish_enum): Implement DR377.
825
826	* decl.c (cp_finish_decl): Don't make variables with reference
827	type readonly while they are being initialized.
828
8292003-06-26  Mark Mitchell  <mark@codesourcery.com>
830
831	PR c++/11332
832	* typeck.c (build_static_cast): Avoid returning expressions with
833	reference type.
834
8352003-06-25  Mark Mitchell  <mark@codesourcery.com>
836
837	PR c++/10990
838	* search.c (lookup_base_r): Rely on accessible_p, rather than
839	trying to emulate that logic here.
840
841	PR c++/10931
842	* call.c (convert_like): Pass issue_conversion_warnings.
843	(convert_like_with_context): Likewise.
844	(convert_like_real): Add issue_conversion_warnings parameter.
845	(perform_direct_initialization_if_possible): New function.
846	* cp-tree.h (perform_direct_initialization_if_possible): Declare it.
847	* typeck.c (check_for_casting_away_constness): New function.
848	(build_static_cast): Rewrite.
849
8502003-06-23  Mark Mitchell  <mark@codesourcery.com>
851
852	PR c++/5754
853	* parse.y (structsp): Improve error handling of invalid nested
854	template classes.
855
8562003-06-23  Jakub Jelinek  <jakub@redhat.com>
857
858	* mangle.c: Include ggc.h, gt-cp-mangle.h.
859	(mangle_conv_op_name_for_type): Use htab_create_ggc instead of
860	htab_create.
861	* config-lang.in (gtfiles): Add cp/mangle.c.
862	* Make-lang.in (gt-cp-mangle.h): Depend on s-gtype.
863	(cp/mangle.o): Depend on gt-cp-mangle.h.
864
8652003-06-23  Jakub Jelinek  <jakub@redhat.com>
866
867	* mangle.c (hash_type): val is the TREE_LIST itself, not a pointer
868	to it.
869
8702003-06-21  Gabriel Dos Reis <gdr@integrable-solutions.net>
871
872        PR c++/10784
873        * call.c (joust): Warn about choosing conversion sequence only if
874        -Wconversion.
875
8762003-06-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
877
878	PR c++/10864
879	* call.c (op_error): Tidy.
880	* error.c (dump_expr): Properly format 'T()' when T is an
881	aggregate type.
882
8832003-06-21  Gabriel Dos Reis <gdr@integrable-solutions.net>
884
885	PR c++/10915
886	* decl.c (grok_op_properties): Warn possible confusing conversion
887	only if -Wconversion.
888
8892003-06-20  Mark Mitchell  <mark@codesourcery.com>
890
891	PR c++/10845
892	* pt.c (try_class_unification): Correct handling of member class
893	templates.
894
8952003-06-19  Mark Mitchell  <mark@codesourcery.com>
896
897	PR c++/10939
898	* Make-lang.in (decl.o): Depend on input.h.
899	* decl.c (input.h): Include it.
900	(cp_finish_decl): Revert previous change:
901	  2003-06-19  Mark Mitchell  <mark@codesourcery.com>
902	  * decl.c (cp_finish_decl): Remove support for RESULT_DECLs.
903	  Don't check building_stmt_tree.
904	* pt.c (tsubst_decl): Do not try to substitute into non-dependent
905	functions.
906
907	PR c++/9649
908	* cp-tree.h (pushdecl_class_level): Change prototype.
909	(push_class_level_binding): Likewise.
910	* decl.c (add_binding): Reject duplicate static data members.
911	(pushdecl_class_level): Return a value indicating whether or not
912	the binding was valid.
913	(push_class_level_binding): Likewise.
914	* semantics.c (finish_member_declaration): Don't keep invalid
915	declarations.
916
9172003-06-19  Mark Mitchell  <mark@codesourcery.com>
918
919	PR c++/11041
920	* call.c (initialize_reference): Do not use cp_finish_decl to emit
921	temporary variables.
922	* cp-tree.h (static_aggregates): Declare.
923	(pushdecl_top_level_and_finish): Likewise.
924	* decl.c (pushdecl_top_level_1): New function.
925	(pushdecl_top_level): Use it.
926	(pushdecl_top_level_and_finish): New function.
927	(initialize_local_var): Remove redundant code.
928	(cp_finish_decl): Remove support for RESULT_DECLs.  Don't check
929	building_stmt_tree.
930	* decl.h (static_aggregates): Remove.
931	* decl2.c (get_guard): Use pushdecl_top_level_and_finish.
932	* rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish.
933	(tinfo_base_init): Likewise.
934
9352003-06-19  Matt Austern  <austern@apple.com>
936
937	PR c++/11228
938	* init.c (build_zero_init): Assert that number of array elements
939	is an integer constant.
940	(build_default_init) Don't use build_zero_init for arrays with
941	variable number of elements.
942
9432003-06-17  Mark Mitchell  <mark@codesourcery.com>
944
945	* mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
946	string again.
947
9482003-06-17  Mark Mitchell  <mark@codesourcery.com>
949
950	* mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
951	string.
952
9532003-06-17  Jason Merrill  <jason@redhat.com>
954
955	PR c++/10929
956	* decl.c (grokfndecl): Don't mark a function inline for
957	-finline-functions if it isn't defined.
958
9592003-06-17  Mark Mitchell  <mark@codesourcery.com>
960
961	PR c++/10712
962	* class.c (handle_using_decl): Robustify.
963
964	PR c++/11105
965	* cp-tree.h (DECL_CONV_FN_TYPE): New method.
966	* decl.c (lookup_name_real): Backport conversion operator code
967	from mainline.
968	* mangle.c (struct globals): Remove internal_mangling_p.
969	(write_unqualified_name): Use DECL_CONV_FN_TYPE.
970	(write_template_parm): Don't write out the level number.
971	(conv_type_names): New variable.
972	(hash_type): New function.
973	(compare_type): Likewise.
974	(mangle_conv_op_name_for_type): Don't try to mangle conversion
975	operator names.
976	* search.c (lookup_conversion_operator): New function.
977	(lookup_fnfields_1): Use it.
978
9792003-06-12  Mark Mitchell  <mark@codesourcery.com>
980
981	PR c++/10635
982	* typeck.c (build_c_cast): Check that the destination type is
983	complete.
984
9852003-06-10  Jason Merrill  <jason@redhat.com>
986
987	PR c++/10968
988	* pt.c (mark_decl_instantiated): Clear DECL_COMDAT.
989
9902003-06-09  Zack Weinberg  <zack@codesourcery.com>
991
992	PR 8861
993	* mangle.c (write_real_cst): New function.  Implement
994	ABI-compliant mangling of floating-point literals when
995	-fabi-version>=2; provide backward compatibility with 3.3 when
996	-fabi-version=1 (with warning).  Clarify commentary.
997	(write_template_arg_literal): Use write_real_cst.
998
9992003-06-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1000
1001	PR c++/11039
1002	* decl2.c (handle_class_head): Remove implicitness in typename
1003	appeared as elaborated type specifier in declaration.
1004
10052003-06-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1006
1007	PR c++/10940
1008	* pt.c (check_explicit_specialization): Check for 'static'
1009	earlier.
1010
10112003-05-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1012
1013	PR c++/10956
1014	* pt.c (instantiate_decl): Don't use full template arguments if
1015	we are dealing with specializations.
1016
10172003-05-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1018
1019	* decl.c (ENABLE_CHECKING_SCOPES): New macro.
1020	(binding_depth): Unconditionally define.
1021	(is_class_level): Likewise.
1022	(indent): Likewise.  Take an indenting parameter.
1023	(push_binding_level): Remove conditional definittion.
1024	(pop_binding_level): Likewise.
1025	(suspend_binding_level): Likewise.
1026	(resume_binding_level): Likewise.
1027	(pushlevel): Likewise.
1028	(pushlevel_class): Likewise.
1029	(poplevel_class): Likewise.
1030	(pop_everything): Likewise.
1031
10322003-05-27  Gabriel Dos Reis <gdr@integrable-solutions.net>
1033
1034	* decl.c (global_scope_p): New macro.
1035	(pop_binding_level): Use it.
1036	(suspend_binding_level): Likewise.
1037	(global_bindings_p): Likewise.
1038	(print_other_binding_stack): Likewise.
1039	(print_binding_stack): Likewise.
1040	(maybe_push_to_top_level): Likewise.
1041	(pushdecl_namespace_level): Likewise.
1042	(start_decl): Likewise.
1043	(cp_finish_decl): Likewise.
1044	(start_function): Likewise.
1045	(cxx_init_decl_processing): Don't refer to global_binding_level.
1046	(global_binding_level): Remove.
1047
10482003-05-25  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1049
1050	PR c++/10849
1051	* search.c (type_access_control): Don't check access when
1052	processing_specialization.
1053
10542003-05-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1055
1056	PR c++/10682
1057	* pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to
1058	check for implicitly created typedef to an enum.
1059
10602003-05-20  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1061
1062	* decl.c (free_binding_entry):  Fix thinko.
1063
10642003-05-19  Gabriel Dos Reis <gdr@integrable-solutions.net>
1065
1066	* cp-tree.h (struct binding_entry_s): New datatype.
1067	(binding_table): Declare.
1068	(binding_entry): Likewise.
1069	(bt_foreach_proc): Likewise.
1070	(binding_table_foreach): Likewise.
1071	(binding_table_find): Likewise.
1072	(cxx_remember_type_decls): Likewise.
1073	(CLASSTYPE_TAGS): Remove.
1074	(CLASSTYPE_NESTED_UDTS): New macro.
1075	(struct lang_type_class):  Remove tags field.  Add nested_types.
1076	* decl.c (ENTRY_INDEX): New macro.
1077	(free_binding_entry):  New free list.
1078	(binding_entry_make): New function.
1079	(binding_entry_free): Likewise.
1080	(struct binding_table_s): New datatype.
1081	(SCOPE_DEFAULT_HT_SIZE): New macro.
1082	(CLASS_SCOPE_HT_SIZE): Likewise.
1083	(NAMESPACE_ORDINARY_HT_SIZE): Likewise.
1084	(NAMESPACE_STD_HT_SIZE): Likewise.
1085	(GLOBAL_SCOPE_HT_SIZE): Likewise.
1086	(binding_table_construct): New function.
1087	(binding_table_free): Likewise.
1088	(binding_table_new): Likewise.
1089	(binding_table_expand): Likewise.
1090	(binding_table_insert): Likewise.
1091	(binding_table_find): Likewise.
1092	(binding_table_find_anon_type): Likewise.
1093	(binding_table_reverse_maybe_remap): Likewise.
1094	(binding_table_remove_anonymous_types): Likewise.
1095	(binding_table_foreach): Likewise.
1096	(struct cp_binding_level): Remove tags field.  Add type_decls.
1097	(pop_binding_level): Free binding_entries if possible.
1098	(kept_level_p): Tidy.
1099	(poplevel): Remove unused variable tags.
1100	(bt_print_entry): New function.
1101	(print_binding_level): Use it.
1102	(push_namespace): Construct binding table.
1103	(maybe_process_template_type_declaration): Tidy.
1104	(pushtag): Likewise.
1105	(clear_anon_tags): Likewise.
1106	(cxx_remember_type_decls): New function.
1107	(lookup_tag): Tidy.
1108	(lookup_tag_reverse): Likewise.
1109	(cxx_init_decl_processing): Construct binding_table for the global
1110	scope.
1111	(store_parm_decls): Remove pointless code.
1112	(gettags): Remove.
1113	(storetags): Likewise.
1114	* class.c (unreverse_member_declarations): Don't touch
1115	CLASSTYPE_TAGS.
1116	(pushclass): Remember CLASSTYPE_NESTED_UTDS.
1117	* pt.c (instantiate_class_template): Remove reference to
1118	CLASSTYPE_TAGS. Remeber CLASSTYPE_NESTED_UTDS.
1119	(bt_instantiate_type_proc): New function.
1120	(do_type_instantiation): Use it.
1121	* search.c (lookup_field_r): Use binding_table_find.
1122	* semantics.c (begin_class_definition): Remove reference to
1123	CLASSTYPE_TAGS.  Nullify CLASSTYPE_NESTED_UTDS.
1124
11252003-05-15  Jason Merrill  <jason@redhat.com>
1126
1127	PR c++/5388
1128	* call.c (conditional_conversion): Don't consider implicit
1129	conversions if T2 is a base of T1.
1130	* cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean.
1131	(ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
1132
1133	PR c++/10661
1134	* pt.c (instantiate_class_template): Also instantiate our
1135	enclosing class.
1136
11372003-05-13  Release Manager
1138
1139	* GCC 3.3 Released.
1140
11412003-05-02  Richard Henderson  <rth@redhat.com>
1142
1143	PR c++/10570
1144	* cfns.gperf: Comment out POSIX thread cancellation points,
1145	plus abort and raise.
1146	* cfns.h: Regenerate.
1147
11482003-05-01  Mark Mitchell  <mark@codesourcery.com>
1149
1150	* decl2.c (comdat_linkage): Don't externalize explicit
1151	instantiations.
1152
11532003-04-29  Mark Mitchell  <mark@codesourcery.com>
1154
1155	PR c++/10551
1156	* pt.c (mark_decl_instantiated): Defer all explicit instantiations
1157	that have not yet been written out.
1158
1159	PR c++/10549
1160	* class.c (layout_class_type): Mark overlong bitfields as having
1161	the maximum size permitted by their type, after layout.
1162
11632003-04-29  Mark Mitchell  <mark@codesourcery.com>
1164
1165	PR c++/10527
1166	* error.c (dump_expr): Correctly handling of NEW_EXPR.4
1167
11682003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1169
1170	* lang-options.h: Fix typo.
1171
11722003-04-29  Mark Mitchell  <mark@codesourcery.com>
1173
1174	PR c++/10515
1175	* cp-tree.h (lookup_field_1): Declare it.
1176	* search.c (lookup_field_1): Make it public.
1177	* decl.c (reshape_init): Handle designated initializers.
1178
11792003-04-29  Mark Mitchell  <mark@codesourcery.com>
1180
1181	* decl.c (maybe_commonize_var): Further tweak support for systems
1182	without weak symbols.
1183
11842003-04-27  Mark Mitchell  <mark@codesourcery.com>
1185
1186	* decl.c (maybe_commonize_var): Fix thinko in last patch.
1187
1188	PR c++/10506
1189	* method.c (use_thunk): Decrement immediate_size_expand.
1190
1191	PR c++/10503
1192	* cp-tree.h (DECL_VAR_MARKED_P): New macro.
1193	(DECL_MAYBE_TEMPLATE): Remove.
1194	* class.c (fixed_type_or_null): Avoid infinite recursion.
1195
11962003-04-27  Mark Mitchell  <mark@codesourcery.com>
1197
1198	* decl.c (maybe_commonize_var): Make the code match the comments.
1199	* pt.c (instantiate_decl): Move call to import_export_decl.
1200
12012003-04-25  Mark Mitchell  <mark@codesourcery.com>
1202
1203	* decl2.c (finish_file): Don't call import_export_decl for
1204	functions that are not defined.
1205	(handle_class_head): Robustify.
1206	* pt.c (instantiate_decl): Do not call cp_finish_decl for
1207	variables that are not defined.
1208
12092003-04-23  Mark Mitchell  <mark@codesourcery.com>
1210
1211	PR c++/10471
1212	* call.c (build_cxx_call): Robustify.
1213
12142003-04-23  Mark Mitchell  <mark@codesourcery.com>
1215
1216	PR c++/10451
1217	* decl.c (grokdeclarator): Correct logic for "mutable" errors.
1218
12192003-04-22  Mark Mitchell  <mark@codesourcery.com>
1220
1221	PR c++/10446
1222	* search.c (lookup_fnfields_1): Handle empty slots in the method
1223	vector.
1224
12252003-04-22  Mark Mitchell  <mark@codesourcery.com>
1226
1227	PR c++/10428
1228	* decl.c (check_elaborated_type_specifier): New function, split
1229	out from ...
1230	(xref_tag): ... here.  Use the new function in more places.
1231
12322003-04-21  Mark Mitchell  <mark@codesourcery.com>
1233
1234	* call.c (build_over_call): Use build_cxx_call.
1235	(build_cxx_call): New method, split out of build_over_call.
1236	* cp-tree.h (language_function): Add can_throw.
1237	(build_cxx_call): Declare it.
1238	* decl.c (finish_function): If a function does not contain any
1239	calls to functions that can throw an exception, indicate that
1240	fact.
1241	* decl2.c (mark_used): Do not defer the instantiation of
1242	functions, if the current function does not throw.
1243	* optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.
1244	* pt.c (instantiate_decl): Make sure import_export_decl is called
1245	before emitting things.
1246	* rtti.c (throw_bad_cast): Use build_cxx_call.
1247	(build_dynamic_cast_1): Likewise.
1248	* typeck.c (build_function_call): Likewise.
1249
12502003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1251
1252	PR c++/9881
1253	* typeck.c (build_unary_op): Fold all COMPONENT_REF addr
1254	expressions. Reverts my 2002-08-08 patch.
1255
12562003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
1257
1258	PR c++/10405
1259	* search.c (lookup_field_1): Final scan goes backwards for
1260	types, forwards for non-types.
1261
12622003-04-15  Jason Merrill  <jason@redhat.com>
1263
1264	* decl2.c (mark_used): Don't instantiate anything if
1265	skip_evaluation.
1266
12672003-04-15  Mark Mitchell  <mark@codesourcery.com>
1268
1269	* init.c (build_new_1): Use nullexp instead of null_node to avoid
1270	unwanted macro expansion.
1271
12722003-04-14  Ziemowit Laski  <zlaski@apple.com>
1273
1274	* tree.c (build_cplus_array_type_1): Do not call
1275	uses_template_parms() on a NULL index_type.
1276
12772003-04-14  Andreas Schwab  <schwab@suse.de>
1278
1279	* init.c (build_new_1): Test use_cookie instead of cookie_size to
1280	avoid code-gen bug on ia64.
1281
12822003-04-13  Mark Mitchell  <mark@codesourcery.com>
1283
1284	PR c++/10300
1285	* init.c (build_new_1): Correct logic for checking whether the
1286	return value from the allocation function was zero.
1287
12882003-03-31  Mark Mitchell  <mark@codesourcery.com>
1289
1290	PR c++/10278
1291	* spew.c (yyerror): Avoid crashing at all costs.
1292
12932003-03-31  Jason Merrill  <jason@redhat.com>
1294
1295	PR java/10145
1296	* class.c (check_field_decl): Don't set DECL_ALIGN.
1297
12982003-03-30  Mark Mitchell  <mark@codesourcery.com>
1299
1300	PR c++/7647
1301	* search.c (lookup_field_1): Add want_type parameter.
1302	(lookup_field_r): Adjust call to lookup_field_1.
1303
13042003-03-28  Jason Merrill  <jason@redhat.com>
1305
1306	PR c++/10245
1307	* cvt.c (force_rvalue): New fn.
1308	* call.c (build_conditional_expr): Use it.
1309	* cp-tree.h: Declare it.
1310
13112003-03-28  Nathan Sidwell  <nathan@codesourcery.com>
1312
1313	PR c++/10047
1314	* decl2.c (finish_file): Don't warn about explicitly instantiated
1315	inline decls.
1316
13172003-03-27  Nathan Sidwell  <nathan@codesourcery.com>
1318
1319	PR c++/10158
1320	* spew.c (snarf_method):Set DECL_INITIALIZED_IN_CLASS for
1321	members.
1322	* pt.c (instantiate_decl): Only reduce the template args for
1323	friends that are not defined in class.
1324
13252003-03-24  Nathan Sidwell  <nathan@codesourcery.com>
1326
1327	PR c++/9898, PR c++/383, DR 322
1328	* pt.c (maybe_adjust_types_for_deduction) [DEDUCE_CONV]: Look
1329	through reference types on both PARM and ARG.
1330
1331	PR c++/10199
1332	* call.c (build_method_call): Deal with LOOKUP_EXPR.
1333	* semantics.c (finish_object_call_expr): Use build_method_call
1334	when in a template decl.
1335
13362003-03-23  Mark Mitchell  <mark@codesourcery.com>
1337
1338	PR c++/7086
1339	* semantics.c (genrtl_named_return_value): Adjust calls to
1340	put_var_into_stack.
1341	* typeck.c (cxx_mark_addressable): Likewise.
1342
13432003-03-20  Mark Mitchell  <mark@codesourcery.com>
1344
1345	PR c++/6412
1346	* cp/decl2.c (arg_assoc_class): Correct check for namespace-scope
1347	friends.
1348	* cp/pt.c (instantiate_class_template): Fix formatting.
1349
13502003-03-19  Jason Merrill  <jason@redhat.com>
1351
1352	PR c++/8316, c++/9315, c++/10136
1353	* call.c (joust): Improve wording.
1354
13552003-03-18  Roger Sayle  <roger@eyesopen.com>
1356
1357	PR c++/10031
1358	* decl.c (duplicate_decls): Use the new type when prototyping
1359	anticipated decls, even when the types match.  This defines the
1360	exception list for the built-in function.
1361
13622003-03-17  Jason Merrill  <jason@redhat.com>
1363
1364	PR c++/10091
1365	* typeck.c (build_class_member_access_expr): Compare
1366	TYPE_MAIN_VARIANTs.
1367
1368	* decl.c (finish_function): Don't skip a block.
1369
1370	PR c++/9993
1371	* decl.c (finish_function): Only allow the NRVO to use variables
1372	declared at function scope.
1373
13742003-03-17  Nathan Sidwell  <nathan@codesourcery.com>
1375
1376	PR c++/9629
1377	* cp-tree.h (struct language_function): Add in_base_initializer.
1378	(in_base_initializer): define it.
1379	(expand_member_init): Remove INIT param.
1380	* init.c (expand_member_init): Remove INIT param, return the member.
1381	(emit_mem_initializers): Set in_base_initializer.
1382	* class.c (build_base_path): Check in_base_initializer.
1383	* parse.y (begin_member_init): New reduction.
1384	(member_init): Use it.
1385	* pt.c (tsubst_initializer_list): Set in_base_initializer.
1386
13872003-03-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1388
1389	PR c++/6440
1390	* pt.c (maybe_process_partial_specialization): Handle
1391	member class template when enclosing class template is
1392	explicit specialized.
1393	(most_general_template): Stop looking when DECL is already
1394	specialized.
1395
13962003-03-13  Jason Merrill  <jason@redhat.com>
1397
1398	PR c++/9420
1399	* search.c (lookup_conversions): Call complete_type here.
1400	* call.c (implicit_conversion): Not here.
1401
14022003-03-13  Jason Merrill  <jason@redhat.com>
1403
1404	PR c++/9336
1405	* decl2.c (lookup_arg_dependent): Handle error_mark_node.
1406
14072003-03-13  Mark Mitchell  <mark@codesourcery.com>
1408
1409	* decl2.c (do_nonmember_using_decl): Correct handling of
1410	simultaneous type/non-type bindings.
1411
14122003-03-13  Mark Mitchell  <mark@codesourcery.com>
1413
1414	* call.c (initialize_reference): Remove bogus assertion.
1415	* decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.
1416
14172003-03-12  Andrew Lewycky  <andrew@mxc.ca>
1418
1419	PR c++/7050
1420	* expr.c (cxx_expand_expr): Return const0_rtx for throw
1421	expressions.
1422
14232003-03-11  Mark Mitchell  <mark@codesourcery.com>
1424
1425	PR c++/9474
1426	* decl2.c (do_nonmember_using_decl): Do not call duplicate decls
1427	to merge old and new declarations.
1428
14292003-03-11  Mark Mitchell  <mark@codesourcery.com>
1430
1431	PR c++/9924
1432	* decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.
1433
14342003-03-11  Jason Merrill  <jason@redhat.com>
1435
1436	PR c++/9820
1437	* search.c (lookup_member): Fix handling of functions in a class
1438	being defined.
1439
14402003-03-11  Mark Mitchell  <mark@codesourcery.com>
1441
1442	PR c++/8700
1443	* call.c (print_z_candidates): Avoid printing duplicates.
1444
14452003-03-11  Jason Merrill  <jason@redhat.com>
1446
1447	PR c++/8660
1448	* decl2.c (check_classfn): A member template only matches a
1449	member template.
1450
14512003-03-10  Devang Patel  <dpatel@apple.com>
1452
1453	PR c++/9394
1454	* g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWITCH_TAKES_ARG.
1455
14562003-03-10  Jason Merrill  <jason@redhat.com>
1457
1458	PR c++/9798
1459	* decl.c (push_using_directive): Push before recursing.
1460
1461	PR c++/9868
1462	* call.c (resolve_scoped_fn_name): Handle the case of a function
1463	pointer member.
1464	* init.c (build_offset_ref): Handle getting a FIELD_DECL for NAME.
1465
1466	* decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'
1467	argument in the pointer-to-member case.
1468
14692003-03-09  Mark Mitchell  <mark@codesourcery.com>
1470
1471	PR c++/9373
1472	* cp-lang.c (cxx_get_alias_set): Use alias set zero for
1473	pointers to member functions.
1474
1475	PR c++/8534
1476	* decl.c (build_ptrmemfunc_type): Do not allow default arugments
1477	in pointer-to-member-function types.
1478
14792003-03-09  Mark Mitchell  <mark@codesourcery.com>
1480
1481	PR c++/9912
1482	* cp-tree.h (is_ancestor): New function.
1483	* decl2.c (is_namespace_ancestor): Rename to ...
1484	(is_ancestor): ... this.
1485	(namespace_ancestor): Use it.
1486	(set_decl_namespace): Likewise.
1487	(handle_class_head): Check for invalid class definitions.
1488
14892003-03-10  Gabriel Dos Reis <gdr@integrable-solutions.net>
1490
1491	Compile-time improvement: 2/n.
1492	* cp-tree.h (struct cxx_binding): New datatype;
1493	(struct lang_identifier): Use it.
1494	(LOCAL_BINDING_P): Adjust definition.
1495	(INHERITED_VALUE_BINDING_P): Likewise.
1496	(BINDING_SCOPE): Likewise.
1497	(BINDING_HAS_LEVEL_P): Likewise.
1498	(BINDING_VALUE): Likewise.
1499	(BINDING_TYPE): Likewise.
1500	(IDENTIFIER_VALUE): Likewise.
1501	(struct tree_binding): Remove.
1502	(TS_CP_BINDING): Likewise.
1503	((union lang_tree_node): Remove field "binding".
1504	(cxx_binding_clear): New macro.
1505	(binding_for_name): Adjust return type.
1506	(qualified_lookup_using_namespace): Adjust prototype.
1507	(lookup_using_namespace): Adjust prototype.
1508	(cxx_scope_find_binding_for_name): Declare.
1509	* cp-tree.def: Remove CPLUS_BINDING definition.
1510	* parse.y (parse_scoped_id): Don't type-abuse of 'id'.  Allocate
1511	temporary cxx_binding on stack.  Simplify.
1512	* decl.c (push_binding): Adjust local variable type.
1513	(add_binding): Likewise.
1514	(push_class_binding): Likewise.
1515	(pop_binding): Likewise.
1516	(poplevel): Likewise.
1517	(poplevel_class): Likewise.
1518	(free_bindings):  Adjust type.
1519	(find_binding): Adjust return type, add a third parameter. Remove
1520	non-useful assertion now that we use static typing.
1521	(cxx_scope_find_binding_for_name): New function.
1522	(binding_for_name): Use it.  Adjust local variable type. Simplify.
1523	(namespace_binding):  Simplify.
1524	(set_namespace_binding): Likewise.
1525	(set_identifier_type_value_with_scope): Adjust local variable type.
1526	(lookup_tag): Don't type-abuse of local variable 'old'.
1527	(lookup_namespace_name): Likewise.  Allocate binding on stack.
1528	(select_decl): Adjust prototype.
1529	(unqualified_namespace_lookup):  Allocate binding on stack.
1530	Don't type-abuse of local variable 'val'.
1531	(lookup_name_real): Likewise.
1532	(maybe_inject_for_scope_var): Adjust local variable type.
1533	(cp_tree_node_structure): Remove CPLUS_BINDING case label.
1534	(namespace_binding): Adjust logic, simplify.
1535	(BINDING_LEVEL): Adjust definition.
1536	(push_class_level_binding): Adjust local variable type.
1537	(struct cxx_saved_binding): Adjust field 'binding' type.
1538	* decl2.c (ambiguous_decl): Adjust prototype.
1539	(lookup_using_namespace): Adjust local variable type.
1540	(qualified_lookup_using_namespace): Catch type error and correct
1541	ensueing logic error.
1542	(do_nonmember_using_decl): Adjust local variable type.  Allocate
1543	temporary cxx_binding on stack.
1544	(do_toplevel_using_decl): Adjust local variable type.
1545	* ptree.c (cxx_print_cxx_binding): New function.
1546	(cxx_print_identifier): Use it.
1547	(cxx_print_xnode): Delete CPLUS_BINDING case label.
1548
15492003-03-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1550
1551	PR c++/9970
1552	* decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual
1553	functions.
1554
15552003-03-07  Matt Austern  <austern@apple.com>
1556
1557 	* cp-tree.h (struct lang_type_class): add field for key method
1558 	(cp_global_trees): rename dynamic_classes to keyed_classes
1559 	(key_method): add definition
1560 	* class.c (finish_struct_1): compute class's key method, and add
1561 	the class to keyed_classes list if there is no key method.
1562 	* decl.c (finish_function): add class to keyed_classes list if we
1563 	see a definition of the class's key method.
1564 	* pt.c (instantiate_class_template): add template specialization
1565 	of a dynamic class to keyed_classes list.
1566 	* decl2.c (key_method): remove
1567 	(finish_file): iterate only through keyed_classes list when
1568 	deciding whether to emit vtables, remove class from its list after
1569 	we do the emission.
1570
15712003-03-08  Mark Mitchell  <mark@codesourcery.com>
1572
1573	PR c++/9809
1574	* call.c (add_function_candidate): Skip builtin fuctions that have
1575	not yet been declared.
1576
15772003-03-07  Mark Mitchell  <mark@codesourcery.com>
1578
1579	* call.c (reference_binding): Remove REF_IS_VAR parameter.
1580	(implicit_conversion): Adjust call to reference_binding.
1581	(make_temporary_var_for_ref_to_type): Add TYPE parameter.
1582	(initialize_reference): Adjust handling for references bound to
1583	rvalues.
1584	* cp-tree.h (make_temporary_var_for_ref_to_temp): Change
1585	prototype.
1586	(real_non_cast_lvalue_p): New method.
1587	* cvt.c (build_up_reference): Adjust use of
1588	make_temporary_var_for_ref_to_temp.
1589	* tree.c (real_non_cast_lvalue_p): New method.
1590
15912003-03-06  Mark Mitchell  <mark@codesourcery.com>
1592
1593	* call.c (merge_conversion_sequences): New function.
1594	(build_conv): Set ICS_USER_FLAG for USER_CONVs.
1595	(convert_class_to_reference): Correct handling of second
1596	standard conversion sequence in a user-defined conversion
1597	sequence.
1598	(build_user_type_conversion_1): Use merge_conversion_sequences.
1599	* cp-tree.def: Add comments for CONV nodes.
1600
16012003-03-06  Mark Mitchell  <mark@codesourcery.com>
1602
1603	PR c++/9965
1604	* call.c (reference_binding): Add ref_is_var parameter.
1605	(implicit_conversion): Adjust call to reference_binding.
1606	(initialize_reference): Likewise.
1607
1608	PR c++/9400
1609	* decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL
1610	PARM_DECLs.
1611
16122003-03-06  Mark Mitchell  <mark@codesourcery.com>
1613
1614	PR c++/9791
1615	* class.c (get_basefndecls): Use lookup_fnfields_1.
1616
16172003-03-02  Matt Austern  <austern@apple.com>
1618
1619	* decl.c (cp_binding_level): Add static_decls varray member.
1620	(add_decl_to_level): Add static/inline namespace scope
1621	declarations to static_decls array.
1622	(wrapup_global_for_namespace): Pass static_decls only, instead of
1623	all decls, to wrapup_global_declarations/check_global_declarations.
1624	(push_namespace): Initialize static_decls for ordinary namespaces.
1625	(cxx_init_decl_processing): Initialize static_decls for global
1626	namespace.
1627
16282003-03-05  Mark Mitchell  <mark@codesourcery.com>
1629
1630	* class.c (end_of_class): Correct thinko.
1631
16322003-03-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
1633
1634	* cp-tree.h (cxx_saved_binding): Declare.
1635	(struct saved_scope): Adjust type of field 'old_binding'.
1636	* decl.c (cxx_saved_binding_make): New macro.
1637	(struct cxx_saved_binding): Define.
1638	(store_bindings): Adjust prototype.  Use cxx_saved_binding to save
1639	C++ bindings.
1640	(maybe_push_to_top_level): Adjust local variable type.
1641	(pop_from_top_level): Likewise.
1642
16432003-03-03  Jason Merrill  <jason@redhat.com>
1644
1645	* decl.c (finish_enum): Do set the type in a template. Simplify.
1646	* pt.c (tsubst_enum, tsubst_copy): Revert last patch.
1647
16482003-03-03  Mark Mitchell  <mark@codesourcery.com>
1649
1650	PR c++/9878
1651	* call.c (convert_class_to_reference): Correct conversion
1652	sequences.
1653	(reference_binding): Add ref_bound_directly_to_rvalue_p parameter.
1654	(implicit_conversion): Adjust call to reference_binding.
1655	(add_candidate): Change type of candidates parameter.
1656	(add_function_candidate): Likewise.
1657	(add_conv_candidate): Likewise.
1658	(build_builtin_candidate): Likewise.
1659	(add_builtin_candidate): Likewise.
1660	(add_builtin_candidates): Likewise.
1661	(add_template_candidate_real): Likewise.
1662	(add_template_candidate): Likewise.
1663	(add_template_conv_candidate): Likewise.
1664	(build_user_type_conversion_1): Adjust accordingly.
1665	(build_object_call): Likewise.
1666	(build_conditional_expr): Likewise.
1667	(add_candidates): Likewise.
1668	(build_new_op): Likewise.
1669	(convert_like_real): Use USER_CONV_CAND.  Use build_nop.
1670	(build_new_method_call): Adjust calls to add_function_candidate.
1671	(make_temporary_var_for_ref_to_temp): New function.
1672	(initialize_reference): Add decl parameter.
1673	* class.c (build_rtti_vtbl_entries): Use build_address and
1674	build_nop.
1675	* cp-tree.h (initialize_reference): Change prototype.
1676	(make_temporary_var_for_ref_to_temp): New function.
1677	(build_type_conversion): Change prototype.
1678	(build_address): New function.
1679	(build_nop): Likewise.
1680	* cvt.c (cp_convert_to_pointer): Adjust call to
1681	build_type_conversion.  Avoid indicating redundant NOP_EXPRs.
1682	Use build_nop.
1683	(convert_to_pointer_force): Use build_nop.
1684	(build_up_reference): Use make_temporary_var_for_ref_to_temp.
1685	(convert_to_reference): Adjust call to build_type_conversion.
1686	(ocp_convert): Likewise.
1687	(build_type_conversion): Remove for_sure parameter.
1688	* decl.c (grok_reference_init): Use initialize_reference.
1689	* typeck.c (build_address): New function.
1690	(build_nop): Likewise.
1691	(build_unary_op): Use them.
1692	(build_ptrmemfunc): Tidy slightly.
1693	(convert_for_initialization): Adjust call to
1694	initialize_reference.
1695	* typeck2.c (store_init_value): Remove #if 0'd code.
1696
16972003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
1698
1699	* lang-specs.h (default_compilers): Add -no-integrated-cpp flag to
1700	  invoke an external cpp during compilation.
1701
17022003-02-28 Mark Mitchell  <mark@codesourcery.com>
1703
1704	PR c++/9892
1705	* pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
1706	instantiating it.
1707
17082003-02-28  Mark Mitchell  <mark@codesourcery.com>
1709
1710	PR c++/9879
1711	* cp-tree.h (build_zero_init): Add parameter.
1712	* decl.c (cp_finish_decl): Adjust call.
1713	* init.c (build_zero_init): Add nelts parameter.  Adjust recursive
1714	calls.
1715	(build_default_init): Add nelts parameter.  Adjust calls to
1716	build_zero_init.
1717	(build_new_1): Adjust call to build_default_init.
1718	* typeck2.c (process_init_constructor): Adjust call to build_zero_init.
1719
17202003-02-27  Devang Patel  <dpatel@apple.com>
1721
1722	* decl.c (finish_enum): Merge two 'for' loops. Copy value node if required.
1723	Postpone enum setting for template decls.
1724	(build_enumerator): Delay copying value node until finish_enum (). Remove
1725	#if 0'ed code.
1726	* pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
1727	(tsubst_copy): Add check for enum type.
1728
1729
17302003-02-25  Mark Mitchell  <mark@codesourcery.com>
1731
1732	PR c++/9829
1733	* decl.c (grokdeclarator): Handle SCOPE_REFs whose second argument
1734	is a NAMESPACE_DECL.
1735
17362003-02-24 Gabriel Dos Reis  <gdr@integrable-solutions.net>
1737
1738	* decl.c (add_binding): Time TV_NAME_LOOKUP.
1739	(push_class_binding): Likewise.
1740	(set_namespace_binding): Likewise.
1741
17422003-02-24  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1743
1744	PR c++/9602
1745	* typeck2.c (abstract_virtuals_error): Don't check when we
1746	are processing a template.
1747
17482003-02-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1749
1750	PR c++/7982
1751	* decl.c (warn_about_implicit_typename_lookup): Handle TYPEOF_TYPE.
1752
17532003-02-21  Mark Mitchell  <mark@codesourcery.com>
1754
1755	PR c++/9749
1756	* decl.c (grokdeclarator): Do not allow parameters with variably
1757	modified types.
1758
1759	PR c++/9727
1760	* decl2.c (push_scope): Don't pushclass for non-class types.
1761	(pop_scope): Don't popclass either.
1762
1763	PR c++/8906
1764	* decl.c (lookup_name_real): Use IMPLICIT_TYPENAME_P.
1765	* decl2.c (handle_class_head): Check it.
1766
1767	PR c++/8724
1768	* call.c (build_method_call): Make sure that the type destroyed in
1769	an explicit destructor call is complete.
1770
17712003-02-20  Mark Mitchell  <mark@codesourcery.com>
1772
1773	PR c++/9729
1774	* mangle.c (mangle_conv_op_name_for_type): Issue an error message
1775	when the G++ 3.2 ABI prevents correct compilation.
1776
17772003-02-18  Mark Mitchell  <mark@codesourcery.com>
1778
1779	PR c++/9704
1780	* class.c (layout_class_type): In the 3.2 ABI, take into account
1781	trailing bit fields when computing CLASSTYPE_SIZE_UNIT.
1782
17832003-02-18  Matt Austern <austern@apple.com>
1784
1785	* cp/cp-lang.c: Change lang hooks so that final_write_globals does
1786	nothing for C++.
1787	* cp/decl.c (wrapup_globals_for_namespace): Remove special
1788	handling of global namespace.
1789
17902003-02-18  Jason Merrill  <jason@redhat.com>
1791
1792	PR c++/9623
1793	* decl.c (reshape_init): Don't mess with initializer labels.
1794
17952003-02-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1796
1797	PR c++/9459
1798	* error.c (dump_type_prefix): Handle TYPEOF_TYPE.
1799	(dump_type_suffix): Likewise.
1800
18012003-02-17  Michael Elizabeth Chastain <mec@shout.net>
1802
1803	PR debug/9717
1804	* class.c (build_base_field): Mark fields for base classes with
1805	DECL_IGNORED_P.
1806
18072003-02-13  Andrew Pinski <pinskia@physics.uc.edu>
1808
1809	* decl.c: (define_label): Fix warning for return 0 instead of NULL.
1810
18112003-02-13  Gabriel Dos Reis <gdr@integrable-solutions.net>
1812
1813	* Make-lang.in (cp/decl2.o): Add dependency on timevar.h
1814	* decl2.c: Include "timevar.h".
1815	(namespace_ancestor): Time name lookup.
1816	(add_using_namespace): Likewise.
1817	(lookup_using_namespace): Likewise.
1818	(qualified_lookup_using_namespace): Likewise.
1819	(decl_namespace): Likewise.
1820	(lookup_arg_dependent): Likewise.
1821	* lex.c (do_identifier): Likewise.
1822	(do_scoped_id): Likewise.
1823	* pt.c (lookup_template_class): Likewise.
1824
18252003-02-12  Gabriel Dos Reis <gdr@integrable-solutions.net>
1826
1827	* decl.c (define_label): Don't forget to pop TV_NAME_LOOKUP.
1828
18292003-02-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1830
1831	* decl.c: Include "timevar.h".
1832	(poplevel): Time name lookup.
1833	(find_binding): Likewise.
1834	(push_namespace): Likewise.
1835	(pop_nested_namespace): Likewise.
1836	(store_bindings): Likewise.
1837	(maybe_push_to_top_level): Likewise.
1838	(pop_from_top_level): Likewise.
1839	(push_local_name): Likewise.
1840	(pushtag): Likewise.
1841	(pushdecl): Likewise.
1842	(pushdecl_with_scope): Likewise.
1843	(pushdecl_namespace_level): Likewise.
1844	(pushdecl_top_level): Likewise.
1845	(pushdecl_class_level): Likewise.
1846	(push_class_level_binding): Likewise.
1847	(push_using_decl): Likewise.
1848	(push_using_directive): Likewise.
1849	(push_overloaded_decl): Likewise.
1850	(lookup_label): Likewise.
1851	(define_label): Likewise.
1852	(lookup_tag): Likewise.
1853	(lookup_tag_reverse): Likewise.
1854	(lookup_namespace_name): Likewise.
1855	(select_decl): Likewise.
1856	(unqualified_namespace_lookup): Likewise.
1857	(lookup_name_real): Likewise.
1858	(lookup_name_current_level): Likewise.
1859	(lookup_type_current_level): Likewise.
1860	(maybe_inject_for_scope_var): Likewise.
1861	(xref_tag): Likewise.
1862
1863	* Make-lang.in (cp/decl.o): Add dependency on timevar.h
1864
18652003-02-03  Mark Mitchell  <mark@codesourcery.com>
1866
1867	PR c++/7129
1868	* operators.def: Add <?= and >?=.
1869
18702003-01-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1871
1872	PR c++/8849
1873	* error.c (dump_expr): Handle BASELINK.
1874	* pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL.
1875
18762003-01-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1877
1878	PR c++/9453
1879	* friend.c (is_friend): Always accept when SUPPLICANT is still
1880	a TEMPLATE_DECL.
1881	* pt.c (push_access_scope_real): Call push_to_top_level for
1882	function in namespace scope.
1883	(push_access_scope): Remove ARGS argument, all caller adjusted.
1884	(pop_access_scope): Call pop_from_top_level for function in
1885	namespace scope.
1886	(regenerate_decl_from_template): Use push_access_scope_real.
1887
18882003-01-29  Nathan Sidwell  <nathan@codesourcery.com>
1889
1890	PR c++/9437
1891	* pt.c (unify): Don't unify '*T' with 'U C::*'.
1892
18932003-01-27  Jeffrey D. Oldham  <oldham@codesourcery.com>
1894
1895	PR c++/47
1896	* cp-tree.h (lookup_nested_field): Add declaration.
1897	* decl.c (lookup_name_real): Call lookup_nested_field.
1898	* search.c (lookup_nested_field): Add function.
1899
19002003-01-26  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
1901
1902	* Make-lang.in (c++.install-common, c++.install-man)
1903	(c++.uninstall): Prepend $(DESTDIR) to destination paths in
1904	all (un)installation commands.
1905	(c++.install-common): Rewrite $(LN) commands to support
1906	DESTDIR with "ln" as well as with "ln -s".
1907
19082003-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1909
1910	* decl2.c (check_classfn): Fix uninitialized warning.
1911
19122003-01-22  Mark Mitchell  <mark@codesourcery.com>
1913
1914	PR c++/9328
1915	* error.c (dump_decl): For an OVERLOAD, just print the name of the
1916	function; it doesn't make sense to try to print its type.
1917	* semantics.c (finish_typeof): Issue errors about invalid uses.
1918
19192003-01-22  Josef Zlomek  <zlomekj@suse.cz>
1920
1921	PR/9386, PR/8801
1922	2002-12-27  Mark Mitchell  <mark@codesourcery.com>
1923	* typeck.c (build_class_member_access_expr): Fix anonymous union
1924	handling.
1925
19262003-01-17  Jason Merrill  <jason@redhat.com>
1927
1928	PR c++/9167, c++/9358
1929	* decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.
1930
19312003-01-17  Jason Merrill  <jason@redhat.com>
1932
1933	PR c++/9342
1934	* call.c (build_conditional_expr): Always do lvalue-rvalue
1935	conversion.
1936
19372003-01-16  Jason Merrill  <jason@redhat.com>
1938
1939	PR c++/8564
1940	* init.c (build_vec_init): Re-add maxindex parm.
1941	(perform_member_init, build_aggr_init): Pass it.
1942	(build_new_1): Pass it. Use an incomplete array type for full_type.
1943	* typeck.c (build_modify_expr): Pass it.
1944	* cp-tree.h: Adjust.
1945
19462003-01-13  Jason Merrill  <jason@redhat.com>
1947
1948	PR c++/8748
1949	* class.c (build_base_path): Take the address before calling save_expr.
1950
1951	* call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if
1952	all the ambiguous conversions are bad.
1953
1954	* class.c (maybe_warn_about_overly_private_class): Don't stop
1955	searching when we find a nonprivate method.
1956
19572003-01-09  Jakub Jelinek  <jakub@redhat.com>
1958
1959	* decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs.
1960
19612003-01-09  Jakub Jelinek  <jakub@redhat.com>
1962
1963	* decl.c (start_decl): Don't set DECL_COMMON for __thread variables.
1964
19652003-01-07  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1966
1967	PR c++/9030
1968	* decl.c (make_typename_type): Check access only when tf_error.
1969	(make_unbound_class_template): Likewise.
1970	* pt.c (saved_access_scope): New variable.
1971	(push_access_scope_real): New function.
1972	(push_access_scope): Likewise.
1973	(pop_access_scope): Likewise.
1974	(tsubst_default_argument): Use them.
1975	(instantiate_template): Likewise.
1976	(regenerate_decl_from_template): Likewise.
1977	(instantiate_decl): Likewise.
1978	(get_mostly_instantiated_function_type): Likewise.
1979
19802003-01-06  Mark Mitchell  <mark@codesourcery.com>
1981
1982	PR c++/9165
1983	* decl2.c (build_cleanup): Mark the object as used.
1984
19852003-01-03  Nathan Sidwell  <nathan@codesourcery.com>
1986
1987	PR c++/45, c++/3784
1988	* tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be
1989	the same too.
1990
19912002-12-30  Nathan Sidwell  <nathan@codesourcery.com>
1992
1993	PR c++/9054
1994	* class.c (layout_class_type): Set DECL_CONTEXT of type for base.
1995	* dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types.
1996
19972002-12-26  Nathan Sidwell  <nathan@codesourcery.com>
1998
1999	PR c++/4803
2000	* decl2.c (mark_used): Defer inline functions.
2001	(finish_file): Merge deferred_fns loops. Check all used
2002	inline functions have a definition.
2003	* method.c (make_thunk): Thunks are not inline.
2004
2005	PR c++/5116, c++/764
2006	* call.c (build_new_op): Make sure template class operands are
2007	instantiated.
2008
20092002-12-24  Nathan Sidwell  <nathan@codesourcery.com>
2010
2011	PR C++/7964
2012	* cp-tree.h (resolve_scoped_fn_name): Prototype.
2013	* call.c (resolve_scoped_fn_name): New function. Deal with
2014	more template expansion. Broken out of ...
2015	* parse.y (parse_finish_call_expr): ... here. Call it.
2016	* decl2.c (build_expr_from_tree, CALL_EXPR): Use
2017	resolve_scoped_fn_name and build_call_from_tree.
2018
2019	PR c++/9053
2020	* decl.c (duplicate_decls): Templates may be disambiguated by
2021	return type.
2022
2023	PR c++/8702
2024	* decl2.c (check_classfn): Use lookup_fnfield_1. List all
2025	conversion operators on failure.
2026
20272002-12-22  Nathan Sidwell  <nathan@codesourcery.com>
2028
2029	PR c++/8572
2030	* cp-tree.h (grokoptypename): Add SCOPE parameter.
2031	* decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type
2032	if in a template scope.
2033	* parse.y (unoperator): Return the scope.
2034	(operator_name): Adjust grokoptypename call.
2035
20362002-12-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2037
2038	* cp-tree.h (make_unbound_class_template): Use tsubst_flags_t.
2039	* decl.c (make_unbound_class_template): Adjust.  Check for tf_error.
2040	* pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error.
2041
20422002-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2043
2044	PR c++/8099
2045	* friend.c (make_friend_class): Allow partial specialization
2046	when declaration is not a template friend.
2047
20482002-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2049
2050	PR c++/3663
2051	* pt.c (lookup_template_class): Copy TREE_PRIVATE and
2052	TREE_PROTECTED to created decl nodes.
2053
20542002-12-18  Mark Mitchell  <mark@codesourcery.com>
2055
2056	* class.c (build_base_field): Do not set DECL_PACKED on the
2057	FIELD_DECL.
2058
20592002-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2060
2061	* parse.y (bad_parm): Add missing argument to error function call.
2062
20632002-12-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2064
2065	PR c++/8442
2066	* decl2.c (handle_class_head): Verify if the looked up name is a
2067	type or template.
2068	* pt.c (convert_template_argument): Fix type or template template
2069	parameter decision logic.
2070
20712002-12-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2072
2073	PR C++/8031
2074	* cvt.c (convert_to_pointer_force): Don't try comparing against
2075	erronous type.
2076
20772002-12-13  Geoffrey Keating  <geoffk@apple.com>
2078
2079	* cp-tree.h: Have the multiple-include guards around
2080	the entire file.
2081
20822002-12-10  Mark Mitchell  <mark@codesourcery.com>
2083
2084	PR c++/8372
2085	* pt.c (tsubst_copy): Handle destructor names more correctly.
2086
20872002-12-10  Matt Austern   <austern@apple.com>
2088
2089	* cp-tree.h: get rid of needs_virtual_reinit bit.
2090
20912002-12-09  Mark Mitchell  <mark@codesourcery.com>
2092
2093	* NEWS: Document removal of in-class initialization extension for
2094	static data members of non-arithmetic, non-enumeration type.
2095	* decl.c (check_static_variable_definition): Do not allow that
2096	extension.
2097	* decl2.c (grokfield): Do not call digest_init when processing
2098	templates.
2099
21002002-12-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2101
2102	* error.c (dump_expr): Fix format specifier warning.
2103
21042002-12-04  Geoffrey Keating  <geoffk@apple.com>
2105
2106	* class.c (finish_struct_1): Correct comment.
2107	* cp-tree.c (DECL_SORTED_FIELDS): Likewise.
2108
21092002-12-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2110
2111	PR C++/8799
2112	* error.c (dump_expr): Don't ever try to dump a non-existent
2113	expression.
2114
21152002-12-03  Jason Merrill  <jason@redhat.com>
2116
2117	PR c++/8674
2118	* call.c (build_over_call): Check specifically for TARGET_EXPR
2119	when eliding.
2120
2121	PR c++/8461, c++/8625
2122	* call.c (convert_for_arg_passing): Don't mess with error_mark_node.
2123	(cp_convert_parm_for_inlining): Remove.
2124	* cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
2125	Remove.
2126	* cp-tree.h (ADDR_IS_INVISIREF): Remove.
2127	* except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code.
2128
2129	* call.c (build_user_type_conversion_1): Don't set ICS_BAD_FLAG on
2130	an ambiguous conversion.
2131
21322002-12-03  Mark Mitchell  <mark@codesourcery.com>
2133
2134	PR c++/8688
2135	* decl.c (reshape_init): Handle erroneous initializers.
2136
21372002-12-02  Mark Mitchell  <mark@codesourcery.com>
2138
2139	PR c++/8720
2140	* spew.c (remove_last_token): Make sure that last_chunk is set
2141	correctly.
2142
2143	PR c++/8615
2144	* error.c (dump_expr): Handle character constants with
2145	TREE_OVERFLOW set.
2146
21472002-12-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2148
2149	DR 180
2150	* decl.c (grokdeclarator): Require class-key for all friend class.
2151	Output the correct type and context in the error message.
2152
21532002-12-01  Mark Mitchell  <mark@codesourcery.com>
2154
2155	PR c++/5919
2156	* pt.c (unify): Use variably_modified_type_p to test validity of
2157	template argument types.
2158
2159	PR c++/8727
2160	* cp-tree.h (lang_type_class): Add typeinfo_var.
2161	(CLASSTYPE_TYPEINFO_VAR): New macro.
2162	* rtti.c (get_tinfo_decl): Use it.
2163
2164	PR c++/8663
2165	* init.c (expand_member_init): Always get the main variant of a
2166	base class.
2167
21682002-12-01  Mark Mitchell  <mark@codesourcery.com>
2169
2170	PR c++/8332
2171	PR c++/8493
2172	* decl.c (cxx_init_decl_processing): Use size_type_node, not
2173	c_size_type_node.
2174	* decl2.c (coerce_new_type): Likewise.
2175	* except.c (do_allocate_exception): Likewise.
2176
21772002-11-30  Mark Mitchell  <mark@codesourcery.com>
2178
2179	PR c++/8227
2180	* decl.c (layout_var_decl): Deal gracefully with erroneous types.
2181	(check_initializer): Validate the type of the initialized
2182	variable, even if the initializer is absent.
2183	* typeck.c (cp_type_quals): Deal gracefully with erroneous types.
2184
2185	PR c++/8214
2186	* typeck.c (convert_for_assignment): Do not use
2187	decl_constant_value on the operand.
2188
2189	PR c++/8511
2190	* pt.c (instantiate_decl): Handle template friends defined outside
2191	of the class correctly.
2192
21932002-11-29  Joe Buck <jbuck@synopsys.com>
2194
2195	* parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for
2196	anonymous structs.
2197
21982002-11-29  Mark Mitchell  <mark@codesourcery.com>
2199
2200	* class.c (walk_subobject_offsets): Recur on binfos as well as on
2201	types.
2202	(layout_nonempty_base_or_field): Pass it a binfo when processing a
2203	base class.
2204	(layout_empty_base): Likewise.
2205	(build_base_field): Likewise.
2206
22072002-11-27  Mark Mitchell  <mark@codesourcery.com>
2208
2209	* class.c (build_base_field): Make sure we get the canonical base
2210	when descending through primary bases.
2211
22122002-11-26  Geoffrey Keating  <geoffk@apple.com>
2213
2214	* decl.c (check_initializer): Don't error on initialisation of
2215	a scalar with a brace-enclosed expression.
2216
22172002-11-26  Nathan Sidwell  <nathan@codesourcery.com>
2218
2219	* cp-tree.h (DECL_LANG_FLAG_4): Document more uses.
2220	(template_parms_equal): Remove prototype.
2221	* typeck.c (buuld_indirect_ref): Reformat.
2222
22232002-11-25  Mark Mitchell  <mark@codesourcery.com>
2224
2225	* tree.c (cp_build_qualified_type_real): Correct handling of
2226	array types.
2227	* class.c (walk_subobject_offsets): Fix thinko.
2228	(build_base_field): Record offsets of empty bases in primary
2229	virtual bases.
2230	(layout_class_type): Record offsets of empty bases in fields.
2231
2232	* search.c (is_subobject_of_p_1): Fix thinko.
2233	(lookup_field_queue_p): Likewise.
2234
22352002-11-24  Mark Mitchell  <mark@codesourcery.com>
2236
2237	* class.c (layout_class_type): Reuse tail padding when laying out
2238	virtual bases.
2239
22402002-11-22  Mark Mitchell  <mark@codesourcery.com>
2241
2242	* rtti.c (qualifier_flags): Fix thinko.
2243
22442002-11-21  Glen Nakamura  <glen@imodulo.com>
2245
2246	PR c++/8342
2247	* typeck.c (get_member_function_from_ptrfunc): Make sure that a
2248	SAVE_EXPR for instance_ptr doesn't get evaluated first inside one
2249	of the branches of a COND_EXPR.
2250
22512002-11-19  Mark Mitchell  <mark@codesourcery.com>
2252
2253	* pt.c (for_each_template_parm): Free allocated memory.
2254	* search.c (is_subobject_of_p_1): New function.
2255	(is_subobject_of_p): Avoid walking virtual bases multiple times.
2256
22572002-11-19  Jason Thorpe  <thorpej@wasabisystems.com>
2258
2259	* g++spec.c (lang_specific_spec_functions): New.
2260
22612002-11-15  Kazu Hirata  <kazu@cs.umass.edu>
2262
2263	* ChangeLog: Follow spelling conventions.
2264	* class.c: Likewise.
2265	* decl2.c: Likewise.
2266
22672002-11-14  Zack Weinberg  <zack@codesourcery.com>
2268
2269	* search.c (dfs_push_decls): Do not try to reorder elements
2270	3..n of method_vec if method_vec has only two elements.
2271	Reverse order of two tests to avoid accessing unallocated
2272	memory.
2273
22742002-11-14  Mark Mitchell  <mark@codesourcery.com>
2275
2276	* class.c (dfs_find_final_overrider): Adjust so that the most
2277	derived object is a binfo, rather than a class type.
2278	(find_final_overrider): Likewise.
2279	(add_vcall_offset_vtbl_entries_1): Simplify accordingly.
2280	(add_vcall_offset): Likewise.
2281
22822002-11-09  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2283
2284	PR c++/8389
2285	* pt.c (instantiate_template): Push class scope for member
2286	functions.
2287	(get_mostly_instantiated_function_type): Likewise.  Don't call
2288	tsubst on context.  Remove CONTEXTP and TPARMSP parameters.
2289	* cp-tree.h (get_mostly_instantiated_function_type): Adjust.
2290	* mangle.c (write_encoding, write_unqualified_name): Adjust.
2291
22922002-11-07  Mark Mitchell  <mark@codesourcery.com>
2293
2294	* class.c (add_vcall_offset_vtbl_entries_1): Correct ordering of
2295	vcall offfsets.  Split out ...
2296	(add_vcall_offset): ... new function.
2297
2298	PR c++/8338
2299	* pt.c (for_each_template_parm): Add htab parameter.
2300	(process_partial_specialization): Adjust call.
2301	(push_template_decl_real): Likewise.
2302	(pair_fn_data): Add visited.
2303	(for_each_template_parm_r): Avoid walking duplicates more than
2304	once.
2305	(uses_template_parms): Adjust call to for_each_template_parm.
2306
23072002-11-07  Mark Mitchell  <mark@codesourcery.com>
2308
2309	* class.c (add_implicitly_declared_members): Put implicitly
2310	declared functions at the end of TYPE_METHODs when -fabi-version
2311	is at least 2.
2312
23132002-11-05  Geoffrey Keating  <geoffk@apple.com>
2314
2315	* decl2.c (finish_file): Correct spelling.
2316
23172002-11-03  Mark Mitchell  <mark@codesourcery.com>
2318
2319	* call.c (build_special_member_call): Do not try to lookup VTTs by
2320	name.
2321	* class.c (vtbl_init_data): Add generate_vcall_entries.
2322	(get_vtable_decl): Do not look up virtual tables by name.
2323	(copy_virtuals): Do not use BV_USE_VCALL_INDEX_P.
2324	(set_primary_base): Do not set CLASSTYPE_RTTI.
2325	(determine_primary_base): Likewise.
2326	(get_matching_virtual): Remove.
2327	(get_vcall_index): New function.
2328	(update_vtable_entry_for_fn): Do not try to use virtual thunks
2329	when they are not required.  Assign vcall indices at this point.
2330	(finish_struct_1): Do not set CLASSTYPE_NEEDS_VIRTUAL_REINIT.
2331	Do update dynamic_classes.
2332	(build_vtt): Do not add VTTs to the symbol table.
2333	(build_ctor_vtbl_group): Likewise.
2334	(build_vtbl_initializer): Simplify handling of vcall indices.
2335	(build_vcall_offset_vtbl_entries): Pretend to build vcall offsets
2336	for the most derived class.
2337	(add_vcall_offset_vtbl_entries_1): But do not actually add them to
2338	the vtable.
2339	* cp-tree.h (dynamic_classes): New macro.
2340	(lang_type_class): Remove rtti.  Add vtables.  Add vcall_indices.
2341	(CLASSTYPE_RTTI): Remove.
2342	(CLASSTYPE_NEEDS_VIRTUAL_REINIT): Remove.
2343	(CLASSTYPE_VCALL_INDICES): New macro.
2344	(CLASSTYPE_VTABLES): Likewise.
2345	(BV_USE_VCALL_INDEX_P): Remove.
2346	(build_vtable_path): Remove.
2347	* decl2.c (finish_vtable_vardecl): Remove.
2348	(key_method): Remove #if 0'd code.
2349	(finish_vtable_vardecl): Rename to ...
2350	(maybe_emit_vtables): ... this.
2351	(finish_file): Use it.
2352	* search.c (look_for_overrides_here): Update comment.
2353
23542002-11-01  Zack Weinberg  <zack@codesourcery.com>
2355
2356	PR c/7353 redux
2357	* decl2.c (grokfield): Reject TYPE_DECLs with initializers.
2358
23592002-10-30  Jason Merrill  <jason@redhat.com>
2360
2361	PR c++/8186
2362	* cp-tree.h (ADDR_IS_INVISIREF): New macro.
2363	* call.c (convert_for_arg_passing): Set it.
2364	* except.c (stabilize_throw_expr): Recurse for such an arg.
2365
23662002-10-31  Mark Mitchell  <mark@codesourcery.com>
2367
2368	* cp-tree.h (lang_decl_flags): Remove init_priority.
2369	(lang_decl): Add delta.
2370	(GLOBAL_INIT_PRIORITY): Remove.
2371	(THUNK_DELTA): Revise definition.
2372	* decl2.c (start_objects): Don't set GLOBAL_INIT_PRIORITY.
2373	* dump.c (cp_dump_tree): Don't dump it.
2374
23752002-10-30  Mark Mitchell  <mark@codesourcery.com>
2376
2377	PR c++/8160
2378	* typeck2.c (process_init_constructor): Call complete_array_type.
2379
2380	PR c++/8149
2381	* decl.c (make_typename_type): Issue errors about invalid results.
2382
23832002-10-30  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2384
2385	Core issue 287, PR c++/7639
2386	* cp-tree.h (lang_type_class): Add decl_list field.
2387	(CLASSTYPE_DECL_LIST): New macro.
2388	(maybe_add_class_template_decl_list): Add declaration.
2389	* class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST.
2390	(unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST.
2391	(maybe_add_class_template_decl_list): New function.
2392	(add_implicitly_declared_members): Use it.
2393	* decl.c (maybe_process_template_type_declaration): Likewise.
2394	(pushtag): Likewise.
2395	* friend.c (add_friend): Likewise.
2396	(make_friend_class): Likewise.
2397	* semantics.c (finish_member_declaration): Likewise.
2398	(begin_class_definition): Initialize CLASSTYPE_DECL_LIST.
2399	* pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST
2400	to process members and friends in the order of declaration.
2401
24022002-10-29  Mark Mitchell  <mark@codesourcery.com>
2403
2404	PR c++/8287
2405	* decl.c (finish_destructor_body): Create the label to jump to
2406	when returning from a destructor here.
2407	(finish_function_body): Rather than here.
2408
24092002-10-25  Zack Weinberg  <zack@codesourcery.com>
2410
2411	PR c++/7266
2412	* decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a
2413	SCOPE_REF is not null before dereferencing it.
2414
24152002-10-25  Mark Mitchell  <mark@codesourcery.com>
2416
2417	* call.c (build_over_call): Use DECL_CONTEXT, not
2418	DECL_VIRTUAL_CONTEXT.
2419	* class.c (modify_vtable_entry): Don't mess with
2420	DECL_VIRTUAL_CONTEXT.
2421	(set_vindex): Remove.
2422	(set_primary_base): Remove vfuns_p parameter.
2423	(determine_primary_base): Likewise.
2424	(modify_all_vtables): Likewise.
2425	(layout_class_type): Likewise.  Adjust calls to other functions
2426	accordingly.
2427	(finish_struct_1): Adjust calls to modified functions.  Set
2428	DECL_VINDEX here.
2429	* cp-tree.h (lang_type_class): Remove vsize.
2430	(CLASSTYPE_VSIZE): Remove.
2431	(lang_decl): Remove thunks.
2432	(DECL_THUNKS): Adjust.
2433	(DECL_VIRTUAL_CONTEXT): Remove.
2434	(duplicate_decls): Don't copy it.
2435	* pt.c (build_template_decl): Don't set it.
2436	(tsubst_decl): Likewise.
2437	* typeck.c (expand_ptrmemfunc_cst): Don't use it.
2438
2439	* class.c (build_vtbl_initializer): Don't use build_vtable_entry.
2440	(build_vtable_entry): Remove.
2441	* cp-tree.h (BINFO_VIRTUALS): Expand documentation.
2442	(lang_decl): Add thunks.
2443	(DECL_THUNKS): New macro.
2444	* decl.c (duplicate_decls): Copy it.
2445	* method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS.
2446	* semantics.c (emit_associated_thunks): Simplify.
2447
24482002-10-24  David Edelsohn  <edelsohn@gnu.org>
2449
2450	PR c++/7228
2451	* cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that
2452	lang_type structure exists before accessing field.
2453	(SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro.
2454	(CLASSTYPE_REF_FIELDS_NEED_INIT): Similar.
2455	(SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro.
2456	* class.c (check_field_decls): Use new macros.
2457	* typeck2.c (process_init_constructor): Remove redundant check for
2458	existence of lang_type structure.
2459
24602002-10-24  Mark Mitchell  <mark@codesourcery.com>
2461
2462	* class.c (end_of_base): New method.
2463	(end_of_class): Use it.  Check indirect virtual bases.
2464
2465	* class.c (check_field_decls): Fix typo.
2466
24672002-10-23  Mark Mitchell  <mark@codesourcery.com>
2468
2469	PR c++/8067
2470	* decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and
2471	related variables.
2472
2473	PR c++/7679
2474	* spew.c (next_token): Do not return an endless stream of
2475	END_OF_SAVED_INPUT tokens.
2476	(snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of
2477	the cached token stream.
2478	(snarf_defarg): Likewise.
2479
24802002-10-23  Zack Weinberg  <zack@codesourcery.com>
2481
2482	* cp-lang.c (cp_var_mod_type_p): New: C++ hook for
2483	variably_modified_type_p.
2484	* cp-tree.h: Remove prototype of variably_modified_type_p.
2485	* tree.c (variably_modified_type_p): Remove; now implemented
2486	in language-independent code.
2487
24882002-10-22  Mark Mitchell  <mark@codesourcery.com>
2489
2490	PR c++/6579
2491	* spew.c (snarf_parenthesized_expression): New function.
2492	(snarf_block): Use it.
2493
24942002-10-22  Richard Henderson  <rth@redhat.com>
2495
2496	* method.c (use_thunk): Always compute vcall_value; assert that
2497	it is not zero.  Use can_output_mi_thunk; use output_mi_thunk
2498	for vcall thunks as well.
2499
25002002-10-21  Mark Mitchell  <mark@codesourcery.com>
2501
2502	* class.c (empty_base_at_nonzero_offset_p): New function.
2503	(layout_nonempty_base_or_field): Do not check for conflicts when
2504	laying out a virtual base using the GCC 3.2 ABI.
2505	(build_base_field): Correct checking for presence of empty classes
2506	at nonzero offsets when clearing CLASSTYPE_NEARLY_EMPTY_P.
2507
2508	* class.c (include_empty_classes): Use normalize_rli.
2509	(layout_class_type): Likewise.
2510
2511	* decl.c (reshape_init): Tweak handling of character arrays.
2512
2513	PR c++/8218
2514	* cp-tree.h (lang_type_class): Add contains_empty_class_p.
2515	(CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro.
2516	* class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P.
2517	(check_field_decls): Likewise.
2518	(layout_class_type): Likewise.
2519	(finish_struct_1): Initialize it.
2520	(walk_subobject_offsets): Use it to prune searches.
2521
25222002-10-20  Mark Mitchell  <mark@codesourcery.com>
2523
2524	* method.c (use_thunk): Compute the vcall index as a HOST_WIDE_INT.
2525	* optimize.c (optimize_function): Replace ASM_OUTPUT_MI_THUNK with
2526	TARGET_ASM_OUTPUT_MI_THUNK in comments.
2527
25282002-10-18  Zack Weinberg  <zack@codesourcery.com>
2529
2530	* decl.c (start_decl): Point users of the old initialized-
2531	typedef extension at __typeof__.
2532
25332002-10-18  Mark Mitchell  <mark@codesourcery.com>
2534
2535	* Make-lang.in (method.o): Depend on TARGET_H.
2536	* method.c (target.h): Include it.
2537	(use_thunk): Use target hooks.  Use vcall thunks, if available.
2538
25392002-10-18  Mark Mitchell  <mark@codesourcery.com>
2540
2541	* class.c (base_derived_from): Make sure return value is a bool.
2542
25432002-10-18  Mark Mitchell  <mark@codesourcery.com>
2544
2545	* class.c (find_final_overrider_data_s): Remove overriding_fn and
2546	overriding_base.
2547	(dfs_base_derived_from): New function.
2548	(base_derived_from): Likewise.
2549	(dfs_find_final_overrider): Use base_derived_from.
2550	(find_final_overrider): Adjust.
2551
25522002-10-18  Jason Merrill  <jason@redhat.com>
2553
2554	PR c++/8080
2555	* semantics.c (finish_for_cond, finish_while_cond): Don't mess
2556	with condition decls in a template.
2557
25582002-10-17  Nathan Sidwell  <nathan@codesourcery.com>
2559
2560	* class.c (add_method): Compare template parms too.
2561
25622002-10-17  Mark Mitchell  <mark@codesourcery.com>
2563
2564	PR c++/7584
2565	* class.c (handle_using_decl): Allow the declaration used to be
2566	from an ambiguous base.
2567
2568	* pt.c (convert_template_argument): Revert this change:
2569		2002-10-16  Mark Mitchell  <mark@codesourcery.com>
2570		* pt.c (convert_template_argument): Do not fold non-type
2571		template rguments when inside a template.
2572
2573	* init.c (expand_default_init): Handle brace-enclosed initializers
2574	correctly.
2575
25762002-10-16  Mark Mitchell  <mark@codesourcery.com>
2577
2578	* mangle.c (write_expression): Correct handling of enumeration
2579	constants.
2580	(write_template_arg): Likewise.
2581	* pt.c (convert_template_argument): Do not fold non-type template
2582	arguments when inside a template.
2583
2584	PR c++/7478
2585	* cvt.c (convert_to_reference): Allow references as the incoming
2586	type.
2587
25882002-10-16  Mark Mitchell  <mark@codesourcery.com>
2589
2590	PR c++/7524
2591	* method.c (do_build_assign_ref): Use cp_build_qualified_type, not
2592	build_qualified_type.
2593
25942002-10-15  Richard Henderson  <rth@redhat.com>
2595
2596	* error.c (dump_expr): Use real_to_decimal directly, and with
2597	the new arguments.
2598
25992002-10-15  Mark Mitchell  <mark@codesourcery.com>
2600
2601	* decl.c (reshape_init): Fix typo.
2602
2603	* cp-tree.h (operator_name_info_t): Add arity.
2604	* lex.c (init_operators): Initialize it.
2605	* mangle.c (write_conversion_operator_name): New function.
2606	(write_unqualified_name): Use it.
2607	(write_template_args): Accept template arguments as a TREE_LIST.
2608	(write_expression): Adjust handling of qualified names to match
2609	specification.
2610
26112002-10-15  Jason Merrill  <jason@redhat.com>
2612
2613	* call.c (call_builtin_trap): New fn.
2614	(convert_arg_to_ellipsis): Use it.  Downgrade error to warning.
2615	(build_call): Don't set current_function_returns_abnormally outside
2616	a function.
2617
26182002-10-14  Mark Mitchell  <mark@codesourcery.com>
2619
2620	* class.c (check_field_decls): Remove empty_p parameter.  Instead,
2621	clear CLASSTYPE_EMPTY_P.
2622	(build_base_field): Likewise.
2623	(build_base_fields): Likewise.
2624	(check_bases_and_members): Likewise.
2625	(create_vtbl_ptr): Likewise.
2626	(layout_class_type): Likewise.  Ensure that empty classes have
2627	size zero when used as base classes in the 3.2 ABI.
2628	(finish_struct_1): Initialize CLASSTYPE_EMPTY_P and
2629	CLASSTYPE_NEARLY_EMPTY_P.  Adjust calls to avoid passing empty_p
2630	parameter.
2631	(is_empty_class): Correct definition when using post-3.2 ABI.
2632	* cp-tree.h (lang_type_class): Add empty_p.
2633	(CLASSTYPE_EMPTY_P): New macro.
2634
26352002-10-12  Nathan Sidwell  <nathan@codesourcery.com>
2636
2637	* init.c (build_delete): Do not apply save_expr for arrays.
2638	(build_vec_delete): Likewise.
2639
26402002-10-14  Mark Mitchell  <mark@codesourcery.com>
2641
2642	* decl.c (layout_var_decl): Call layout_decl even for variables
2643	whose type is an array with unspecified bounds.
2644
2645	PR c++/7176
2646	* lex.c (do_identifier): Add another option for the parsing
2647	parameter.
2648	* parse.y (do_id): Use it.
2649
26502002-10-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2651
2652	PRs C++/6803, C++/7721 and C++/7803
2653	* decl.c (grokdeclarator): Gracefully handle template-name as
2654	decl-specifier.
2655
26562002-10-11  Jason Molenda  <jmolenda@apple.com>
2657
2658	* init.c (build_field_list): Provide uses_unions_p with a default
2659	value.
2660
26612002-10-11  Mark Mitchell  <mark@codesourcery.com>
2662
2663	PR c++/5661
2664	* cp-tree.h (variably_modified_type_p): New function.
2665	(grokdeclarator) Tighten check for variably modified types as
2666	fields.
2667	* pt.c (convert_template_argument): Do not allow variably modified
2668	types as template arguments.
2669	* tree.c (variably_modified_type_p): New function.
2670
2671	* NEWS: Document removal of "new X = ..." extension.
2672	* class.c (initialize_array): Set TREE_HAS_CONSTRUCTOR on
2673	brace-enclosed initializers.
2674	* cp-tree.h (CP_AGGREGATE_TYPE_P): New macro.
2675	(initialize_local_var): Remove declaration.
2676	(expand_static_init): Likewise.
2677	* decl.c (next_initializable_field): New function.
2678	(reshape_init): Likewise.
2679	(check_initializer): Use them.  Build dynamic initializer for
2680	aggregates here too.
2681	(initialize_local_var): Simplify, and incorporate cleanup
2682	insertion code as well.
2683	(destroy_local_var): Remove.
2684	(cp_finish_decl): Tidy.
2685	(expand_static_init): Fold checks for whether or not a variable
2686	needs initialization into this function.  Simplify.
2687	* decl2.c (do_static_initialization): Simplify.
2688	* init.c (build_init): Do not set TREE_SIDE_EFFECTS when it will
2689	be done for us automatically.
2690	(expand_default_init): Handle brace-enclosed initializers
2691	correctly.
2692	(expand_aggr_init_1): Remove RTL-generation code.
2693	(build_vec_init): Remove "new X = ..." support.
2694	* parse.y (new_initializer): Likewise.
2695	* rtti.c (get_pseudo_ti_init): Set TREE_HAS_CONSTRUCTOR on
2696	brace-enclosed initializer.
2697	(create_pseudo_type_info): Likewise.
2698	* typeck2.c (store_init_value): Don't try to handle digest_init
2699	being called more than once.
2700	(digest_init): Tidy handling of brace-enclosed initializers.
2701
27022002-10-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2703
2704	* decl.c (typename_hash): Use htab_hash_pointer.
2705
27062002-10-10  Jim Wilson  <wilson@redhat.com>
2707
2708	* decl.c (duplicate_decls): Don't call decl_attributes.
2709
27102002-10-09  Zack Weinberg  <zack@codesourcery.com>
2711
2712	PR c/7353
2713	* decl.c (start_decl): Unconditionally issue error for
2714	'typedef foo = bar'.
2715	(cp_finish_decl): Remove special case for TYPE_DECL with initializer.
2716	(grokdeclarator): Remove redundant error for 'typedef foo = bar'.
2717
27182002-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2719
2720	* decl2.c (prune_vtable_vardecl): Delete unused function.
2721
27222002-10-03  Mark Mitchell  <mark@codesourcery.com>
2723
2724	PR c++/7754
2725	* decl2.c (finish_anon_union): Do not expand anonymous unions when
2726	procesing template functions.
2727	* pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
2728	type. Call layout_decl.
2729	(tsubst_expr, case DECL_STMT): Handle anonymous unions.
2730
27312002-10-07  Richard Henderson  <rth@redhat.com>
2732
2733	* decl2.c, pt.c: Revert c++/7754 fix.
2734
27352002-10-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2736
2737	PR c++/7804
2738	* error.c (dump_expr) [REAL_CST]: Output in decimal format.
2739
27402002-10-03  Mark Mitchell  <mark@codesourcery.com>
2741
2742 	PR c++/7931
2743	* pt.c (for_each_template_parm_r): Handle BASELINKs.
2744
2745	PR c++/7754
2746	* decl2.c (finish_anon_union): Do not expand anonymous unions when
2747	procesing template functions.
2748	* pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
2749	type. Call layout_decl.
2750	(tsubst_expr, case DECL_STMT): Handle anonymous unions.
2751
27522002-10-03  Mark Mitchell  <mark@codesourcery.com>
2753
2754	PR c++/8006
2755	* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template
2756	template parameters.
2757	(globals): Add entity and need_abi_warning.
2758	(decl_is_template_id): Use TYPE_TEMPLATE_INFO, not
2759	CLASSTYPE_TEMPLATE_INFO.
2760	(is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not
2761	TYPE_TI_TEMPLATE.
2762	(write_prefix): Handle typename types correctly.
2763	(write_template_prefix): Handle template template parameters
2764	correctly.
2765	(start_mangling): Add entity parameter.
2766	(finish_mangling): Warn about names whose mangling will change.
2767	(mangle_decl_string): Adjust.
2768	(mangle_type_string): Likewise.
2769	(mangle_special_for_type): Likewise.
2770	(mangle_ctor_vtbl_for_type): Likewise.
2771	(mangle_thunk): Likewise.
2772	(mangle_guard_variable): Likewise.
2773	(mangle_ref_init_variable): Likewise.
2774
27752002-10-02  Mark Mitchell  <mark@codesourcery.com>
2776
2777	PR c++/7188.
2778	* cp-tree.def (CTOR_INITIALIZER): Use one slot, not two.
2779	* cp-tree.h (emit_base_init): Rename to ....
2780	(emit_mem_initializers): ... this.
2781	(expand_member_init): Change prototype.
2782	* init.c (perform_member_init): Compute explicit, rather than
2783	requiring it as a parameter.
2784	(sort_member_init): Rename to ...
2785	(sort_mem_initializers): ... this.  Process bases and data members
2786	together.
2787	(sort_base_init): Remove.
2788	(emit_base_init): Rename to ...
2789	(emit_mem_initializers): ... this.
2790	(expand_aggr_vbase_init_1): Remove.
2791	(construct_virtual_bases): Rename to ...
2792	(construct_virtual_base): ... this.
2793	(expand_member_init): Rework handling of base initializers.
2794	* method.c (do_build_copy_constructor): Use
2795	finish_mem_initializers.
2796	* parse.y (member_init): Adjust calls to expand_member_init.
2797	* pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case.
2798	(tsubst_initializer_list): Use expand_member_init.
2799	* semantics.c (finish_mem_intiailizers): Simplify.
2800
28012002-10-02  Matt Austern  <austern@apple.com>
2802	* decl.c (walk_vtables_r): Fixed typo that caused result to
2803	never get a nonzero value.
2804
28052002-10-02  Roger Sayle  <roger@eyesopen.com>
2806
2807	PR optimization/6627
2808	* cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition
2809	from here, and move it to tree.h.
2810	* decl.c (cxx_init_decl_processing): If storing the vbit
2811	in function pointers, ensure that force_align_functions_log
2812	is atleast one.
2813
28142002-10-02  Matt Austern  <austern@apple.com>
2815
2816	* class.c (check_field_decls): Changed warning about const member
2817	variables so that it doesn't get issued for a class aggregate.
2818
28192002-10-01  Mark Mitchell  <mark@codesourcery.com>
2820
2821	* decl.c (cp_finish_decl): Make sure array types are laid out,
2822	even if the array bounds are unknown.
2823
28242002-10-01  Steve Ellcey  <sje@cup.hp.com>
2825
2826	* class.c (build_vtbl_initializer): Change build_c_cast
2827	to build1.
2828
28292002-10-01  Mark Mitchell  <mark@codesourcery.com>
2830
2831	* decl.c (cp_finish_decl): Make sure array types are laid out,
2832	even if the array bounds are unknown.
2833
2834	* decl.c (cp_finish_decl): Correct check for dynamic
2835	initialization of thread-local storage.
2836
28372002-09-30  Nathan Sidwell  <nathan@codesourcery.com>
2838
2839	* tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also
2840	overloaded.
2841
28422002-09-30  Steve Ellcey  <sje@cup.hp.com>
2843
2844	* class.c (build_vtbl_initializer): Add cast.
2845	(add_vcall_offset_vtbl_entries_1):
2846	Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset.
2847
28482002-09-30  Mark Mitchell  <mark@codesourcery.com>
2849
2850	* class.c (walk_subobject_offsets): Correct the calculation of
2851	offsets for virtual bases.  Correct the counting of array
2852	elements.
2853	(layout_nonempty_base_or_field): Simplify.  Correct the
2854	calculation of offsets to be propagated through the binfo
2855	hierarchy.
2856	(build_base_field): Avoid creating a FIELD_DECL for empty bases.
2857	Add the FIELD_DECL to TYPE_FIELDS.
2858	(build_base_fields): Adjust accordingly.
2859	(layout_virtual_bases): Use build_base_field.
2860	(end_of_class): Return a tree, not an integer.
2861	(warn_about_ambiguous_direct_bases): Rename to ...
2862	(warn_about_ambiguous_bases): ... this.
2863	(include_empty_classes): New function.
2864	(layout_class_type): Create an alternative version of the type to
2865	be used when as a base class type.  Do not call
2866	finish_record_layout until we are done laying out the class.
2867	* cp-tree.h (lang_type_class): Remove size, size_unit.  Add
2868	as_base.
2869	(CLASSTYPE_SIZE): Reimplement.
2870	(CLASSTYPE_SIZE_UNIT): Likewise.
2871	(CLASSTYPE_ALIGN): Likweise.
2872	(CLASSTYPE_USER_ALIGN): Likewise.
2873	(CLASSTYPE_AS_BASE): New macro.
2874	(DECL_INITIALIZED_P): Likewise.
2875	(extract_init): Remove prototype.
2876	(build_forced_zero_init): Rename to ...
2877	(build_zero_init): ... this.
2878	(force_store_init_value): Remove.
2879	* decl.c (obscure_complex_init): Remove.
2880	(duplicate_decls): Copy DECL_INITIALIZED_P.
2881	(check_initializer): Do not leave junk in DECL_INITIAL.
2882	(cp_finish_decl): Handle zero-initialization of entities with
2883	static storage duration.
2884	* expr.c (extract_init): Remove.
2885	* init.c (build_forced_zero_init): Remove.
2886	(build_zero_init): New function.
2887	(build_default_init): Use it.
2888	(build_field_list): Skip FIELD_DECLs for base subobjects.
2889	(push_base_cleanups): Likewise.
2890	* method.c (do_build_assign_ref): Likewise.
2891	(synthesize_exception_spec): Likewise.
2892	* pt.c (tsubst_decl): Clear DECL_INITIALIZED_P.
2893	(regenerate_decl_from_template): To not set DECL_INITIAL for a
2894	static data member whose initialization took place in its class.
2895	(instantiate_decl): Do not pass an initializer to cp_finish_decl
2896	in that situation.
2897	* search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects.
2898	(dfs_unuse_fields): Likewise.
2899	* tree.c (pod_type_p): Handle error_mark_node.
2900	(zero_init_p): Likewise.
2901	* typeck.c (lookup_anon_field): Skip FIELD_DECLs for base
2902	subobjects.
2903	* typeck2.c (store_init_value): Remove #if 0'd code.
2904	(force_store_init_value): Remove.
2905	(process_init_constructor): Use build_zero_init.
2906
29072002-09-29  Nathan Sidwell  <nathan@codesourcery.com>
2908
2909	PR c++/7788
2910	* rtti.c (unemitted_tinfo_decl_p): Check it has a field.
2911
29122002-09-29  Kazu Hirata  <kazu@cs.umass.edu>
2913
2914	* cp-tree.h: Fix comment typos.
2915	* decl.c: Likewise.
2916	* pt.c: Likewise.
2917
29182002-09-25  Mark Mitchell  <mark@codesourcery.com>
2919
2920	* cp/class.c (contains_empty_class_p): New method.
2921	(walk_subobject_offsets): Correct computation of field offset.
2922	(layout_empty_base): Correct placement of emtpy base classes.
2923	(layout_class_type): Warn about ABI changes.
2924
29252002-09-23  Mark Mitchell  <mark@codesourcery.com>
2926
2927	* cp/class.c (layout_virtual_bases): Do not round the size of the
2928	type to a multiple of the alignment before laying out virtual bases.
2929	(layout_class_type): Correct handling of bit-fields that are wider
2930	than their type inside unions.  Round the size of the type to a
2931	even number of bytes when computing the size without virtual
2932	bases.
2933	* cp/cp-tree.h (abi_version_at_least): New macro.
2934
29352002-09-21  Kazu Hirata  <kazu@cs.umass.edu>
2936
2937	* ChangeLog: Follow spelling conventions.
2938	* ChangeLog.2: Likewise.
2939	* call.c: Likewise.
2940	* class.c: Likewise.
2941	* cp-tree.h: Likewise.
2942	* cvt.c: Likewise.
2943	* decl.c: Likewise.
2944	* decl2.c: Likewise.
2945	* except.c: Likewise.
2946	* friend.c: Likewise.
2947	* g++spec.c: Likewise.
2948	* init.c: Likewise.
2949	* lex.c: Likewise.
2950	* mangle.c: Likewise.
2951	* method.c: Likewise.
2952	* operators.def: Likewise.
2953	* optimize.c: Likewise.
2954	* pt.c: Likewise.
2955	* rtti.c: Likewise.
2956	* search.c: Likewise.
2957	* semantics.c: Likewise.
2958	* spew.c: Likewise.
2959	* tree.c: Likewise.
2960	* typeck.c: Likewise.
2961
29622002-09-18  Devang Patel  <dpatel@apple.com>
2963
2964	* cp/cp-tree.h: New prototype for walk_vtabls().
2965	* cp/decl.c (walk_vtables_r): New function.
2966	(struct cp_binding_level): Add new members, namespaces,
2967	names_size and vtables.
2968	(add_decl_to_level): Add decl in namespaces or vtables
2969	chain, if conditions match.
2970	(walk_vtables): New function.
2971	(walk_namespaces_r): Travers separate namespace chain
2972	for namespace decls.
2973	(wrapup_globals_for_namespace): Use names_size instead
2974	of list_length().
2975	* cp/decl2.c (finish_file): Use walk_vtables() instead of
2976	walk_globals() to walk vtable decls.
2977
29782002-09-18  Nathan Sidwell  <nathan@codesourcery.com>
2979
2980	* decl.c (grokdeclarator): Use assert, not internal_error. Don't
2981	ICE with invalid pointers & references.
2982
29832002-09-17  Zack Weinberg  <zack@codesourcery.com>
2984
2985	* Make-lang.in: Remove all references to the demangler.
2986	* cxxfilt.c: Moved to binutils.
2987
29882002-09-16  Nathan Sidwell  <nathan@codesourcery.com>
2989
2990	PR c++/7718
2991	* pt.c (tsubst_decl): Remove assert.
2992
2993	Remove DR 295 implementation.
2994	* pt.c (check_cv_quals_for_unify): Disable function & method cases.
2995	* tree.c (cp_build_qualified_type_real): Likewise. Don't warn
2996	about ignoring volatile qualifiers.
2997
2998	* search.c (lookup_member): Correct documentation.
2999
30002002-09-16  Geoffrey Keating  <geoffk@apple.com>
3001
3002	* cp-tree.h (union lang_tree_node): Add chain_next option.
3003
30042002-09-16  Nathan Sidwell  <nathan@codesourcery.com>
3005
3006	* parse.y (parse_finish_call_expr): Check lookup_member result.
3007
3008	PR c++/7015
3009	* semantic.c (finish_asm_stmt): Fix operand/output_operands
3010	thinko.
3011	* typeck.c (c_expand_asm_operands): Protect from error_mark_node.
3012
30132002-09-15  Nathan Sidwell  <nathan@codesourcery.com>
3014
3015	PR c++/7919
3016	* call.c (build_over_call): Convert this pointer for fns found by
3017	using decls.
3018
30192002-09-15  Kazu Hirata  <kazu@cs.umass.edu>
3020
3021	* ChangeLog: Follow spelling conventions.
3022	* ChangeLog.1: Likewise.
3023
30242002-09-14  Nathan Sidwell  <nathan@codesourcery.com>
3025
3026	PR c++/7768
3027	* pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P.
3028
30292002-09-14  Kazu Hirata  <kazu@cs.umass.edu>
3030
3031	* error.c: Fix comment formatting.
3032	* except.c: Likewise.
3033	* expr.c: Likewise.
3034	* friend.c: Likewise.
3035	* g++spec.c: Likewise.
3036	* init.c: Likewise.
3037	* lex.c: Likewise.
3038	* mangle.c: Likewise.
3039	* method.c: Likewise.
3040	* optimize.c: Likewise.
3041	* pt.c: Likewise.
3042	* rtti.c: Likewise.
3043	* search.c: Likewise.
3044	* semantics.c: Likewise.
3045	* spew.c: Likewise.
3046	* tree.c: Likewise.
3047	* typeck.c: Likewise.
3048	* typeck2.c: Likewise.
3049
30502002-09-13  Matt Austern  <austern@apple.com>
3051
3052	PR C++/7828
3053	* cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p.
3054	* cp/call.c: Change call-by-const-reference mechanism to use
3055	non_cast_lvalue_p when deciding whether the create a temporary.
3056	We need a temporary when passing, e.g. (long) x by const ref.
3057
30582002-09-13  Nathan Sidwell  <nathan@codesourcery.com>
3059
3060	* pt.c (unify, ARRAY_TYPE): Element type can be more qualified.
3061
30622002-09-13  Kazu Hirata  <kazu@cs.umass.edu>
3063
3064	* decl.c: Fix comment formatting.
3065	* decl2.c: Likewise.
3066
30672002-09-12  Kazu Hirata  <kazu@cs.umass.edu>
3068
3069	* call.c: Fix comment formatting.
3070	* class.c: Likewise.
3071	* cp-lang.c: Likewise.
3072	* cp-tree.h: Likewise.
3073	* cvt.c: Likewise.
3074
30752002-09-11  Zack Weinberg  <zack@codesourcery.com>
3076
3077	* Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c,
3078	and c++filt from cxxfilt.o + version.o + $(LIBDEPS).
3079	* cxxfilt.c: New file: split from libiberty/cplus-dem.c, with
3080	minor adjustments (use version_string, eliminate yet another
3081	duplicate of xmalloc)
3082
30832002-09-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3084
3085	* cp-tree.h (require_complete_eh_spec_types): Add prototype.
3086
30872002-09-05  Jason Merrill  <jason@redhat.com>
3088
3089	* typeck2.c (add_exception_specifier): Only pedwarn for an
3090	incomplete type.
3091	(require_complete_eh_spec_types): New fn.
3092	(cxx_incomplete_type_diagnostic): Also support pedwarning.
3093	* typeck.c (complete_type_or_diagnostic): Likewise.
3094	* call.c (build_call): Call require_complete_eh_spec_types.
3095	* rtti.c (get_pseudo_ti_desc): Give an error rather than aborting
3096	on an incomplete type.
3097
30982002-09-04  Jakub Jelinek  <jakub@redhat.com>
3099
3100	* decl.c (start_cleanup_fn): Clear interface_only before
3101	start_function, restore it afterwards.
3102
31032002-08-31  Jason Merrill  <jason@redhat.com>
3104
3105	* cp-lang.c (cp_expr_size): Allow initialization from a
3106	CONSTRUCTOR.
3107
31082002-08-30  Richard Henderson  <rth@redhat.com>
3109
3110	PR opt/7515
3111	* tree.c: Include target.h.
3112	(cp_cannot_inline_tree_fn): Don't auto-inline functions that
3113	don't bind locally.
3114	* Makefile.in (tree.o): Update.
3115
31162002-08-27  Mark Mitchell  <mark@codesourcery.com>
3117
3118	* class.c (layout_virtual_bases): Warn about bugs in G++ that
3119	result in incorrect object layouts.
3120	(layout_class_type): Likewise.
3121
31222002-08-24  Matt Austern  <austern@apple.com>
3123
3124	* tree.c (lvalue_p_1): Add argument for whether casts of lvalues
3125	are allowable.
3126	(real_lvalue_p): Update caller.
3127	(lvalue_p): Ditto.
3128	(non_cast_lvalue_or_else): New.
3129	* tree.h: Declare it.
3130	* typeck.c (build_unary_op): Use non_cast_lvalue_or_else.
3131
31322002-08-22  Mark Mitchell  <mark@codesourcery.com>
3133
3134	* typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR
3135	and COND_EXPR specially; fix error message output.
3136
31372002-08-22  Jason Merrill  <jason@redhat.com>
3138
3139	* pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR.
3140	* semantics.c (nullify_returns_r): Likewise.
3141
31422002-08-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3143
3144	Fix PR/7621
3145	* typeck.c (finish_class_member_access_expr): Diagnose cases where
3146	name lookup finds nothing.
3147
31482002-08-15  Jason Merrill  <jason@redhat.com>
3149
3150	* semantics.c (finish_then_clause): Remove redundant assignment.
3151	(finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the
3152	extra binding level outside the if/switch statement.
3153	(finish_while_cond, finish_for_cond): Rewrite complex condition
3154	into the loop body.
3155
31562002-08-15  Alexandre Oliva  <aoliva@redhat.com>
3157
3158	* parse.y (sizeof, alignof, typeof): New non-terminals to
3159	increment skip_evaluation.  Replace terminals with them and
3160	decrement skip_evaluation at the end of rules using them.
3161	* decl2.c (mark_used): Don't assemble_external if
3162	skipping evaluation.
3163
31642002-08-15  Gabriel Dos Reis  <gdr@nerim.net>
3165
3166	Fix PR/7504
3167	* parse.y (parse_finish_call_expr): Handle incomplete
3168	type used to name a scope.
3169
31702002-08-15  Nathan Sidwell  <nathan@codesourcery.com>
3171
3172	PR c++/7598
3173	* typeck.c (build_unary_op): Fold offsetof idiom. Fixes
3174	regression caused by my 2002-08-08 patch.
3175
31762002-08-13  Mark Mitchell  <mark@codesourcery.com>
3177
3178	* decl.c (pushdecl_class_level): Honor requests to bind names to
3179	OVERLOADs.
3180
31812002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3182
3183	* decl2.c (build_call_from_tree): Fix uninitialized variable.
3184	* parse.y (parse_finish_call_expr): Likewise.
3185	* repo.c (old_args, old_dir, old_main): Const-ify.
3186
31872002-08-11  Gabriel Dos Reis  <gdr@nerim.net>
3188
3189	* decl.c (duplicate_decls): Replace DECL_SOURCE_FILE +
3190	DECL_SOURCE_LINE with DECL_SOURCE_LOCATION.
3191	* optimize.c (maybe_clone_body): Likewise.
3192	* pt.c (tsubst_enum): Likewise.
3193	(lookup_template_class): Likewise.
3194	* tree.c (cp_copy_res_decl_for_inlining): Likewise.
3195
31962002-08-10  Neil Booth  <neil@daikokuya.co.uk>
3197
3198	* lang-specs.h: Remove -ansi.
3199
32002002-08-10  Nathan Sidwell  <nathan@codesourcery.com>
3201
3202	* tree.c (maybe_dummy_object): Replace // with /* */
3203
32042002-08-09  Mark Mitchell  <mark@codesourcery.com>
3205
3206	* call.c (standard_conversion): Use build_ptrmem_type.
3207	* cp-tree.h (build_ptrmem_type): New function.
3208	(adjust_result_of_qualified_name_lookup): Likewise.
3209	* decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate
3210	static data members.
3211	(build_ptrmem_type): New function.
3212	(grokdeclarator): Do not use build_offset_type when encountering a
3213	qualified name.
3214	* parse.y (parse_finish_call_expr): Use
3215	adjust_result_of_qualified_name_lookup.
3216	* search.c (adjust_result_of_qualified_name_lookup): New function.
3217	* typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than
3218	accessing OFFSET_TYPEs directly.
3219
32202002-08-08  Mike Stump  <mrs@apple.com>
3221
3222	* call.c (add_builtin_candidate): legal -> valid, illegal -> invalid.
3223	(type_decays_to): Likewise.
3224	* class.c (find_final_overrider): Likewise.
3225	(maybe_note_name_used_in_class): Likewise.
3226	* decl.c (current_tmpl_spec_kind): Likewise.
3227	(add_binding): Likewise.
3228	(push_class_binding): Likewise.
3229	(duplicate_decls): Likewise.
3230	(layout_var_decl): Likewise.
3231	(grokfndecl): Likewise.
3232	(grokdeclarator): Likewise.
3233	(check_default_argument): Likewise.
3234	* decl2.c (handle_class_head): Likewise.
3235	* error.c (dump_template_decl): Likewise.
3236	* init.c (build_offset_ref): Likewise.
3237	* pt.c (check_specialization_scope): Likewise.
3238	(determine_specialization): Likewise.
3239	(check_explicit_specialization): Likewise.
3240	(maybe_check_template_type): Likewise.
3241	(process_partial_specialization): Likewise.
3242	(check_default_tmpl_args): Likewise.
3243	(push_template_decl_real): Likewise.
3244	(convert_template_argument): Likewise.
3245	(try_class_unification): Likewise.
3246	(get_bindings_real): Likewise.
3247	(do_decl_instantiation): Likewise.
3248	* semantics.c (begin_function_definition): Likewise.
3249	(finish_member_declaration): Likewise.
3250	(check_multiple_declarators): Likewise.
3251	* typeck.c (comp_array_types): Likewise.
3252	(comptypes): Likewise.
3253	(expr_sizeof): Likewise.
3254	(build_binary_op): Likewise.
3255	(dubious_conversion_warnings): Likewise.
3256	(check_return_expr): Likewise.
3257
32582002-08-08  Mark Mitchell  <mark@codesourcery.com>
3259
3260	* typeck.c (build_class_member_access_expr): Do not return
3261	error_mark_node when no error has occurred.
3262
32632002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
3264
3265	* typeck.c (build_component_addr): Remove.
3266	(build_unary_op): Just check it's not a bitfield, and then build
3267	an ADDR_EXPR.
3268
32692002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
3270
3271	* class.c (convert_to_base): Correct check for error_mark_node.
3272	(create_vtable_ptr): Remove unused VFUNS_P parm.
3273
32742002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
3275
3276	* cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
3277
32782002-08-07  Mark Mitchell  <mark@codesourcery.com>
3279
3280	Rework build_component_ref.
3281	* call.c (build_vfield_ref): Do not go through build_component_ref.
3282	(build_field_call): Use build_class_member_access_expr.
3283	(build_user_type_conversion_1): Use BASELINK_FUNCTIONS.
3284	(build_object_call): Likewise.
3285	* class.c (convert_to_base): New function.
3286	(type_requires_array_cookie): Use BASELINK_FUNCTIONS.
3287	(instantiate_type): Handle BASELINKs.
3288	* cp-tree.def (BASELINK): New tree code.
3289	* cp-tree.h (BASELINK_P): Reimplement.
3290	(SET_BASELINK_P): Remove.
3291	(BASELINK_BINFO): Reimplement.
3292	(BASELINK_FUNCTIONS): Likewise.
3293	(BASELINK_ACCESS_BINFO): Likewise.
3294	(BASELINK_OPTYPE): Likewise.
3295	(convert_to_base): New function.
3296	(name_p): Likewise.
3297	(build_object_ref): Remove.
3298	(build_component_ref_1): Likewise.
3299	(build_component_ref): Likewise.
3300	(build_x_component_ref): Likewise.
3301	(build_class_member_access_expr): New function.
3302	(finish_class_member_access_expr): Likewise.
3303	(build_ptrmemfunc_access_expr): Likewise.
3304	* decl.c (grokdeclarator): Handle BASELINKs.
3305	* decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using
3306	finish_class_member_access_expr.
3307	(arg_assoc): Handle BASELINKs.
3308	(do_class_using_decl): Likewise.
3309	* error.c (dump_decl): Likewise.
3310	(dump_expr): Use build_ptrmemfunc_access_expr.
3311	* except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find
3312	destructors.
3313	(build_throw): Use BASELINK_FUNCTIONS.
3314	* init.c (perform_member_init): Use
3315	build_class_member_access_expr.
3316	(build_offset_ref): Handle BASELINKs.  Use
3317	build_class_member_access_expr.
3318	* method.c (hack_identifier): Likewise.
3319	* parse.y (do_id): Use BASELINK, not TREE_LIST.
3320	(primary): Remove uses of build_object_ref.
3321	* pt.c (lookup_template_function): Handle BASELINKs.
3322	(resolve_overloaded_unification): Likewise.
3323	* search.c (build_baselink): Build a BASELINK, not a TREE_LIST.
3324	(lookup_field): Use BASELINK, not TREE_LIST.
3325	(lookup_fnfiels): Likewise.
3326	(setup_class_bindings): Likewise.
3327	* semantics.c (finish_object_call_expr): Do not use
3328	build_method_call when we already know what function is being
3329	called.
3330	* spew.c (identifier_type): Use BASELINK, not TREE_LIST.
3331	* tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not
3332	TREE_CHAIN.
3333	(name_p): New function.
3334	* typeck.c (build_object_ref): Remove.
3335	(build_component_ref_1): Likewise.
3336	(build_x_component_ref): Likewise.
3337	(build_class_member_access_expr): New function.
3338	(finish_class_member_access_expr): Likewise.
3339	(build_ptrmemfunc_access_expr): Likewise.
3340	(get_member_function_from_ptrfunc): Use
3341	build_ptrmemfunc_access_expr.
3342	(build_binary_op): Likewise.
3343	(build_unary_op): Likewise.
3344	(build_ptrmemfunc): Likewise.
3345	(pfn_from_ptrmemfunc): Likewise.
3346	* typeck2.c (build_m_component_ref): Adjust comment.
3347
33482002-08-07  Neil Booth  <neil@daikokuya.co.uk>
3349
3350	* Make-lang.in (CXX_C_OBJS): Update.
3351	* cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
3352	* cp-tree.h (cxx_decode_option): Remove.
3353	* decl2.c (compare_options, lang_f_options, unsupported_options,
3354	cxx_decode_option): Remove.
3355
33562002-08-06  Gabriel Dos Reis  <gdr@nerim.net>
3357
3358	* typeck.c (build_x_unary_op): Handle pointer-to-member.
3359
33602002-08-05  Geoffrey Keating  <geoffk@redhat.com>
3361
3362	* class.c: Don't include obstack.h.
3363	(popclass):
3364	* decl2.c: Delete bogus comment.
3365	* error.c: Don't include obstack.h.
3366	* except.c: Likewise.
3367	(dump_type): Correct comment.
3368	* method.c: Don't include obstack.h.
3369	* tree.c: Likewise.
3370
33712002-08-04  Gabriel Dos Reis  <gdr@nerim.net>
3372
3373	Fix PR/2213
3374	* cvt.c (cp_convert_to_pointer): Reject conversions from integral
3375	expressions to pointer-to-data-member of pointer-to-member-functions.
3376
33772002-08-04  Geoffrey Keating  <geoffk@redhat.com>
3378
3379	* cvt.c (ocp_convert): Delete obsolete code.
3380	* parse.y (permanent_obstack): Delete declaration.
3381	* pt.c (permanent_obstack): Delete declaration.
3382	* repo.c (permanent_obstack): Delete declaration.
3383	(open_repo_file): Use xmalloc instead of permanent_obstack.
3384	(init_repo): Use xstrdup instead of permanent_obstack.
3385
33862002-08-04  Nathan Sidwell  <nathan@codesourcery.com>
3387
3388	* cp-tree.h (VF_DERIVED_VALUE): Remove.
3389	* class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE.
3390
33912002-08-03  Nathan Sidwell  <nathan@codesourcery.com>
3392
3393	PR 7470.
3394	C++ ABI change - vfunc ordering.
3395	* class.c (add_virtual_function): Remove.
3396	(dfs_modify_all_vtables): Take list of all declared
3397	virtuals. Assign all that are not in primary base.
3398	(check_for_override): Adjust comments.
3399	(create_vtable_ptr): Take single list of virtuals. Build chain
3400	of declared virtuals here.
3401	(layout_class_type): Take single list of virtuals. Adjust.
3402	(finish_struct_1): Keep virtuals on single list. Adjust.
3403
34042002-08-02  Mark Mitchell  <mark@codesourcery.com>
3405
3406	* init.c (build_member_call): Use build_new_method_call, not
3407	build_method_call.
3408
34092002-08-02  Krister Walfridsson  <cato@df.lth.se>
3410
3411	* Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies.
3412
34132002-08-02  Mark Mitchell  <mark@codesourcery.com>
3414
3415	* call.c (build_method_call): Issue a more helpful error message
3416	about ambiguous method names.
3417
34182002-08-02  Nathan Sidwell  <nathan@codesourcery.com>
3419
3420	* tree.c (build_shared_int_cst): Make cache file scope, and
3421	GTY it.
3422
34232002-08-02  Jason Merrill  <jason@redhat.com>
3424
3425	* cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define.
3426	(cp_expr_size): New fn.
3427	* call.c (build_over_call): Lose empty class hackery.
3428	(convert_arg_to_ellipsis): Promote non-POD warning to error.
3429	* typeck.c (build_modify_expr): Don't use save_expr on an lvalue.
3430
3431	* semantics.c (expand_body): Do tree optimization in the function
3432	context, too.
3433
34342002-08-01  Neil Booth  <neil@daikokuya.co.uk>
3435
3436	* cp-tree.h: Move all warning and flag declarations to c-common.h.
3437	* decl.c: Move all warning and flag variables to c-common.c.
3438	* decl2.c: Move all warning and flag variables to c-common.c.
3439	* lex.c (flag_digraphs): Remove.
3440	(warn_traditional): Now in c-common.c.
3441
34422002-07-31  Mark Mitchell  <mark@codesourcery.com>
3443
3444	* call.c (build_field_call): Do not look up the field by name.
3445	(build_method_call): Simplify.
3446	(struct z_candidate): Add access_path and conversion_path.  Remove
3447	basetype_path.
3448	(convert_class_to_reference): Adjust use of
3449	add_function_candidate.
3450	(add_candidate): Add conversion_path argument.
3451	(add_function_candidate): Use it.
3452	(add_conv_dndidate): Likewise.
3453	(build_builtin_candidate): Likewise.
3454	(add_template_candidate_real): Add conversion_path argument.
3455	(add_template_conv_candidate): Likewise.
3456	(add_template_candidate): Likewise.
3457	(build_user_type_conversion_1): Use it.
3458	(build_new_function_call): Remove name lookup code.  Adjust use of
3459	add_template_candidate and add_function_candidate.
3460	(build_new_op): Likewise.
3461	(convert_like_real): Use build_special_member_call.
3462	(build_over_call): Use cand->conversion_path.
3463	(build_special_member_call): New method.
3464	(build_new_method_call): Remove name lookup code.
3465	* cp-tree.def (OFFSET_REF): Update documentation.
3466	(TEMPLATE_ID_EXPR): Likewise.
3467	* cp-tree.h (BASELINK_ACCESS_BINFO): New macro.
3468	(BASELINK_OPTYPE): Likewise.
3469	(build_new_method_call): Adjust prototype.
3470	(build_special_member_call): New method.
3471	(build_baselink): New method.
3472	(build_offset_ref_call_from_tree): Likewise.
3473	(build_call_from_tree): Likewise.
3474	(finish_qualified_call_expr): Remove.
3475	(finish_call_expr): Adjust prototype.
3476	(build_x_function_call): Remove.
3477	* cvt.c (ocp_convert): Use build_special_member_call.
3478	* decl2.c (reparse_absdcl_as_expr): Use finish_call_expr.
3479	(build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and
3480	CALL_EXPR.
3481	(build_offset_ref_call_from_tree): New function.
3482	(build_call_from_tree): Likewise.
3483	* init.c (expand_cleanup): Use build_special_member_call.
3484	(expand_default_init): Likewise.
3485	(build_member_call): Use finish_call_expr.
3486	(build_new_1): Use build_special_member_call.
3487	(push_base_cleanups): Likewise.
3488	* method.c (do_build_assign_ref): Likewise.
3489	* parse.y (template_id): Do not pass a COMPONENT_REF to
3490	lookup_template_function.
3491	(primary): Use parse_finish_call_epxr, not finish_call_expr.
3492	(parse_finish_call_expr): New function.
3493	* pt.c (lookup_template_function): Add assertions.
3494	* search.c (lookup_base): Allow T to be a binfo.
3495	(build_baselink): New function.
3496	(lookup_member): Use it.
3497	* semantics.c (finish_call_expr): Do not do name lookup.
3498	(finish_object_call_expr): Remove #if 0'd code.
3499	(finish_qualified_call_expr): Remove.
3500	* typeck.c (build_x_function_call): Remove.
3501	(build_static_case): Use build_special_member_call.
3502	* typeck2.c (build_functional_cast): Likewise.
3503
35042002-07-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3505
3506	* lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c.
3507
35082002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
3509
3510	* cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion.
3511
35122002-07-30  Nathan Sidwell  <nathan@codesourcery.com>
3513
3514	* cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more
3515	documentation.
3516
35172002-07-29  Alan Modra  <amodra@bigpond.net.au>
3518
3519	* cp-tree.h: Comment typo fix.
3520
35212002-07-29  Richard Earnshaw  <rearnsha@arm.com>
3522
3523	* spew.c (space_for_token): Allocate zeroed memory for a new token
3524	chunk.
3525
35262002-07-27  Roger Sayle  <roger@eyesopen.com>
3527
3528	* decl.c (builtin_function_1): No need to explicitly mark
3529	BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
3530
35312002-07-27  Roger Sayle  <roger@eyesopen.com>
3532
3533	* decl2.c (cxx_decode_option): Support -fno-builtin-foo.
3534
35352002-07-26  Jason Merrill  <jason@redhat.com>
3536
3537	* call.c (build_over_call): Likewise.
3538	(cp_convert_parm_for_inlining): New fn.
3539	(convert_for_arg_passing): New fn.
3540	(convert_default_arg, build_over_call): Use it.
3541	(type_passed_as): New fn.
3542	* pt.c (tsubst_decl): Use it.
3543	* decl2.c (cp_build_parm_decl): New fn.
3544	(build_artificial_parm): Use it.
3545	(start_static_storage_duration_function): Likewise.
3546	* decl.c (start_cleanup_fn, grokdeclarater): Likewise.
3547	(grokparms): Don't mess with DECL_ARG_TYPE.
3548	* typeck.c (convert_arguments): Use convert_for_arg_passing.
3549	* cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
3550	Define.
3551	* cp-tree.h: Declare new fns.
3552
35532002-07-26  Neil Booth  <neil@daikokuya.co.uk>
3554
3555	* cp-tree.h (flag_operator_names): Remove.
3556	* decl2.c (flag_operator_names): Remove.
3557	(lang_f_options): Remove operator-names.
3558	* lex.c (D_OPNAME): Remove.
3559	(reswords): Remove operator names.
3560	(rid_to_yy): Remove operator names.
3561	(init_reswords): No need to handle D_OPNAME.
3562	* spew.c (read_process_identifier): There are no operator
3563	names.
3564
35652002-07-26  Jason Merrill  <jason@redhat.com>
3566
3567	* dump.c (cp_dump_tree): Call c_dump_tree.
3568	* Make-lang.in (CXX_C_OBJS): Add c-dump.o.
3569
35702002-07-25  Neil Booth  <neil@daikokuya.co.uk>
3571
3572	* error.c (print_whitespace): Remove.
3573	* g++spec.c (LIBUNWIND): Move.
3574	* mangle.c (mangled_position, write_signed_number): Remove.
3575
35762002-07-25  Neil Booth  <neil@daikokuya.co.uk>
3577
3578	* decl2.c (cxx_decode_option): Similarly.
3579
35802002-07-25  Gabriel Dos Reis  <gdr@nerim.net>
3581
3582	* cp-tree.h (cxx_sizeof_nowarn): Now a macro.
3583	(cxx_sizeof_or_alignof_type): Take a third argument.
3584	(cxx_sizeof): Adjust definition.
3585	(cxx_alignof): Likewise.
3586	* init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
3587	* typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
3588	complaining.
3589	(c_sizeof_nowarn): Remove definition.
3590	(build_unary_op): Use cxx_sizeof_nowarn.
3591
35922002-07-24  Geoffrey Keating  <geoffk@redhat.com>
3593
3594	* tree.c (cp_build_qualified_type_real): When copying
3595	pointer-to-method types, unshare the record that holds
3596	the cached pointer-to-member-function type.
3597
35982002-07-23  Neil Booth  <neil@daikokuya.co.uk>
3599
3600	* cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove.
3601
36022002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
3603
3604	Fix PR/7363:
3605	* typeck.c (cxx_sizeof_or_alignof_type): New function.
3606	(c_sizeof): Remove definition.
3607	(expr_sizeof): Use cxx_sizeof.
3608	* decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type.
3609	* decl.c (finish_destructor_body): Use cxx_sizeof.
3610	* semantics.c (finish_alignof): Likewise.
3611	(finish_alignof): Use cxx_alignof.
3612	* cp-tree.h (cxx_sizeof, cxx_alignof): New macros.
3613	(cxx_sizeof_or_alignof_type): Declare.
3614	(my_friendly_assert): Move to ../c-common.h.
3615
36162002-07-23  Neil Booth  <neil@daikokuya.co.uk>
3617
3618	* class.c, method.c, pt.c, search.c: Don't define obstack macros.
3619
36202002-07-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3621
3622	PR c++/7347, c++/7348
3623	* cp-tree.h (tsubst_flags_t): Add tf_parsing.
3624	* decl.c (make_typename_type): Use it.
3625	(make_unbound_class_template): Likewise.
3626	(lookup_name_real): Don't call type_access_control if scope is
3627	template parameter dependent.
3628	* parse.y (template_arg): Call make_unbound_class_template with
3629	tf_parsing set.
3630	(nest_name_specifier): Call make_typename_type with tf_parsing set.
3631	(typename_sub0): Likewise.
3632	(typename_sub1): Likewise.
3633	(instantiate_decl): Push class scope.
3634	* pt.c (regenerate_decl_from_template): Call pushclass and popclass
3635	for both static variable and member function template.
3636	(instantiate_decl) Call pushclass and popclass when tsubst'ing type
3637	and arguments.
3638	* search.c (type_access_control): Do type access for TEMPLATE_DECL
3639	too.
3640
36412002-07-20  Roger Sayle  <roger@eyesopen.com>
3642
3643	* decl2.c (cxx_decode_option): Simplify -fhandle-exceptions
3644	test by using positive_option.  Make whitespace consistent.
3645
36462002-07-20  Gabriel Dos Reis  <gdr@nerim.net>
3647
3648	* spew.c (struct unparsed_test): Replace 'filename' and 'lineno'
3649	members with 'locus'.  Adjust use throughout.
3650	(struct feed):  Likewise.
3651	(alloc_unparsed_test): Change prototype, take a 'const location_t *'.
3652	Adjust use.
3653	(snarf_defarg): Use error(), not error_with_file_and_line().
3654
36552002-07-19  Chris Demetriou  <cgd@broadcom.com>
3656
3657	* lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever
3658	cpp_options is included.
3659
36602002-07-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3661
3662	PR c++/2862, c++/2863
3663	* pt.c (determine_specialization): Compare the length of
3664	TYPE_ARG_TYPES.  Tidy.
3665
36662002-07-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3667
3668	PR c++/3797
3669	* decl.c (duplicate_decls): Don't propagate inlining parameters from
3670	olddecl to newdecl when newdecl is a specialization of the
3671	instantiation olddecl.
3672
36732002-07-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3674
3675	PR c++/4802, c++/5387
3676	* decl.c (make_typename_type): Use enforce_access.
3677
36782002-07-17  Scott Snyder <snyder@fnal.gov>
3679
3680	PR c++/7320
3681	* rtti.c (get_tinfo_decl): Set DECL_COMDAT.
3682
36832002-07-12  Mark Mitchell  <mark@codesourcery.com>
3684
3685	* class.c (add_method): Correct handling of conversion operators.
3686
36872002-07-11  Mark Mitchell  <mark@codesourcery.com>
3688
3689	PR c++/7224
3690	* class.c (add_method): Simplify.
3691
36922002-07-11  Jason Merrill  <jason@redhat.com>
3693
3694	PR c++/7279
3695	* tree.c (cp_copy_res_decl_for_inlining): Also copy
3696	TREE_ADDRESSABLE.
3697
36982002-07-10  Graham Stott  <graham.stott@btinternet.com>
3699
3700	* pt.c (template_parm_this_level_p, push_template_decl_real):
3701	Pass depth as int pointer.
3702
37032002-07-11  Tim Josling  <tej@melbpc.org.au>
3704
3705	Remove front end hard coding from gengtype.c.
3706
3707	* config-lang.in (gtfiles): Add files needed for this front end.
3708
37092002-07-10  Mark Mitchell  <mark@codesourcery.com>
3710
3711	* cp-tree.h (unqualified_name_lookup_error): Declare it.
3712	(begin_function_definition): Adjust prototype.
3713	* lex.c (unqualified_name_lookup_error): New function, split out
3714	from ...
3715	(do_identifier): ... here.
3716	* parse.y (parse_begin_function_definition): New function.
3717	(fn.def1): Use it.
3718	* semantics.c (begin_function_definition): Accept decl-specifiers
3719	and attributes as separate parameters.
3720
37212002-07-10  Jason Merrill  <jason@redhat.com>
3722
3723	PR c++/6255
3724	* decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
3725	modifying the old one.
3726
37272002-07-09  Mark Mitchell  <mark@codesourcery.com>
3728
3729	* cp-tree.h (constructor_name_p): Declare it.
3730	(check_template_template_default_arg): Likewise.
3731	* class.c (handle_using_decl): Use constructor_name_p.
3732	* decl.c (grokdeclarator): Likewise.
3733	* decl2.c (constructor_name_p): Define it.
3734	* init.c (build_member_call): Use constructor_name_p.
3735	* parse.y (template_parm): Use check_template_template_default_arg.
3736	* pt.c (check_explicit_specialization): Use constructor_name_p.
3737	* semantics.c (check_template_template_default_arg): New function.
3738
37392002-07-08  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3740
3741	* pt.c (can_complete_type_without_circularity): Add static to
3742	function definition.
3743
37442002-07-08  Mark Mitchell  <mark@codesourcery.com>
3745
3746	* cp-tree.h (have_extern_spec): Declare it
3747	* decl.c (have_extern_spec): Define it.
3748	(start_decl): Eliminate use of used_extern_spec.
3749	(start_function): Likewise.
3750	* parse.y (have_extern_spec): Remove declaration.
3751	(used_extern_spec): Likewise.
3752	(frob_specs): Eliminate use of used_extern_spec.
3753	(.hush_warning): Likewise.
3754
37552002-07-07  Mark Mitchell  <mark@codesourcery.com>
3756
3757	* Make-lang.in (cp/parse.o): Depend on decl.h.
3758	* cp-tree.h (do_decl_instantiation): Change prototype.
3759	* parse.y: Include decl.h.
3760	(parse_decl_instantiation): New function.
3761	(explicit_instantiation): Use it.
3762	* pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR
3763	and DECLSPECS.
3764
37652002-07-07  Roger Sayle  <roger@eyesopen.com>
3766
3767	* error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for
3768	constructor and destructor tests when passed a TEMPLATE_DECL.
3769
37702002-07-05  Jason Merrill  <jason@redhat.com>
3771
3772	* cvt.c (cp_convert_to_pointer): Call force_fit_type for null
3773	pointers.
3774
3775	PR optimization/7145
3776	* tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
3777
37782002-07-05  Nathan Sidwell  <nathan@codesourcery.com>
3779
3780	Repair damage on weak-impared targets caused by my previous patch.
3781	* cp-tree.h (import_export_tinfo): Add parameter.
3782	* decl2.c (import_export_tinfo): Add parameter, post adjust
3783	DECL_COMDAT.
3784	* rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
3785	import_export_tinfo.
3786
37872002-07-03  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3788
3789	PR c++/6944
3790	* init.c (build_aggr_init): Remove qualifiers of init before calling
3791	build_vec_init.
3792	(build_vec_init): Flatten multi-dimensional array during cleanup.
3793	(build_vec_delete_1): Abort if the type of each element is array.
3794
37952002-07-03  Graham Stott  <graham.stott@btinternet.com>
3796
3797	* pt.c (instantiate_class_template): Fix typo.
3798
37992002-07-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3800
3801	* typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused
3802	by CVS conflict in my last patch.
3803
38042002-07-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3805
3806	PR c++/6716
3807	* pt.c (can_complete_type_without_circularity): New function.
3808	(instantiate_class_template): Use it.
3809	* typeck2.c (cxx_incomplete_type_diagnostic): Improve error
3810	message due to incomplete fields.
3811
38122002-07-01  Mark Mitchell  <mark@codesourcery.com>
3813
3814	PR c++/7112
3815	* mangle.c (write_expression): Add mangling for sizeof when
3816	applied to a type.
3817	* operators.def: Remove stale comment.
3818
38192002-06-30  Nathan Sidwell  <nathan@codesourcery.com>
3820
3821	* cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
3822	(CPTI_TYPE_INFO_PTR_TYPE): ... this.
3823	(tinfo_decl_type): Replace with ...
3824	(type_info_ptr_type): ... this.
3825	(import_export_tinfo): Declare.
3826	(tinfo_decl_p): Rename to ...
3827	(unemitted_tinfo_decl_p): ... this.
3828	* decl2.c (import_export_decl): Break out tinfo handling into ...
3829	(import_export_tinfo): ... here. New function.
3830	(finish_file): Adjust.
3831	* rtti.c (TINFO_REAL_NAME): New macro.
3832	(init_rtti_processing): Create the tinfo types.
3833	(get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
3834	(get_tinfo_decl): Adjust.
3835	(get_tinfo_ptr): New function.
3836	(get_type_id): Use it.
3837	(tinfo_base_init): Create vtable decl here, if it doesn't exist.
3838	(ptr_initializer): Use get_tinfo_ptr.
3839	(ptm_initializer): Likewise.
3840	(synthesize_tinfo_var): Break into ...
3841	(get_pseudo_ti_init): ... this. Just create the initializer.
3842	(get_pseudo_ti_desc): .. and this.
3843	(create_real_tinfo_var): Remove.
3844	(create_pseudo_type_info): Don't create the vtable decl here.
3845	(get_vmi_pseudo_type_info): Remove.
3846	(create_tinfo_types): Adjust.
3847	(tinfo_decl_p): Rename to ...
3848	(unemitted_tinfo_decl_p): ... here. Adjust.
3849	(emit_tinfo_decl): Adjust. Create the initializer.
3850
38512002-06-27  Mark Mitchell  <mark@codesourcery.com>
3852
3853	PR c++/6695
3854	* pt.c (tsubst_friend_class): Substitute into the context of the
3855	friend before using it.
3856
38572002-06-26  Mark Mitchell  <mark@codesourcery.com>
3858
3859	* cp-tree.h (xref_tag): Change prototype.
3860	(handle_class_head): Likewise.
3861	(build_x_component_ref): Likewise.
3862	* decl.c (cxx_init_decl_processing): Adjust call to xref_tag.
3863	(xref_tag): Take attributes as a separate parameter.
3864	(xref_tag_from_type): Adjust call to xref_tag.
3865	* decl2.c (build_expr_from_tree): Adjust call to
3866	build_x_component_ref.
3867	(handle_class_head): Take attributes as a separate parameter.
3868	* parse.y (parse_xref_tag): New function.
3869	(parse_handle_class_head): Likewise.
3870	(primary): Use parse_xref_tag.
3871	(class_head_decl): Use parse_handle_class_head.
3872	(class_head_defn): Likewise.
3873	* rtti.c (init_rtti_processing): Adjust call to xref_tag.
3874	(build_dynamic_cast_1): Likewise.
3875	(create_pseudo_type_info): Likewise.
3876	(emit_support_tinfos): Likewise.
3877	* typeck.c (build_object_ref): Adjust call to
3878	build_x_component_ref.
3879	(build_x_component_ref): Remove protect parameter.
3880
38812002-06-25  Mark Mitchell  <mark@codesourcery.com>
3882
3883	* call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.
3884	* class.c (handle_using_decl): Likewise.
3885	(instantiate_type): Likewise.
3886	* cp-tree.h (BASELINK_FUNCTIONS): New macro.
3887	(xref_basetypes): Change prototype.
3888	(begin_mem_initializers): New function.
3889	(get_overloaded_fn): Likewise.
3890	* decl.c (xref_basetypes): Simplify.
3891	* error.c (dump_expr): Use BASELINK_FUNCTIONS.
3892	* init.c (build_offset_ref): Likewise.
3893	* parse.y (base_init): Use begin_mem_initializers().
3894	(structsp): Adjust call to xref_basetypes.
3895	* pt.c (determine_specialization): Use BASELINK_FUNCTIONS.
3896	(instantiate_class_template): Adjust call to xref_basetypes.
3897	* semantics.c (begin_mem_initializers): New function.
3898	* tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS.
3899	(really_overlaoded_fn): Likewise.
3900	(get_overloaded_fn): New function.'
3901	(get_first_fn): USe BASELINK_FUNCTIONS.
3902
39032002-06-24  Mark Mitchell  <mark@codesourcery.com>
3904
3905	* cp-tree.h (SCALAR_TYPE_P): New macro.
3906	(check_for_out_of_scope_variable): New function.
3907	(at_class_scope_p): Likewise.
3908	(finish_fname): Likewise.
3909	* class.c (finish_struct): Use at_function_scope_p.
3910	* decl.c (check_for_out_of_scope_variable): New function, split
3911	out from do_identifier.
3912	(finish_enum): Use at_function_scope_p.
3913	* lex.c (do_identifier): Use check_for_out_of_scope_variable.
3914	* parse.y (VAR_FUNC_NAME): Give it <ttype>.  Use finish_fname.
3915	(primary): Use at_function_scope_p.
3916	* search.c (at_class_scope_p): New function.
3917	* semantics.c (finish_fname): Likewise.
3918	(check_multiple_declarators): Use at_function_scope_p.
3919
39202002-06-23  Mark Mitchell  <mark@codesourcery.com>
3921
3922	* parse.y (parse_scoped_id): New function.
3923	(primary): Use it.
3924	* cp-tree.h (do_scoped_id): Adjust declaration.
3925	* lex.c (do_scoped_id): Remove call to yylex.
3926	* decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
3927	* typeck2.c (add_exception_specifier): Use tree_cons, rather than
3928	expanding it inline.
3929
39302002-06-23  Matt Thomas  <matt@3am-software.com>
3931
3932	* decl.c (finish_function): Change "#ifdef VMS_TARGET" to
3933	"#if VMS_TARGET".
3934
39352002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3936
3937	* mangle.c (integer_type_codes): Const-ify.
3938
39392002-06-20  Richard Henderson  <rth@redhat.com>
3940
3941	PR c++/6747
3942	* typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
3943	Call put_var_into_stack.
3944
39452002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3946
3947	* spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
3948	array size calculation.
3949
39502002-06-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3951
3952	PR c++/6892
3953	* pt.c (tsubst_expr): Handle FILE_STMT.
3954
39552002-06-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3956
3957	PR c++/6723
3958	* pt.c (lookup_template_class): Don't build complete argument of
3959	BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
3960	argument.
3961
39622002-06-19  Akim Demaille  <akim@epita.fr>
3963
3964	* parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with
3965	decl.h's TYPENAME.
3966	* spew.c, lex.c: Adjust.
3967	* parse.y (explicit_instantiation): Add empty action to override
3968	the default $$ = $1 where it introduces a type clash.
3969
39702002-06-14  Jason Merrill  <jason@redhat.com>
3971
3972	* semantics.c (begin_for_stmt): Push the 'for' scope before
3973	adding the FOR_STMT.
3974
3975	C++ ABI changes.
3976	* class.c (build_base_field): Set DECL_PACKED.
3977	(layout_class_type): Don't use tail padding of PODs.
3978	* mangle.c (write_unqualified_name): Fix template conversion op
3979	mangling.
3980
39812002-06-16  Richard Henderson  <rth@redhat.com>
3982
3983	PR opt/6793
3984	* tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
3985	after template instantiation.
3986
39872002-06-16  Richard Henderson  <rth@redhat.com>
3988
3989	* cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
3990
39912002-06-15  Gabriel Dos Reis  <gdr@codesourcery.com>
3992
3993	* cp-tree.h (compiler_error): Remove declaration.
3994	* lex.c (compiler_error): Remove definition.
3995
39962002-06-14  Steve Ellcey  <sje@cup.hp.com>
3997
3998	* g++spec.c (LIBUNWIND): New.
3999	(lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
4000
40012002-06-13  Jessica Han  <jessica@cup.hp.com>
4002
4003	* class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
4004	(build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
4005	(build_vbase_offset_vtbl_entries): Likewise.
4006	* rtti.c (build_headof): Likewise.
4007	(get_tinfo_decl_dynamic): Likewise.
4008	(create_pseudo_type_info): Likewise.
4009
40102002-06-12  Stan Shebs  <shebs@apple.com>
4011
4012	* mpw-config.in: Remove file, no longer used.
4013	* mpw-make.sed: Ditto.
4014
40152002-06-07  Zack Weinberg  <zack@codesourcery.com>
4016
4017	* decl2.c: Update call to cpp_handle_option.
4018
40192002-06-07  H.J. Lu  (hjl@gnu.org)
4020
4021	* decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
4022
40232002-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
4024
4025	* error.c (cp_error_at): Fix typo.
4026
40272002-06-04  Gabriel Dos Reis  <gdr@codesourcery.com>
4028
4029	* error.c (cp_diagnostic_starter): Adjust call.
4030	(maybe_print_instantiation_context): Change prototype to take a
4031	'diagnostic_info *'.
4032	(print_instantiation_full_context): Likewise.
4033	(print_instantiation_partial_context): Likewise.
4034	(cp_diagnostic_starter): Likewise.
4035	(cp_diagnostic_finalizer): Likewise.
4036	(cp_print_error_function): Likewise.
4037	(cp_printer): Take a secondary parameter as a 'text_info *'.
4038	Remove output_state savings.  Adjust calls.
4039
40402002-06-03  Geoffrey Keating  <geoffk@redhat.com>
4041
4042	* pt.c (inline_parm_levels): Mark for GC.
4043
4044	* mangle.c (start_mangling): Allocate G.substitutions here...
4045	(init_mangle): ... rather than here.
4046	(finish_mangling): Clear the varray pointer when done with it.
4047	* spew.c (yylexstring): Don't use VARRAY_FREE.
4048	* search.c (bfs_walk): Don't use VARRAY_FREE.
4049	* decl2.c (pending_statics): Use gengtype to mark.
4050	(deferred_fns): Likewise.
4051	(ssdf_decls): Likewise.
4052	(init_decl2): Delete.
4053	* decl.c (pop_from_top_level): Don't use VARRAY_FREE.
4054	(cxx_init_decl_processing): Don't call init_decl2.
4055	(cxx_pop_function_context): Don't use VARRAY_FREE.
4056	* cp-tree.h (struct saved_scope): No need for special marking
4057	of varrays.
4058	(struct language_function): Likewise.
4059	(local_classes): Use gengtype to mark.
4060	(init_decl2): Delete prototype.
4061	* class.c (init_class_processing): Don't use
4062	ggc_add_tree_varray_root.
4063	(build_vtbl_initializer): Don't use VARRAY_FREE.
4064
4065	* decl.c (typename_compare): Don't use same_type_p.
4066
4067	* decl.c: Include hashtab.h instead of hash.h.
4068	(typename_hash): Update to use htab_h.
4069	(typename_compare): Likewise.
4070	(typename_htab): Use gengtype to mark.
4071	(build_typename_type): Update to use htab_h.
4072	* Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
4073
4074	* Make-lang.in (gt-cp-tree.h): New rule.
4075	(cp/tree.o): Depend on gt-cp-tree.h.
4076	* config-lang.in (gtfiles): Add cp/tree.c.
4077	* tree.c: Include gt-cp-tree.h.
4078	(list_hash_table): Use gengtype to mark.
4079	(init_tree): Use gengtype to mark trees.
4080
4081	* Make-lang.in (cp/decl.o): Add debug.h dependency.
4082	* call.c (struct z_candidate): Use gengtype.
4083	(USER_CONV_CAND): Use WRAPPER_ZC.
4084	(convert_class_to_reference): Use build_zc_wrapper.
4085	(build_type_conversion_1): Likewise.
4086	(build_over_call): Use WRAPPER_ZC.
4087	(add_warning): Use build_zc_wrapper.
4088	* cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
4089	* cp-tree.h (struct lang_identifier): Use gengtype.
4090	(struct template_parm_index_s): Likewise.
4091	(struct ptrmem_cst): Likewise.
4092	(struct tree_binding): Likewise.
4093	(struct tree_overload): Likewise.
4094	(struct tree_srcloc): Likewise.
4095	(struct tree_wrapper): Likewise.  Also modify to have a pointer
4096	to struct z_candidate rather than void.
4097	(enum cp_tree_node_structure_enum): New.
4098	(union lang_tree_node): New.
4099	(cxx_mark_tree): Delete prototype.
4100	(cp_tree_node_structure): New prototype.
4101	(build_ptr_wrapper): Delete prototype.
4102	(build_int_wrapper): Delete prototype.
4103	(build_zc_wrapper): New prototype.
4104	* decl.c: Include debug.h
4105	(cxx_mark_tree): Delete.
4106	(cp_tree_node_structure): New.
4107	* tree.c (build_ptr_wrapper): Delete.
4108	(build_int_wrapper): Delete.
4109	(build_zc_wrapper): New.
4110
4111	* cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
4112	Correct typo.  Patch from k_fukui@highway.ne.jp.
4113
4114	* semantics.c (current_stmt_tree): Update for change to
4115	struct language_function.
4116	(finish_mem_initializers): Likewise.
4117	* decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
4118	* cp-tree.h (struct language_function): Rename from
4119	cp_language_function.  Change all uses.
4120	(cp_function_chain): Don't need to cast.
4121
4122	* class.c (duplicate_tag_error): Reset discriminator.
4123	(check_bases_and_members): Update for data structure changes.
4124	* cp-tree.h (struct lang_id2): Use gengtype.
4125	(flagged_type_tree): Likewise.
4126	(SET_LANG_ID): Use GGC on struct lang_id2.
4127	(struct cp_language_function): Use gengtype.  Remove field
4128	'x_vcalls_possible_p'.
4129	(current_vcalls_possible_p): Delete.
4130	(struct lang_type_header): New.
4131	(struct lang_type_class): Rename from struct lang_type.  Include
4132	struct lang_type_header.
4133	(struct lang_type_ptrmem): New.
4134	(struct lang_type): New.
4135	(LANG_TYPE_CLASS_CHECK): New.  Use it in all the appropriate macros.
4136	(LANG_TYPE_PTRMEM_CHECK): New.  Use it in all the appropriate macros.
4137	(TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
4138	(struct lang_decl_flags): Use gengtype.  Add discriminators.
4139	(struct lang_decl): Use gengtype.  Add and use discriminators.
4140	Update the macros that reference moved fields.
4141	(LANG_DECL_U2_CHECK): New function.  Use it when appropriate.
4142	(SET_DECL_THUNK_P): Set discriminator too.
4143	(clear_inline_text_obstack): Delete prototype.
4144	(finish_inline_definitions): Delete prototype.
4145	(mark_pending_inlines): Delete prototype.
4146	(lang_check_failed): New prototype.
4147	* decl.c (struct named_label_use_list): Use gengtype.
4148	(struct named_label_list): Likewise.
4149	(mark_binding_level): Delete.
4150	(mark_named_label_lists): Delete.
4151	(push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
4152	(cxx_init_decl_processing): Use generated marker routine.
4153	(begin_destructor_body): Delete dead set to
4154	current_vcalls_possible_p.
4155	(mark_lang_function): Delete.
4156	(mark_cp_function_context): Delete.
4157	(lang_mark_tree): Use generated marker routines.
4158	* decl2.c (start_objects): Set discriminator when setting
4159	GLOBAL_INIT_PRIORITY.
4160	* lex.c (retrofit_lang_decl): Set discriminators.
4161	(copy_lang_type): Update for changes to lang_type structure.
4162	(cp_make_lang_type): Set discriminator.
4163	* parse.y: Use gengtype on YYLVAL.  Don't use dots in identifiers.
4164	* search.c: Include ggc.h.
4165	* semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
4166	(finish_inline_definitions): Delete.
4167	* spew.c (struct token): Use gengtype.
4168	(struct token_chunk): New.
4169	(struct unparsed_text): Use gengtype.  Store tokens in chunks.
4170	(struct feed): Use gengtype.
4171	(feed_obstack): Delete.
4172	(feed): Mark as GC root.
4173	(pending_inlines): Mark as GC root.
4174	(pending_inlines_tail): Likewise.
4175	(processing_these_inlines): Likewise.
4176	(token_obstack): Make static.
4177	(first_token): Likewise.
4178	(init_spew): Don't initialize deleted things; use gengtype for roots.
4179	(clear_inline_text_obstack): Delete.
4180	(feed_input): Use GC for struct feed.  Update for changes to
4181	struct unparsed_text.
4182	(mark_pending_inlines): Delete.
4183	(next_token): Rename from add_token.  Change all callers.  Update
4184	for changes to struct unparsed_text.
4185	(space_for_token): New.
4186	(remove_last_token): New.
4187	(alloc_unparsed_text): New.
4188	(snarf_block): Take an unparsed_text.  Update for changes to struct
4189	unparsed_text.
4190	(snarf_method): Update for changes to struct unparsed_text.
4191	(snarf_defarg): Update for changes to struct unparsed_text.
4192	* tree.c (lang_check_failed): New.
4193
4194	* Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
4195	gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
4196	(cp/spew.o): Add dependency on gt-<filename>.h.
4197	(cp/decl2.o): Add dependency on gt-<filename>.h.
4198	(cp/call.o): Add dependency on gt-<filename>.h.
4199	(cp/pt.o): Add dependency on gt-<filename>.h.
4200	(cp/repo.o): Add dependency on gt-<filename>.h.
4201	(cp/parse.o): Add dependency on gt-<filename>.h.
4202	* call.c: Use gengtype for roots.
4203	* config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
4204	decl2.c parse.y pt.c repo.c spew.c.
4205	* cp-tree.h: Use gengtype for roots.
4206	(struct saved_scope): Use GGC, gengtype.
4207	(cp_parse_init): Delete prototype.
4208	(init_pt): Delete prototype.
4209	* decl.c: Use gengtype for roots.
4210	(mark_saved_scope): Delete.
4211	(cxx_init_decl_processing): Don't call deleted initilisation
4212	routines.
4213	(signed_size_zero_node): Delete, unused.
4214	* decl.h: Use gengtype for roots.
4215	* decl2.c: Use gengtype for roots.
4216	* lex.h: Use gengtype for roots.
4217	* parse.y: Use gengtype for roots.
4218	(cp_parse_init): Delete.
4219	* pt.c: Use gengtype for roots.
4220	(init_pt): Delete.
4221	* repo.c: Use gengtype for roots.
4222	* spew.c: Use gengtype for roots.
4223
4224	* Make-lang.in: Allow for filename changes.  Add gtype-cp.h.
4225	(cp/decl.o): Add dependency on gtype-cp.h.
4226	* decl.c: Remove use of add_deletable_root, use GTY marker instead.
4227	Include gtype-cp.h.  Allow for filename changes.
4228
4229	* Make-lang.in (cp/gt-decl.h): Generate using gengtype.
4230	(cp/decl.o): Add cp/gt-decl.h dependency.
4231	* config-lang.in (gtfiles): New.
4232	* tree.h: Rename struct binding_level to struct cp_binding_level.
4233	* decl.c: Rename struct binding_level to struct cp_binding_level.
4234	Include cp/gt-decl.h.
4235	(struct cp_binding_level): Use gengtype.
4236	(make_binding_level): Use GGC on struct cp_binding_level.
4237	(mark_binding_level): Use gt_ggc_m_cp_binding_level.
4238	(cxx_init_decl_processing): Mark free_binding_level as
4239	deletable.
4240
4241	* decl.c (mark_cp_function_context): Update calling sequence.
4242
4243	* decl.c (start_function): Don't free 'struct
4244	cp_language_function'.
4245	(pop_cp_function_context): Likewise.
4246	(save_function_data): Allocate it using GC.
4247	* semantics.c (genrtl_start_function): Don't free 'struct
4248	cp_language_function'.
4249
42502002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
4251
4252	* lang-specs.h: Use cpp_debug_options.
4253
42542002-05-28  Zack Weinberg  <zack@codesourcery.com>
4255
4256	* mangle.c, tree.c: Include real.h.
4257	* Make-lang.in: Update dependency lists.
4258
42592002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4260
4261	* lex.c: Don't include c-lex.h.
4262	* parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
4263
42642002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4265
4266	* spew.c (yyungetc, snarf_block): Remove indent_level handling.
4267
42682002-05-22  Richard Henderson  <rth@redhat.com>
4269
4270	* decl.c (obscure_complex_init): Check for VAR_DECL
4271	before using DECL_THREAD_LOCAL.
4272
42732002-05-22  Richard Henderson  <rth@redhat.com>
4274
4275	* decl.c (check_tag_decl): Handle RID_THREAD.
4276	(obscure_complex_init): Reject run-time init of tls.
4277	(grokvardecl, grokdeclarator): Handle RID_THREAD.
4278	* lex.c (reswords): Add __thread.
4279	(rid_to_yy): Map RID_THREAD to SCSPEC.
4280
42812002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4282
4283	* cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
4284	* cp-tree.h (cxx_post_options): Kill.
4285	* cp-lex.c (cxx_post_options): Kill.
4286
42872002-05-21  Richard Henderson  <rth@redhat.com>
4288
4289	* lex.c (rid_to_yy): Add RID_THREAD.
4290
42912002-05-21  Alexandre Oliva  <aoliva@redhat.com>
4292
4293	* init.c (build_vec_init): Test for trivial copy-assignment when
4294	copy-assigning arrays.
4295
42962002-05-20  Andreas Jaeger  <aj@suse.de>
4297
4298	* init.c (build_default_init): Remove unused variable.
4299
43002002-05-20  Alexandre Oliva  <aoliva@redhat.com>
4301
4302	* call.c (any_strictly_viable): New.
4303	(build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
4304
43052002-05-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4306
4307	* error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
4308
43092002-05-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4310
4311	PR c++/186, DR 259
4312	* pt.c (do_decl_instantiation): Don't complain explicit
4313	instantiation after explicit specialization.
4314	(do_type_instantiation): Likewise.
4315
43162002-05-19  Alexandre Oliva  <aoliva@redhat.com>
4317
4318	* cp-tree.h (complete_type_or_diagnostic): Changed prototype,
4319	renamed from...
4320	(complete_type_or_else): ... this.  Redefined as macro.
4321	(cxx_incomplete_type_diagnostic): Declare.
4322	(cxx_incomplete_type_error): Define as macro.
4323	* init.c (build_delete): Warn about incomplete types other than
4324	void, and use the built-in operator delete for them.
4325	* typeck.c (complete_type_or_diagnostic): Renamed from
4326	complete_type_or_else.  Added warn_only argument, passed to...
4327	* typeck2.c (cxx_incomplete_type_diagnostic): ... this.  Print
4328	warnings or errors depending on new warn_only argument.  Renamed
4329	from...
4330	(cxx_incomplete_type_error): ... this.  New implementation in
4331	terms of cxx_incomplete_type_diagnostic.
4332
43332002-05-18  Jason Merrill  <jason@redhat.com>
4334
4335	PR c++/6611
4336	* decl2.c (import_export_decl): If we clear
4337	DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
4338
43392002-05-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4340
4341	PR c++/6620
4342	* pt.c (verify_class_unification): Don't check if PARM is template
4343	parameter dependent.  Simplify.
4344	(unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
4345	parameter dependent expression.
4346
43472002-05-14  Jason Merrill  <jason@redhat.com>
4348
4349	* rtti.c (get_tinfo_decl): Don't call comdat_linkage.
4350	Do set DECL_COMDAT.
4351	(synthesize_tinfo_var): Take the public decl.
4352	(create_real_tinfo_var): Likewise.  Check DECL_COMDAT.
4353	(emit_tinfo_decl): Adjust.  Call import_export_decl.
4354	* decl2.c (import_export_decl): Simplify tinfo decl handling.
4355
43562002-05-14  Alexandre Oliva  <aoliva@redhat.com>
4357
4358	* cp-tree.h (struct lang_type): Added non_zero_init.
4359	(CLASSTYPE_NON_ZERO_INIT_P): New macro.
4360	(zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
4361	* class.c (check_field_decls): Test non_zero_init.
4362	* cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
4363	zero-to-NULL conversions.
4364	* decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
4365	type that needs zero-initialization without zeros.
4366	(check_initializer_decl): Compute zero-initializer for types
4367	that require a non-trivial one.
4368	* init.c (build_forced_zero_init): New function.
4369	(build_default_init): Use it.
4370	* tree.c (zero_init_p): New function.
4371	* typeck2.c (force_store_init_value): New function.
4372	(process_init_constructor): Create non-trivial zero-initializers
4373	for array members and class fields.
4374
43752002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4376
4377	* lang-specs.h: Remove redundant -lang-c++.
4378
43792002-05-13  Jason Merrill  <jason@redhat.com>
4380
4381	* class.c (build_vtbl_ref_1): Use fixed_type_or_null.
4382	(fixed_type_or_null): See through reference vars.
4383	(build_base_path): Vtable contents are constant.
4384	* typeck.c (get_member_function_from_ptrfunc): Likewise.
4385
43862002-05-12  Jason Merrill  <jason@redhat.com>
4387
4388	* cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
4389	structs are safe.
4390
43912002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
4392
4393	* cp-tree.h (flag_ansi): Remove.
4394	* decl2.c (flag_ansi): Remove.
4395	(cxx_decode_option): Set flag_iso and flag_undef.
4396
43972002-05-09  Jason Merrill  <jason@redhat.com>
4398
4399	* typeck.c (get_member_function_from_ptrfunc): Reorganize.
4400	Use subtraction rather than a bitmask to get the index.
4401	* cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
4402
4403	* pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
4404
44052002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
4406
4407	* Make-lang.in (decl2.o): Update.
4408	* cp-tree.h (warn_multichar): Remove.
4409	* decl2.c: Include c-common.h.
4410	(warn_multichar): Remove.
4411
44122002-05-03  Jason Merrill  <jason@redhat.com>
4413
4414	* tree.c (build_cplus_array_type): Only const and volatile get
4415	special handling.
4416
4417	* decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
4418
44192002-04-30  Mark Mitchell  <mark@codesourcery.com>
4420
4421	ABI change, returning simple classes from functions.
4422	* class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
4423	TYPE_HAS_TRIVIAL_INIT_REF is false or
4424	TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
4425
44262002-04-30  Jason Merrill  <jason@redhat.com>
4427
4428	PR debug/6436
4429	* decl.c (grokdeclarator): Don't override TYPE_NAME of an
4430	anonymous class with a typedef if there are attributes.
4431
44322002-04-29  Paul Eggert  <eggert@twinsun.com>
4433
4434	* parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
4435
44362002-04-29  Jakub Jelinek  <jakub@redhat.com>
4437
4438	PR c++/6477
4439	* decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
4440	non-NULL first.
4441
44422002-04-29  Mark Mitchell  <mark@codesourcery.com>
4443
4444	PR c++/6492
4445	* pt.c (tsubst_friend_class): If the friend has an explicit scope,
4446	enter that scope before name lookup.
4447
4448	PR c++/6486
4449	* method.c (do_build_copy_constructor): Avoid building
4450	cv-qualified reference types.
4451
44522002-04-29  Nathan Sidwell  <nathan@codesourcery.com>
4453
4454	PR c++/5719
4455	* decl.c (grok_op_properties): Assignment ops don't have to return
4456	by value. operator% should.
4457
44582002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4459
4460	PR c/6343
4461	* decl.c (duplicate_decls): Call merge_weak.
4462
44632002-04-26  Richard Henderson  <rth@redhat.com>
4464
4465	* parse.y (malloced_yyss, malloced_yyvs): New.
4466	(yyoverflow): Re-add.  Set them.
4467	(free_parser_stacks): New.
4468
44692002-04-26  Mark Mitchell  <mark@codesourcery.com>
4470
4471	PR c++/6497
4472	* method.c (do_build_assign_ref): Pass a derivation to
4473	build_method_call when calling base class assignment operators.
4474
44752002-04-26  Richard Henderson  <rth@redhat.com>
4476
4477	* parse.y (yyoverflow): Revert.
4478
44792002-04-26  Richard Henderson  <rth@redhat.com>
4480
4481	PR c/3581
4482	* parse.y (string): Remove.  Update all uses to use STRING
4483	instead, and not call combine_strings.
4484	* rtti.c (tinfo_name): Use fix_string_type.
4485	* semantics.c (finish_asm_stmt): Don't call combine_strings.
4486	* spew.c (yylexstring): New.
4487	(read_token): Use it.
4488
44892002-04-25  Richard Henderson  <rth@redhat.com>
4490
4491	PR c/2161
4492	* parse.y (yyoverflow): New.
4493
44942002-04-25  Jason Merrill  <jason@redhat.com>
4495
4496	PR c++/5607
4497	* search.c (check_final_overrider): No longer static.
4498	* class.c (update_vtable_entry_for_fn): Call it.
4499	* cp-tree.h: Adjust.
4500
45012002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4502
4503	* cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
4504	* cp-tree.h (cxx_set_yydebug): Die.
4505	* lex.c (YYDEBUG): Get from c-lex.h.
4506	(cxx_set_yydebug): Remove.
4507	* parse.y: Include c-lex.h.
4508	(YYDEBUG): Get from c-lex.h.
4509
45102002-04-24  Mark Mitchell  <mark@codesourcery.com>
4511
4512	PR c++/6438.
4513	* cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
4514	void.
4515
45162002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4517
4518	* cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4519	LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
4520	Redefine.
4521	* cp-tree.h (cp_attribute_table): Rename.
4522	* decl.c (lang_attribute_table): Remove declaration.
4523	(cxx_init_decl_processing): Don't set it.
4524	* tree.c (cp_attribute_table): Rename.
4525
45262002-04-24  Jason Merrill  <jason@redhat.com>
4527
4528	PR c++/6331
4529	* method.c (do_build_copy_constructor): Use cp_build_qualified_type.
4530	* typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
4531	The pedwarn for array assignment is now unconditional.
4532	* tree.c (build_cplus_array_type_1): Still process simple array types
4533	normally in templates.
4534
4535	PR c++/6395
4536	* decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
4537	stuff for comdats.
4538
45392002-04-23  Jakub Jelinek  <jakub@redhat.com>
4540
4541	* parse.y (check_class_key): Allow KEY to be union/enum/struct/class
4542	node with attributes.
4543
45442002-2-23  David O'Brien  <obrien@FreeBSD.org>
4545
4546	* g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
4547	Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
4548
45492002-04-23  Mark Mitchell  <mark@codesourcery.com>
4550
4551	PR c++/6256:
4552	* pt.c (tsubst_friend_class): Handle templates with explicit
4553	nested names.
4554
4555	PR c++/6331:
4556	* typeck.c (merge_types): Remember the cv-qualification of pointer
4557	types when merging them.
4558
45592002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4560
4561	* cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
4562	LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
4563	* cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
4564	cxx_mark_function_context): New.
4565	* decl.c (push_cp_function_context, pop_cp_function_context,
4566	mark_cp_function_context): Rename for consistency.
4567	(cxx_init_decl_processing): Don't set old hooks.
4568
45692002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4570
4571	* call.c (convert_type_from_ellipsis): Rename, update.
4572	* cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
4573	* cp-tree.h (convert_type_from_ellipsis): Rename.
4574	* decl.c (cxx_init_decl_processing): Don't set hook.
4575
45762002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4577
4578	* call.c (build_new_method_call): Update.
4579	* cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
4580	* cp-tree.h (cxx_incomplete_type_error): New.
4581	* decl.c (grokdeclarator, grokparms): Update.
4582	* decl2.c (check_classfn): Update.
4583	* pt.c (tsubst): Update.
4584	* typeck.c (complete_type_or_else, expr_sizeof,
4585	decay_conversion): Update.
4586	* typeck2.c (incomplete_type_error): Rename.
4587	(add_exception_specifier): Update.
4588
45892002-04-18  Jason Merrill  <jason@redhat.com>
4590
4591	PR c++/5658
4592	* search.c (setup_class_bindings): A class template qualifies as a
4593	type binding.
4594
45952002-04-17  Jakub Jelinek  <jakub@redhat.com>
4596
4597	PR c++/6316
4598	* decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
4599	before expanding.
4600
46012002-04-16  Mark Mitchell  <mark@codesourcery.com>
4602
4603	* init.c (begin_init_stmts): Remove commented out code.
4604	(finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
4605	* semantics.c (begin_gobal_stmt_expr): Adjust call to
4606	expand_start_stmt_expr.
4607
46082002-04-15  Mark Mitchell  <mark@codesourcery.com>
4609
4610	* decl.c (register_dtor_fn): Pass the address of dso_handle, not
4611	dso_handle itself, to __cxa_atexit.
4612
46132002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
4614
4615	* error.c (cxx_print_error_function): Adjust call to macros.
4616
46172002-04-14  Jakub Jelinek  <jakub@redhat.com>
4618
4619	* class.c (layout_virtual_bases): Do all dsize computation on trees.
4620
46212002-04-14  Jason Merrill  <jason@redhat.com>
4622
4623	* typeck.c (get_member_function_from_ptrfunc): Don't do
4624	gratuitious division and multiplication on
4625	ptrmemfunc_vbit_in_delta targets.
4626
46272002-04-12  Mark Mitchell  <mark@codesourcery.com>
4628
4629	PR c++/5373.
4630	* semantics.c (finish_expr_stmt): Remember the type of the
4631	expression before any conversions are performed.
4632
46332002-04-12  Mark Mitchell  <mark@codesourcery.com>
4634
4635	PR c++/5189.
4636	* call.c (add_template_candidate_real): Do not treat member
4637	templates as copy constructors.
4638
46392002-04-12  Mark Mitchell  <mark@codesourcery.com>
4640
4641	* decl.c (duplicate_decls): Do not copy the RTL for a variable
4642	declaration if the old variable had an incomplete type and the new
4643	variable does not.
4644	(complete_vars): Do not call layout_decl for completed variables.
4645
46462002-04-12  Richard Sandiford  <rsandifo@redhat.com>
4647
4648	* decl.c (duplicate_decls): Don't try to unify an implicit typedef
4649	with an explicit one.
4650	(follow_tag_typedef): New.
4651	(lookup_tag): Use it to extract the tag of an explicit typedef.
4652	(xref_tag): Likewise.
4653
46542002-04-11  Andrew Haley  <aph@redhat.com>
4655
4656	* typeck.c (type_after_usual_arithmetic_conversions):
4657	If two types have the same variant, return immediately.
4658	When two floating-point operands are the same precision:
4659	  convert to float if one of the operands is float;
4660	  if neither operand is one of the standard types, return the type
4661	  of the first operand.
4662
46632002-04-10  Nathan Sidwell  <nathan@codesourcery.com>
4664
4665	PR c++/5507
4666	* decl.c (make_typename_type): Remove implicit typenameness.
4667
46682002-04-09  Jason Merrill  <jason@redhat.com>
4669
4670	PR optimization/6189
4671	* semantics.c (genrtl_start_function): Don't free
4672	DECL_SAVED_FUNCTION_DATA for inline functions.
4673
4674	* init.c (build_member_call): For now, don't convert to
4675	intermediate base if it would cause an error.
4676
46772002-04-08  Paolo Carlini  <pcarlini@unitus.it>
4678
4679	* parse.y (namespace_qualifier, maybe_identifier,
4680	begin_explicit_instantiation, end_explicit_instantiation,
4681	apparent_template_type, .finish_template_type,
4682	do_id, maybe_init, defarg_again, component_decl_1):
4683	Add ending ';', in accordance with POSIX.
4684
46852002-04-06  Mark Mitchell  <mark@codesourcery.com>
4686
4687	PR c++/5571
4688	* class.c (layout_class_type): Remember incomplete static
4689	variables.
4690	(finish_struct_1): Call complete_vars, not
4691	hack_incomplete_structures.
4692	* cp-tree.h (hack_incomplete_structures): Rename to ...
4693	(complete_vars): ... this.
4694	(struct saved_scope): Remove incomplete.
4695	(namespace_scope_incomplete): Remove.
4696	* decl.c (struct binding_level): Remove incomplete.
4697	(incomplete_vars): New variable.
4698	(mark_binding_level): Don't mark incomplete.
4699	(print_binding_level): Don't print it.
4700	(mark_saved_scope): Don't mark incomplete.
4701	(pushdecl): Use maybe_register_incopmlete_var.
4702	(cxx_init_decl_processing): Register incomplete_vars for GC.
4703	(start_decl_1): Clarify error message.
4704	(hack_incomplete_vars): Remove.
4705	(maybe_register_incomplete_var): New function.
4706	(complete_vars): Likewise.
4707
47082002-04-06  Jason Merrill  <jason@redhat.com>
4709
4710	PR c++/4934
4711	* error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
4712	set before checking it.
4713
4714	PR c++/525
4715	* init.c (build_member_call): Use build_scoped_ref.
4716	(resolve_offset_ref): Likewise.
4717	* call.c (build_scoped_method_call): Likewise.
4718	* tree.c (maybe_dummy_object): Kludge around current_class_type being
4719	wrong.
4720	* typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
4721	* cp-tree.h: Adjust.
4722
4723	* init.c (push_base_cleanups): Just use build_scoped_method_call.
4724
4725	PR c++/6179
4726	* method.c (implicitly_declare_fn): Pass unqualified type to
4727	synthesize_exception_spec.
4728
47292002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4730
4731	* cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
4732	* cvt.c: Update comment.
4733	* init.c (expand_cleanup_for_base): Update.
4734	* semantics.c (finish_parenthesized_expr): Update.
4735	* typeck.c (cp_truthvalue_conversion): Update.
4736
47372002-04-04  Jason Merrill  <jason@redhat.com>
4738
4739	* semantics.c (finish_eh_cleanup): New fn.
4740	* cp-tree.h: Add prototype.
4741	* init.c (perform_member_init, expand_cleanup_for_base): Use
4742	finish_eh_cleanup.
4743	* cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
4744	* cp-tree.h: Remove references.
4745	* decl.c (begin_constructor_body, end_constructor_body): Likewise.
4746	* dump.c (cp_dump_tree): Likewise.
4747	* pt.c (tsubst_expr): Likewise.
4748	* semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove.
4749	(cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT.
4750	* tree.c (cp_statement_code_p): Likewise.
4751
4752	* init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup.
4753
4754	PR c++/5636
4755	* semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
4756	cleanup for nrv.
4757
4758	PR c++/5104
4759	* typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
4760	specifiers.
4761	[METHOD_TYPE]: Use same code as FUNCTION_TYPE.
4762
47632002-04-03  Richard Henderson  <rth@redhat.com>
4764
4765	* cp-lang.c (cxx_warn_unused_global_decl): New.
4766	(LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
4767
47682002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4769
4770	* cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine.
4771	* tree.c (init_tree): Don't set hook.
4772
47732002-04-03  Roger Sayle  <roger@eyesopen.com>
4774
4775	PR c++/5998:
4776	* decl.c (duplicate_decls): Don't mess with assembler names when
4777	redeclaring builtin functions as static.
4778
47792002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
4780
4781	* call.c (build_addr_func): Update.
4782	* class.c (resolve_address_of_overloaded_function): Update.
4783	* cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
4784	* cp-tree.h (cxx_mark_addressable): New.
4785	* decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
4786	* decl2.c (build_cleanup): Update.
4787	* except.c (build_throw): Update.
4788	* init.c (resolve_offset_ref): Update.
4789	* pt.c (convert_nontype_argument): Update.
4790	* semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
4791	* typeck.c (decay_conversion, build_array_ref, build_unary_op,
4792	unary_complex_lvalue): Update.
4793	(mark_addressable): Rename.
4794
47952002-04-01  Roger Sayle  <roger@eyesopen.com>
4796
4797	PR c++/5998:
4798	* decl.c (duplicate_decls):  Overwrite the RTL when (and only
4799	when) overwriting a built-in function.  Don't use COPY_DECL_RTL,
4800	but follow the SET_DECL_RTL idiom used elsewhere in the function.
4801
48022002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
4803
4804	* cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
4805	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
4806	* decl.c (grokdeclarator): Update.
4807	* mangle.c (write_integer_cst): Update.
4808	* typeck.c (build_binary_op): Update.
4809
48102002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
4811
4812	* cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
4813	* lex.c (cxx_init): Don't set hook.
4814
48152002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
4816
4817	* Make-lang.in (error.o): Update.
4818	* cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
4819	* cp-tree.h (struct diagnostic_context): Predeclare.
4820	(cxx_print_error_function): New.
4821	* error.c: Include langhooks-def.h.
4822	(lang_print_error_function): Rename.  Update.
4823	(init_error): Don't set hook.
4824
48252002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4826
4827	* cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
4828	Redefine.
4829	* cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
4830	* decl.c (finish_enum): Similarly.
4831	* error.c (dump_type): Similarly.
4832	* lex.c (cxx_init): Similarly.
4833	* mangle.c (write_builtin_type): Similarly.
4834	* typeck.c (comptypes): Similarly.
4835
48362002-03-28  Roger Sayle  <roger@eyesopen.com>
4837
4838	PR c++/5998:
4839	* decl.c (cxx_init_decl_processing): Re-enable built-in functions
4840	in the g++ front-end.
4841	(duplicate_decl): Allow redefinition of anticipated built-ins.
4842	Fix inlining problem by over-writing the old DECL_RTL.
4843	(lookup_namespace_name): Fail to find an identifier in the
4844	specified namespace if its still anticipated.
4845	(builtin_function_1): New function split out from builtin_function
4846	to create a builtin in the current namespace with given context.
4847	(builtin_function): Call builtin_function_1 to define the
4848	appropriate builtins in both the std and global namespaces.
4849	(select_decl): Don't test for anticipated decls here.
4850	(unqualified_namespace_lookup): Instead ignore them whilst
4851	searching through scopes and namespaces.
4852	* decl2.c (do_nonmember_using_decl): If a using declaration
4853	specifies an anticipated built-in function, mark it as no longer
4854	anticipated in that scope.
4855	(ambiguous_decl):  Avoid resolving to an anticipated decl.
4856	* lex.c (do_scoped_id): Fail to find an identifier in the global
4857	namespace if its still anticipated.
4858
48592002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4860
4861	* cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine.
4862	* cp-tree.h (cp_make_lang_type): Rename.
4863	* lex.c (cp_make_lang_type): Rename.
4864	(make_aggr_type): Update.
4865	* tree.c (init_tree): Don't set make_lang_type_fn.
4866
48672002-03-29  Jakub Jelinek  <jakub@redhat.com>
4868
4869	PR c++/6073
4870	* class.c (finish_struct_1): Update static field's DECL_MODE even
4871	if its type is a variant of t.
4872
48732002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4874
4875	* cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
4876	* cp-tree.h (cxx_insert_default_attributes): New.
4877	* decl.c (insert_default_attributes): Rename.
4878
48792002-03-27  Mark Mitchell  <mark@codesourcery.com>
4880
4881	PR c++/4884
4882	* call.c (build_op_delete_call): Allow for the fact the placement
4883	may be a COMPOUND_EXPR.
4884
48852002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4886
4887	* cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
4888	* cp-tree.h (init_cplus_expand): Remove.
4889	(cxx_expand_expr): New.
4890	* expr.c (cplus_expand_expr): Rename cxx_expand_expr,
4891	fix prototype.
4892	(init_cplus_expand): Remove.
4893	* lex.c (cxx_init): Don't call init_cplus_expand.
4894
48952002-03-26  Mark Mitchell  <mark@codesourcery.com>
4896
4897	PR c++/4884.
4898	* init.c (build_new_1): Allow for the fact the result of
4899	build_function_call may be a COMPOUND_EXPR.
4900
49012002-03-26  Nathan Sidwell  <nathan@codesourcery.com>
4902
4903	PR c++/5682
4904	* cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
4905	(dfs_skip_nonprimary_vbases_unmarkedp): Remove.
4906	(dfs_skip_nonprimary_vbases_markedp): Remove.
4907	* search.c (get_shared_vbase_if_not_primary): Remove.
4908	(dfs_skip_nonprimary_vbases_unmarkedp): Remove.
4909	(dfs_skip_nonprimary_vbases_markedp): Remove.
4910	(dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
4911	(dfs_marked_real_bases_queue_p): Likewise.
4912
49132002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
4914
4915	* cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
4916	* cp-tree.h (cxx_mark_tree): New.
4917	* decl.c (lang_mark_tree): Rename cxx_mark_tree.
4918
49192002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4920
4921	* cp-tree.h (cxx_maybe_build_cleanup): New.
4922	* decl.c (destroy_local_var, hack_incomplete_structures): Update.
4923	(maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
4924	* tree.c (build_target_expr): Update.
4925	* cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine.
4926
49272002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4928
4929	* decl2.c (cxx_decode_option): Handle -E.
4930	* lang-specs.h (default_compilers): Preprocess with cc1plus.
4931	* lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
4932
49332002-03-23  Jakub Jelinek  <jakub@redhat.com>
4934
4935	PR c++/6037
4936	* decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
4937
49382002-03-23  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
4939
4940	* error.c (dump_type): Be careful about implicit typenames.
4941
49422002-03-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
4943
4944	PR C++/3656
4945	* semantics.c (finish_base_specifier): Handle erronous base
4946	classes.
4947
49482002-03-22  Zack Weinberg  <zack@codesourcery.com>
4949
4950	* error.c: Always use REAL_VALUE_TO_DECIMAL; don't test
4951	REAL_IS_NOT_DOUBLE.
4952
49532002-03-22  Jeff Knaggs  <jknaggs@redhat.com>
4954
4955	* typeck.c (get_member_function_from_ptrfunc): Scale idx down to
4956	an index into the vtable_entry array regardless of
4957	TARGET_PTRMEMFUNC_VBIT_LOCATION.
4958
49592002-03-21  Aldy Hernandez  <aldyh@redhat.com>
4960
4961	* tree.c (cp_cannot_inline_tree_fn): Same.
4962
49632002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4964
4965	* cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
4966	insert_block, getdecls, global_bindings_p): New.
4967
49682002-03-20  Nathan Sidwell  <nathan@codesourcery.com>
4969
4970	PR c++/4361
4971	* mangle.c (struct globals) Add internal_mangling_p member.
4972	(write_template_param): Do internal mangling, if needed.
4973	(mangle_conv_op_name_for_type): Request internal mangling.
4974
49752002-03-20  Jason Merrill  <jason@redhat.com>
4976
4977	PR c++/2136
4978	* init.c (build_delete): Check access for a member op delete here.
4979	* decl2.c (delete_sanity): Not here.
4980
49812002-03-19  Jason Merrill  <jason@redhat.com>
4982
4983	PR c++/5118
4984	* class.c (get_vfield_name): Use the constructor_name.
4985
49862002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4987
4988	* cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
4989	* cp-tree.h (lang_printable_name): Rename.
4990	* error.c (lang_decl_name): Use new hook.
4991	* lex.c (cxx_init): Remove old hook.
4992	* pt.c (tsubst_decl): Use new hook.
4993	* tree.c (lang_printable_name): Rename.
4994
49952002-03-18  Eric Botcazou  <ebotcazou@multimania.com>
4996
4997	PR c++/3882
4998	* pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
4999	(tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
5000	only after recording the declaration.
5001
50022002-03-18  Jason Merrill  <jason@redhat.com>
5003
5004	PR c++/2039
5005	* init.c (resolve_offset_ref): Hand off to build_component_ref.
5006
5007	PR c++/4222, c++/5995
5008	* call.c (build_over_call): Fix empty class logic.
5009
5010	PR c++/3870
5011	* cp-tree.h (struct saved_scope): Add last_parms field.
5012	* decl.c (maybe_push_to_top_level): Save last_function_parms.
5013	(pop_from_top_level): Restore it.
5014
5015	PR c++/4377
5016	* mangle.c (write_expression): Strip NOP_EXPRs sooner.  Also strip
5017	NON_LVALUE_EXPRs.
5018
5019	PR c++/4003
5020	* pt.c (tsubst_friend_function): Use decl_namespace_context.
5021
5022	PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
5023	* class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
5024	type with a nontrivial destructor.
5025
50262002-03-17  Jason Merrill  <jason@redhat.com>
5027
5028	PR c++/4460
5029	* class.c (build_base_path): Virtual base layout is fixed in
5030	in-charge [cd]tors.
5031
50322002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5033
5034	* cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
5035	* parse.y (yyparse): Remove macro.
5036
50372002-03-17  Jason Merrill  <jason@redhat.com>
5038
5039	PR c++/5757
5040	* init.c (build_new_1): Pass the right pointer to op delete.
5041
50422002-03-16  Nathan Sidwell  <nathan@codesourcery.com>
5043
5044	PR c++/4361
5045	* cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated
5046	conversion operators go.
5047	(struct lang_decl_flags): Add template_conv_p and unused
5048	bitfields.
5049	(DECL_TEMPLATE_CONV_FN_P): New macro.
5050	* call.c (build_user_type_conversion_1): Don't check second type
5051	conversion of overload set first.
5052	* class.c (add_method): Make sure templated conversion operators
5053	all end up on slot 2.
5054	* lex.c (do_identifier): A conversion operator token might be
5055	satisfied by a templated conversion operator.
5056	* pt.c (check_explicit_specialization): Use
5057	CLASSTYPE_FIRST_CONVERSION_SLOT.
5058	(template_parm_this_level_p): New function.
5059	(push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P.
5060	* search.c (lookup_fnfields_1): Template conversions will be on
5061	the first slot.
5062	* typeck.c (build_component_ref): Preserve the type of an
5063	conversion operator name on the overload type.
5064	(build_x_function_call): Retrieve the conversion operator name.
5065
50662002-03-15  Richard Henderson  <rth@redhat.com>
5067
5068	* init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
5069
50702002-03-15  Mark Mitchell  <mark@codesourcery.com>
5071
5072	* cp-tree.h (CLEANUP_DECL): Remove.
5073	(CLEANUP_EXPR): Likewise.
5074	* decl.c (destroy_local_var): Simplify.
5075	(maybe_build_cleanup): Tidy.
5076	* dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
5077	* semantics.c (cp_expand_stmt): Likewise.
5078	* cp/tree.c (cp_statement_code_p): Likewise.
5079
50802002-03-15  Jason Merrill  <jason@redhat.com>
5081
5082	PR c++/5857
5083	* decl.c (duplicate_decls): Use merge_types instead of common_type.
5084	* typeck.c (common_type): Just hand off to
5085	type_after_usual_arithmetic_conversions and
5086	composite_pointer_type.
5087	(merge_types): New fn.
5088	(commonparms): Use it instead of common_type.
5089	(type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
5090	(composite_pointer_type): Also handle attributes.
5091	* cp-tree.h: Declare merge_types.
5092
5093	* decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
5094	variables.
5095	* decl2.c (maybe_make_one_only): Also mark the decl as needed.
5096
50972002-03-14  Richard Henderson  <rth@redhat.com>
5098
5099	* decl.c: Include c-pragma.h.
5100	(start_decl, start_function): Invoke maybe_apply_pragma_weak.
5101	* Make-lang.in: Update dependencies.
5102
51032002-03-14  Jakub Jelinek  <jakub@redhat.com>
5104
5105	PR c++/5908
5106	* call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
5107	* cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
5108
51092002-03-12  Richard Sandiford  <rsandifo@redhat.com>
5110
5111	* mangle.c (write_builtin_type): Handle 128-bit integers even if
5112	they are not a standard integer type.
5113
51142002-03-12  Richard Sandiford  <rsandifo@redhat.com>
5115
5116	* cp-tree.h (init_init_processing): Remove declaration.
5117	* init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
5118	* decl.c (cxx_init_decl_processing): Don't call init_init_processing.
5119
51202002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5121
5122	* cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
5123	Define.
5124	* decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
5125	tree_code_length.
5126	* lex.c (cplus_tree_code_type, cplus_tree_code_length,
5127	cplus_tree_code_name): Delete.
5128	(cxx_init): Don't call add_c_tree_codes, instead set
5129	lang_unsafe_for_reeval.  Don't try to copy into the various
5130	tree_code arrays.
5131
51322002-03-12  Nathan Sidwell  <nathan@codesourcery.com>
5133
5134	PR c++/5659
5135	* decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
5136	* decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
5137	definitions.
5138
51392002-03-11  Nathan Sidwell  <nathan@codesourcery.com>
5140
5141	Revert 2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>,
5142	DR209 is now not a defect.
5143	* cp-tree.h (skip_type_access_control): Remove.
5144	* decl.c (grokdeclarator): Do type access control for friend
5145	declarations.
5146	* semantics.c (decl_type_access_control): Don't reset
5147	current_type_lookups.
5148	(save_type_access_control): Always save the lookups.
5149	(skip_type_access_control): Remove.
5150	(finish_class_definition): Don't change type_lookups.
5151
51522002-03-11  Nathan Sidwell  <nathan@codesourcery.com>
5153
5154	Revert 2000-12-01  Nathan Sidwell  <nathan@codesourcery.com>,
5155	It is incorrect.
5156	* typeck.c (build_static_cast): Compare non-qualified types
5157	with pointer to member conversions.
5158
51592002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
5160	    Daniel Berlin  <dan@dberlin.org>
5161
5162	* cp-lang.c (ok_to_generate_alias_set_for_type): New function.
5163	(cxx_get_alias_set): Use it.
5164
51652002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5166
5167	* cp-tree.h (stabilize_expr): Prototype.
5168
51692002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5170
5171	* cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
5172	conditional return void.
5173
51742002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
5175
5176	* cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
5177	* cp-tree.h (cxx_unsave): New.
5178	* tree.c (cp_unsave): Rename cxx_unsave, update prototype.
5179	(init_tree): Update.
5180
51812002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5182
5183	* decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
5184	explicit sizeof/sizeof.
5185	* decl2.c (cxx_decode_option): Likewise.
5186	* lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
5187
51882002-03-02  Nathan Sidwell  <nathan@codesourcery.com>
5189
5190	PR c++/775
5191	* decl.c (lookup_tag): Only reject enum/class mismatch, not
5192	class/union mismatch.
5193	* parse.y (check_class_key): New function.
5194	(structsp): Call it.
5195
51962002-03-01  Michael Matz  <matz@suse.de>
5197
5198	* typeck.c (cp_pointer_int_sum): Complete inner type which is
5199	used later by size_in_bytes().
5200
52012002-03-01  Phil Edwards  <pme@gcc.gnu.org>
5202
5203	* cp-tree.h:  Require __GNUC__ to be #defined.
5204	(build_init):  Add missing prototype.
5205
52062002-03-01  Jason Merrill  <jason@redhat.com>
5207
5208	* except.c: Don't include decl.h or obstack.h.  Do include
5209	tree-inline.h.
5210	(build_throw): Destroy temporaries from the thrown
5211	expression before calling __cxa_throw.  Construct a thrown
5212	temporary directly into the exception object.
5213	(stabilize_throw_expr): New function.
5214	(wrap_cleanups_r): New function.
5215	* tree.c (stabilize_expr): New function.
5216	* init.c (build_init): New function.
5217	* Make-lang.in (cp/except.o): Adjust .h deps.
5218
52192002-02-28  Jason Merrill  <jason@redhat.com>
5220
5221	* search.c (lookup_base_r): Don't clear is_non_public just because
5222	we found a friendly scope.
5223
5224	* decl.c (finish_function): Only warn about missing return
5225	statement with -Wreturn-type.
5226
52272002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
5228
5229	* class.c (build_clone): Update.
5230	* cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
5231	* cp-tree.h (cxx_dup_lang_specific_decl): New.
5232	* lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
5233	(copy_decl): Update.
5234	* method.c (make_thunk): Update.
5235
52362002-02-27  Zack Weinberg  <zack@codesourcery.com>
5237
5238	* decl2.c: Delete traditional-mode-related code copied from
5239	the C front end but not used, or used only to permit the
5240	compiler to link.
5241
52422002-02-24 Craig Rodrigues  <rodrigc@gcc.gnu.org>
5243
5244	PR c++/4093
5245	* cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
5246	to void.
5247
52482002-02-22  Jakub Jelinek  <jakub@redhat.com>
5249
5250	PR other/5746
5251	* semantics.c (finish_switch_cond): Don't call get_unwidened
5252	if error_mark_node.
5253
52542002-02-22  Nathan Sidwell  <nathan@codesourcery.com>
5255
5256	PR c++/2645, DR 295
5257	* cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
5258	tf_keep_type_decl.
5259	(make_typename_type): Use tsubst_flags_t.
5260	* decl.c (make_typename_type): Adjust. Return non-artificial
5261	TYPE_DECLs, if required.
5262	(grokdeclarator): Simplify CVR qualification handling. Allow bad
5263	qualifiers on typedef types.
5264	* decl2.c (handle_class_head): Adjust make_typename_type call.
5265	* parse.y (nested_name_specifier): Likewise.
5266	(typename_sub0): Likewise.
5267	(typename_sub1): Likewise.
5268	* pt.c (convert_template_argument): Adjust make_typename_type
5269	return value.
5270	(tsubst): Adjust cp_build_qualified_type_real calls.
5271	(check_cv_quals_for_unify): Cope with allowing bad qualifications
5272	on template type parms.
5273	(instantiate_decl): Recheck substitutions to give warnings on bad
5274	qualifications.
5275	* tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
5276
52772002-02-21  Aldy Hernandez  <aldyh@redhat.com>
5278
5279	* cp/decl.c (duplicate_decls): Merge always_inline attribute.
5280
5281	* cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
5282	unless DECL_ALWAYS_INLINE.
5283
52842002-02-20  Jakub Jelinek  <jakub@redhat.com>
5285
5286	* typeck.c (cp_pointer_int_sum): Renamed from
5287	pointer_int_sum, call pointer_int_sum.
5288
52892002-02-20  Jakub Jelinek  <jakub@redhat.com>
5290
5291	* decl.c (duplicate_decls): Return 0 if issued error about
5292	redeclaration.
5293
52942002-02-19  Jason Merrill  <jason@redhat.com>
5295
5296	ABI change: Mangle `void (A::*)() const' as
5297	M1AKFvvE, not MK1AFvvE.
5298	* mangle.c (write_function_type): Write cv-quals for member
5299	function type here.
5300	(write_pointer_to_member_type): Not here.
5301
53022002-02-18  Jason Merrill  <jason@redhat.com>
5303
5304	* pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
5305	(do_decl_instantiation): Likewise.
5306
53072002-02-17  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5308
5309	PR c++/5685
5310	* decl.c (duplicate_decls): Make warning unconditional
5311	if duplicate default argument declarations are present.
5312
53132002-02-17  Jakub Jelinek  <jakub@redhat.com>
5314
5315	* typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
5316	shortening.
5317
53182002-02-15  Nathan Sidwell  <nathan@codesourcery.com>
5319
5320	* decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
5321	remove incorrect comment. Move #if 0'd code to common path. Use
5322	IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
5323
53242002-02-13  Jason Merrill  <jason@redhat.com>
5325
5326	* decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
5327	(finish_function): Don't warn if current_function_returns_null.
5328
5329	* typeck2.c (digest_init): Do handle values of vector type.
5330
5331	* typeck2.c (digest_init, process_init_constructor): Treat vectors
5332	like arrays.
5333
53342002-02-11  Jason Merrill  <jason@redhat.com>
5335
5336	* parse.y (reserved_declspecs): Don't handle attributes.
5337	(reserved_typespecquals): Handle them here.
5338	* Make-lang.in (parse.c): Adjust expected conflicts.
5339
53402002-02-08  Jakub Jelinek  <jakub@redhat.com>
5341
5342	* parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
5343	instead of compstmt.
5344	(compstmt_or_stmtexpr): Renamed from compstmt.
5345	(compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
5346
53472002-02-07  Nathan Sidwell  <nathan@codesourcery.com>
5348
5349	Rename instantiate_type_flags to tsubst_flags_t & expand use.
5350	* cp-tree.h (instantiate_type_flags): Rename to ...
5351	(tsubst_flags_t): ... here. Rename itf_complain to tf_error,
5352	add tf_warning flag.
5353	(instantiate_type): Adjust prototype.
5354	(tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
5355	do_type_instantiation, cp_build_qualified_type_real): Likewise.
5356	cp_build_qualified_type: Adjust.
5357	* class.c (instantiate_type): Adjust parameter. Rename itf_* to
5358	tf_*.
5359	* call.c (standard_conversion): Rename itf_* to tf_*.
5360	(reference_binding): Likewise.
5361	(convert_like_real): Likewise.
5362	* cvt.c (cp_convert_to_pointer): Likewise.
5363	(convert_to_reference): Likewise.
5364	* decl.c (lookup_namespace_name): Use tf_* flags.
5365	(make_typename_type): Likewise.
5366	(grokdeclarator): Likewise.
5367	* pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
5368	(coerce_template_template_parms, convert_template_argument,
5369	coerce_template_parms, maybe_get_template_decl_from_type_decl,
5370	lookup_template_class, tsubst_friend_function, tsubst_friend_class,
5371	instantiate_class_template, tsubst_template_arg_vector,
5372	tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
5373	tsubst_decl, tsubst_arg_types, tsubst_function_type,
5374	tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
5375	instantiate_template, fn_type_unification,
5376	resolve_overloaded_unification, verify_class_unification,
5377	unify, get_bindings_real, do_type_instantiation,
5378	regenerate_decl_from_template, instantiate_decl,
5379	tsubst_initializer_list, tsubst_enum,
5380	get_mostly_instantiated_function_type,
5381	invalid_nontype_parm_type_p): Likewise.
5382	* tree.c (cp_build_qualified_type_real): Likewise.
5383	* typeck.c (build_binary_op): Rename itf_* to tf_*.
5384	(build_ptrmemfunc): Likewise.
5385	(convert_for_assignment): Likewise.
5386
53872002-02-07  Nathan Sidwell  <nathan@codesourcery.com>
5388
5389	PR c++/109
5390	* decl.c (grokdeclarator): Allow friend declarations from
5391	dependent types.
5392	* decl2.c (handle_class_head): Don't push into template parm contexts.
5393	* pt.c (push_template_decl_real): Template parm contexts are never
5394	being defined.
5395
53962002-02-05  Alexandre Oliva  <aoliva@redhat.com>
5397
5398	* class.c: Include target.h.
5399	(check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
5400	BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
5401	bit-field layout.
5402	* Make-lang.in: Adjust deps.
5403
54042002-02-05  Jason Merrill  <jason@redhat.com>
5405
5406	* error.c (dump_type): Be more helpful about VECTOR_TYPE.
5407
54082002-02-04  Jakub Jelinek  <jakub@redhat.com>
5409
5410	* semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
5411	(finish_switch_cond): Set SWITCH_TYPE.
5412
54132002-02-04  Richard Henderson  <rth@redhat.com>
5414
5415	* method.c (use_thunk): Always initialize the block tree.  Reindent.
5416	* semantics.c (expand_body): Emit thunks after function, not before.
5417
54182002-02-04  Jason Merrill  <jason@redhat.com>
5419
5420	* decl.c (start_function): Call cplus_decl_attributes immediately
5421	after grokdeclarator.
5422
5423	* decl.c (start_function): Combine DECL_RESULT handling code.
5424
54252002-02-03  Jason Merrill  <jason@redhat.com>
5426
5427	* xref.c: Remove.
5428	* Make-lang.in (CXX_OBJS): Remove cp/xref.o
5429	(cp/xref.o): Remove dependencies.
5430	* class.c (finish_struct_1, check_methods): Don't call xref fns.
5431	(finish_struct_1): Likewise.
5432	* friend.c (make_friend_class): Likewise.
5433	* lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
5434	* spew.c (read_process_identifier): Likewise.
5435
54362002-02-01  Jason Merrill  <jason@redhat.com>
5437
5438	PR c++/4872
5439	* decl.c (finish_function): Warn about a non-void function with
5440	no return statement and no abnormal exit.
5441	* cp-tree.h (struct cp_language_function): Add returns_abnormally.
5442	(current_function_returns_abnormally): New macro.
5443	* call.c (build_call): Set it.
5444
5445	* typeck.c (build_component_ref): Always complain about offsetof
5446	constructs on non-PODs.  Only make it an error for members of
5447	virtual bases.
5448
5449	* error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
5450	(dump_function_decl): Always dump parms.
5451
5452	* decl2.c (finish_static_data_member_decl): Complain about a local
5453	class with a static data member.
5454
5455	PR c++/4286
5456	* search.c (lookup_field_1): Don't xref a static data member
5457	just because we looked it up.
5458
54592002-01-31  Jason Merrill  <jason@redhat.com>
5460
5461	* Make-lang.in (parse.c): Handle .output file.
5462
5463	PR c++/3395
5464	* decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
5465	not TREE_TYPE.
5466	* semantics.c (finish_class_definition): Adjust.
5467
5468	Allow attributes in parms and casts.
5469	* parse.y (named_parm): Don't strip attrs.
5470	(declmods): Remove 'attributes' production.
5471	(nonempty_cv_qualifiers): Accept attributes.
5472	(ATTRIBUTE): Give precedence.
5473	* decl.c (groktypename): Handle attributes.
5474	(grokparms): Likewise.
5475
54762002-01-29  Jakub Jelinek  <jakub@redhat.com>
5477
5478	* decl2.c (cxx_decode_option): Pass 0 as last argument to
5479	cpp_handle_option.
5480	* lang-specs.h: Use cpp_unique_options instead of cpp_options
5481	when used together with cc1_options.
5482
54832002-01-29  Nathan Sidwell  <nathan@codesourcery.com>
5484
5485	PR c++/5132
5486	* typeck2.c (digest_init): Make sure non-array core type is
5487	instantiated.
5488	* decl2.c (reparse_absdcl_as_casts): Just store the type in the
5489	constructor, rather than build a new one.
5490	(build_expr_from_tree, CONSTRUCTOR case): Be careful with the
5491	PURPOSE of constructor elts.
5492
54932002-01-23  Zack Weinberg  <zack@codesourcery.com>
5494
5495	* Make-lang.in (parse.c): Adjust expected number of
5496	shift-reduce conflicts.
5497	(decl.o): Depend on diagnostic.h.
5498	* decl.c: Include diagnostic.h.
5499	(grokdeclarator): Check for null pointer.
5500	(finish_function): Don't abort when
5501	current_binding_level->parm_flag != 1, if errors have
5502	occurred; throw away the statement tree and extra binding
5503	levels, and continue.
5504	* lex.c (note_list_got_semicolon): Check for null pointer.
5505	* method.c (hack_identifier): Just return error_mark_node if
5506	value is error_mark_node.
5507	* parse.y (primary: TYPEID(type_id)): No need to use
5508	TYPE_MAIN_VARIANT here.
5509	(handler_seq): Accept an empty list of catch clauses and
5510	generate a fake handler block to avoid later crashes.
5511	(ansi_raise_identifier): Accept the error token too.
5512	* semantics.c (begin_class_definition,
5513	finish_class_definition): Check for error_mark_node.
5514
55152002-01-23  Zack Weinberg  <zack@codesourcery.com>
5516
5517	* typeck2.c (friendly_abort): Delete definition.
5518	* cp-tree.h (friendly_abort): Don't prototype.
5519	(my_friendly_assert): Use fancy_abort.
5520
55212002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5522
5523	* cp-tree.h (my_friendly_abort): Remove.
5524
55252002-01-23  Jakub Jelinek  <jakub@redhat.com>
5526
5527	* spew.c (pending_inlines, pending_inlines_tail,
5528	processing_these_inlines): Make static.
5529	(mark_pending_inlines): Remove static.
5530	(begin_parsing_inclass_inline): If in function, save pi
5531	for GC to cp_function_chain->unparsed_inlines instead.
5532	(process_next_inline): Likewise.
5533	* cp-tree.h (struct cp_language_function): Add unparsed_inlines.
5534	(mark_pending_inlines): Add prototype.
5535	* decl.c (spew_debug): Remove unused extern.
5536	(mark_lang_function): Call mark_pending_inlines.
5537
55382002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5539
5540	* call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
5541	init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
5542	semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
5543	Change my_fancy_abort() to abort().
5544
55452002-01-23  Jason Merrill  <jason@redhat.com>
5546
5547	PR c++/5453
5548	* class.c (fixed_type_or_null): Fix thinko.
5549
5550	PR c++/3331
5551	* init.c (resolve_offset_ref): Use build_indirect_ref.
5552
5553	* decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
5554
55552002-01-22  Jason Merrill  <jason@redhat.com>
5556
5557	* parse.y (function_body): Suppress the block for the outermost
5558	curly braces.
5559	* decl.c (pushdecl): Don't try to skip it.
5560	(begin_function_body): Keep the block we create, not the next one.
5561	* init.c (emit_base_init): Don't mess with keep_next_level.
5562
5563	* class.c (build_base_path): Tweak formatting.
5564
55652002-01-19  Nathan Sidwell  <nathan@codesourcery.com>
5566
5567	Fix regression introduced with patch for c++/775
5568	* parse.y (class_head_defn): Check for template specializations
5569	with a different class-key.
5570
55712002-01-17  Jason Merrill  <jason@redhat.com>
5572
5573	* decl.c (begin_constructor_body, begin_destructor_body): New fns.
5574	(begin_function_body): Call them and keep_next_level.
5575	* init.c (emit_base_init): Call keep_next_level.
5576	* semantics.c (setup_vtbl_ptr): Lose.
5577	* cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
5578	(vtbls_set_up_p): Lose.
5579	* pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
5580	* method.c (do_build_copy_constructor): Likewise.
5581	(synthesize_method): Call finish_mem_initializers.
5582	* parse.y (nodecls): Likewise.
5583
5584	* error.c (dump_type_suffix): Print the exception specs before
5585	recursing.
5586	(dump_function_decl): Here, too.
5587
5588	* cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
5589
55902002-01-10  Ira Ruben	<ira@apple.com>
5591
5592	PR c++/907
5593	* decl.c (start_method): Handle attrlist.
5594
55952002-01-10  Jakub Jelinek  <jakub@redhat.com>
5596
5597	* decl2.c (max_tinst_depth): Increase default limit to 500.
5598
55992002-01-10  Graham Stott  <grahams@redhat.com>
5600
5601	* spew.c (YYCHAR): Uppercase macro parameter and add
5602	parenthesis.
5603	(YYCODE): Likewise.
5604	(NAME): Uppercase macro parameter.
5605
56062002-01-09  Graham Stott  <grahams@redhat.com>
5607
5608	* decl.h (grokdeclarator): Wrap long line.
5609
5610	* semantics.c (FINISH_COND): Uppercase macro paramaters and
5611	add parenthesis.
5612
56132002-01-08  Graham Stott  <grahams@redhat.com>
5614
5615	* xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
5616	(PALLOC): Uppercase macro parameter and whitespace.
5617	(SALLOC): Uppercase macro parameter.
5618	(SFREE): Uppercase macros parameter, add parenthese and
5619	whitespace.
5620	(STREQL): Uppercase macro parameter and whitespace.
5621	(STRNEQ): Likewise.
5622	(STRLSS): Likewise.
5623	(STRLEQ): Likewise.
5624	(STRGTR): Likewise.
5625	(STRGEQ): Likewise.
5626
5627	* call.c (convert_like): Add parenthesis and wrap.
5628	(convert_like_with_context): Likewise.
5629	(ICS_RANK): Whitespace.
5630	(NEED_TEMPORARY_P): Remove parenthesis.
5631
5632	* class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
5633	whitespace.
5634	(VTT_MARKED_BINFO_P): Likewise.
5635
5636	* decl.c (BINDING_LEVEL): Add parenthesis.
5637	(DEF_OPERATOR): Likewise.
5638
5639	* mangle.c (MANGLE_TRACE): Add parenthesis.
5640	(MANGLE_TRACE_TREE): Likewise.
5641	(write_signed_number): Likewise.
5642	(write_unsigned_number): Likewise.
5643
5644	* pt.c (ccat): Uppercase macro parameter.
5645	(cat): Likewise
5646
5647	* search.c (SET_BINFO_ACCESS): Add parenthesis.
5648
56492002-01-07  Jason Merrill  <jason@redhat.com>
5650
5651	* decl2.c (coerce_new_type): Downgrade error for size_t mismatch
5652	to pedwarn.
5653
5654	PR c++/3536
5655	* method.c (make_thunk): If !flag_weak, give the thunk the
5656	function's linkage.
5657	(use_thunk): Here, too.
5658
56592002-01-07  Graham Stott  <grahams@redhat.com>
5660
5661	* error.c: Update copyright date.
5662	(print_scope_operator): Add parenthesis.
5663	(print_left_paren): Likewise.
5664	(print_right_paren): Likewise.
5665	(print_left_bracket): Likewise.
5666	(print_right_bracket): Likewise.
5667	(print_template_argument_list_start): Likewise.
5668	(print_template_argument_list_end): Likewise.
5669	(print_non_consecutive_character): Likewise.
5670	(print_tree_identifier): Likewise.
5671	(print_identifier): Likewise.
5672	(NEXT_CODE): Uppercase macro parameter.
5673	(ident_fndecl): Delete unused.
5674	(GLOBAL_THING): Likewise.
5675
56762002-01-06  Graham Stott  <grahams@redhat.com>
5677
5678	* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
5679	(VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
5680	(VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
5681	(RECORD_OR_UNION_TYPE_CHECK): Likewise.
5682	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
5683	(C_IS_RESERVED_WORD): Uppercase macro parameter.
5684	(C_RID_YYCODE) Likewise.
5685	(ptrmem_cst): Use rtx.
5686	(LOCAL_BINDING_P): Add whitespace.
5687	(INHERITED_VALUE_BINDING_P): Likewise.
5688	(BINDING_SCOPE): Wrap long line.
5689	(BINDING_HAS_LEVEL_P): Remove parenthesis.
5690	(BINDING_VALUE): Wrap long line.
5691	(BINDING_TYPE): Whitespace.
5692	(IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
5693	(SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
5694	(IDENTIFIER_NAMESPACE_VALUE): Likewise.
5695	(SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
5696	(same_type_p): Uppercase macro parameters.
5697	(same_type_ignoring_top_level_qualifiers_p): Likewise.
5698	(OVL_FUNCTION): Wrap long line.
5699	(OVL_CHAIN): Whitespace.
5700	(OVL_CURRENT): Add parenthesis and whitespace.
5701	(OVL_NEXT): Whitespace.
5702	(OVL_USED): Likewise.
5703	(IDENTIFIER_TYPE_VALUE): Likewise.
5704	(REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
5705	(SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
5706	(LANG_ID_FIELD): Whitespace.
5707	(SET_LANG_ID(NODE,VALUE,NAME): Likewise.
5708	(IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
5709	(SET_IDENTIFIER_LABEL_VALUE): Whitespace.
5710	(IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
5711	(SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
5712	(IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
5713	(SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
5714	(IDENTIFIER_VIRTUAL_P): Likewise.
5715	(IDENTIFIER_OPNAME_P): Likewise.
5716	(IDENTIFIER_TYPENAME_P): Remove parenthesis.
5717	(C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
5718	(C_SET_EXP_ORIGINAL_CODE): Likewise.
5719	(TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
5720	(TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
5721	(IS_AGGR_TYPE): Uppercase macro parameter.
5722	(CLASS_TYPE_P): Likewise.
5723	(IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
5724	(IS_AGGR_TYPE_2): Whitespace.
5725	(TAGGED_TYPE_P): Uppercase macro parameter.
5726	(TYPE_BUILT_IN): Whitespace.
5727	(TYPE_FOR_JAVA): Likewise.
5728	(FUNCTION_ARG_CHAIN): Remove parenthesis.
5729	(FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
5730	(FUNCTION_FIRST_USER_PARAM): Likewise.
5731	(PROMOTES_TO_AGGR_TYPE): Whitespace.
5732	(DERIVED_FROM_P): Add parenthesis and wrap.
5733	(UNIQUELY_DERIVED_FROM_P): Likewise.
5734	(ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
5735	(PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
5736	(CLASSTYPE_USE_TEMPLATE): Whitespace.
5737	(CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
5738	(TYPE_GETS_DELETE): Add parenthesis.
5739	(TYPE_HAS_CONVERSION): Add parenthesis and wrap.
5740	(TYPE_HAS_ASSIGN_REF): Likewise,
5741	(TYPE_HAS_CONST_ASSIGN_REF): Likewise.
5742	(TYPE_HAS_INIT_REF): Likewise.
5743	(TYPE_HAS_CONST_INIT_REF): Likewise.
5744	(TYPE_BEING_DEFINED): Likewise.
5745	(TYPE_LANG_SPECIFIC): Likewise.
5746	(CLASSTYPE_RTTI): Likewise.
5747	(TYPE_OVERLOADS_CALL_EXPR): Likewise.
5748	(TYPE_OVERLOADS_ARRAY_REF): Likewise.
5749	(TYPE_OVERLOADS_ARROW): Likewise.
5750	(TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
5751	(TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
5752	(CLASSTYPE_METHOD_VEC): Likewise.
5753	(CLASSTYPE_MARKED_N): Likewise.
5754	(CLASSTYPE_MARKED): Likewise.
5755	(CLASSTYPE_MARKED2): Likewise.
5756	(CLASSTYPE_MARKED3): Likewise.
5757	(CLASSTYPE_MARKED4): Likewise.
5758	(CLASSTYPE_MARKED5): Likewise.
5759	(CLASSTYPE_MARKED6): Likewise.
5760	(SET_CLASSTYPE_MARKED): Whitespace.
5761	(CLEAR_CLASSTYPE_MARKED): Likewise.
5762	(SET_CLASSTYPE_MARKED2): Likewise.
5763	(CLEAR_CLASSTYPE_MARKED2): Likewise.
5764	(SET_CLASSTYPE_MARKED3): Likewise.
5765	(CLEAR_CLASSTYPE_MARKED3): Likewise.
5766	(SET_CLASSTYPE_MARKED4): Likewise.
5767	(CLEAR_CLASSTYPE_MARKED4): Likewise.
5768	(SET_CLASSTYPE_MARKED5): Likewise.
5769	(CLEAR_CLASSTYPE_MARKED5): Likewise.
5770	(SET_CLASSTYPE_MARKED6): Likewise.
5771	(CLEAR_CLASSTYPE_MARKED6): Likewise.
5772	(CLASSTYPE_TAGS): Likewise.
5773	(CLASSTYPE_VSIZE): Likewise.
5774	(CLASSTYPE_VBASECLASSES): Likewise.
5775	(CANONICAL_BINFO): Add parenthesis.
5776	(CLASSTYPE_SIZE(NODE): Likewise.
5777	(CLASSTYPE_SIZE_UNIT): Likewise.
5778	(CLASSTYPE_ALIGN(NODE): Likewise.
5779	(CLASSTYPE_USER_ALIGN): Likewise.
5780	(TYPE_JAVA_INTERFACE): Likewise.
5781	(CLASSTYPE_PURE_VIRTUALS): Likewise.
5782	(CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
5783	(TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
5784	(CLASSTYPE_HAS_MUTABLE): Likewise.
5785	(CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
5786	(CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
5787	(CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
5788	(CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
5789	(CLASSTYPE_INTERFACE_ONLY): Likewise.
5790	(CLASSTYPE_INTERFACE_KNOWN): Likewise.
5791	(CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
5792	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
5793	(SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
5794	(SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
5795	(CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
5796	(BINFO_UNSHARED_MARKED): Whitespace.
5797	(BINFO_MARKED): Whitespace and wrap.
5798	(SET_BINFO_MARKED): Likewise.
5799	(CLEAR_BINFO_MARKED): Likewise.
5800	(BINFO_VTABLE_PATH_MARKED): Likewise.
5801	(SET_BINFO_VTABLE_PATH_MARKED): Likewise.
5802	(CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
5803	(BINFO_SUBVTT_INDEX): Remove parenthesis.
5804	(BINFO_VPTR_INDEX): Likewise.
5805	(BINFO_PRIMARY_BASE_OF): Likewise,
5806	(CLASSTYPE_VFIELDS): Whitespace.
5807	(VF_DERIVED_VALUE): Wrap long line.
5808	(NAMESPACE_LEVEL): Whitespace.
5809	(CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
5810	(DEFARG_POINTER): Whitespace.
5811	(DECL_NEEDED_P): Remove parenthesis.
5812	(DECL_LANGUAGE): Whitespace.
5813	(SET_DECL_LANGUAGE): Add parenthesis.
5814	(DECL_CONSTRUCTOR_P): Whitespace and wrap.
5815	(DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
5816	(DECL_IN_AGGR_P): Whitespace.
5817	(DECL_FRIEND_P): Likewise.
5818	(DECL_BEFRIENDING_CLASSES): Likewise.
5819	(DECL_STATIC_FUNCTION_P): Whitespace and wrap.
5820	(DECL_NONCONVERTING_P): Whitespace.
5821	(DECL_PURE_VIRTUAL_P): Likewise.
5822	(DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
5823	(DECL_PENDING_INLINE_INFO): Whitespace.
5824	(DECL_SORTED_FIELDS): Likewise.
5825	(DECL_DEFERRED_FN): Likewise.
5826	(DECL_TEMPLATE_INFO): Likewise.
5827	(CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
5828	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
5829	(SET_TYPE_TEMPLATE_INFO): Add parenthesis.
5830	(TMPL_ARGS_LEVEL): Likewise.
5831	(SET_TMPL_ARGS_LEVEL): Likewise.
5832	(INNERMOST_TEMPLATE_PARMS): Whitespace.
5833	(C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
5834	(INTEGRAL_CODE_P(CODE): Add parenthesis.
5835	(CP_INTEGRAL_TYPE_P): Remove parenthesis.
5836	(TYPE_HAS_CONSTRUCTOR): Whitespace.
5837	(TREE_HAS_CONSTRUCTOR): Likewise.
5838	(TYPE_HAS_DESTRUCTOR): Likewise.
5839	(TYPE_HAS_REAL_ASSIGN_REF): Likewise.
5840	(TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
5841	(TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
5842	(TYPE_HAS_COMPLEX_INIT_REF): Likewise.
5843	(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
5844	(TYPE_PTRMEMFUNC_P): Likewise.
5845	(TYPE_PTRMEMFUNC_FLAG): Likewise.
5846	(TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
5847	(TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
5848	(TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
5849	(TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
5850	(DECL_ACCESS): Whitespace.
5851	(DECL_GLOBAL_CTOR_P): Remove parenthesis.
5852	(DECL_GLOBAL_DTOR_P): Likewise.
5853	(GLOBAL_INIT_PRIORITY): Likewise.
5854	(DECL_TEMPLATE_PARMS): Likewise.
5855	(DECL_TEMPLATE_RESULT): Likewise.
5856	(DECL_TEMPLATE_INSTANTIATIONS): Likewise.
5857	(DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
5858	(DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
5859	(SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
5860	(PRIMARY_TEMPLATE_P): Add parenthesis.
5861	(DECL_USE_TEMPLATE): Whitespace.
5862	(CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
5863	(SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
5864	(CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
5865	(SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
5866	(CALL_DECLARATOR_PARMS): Remove parenthesis.
5867	(CALL_DECLARATOR_QUALS): Likewise.
5868	(CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
5869	(TEMP_NAME_P): Wrap.
5870	(VFIELD_NAME_P): Likewise.
5871	(B_SET): Uppercase macro parameters and add parenthesis.
5872	(B_CLR): Likewise.
5873	(B_TST): Likewise.
5874	(LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
5875	(LOOKUP_TYPES_ONLY): Uppercase macro parameters.
5876	(LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
5877	(same_or_base_type_p): Likewise.
5878	(cp_deprecated): Likewise.
5879
58802002-01-05  Richard Henderson  <rth@redhat.com>
5881
5882	* semantics.c (expand_body): Revert last change.
5883
58842002-01-04  Jason Merrill  <jason@redhat.com>
5885
5886	PR c++/4122
5887	* class.c (update_vtable_entry_for_fn): Set delta to zero for a
5888	lost primary.
5889
5890	* class.c (build_vtbl_initializer): Check for a lost primary
5891	before calculating the vtable entry to throw away.
5892
58932002-01-02  Jason Merrill  <jason@redhat.com>
5894
5895	* semantics.c (expand_body): Call outlining_inline_function when
5896	emitting an inline function out of line.
5897
58982002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5899
5900	PR c++/5116, c++/764 reversion
5901	* call.c (build_new_op): Revert the instantiations. They are
5902	incorrect.
5903
59042002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5905
5906	PR c++/5089
5907	* decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
5908
59092002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5910
5911	PR c++/3716
5912	* pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
5913	(tsubst, case POINTER_TYPE): Handle pmfs here.
5914	(tsubst, case OFFSET_TYPE): Check it is not an offset to
5915	reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
5916
59172002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5918
5919	PR c++/35
5920	* cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
5921	(DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
5922	* pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
5923	PARM_DECL.
5924	(tsubst_template_parms): Break up loop statements.
5925	(tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
5926	parm PARM_DECLs don't get promoted.
5927
59282002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5929
5930	PR c++/5123
5931	* typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
5932	(build_x_function_call): Cope with a COMPONENT_REF containing a
5933	TEMPLATE_ID_EXPR.
5934
59352002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5936
5937	PR c++/5213
5938	* pt.c (convert_template_argument): Be more careful determining
5939	when RECORD_TYPE templates are or are not templates.
5940
59412002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5942
5943	PR c++/775
5944	* cp-tree.h (handle_class_head): Adjust prototype.
5945	* decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
5946	parameters. Use for all class heads.
5947	* parse.y (named_class_head_sans_basetype, named_class_head,
5948	named_complex_class_head_sans_basetype,
5949	named_class_head_sans_basetype_defn,
5950	unnamed_class_head): Remove.
5951	(class_head, class_head_apparent_template): Recognize class heads
5952	(class_head_decl, class_head_defn): New reductions. Process class
5953	heads.
5954	(structsp): Adjust class definition and class declaration
5955	reductions.
5956	(maybe_base_class_list): Give diagnostic on empty list.
5957
59582002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5959
5960	PR c++/4379
5961	* typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
5962	single non-static member.
5963	(unary_complex_lvalue): If it cannot be a pointer to member, don't
5964	make it so. Check it is not pointer to reference.
5965
59662002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5967
5968	PR c++/5132
5969	* decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
5970	are processing a template decl.
5971
59722002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
5973
5974	PR c++/5116, c++/764
5975	* call.c (build_new_op): Make sure template class operands are
5976	instantiated. Simplify arglist construction.
5977
59782001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
5979
5980	* call.c (build_user_type_conversion_1): Use my_friendly_assert
5981	rather than if ... abort.
5982	* cvt.c (convert_to_reference): Likewise.
5983	* semantics.c (setup_vtbl_ptr): Likewise.
5984	* pt.c (lookup_template_class): Comment typo.
5985
59862001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
5987
5988	PR c++/5125
5989	* pt.c (push_template_decl_real): Make sure DECL has
5990	DECL_LANG_SPECIFIC.
5991
59922001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
5993
5994	PR c++/335
5995	* init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
5996	for non-reference fields.
5997	* typeck.c (require_complete_type): Use resolve_offset_ref).
5998
59992001-12-26  Nathan Sidwell  <nathan@codesourcery.com>
6000
6001	PR c++/196
6002	* parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
6003
60042001-12-24  Nathan Sidwell  <nathan@codesourcery.com>
6005
6006	PR c++/160
6007	* typeck.c (build_modify_expr): Remove old unreachable code & tidy
6008	up. Don't stabilize_references when initializing a reference.
6009
60102001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6011
6012	* decl2.c (lang_f_options): Const-ify.
6013
60142001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
6015
6016	* config-lang.in (diff_excludes): Remove.
6017
60182001-12-19  Nathan Sidwell  <nathan@codesourcery.com>
6019
6020	PR c++/90
6021	* typeck.c (build_function_call_real): Use original function
6022	expression for errors.
6023
60242001-12-18  Jason Merrill  <jason@redhat.com>
6025
6026	PR c++/3242
6027	* class.c (add_method): Do compare 'this' quals when trying to match a
6028	used function.  Don't defer to another used function.
6029
60302001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
6031
6032	* pt.c (instantiate_clone): Remove, fold into ...
6033	(instantiate_template): ... here. Simplify by removing mutual
6034	recursion.
6035	* typeck2.c (build_m_component_ref): Don't cv qualify the function
6036	pointed to by a pointer to function.
6037	* class.c (delete_duplicate_fields_1): Typo.
6038
60392001-12-18  Jason Merrill  <jason@redhat.com>
6040
6041	C++ ABI change: destroy value arguments in caller.
6042	* semantics.c (genrtl_start_function, genrtl_finish_function): Don't
6043	create an extra binding level for the parameters.
6044	* decl.c (store_parm_decls): Don't do parameter cleanups.
6045
60462001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
6047
6048	* call.c (build_new_method_call): Use '%#V'.
6049	* error.c (cv_to_string): Use V parameter to determine padding.
6050
60512001-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
6052
6053	* call.c, decl2.c, init.c: Use "built-in" and "bit-field"
6054	spellings in messages.
6055
60562001-12-17  Zack Weinberg  <zack@codesourcery.com>
6057
6058	* cp-tree.h: Delete #defines for cp_error, cp_warning,
6059	cp_pedwarn, and cp_compiler_error.
6060	* call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
6061	except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
6062	rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
6063	typeck2.c: Change calls to the above macros to use their
6064	language-independent equivalents: error, warning, pedwarn, and
6065	internal_error respectively.
6066
60672001-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6068
6069	* decl2.c (finish_file): Remove back_end_hook.
6070
60712001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
6072
6073	* ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
6074	cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
6075	pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
6076
60772001-12-15  Joseph S. Myers  <jsm28@cam.ac.uk>
6078
6079	* lang-options.h: Use American spelling in messages.
6080
60812001-12-13  Jason Merrill  <jason@redhat.com>
6082
6083	* Make-lang.in (parse.h): Separate rule, just depend on parse.c.
6084
6085	Use cleanups to run base and member destructors.
6086	* init.c (push_base_cleanups): New function, split out from...
6087	(build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
6088	* decl.c (finish_destructor_body): Move vbase destruction code to
6089	push_base_cleanups.
6090	(begin_function_body, finish_function_body): New fns.
6091	(finish_function): Move [cd]tor handling and call_poplevel to
6092	finish_function_body.
6093	(pushdecl): Skip the new level.
6094	* semantics.c (genrtl_try_block): Don't call end_protect_partials.
6095	(setup_vtbl_ptr): Call push_base_cleanups.
6096	* method.c (synthesize_method): Call {begin,end}_function_body.
6097	* pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
6098	* cp-tree.h: Declare new fns.
6099	* parse.y (function_body, .begin_function_body): New nonterminals.
6100	(fndef, pending_inline, function_try_block): Use function_body.
6101	(ctor_initializer_opt, function_try_block): No longer has a value.
6102	(base_init): Remove .set_base_init token.
6103	(.set_base_init, compstmt_or_error): Remove.
6104	* Make-lang.in (parse.c): Expect two fewer s/r conflicts.
6105
6106	* optimize.c (maybe_clone_body): Fix parameter updating.
6107
61082001-12-12  Jason Merrill  <jason@redhat.com>
6109
6110	* decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
6111	* semantics.c (genrtl_start_function): Don't pass
6112	parms_have_cleanups or push an extra binding level.
6113	(genrtl_finish_function): Lose cleanup_label cruft.
6114
6115	* cp-tree.h (struct cp_language_function): Remove x_ctor_label.
6116	(ctor_label): Remove.
6117	* semantics.c (finish_return_stmt): Lose ctor_label support.
6118	* decl.c (finish_constructor_body, mark_lang_function): Likewise.
6119	* typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
6120	dtor_label.
6121
6122	* call.c (build_new_method_call): Let resolves_to_fixed_type_p
6123	check for [cd]tors.
6124	* class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
6125
6126	* decl.c (finish_function): Check VMS_TARGET, not VMS.
6127
6128	* decl.c (start_cleanup_fn): Remove redundant pushlevel.
6129	(end_cleanup_fn): And poplevel.
6130
6131	* semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
6132	if we're in a template.
6133
61342001-12-12  Jakub Jelinek  <jakub@redhat.com>
6135
6136	* cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
6137	ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
6138	THIS_NAME_P): Delete.
6139	* spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
6140	THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
6141	with internal naming scheme.
6142	* error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
6143
61442001-12-12  Nathan Sidwell  <nathan@codesourcery.com>
6145
6146	* decl.c (grokdeclarator): Deprecated implicit typename use.
6147
61482001-12-11  Nathan Sidwell  <nathan@codesourcery.com>
6149
6150	PR g++/51
6151	* parse.y (frob_specs): Indicate it is a language linkage which
6152	contained the extern.
6153	* decl.c (grokdeclarator): Allow extern language linkage with
6154	other specifiers.
6155
61562001-12-10  Nathan Sidwell  <nathan@codesourcery.com>
6157
6158	PR g++/72
6159	* decl.c (add_binding): Don't reject duplicate typedefs involving
6160	template parameters.
6161
61622001-12-10  Neil Booth  <neil@daikokuya.demon.co.uk>
6163
6164	* parse.y, semantics.c: Similarly.
6165
61662001-12-09  Nathan Sidwell  <nathan@codesourcery.com>
6167
6168	PR g++/87
6169	* cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
6170	(copy_args_p): Rename to ...
6171	(copy_fn_p): ... here.
6172	(grok_special_member_properties): New function.
6173	(grok_op_properties): Lose VIRTUALP parameter.
6174	(copy_assignment_arg_p): Remove.
6175	* call.c (build_over_call): Use copy_fn_p.
6176	* decl.c (grokfndecl): Reformat. Adjust call to
6177	grok_op_properties.
6178	(copy_args_p): Rename to ...
6179	(copy_fn_p): ... here. Reject template functions. Check for pass
6180	by value.
6181	(grok_special_member_properties): Remember special functions.
6182	(grok_ctor_properties): Don't remember them here, just check.
6183	(grok_op_properties): Likewise.
6184	(start_method): Call grok_special_member_properties.
6185	* decl2.c (grokfield): Likewise.
6186	(copy_assignment_arg_p): Remove.
6187	(grok_function_init): Don't remember abstract assignment here.
6188	* pt.c (instantiate_class_template): Call
6189	grok_special_member_properties.
6190	(tsubst_decl): Adjust grok_op_properties call.
6191
61922001-12-08  Aldy Hernandez  <aldyh@redhat.com>
6193
6194	* lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
6195	RID_TYPES_COMPATIBLE_P.
6196
61972001-12-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6198
6199	* semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
6200	call to build_aggr_init.
6201	* cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
6202
62032001-12-08  Neil Booth  <neil@daikokuya.demon.co.uk>
6204
6205	* parse.y: Replace uses of the string non-terminal with STRING.
6206	Don't perform string concatentaion here.
6207	(string): Remove non-terminal.
6208	* semantics.c (finish_asm_stmt): Don't concatenate strings here.
6209
62102001-12-05  Jason Merrill  <jason@redhat.com>
6211
6212	* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
6213	(LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
6214	* tree.c (cp_start_inlining, cp_end_inlining): New fns.
6215	* pt.c (push_tinst_level): No longer static.
6216	* cp-tree.h: Declare them.
6217
6218	* init.c (resolve_offset_ref): Don't check access for the base
6219	conversion to access a FIELD_DECL.
6220
6221	* cp-tree.h (TYPE_REFFN_P): New macro.
6222	* decl.c (bad_specifiers): Check it, too.
6223
6224	* rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
6225	on the __*_type_info type if we haven't seen a definition.
6226
62272001-12-05  Neil Booth  <neil@daikokuya.demon.co.uk>
6228
6229	* decl.c: Include c-common.h.
6230	(shadow_warning): Move to c-common.c.
6231
6232Wed Dec  5 17:00:49 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6233
6234	* decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
6235
62362001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
6237
6238	* pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
6239
62402001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
6241
6242	PR g++/164
6243	* init.c (sort_base_init): Allow binfos to be directly specified.
6244	* method.c (do_build_copy_constructor): Explicitly convert to the
6245	base instance.
6246	(do_build_assign_ref): Likewise.
6247
62482001-12-03  Hans-Peter Nilsson  <hp@bitrange.com>
6249
6250	* decl.c (xref_basetypes): Don't use C99 construct in tag_code
6251	declaration and initialization.
6252
62532001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6254
6255	* typeck2.c: Remove leading capital from diagnostic messages, as
6256	per GNU coding standards.
6257
62582001-12-03  Mumit Khan  <khan@nanotech.wisc.edu>
6259
6260	PR c++/3394
6261	* decl.c (xref_basetypes): Handle attributes between
6262	'class' and name.
6263
62642001-12-03  Nathan Sidwell  <nathan@codesourcery.com>
6265
6266	PR g++/3381
6267	* parse.y (named_complex_class_head_sans_basetype): Add new
6268	reduction.
6269	* Make-lang.in (parse.c): Adjust expected conflict count.
6270
62712001-12-03  Jason Merrill  <jason@redhat.com>
6272
6273	* class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
6274	immediate binfos for our virtual bases.
6275
62762001-12-02  Neil Booth  <neil@daikokuya.demon.co.uk>
6277
6278	* call.c (build_java_interface_fn_ref): Similarly.
6279	* except.c (is_admissible_throw_operand): Similarly.
6280	* init.c (build_java_class_ref): Similarly.
6281	* xref.c (open_xref_file): Similarly.
6282
62832001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6284
6285	* class.c (finish_struct): Remove trailing periods from messages.
6286	* decl.c (check_tag_decl): Similarly.
6287	* lex.c (cxx_set_yydebug): Similarly.
6288	* typeck2.c (friendly_abort): Similarly.
6289
62902001-11-29  Mark Mitchell  <mark@codesourcery.com>
6291
6292	PR c++/3048
6293	* cp-tree.h (ovl_member): Remove.
6294	* decl2.c (merge_functions): Handle extern "C" functions
6295	specially.
6296	* tree.c (ovl_member): Remove.
6297
62982001-11-29  Mark Mitchell  <mark@codesourcery.com>
6299
6300	PR c++/4842
6301	* class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
6302	FUNCTION_DECL, as input.
6303	(mark_overriders): Remove.
6304	(warn_hidden): Rework for the new ABI.
6305
63062001-11-29  Mark Mitchell  <mark@codesourcery.com>
6307
6308	PR c++/3471
6309	* call.c (convert_like_real): Do not build additional temporaries
6310	for rvalues of class type.
6311
63122001-11-28  Nathan Sidwell  <nathan@codesourcery.com>
6313
6314	* cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
6315	(ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
6316	(PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
6317	(DERIVED_FROM_P): Likewise.
6318	(enum base_access): Renumber, add ba_quiet bit mask.
6319	(get_binfo): Remove.
6320	(get_base_distance): Remove.
6321	(binfo_value): Remove.
6322	(ACCESSIBLY_DERIVED_FROM_P): Remove.
6323	* call.c (standard_conversion): Use lookup_base.
6324	* class.c (strictly_overrides): Likewise.
6325	(layout_virtual_bases): Likewise.
6326	(warn_about_ambiguous_direct_bases): Likewise.
6327	(is_base_of_enclosing_class): Likewise.
6328	(add_vcall_offset_vtbl_entries_1): Likewise.
6329	* cvt.c (build_up_reference): Adjust comment.
6330	* init.c (build_member_call): Reformat.
6331	* search.c (get_binfo): Remove.
6332	(get_base_distance_recursive): Remove.
6333	(get_base_distance): Remove.
6334	(lookup_base_r): Tweak.
6335	(lookup_base): Add ba_quiet control. Complete the types here.
6336	(covariant_return_p): Use lookup_base.
6337	* tree.c (binfo_value): Remove.
6338	(maybe_dummy_object): Use lookup_base.
6339	* typeck.c (build_static_cast): Use lookup_base.
6340	(get_delta_difference): Likewise.
6341	* typeck2.c (binfo_or_else): Use lookup_base.
6342	(build_scoped_ref): Add back error_mark_check.
6343	(build_m_component_ref): Use lookup_base.
6344
63452001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
6346
6347	* Make-lang.in (c++.generated-manpages): New dummy target.
6348
6349Tue Nov 27 09:03:47 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6350
6351	* Make-lang.in (cp-lang.o): Depends on c-common.h.
6352	* cp-lang.c (c-common.h): Include.
6353	(LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
6354	* decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
6355	* expr.c (init_cplus_expand): Don't set lang_expand_constant.
6356
63572001-11-26  Neil Booth  <neil@daikokuya.demon.co.uk>
6358
6359	* decl2.c (c_language): Move to c-common.c.
6360	* lex.c (cxx_post_options, cxx_init_options): Use c-common.c
6361	functions.
6362	(cxx_init): Update.
6363
63642001-11-26  Jason Merrill  <jason@redhat.com>
6365
6366	* call.c (joust): Remove COND_EXPR hack.
6367
63682001-11-25  Aldy Hernandez  <aldyh@redhat.com>
6369
6370	* search.c (lookup_base_r): Declare bk in variable declaration
6371	space.
6372
63732001-11-25  Nathan Sidwell  <nathan@codesourcery.com>
6374
6375	PR g++/3145
6376	* class.c (build_vbase_pointer): Remove.
6377	(build_vbase_path): Remove.
6378	(build_base_path): New function.
6379	* cp-tree.h (base_access, base_kind): New enumerations.
6380	(build_base_path): Declare.
6381	(convert_pointer_to_real): Remove.
6382	(convert_pointer_to): Remove.
6383	(lookup_base): Declare.
6384	(convert_pointer_to_vbase): Remove.
6385	* call.c (build_scoped_method_call): Use lookup_base &
6386	build_base_path instead of convert_pointer_to_real,
6387	get_base_distance & get_binfo.
6388	(build_over_call): Likewise.
6389	* cvt.c (cp_convert_to_pointer): Likewise.
6390	(convert_to_pointer_force): Likewise.
6391	(build_up_reference): Likewise.
6392	(convert_pointer_to_real): Remove.
6393	(convert_pointer_to): Remove.
6394	* init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
6395	instead of convert_pointer_to_vbase & build_vbase_path.
6396	(emit_base_init): Use build_base_path instead of
6397	convert_pointer_to_real.
6398	(expand_virtual_init): Lose unrequired conversions.
6399	(resolve_offset_ref): Use lookup_base and build_base_path
6400	instead of convert_pointer_to.
6401	* rtti.c (build_dynamic_cast_1): Use lookup_base &
6402	build_base_path instead of get_base_distance & build_vbase_path.
6403	* search.c (get_vbase_1): Remove.
6404	(get_vbase): Remove.
6405	(convert_pointer_to_vbase): Remove.
6406	(lookup_base_r): New function.
6407	(lookup_base): New function.
6408	* typeck.c (require_complete_type): Use lookup_base &
6409	build_base_path instead of convert_pointer_to.
6410	(build_component_ref): Likewise.
6411	(build_x_function_call): Likewise.
6412	(get_member_function_from_ptrfunc): Likewise.
6413	(build_component_addr): Likewise.
6414	* typeck2.c (build_scoped_ref): Likewise.
6415
64162001-11-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
6417
6418	* cp-tree.h (CP_TYPE_QUALS): Removed.
6419	* decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
6420	* cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
6421	LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
6422	* dump.c (cp_dump_tree): Use void* dump_info argument to match
6423	lang-hooks prototype.
6424	* call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
6425	rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
6426	CP_TYPE_QUALS changed to cp_type_quals.
6427	* Make-lang.in: References to c-dump.h changed to tree-dump.h.
6428	(CXX_C_OBJS): Remove c-dump.o.
6429
64302001-11-21  Mark Mitchell  <mark@codesourcery.com>
6431
6432	PR c++/3637
6433	* pt.c (lookup_template_class): Ensure that all specializations
6434	are registered on the list corresponding to the most general
6435	template.
6436
64372001-11-20  Mark Mitchell  <mark@codesourcery.com>
6438
6439	* call.c (non_reference): Add documentation.
6440	(convert_class_to_reference): Do not strip reference types
6441	from conversion operators.
6442	(maybe_handle_ref_bind): Simplify.
6443	(compare_ics): Correct handling of references.
6444
64452001-11-19  John Wilkinson <johnw@research.att.com>
6446
6447	* dump.c (dump_op): New function.
6448	(cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION.  Use
6449	dump_op.  Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
6450	DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
6451
64522001-11-19  Mark Mitchell  <mark@codesourcery.com>
6453
6454	PR4629
6455	* semantics.c (finish_sizeof): Make sure that expression created
6456	while processing a template do not have a type.
6457	(finish_alignof): Likewise.
6458	* typeck.c (c_sizeof): Likewise.
6459	(expr_sizeof): Likewise.
6460
64612001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
6462
6463	* lex.c (cxx_finish): Call c_common_finish.
6464	(finish_parse): Remove.
6465
64662001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6467
6468	* decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
6469	when displaying error message about missing array bounds.
6470
64712001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6472
6473	* mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
6474	CONST_CAST_EXPR.
6475	* operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
6476
64772001-11-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6478
6479	* cp-tree.h (print_class_statistics): Restore.
6480
64812001-11-15  Jason Merrill  <jason@redhat.com>
6482
6483	* method.c (use_thunk): Don't emit debugging information for thunks.
6484
6485	* parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
6486	* decl.c (make_typename_type): Handle getting a class template.
6487	* search.c (lookup_field_r): A class template is good enough for
6488	want_type.
6489
6490	* call.c (convert_like_real): Only use cp_convert for the bad part.
6491	(standard_conversion): Also allow bad int->enum.
6492	* typeck.c (ptr_reasonably_similar): Also allow functions to
6493	interconvert.  Pointers to same-size integers are reasonably
6494	similar.
6495
6496	* cvt.c (convert_to_void): If we build a new COND_EXPR, always
6497	give it void type.
6498
64992001-11-15  Nathan Sidwell  <nathan@codesourcery.com>
6500
6501	PR g++/3154
6502	* init.c (sort_base_init): Remove unreachable code.
6503	(expand_member_init): Adjust comment to reflect reality. Simplify
6504	and remove unreachable code.
6505
65062001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
6507
6508	* cp-tree.h (init_reswords, cxx_init_decl_processing): New.
6509	(cxx_init): Update prototype.
6510	* decl.c (init_decl_processing): Rename.  Move null node init
6511	to its creation time.
6512	* lex.c (cxx_init_options): Update.
6513	(cxx_init): Combine with old init_parse; also call
6514	cxx_init_decl_processing.
6515
65162001-11-14  Richard Sandiford  <rsandifo@redhat.com>
6517
6518	* decl.c (check_initializer): Try to complete the type of an
6519	array element before checking whether it's complete.  Don't
6520	complain about arrays with complete element types but an
6521	unknown size.
6522	(cp_finish_decl): Build the hierarchical constructor before
6523	calling maybe_deduce_size_from_array_init.
6524
65252001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
6526
6527	* Make-lang.in: Change all uses of $(manext) to $(man1ext).
6528
65292001-11-13  Nathan Sidwell  <nathan@codesourcery.com>
6530
6531	PR g++/4206
6532	* parse.y (already_scoped_stmt): Remove.
6533	(simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
6534
65352001-11-12  H.J. Lu <hjl@gnu.org>
6536
6537	* cvt.c (ocp_convert): Don't warn the address of a weak
6538	function is always `true'.
6539
65402001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6541
6542	* cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
6543	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
6544	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
6545	* cp-tree.h (print_class_statistics): Remove.
6546	(cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
6547	cxx_print_identifier, cxx_set_yydebug): New.
6548	* lex.c (set_yydebug): Rename c_set_yydebug.
6549	* ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
6550	lang_print_xnode): Rename.
6551	* tree.c (print_lang_statistics): Rename.
6552
65532001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6554
6555	* class.c (dump_array): Fix format specifier warning.
6556
65572001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6558
6559	* cp-lang.c (LANG_HOOKS_NAME): Override.
6560	(struct lang_hooks): Constify.
6561	* lex.c (cxx_init_options): Update.
6562	(lang_identify): Remove.
6563	* parse.y (language_string): Remove.
6564
65652001-11-08  Andreas Franck  <afranck@gmx.de>
6566
6567	* Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
6568	DEMANGLER_CROSS_NAME): Handle program_transform_name the way
6569	suggested by autoconf.
6570	(GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
6571	(c++.install-common): Use the transformed target alias names.
6572
65732001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6574
6575	* Make-lang.in: Update.
6576	* cp-lang.c: Include langhooks-def.h.
6577
65782001-11-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6579
6580	* pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
6581
65822001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6583
6584	* lex.c (copy_lang_type): Add static prototype.
6585
65862001-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6587
6588	* pt.c (unify): Handle SCOPE_REF.
6589
65902001-11-01  Jakub Jelinek  <jakub@redhat.com>
6591
6592	* tree.c (cp_copy_res_decl_for_inlining): Adjust
6593	DECL_ABSTRACT_ORIGIN for the return variable.
6594
65952001-10-31  Zack Weinberg  <zack@codesourcery.com>
6596
6597	*  Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
6598
65992001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
6600
6601	* ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
6602	semantics.c, spew.c: Fix spelling errors.
6603
66042001-10-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6605
6606	* decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
6607
66082001-10-25  Zack Weinberg  <zack@codesourcery.com>
6609
6610	* cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
6611	pop_everything.
6612
6613Tue Oct 23 14:00:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6614
6615	* cp-lang.c (cxx_get_alias_set): New function.
6616	Point LANG_HOOKS_GET_ALIAS_SET to it.
6617
66182001-10-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6619
6620	* cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
6621	* cp-tree.h (make_unbound_class_template): Prototype new function.
6622	* decl.c (make_unbound_class_template): New function.
6623	* decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
6624	* error.c (dump_type): Likewise.
6625	* mangle.c (write_type): Likewise.
6626	* parse.y (template_parm): Likewise.
6627	(template_argument): Use make_unbound_class_template.
6628	* pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
6629	(tsubst): Likewise.
6630	(tsubst_copy): Likewise.
6631	(unify): Likewise.
6632	* tree.c (walk_tree): Likewise.
6633	* typeck.c (comptypes): Likewise.
6634
66352001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6636
6637	* xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
6638	extra calls into fewer ones.
6639
66402001-10-18  Alexandre Oliva  <aoliva@redhat.com>
6641
6642	* decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
6643	Warn when merging inline with attribute noinline.
6644	(start_decl, start_function): Warn if inline and attribute
6645	noinline appear in the same declaration.
6646
66472001-10-16  H.J. Lu <hjl@gnu.org>
6648
6649	* cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
6650	for tree checking disabled.
6651
66522001-10-16  Hans-Peter Nilsson  <hp@axis.com>
6653
6654	* cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
6655	NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
6656
66572001-10-15  Richard Sandiford  <rsandifo@redhat.com>
6658
6659	* pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
6660	(unify): Only handle MINUS_EXPR specially if the above flag is set
6661	and the subtracted constant is 1.  Clear the flag on recursive calls.
6662	Set it when unifying the maximum value in an INTEGER_TYPE's range.
6663
66642001-10-15  Richard Sandiford  <rsandifo@redhat.com>
6665
6666	* decl.c (bad_specifiers): Don't allow exception specifications
6667	on any typedefs.
6668
66692001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6670
6671	* cp/lex.c (init_cp_pragma): Similarly.
6672
66732001-10-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6674
6675	* pt.c (lookup_template_class): Build complete template arguments
6676	for BOUND_TEMPLATE_TEMPLATE_PARM.
6677
66782001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6679
6680	* cp-tree.h (TYPE_BINFO): Update comment.
6681	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
6682	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
6683	(TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
6684	(copy_type): Prototype new function.
6685	* lex.c (copy_lang_decl): Gather tree node statistics.
6686	(copy_lang_type): New function.
6687	(copy_type): Likewise.
6688	(cp_make_lang_type): Create lang_type for
6689	BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
6690	and BOUND_TEMPLATE_TEMPLATE_PARM.
6691	* pt.c (tsubst): Use copy_type instead of copy_node.
6692	* search.c (lookup_field_1): Ignore TYPENAME_TYPE.
6693
66942001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6695
6696	* pt.c (determine_specialization): Ignore functions without
6697	DECL_TEMPLATE_INFO.
6698
66992001-10-12  Nathan Sidwell  <nathan@codesourcery.com>
6700
6701	PR g++/4476
6702	* typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
6703
67042001-10-11  Jason Merrill  <jason_merrill@redhat.com>
6705
6706	* typeck2.c (store_init_value): Don't re-digest a bracketed
6707	initializer.
6708
6709	* class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
6710	ANON_AGGR_TYPE_P.
6711
67122001-10-11  Richard Henderson  <rth@redhat.com>
6713
6714	* class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
6715	of an asm statement.
6716	(build_vtbl_ref_1): Split out from build_vtbl_ref.
6717	(build_vfn_ref): Use it to handle vtable descriptors before
6718	calling build_vtable_entry_ref.
6719	* decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
6720
67212001-10-10  Richard Henderson  <rth@redhat.com>
6722
6723	* parse.y (asm_operand): Allow named operands.
6724	* semantics.c (finish_asm_stmt): Tweek for changed location
6725	of the operand constrant.
6726
67272001-10-09  Jason Merrill  <jason_merrill@redhat.com>
6728
6729	* call.c (standard_conversion): Add bad conversion between
6730	integers and pointers.
6731	(convert_like_real): Don't use convert_for_initialization for bad
6732	conversions; complain here and use cp_convert.
6733	(build_over_call): Don't handle bad conversions specially.
6734	(perform_implicit_conversion): Allow bad conversions.
6735	(can_convert_arg_bad): New fn.
6736	* cp-tree.h: Declare it.
6737	* typeck.c (convert_for_assignment): Use it.
6738	(ptr_reasonably_similar): Any target type is similar to void.
6739
67402001-10-08  Alexandre Oliva  <aoliva@redhat.com>
6741
6742	* Make-lang.in (CXX_OBJS): Added cp-lang.o.
6743	(cp/cp-lang.o): New rule.
6744	* cp-tree.h: Declare hooks.
6745	* tree.c: Make hooks non-static.
6746	(init_tree): Don't initialize hooks here.
6747	* lex.c: Likewise.  Move definition of lang_hooks to...
6748	* cp-lang.c: ... new file.
6749
67502001-10-08  Richard Henderson  <rth@redhat.com>
6751
6752	* cp-tree.h (struct lang_decl_flags): Remove declared_inline.
6753	(DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
6754
67552001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6756
6757	* class.c (build_vtable_entry_ref): Const-ify.
6758	* decl.c (predefined_identifier,
6759	initialize_predefined_identifiers): Likewise.
6760	* init.c (build_new_1): Likewise.
6761	* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
6762	Likewise.
6763
67642001-10-05  Alexandre Oliva  <aoliva@redhat.com>
6765
6766	* optimize.c (struct inline_data): Moved to ../tree-inline.c.
6767	(INSNS_PER_STMT): Likewise.
6768	(remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
6769	(copy_body, initialize_inlined_parameters): Likewise.
6770	(declare_return_variable, inlinable_function_p): Likewise.
6771	(expand_call_inline, expand_calls_inline): Likewise.
6772	(optimize_inline_calls, clone_body): Likewise.
6773	* tree.c (walk_tree): Moved to ../tree-inline.c.
6774	(walk_tree_without_duplicates): Likewise.
6775	(copy_tree_r, remap_save_expr): Likewise.
6776
67772001-10-04  Alexandre Oliva  <aoliva@redhat.com>
6778
6779	* Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
6780	(cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
6781	* cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
6782	(TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
6783	(flag_inline_trees): Moved declaration to ../tree-inline.h.
6784	(walk_tree): Moved declaration to ../tree-inline.h.
6785	(walk_tree_without_duplicates, copy_tree_r): Likewise.
6786	(remap_save_expr): Likewise.
6787	* decl.c: Include tree-inline.h.
6788	(lang_mark_tree): Don't mark inlined_fns.
6789	* decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
6790	* optimize.c: Include tree-inline.h.
6791	(optimize_inline_calls): Move declaration to ../tree.h, as
6792	non-static.
6793	(remap_decl): Use language-independent constructs and hooks.
6794	(remap_block, copy_body_r, declare_return_variable): Likewise.
6795	(inlinable_function_p): Likewise.  Don't test for
6796	DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
6797	no longer language-specific.
6798	(optimize_inline_calls): Likewise.  Make it non-static.  Moved
6799	call of dump_function to...
6800	(optimize_function): Here...
6801	(clone_body): New function, extracted from...
6802	(maybe_clone_body): ... here.  Build decl_map locally and pass
6803	it on to clone_body.
6804	* pt.c, semantics.c: Include tree-inline.h.
6805	* tree.c: Likewise.
6806	(cp_walk_subtrees): New language-specific hook for tree inlining.
6807	(cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
6808	cp_is_overload_p, cp_auto_var_in_fn_p,
6809	cp_copy_res_decl_for_inlining): Likewise.
6810	(walk_tree): Move language-specific constructs into...
6811	(cp_walk_subtrees): this new function.
6812	(copy_tree_r): Use language-independent constructs and hooks.
6813	(init_tree): Initialize tree inlining hooks.
6814	(remap_save_expr): Adjust prototype so that the declaration
6815	does not require the definition of splay_tree.
6816
68172001-10-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6818
6819	* rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
6820	to build the declaration instead of the declaration itself.
6821
68222001-10-02  Jason Merrill  <jason_merrill@redhat.com>
6823
6824	* decl2.c (cxx_decode_option): Add 'else'.
6825
6826	* spew.c (end_input): No longer static.
6827	* cp-tree.h: Declare it.
6828	* parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
6829
68302001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6831
6832	* call.c (build_over_call), typeck.c (build_function_call_real):
6833	Pass type attributes to check_function_format rather than name or
6834	assembler name.  Don't require there to be a name or assembler
6835	name to check formats.
6836
68372001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6838
6839	* decl.c (init_decl_processing): Don't call
6840	init_function_format_info.  Initialize lang_attribute_table
6841	earlier.
6842	(builtin_function): Call decl_attributes.
6843	(insert_default_attributes): New.
6844
68452001-10-01  Jason Merrill  <jason_merrill@redhat.com>
6846
6847	* decl.c (grokdeclarator): Copy array typedef handling from C
6848	frontend.
6849
6850	* decl.c (grokdeclarator): Copy too-large array handling from C
6851	frontend.
6852
68532001-09-29  Alexandre Oliva  <aoliva@redhat.com>
6854
6855	* config-lang.in (target_libs): Added target-gperf, so that we
6856	don't try to build it if C++ is disabled.
6857
68582001-09-23  Zack Weinberg  <zack@codesourcery.com>
6859
6860	* Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
6861	(cp/errfn.o): Delete rule.
6862	(cp/error.o): Depend on flags.h.
6863	* errfn.c: Delete file.
6864	* cp-tree.h: Declare warn_deprecated.  Remove definitions of
6865	TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
6866	and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
6867	cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
6868	internal_error respectively.  Make cp_deprecated into a macro.
6869	Don't define cp_printer typedef or declare cp_printers.
6870	* error.c: Include flags.h.
6871	Delete: struct tree_formatting_info, print_function_argument_list,
6872	print_declaration, print_expression, print_function_declaration,
6873	print_function_parameter, print_type_id, print_cv_qualifier_seq,
6874	print_type_specifier_seq, print_simple_type_specifier,
6875	print_elaborated_type_specifier, print_rest_of_abstract_declarator,
6876	print_parameter_declaration_clause, print_exception_specification,
6877	print_nested_name_specifier, and definition of cp_printers.
6878	(locate_error): New function.
6879	(cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
6880	rewritten in terms of locate_error and diagnostic.c.
6881	(cp_tree_printer): Rename cp_printer; wire up to *_to_string
6882	instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
6883	(init_error): Adjust to match.
6884
6885Sat Sep 22 09:15:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6886
6887	* Make-lang.in (CXX_C_OBJS): Add attribs.o.
6888
68892001-09-21  Richard Henderson  <rth@redhat.com>
6890
6891	* class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
6892	(build_vtbl_initializer): Likewise.
6893	(build_vfn_ref): New.
6894	* cp-tree.h: Declare it.
6895	* call.c (build_over_call): Use it.
6896	* decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
6897	* typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
6898
6899Fri Sep 21 08:16:19 2001  J"orn Rennecke <amylaar@redhat.com>
6900
6901	* decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
6902
69032001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6904
6905	Table-driven attributes.
6906	* decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
6907	* decl2.c (cplus_decl_attributes): Only take one attributes
6908	parameter.
6909	* cp-tree.c (cplus_decl_attributes): Update prototype.
6910	* class.c (finish_struct), decl.c (start_decl, start_function),
6911	decl2.c (grokfield), friend.c (do_friend), parse.y
6912	(parse_bitfield): Update calls to cplus_decl_attributes.
6913	* decl.c (grokdeclarator): Take a pointer to a single ordinary
6914	attribute list.
6915	* decl.h (grokdeclarator): Update prototype.
6916	* decl2.c (grokfield): Take a single ordinary attribute list.
6917	* friend.c (do_friend): Likewise.
6918	* decl.c (shadow_tag, groktypename, start_decl,
6919	start_handler_parms, grokdeclarator, grokparms, start_function,
6920	start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
6921	parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
6922	(process_template_parm, do_decl_instantiation): Pass single
6923	ordinary attribute lists around.
6924	* decl.c (grokdeclarator): Correct handling of nested attributes.
6925	Revert the patch
6926	1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
6927		* decl.c (grokdeclarator): Embedded attrs bind to the right,
6928		not the left.
6929	.
6930	* cp-tree.h (cp_valid_lang_attribute): Remove declaration
6931	(cp_attribute_table): Declare.
6932	* decl.c (valid_lang_attribute): Don't define.
6933	(lang_attribute_table): Define.
6934	(init_decl_processing): Initialize lang_attribute_table instead of
6935	valid_lang_attribute.
6936	* tree.c (cp_valid_lang_attribute): Remove.
6937	(handle_java_interface_attribute, handle_com_interface_attribute,
6938	handle_init_priority_attribute): New functions.
6939	(cp_attribute_table): New array.
6940	* decl2.c (import_export_class): Don't use
6941	targetm.valid_type_attribute.
6942
69432001-09-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
6944
6945	* Make-lang.in (cp/error.o): Depend on real.h
6946	* error.c: #include "real.h"
6947
69482001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6949
6950	* mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
6951	xmalloc/strcpy/strcat.
6952
69532001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6954
6955	* decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
6956	Const-ification.
6957	* pt.c (tsubst_decl): Likewise.
6958
69592001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6960
6961	* decl2.c (lang_f_options): Const-ification.
6962	* lex.c (cplus_tree_code_name): Likewise.
6963	* spew.c (yyerror): Likewise.
6964
69652001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
6966
6967	PR c++/3986
6968	* class.c (force_canonical_binfo_r): Check & move an indirect
6969	primary base first.
6970	(force_canonical_binfo): Check that it's not already
6971	canonical.
6972	(mark_primary_virtual_base): Remove BINFO parameter.
6973	(mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
6974
69752001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
6976
6977	Remove TYPE_NONCOPIED_PARTS.
6978	* cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
6979	CLASSTYPE_PURE_VIRTUALS.
6980	(TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
6981	* class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
6982	(layout_class_type): Don't call fixup_inline_methods here ...
6983	(finish_struct_1): ... call it here.
6984
69852001-09-04  Mark Mitchell  <mark@codesourcery.com>
6986
6987	* decl.c (duplicate_decls): Remove code deadling with
6988	DECL_SAVED_INSNS.
6989	* decl2.c (finish_file): Likewise.
6990	* pt.c (instantiate_decl): Likewise.
6991	* semantics.c (expand_body): Don't defer local functions if
6992	they wouldn't be deferred for some other reason.  Don't
6993	generate RTL for functions that will not be emitted.
6994	(genrtl_start_function): Remove code deadling with
6995	DECL_SAVED_INSNS.
6996	(genrtl_finish_function): Likewise.
6997
69982001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
6999
7000	PR c++/4203
7001	* call.c (build_over_call): Do not optimize any empty base
7002	construction.
7003
70042001-08-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
7005
7006	* error.c (dump_template_decl): Output template parameters
7007	together with their specifiers.
7008	Output `class' prefix for template template parameter.
7009	(dump_decl): Fix formatting.
7010
70112001-08-30  Kurt Garloff  <garloff@suse.de>
7012
7013	* optimize.c (inlinable_function_p): Allow only smaller single
7014	functions. Halve inline limit after reaching recursive limit.
7015
70162001-08-30  Joern Rennecke <amylaar@redhat.com>
7017	    Jason Merrill  <jason_merrill@redhat.com>
7018
7019	* class.c (build_vtable_entry_ref): Subtract in char*, not
7020	ptrdiff_t.
7021
70222001-08-23  Jason Merrill  <jason_merrill@redhat.com>
7023
7024	* tree.c (cp_build_qualified_type_real): Use get_qualified_type.
7025	(build_cplus_array_type): Use cp_build_qualified_type, not
7026	TYPE_MAIN_VARIANT, to get an unqualified version.
7027
7028	* decl2.c (grok_alignof): Lose.
7029	(build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
7030	* typeck.c (c_alignof): Lose.
7031	* semantics.c (finish_sizeof, finish_alignof): New.
7032	* parse.y: Use them.
7033	* cp-tree.h: Declare them.
7034
70352001-08-22  Jason Merrill  <jason_merrill@redhat.com>
7036
7037	* pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
7038	Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
7039	* tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
7040
70412001-08-19  Jakub Jelinek  <jakub@redhat.com>
7042
7043	* typeck2.c (add_exception_specifier): Only require complete type if
7044	not in processing template declaration.
7045
70462001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7047
7048	* decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
7049	GNU_xref_start_scope and GNU_xref_end_scope.
7050
7051	* tree.c (TYPE_HASH): Moved to ../tree.h.
7052
70532001-08-16  Mark Mitchell  <mark@codesourcery.com>
7054
7055	* cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
7056	on COMPOUND_EXPRs.
7057
70582001-08-14  Richard Henderson  <rth@redhat.com>
7059
7060	* class.c, cp-tree.h (build_vfn_ref): Remove.
7061	* call.c, rtti.c: Replace all refernces with build_vtbl_ref.
7062
70632001-08-13  Mark Mitchell  <mark@codesourcery.com>
7064
7065	* call.c (build_over_call): Mark COMPOUND_EXPRs generated for
7066	empty class assignment as having side-effects to avoid
7067	spurious warnings.
7068
70692001-08-13  Zack Weinberg  <zackw@panix.com>
7070
7071	* Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
7072	* except.c: Include libfuncs.h.
7073
70742001-08-11  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
7075
7076	* decl.c (grokdeclarator): Clarify diagnostic message.
7077
70782001-08-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
7079
7080	* decl2.c (do_nonmember_using_decl): Replace using directive
7081	with using declaration in the error message.
7082
70832001-08-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
7084
7085	* pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
7086	criterion to avoid rebuilding expression tree instead of
7087	processing_template_decl.
7088
70892001-08-07  Jason Merrill  <jason_merrill@redhat.com>
7090
7091	Support named return value optimization for inlines, too.
7092	* decl.c (finish_function): Nullify returns here.
7093	* semantics.c (genrtl_start_function): Not here.
7094	(cp_expand_stmt): Don't mess with CLEANUP_STMTs.
7095	(nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
7096	Also nullify the CLEANUP_STMT for the nrv.
7097	* cp-tree.h: Declare it.
7098	* optimize.c (declare_return_variable): Replace the nrv with the
7099	return variable.
7100	* typeck.c (check_return_expr): Be more flexible on alignment check.
7101	Ignore cv-quals when checking for a matching type.
7102
71032001-08-09  Richard Henderson  <rth@redhat.com>
7104
7105	* decl2.c (finish_objects): Use target hooks instead of
7106	assemble_constructor and assemble_destructor.
7107
71082001-08-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7109
7110	* g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
7111
71122001-08-07  Nathan Sidwell  <nathan@codesourcery.com>
7113
7114	PR c++/3820
7115	Stop using TYPE_NONCOPIED_PARTS.
7116	* call.c (build_over_call): Be careful when copy constructing
7117	or assigning to an empty class.
7118	* class.c (check_bases_and_members): It has a
7119	COMPLEX_ASSIGN_REF if it has a vptr.
7120	(layout_class_type): Don't add empty class padding to
7121	TYPE_NONCOPIED_PARTS.
7122	(finish_struct_1): Don't add the VFIELD either.
7123	* cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
7124	initialization.
7125
71262001-08-07  Jason Merrill  <jason_merrill@redhat.com>
7127
7128	* tree.c (walk_tree): Walk siblings even if !walk_subtrees.
7129
71302001-08-06  Richard Henderson  <rth@redhat.com>
7131
7132	* decl2.c (finish_objects): Pass a symbol_ref and priority to
7133	assemble_{constructor,destructor}.  Remove priority handling.
7134
71352001-08-05  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
7136
7137	Don't allow template-id in using-declaration.
7138	* decl2.c (validate_nonmember_using_decl): Handle template-ids.
7139	(do_class_using_decl): Likewise.
7140
71412001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7142
7143	* cp/spew.c (read_token): No need to pop buffers.
7144
71452001-08-02  Stan Shebs  <shebs@apple.com>
7146
7147	* cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
7148	(fnaddr_from_vtable_entry): Remove decl.
7149	* method.c (use_thunk): Update comment.
7150
71512001-08-01  Andrew Cagney  <ac131313@redhat.com>
7152
7153	* repo.c (get_base_filename): Change return value to const char
7154	pointer.
7155
71562001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
7157
7158	Kill -fhonor-std.
7159	* NEWS: Document.
7160	* cp-tree.h (flag_honor_std): Remove.
7161	(CPTI_FAKE_STD): Remove.
7162	(std_node): Remove comment about it being NULL.
7163	(fake_std_node): Remove.
7164	* decl.c (in_fake_std): Remove.
7165	(walk_namespaces_r): Remove fake_std_node check.
7166	(push_namespace): Remove in_fake_std code.
7167	(pop_namespace): Likewise.
7168	(lookup_name_real): Remove fake_std_node check.
7169	(init_decl_processing): Always create std_node. Always add
7170	std:: things there.
7171	(builtin_function): Always put non '_' fns in std.
7172	* decl2.c (flag_honor_std): Remove.
7173	(lang_f_options): Remove honor-std.
7174	(unsupported_options): Add honor-std.
7175	(set_decl_namespace): Remove fake_std_node check.
7176	(validate_nonmember_using_decl): Likewise.
7177	(do_using_directive): Likewise.
7178	(handle_class_head): Likewise.
7179	* dump.c (cp_dump_tree): Likewise.
7180	* except.c (init_exception_processing): Adjust.
7181	* init.c (build_member_call): Remove fake_std_node check.
7182	(build_offset_ref): Likewise.
7183	* lang-options.h: Remove -fhonor-std, -fno-honor-std.
7184	* rtti.c (init_rtti_processing): Adjust.
7185
71862001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
7187
7188	* tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
7189	operand while calling cp_tree_equal.
7190
71912001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
7192
7193	The 3.0 ABI no longer has vbase pointer fields.
7194	* cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
7195	FORMAT_VBASE_NAME): Remove.
7196	* method.c (do_build_copy_constructor): Adjust.
7197	(do_build_assign_ref): Adjust.
7198	* search.c (lookup_field_r): Adjust.
7199	* typeck.c (build_component_ref): Adjust.
7200
7201	The 3.0 ABI always has a vtable pointer at the start of every
7202	polymorphic class.
7203	* rtti.c (build_headof_sub): Remove.
7204	(build_headof): Adjust.
7205	(get_tinfo_decl_dynamic): No need to check flag_rtti
7206	here. Adjust.
7207	(create_real_tinfo_var): Explain why we need a hidden name.
7208
72092001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
7210
7211	PR c++/3631
7212	* class.c (update_vtable_entry_for_fn): The fixed adjustment
7213	of a virtual thunk should be from declaring base.
7214
72152001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
7216
7217	* class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
7218	the shared virtual base, so preserving inheritance graph order.
7219
72202001-07-30  Andreas Jaeger  <aj@suse.de>
7221
7222	* decl2.c: Remove unused var global_temp_name_counter.
7223
72242001-07-28  Richard Henderson  <rth@redhat.com>
7225
7226	* method.c (pending_inlines): Remove.
7227
72282001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
7229
7230	* class.c (mark_primary_virtual_base): Don't adjust base
7231	offsets here.
7232	(dfs_unshared_virtual_bases): Adjust them here.
7233	(mark_primary_bases): Explain why we adjust at the end.
7234
72352001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
7236
7237	* class.c (finish_struct_1): When copying the primary base's
7238	VFIELD, make sure we find it is at offset zero.
7239
72402001-07-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
7241
7242	* pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
7243	tsubst_expr for default template arguments.
7244
72452001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
7246
7247	PR c++/3621
7248	* spew.c (yylex): Only copy the token's lineno, if it is
7249	nonzero.
7250
72512001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
7252
7253	PR c++/3624
7254	* call.c (resolve_args): Simplify, call
7255	convert_from_reference.
7256	(build_new_op): Resolve and convert from reference ARG1
7257	earlier. Adjust ARG2 & ARG3 resolve and conversion.
7258
72592001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
7260
7261	* decl.c (last_function_parm_tags): Remove.
7262	(current_function_parm_tags): Remove.
7263	(init_decl_processing): Adjust.
7264	(start_function): Adjust.
7265	(store_parm_decls): Adjust.
7266
7267	PR c++/3152
7268	* decl.c (grokdeclarator): Detect when a function typedef is
7269	declaring a function, and create last_function_parms correctly.
7270
72712001-07-25  Jason Merrill  <jason_merrill@redhat.com>
7272
7273	* call.c (joust): Only prefer a non-builtin candidate to a builtin
7274	one if they have the same signature.
7275
7276	* cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
7277	it rather than toplevel_bindings_p.  Give it a mangled name if static.
7278	(convert_to_reference): Adjust.
7279	* decl2.c (get_temp_name): Lose.
7280	* mangle.c (mangle_ref_init_variable): New fn.
7281	(mangle_guard_variable): Strip the ref-init header.
7282	* cp-tree.h: Adjust.
7283	* decl.c (cp_finish_decl): Add the DECL_STMT after processing the
7284	initializer.
7285	(grok_reference_init): Always use DECL_INITIAL.
7286
72872001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
7288
7289	PR c++/3416
7290	* call.c (build_conditional_expr): Recheck args after
7291	conversions.
7292	* cp-tree.h (build_conditional_expr): Move to correct file.
7293	* typeck.c (decay_conversion): Diagnose any unknown types
7294	reaching here.
7295	(build_binary_op): Don't do initial decay or default
7296	conversions on overloaded functions.
7297	(build_static_cast): Don't do a decay conversion here.
7298
72992001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
7300
7301	PR c++/3543
7302	* typeck.c (condition_conversion): Resolve an OFFSET_REF.
7303	* expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
7304
73052001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
7306
7307	* class.c (build_vtbl_or_vbase_field): Remove, move into ...
7308	(create_vtbl_ptr): ... here.
7309
73102001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
7311
7312	* class.c (build_vbase_offset_vbtl_entries): Look for
7313	non-primary base of which we are a sub vtable.
7314
73152001-07-24  Phil Edwards  <pme@sources.redhat.com>
7316
7317	* semantics.c (finish_this_expr):  Remove unused code.
7318
73192001-07-24  Nathan Sidwell  <nathan@codesourcery.com>
7320
7321	Simplify rtti, now we've only one ABI.
7322	* cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
7323	CPTI_TINFO_VAR_ID.
7324	(tinfo_decl_id, tinfo_var_id): Remove.
7325	(get_typeid_1): Remove.
7326	* rtti.c
7327	(init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
7328	(typeid_ok_p): New function.
7329	(build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
7330	(get_tinfo_decl): Remove old abi documentation.
7331	(tinfo_from_decl): Remove.
7332	(get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
7333	(get_typeid_1): Remove.
7334	(get_base_offset): Remove.
7335	(synthesize_tinfo_var): Absorb get_base_offset.
7336	(create_real_tinfo_var): Don't use tinfo_decl_id.
7337
73382001-07-23  Graham Stott  <grahams@redhat.com>
7339
7340	* cp/class.c (type_requires_array_cookie): Fix use of uninitialized
7341	variable has_two_argument_delete_p.
7342
73432001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
7344
7345	Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
7346	* cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
7347	(CPTI_INDEX_IDENTIFIER): Remove.
7348	(CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
7349	(delta2_identifier): Remove.
7350	(index_identifier): Remove.
7351	(pfn_or_delta2_identifier): Remove.
7352	(flag_vtable_thunks): Remove.
7353	(VTABLE_DELTA2_NAME): Remove.
7354	(VTABLE_INDEX_NAME): Remove.
7355	(FNADDR_FROM_VTABLE_ENTRY): Adjust.
7356	(vfunc_ptr_type_node): Adjust.
7357	(VTABLE_NAME_PREFIX): Adjust.
7358	(build_vfn_ref): Lose first parameter.
7359	(fixup_all_virtual_upcast_offsets): Remove.
7360	* decl.c (initialize_predefined_identifiers): Remove
7361	delta2_identifier, index_identifier, pfn_or_delta2_identifier.
7362	(init_decl_processing): Remove no-vtable-thunk code.
7363	* decl2.c (flag_vtable_thunks): Remove.
7364	(mark_vtable_entries): Remove no-vtable-thunk code.
7365	* error.c (dump_decl): Remove no-vtable-thunk code.
7366	(dump_expr): Adjust ptr to member function code.
7367	* init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
7368	code.
7369	* rtti.c (build_headof): Remove no-vtable-thunk code.
7370	(get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
7371	* search.c (get_base_distance): Remove expand_upcast_fixups case.
7372	(virtual_context) Remove.
7373	(expand_upcast_fixups): Remove.
7374	(fixup_virtual_upcast_offsets): Remove.
7375	(fixup_all_virtual_upcast_offsets): Remove.
7376	* typeck.c (get_member_function_from_ptrfunc): Remove
7377	no-vtable-thunk code.
7378	* call.c (build_over_call): Adjust call to build_vfn_ref.
7379	* class.c (build_vfn_ref): Lose first parameter. Remove
7380	no-vtable-thunk code.
7381	(build_rtti_vtbl_entries): Remove no-vtable-thunk code.
7382	(build_vtable_entry): Remove no-vtable-thunk code.
7383
73842001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
7385
7386	Remove old-abi remnants. Remove comments about old abi
7387	behavior. Remove references to 'new-abi' in comments.
7388	* cp-tree.h: Adjust comments.
7389	(vbase_offsets_in_vtable_p): Delete.
7390	(vcall_offsets_in_vtable_p): Delete.
7391	(vptrs_present_everywhere_p): Delete.
7392	(all_overridden_vfuns_in_vtables_p): Delete.
7393	(merge_primary_and_secondary_vtables_p): Delete.
7394	(TYPE_CONTAINS_VPTR_P): Adjust.
7395	(VTT_NAME_PREFIX): Remove.
7396	(CTOR_VTBL_NAME_PREFIX): Remove.
7397	(init_vbase_pointers): Remove.
7398	* class.c: Adjust coments.
7399	(build_vbase_pointer_fields): Delete.
7400	(build_vbase_pointer): Remove old-abi code.
7401	(build_secondary_vtable): Likewise.
7402	(modify_all_vtables): Likewise.
7403	(create_vtable_ptr): Likewise.
7404	(layout_class_type): Likewise.
7405	(finish_struct_1): Likewise.
7406	(finish_vtbls): Likewise.
7407	(dfs_finish_vtbls): Delete.
7408	(build_vbase_offset_vtbl_entries): Remove old-abi code.
7409	* cvt.c: Adjust comments.
7410	* decl.c: Adjust comments.
7411	* decl2.c: Adjust comments.
7412	* init.c: Adjust comments.
7413	(construct_virtual_bases): Remove old-abi code.
7414	* lang-specs.h: Remove -fno-new-abi.
7415	* mangle.c: Adjust comments.
7416	* rtti.c: Adjust comments.
7417	(get_base_offset): Remove old-abi-code.
7418	* search.c: Adjust comments.
7419	(dfs_init_vbase_pointers): Remove.
7420	(dfs_vtable_path_unmark): Remove.
7421	(init_vbase_pointers): Remove.
7422	* semantics.c: Adjust comments.
7423	(emit_associated_thunks): Remove old-abi code.
7424	* typeck.c: Adjust comments.
7425
74262001-07-20  Daniel Berlin  <dan@cgsoftware.com>
7427
7428	* Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
7429	params.h.
7430
74312001-07-19  Mark Mitchell  <mark@codesourcery.com>
7432
7433	* class.c (finish_struct_anon): Forbid nested classes.
7434
74352001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7436
7437	* decl2.c: Don't include dwarfout.h and dwarf2out.h.
7438	* optimize.c: Include debug.h.
7439	(maybe_clone_body): Use debug hook.
7440	* semantics.c: Include debug.h.
7441	(expand_body): Use debug hook.
7442
74432001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7444
7445	* spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
7446
74472001-07-18  Mark Mitchell  <mark@codesourcery.com>
7448
7449	* class.c (type_requires_array_cookie): New function.
7450	(check_methods): Don't try to figure out whether the type needs a
7451	cookie here.
7452	(check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
7453	* cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
7454	(TYPE_VEC_NEW_USES_COOKIE): Reimplement.
7455	* pt.c (instantiate_class_template): Don't set
7456	TYPE_VEC_DELETE_TAKES_SIZE.
7457	* NEWS: Document ABI changes from GCC 3.0.
7458
74592001-07-18  Xavier Delacour <xavier@fmaudio.net>,
7460	    Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7461
7462	* NEWS (Changes in GCC 3.0): Fix typo.
7463
74642001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
7465
7466	* decl2.c (cplus_decl_attributes): Take a pointer to the node to
7467	which attributes are to be attached, and a flags argument.  Update
7468	call to decl_attributes.
7469	(grokfield): Update call to decl_attributes.
7470	* class.c (finish_struct): Update call to cplus_decl_attributes.
7471	* cp-tree.h (cplus_decl_attributes): Update prototype.
7472	* decl.c (start_decl, grokdeclarator, start_function): Update
7473	calls to decl_attributes and cplus_decl_attributes.
7474	* friend.c (do_friend): Update call to cplus_decl_attributes.
7475	* parse.y (parse_bitfield): Update call to cplus_decl_attributes.
7476
74772001-07-12  Mark Mitchell  <mark@codesourcery.com>
7478
7479	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
7480	for `register' variables with an asm-specification.
7481
74822001-07-11  Mark Mitchell  <mark@codesourcery.com>
7483
7484	* semantics.c (finish_asm_stmt): Mark the output operands
7485	to an asm addressable, if necessary.
7486
74872001-07-11  Ben Elliston  <bje@redhat.com>
7488
7489	* Revert this change -- there is a subtle bug.
7490
7491	PR c++/80
7492	* decl.c (finish_enum): New "attributes" argument; pass it to
7493	cplus_decl_attributes.  Use a narrower type if the enum is packed.
7494	* cp-tree.h (finish_enum): Adjust prototype.
7495	* parse.y (enum_head): New non-terminal.
7496	(structsp): Use it. Enums now may be preceded or followed by
7497	optional attributes -- pass their chained tree to finish_enum().
7498	* pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
7499
75002001-07-10  Mark Mitchell  <mark@codesourcery.com>
7501
7502	* pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
7503	variables.
7504
75052001-07-10  Jason Merrill  <jason_merrill@redhat.com>
7506
7507	* semantics.c (cp_expand_stmt): Fix for null
7508	current_function_return_value.
7509
75102001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
7511
7512	* call.c (build_op_delete_call): Initialize fn.
7513	(convert_like_real): Delete conditional.
7514	(joust): Initialize *w and *l.
7515	* class.c: Add prototype for binfo_ctor_vtable.
7516	(get_primary_binfo): Initialize result.
7517	* init.c (build_java_class_ref): Initialize name.
7518
75192001-07-09  Erik Rozendaal  <dlr@acm.org>
7520
7521	* typeck.c (unary_complex_lvalue): Do not duplicate the
7522	argument to modify, pre-, or post-increment when used as an
7523	lvalue and when the argument has side-effects.
7524
75252001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
7526
7527	* decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
7528	(start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES.  Call
7529	cplus_decl_attributes even if attrs is NULL.
7530	* friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
7531
75322001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
7533
7534	* decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
7535	calls to decl_attributes.
7536
75372001-07-06  Ira Ruben   <ira@apple.com>
7538
7539	* cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
7540	be DECL_TEMPLATE_RESULT.
7541
75422001-07-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
7543
7544	* cp-tree.h (copy_template_template_parm): Rename to ...
7545	(bind_template_template_parm): ... here.
7546	* tree.c (copy_template_template_parm): Rename to ...
7547	(bind_template_template_parm): ... here.  Remove the case when
7548	NEWARGS is NULL_TREE.
7549	(copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
7550	BOUND_TEMPLATE_TEMPLATE_PARM.
7551	* pt.c (lookup_template_class): Adjust.
7552
75532001-07-05  Jason Merrill  <jason_merrill@redhat.com>
7554
7555	* cvt.c (convert_lvalue): New fn.
7556	* cp-tree.h: Declare it.
7557	* method.c (do_build_assign_ref): Use it.
7558	(do_build_copy_constructor): Convert parm to base types
7559	before calling base constructors.
7560
7561	* typeck.c (check_return_expr): Check DECL_ALIGN instead of
7562	DECL_USER_ALIGN.  Check flag_elide_constructors instead of
7563	optimize.
7564	* semantics.c (cp_expand_stmt): Don't destroy the named return value.
7565
75662001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
7567
7568	* optimize.c (optimize_inline_calls): New function, broken out
7569	of ...
7570	(optimize_function): ... here. Call it. Don't inline if it is
7571	a thunk.
7572	(dump_function): Print name of dump flag causing this dump.
7573	* semantics.c (expand_body): Move thunk inline check to
7574	optimize_function.
7575
75762001-06-29  Joseph S. Myers  <jsm28@cam.ac.uk>
7577
7578	* typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
7579	(comptypes): Use target.comp_type_attributes.
7580
75812001-06-29  Nathan Sidwell  <nathan@codesourcery.com>
7582
7583	* cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
7584
75852001-06-28  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
7586
7587	* error.c (lang_print_error_function): Add a `diagnostic_context *'
7588	parameter. Tweak.
7589
75902001-06-27  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7591
7592	* decl2.c (import_export_class): Update.
7593
75942001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
7595
7596	* error.c (init_error): Adjust settings.
7597
75982001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
7599
7600	* error.c (init_error): Adjust settings.
7601
76022001-06-19  Richard Sandiford  <rsandifo@redhat.com>
7603
7604	* except.c (initialize_handler_parm): Expect __cxa_begin_catch to
7605	return pointers to data members by reference rather than by value.
7606
76072001-06-18  Jason Merrill  <jason_merrill@redhat.com>
7608
7609	Implement the Named Return Value optimization.
7610	* cp-tree.h (struct cp_language_function): Add x_return_value.
7611	(current_function_return_value): Now a macro.
7612	* decl.c: Don't define it.
7613	(define_label, finish_case_label): Don't clear it.
7614	(init_decl_processing): Don't register it with GC.
7615	* semantics.c (genrtl_finish_function): Don't check it for
7616	no_return_label.  Copy the RTL from the return value to
7617	current_function_return_value and walk, calling...
7618	(nullify_returns_r): ...this new fn.
7619	* typeck.c (check_return_expr): Set current_function_return_value.
7620
76212001-06-15  Jason Merrill  <jason_merrill@redhat.com>
7622
7623	* class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
7624	sharing a ctor vtable with.  Merge code for cases 1 and 2.
7625	(binfo_ctor_vtable): New fn.
7626	(build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
7627
76282001-06-14  Jason Merrill  <jason_merrill@redhat.com>
7629
7630	* class.c (dfs_find_final_overrider): Fix logic.
7631
7632	* class.c (update_vtable_entry_for_fn): Uncomment optimization to use
7633	virtual thunk instead of non-virtual.
7634	(get_matching_virtual): Uncomment.
7635
7636	* pt.c (unify): Don't recurse between the POINTER_TYPE and the
7637	OFFSET_TYPE.  If we're adding cv-quals, the extra ones would be on
7638	PARM, not ARG.
7639
76402001-06-14  Nathan Sidwell  <nathan@codesourcery.com>
7641
7642	* class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
7643	we've not emerged from the hierarchy of RTTI_BINFO on reaching
7644	a non-virtual base.
7645
76462001-06-13  Mark Mitchell  <mark@codesourcery.com>
7647
7648	* NEWS: Update release number.
7649
76502001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
7651
7652	PR c++/3130, c++/3131, c++/3132
7653	* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
7654	* class.c (force_canonical_binfo_r): Move
7655	BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
7656	virtual bases unless they're primary and what they're primary
7657	too has been moved.
7658	(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
7659	with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
7660	BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
7661	derived binfo.
7662	(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
7663	(layout_nonempty_base_or_field): Add most derived type
7664	parameter. Adjust.
7665	(layout_empty_base): Likewise.
7666	(build_base_field): Likewise.
7667	(build_base_fields): Likewise.
7668	(propagate_binfo_offsets): Add most derived type
7669	parameter. Skip non canonical virtual bases too.
7670	(dfs_set_offset_for_unshared_vbases): Don't skip primary
7671	bases. Do skip canonical bases.
7672	(layout_virtual_bases): Adjust.
7673	(layout_class_type): Adjust.
7674	(dfs_get_primary_binfo): Build list of virtual primary base
7675	candidates.
7676	(get_primary_binfo): Check that the shared virtual primary
7677	base candidate was found first.
7678	(accumulate_vtbl_inits): Don't do anything for non-vptr
7679	containing binfos. For case 1 primary virtual bases, keep
7680	checking that we've not emerged from the hierarchy of RTTI_BINFO.
7681
76822001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
7683
7684	PR c++/3089
7685	* class.c (dfs_accumulate_vtbl_inits): Always walk down the
7686	hierarchy looking for primary bases for a ctor
7687	vtable. Recursively call oneself, if we meet our primary via
7688	this route and haven't met it yet via inheritance graph order.
7689
76902001-06-11  Mark Mitchell  <mark@codesourcery.com>
7691
7692	* lang-options.h: Emit documentation for -fno-honor-std, not
7693	-fhonor-std.
7694
76952001-06-10  Alexandre Oliva  <aoliva@redhat.com>
7696
7697	* typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
7698	Don't clobber delta.
7699	(expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
7700
77012001-06-10  Mark Mitchell <mark@codesourcery.com>
7702	    Gabriel Dos Reis  <gdr@codesourcery.com>
7703
7704	* Make-lang.in (cp/call.o): Depend on diagnostic.h
7705	(cp/typeck.o): Depend on diagnostic.h
7706	(cp/typeck2.o): Depend on diagnostic.h
7707	(cp/repo.o): Depend on dignostic.h
7708	* typeck.c: #include diagnostic.h
7709	(convert_for_initialization): Remove extern declaration for
7710	warningcount and errorcount.
7711
7712	* call.c: #include diagnostic.h
7713	(convert_like_real): Remove extern declaration for warnincount and
7714	errorcount.
7715
7716	* repo.c: #include diagnostic.h
7717	* typeck2.c: #include diagnostic.h
7718
77192001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
7720
7721	* decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
7722	in previous change.
7723
77242001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
7725
7726	PR c++/2929
7727	* friend.c (do_friend): Use push_decl_namespace for classes at
7728	namespace scope.
7729
77302001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
7731	    Jason Merrill <jason_merrill@redhat.com>
7732
7733	PR c++/3061
7734	* class.c (build_secondary_vtable): Use assert, rather than an error
7735	message.
7736	(dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
7737	(dfs_accumulate_vtbl_inits): A lost primary virtual base may
7738	be between ORIG_BINFO and RTTI_BINFO, but neither of them.
7739	Don't set BINFO_VTABLE for a primary virtual base.
7740
77412001-06-07  Mark Mitchell  <mark@codesourcery.com>
7742
7743	* decl.c (duplicate_decls): Update source position information
7744	when a template function is defined.
7745
77462001-06-07  Phil Edwards  <pme@sources.redhat.com>
7747
7748	* lang-specs.h:  Move -D_GNU_SOURCE to config/linux.h.
7749
77502001-06-07  Nathan Sidwell  <nathan@codesourcery.com>
7751
7752	PR c++/2914
7753	* decl.c (pushtag): Don't push into a complete type's scope.
7754
77552001-06-06  Jason Merrill  <jason_merrill@redhat.com>
7756
7757	* cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
7758	(struct lang_decl_flags): Lose generate_with_vtable_p.
7759	(BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
7760	* class.c (copy_virtuals): Adjust.
7761	* decl2.c (mark_vtable_entries): Adjust.
7762	* method.c (make_thunk, build_vtable_entry): Adjust.
7763	* class.c (update_vtable_entry_for_fn): Only look as far as the
7764	first defining class.
7765	(build_vtbl_initializer): Put nothing in the slot for a function only
7766	defined in a lost primary virtual base.
7767	(add_vcall_offset_vtbl_entries_1): Use the same code for
7768	the lost primary case and the normal case.
7769	(dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
7770	(get_vfield_offset, get_derived_offset): Lose.
7771	(dfs_find_final_overrider): Use look_for_overrides_here.
7772	(get_matching_virtual): New fn.
7773	* semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
7774	not BV_VCALL_INDEX.
7775	* search.c (look_for_overrides_here): Split out from...
7776	(look_for_overrides_r): Here.
7777
7778	* class.c (find_final_overrider): Return error_mark_node on error.
7779
7780	* decl2.c (key_method): #if 0 accidental change.
7781
77822001-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7783
7784	* call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
7785	(build_over_call): Likewise.
7786	* decl.c (grokparms): Likewise.
7787	* pt.c (tsubst_decl): Likewise.
7788	* typeck.c (convert_arguments): Likewise.
7789
77902001-06-05  Mark Mitchell  <mark@codesourcery.com>
7791
7792	* semantics.c (begin_class_definition): Robustify.
7793
7794	* pt.c (instantiate_decl): Tell the repository code about the
7795	clones, not the cloned functions.
7796	* repo.c (repo_template_used): Explicitly instantiate the cloned
7797	function, not the clones.
7798
77992001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
7800
7801	* call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
7802	ICS_BAD_FLAG on created conversion.
7803	(compare_ics): Break out rank.
7804
78052001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
7806
7807	* decl.c (xref_tag): Remove extraneous %s on dependent name
7808	lookup warning.
7809
78102001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
7811
7812	* class.c (layout_vtable_decl): Fix off by one error on
7813	build_index_type.
7814	(build_vtt): Likewise.
7815	(build_ctor_vtbl_group): Likewise.
7816
78172001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
7818
7819	* class.c (maybe_indent_hierarchy): New function.
7820	(dump_class_hierarchy_r): Add flags. Dump extra binfo
7821	information, if enabled. Use maybe_indent_hierarchy. Adjust
7822	output format.
7823	(dump_class_hierarchy): Adjust prototype. Adjust output format.
7824	(dump_array, dump_vtable, dump_vtt): New functions.
7825	(finish_struct_1): Adjust hierarchy dumping.
7826	(initialize_vtable): Call dump_vtable.
7827	(build_vtt): Call dump_vtt.
7828	(build_ctor_vtbl_group): Call dump_vtable.
7829	* decl2.c (flag_dump_class_layout): Remove.
7830	(cxx_decode_option): Remove dump translation unit
7831	and dump class hierarchy check. Call dump_switch_p.
7832	(finish_file): Adjust dumping.
7833	(dump.c): Only dump base classes if not TDF_SLIM.
7834	Only dump namespace members if not TDF_SLIM.
7835	* optimize.c (dump_function): New function.
7836	(optimize_function): Call dump_function.
7837	* semantics.c (expand_body): Use dump_enabled_p.
7838
78392001-06-01  Nathan Sidwell  <nathan@codesourcery.com>
7840
7841	PR g++/2936
7842	Part missed from first commit
7843	* decl2.c (finish_anon_union): Copy context.
7844
78452001-05-30  Nathan Sidwell  <nathan@codesourcery.com>
7846
7847	PR g++/2936
7848	* optimize.c (remap_decl): Remap anonymous aggregate members too.
7849
78502001-05-26  Nathan Sidwell  <nathan@codesourcery.com>
7851
7852	PR g++/2823
7853	* semantics.c (expand_body): Don't optimize thunks.
7854
78552001-05-25  Sam TH  <sam@uchicago.edu>
7856
7857	* cp-tree.h lex.h: Fix header include guards.
7858
78592001-05-25  Mark Mitchell <mark@codesourcery.com>
7860
7861	* decl.c (init_decl_processing): Tweak.
7862
78632001-05-24  Mark Mitchell  <mark@codesourcery.com>
7864
7865	* decl.c (duplicate_decls): Tidy.
7866	(init_decl_processing): Always set flag_no_builtin.
7867
78682001-05-24  Nathan Sidwell  <nathan@codesourcery.com>
7869
7870	PR c++/2184
7871	* decl2.c (do_local_using_decl): Push the decls, even in a
7872	template.
7873
78742001-05-22  Mark Mitchell  <mark@codesourcery.com>
7875
7876	* optimize.c (initialize_inlined_parameters): Don't set
7877	TREE_READONLY for a VAR_DECL taking the place of an inlined
7878	PARM_DECL.
7879
78802001-05-22  Jason Merrill  <jason_merrill@redhat.com>
7881
7882	* class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
7883	* tree.c (cp_valid_lang_attribute): Warn about use of com_interface
7884	attribute.
7885
78862001-05-22  Joseph S. Myers  <jsm28@cam.ac.uk>
7887
7888	* parse.y: Refer to compound literals as such, not as
7889	constructor-expressions.
7890
78912001-05-21  Mark Mitchell  <mark@codesourcery.com>
7892
7893	* call.c (build_op_delete_call): Ignore exception-specifications
7894	when looking for matching delete operators.
7895	* init.c (build_new_1): Compute whether or not the allocation
7896	function used is a placement allocation function or not, and
7897	communicate this information to build_op_delete_call.
7898
78992001-05-21  Jason Merrill  <jason_merrill@redhat.com>
7900
7901	* class.c (build_vtable_entry_ref): Lose vtbl parm.  Fix for new abi.
7902	(build_vtbl_ref): Adjust.
7903	(dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
7904	* decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
7905	Re-add vtable-gc.
7906	(unsupported_options): Correspondingly.
7907
7908	* decl2.c (maybe_make_one_only): Check flag_weak, not
7909	supports_one_only().
7910
7911	* cp-tree.def (START_CATCH_STMT): Lose.
7912	* dump.c (cp_dump_tree): Don't dump it.  Do dump HANDLER_PARMS.
7913	* tree.c (cp_statement_code_p): Don't case it.
7914	* semantics.c (cp_expand_stmt): Likewise.
7915	* cp-tree.h (START_CATCH_TYPE): Lose.
7916	(HANDLER_TYPE): New.
7917	* except.c (expand_start_catch_block): Don't start any blocks.
7918	Return the type.
7919	(expand_end_catch_block): Don't end any blocks.
7920	* parse.y (handler): Don't pass anything from finish_handler_parms
7921	to finish_handler.
7922	* pt.c (tsubst_expr): Likewise.
7923	* semantics.c (begin_handler): Call note_level_for_catch here.
7924	(finish_handler_parms): Don't return anything.
7925	(genrtl_catch_block, begin_catch_block): Lose.
7926	(genrtl_handler): Call expand_start_catch here.
7927
79282001-05-18  Jason Merrill  <jason_merrill@redhat.com>
7929
7930	* class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
7931	(get_vtable_decl, build_vtt): Not here.
7932
79332001-05-20  Nathan Sidwell  <nathan@codesourcery.com>
7934
7935	PR c++/2781
7936	* optimize.c (update_cloned_parm): Copy addressability and other
7937	flags.
7938
79392001-05-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
7940
7941	* pt.c (determine_specialization): Ignore artificial functions.
7942
79432001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7944
7945	* cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
7946	(C_RID_CODE): Remove.
7947	* lex.c (cxx_init_options): Call set_identifier_size.  Update.
7948	(init_parse): Don't do it here.
7949
79502001-05-18  Diego Novillo  <dnovillo@redhat.com>
7951
7952	* decl2.c (finish_objects): Use the original SYMBOL_REF from the
7953	function declaration to avoid stripping the symbol's attributes.
7954
79552001-05-18  Nathan Sidwell  <nathan@codesourcery.com>
7956
7957	* decl.c (pushdecl): Adjust error string.
7958	(xref_tag): Adjust friend class injection warning. Remove the
7959	inherited name from the class shadowed scope.
7960
79612001-05-17  Mark Mitchell  <mark@codesourcery.com>
7962
7963	* except.c (cp_protect_cleanup_actions): New function.
7964	(init_exception_processing): Don't set protect_cleanup_actions
7965	here.  Do set lang_protect_cleanup_actions.
7966
79672001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
7968
7969	* spew.c (read_token): Call yyerror on all unexpected tokens.
7970
79712001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
7972
7973	* init.c (member_init_ok_or_else): Take a tree rather than
7974	string for name.
7975	(expand_member_init): Adjust.
7976
79772001-05-14  Nick Clifton  <nickc@cambridge.redhat.com>
7978
7979	* decl.c (duplicate_decls): Suppress warning about duplicate
7980	decls if the first decl is a friend.
7981
79822001-05-12  Zack Weinberg  <zackw@stanford.edu>
7983
7984	* except.c (choose_personality_routine): Export.  Add
7985	explanatory comment.  Take an enum languages, not a boolean.
7986	(initialize_handler_parm): Adjust to match.
7987	* cp-tree.h: Prototype choose_personality_routine.
7988	* lex.c (handle_pragma_java_exceptions): New function.
7989	(init_cp_pragma): Register #pragma GCC java_exceptions.
7990
79912001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7992
7993	* method.c (build_mangled_C99_name): Remove unused prototype.
7994
79952001-05-12  Alexandre Oliva  <aoliva@redhat.com>
7996
7997	* cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
7998	* typeck.c (get_member_function_from_ptrfunc,
7999	build_ptrmemfunc, expand_ptrmemfunc_cst): Take
8000	TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
8001
8002	Reverted Geoff Keating's 2001-05-03's patch.
8003
80042001-05-11  Ira Ruben	<ira@apple.com>
8005
8006	* cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
8007
80082001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8009
8010	* cp-tree.h (finish_label_expr, lookup_label): Delete.
8011	* parse.y: Update for '&&'; don't issue warning here.
8012	* semantics.c (finish_label_expr): Delete.
8013
80142001-05-07  Mark Mitchell  <mark@codesourcery.com>
8015
8016	* splay-tree.h (splay_tree_max): New function.
8017	(splay_tree_min): Likewise.
8018
80192001-05-03  Geoffrey Keating  <geoffk@redhat.com>
8020
8021	* cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
8022	(pfn_vflag_identifier): Define.
8023	Update comment about layout of pointer functions.
8024	(build_ptrmemfunc1): Update prototype.
8025	(expand_ptrmemfunc_cst): Update prototype.
8026	* decl.c (initialize_predefined_identifiers): Initialize
8027	pfn_vflag_identifier.
8028	(build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
8029	an extra field to the type.
8030	* expr.c (cplus_expand_constant): Pass 'flag' between
8031	expand_ptrmemfunc_cst and build_ptrmemfunc1.
8032	* typeck.c (get_member_function_from_ptrfunc): When
8033	FUNCTION_BOUNDARY < 16, look at additional field to determine
8034	if a pointer-to-member is a real pointer or a vtable offset.
8035	(build_ptrmemfunc1): Add new parameter to contain extra field.
8036	(build_ptrmemfunc): Pass the extra field around.
8037	(expand_ptrmemfunc_cst): Add new parameter to return extra field.
8038	(pfn_from_ptrmemfunc): Ignore the extra field.
8039
80402001-05-03  Mark Mitchell  <mark@codesourcery.com>
8041
8042	* cp-tree.h (flag_inline_trees): Update documentation.
8043	* decl.c (init_decl_processing): Adjust handling of
8044	flag_inline_functions and flag_inline_trees to support -O3.
8045	(grokfndecl): Set DECL_INLINE on all functions if that's what
8046	the user requested.
8047	(save_function_data): Clear DECL_INLINE in
8048	current_function_cannot_inline is non-NULL.
8049	* decl2.c (flag_inline_trees): Update documentation.
8050
80512001-05-03  Nathan Sidwell  <nathan@codesourcery.com>
8052
8053	* dump.c (cp_dump_tree, USING_STMT case): New case.
8054	* tree.c (cp_statement_code_p): Add USING_STMT.
8055	* decl2.c (do_using_directive): Add the using directive statement.
8056
8057	* tree.c (walk_tree): Reformat an if block.
8058
80592001-05-02  Mark Mitchell  <mark@codesourcery.com>
8060
8061	* decl.c (compute_array_index_type): Don't try to do anything with
8062	the indices when processing a template.
8063
80642001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8065
8066	* call.c: NULL_PTR -> NULL.
8067	* class.c: Likewise.
8068	* cvt.c: Likewise.
8069	* decl.c: Likewise.
8070	* decl2.c: Likewise.
8071	* except.c: Likewise.
8072	* init.c: Likewise.
8073	* rtti.c: Likewise.
8074	* search.c: Likewise.
8075	* tree.c: Likewise.
8076	* typeck.c: Likewise.
8077	* typeck2.c: Likewise.
8078
80792001-05-02  Mark Mitchell  <mark@codesourcery.com>
8080
8081	* decl2.c (do_using_directive): Revert previous patch.
8082
80832001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
8084
8085	* cp-tree.def (USING_STMT): New statement node.
8086	* cp-tree.h (USING_STMT_NAMESPACE): New macro.
8087	* decl2.c (do_using_directive): Add USING_STMT to statement
8088	tree. Don't emit errors when processing template decl.
8089	* pt.c (tsubst_expr, USING_STMT case): New case.
8090	* semantics.c (cp_expand_stmt, USING_STMT case): New case.
8091
80922001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
8093
8094	* call.c (build_new_op): Convert args from reference here.
8095	(build_conditional_expr): Don't convert here.
8096
80972001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
8098
8099	* spew.c (last_token_id): New static variable.
8100	(read_token): Set it here.
8101	(yyerror): Use it here.
8102
81032001-04-30  Richard Henderson  <rth@redhat.com>
8104
8105	* cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
8106	* decl.c: Likewise.
8107
81082001-04-30  Mark Mitchell  <mark@codesourcery.com>
8109
8110	* gxxint.texi: Remove.
8111	* Make-lang.in: Remove all traces of gxxint.texi.
8112
8113Mon Apr 30 16:14:10 2001  Mark P Mitchell  <mark@codesourcery.com>
8114
8115	* decl2.c (start_static_initialization_or_destruction): Correct
8116	logic to handle the -fno-use-cxa-atexit case.
8117
81182001-04-30  Mark Mitchell  <mark@codesourcery.com>
8119
8120	* optimize.c (update_cloned_parm): New function.
8121	(maybe_clone_body): Use it.  Update the `this' parameter too.
8122
81232001-04-29  Joseph S. Myers  <jsm28@cam.ac.uk>
8124
8125	* decl2.c (unsupported_options): Add new-abi.
8126	* lang-options.h: Remove no longer supported options.
8127
81282001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8129
8130	* except.c (can_convert_eh): Don't check template parms,
8131	typename types etc.
8132
81332001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8134
8135	* optimize.c (maybe_clone_body): Copy parameter names and locations.
8136
81372001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8138
8139	* cp-tree.h (adjust_clone_args): Prototype new function.
8140	* class.c (adjust_clone_args): New function.
8141	* decl.c (start_function): Call it for in charge ctors.
8142
81432001-04-26  Mark Mitchell  <mark@codesourcery.com>
8144
8145	* method.c (use_thunk): Make sure that thunks really are emitted
8146	when requested.
8147
81482001-04-26  Nathan Sidwell <nathan@codesourcery.com>
8149
8150	* mangle.c (write_chars): New macro.
8151	(hwint_to_ascii): New function
8152	(write_number): Use it.
8153	(write_integer_cst): Deal with really big numbers.
8154
81552001-04-25  Mark Mitchell  <mark@codesourcery.com>
8156
8157	* optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
8158	the clone.
8159
81602001-04-25  Nathan Sidwell  <nathan@codesourcery.com>
8161
8162	* decl.c (grokdeclarator): Set context of namespace scope
8163	TYPE_DECLS.
8164
81652001-04-24  Zack Weinberg  <zackw@stanford.edu>
8166
8167	* cp/optimize.c: Include hashtab.h.
8168	(struct inline_data): Add tree_pruner.
8169	(expand_call_inline, expand_calls_inline): Use it when calling
8170	walk_tree.
8171	(optimize_function): Initialize and free tree_pruner.
8172
81732001-04-24  Nathan Sidwell <nathan@codesourcery.com>
8174
8175	Lazy __FUNCTION__ generation.
8176	* cp-tree.def (FUNCTION_NAME): Remove.
8177	* cp-tree.h (function_name_declared_p): Remove.
8178	(cp_fname_init): Prototype.
8179	* decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
8180	don't call declare_function_name. Call start_fname_decls.
8181	(cp_make_fname_decl): Adjust parameters. Generate the name. Don't
8182	clobber the line number.
8183	(cp_fname_init): New function.
8184	(start_function): Call start_fname_decls.
8185	(finish_function): Call finish_fname_decls.
8186	* lex.c (reswords): Add slots for __FUNCTION__ et al.
8187	(rid_to_yy): Add mappings for __FUNCTION__ et al.
8188	* optimize.c (maybe_clone_body): Remove function_name_declared_p.
8189	* parse.y (VAR_FUNC_NAME): New token.
8190	(primary): Add VAR_FUNC_NAME.
8191	* pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
8192	generation.
8193	(tsubst, FUNCTION_NAME case): Remove.
8194	(tsubst_copy, FUNCTION_NAME case): Remove.
8195	(tsubst_expr, DECL_STMT case): Be careful with a
8196	DECL_PRETTY_FUNCTION_P.
8197	(instantiate_decl): Remove function_name_declared_p.
8198	* semantics.c (begin_compound_statement): Don't call
8199	declare_function_name here.
8200	(setup_vtbl_ptr). Don't save & restore function_name_declared_p.
8201	(finish_translation_unit): Call finish_fname_decls.
8202	(expand_body): Remove function_name_declared_p.
8203	* typeck2.c (digest_init): Allow any ERROR_MARK.
8204
82052001-04-24  Nathan Sidwell  <nathan@codesourcery.com>
8206
8207	* pt.c (tsubst_decl): Use VOID_TYPE_P.
8208	* semantics.c: Fix some typos.
8209
82102001-04-23  Phil Edwards  <pme@sources.redhat.com>
8211
8212	* cp/decl2.c (flag_honor_std):  Always initialize to 1.
8213
82142001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8215
8216	* xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
8217
82182001-04-23  Jason Merrill  <jason_merrill@redhat.com>
8219
8220	* except.c (build_throw): Wrap the initialization of the exception
8221	object in a MUST_NOT_THROW_EXPR.
8222	(do_free_exception): #if 0.
8223
82242001-04-20  Mark Mitchell  <mark@codesourcery.com>
8225
8226	* cp-tree.h (finish_enum): Change prototype.
8227	* decl.c (finish_enum): Reorganize.
8228	* parse.y (structsp): Adjust calls to finish_enum.
8229
82302001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
8231
8232	* tree.c (cp_tree_equal): Adjust final switch formatting. Add
8233	't' case.
8234
82352001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
8236
8237	* class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
8238	(layout_empty_base): Return at end flag.
8239	(build_base_field): Likewise.
8240	(build_base_fields): Likewise.
8241	(layout_virtual_bases): Don't add 1 to eoc value.
8242	(end_of_class): Use full size for empty bases.
8243	(layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
8244	empty bases. Don't add 1 to eoc value. Only add trailing padding
8245	if we're an empty class with no empty bases.
8246	(dump_class_hierarchy): Dump size and alignment.
8247
82482001-04-20  Jakub Jelinek  <jakub@redhat.com>
8249
8250	* call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
8251	ICS_BAD_FLAG.
8252
82532001-04-20  Jakub Jelinek  <jakub@redhat.com>
8254
8255	* search.c (lookup_field_r): If looking for type and non-TYPE_DECL
8256	is found, look first if name does not match the structure name.
8257
82582001-04-19  Mark Mitchell  <mark@codesourcery.com>
8259
8260	* cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
8261	set.
8262	(SET_DECL_LANGUAGE): New macro.
8263	* decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
8264	(pushdecl): Likewise.
8265	(build_library_fn_1): Likewise.
8266	(build_cp_library_fn): Likewise.
8267	(grokfndecl): Likewise.
8268	(grokvardecl): Mark `extern "C"' variables as having C linkage.
8269	* decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
8270	* lex.c (retrofit_lang_decl): Likewise.
8271	* mangle.c (mangle_decl_string): Don't mangle the names of
8272	variables declared with C language linkage.
8273	* semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
8274
82752001-04-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8276
8277	* semantics.c (simplify_aggr_init_exprs_r): Don't restore
8278	flag_access_control from uninitialized storage.
8279
82802001-04-15  Mark Mitchell  <mark@codesourcery.com>
8281
8282	* cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
8283	* mangle.c (write_pointer_to_member_type): Fix mangling of
8284	pointers to cv-qualified member function types.
8285
8286	* init.c (build_delete): Create a SAVE_EXPR for the address if
8287	we're going to use it more than once.
8288
82892001-04-13  Mark Mitchell  <mark@codesourcery.com>
8290
8291	* cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
8292	(expand_ptremfunc_cst): Change prototype.
8293	(delta2_from_ptrmemfunc): Remove.
8294	* expr.c (cplus_expand_constant): Adjust call to
8295	expand_ptrmemfunc_cst.
8296	* typeck.c (build_ptrmemfunc1): Simplify.
8297	(build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
8298	results in a constant.
8299	(expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
8300	(delta2_from_ptrmemfunc): Remove.
8301	(pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
8302
83032001-04-12  Jason Merrill  <jason_merrill@redhat.com>
8304
8305	* cp-tree.h (decl_namespace_list): New macro.
8306	(struct saved_scope): Add decl_ns_list.
8307	* decl.c (mark_saved_scope): Mark it.
8308	* decl2.c: Lose static decl_namespace_list.
8309	(init_decl2): Don't save it.
8310
83112001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8312
8313	* cp-tree.h (warn_return_type, yylex): Delete redundant
8314	declarations.
8315
8316	* decl.c (current_class_depth, global_namespace): Likewise.
8317
8318	* decl2.c (current_class_depth, flag_gnu_xref): Likewise
8319
8320	* repo.c (flag_use_repository): Likewise.
8321
83222001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8323
8324	* cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
8325	set_block, pushdecl, getdecls, gettags, init_decl_processing,
8326	maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
8327	lvalue_or_else, print_lang_statistics, comp_target_types,
8328	unsigned_type, signed_type, signed_or_unsigned_type,
8329	build_function_call, mark_addressable, incomplete_type_error):
8330	Delete redundant declarations.
8331
83322001-04-11  Jason Merrill  <jason_merrill@redhat.com>
8333
8334	* cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
8335	(TYPE_ANONYMOUS_P): New macro.
8336	(TAGGED_TYPE_P): New macro.
8337	* decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
8338	(grokfndecl, grokvardecl, grokdeclarator): Likewise.
8339	* tree.c (no_linkage_helper): Likewise.
8340	* semantics.c (begin_class_definition): Likewise.
8341	* pt.c (convert_template_argument): Likewise.
8342	* lex.c (check_for_missing_semicolon): Likewise.
8343
83442001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
8345
8346	* class.c (dfs_unshared_virtual_bases): New function.
8347	(mark_primary_bases): Call it.
8348	(check_bases): Ignore virtual bases when determining
8349	nearly-emptiness.
8350
83512001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
8352
8353	* method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
8354
83552001-04-11  Mark Mitchell  <mark@codesourcery.com>
8356
8357	* optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
8358	cloned function to the clone.
8359
83602001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8361
8362	* Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
8363
8364	* semantics.c: Include expr.h.
8365
83662001-04-11  Nathan Sidwell  <nathan@codesourcery.com>
8367
8368	* method.c (implicitly_declare_fn): Commonize code for copy ctor
8369	and assignment op. Set TREE_USED for parameter.
8370
83712001-04-10  Mark Mitchell  <mark@codesourcery.com>
8372
8373	* class.c (find_final_overrider_data): Add `candidates'.
8374	(dfs_find_final_overrider): Don't issue error messages
8375	prematurely.
8376	(find_final_overrider): Issue error messages here.
8377	(build_base_field): Don't warn about amgibuous direct bases here.
8378	(warn_about_ambiguous_direct_bases): New function.
8379	(layout_class_type): Use it.
8380
83812001-04-10  Richard Henderson  <rth@redhat.com>
8382
8383	* typeck.c (build_array_ref): Push the array reference inside
8384	COMPOUND_EXPR and COND_EXPR.
8385
83862001-04-05  Mark Mitchell  <mark@codesourcery.com>
8387
8388	* cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
8389	* decl.c (duplicate_decls): Adjust accordingly.
8390	(maybe_commonize_var): Likewise.
8391	(grokfndecl): Likewise.
8392	(start_function): Likewise.
8393	(start_method): Likewise.
8394	* decl2.c (key_method): Likewise.
8395	(import_export_decl): Likewise.
8396	* method.c (implicitly_declare_fn): Likewise.
8397	* optimize.c (maybe_clone_body): Likewise.
8398
83992001-04-05  Benjamin Kosnik  <bkoz@redhat.com>
8400
8401	* lang-specs.h: Add __DEPRECATED.
8402
8403Thu Apr  5 16:54:29 2001  J"orn Rennecke <amylaar@redhat.com>
8404
8405	* search.c (get_dynamic_cast_base_type): When building a new
8406	constant, set its type to ssizetype.
8407
84082001-04-04  Jakub Jelinek  <jakub@redhat.com>
8409
8410	* optimize.c (expand_call_inline): Only add newly inlined statements
8411	into inlined_stmts.
8412
84132001-04-03  Mark Mitchell  <mark@codesourcery.com>
8414
8415	* cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
8416	(OPERATOR_FORMAT): Likewise.
8417	(OPERATOR_TYPENAME_FORMAT): Likewise.
8418	* operators.def: Remove old name-mangling information.
8419	* decl.c (grok_op_properties): Adjust accordingly.
8420	* lex.c (init_operators): Likewise.
8421	* rtti.c (get_tinfo_decl): Issue error messages about types that
8422	have variable size.
8423
84242001-04-03  Mark Mitchell  <mark@codesourcery.com>
8425
8426	* decl2.c (import_export_decl): Don't call import_export_class
8427	when processing an inline member function.
8428	* semantics.c (expand_body): Call import_export_decl before
8429	emitting inline functions.
8430
84312001-03-28  Richard Henderson  <rth@redhat.com>
8432
8433	IA-64 ABI Exception Handling:
8434	* cp-tree.def (EH_SPEC_BLOCK): New.
8435	(MUST_NOT_THROW_EXPR): New.
8436	* cp-tree.h: Update changed function declarations.
8437	(CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
8438	(CPTI_CALL_UNEXPECTED): New.
8439	(struct cp_language_function): Rename x_eh_spec_try_block
8440	to x_eh_spec_block.
8441	(EH_SPEC_STMTS, EH_SPEC_RAISES): New.
8442	* decl.c (current_binding_level): If no current function
8443	bindings, revert to scope_chain.
8444	(initialize_predefined_identifiers): Remove __cp_push_exception.
8445	(store_parm_decls): Use begin_eh_spec_block.
8446	(finish_function): Use finish_eh_spec_block.
8447	(mark_lang_function): Update for name changes.
8448	* decl2.c (finish_file): No mark_all_runtime_matches.
8449	* dump.c (cp_dump_tree): Handle new tree codes.
8450	* error.c (dump_expr) [BIND_EXPR]: Fix typo.
8451	* except.c (catch_language_init, catch_language): Remove.
8452	(init_exception_processing): Don't set language code.
8453	Initialize call_unexpected_node, protect_cleanup_actions,
8454	eh_personality_libfunc, lang_eh_runtime_type.
8455	(call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
8456	(get_eh_type, get_eh_caught, get_eh_handlers): Remove.
8457	(prepare_eh_type): Split out type canonicalizations ...
8458	(build_eh_type_type): ... from here.
8459	(build_eh_type_type_ref): Remove.
8460	(mark_all_runtime_matches): Remove.
8461	(build_exc_ptr): New.
8462	(do_begin_catch, do_end_catch): New.
8463	(do_pop_exception): Remove.
8464	(build_terminate_handler): Remove.
8465	(choose_personality_routine): Split out language choice from ...
8466	(initialize_handler_parm): ... here.
8467	Use MUST_NOT_THROW_EXPR.
8468	(expand_start_catch_block): Use do_begin_catch.  Simplify Java
8469	exception object handling.
8470	(expand_start_eh_spec, expand_end_eh_spec): Remove.
8471	(expand_exception_blocks, alloc_eh_object): Remove.
8472	(begin_eh_spec_block, finish_eh_spec_block): New.
8473	(do_allocate_exception, do_free_exception): New.
8474	(expand_throw): Merge into ...
8475	(build_throw): ... here.  Update for abi.
8476	* expr.c (cplus_expand_expr): No expand_internal_throw.
8477	Handle MUST_NOT_THROW_EXPR.
8478	* pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
8479	* semantics.c (*) Update for except.h name changes.
8480	(genrtl_try_block): No protect_with_terminate.
8481	(genrtl_eh_spec_block): New.
8482	(genrtl_handler): Don't emit the goto here.
8483	(cp_expand_stmt): Handle EH_SPEC_BLOCK.
8484	(genrtl_finish_function): Don't expand_exception_blocks.
8485	* tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
8486
84872001-03-28  Richard Henderson  <rth@redhat.com>
8488
8489	* decl.c (struct named_label_list): Rename eh_region to
8490	in_try_scope, add in_catch_scope.
8491	(struct binding_level): Rename eh_region to is_try_scope,
8492	add is_catch_scope.
8493	(note_level_for_try): Rename from note_level_for_eh.
8494	(note_level_for_catch): New.
8495	(poplevel): Copy both is_try_scope and is_catch_scope to
8496	the named_label_list struct.
8497	(check_previous_goto_1): Don't check for catch block via
8498	DECL_ARTIFICIAL; use in_try_scope instead.
8499	(check_goto): Likewise.
8500	* cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
8501	* except.c (expand_start_catch_block): Call note_level_for_catch.
8502	* semantics.c (begin_compound_stmt): Update for note_level_for_try.
8503
85042001-03-27  Richard Henderson  <rth@redhat.com>
8505
8506	* except.c: Use USING_SJLJ_EXCEPTIONS instead of
8507	exceptions_via_longjmp.
8508
85092001-03-27  Phil Edwards  <pme@sources.redhat.com>
8510
8511	* pt.c (check_default_tmpl_args):  Make error messages clearer.
8512
85132001-03-26  Phil Edwards  <pme@sources.redhat.com>
8514
8515	* error.c:  Also undefine 'A' macro used for cp_printers definition.
8516
85172001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8518
8519	* Make-lang.in: Depend on $(SYSTEM_H), not system.h.
8520
85212001-03-26  Mike Yang <yang@research.att.com>
8522	    Mark Mitchell  <mark@codesourcery.com>
8523
8524	* dump.c (dump_access): New function.
8525	(cp_dump_tree): Use it.  Dump basetype information for class
8526	types.
8527
85282001-03-26  Mark Mitchell  <mark@codesourcery.com>
8529
8530	* Makefile.in (optimize.o): Depend on params.h.
8531	(duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
8532	(init_decl_processing): Set flag_no_inline when doing
8533	inlining-on-trees.
8534	* optimize.c: Include params.h.
8535	(struct inline_data): Improve documentation of FNS.  Add
8536	FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
8537	(INSNS_PER_STMT): New macro.
8538	(remap_block): Use CLONING_P.
8539	(inlinable_function_p): Don't inline big functions.
8540	(expand_call_inline): Keep track of how much inlining we've done.
8541	(optimize_function): Set FIRST_INLINED_FN.
8542	(maybe_clone_body): Set CLONING_P.
8543	* semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
8544	tree nodes.
8545	(genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
8546	rest_of_compilation.  Clear DECL_RTL for local variables
8547	afterwards.
8548	(clear_decl_rtl): New function.
8549
85502001-03-26  Nathan Sidwell  <nathan@codesourcery.com>
8551
8552	Implement DR 209
8553	* cp-tree.h (skip_type_access_control,
8554	reset_type_access_control): Prototype.
8555	* decl.c (grokdeclarator): Access of friends is not checked.
8556	* parse.y (component_decl_list): Reset type access control.
8557	* semantics.c (decl_type_access_control): Clear
8558	current_type_lookups.
8559	(save_type_access_control): Don't save if not deferring.
8560	(skip_type_access_control, reset_type_access_control): New
8561	functions.
8562	(begin_class_definition): Do type access control for basetypes.
8563	Start deferred access control.
8564	(finish_class_definition): Resume immediate access control if
8565	this is a local class.
8566
85672001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8568
8569	* class.c (add_method): Use memcpy/memmove, not bcopy.
8570
8571	* decl.c (duplicate_decls): Likewise.
8572
85732001-03-23  Jakub Jelinek  <jakub@redhat.com>
8574
8575	* mangle.c (write_discriminator): Use `_0' for discriminator 1,
8576	not `_'.
8577
85782001-03-23  Jakub Jelinek  <jakub@redhat.com>
8579
8580	* decl.c (local_names): Define.
8581	(push_local_name): New.
8582	(grok_reference_init): Return init if initializing static reference
8583	variable with non-constant instead of emitting it.
8584	Move expand_static_init call to cp_finish_decl.
8585	(layout_var_decl): Call push_local_name.
8586	(maybe_commonize_var): Allow inlining functions even if they have
8587	static local variables, use comdat_linkage for them if flag_weak.
8588	(check_initializer): Call obscure_complex_init if
8589	grok_reference_init returned nonzero.
8590	(save_function_data): Clear x_local_names.
8591	(pop_cp_function_context): Free x_local_names.
8592	(mark_inlined_fns): Remove.
8593	(mark_lang_function): Mark x_local_names.
8594	(lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
8595	Mark inlined_fns as tree, remove call to mark_inlined_fns.
8596	* class.c (alter_access): Ensure DECL_ACCESS is never set if
8597	DECL_DISCRIMINATOR_P.
8598	* cp-tree.h (cp_language_function): Add x_local_names.
8599	(lang_decl_flags): Add discriminator into u2.
8600	(lang_decl_inlined_fns): Remove.
8601	(lang_decl): inlined_fns is now a TREE_VEC.
8602	(DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
8603	* optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
8604	TREE_VEC, not a custom structure.
8605	(optimize_function): Likewise.
8606	* mangle.c (discriminator_for_local_entity): Discriminate among
8607	VAR_DECL local entities.
8608	* search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
8609	is not valid.
8610
86112001-03-22  Bryce McKinlay  <bryce@albatross.co.nz>
8612
8613	Add support for Java interface method calls.
8614	* cp-tree.h (struct lang_type): Add java_interface flag.
8615	(TYPE_JAVA_INTERFACE): New macro.
8616	* tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
8617	by setting TYPE_JAVA_INTERFACE.
8618	* call.c (java_iface_lookup_fn): New static.
8619	(build_over_call): If calling a method declared in a
8620	TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
8621	expression which resolves the function address.
8622	(build_java_interface_fn_ref): New function.
8623
86242001-03-22  Richard Henderson  <rth@redhat.com>
8625
8626	* Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
8627	* except.c: Don't include it.
8628
86292001-03-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8630	    based on an idea from Joe Buck <jbuck@synopsys.com>
8631
8632	* parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
8633	New nonterminals.
8634	(data_def, component_decl): Add reductions to bad_decl.
8635
86362001-03-22  Jakub Jelinek  <jakub@redhat.com>
8637
8638	* method.c (do_build_assign_ref): Don't use build_modify_expr for
8639	anonymous aggregates, since they don't have assignment operator
8640	method.
8641	* decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
8642	assignment operators for anonymous structure fields.
8643
86442001-03-21  Jason Merrill  <jason@redhat.com>
8645
8646	* pt.c (instantiate_decl): Abort if we see a member constant
8647	instantiation that doesn't already have its initializer.
8648	Downgrade explicit instantiation without definition to pedwarn.
8649
8650	* cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
8651	* class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
8652	(import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
8653
8654	* cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
8655	(pending_vtables): Remove.
8656	* decl2.c (pending_vtables): Remove.
8657	(import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
8658	CLASSTYPE_VTABLE_NEEDS_WRITING.
8659	(import_export_class): Likewise.
8660	(init_decl2): Don't mark pending_vtables.
8661	* lex.c (handle_pragma_vtable): Just sorry.
8662	* pt.c (instantiate_class_template): Don't mess with
8663	CLASSTYPE_VTABLE_NEEDS_WRITING.
8664	(mark_class_instantiated): Likewise.
8665	* ptree.c (print_lang_type): Don't print it.
8666	* semantics.c (begin_class_definition): Don't set it.
8667
8668	* pt.c (template_tail): Replace with last_pending_template.
8669	(maybe_templates, maybe_template_tail): Remove.
8670	(add_pending_template): Adjust.
8671	(instantiate_pending_templates): Adjust.
8672
8673	* cp-tree.h (struct saved_scope): Remove lang_stack field.
8674	(current_lang_stack): Remove.
8675	* decl.c (maybe_push_to_top_level): Don't initialize it.
8676	(duplicate_decls): Use current_lang_depth.
8677	(xref_basetypes): Likewise.
8678	* class.c (current_lang_depth): New fn.
8679	(push_lang_context): Use more varray functionality.
8680	(pop_lang_context): Likewise.
8681
8682	* error.c (GLOBAL_THING): Always use '__'.
8683
86842001-03-21  Mark Mitchell  <mark@codesourcery.com>
8685
8686	* class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
8687
8688	* mangle.c (mangle_decl_string): Mangle the names of overloaded
8689	operators, even when they have `extern "C"' linkage.
8690
86912001-03-19  Mark Mitchell  <mark@codesourcery.com>
8692
8693	* class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
8694	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
8695	where it's not necessary.
8696	(add_method): Remove optimization involving comparison of
8697	DECL_ASSEMBLER_NAME.
8698	(build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
8699	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
8700	where it's not necessary.
8701	(check_methods): Likewise.
8702	(build_clone): Likewise.
8703	(built_vtt): Likewise.
8704	* cp-tree.h (DECL_NEEDED_P): Likewise.
8705	* decl.c (pushtag): Likewise.
8706	(duplicate_decls): Likewise.
8707	(pushdecl): Likewise.
8708	(builtin_function): Likewise.
8709	(build_library_fn_1): Set DECL_LANGUAGE for library functions.
8710	(build_cp_library_fn): Likewise.
8711	(maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
8712	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
8713	where it's not necessary.
8714	(make_rtl_for_nonlocal_decl): Likewise.
8715	(cp_finish_decl): Likewise.
8716	(grokfndecl): Likewise.
8717	(grokvardecl): Likewise.
8718	(grokdeclarator): Likewise.
8719	(start_function): Likewise.
8720	(cp_missing_return_ok_p): Likewise.
8721	* decl2.c (grokclassfn): Likewise.
8722	(check_classfn): Likewise.
8723	(finish_static_data_member_decl): Likewise.
8724	(grokfield): Likewise.
8725	* error.c (GLOBAL_IORD_P): Remove.
8726	(dump_global_iord): Improve output.
8727	(dump_decl): Avoid using DECL_ASSEMBLER_NAME.
8728	* except.c (nothrow_libfn_p): Summarily reject any function not in
8729	namespace-scope.
8730	* init.c (build_java_class_ref): Don't explicitly set
8731	DECL_ASSEMBLER_NAME after calling mangle_decl.
8732	* mangle.c (mangle_decl_string): Handle extern "C" functions.
8733	(mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
8734	* method.c (set_mangled_name_for_decl): Don't explicitly set
8735	DECL_ASSEMBLER_NAME after calling mangle_decl.
8736	(make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
8737	IDENTIFIER_GLOBAL_VALUE for the thunk.
8738	* pt.c (set_mangled_name_for_template_decl): Remove.
8739	(check_explicit_specialization): Don't use it.
8740	(looup_template_class): Don't set DECL_ASSEMBLER_NAME.
8741	(tsubst_friend_function): Likewise.
8742	(tsubst_decl): Likewise.
8743	(regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
8744	* rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
8745	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
8746	where it's not necessary.
8747	(tinfo_base_init): Likewise.
8748	(create_real_tinfo_var): Likewise.
8749	* search.c (looup_field_1): Likewise.
8750	* semantics.c (finish_named_return_value): Likewise.
8751	* tree.c (init_tree): Set lang_set_decl_assembler_name.
8752
87532001-03-15  Gabriel Dos Reis  <gdr@codesourcery.com>
8754
8755	Correct semantics restrictions checking in throw-expression.
8756	* except.c (is_admissible_throw_operand): New function.
8757	(build_throw): Use it.
8758
87592001-03-14  Mark Mitchell  <mark@codesourcery.com>
8760
8761	* decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
8762	and its ilk.
8763
87642001-03-14  Mark Mitchell  <mark@codesourcery.com>
8765
8766	* class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
8767	* cp-tree.h (DECL_IN_MEMORY_P): Likewise.
8768	* decl.c (duplicate_decls): Likewise.
8769	(builtin_function): Likewise.
8770	(build_library_fn): Likewise.
8771	(build_cp_library_fn): Likewise.
8772	(check_initializer): Likewise.
8773	(cp_finish_decl): Likewise.
8774	* decl2.c (grokfield): Likewise.
8775	(grok_function_init): Remove #if 0'd code.
8776	(finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
8777	* friend.c (do_friend): Likewise.
8778	* init.c (get_temp_regvar): Likewise.
8779	* method.c (make_thunk): Likewise.
8780	* pt.c (tsubst_friend_function): Likewise.
8781	(tsubst_decl): Likewise.
8782	(regenerate_decl_from_template): Likewise.
8783	* semantics.c (genrtl_named_return_value): Likewise.
8784	(expand_body): Likewise.
8785	(genrtl_finish_function): Likewise.
8786	* tree.c (cp_tree_equal): Likewise.
8787
87882001-03-12  Nathan Sidwell  <nathan@codesourcery.com>
8789
8790	* call.c (convert_like_real): Add extra semantics to INNER
8791	parameter. Don't convert to temporary if a user conversion
8792	gives us an lvalue that we're about to bind to a reference.
8793	Set INNER to indicate pending reference binding on recursive
8794	calls.
8795
87962001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8797
8798	* cp/lex.c: Delete duplicate pending_lang_change.
8799
88002001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8801
8802	* cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
8803	Similarly.
8804	* cp/repo.c (get_base_filename, open_repo_file): Similarly.
8805	* cp/cp-tree.h: Remove file_name_nondirectory prototype.
8806
88072001-03-09  Zack Weinberg  <zackw@stanford.edu>
8808
8809	* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
8810
88112001-03-08  Stan Shebs  <shebs@apple.com>
8812
8813	* cp-tree.h (set_identifier_local_value): Remove unused decl.
8814
88152001-03-06  Zack Weinberg  <zackw@stanford.edu>
8816
8817	* spew.c: Remove references to CPP_OSTRING.
8818
88192001-03-06  Andrew Haley  <aph@redhat.com>
8820
8821	* typeck.c (convert_arguments): Check that we have an fndecl.
8822
88232001-03-05  Andrew Haley  <aph@redhat.com>
8824
8825	* typeck.c (convert_arguments): Don't do ellipsis conversion for
8826	__built_in_constant_p.
8827
88282001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
8829
8830	* typeck.c (build_static_cast): Allow enum to enum conversions
8831	as per DR 128.
8832
88332001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
8834
8835	* class.c (check_field_decls): Pointers to member do not a
8836	non-pod struct make, as per DR 148.
8837
88382001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
8839
8840	* call.c (joust): cp_pedwarn when using gnu extension concerning
8841	worst conversion sequences.
8842
88432001-03-01  Zack Weinberg  <zackw@stanford.edu>
8844
8845	* decl.c: Replace all uses of 'boolean' with 'bool'.
8846
88472001-03-01  Zack Weinberg  <zackw@stanford.edu>
8848
8849	* lang-specs.h: Add zero initializer for cpp_spec field to
8850	all array elements that need one.  Don't put an #ifdef inside
8851	the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
8852	use it.
8853
88542001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
8855
8856	Implement using decls inside template functions.
8857	* decl2.c (validate_nonmember_using_decl): Don't special case
8858	fake_std_node in the global namespace. Don't reject early when
8859	processing a template.
8860	(do_local_using_decl): Add to statement tree. Don't do further
8861	processing when building a template.
8862	* pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
8863
88642001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
8865
8866	* decl2.c (do_nonmember_using_decl): Don't complain if we find
8867	same function. Do complain about ambiguating extern "C"
8868	declarations.
8869
88702001-02-28  Nathan Sidwell  <nathan@codesourcery.com>
8871
8872	Remove floating point and complex type template constant parms.
8873	* pt.c (convert_nontype_argument): Remove REAL_TYPE and
8874	COMPLEX_TYPE extensions.
8875	(invalid_nontype_parm_type_p): Likewise.
8876
88772001-02-27  Jeffrey Oldham  <oldham@codesourcery.com>
8878
8879	* except.c (call_eh_info): Revert "match_function"'s type.
8880
88812001-02-27  Nathan Sidwell  <nathan@codesourcery.com>
8882
8883	Fix ctor vtable vcall offsets.
8884	* class.c (struct vtbl_init_data_s): Add rtti_binfo member.
8885	(build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
8886	(get_matching_base): Remove.
8887	(get_original_base): New function.
8888	(build_vtbl_initializer): Initialize vid.rtti_binfo.
8889	Use a virtual thunk for a ctor vtable with an index
8890	(add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
8891	primary base within a constructor vtable. Only set
8892	BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
8893	when primary base has been lost.
8894	* cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
8895
88962001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
8897
8898	* call.c (joust): Ensure more_specialized()'s argument length
8899	parameter has correct value for constructors.
8900
89012001-02-26  Nathan Sidwell  <nathan@codesourcery.com>
8902
8903	* except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
8904
8905	* decl.c (mark_inlined_fns): Prototype.
8906
89072001-02-22  Mark Mitchell  <mark@codesourcery.com>
8908
8909	* spew.c (yylex): Correct handling of friends.
8910
89112001-02-22  Mark Mitchell  <mark@codesourcery.com>
8912
8913	* mangle.c (write_encoding): Pass write_function_type the
8914	FUNCTION_DECL for the function being encoded.
8915	(write_function_type): Pass it along to write_bare_function_type.
8916	(write_bare_function_type): Pass it along to write_method_parms.
8917	(write_method_parms): Don't mangle the compiler-generated
8918	parameters to a constructor or destructor.
8919
89202001-02-22  Andreas Jaeger  <aj@suse.de>
8921
8922	* optimize.c: Include toplev.h for
8923	note_deferral_of_defined_inline_function prototype.
8924
89252001-02-22  Jakub Jelinek  <jakub@redhat.com>
8926
8927	* cp-tree.h (struct lang_decl_inlined_fns): New.
8928	(struct lang_decls): Add inlined_fns.
8929	(DECL_INLINED_FNS): New macro.
8930	* optimize.c (struct inline_data): Add inlined_fns.
8931	(declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
8932	(inlinable_function_p): Likewise, fix typo in comment,
8933	function is not inlinable if it already inlined function currently
8934	being optimized.
8935	(expand_call_inline): Add fn to inlined_fns if necessary.
8936	(optimize_function): Initialize inlined_fns.
8937	Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
8938	* decl.c (mark_inlined_fns): New function.
8939	(lang_mark_tree): Call it.
8940
89412001-02-21  Jason Merrill  <jason@redhat.com>
8942
8943	* cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
8944	(DECL_UNINLINABLE): Move to middle-end.
8945
8946	* class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
8947	* decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
8948	* class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
8949	* optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
8950	parms and outer BLOCK.  note_deferral_of_defined_inline_function.
8951
8952	* method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
8953	second parm of op=.
8954
89552001-02-19  Mark Mitchell  <mark@codesourcery.com>
8956
8957	* decl2.c (set_decl_namespace): Allow explicit instantiations in
8958	any namespace.
8959
89602001-02-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
8961
8962	* optimize.c (expand_call_inline): Don't walk subtrees of type
8963	nodes.
8964
89652001-02-18  Mark Mitchell  <mark@codesourcery.com>
8966
8967	* class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
8968	for a destructor.
8969
89702001-02-18  Jason Merrill  <jason@redhat.com>
8971
8972	Do put the VTT parameter in DECL_ARGUMENTS.
8973	* cp-tree.h (struct cp_language_function): Add x_vtt_parm.
8974	(current_vtt_parm): New macro.
8975	(struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
8976	(DECL_HAS_VTT_PARM_P): New macro.
8977	(DECL_VTT_PARM): Remove.
8978	(FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
8979	* decl.c (duplicate_decls): Only copy the operator code if
8980	appropriate.
8981	(start_function): Set current_vtt_parm.
8982	(lang_mark_tree): Don't mark vtt_parm.
8983	* decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
8984	DECL_ARGUMENTS.  Set DECL_HAS_VTT_PARM_P.
8985	* class.c (build_clone): Maybe remove the VTT parm.
8986	* optimize.c (maybe_clone_body): Set up the VTT parm.
8987	* pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
8988	* call.c (build_over_call): Just allow the VTT arg.
8989	* method.c (make_thunk): Don't set DECL_VTT_PARM.
8990	(do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
8991	(synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
8992	* decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
8993	* error.c (dump_function_decl): Likewise.
8994	* call.c (build_user_type_conversion_1,	convert_like_real): Abort
8995	if we try to call a constructor with in-charge or VTT parms.
8996	* method.c (skip_artificial_parms_for): New fn.
8997	* call.c (add_function_candidate, build_over_call): Call it.
8998	* call.c (build_new_method_call): Use current_vtt_parm.
8999	* init.c (expand_virtual_init): Likewise.
9000	* class.c (same_signature_p): No longer static.
9001	* cp-tree.h: Declare it.
9002	* search.c (look_for_overrides_r): Use it.
9003
90042001-02-17  Mark Mitchell  <mark@codesourcery.com>
9005
9006	* cp-tree.h (new_abi_rtti_p): Remove.
9007	(name_mangling_version): Likewise.
9008	(flag_do_squangling): Likewise.
9009	* class.c (build_rtti_vtbl_entries): Remove old ABI support.
9010	* decl.c (grokfndecl): Likewise.
9011	* decl2.c (name_mangling_version): Remove.
9012	(flag_do_squangling): Likewise.
9013	(lang_f_options): Remove `squangle'.
9014	(unsupported_options): Add `squangle'.
9015	(cxx_decode_option): Issue a warning about uses of
9016	-fname-mangling-version.
9017	(finish_file): Remove old ABI support.
9018	* pt.c (check_explicit_specialization): Likewise.
9019	(tsubst_decl): Likewise.
9020	* rtti.c (init_rtti_processing): Likewise.
9021	(build_headof): Likewise.
9022	(get_tinfo_decl_dynamic): Likewise.
9023	(tinfo_from_decl): Likewise.
9024	(build_dynamic_cast_1): Likewise.
9025	(synthesize_tinfo_var): Likewise.
9026	* init.c (build_new): Allow enumeration types for the array-bounds
9027	in a direct-new-declarator.
9028
9029	* semantics.c (finish_typeof): Resolve OFFSET_REFs.
9030
9031	* pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
9032	TREE_PROTECTED from the template being specialized.
9033
90342001-02-17  Jason Merrill  <jason@redhat.com>
9035
9036	* decl2.c (build_artificial_parm): Set TREE_READONLY.
9037
9038	* decl.c (bad_specifiers): Allow throw specs on things with
9039	pointer-to-function or -member-function type.
9040	* init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
9041	a pmf.
9042
90432001-02-17  Mark Mitchell  <mark@codesourcery.com>
9044
9045	* call.c (check_dtor_name): Handle template names correctly.
9046
90472001-02-16  Jason Merrill  <jason@redhat.com>
9048
9049	* cp-tree.h (DECL_USE_VTT_PARM): Remove.
9050	* decl2.c (maybe_retrofit_in_chrg): Don't create it.
9051	* optimize.c (maybe_clone_body): Don't substitute it.
9052	* call.c (build_new_method_call): Check in_chrg instead.
9053	* init.c (expand_virtual_init): Likewise.
9054
90552001-02-16  Gabriel Dos Reis  <gdr@codesourcery.com>
9056
9057	* decl.c (check_tag_decl): Make sure a typedef for an anonymous
9058	class-type introduces at least a type-name.
9059
90602001-02-16  Jakub Jelinek  <jakub@redhat.com>
9061
9062	* call.c (convert_like_real): Create a temporary for non-lvalue.
9063
90642001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
9065
9066	* cp-tree.h: Fix typos in comments.
9067
90682001-02-16  Jason Merrill  <jason@redhat.com>
9069
9070	* optimize.c (remap_block): If we're compiling a clone, pass the
9071	new block to insert_block.
9072
90732001-02-16  Mark Mitchell  <mark@codesourcery.com>
9074
9075	* semantics.c (finish_asm_stmt): Robustify.
9076
90772001-02-15  Mark Mitchell  <mark@codesourcery.com>
9078
9079	* pt.c (push_template_decl_real): Don't remangle the name of a
9080	class template.
9081
90822001-02-15  Jim Meyering  <meyering@lucent.com>
9083
9084	* Make-lang.in (c++.install-common): Depend on installdirs.
9085	(c++.install-info): Likewise.
9086	(c++.install-man): Likewise.
9087
90882001-02-15  Mark Mitchell  <mark@codesourcery.com>
9089
9090	* typeck2.c (build_m_component_ref): Robustify.
9091
90922001-02-15  Alexandre Oliva  <aoliva@redhat.com>
9093
9094	* friend.c (do_friend): Don't take the nested [template] class
9095	into account when deciding whether to warn about the friend
9096	function not referring to a template function.
9097
90982001-02-14  Jakub Jelinek  <jakub@redhat.com>
9099
9100	* typeck.c (build_unary_op): Clarify error message.
9101
91022001-02-08  Aldy Hernandez  <aldyh@redhat.com>
9103
9104	* parse.y (component_constructor_declarator): allow optional
9105	parentheses around constructor class name.
9106
91072001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
9108
9109	* cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
9110	section.
9111	* init.c (emit_base_init): Remove incorrect comment about
9112	virtual bases.
9113	* method.c (make_thunk): Fix comment alignment.
9114
91152001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
9116
9117	Kill remnants of this is variable.
9118	* cp-tree.h (flag_this_is_variable): Remove.
9119	* decl2.c (flag_this_is_variable): Remove.
9120	* class.c (fixed_type_or_null): Add cdtor parm. Adjust.
9121	(build_vbase_path): The path is non-static, even in a cdtor.
9122	(resolves_to_fixed_type_p): Add additional return value.
9123	* search.c (init_vbase_pointers): Adjust.
9124	* tree.c (lvalue_p_1): Adjust.
9125	* typeck.c (mark_addressable): Adjust.
9126
91272001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
9128
9129	* pt.c (unify): Don't check cv quals of array types.
9130
91312001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
9132
9133	* tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
9134	check whether we already have the type.
9135
91362001-02-13  Mark Mitchell  <mark@codesourcery.com>
9137
9138	* cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
9139	* call.c (build_op_delete_call): Simplify to remove duplicate
9140	code.
9141	* class.c (clone_function_decl): Don't build the deleting variant
9142	of a non-virtual destructor.
9143	* decl.c (finish_destructor_body): Don't call delete if this is a
9144	non-virtual destructor.
9145	* init.c (build_delete): Explicitly call `operator delete' when
9146	deleting an object with a non-virtual destructor.
9147
91482001-02-13  Jason Merrill  <jason@redhat.com>
9149
9150	* lang-specs.h: Add more __EXCEPTIONS.
9151
91522001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
9153
9154	* typeck2.c (process_init_constructor): Check
9155	TREE_HAS_CONSTRUCTOR before issuing missing init warning.
9156
91572001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
9158
9159	* pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
9160	Remove spurious information in comment. Allow further
9161	adjustments of REFERENCE_TYPE args.
9162
91632001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
9164
9165	* errfn.c (cp_deprecated): Tweak diagnostic text.
9166	* parse.y (new_initializer): Deprecate initializer lists
9167	extension.
9168
91692001-02-12  Mark Mitchell  <mark@codesourcery.com>
9170
9171	Remove old ABI support.
9172
91732001-02-11  Mark Mitchell  <mark@codesourcery.com>
9174
9175	* decl2.c (flag_vtable_thunks): Always set it to 1.
9176	(flag_new_abi): Likewise.
9177	* lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
9178
9179	* Makefile.in (g++spec.o): Fix typo.
9180
91812001-02-09  Jason Merrill  <jason@redhat.com>
9182
9183	* lang-specs.h: Restore definition of __EXCEPTIONS.
9184
91852001-02-08  Jason Merrill  <jason@redhat.com>
9186
9187	* search.c (shared_member_p): New function.
9188	(lookup_field_r): Use it.
9189	* cp-tree.h (SHARED_MEMBER_P): Remove.
9190
9191	* method.c (process_overload_item): Handle template-dependent array
9192	bounds.
9193	* pt.c (type_unification_real): If we end up with undeduced nontype
9194	parms, try again.
9195
9196	* decl.c (lookup_name_real): Tweak warning to refer to decls, not
9197	types.
9198
9199	* typeck2.c (friendly_abort): Don't say anything if we have
9200	earlier errors or sorries.
9201
9202	* decl.c (check_tag_decl): Notice attempts to redefine bool and
9203	wchar_t.  Ignore if in_system_header.
9204
9205	* decl.c (maybe_push_cleanup_level): New fn...
9206	(start_decl_1): ...split out from here.
9207	* cvt.c (build_up_reference): Use it.
9208	* cp-tree.h: Declare it.
9209
92102001-02-07  Mark Mitchell  <mark@codesourcery.com>
9211
9212	* lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
9213	spec.
9214
92152001-02-06  Nathan Sidwell  <nathan@codesourcery.com>
9216
9217	* pt.c (lookup_template_class): Make sure it's a primary
9218	template or template_template_parm when called from the parser.
9219	(instantiate_template_class): Add assertion.
9220
92212001-02-05  Alexandre Oliva  <aoliva@redhat.com>
9222
9223	* method.c (build_mangled_name) [old abi]: Protect flush_repeats()
9224	from error_mark_node.
9225
92262001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
9227
9228	Fix specification and implementation bugs in V3 ABI
9229	construction vtables.
9230	* cp-tree.h (flag_dump_class_layout): New flag.
9231	(BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
9232	(BINFO_LOST_PRIMARY_P): New flag.
9233	(SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
9234	(BINFO_PRIMARY_MARKED_P): Rename to ...
9235	(BINFO_PRIMARY_P): ... here.
9236	(binfo_via_virtual): New prototype.
9237	* decl2.c (flag_dump_class_layout): New flag.
9238	(cxx_decode_option): Set it. Adjust -fdump-translation-unit to
9239	use `=' as a file name separator.
9240	* init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
9241	bases.
9242	(build_vtbl_address): If this is a virtual primary base, then
9243	get the vtbl of what it is ultimately primary for.
9244	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
9245	for BINFO_PRIMARY_P.
9246	(dfs_skip_nonprimary_vbases_markedp): Likewise.
9247	(get_shared_vbase_if_not_primary): Likewise.
9248	(dfs_get_pure_virtuals): Likewise.
9249	(expand_upcast_fixups): Likewise.
9250	(fixup_virtual_upcast_offsets): Likewise.
9251	(dfs_find_vbase_instance): Likewise.
9252	(find_vbase_instance): Likewise.
9253	(binfo_from_vbase): Adjust comment to reflect reality.
9254	(binfo_via_virtual): New function.
9255	* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
9256	for binfo walking during VTT construction.
9257	(dfs_mark_primary_bases): Remove.
9258	(force_canonical_binfo_r): New function.
9259	(force_canonical_binfo): New function.
9260	(mark_primary_virtual_base): New function.
9261	(mark_primary_bases): Walk in inheritance graph order, use
9262	mark_primary_virtual_base.
9263	(determine_primary_base): Use some more intermediate variables.
9264	(dfs_find_final_overrider): Don't check for overriding along a
9265	virtual path.
9266	(dfs_modify_vtables): Walk into primary virtual bases too.
9267	(walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
9268	(build_base_fields): Likewise.
9269	(dfs_set_offset_for_unshared_vbases): Likewise.
9270	(layout_virtual_bases): Likewise.
9271	(end_of_class): Likewise.
9272	(finish_struct_1): Call dump_class_hierarchy, if requested.
9273	(dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
9274	(dump_class_hierarchy_r): Add stream parameter. Emit more information.
9275	(dump_class_hierarchy): Add file parameter. Append to file, if
9276	required.
9277	(finish_vtbls): Adjust accumulate_vtbl_inits call.
9278	Use canonical base for virtual bases.
9279	(build_vtt): Add more comments. Adjust build_vtt_inits call.
9280	(build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
9281	Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
9282	VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
9283	virtual VTTs.
9284	(dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
9285	from DATA.  We want virtual primary bases and all bases via virtual.
9286	Only set BINFO_VPTR_INDEX for top level. Look up from a primary
9287	virtual base when not a construction vtable.
9288	(dfs_ctor_vtable_bases_queue_p): New DFS predicate.
9289	(build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
9290	Use canonical bases when processing virtual bases.
9291	(accumulate_vtbl_inits): We're interested in any base via a
9292	virtual path.
9293	(dfs_accumulate_vtbl_inits): If this is a primary virtual base
9294	within a construction vtable, determine what is being overridden.
9295	(build_vtbl_initializer): Add more comments
9296	(add_vcall_offset_vtbl_entries_1): Adjust comment.
9297	(build_rtti_vtbl_entries): Check if the base has lost its
9298	primary.
9299
93002001-02-05  Mark Mitchell  <mark@codesourcery.com>
9301
9302	* Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
9303
9304Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9305
9306	* decl.c (pushdecl): Call abort instead of fatal.
9307	* except.c (decl_is_java_type): Call fatal_error instead of fatal.
9308	* init.c (build_new_1): Likewise.
9309	(build_java_class_ref): Call internal_error and fatal_error, not fatal.
9310	* decl.c (build_typename_type): hash_table_init now returns void.
9311	decl.c (init_decl_processing): Make an error non-fatal.
9312
93132001-02-04  Mark Mitchell  <mark@codesourcery.com>
9314
9315	* cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
9316	Document.
9317	(CLASSTYPE_INTERFACE_KNOWN): Likewise.
9318	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
9319	(SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
9320	(SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
9321	* decl.c (maybe_commonize_var): Use the new name-mangling where
9322	appropriate.
9323	* decl2.c (comdat_linkage): Enhance comments.  Make all
9324	compiler-generated things static, if COMDAT is not available.
9325	(get_tinfo_decl): Do not make typeinfo objects that belong in the
9326	library COMDAT.
9327	(tinfo_base_init): Use the correct mangled name for typeinfo
9328	strings, and push them into the global scope.
9329	(typeinfo_in_lib_p): New function.
9330	(synthesize_tinfo_var): Use it.
9331	(create_real_tinfo_var): Likewise.
9332
93332001-02-03  Jakub Jelinek  <jakub@redhat.com>
9334
9335	* decl.c (push_class_binding): Use context_for_name_lookup instead
9336	of CP_DECL_CONTEXT.
9337	* search.c (context_for_name_lookup): Remove static.  Check for NULL
9338	context in the loop.
9339	* cp-tree.h (context_for_name_lookup): Add prototype.
9340
93412001-02-02  Jakub Jelinek  <jakub@redhat.com>
9342
9343	* cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
9344	* tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
9345	Remove.
9346	* call.c (convert_class_to_reference, build_user_type_conversion_1,
9347	add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
9348
93492001-02-02  Mark Mitchell  <mark@codesourcery.com>
9350
9351	* Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
9352	of macros used when compiling g++spec.c.
9353	* g++spec.c (lang_specific_driver): Link with the shared
9354	libgcc by default.
9355
93562001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
9357
9358	* decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
9359	make_reference_declarator, make_call_declarator), method.c
9360	(implicitly_declare_fn), parse.y (namespace_using_decl,
9361	notype_unqualified_id, expr_or_declarator, new_type_id,
9362	after_type_declarator, direct_after_type_declarator,
9363	notype_declarator, complex_notype_declarator,
9364	complex_direct_notype_declarator, qualified_id,
9365	notype_qualified_id, overqualified_id, direct_new_declarator,
9366	absdcl, direct_abstract_declarator, conversion_declarator), pt.c
9367	(tsubst), semantics.c (begin_constructor_declarator): Use build_nt
9368	instead of build_parse_node.
9369
93702001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9371
9372	* cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
9373	(minus_one_node): Moved to top level gcc directory.  Renamed
9374	to integer_minus_one_node.
9375
9376	* init.c (init_init_processing): Don't set minus_one_node.
9377	(build_vec_init): Use integer_minus_one_node.
9378
9379	* rtti.c (get_tinfo_decl_dynamic): Likewise.
9380
93812001-01-28  Jakub Jelinek  <jakub@redhat.com>
9382
9383	* optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
9384	identical and they would be replaced with constant, remove
9385	MODIFY_EXPR from the tree.
9386
93872001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9388
9389	* Make-lang.in: Remove all dependencies on defaults.h.
9390	* call.c: Don't include defaults.h.
9391	* decl.c: Likewise.
9392	* decl2.c: Likewise.
9393	* except.c: Likewise.
9394	* pt.c: Likewise.
9395	* rtti.c: Likewise.
9396	* tree.c: Likewise.
9397	* typeck.c: Likewise.
9398
93992001-01-25  Jakub Jelinek  <jakub@redhat.com>
9400
9401	* mangle.c (write_mangled_name, write_encoding): Mangle overloaded
9402	operators even in "C" linkage.
9403	* method.c (set_mangled_name_for_decl): Likewise.
9404	* decl.c (grokfndecl): Call set_mangled_name_for_decl even for
9405	overloaded operators in "C" linkage.
9406
94072001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
9408
9409	* pt.c (tsubst_decl): Remove IN_DECL parameter.
9410	(tsubst_arg_types): Check parameter is not void.
9411	(tsubst): Adjust tsubst_decl call.
9412
94132001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
9414
9415	* call.c (add_builtin_candidate): Quote std properly, from
9416	previous change.
9417
94182001-01-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
9419
9420	* pt.c (check_explicit_specialization): Clone constructors and
9421	destructors.
9422
94232001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
9424
9425	* decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
9426	indicates anything special about template depth. Make sure we
9427	only count the user visible template classes.
9428
94292001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
9430
9431	* call.c (build_conv): Typo in comment.
9432	(add_builtin_candidate): Add more explanation.
9433	Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
9434	Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
9435	when we have enumeral types.
9436	(add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
9437	candidates for relops and eqops.
9438	(joust): Simplify control flow. Allow a non-template user
9439	function to hide a builtin.
9440
94412001-01-22  Nathan Sidwell  <nathan@codesourcery.com>
9442
9443	* cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
9444	(more_specialized): Add deduction parameter.
9445	* call.c (joust): Adjust more_specialized call.
9446	* pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
9447	UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
9448	(get_bindings_order): Remove.
9449	(get_bindings_real): Add DEDUCE parameter.
9450	(maybe_adjust_types_for_deduction): Return extra unify flags. Do
9451	REFERENCE_TYPE jig for DEDUCE_ORDER.
9452	(type_unification_real): Deal with DEDUCE_ORDER. Use result of
9453	maybe_adjust_types_for_deduction.
9454	(more_specialized): Add DEDUCE parameter. Call get_bindings_real
9455	directly.
9456	(try_one_overload): Use result of maybe_adjust_types_for_deduction.
9457	(check_cv_quals_for_unify): Use new unify qualifier flags.
9458	(unify): Clear new unify qualifier flags.
9459	(get_bindings_real): Add DEDUCE parameter.
9460	(get_bindings): Adjust call to get_bindings_real.
9461	(get_bindings_overload): Likewise.
9462	(most_specialized_instantiation): Adjust call to
9463	more_specialized.
9464
94652001-01-19  Jason Merrill  <jason@redhat.com>
9466
9467	* decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
9468
9469	* decl.c (init_decl_processing): Just force -fvtable-thunks on if
9470	-fnew-abi.
9471
94722001-01-19  Ute Pelkmann  <scope.muc@t-online.de>
9473
9474	* decl2.c (arg_assoc_class): Fix double iteration logic.
9475
94762001-01-19  Jason Merrill  <jason@redhat.com>
9477
9478	* init.c (build_delete): Always call convert_force to strip cv-quals.
9479
9480	* decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
9481	* lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
9482	* g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
9483
94842001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
9485
9486	* search.c (get_vbase_1): Count only virtual bases.
9487
94882001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
9489
9490	* class.c (duplicate_tag_error): Robustify flag clearing.
9491
94922001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
9493
9494	* cp-tree.h (lookup_template_class): Add complain parm.
9495	* decl.c (lookup_namespace_name): Adjust call to
9496	lookup_template_class.
9497	(make_typename_type): Likewise.
9498	* semantics.c (finish_template_type): Likewise.
9499	* pt.c (lookup_template_class): Add complain parm. Adjust.
9500	(tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
9501	(tsubst): Likewise.
9502
95032001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
9504
9505	* pt.c (copy_default_args_to_explicit_spec): Preserve
9506	object's CV quals. Reorganize.
9507
95082001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
9509
9510	* typeck.c (build_modify_expr): Say `initialization' for
9511	INIT_EXPRs.
9512	* init.c (build_default_init): Convert to enumeral type, if
9513	needed.
9514
95152001-01-18  Jakub Jelinek  <jakub@redhat.com>
9516
9517	* parse.y (nomods_initdcl0): Properly set things up for
9518	initdcl0_innards.
9519
95202001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
9521
9522	* pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
9523	(type_unification_real): Set it.
9524	(unify): Use it.
9525
95262001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
9527
9528	* decl.c (finish_destructor_body): Convert to vbase pointer here.
9529
95302001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
9531
9532	* semantics.c (begin_class_definition): Check we're not inside a
9533	template parm list.
9534
95352001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
9536
9537	* tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
9538	BASELINK_P.
9539
95402001-01-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
9541
9542	* typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
9543	* call.c (build_over_call): Add comment.
9544
95452001-01-16 Daniel Berlin <dberlin@redhat.com>
9546
9547	* cvt.c (ocp_convert): Handle vector type conversion
9548	* typeck2.c (digest_init): Handle vector type initializations
9549
95502001-01-16  Phil Edwards  <pme@sources.redhat.com>
9551
9552	* g++spec.c:  Don't add libraries needlessly if -fsyntax-only
9553	  was given.
9554
95552001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
9556
9557	* pt.c (check_nontype_parm): Rename to ...
9558	(invalid_nontype_parm_type_p): ... here.
9559	(process_template_parm): Adjust.
9560	(convert_template_argument): Adjust.
9561
95622001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
9563
9564	* pt.c (check_nontype_parm): New function.
9565	(process_template_parm): Use it.
9566	(convert_template_argument): Use it.
9567	(convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
9568	member.
9569
95702001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
9571
9572	* tree.c: Add defaults.h
9573	(cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
9574	* Make-lang.in (cp/tree.o): Add defaults.h.
9575
95762001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
9577
9578	* Make-lang.in (CXX_C_OBJS): Add c-format.o.
9579
95802001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
9581
9582	* g++.1: Change to be ".so man1/gcc.1".
9583
95842001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
9585
9586	* Make-lang.in (c++.info, c++.install-info): Build and install g++
9587	internals info.
9588	(c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
9589	($(srcdir)/cp/g++int.info): New target.
9590	* gxxint.texi: Add info directory entry.  Use @@ in email address.
9591	* .cvsignore: Update.
9592
95932001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
9594
9595	* typeck.c (build_c_cast): Do template processing earlier.
9596	Always pedwarn on array casts.
9597
95982001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
9599
9600	* friend.c (make_friend_class): Make sure a templated class is
9601	actually a template.
9602
96032001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
9604
9605	* decl2.c (get_guard): Set linkage from guarded decl.
9606
96072001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
9608
9609	* call.c (convert_default_arg): Check for unprocessed
9610	DEFAULT_ARG.
9611	* cp-tree.h (replace_defarg): Move to spew.c.
9612	(maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
9613	spew.c, which is where they really are.
9614	(done_pending_defargs): Declare.
9615	(unprocessed_defarg_fn): Declare.
9616	* decl.c (replace_defarg): Move to spew.c
9617	* parse.y (structsp): Call done_pending_defargs.
9618	* spew.c (defarg_fns): Rearrange list structure.
9619	(defarg_fnsdone): New static variable.
9620	(defarg_depfns): New static variable.
9621	(init_spew): Adjust.
9622	(add_defarg_fn): Store the type in TREE_TYPE.
9623	(do_pending_defargs): Detect and deal with ordering constraints
9624	and circularity.
9625	(done_pending_defargs): New function.
9626	(unprocessed_defarg_fn): New function.
9627	(replace_defarg): Moved from decl.c. Robustify. Don't save
9628	if circularity detected.
9629
96302001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
9631
9632	* pt.c (unify): Check array has a domain, before checking
9633	whether it is variable sized.
9634
96352001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
9636
9637	* decl.c (grokparms): Unobfuscate and get correct diagnostic for
9638	parameters with pointers to arrays of unknown bound.
9639
96402001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
9641
9642	* parse.y (template_parm_header, template_spec_header): New
9643	reductions. Split out from ...
9644	(template_header): ... here. Use them.
9645	(template_template_parm): Use template_parm_header.
9646	* semantics.c (finish_template_template_parm): Add assert.
9647
96482001-01-10  Mark Mitchell  <mark@codesourcery.com>
9649
9650	* mangle.c (write_builtin_type): Fix thinko.
9651
9652	* pt.c (copy_default_args_to_explicit_spec_1): New function.
9653	(copy_default_args_to_explicit_spec): Likewise.
9654	(check_explicit_specialization): Use it.
9655
9656	* class.c (finish_struct_1):  Remove last argument in call to
9657	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
9658	* decl.c (builtin_function): Likewise.
9659	(build_cp_library_fn): Likewise.
9660	(check_initializer): Likewise.
9661	(make_rtl_for_nonlocal_decl): Likewise.
9662	(cp_finish_decl): Likewise.
9663	(start_function): Likewise.
9664	* decl2.c (finish_anon_union): Likewise.
9665	* friend.c (do_friend): Likewise.
9666	* init.c (build_java_class_ref): Likewise.
9667	* method.c (make_thunk): Likewise.
9668	* pt.c (tsubst_friend_function): Likewise.
9669	* semantics.c (expand_body): Likewise.
9670
96712001-01-10  Mark Mitchell  <mark@codesourcery.com>
9672
9673	* cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
9674	looking at DECL_CLONED_FUNCTION for non-functions.
9675
96762001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
9677
9678	* error.c (dump_template_parameter): Use parm to determine how
9679	to print default value.
9680
96812001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
9682
9683	* class.c (duplicate_tag_error): Clear more flags.
9684
96852001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
9686
9687	* call.c (build_new_method_call): Use binfo_for_vbase.
9688
96892001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9690
9691	* cp-tree.h (flag_cond_mismatch): Don't declare.
9692	* decl2.c (flag_cond_mismatch): Don't define.
9693	(lang_f_options): Remove cond-mismatch.
9694	(unsupported_options): Add cond-mismatch.
9695
96962001-01-09  Nathan Sidwell  <nathan@codesourcery.com>
9697
9698	* class.c (handle_using_decl): Reject using of constructor name
9699	of sourcing class. Allow injecting of a method with same name as
9700	nested class. Fixup error messages.
9701
97022001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
9703
9704	* decl2.c (lang_decode_option): Handle -Wformat=2.
9705
97062001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
9707
9708	* cp-tree.h (lang_decl_flags): Rename defined_in_class to
9709	initialized_in_class.
9710	(DECL_DEFINED_IN_CLASS_P): Rename to ...
9711	(DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
9712	* decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
9713	(cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
9714	* pt.c (check_default_tmpl_args): Adjust for
9715	DECL_INITIALIZED_IN_CLASS_P.
9716	(instantiate_class_template): Likewise.
9717	(instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
9718
9719	* class.c (finish_struct): Constify saved_filename.
9720
97212001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
9722
9723	* class.c (duplicate_tag_error): Adjust diagnostic.
9724	(finish_struct): Locally set location to start of struct.
9725	* decl.c (fixup_anonymous_aggr): Use cp_error_at.
9726
97272001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
9728
9729	* decl.c (struct binding_level): Adjust class_shadowed comments
9730	to reflect reality.
9731	(push_class_level_binding): Adjust comments to reflect reality.
9732	Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
9733	Don't set TREE_VALUE on the class_shadowed list.
9734
97352001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
9736
9737	* decl2.c (acceptable_java_type): Allow references too.
9738	* init.c (build_java_class_ref): When using the new ABI, search
9739	`class$' and have it mangled with `mangle_decl.'
9740	* mangle.c (write_java_integer_type_codes): New function.
9741	(write_builtin_type): Detect and mangle Java integer and real
9742	types.
9743
97442001-01-07  Mark Mitchell  <mark@codesourcery.com>
9745
9746	* decl2.c (grokfield): Don't accept `asm' specifiers for
9747	non-static data members.
9748
97492001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9750
9751	* expr.c (cplus_expand_expr): Don't reset `target'.
9752
97532001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
9754
9755	* cp/decl2.c (cxx_post_options): Call cpp_post_options.
9756
97572001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
9758
9759	* parse.y (template_datadef): Check for error_mark_node.
9760
97612001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
9762
9763	* cp-tree.def (DEFAULT_ARG): Make `x' class.
9764
97652001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9766
9767	* decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
9768	(record_builtin_type): Make non-static.
9769	(flag_short_double): Don't declare.
9770	(init_decl_processing): Remove the creation of many tree nodes now
9771	in c_common_nodes_and_builtins.
9772	(build_void_list_node): New function.
9773	* decl2.c (flag_short_double, flag_short_wchar): Don't define.
9774	* cp-tree.h (flag_short_wchar): Don't declare.
9775
97762001-01-04  Mark Mitchell  <mark@codesourcery.com>
9777
9778	* call.c (build_conv): Don't use build1 for USER_CONV.
9779	* pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
9780
97812001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
9782
9783	* lex.c (lang_init): Call c_common_lang_init.
9784
97852001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
9786
9787	* search.c (lookup_fnfields_here): Remove.
9788	(look_for_overrides_r): Use lookup_fnfields_1.
9789	Ignore functions from using declarations.
9790
97912001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
9792
9793	Implement exceptions specifiers for implicit member functions.
9794	* cp-tree.h (merge_exceptions_specifiers): Declare new function.
9795	* method.c (synthesize_exception_spec): New function.
9796	(locate_dtor, locate_ctor, locate_copy): New functions.
9797	(implicitly_declare_fn): Generate the exception spec too.
9798	* search.c (check_final_overrider): Check artificial functions
9799	too.
9800	* typeck2.c (merge_exception_specifiers): New function.
9801
98022001-01-03  Jason Merrill  <jason@redhat.com>
9803
9804	* init.c (build_default_init): New fn.
9805	(perform_member_init): Split out from here.
9806	(build_new_1): Use it.  Simplify initialization logic.
9807	(build_vec_init): Take an array, rather than a pointer and maxindex.
9808	Speed up simple initializations.  Don't clean up if we're assigning.
9809	* cp-tree.h: Adjust.
9810	* decl2.c (do_static_initialization): Remove TREE_VEC case.
9811	* parse.y (new_initializer): Return void_zero_node for ().
9812	* typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
9813	* typeck2.c (digest_init): Only complain about user-written
9814	CONSTRUCTORs.
9815
98162000-12-22  Mike Stump  <mrs@wrs.com>
9817
9818	* decl2.c: (max_tinst_depth): Increase to 50.
9819
98202001-01-02  Mark Mitchell  <mark@codesourcery.com>
9821
9822	* class.c (invalidate_class_lookup_cache): Zero the
9823	previous_class_values.
9824	* cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
9825	TREE_INT_CST_HIGH.
9826	(CLASSTYPE_TEMPLATE_LEVEL): Likewise.
9827	* decl.c (free_bindings): New variable.
9828	(push_binding): Don't create a new binding if we have one on the
9829	free list.
9830	(pop_binding): Put old bindings on the free list.
9831	(init_decl_processing): Use size_int, not build_int_2.
9832	Register free_bindings as a GC root.
9833	(cp_make_fname_decl): Use size_int, not build_int_2.
9834	(push_inline_template_parms_recursive): Likewise.
9835	(end_template_parm_list): Likewise.
9836	(for_each_template_parm): Do not use walk_tree_without_duplicates.
9837	(tsubst_template_parms): Use size_int, not build_int_2.
9838	(tsubst): Likewise.
9839	* rtti.c (get_vmi_pseudo_type_info): Likewise.
9840
98412001-01-02  Richard Henderson  <rth@redhat.com>
9842
9843	* parse.y (asm): Set ASM_INPUT_P.
9844
98452001-01-02  Jason Merrill  <jason@redhat.com>
9846
9847	* tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
9848	for v3 ABI.
9849
9850	* typeck.c (cp_truthvalue_conversion): New fn.
9851	* cvt.c (ocp_convert): Use it.
9852
9853	* cp-tree.h: Lose c-common.c decls.
9854
9855	* typeck.c (build_unary_op): Restore old &a.f diagnostic code.
9856	* cvt.c (convert_to_void): Use type_unknown_p.
9857
9858	* typeck.c (strip_all_pointer_quals): Also strip quals from
9859	pointer-to-member types.
9860
9861	* Make-lang.in (cp/TAGS): Use --no-globals.  Ignore parse.c, and treat
9862	parse.y as C.
9863
9864	* call.c (build_new_method_call): Do evaluate the object parameter
9865	when accessing a static member.
9866	* typeck.c (build_component_ref): Likewise.
9867
98682001-01-02  Andreas Jaeger  <aj@suse.de>
9869
9870	* decl.c (cp_missing_noreturn_ok_p): New.
9871	(init_decl_processing): Set lang_missing_noreturn_ok_p.
9872
98732000-12-29  Jakub Jelinek  <jakub@redhat.com>
9874
9875	* decl.c (init_decl_processing): Fix sign of wchar_type_node.
9876
98772000-12-29  Mark Mitchell  <mark@codesourcery.com>
9878
9879	* class.c (pushclass): Remove #if 0'd code.
9880	* cp-tree.h (overload_template_name): Remove.
9881	* decl.c (store_bindings): Simplify.
9882	(pop_from_top_level): Likewise.
9883	* pt.c (overload_template_name): Remove.
9884	(instantiate_decl): Don't call push_to_top_level if it's not
9885	needed.
9886
98872000-12-28  Mark Mitchell  <mark@codesourcery.com>
9888
9889	* pt.c (register_local_specialization): Don't return a value.
9890	(lookup_template_class): Use move-to-front heuristic when looking
9891	up template instantiations.
9892	(instantiate_decl): Only push_to_top_level when we're actually
9893	going to instantiate the template.
9894
98952000-12-29  Hans-Peter Nilsson  <hp@bitrange.com>
9896
9897	* search.c (binfo_for_vtable): Return least derived class, not
9898	most.  Handle secondary vtables.
9899
99002000-12-22  Jason Merrill  <jason@redhat.com>
9901
9902	* pt.c (more_specialized): Don't optimize len==0.
9903	(fn_type_unification): If we're adding the return type, increase len.
9904
9905	* typeck.c (build_binary_op): Fix pmf comparison logic.
9906
9907	* call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
9908	DECL_STATIC_FUNCTION_P.
9909
9910	* semantics.c (genrtl_finish_function): Don't try to jump to
9911	return_label unless it exists.
9912
9913	In partial ordering for a call, ignore parms for which we don't have
9914	a real argument.
9915	* call.c (joust): Pass len to more_specialized.
9916	(add_template_candidate_real): Strip 'this', pass len.
9917	* pt.c (more_specialized): Pass len down.  Lose explicit_args parm.
9918	(get_bindings_order): New fn.  Pass len down.
9919	(get_bindings_real): Strip 'this', pass len.
9920	(fn_type_unification): Likewise.
9921	(type_unification_real): Succeed after checking 'len' args.
9922	(most_specialized_instantiation): Lose explicit_args parm.
9923	* class.c (resolve_address_of_overloaded_function): Strip 'this',
9924	pass len.
9925
99262000-12-21  Jason Merrill  <jason@redhat.com>
9927
9928	* pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
9929	DECL_TEMPLATE_RESULT.
9930
9931	* search.c (lookup_field_r): Call lookup_fnfields_1, not
9932	lookup_fnfields_here.
9933
9934	* parse.y (typename_sub2): Return the TYPE_DECL, not the type.
9935
9936	* call.c (build_object_call): Also allow conversions that return
9937	reference to pointer to function.
9938	(add_conv_candidate): Handle totype being ref to ptr to fn.
9939	(build_field_call): Also allow members of type reference to function.
9940	Lose support for calling pointer to METHOD_TYPE fields.
9941
9942	* error.c (dump_expr): Handle *_CAST_EXPR.
9943
9944	* typeck2.c (build_scoped_ref): Always convert to the naming class.
9945
9946	* tree.c (break_out_cleanups): Lose.
9947	* cp-tree.h: Remove prototype.
9948	* typeck.c (build_component_ref): Don't break_out_cleanups.
9949	(build_compound_expr): Likewise.
9950	* semantics.c (finish_expr_stmt): Likewise.
9951
99522000-12-20  Richard Henderson  <rth@redhat.com>
9953
9954	* cp-tree.h: Update declarations.
9955	* decl.c (finish_case_label): Return the new stmt node.
9956	* semantics.c (finish_goto_stmt): Likewise.
9957	(finish_expr_stmt, finish_return_stmt): Likewise.
9958	(finish_break_stmt, finish_continue_stmt): Likewise.
9959	(finish_asm_stmt): Likewise.
9960	* parse.y (already_scoped_stmt): Set STMT_LINENO.
9961	(compstmt, implicitly_scoped_stmt, stmt): Likewise.
9962	(simple_if, simple_stmt): Return the new stmt node.
9963	(save_lineno): New.
9964
99652000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
9966
9967	* cp-tree.h: Don't declare warn_long_long.
9968
99692000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
9970
9971	* tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
9972	IS_AGGR_TYPE.
9973
99742000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
9975
9976	* pt.c (unify): Handle when both ARG and PARM are
9977	BOUND_TEMPLATE_TEMPLATE_PARM.
9978
99792000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
9980
9981	* pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
9982	DECL_TEMPLATE_PARM_P.
9983
99842000-12-15  Jason Merrill  <jason@redhat.com>
9985
9986	* init.c (build_new_1): Reorganize.  Now with 100% fewer SAVE_EXPRs!
9987
9988	* init.c (build_new_1): Don't strip quals from type.
9989
9990	* decl.c (pushdecl): Don't check for linkage on a non-decl.
9991
9992	* call.c (build_op_delete_call): See through ARRAY_TYPEs.
9993
9994	* call.c (build_new_function_call): Lose space before paren in
9995	error message.
9996	(build_new_method_call): Likewise.
9997
9998	* typeck2.c (build_m_component_ref): Propagate quals from datum.
9999
100002000-12-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
10001
10002	* pt.c (check_explicit_specialization): Propagate default
10003	function arguments to explicit specializations.
10004
100052000-12-13  DJ Delorie  <dj@redhat.com>
10006
10007	* typeck.c (build_binary_op): Do signed/unsigned warnings for >?
10008	and <? operators.
10009
100102000-12-08  Jason Merrill  <jason@redhat.com>
10011
10012	* error.c (dump_function_name): Don't let the user see __comp_ctor.
10013
10014	Clean up copy-initialization in overloading code.
10015	* call.c (build_user_type_conversion_1): Die if we are asked to
10016	convert to the same or a base type.
10017	(implicit_conversion): Avoid doing so.  Lose reference binding code.
10018	(convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
10019	direct-initialization.  Also do direct-init part of copy-init.
10020	(build_user_type_conversion): Don't provide context to convert_like.
10021	* cvt.c (ocp_convert): build_user_type_conversion will now provide
10022	the constructor call for copy-init.
10023
10024	* pt.c (tsubst_decl): Call clone_function_decl here if this is an
10025	instantiation of a member template.
10026	(do_decl_instantiation): Not here.
10027
100282000-12-07  Nathan Sidwell  <nathan@codesourcery.com>
10029
10030	* class.c (check_field_decls): Don't special case anonymous
10031	fields in error messages.
10032	(note_name_declared_in_class): Use %D on diagnostic.
10033
10034	* tree.c (pod_type_p): Use strip_array_types.
10035	(cp_valid_lang_attribute): Likewise.
10036	* typeck.c (cp_type_quals): Strip arrays separately, to avoid
10037	multiple evaluations.
10038	(cp_has_mutable_p): Use strip_array_types.
10039
100402000-12-07  Nathan Sidwell  <nathan@codesourcery.com>
10041
10042	* cp-tree.h (sufficient_parms_p): Declare new function.
10043	* call.c (sufficient_parms_p): New function, broken out of ...
10044	(add_function_candidate): ... here. Use it.
10045	(add_conv_candidate): Use it.
10046	* decl.c (grok_ctor_properties): Use it.
10047
100482000-12-07  Jakub Jelinek  <jakub@redhat.com>
10049
10050	* optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
10051
100522000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
10053
10054	* decl2.c (lang_decode_option): Handle -Wformat-security.
10055
100562000-12-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
10057
10058	* pt.c (verify_class_unification): New function.
10059	(get_class_bindings): Use it.
10060	(try_class_unification): Tidy.
10061	(unify): Handle when argument of a template-id is not
10062	template parameter dependent.
10063	(template_args_equal): Handle when TREE_CODE's do not match.
10064
100652000-12-06  Alexandre Oliva  <aoliva@redhat.com>
10066
10067	* lang-specs.h (c++): When invoking the stand-alone preprocessor
10068	for -save-temps, pass all relevant -Defines to it, and then don't
10069	pass them to cc1plus.
10070
100712000-12-05  Will Cohen  <wcohen@redhat.com>
10072
10073	* decl.c (finish_case_label): Cleared
10074	more_cleanups_ok in surrounding function scopes.
10075	(define_label): Likewise.
10076
100772000-12-05  Nathan Sidwell  <nathan@codesourcery.com>
10078
10079	* cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
10080	(get_matching_virtual): Remove.
10081	(look_for_overrides): Declare new function.
10082	* decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
10083	DECL_VINDEX here.
10084	* class.c (check_for_override): Move base class iteration code
10085	to look_for_overrides.
10086	* search.c (next_baselink): Remove.
10087	(get_virtuals_named_this): Remove.
10088	(get_virtual_destructor): Remove.
10089	(tree_has_any_destructors_p): Remove.
10090	(struct gvnt_info): Remove.
10091	(check_final_overrider): Remove `virtual' from error messages.
10092	(get_matching_virtuals): Remove. Move functionality to ...
10093	(look_for_overrides): ... here, and ...
10094	(look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
10095	to be overriding.
10096
100972000-12-05  Nathan Sidwell  <nathan@codesourcery.com>
10098
10099	* typeck.c (get_delta_difference): If via a virtual base,
10100	return zero.
10101	* cvt.c (cp_convert_to_pointer): If via a virtual base, do no
10102	adjustment.
10103
101042000-12-04  Richard Henderson  <rth@redhat.com>
10105
10106	* error.c (dump_tree): Use output_add_string not OB_PUTS.
10107
101082000-12-04  Jason Merrill  <jason@redhat.com>
10109
10110	* mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
10111	(write_builtin_type): Pass intSI_type_node and the like through
10112	type_for_mode.
10113	* method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
10114	Pass intSI_type_node and the like through type_for_mode.
10115	* decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
10116	* pt.c (tsubst, unify): Likewise.
10117	* tree.c (walk_tree): Likewise.
10118	* error.c (dump_type): Likewise.
10119	(dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
10120
10121	* Make-lang.in: Tweak top comment for emacs.
10122	(cp/TAGS): Restore.
10123
10124	* except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
10125
10126	* class.c (clone_function_decl): Robustify.
10127
101282000-12-04  Michael Matz  <matzmich@cs.tu-berlin.de>
10129
10130	* decl.c (store_bindings): Only search in the non modified
10131	old_bindings for duplicates.
10132
101332000-12-04  Nathan Sidwell  <nathan@codesourcery.com>
10134
10135	* error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
10136	TYPE_POLYMORPHIC_P.
10137
10138	* typeck.c (build_static_cast): Remove unused variable.
10139
101402000-12-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
10141
10142	* pt.c: Fix typo in comment.
10143
101442000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
10145
10146	* decl2.c (warn_format): Remove definition.
10147	(lang_decode_option): Handle -Wformat-nonliteral,
10148	-Wno-format-extra-args and -Wno-format-y2k.  Use set_Wformat.
10149
101502000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
10151
10152	* decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
10153	(init_decl_processing): Don't create string_type_node,
10154	const_string_type_node, wint_type_node, intmax_type_node,
10155	uintmax_type_node, default_function_type, ptrdiff_type_node and
10156	unsigned_ptrdiff_type_node.  Adjust position of call to
10157	c_common_nodes_and_builtins.
10158	(identifier_global_value): New function.
10159
101602000-12-01  Nathan Sidwell  <nathan@codesourcery.com>
10161
10162	* call.c (standard_conversion): Reject pointer to member
10163	conversions from ambiguous, inaccessible or virtual bases.
10164	* typeck.c (build_static_cast): Don't check pointers to members
10165	specially.
10166
101672000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
10168
10169	* method.c (do_build_copy_constructor): Preserve cv
10170	qualifications when accessing source object members.
10171	(do_build_assign_ref): Likewise. Remove separate diagnostics for
10172	unnamed fields.
10173
101742000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
10175
10176	* method.c (do_build_assign_ref): Construct appropriately
10177	CV-qualified base reference. Don't allow const casts in base
10178	conversion.
10179
101802000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
10181
10182	* call.c (build_over_call): Use VOID_TYPE_P. Don't die on
10183	incomplete return type.
10184
101852000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
10186
10187	* parse.y (base_class.1): Produce a _TYPE not a _DECL.
10188	* semantics.c (finish_base_specifier): Accept a _TYPE not a
10189	_DECL.
10190
101912000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
10192
10193	* spew.c (yyerror): Cope if yylval.ttype is NULL.
10194
101952000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
10196
10197	* decl.c (grokdeclarator): Diagnose undefined template contexts.
10198
101992000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
10200
10201	* decl.c (grokdeclarator): Do type access control on friend
10202	class.
10203
102042000-11-27  Nathan Sidwell  <nathan@codesourcery.com>
10205
10206	* decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
10207	bison parser ickiness.
10208	* pt.c (tsubst_friend_function): Enter namespace scope when
10209	tsubsting the function name.
10210	* cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
10211
102122000-11-27  Nathan Sidwell  <nathan@codesourcery.com>
10213
10214	* cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
10215	* cvt.c (cp_convert_to_pointer): Add force parameter.
10216	Allow conversions via virtual base if forced.
10217	(convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
10218	(ocp_convert): Likewise.
10219	* search.c (binfo_from_vbase): Return the virtual base's binfo.
10220	* typeck.c (get_delta_difference): Adjust handling of virtual
10221	bases.
10222
102232000-11-26  Mark Mitchell  <mark@codesourcery.com>
10224
10225	* tree.c (struct list_hash): Remove.
10226	(list_hash_table): Make it be an htab.
10227	(struct list_proxy): New type.
10228	(list_hash_eq): New function.
10229	(list_hash_pieces): Renamed from ...
10230	(list_hash): ... this.
10231	(list_hash_lookup): Remove.
10232	(list_hash_add): Remove.
10233	(hash_tree_cons): Use the generic hashtable.
10234	(mark_list_hash): Remove.
10235	(init_tree): Create the hashtable.
10236
102372000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>
10238
10239	* method.c (build_mangled_C9x_name): Rename to
10240	build_mangled_C99_name.  Change C9X references in comments to
10241	refer to C99.
10242
102432000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
10244
10245	* parse.y (unary_expr): Move VA_ARG from here ...
10246	(primary): ... to here.
10247
102482000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
10249
10250	* semantics.c (finish_id_expr): If type is error_mark, return
10251	error_mark.
10252
102532000-11-23  Nathan Sidwell  <nathan@codesourcery.com>
10254
10255	* pt.c (lookup_template_class): Simplify loop exit constructs.
10256	Cope when there is no partial instantiation of a template
10257	template member.
10258
10259Thu Nov 23 02:16:47 2000  J"orn Rennecke <amylaar@redhat.com>
10260
10261	* Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
10262
102632000-11-22  Mark Mitchell  <mark@codesourcery.com>
10264
10265	* mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
10266	prefix.
10267
10268	* pt.c (do_decl_instantiate): Explicitly clone constructors and
10269	destructors that haven't already been cloned.
10270
102712000-11-20  Richard Henderson  <rth@redhat.com>
10272
10273	* parse.y (yyparse_1): Rename the parser entry point.
10274
102752000-11-20  Alex Samuel  <samuel@codesourcery.com>
10276
10277	* mangle.c (write_name): Use <unscoped-name> for names directly in
10278	function scope.
10279	(write_unscoped_name): Accept names directly in function scope.
10280
102812000-11-20  Nathan Sidwell  <nathan@codesourcery.com>
10282
10283	* lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
10284	* parse.y (extdef): Add EXPORT reduction.
10285	* spew.c (yylex): Don't skip export here.
10286
102872000-11-19  Mark Mitchell  <mark@codesourcery.com>
10288
10289	* decl.c (init_decl_processing): Correct name of pure virtual
10290	function under the new ABI.
10291	* rtti.c (throw_bad_cast): Likewise, for bad cast function.
10292	(throw_bad_typeid): Likewise for bad typeid function.
10293
102942000-11-18  Mark Mitchell  <mark@codesourcery.com>
10295
10296	* decl.c (grokparms): Don't even function types of `void' type,
10297	either.
10298	* mangle.c (write_type): Don't crash when confronted with the
10299	error_mark_node.
10300
10301	* decl.c (grokparms): Don't create parameters of `void' type.
10302
103032000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
10304
10305	* lex.c (mark_impl_file_chain): Delete.
10306	(init_parse): Remove call to ggc_add_string_root.  No need to
10307	ggc_strdup a string constant.  Do not add impl_file_chain to GC
10308	roots.
10309	(handle_pragma_implementation): No need to ggc_strdup main_filename.
10310
103112000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
10312
10313	* pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
10314
103152000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
10316
10317	* cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
10318	* decl.c (grokdeclarator): Don't reject void parms here.
10319	(require_complete_types_for_parms): Simplify, use
10320	complete_type_or_else.
10321	(grokparms): Remove bitrot. Remove funcdef parm.
10322	Deal with ellipsis parm lists here.
10323	* semantics.c (finish_parmlist): Don't append void_list_node
10324	here. Set PARMLIST_ELLIPSIS_P.
10325
103262000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
10327
10328	* typeck2.c (incomplete_type_error): Reorganize to avoid
10329	excessive diagnostics.
10330
103312000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
10332
10333	* lex.c (struct impl_files, internal_filename): Constify a char *.
10334
103352000-11-16  Mark Mitchell  <mark@codesourcery.com>
10336
10337	* mangle.c (write_special_name_constructor): Don't generate
10338	assembler junk when confronted with an old-style constructor.
10339	(write_special_name_destructor): Likewise.
10340	(mangle_decl_string): Do it here instead.
10341
103422000-11-16  Nathan Sidwell  <nathan@codesourcery.com>
10343
10344	* call.c (op_error): Make error messages clearer.
10345
103462000-11-15  Mark Mitchell  <mark@codesourcery.com>
10347
10348	* decl.c (wrapup_globals_for_namespace): Don't mark things
10349	TREE_ASM_WRITTEN when they're not.
10350
103512000-11-15  Jason Merrill  <jason@redhat.com>
10352
10353	* typeck2.c (friendly_abort): Uncount the error before handing
10354	off to fancy_abort.
10355
103562000-11-15  Nathan Sidwell  <nathan@codesourcery.com>
10357
10358	* typeck.c (lookup_anon_field): Cope with qv qualifiers.
10359
103602000-11-14  Mark Mitchell  <mark@codesourcery.com>
10361
10362	* class.c (build_vtbl_initializer): Fix typo in comment.
10363	* typeck.c (expr_sizeof): Don't crash on errors.
10364
103652000-11-14  Jim Wilson  <wilson@redhat.com>
10366
10367	* lang-specs.h: Add %2 after %(cc1_options).
10368
103692000-11-14  Richard Henderson  <rth@redhat.com>
10370
10371	* typeck.c (c_sizeof): Be strict about casting result value
10372	back to c_size_type_node.
10373	(expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
10374
103752000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
10376
10377	* typeck.c (build_unary_op): Use boolean_increment from
10378	c-common.c, moving the relevant code there.
10379
103802000-11-11  Jason Merrill  <jason@redhat.com>
10381
10382	* typeck.c (mark_addressable): Don't call put_var_into_stack.
10383
10384	* decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
10385	in inlines.
10386
103872000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10388
10389	* decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
10390	* lex.c (copy_lang_decl): Likewise.
10391
103922000-11-09  Mark Mitchell  <mark@codesourcery.com>
10393
10394	* dump.c (cp_dump_tree): Don't dump function bodies here.
10395
10396	* Make-lang.in (CXX_C_OBJS): Add c-dump.o.
10397	(dump.o): Update dependency list.
10398	* cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
10399	(flag_dump_translation_unit): Likewise.
10400	(CP_TYPE_QUALS): Adjust definition.
10401	(DECL_C_BIT_FIELD): Remove.
10402	(SET_DECL_C_BIT_FIELD): Likewise.
10403	(CLEAR_DECL_C_BIT_FIELD): Likewise.
10404	(add_maybe_template): Likewise.
10405	(strip_array_types): Likewise.
10406	(dump_node_to_file): Likewise.
10407	(cp_dump_tree): New function.
10408	* decl.c (init_decl_processing): Set lang_dump_tree.
10409	* decl2.c (flag_dump_translation_unit): Remove.
10410	* dump.c: Move most of it to ../c-dump.c.
10411	(cp_dump_tree): New function.
10412	* pt.c (add_maybe_template): Remove.
10413	* typeck.c (strip_array_types): Likewise.
10414
104152000-11-07  Eric Christopher  <echristo@redhat.com>
10416
10417	* decl.c (init_decl_processing): Change definition of
10418	__wchar_t to wchar_t.  Remove artificial declaration of
10419	wchar_t.
10420	* lex.c: Change instances of __wchar_t to wchar_t.
10421
104222000-11-09  Nathan Sidwell  <nathan@codesourcery.com>
10423
10424	* lex.c (do_identifier): Don't lookup_name for operators.
10425	* parse.y (operator): Save looking_for_typename.
10426	(unoperator): Restore it.
10427	* spew.c (frob_opname): Use nth_token for lookahead.
10428
104292000-11-08  Nathan Sidwell  <nathan@codesourcery.com>
10430
10431	* decl.c (grok_op_properties): Always use coerce_new_type and
10432	coerce_delete_type.
10433	* decl2.c (coerce_new_type): Use c_size_type_node. Preserve
10434	exception specification. Tidy up.
10435	(coerce_delete_type): Preserve exception specification. Tidy up.
10436
104372000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
10438
10439	* class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
10440	(push_binding_level), error.c (cp_tree_printer), pt.c
10441	(process_partial_specialization, tsubst_template_arg_vector),
10442	search.c (lookup_member): Use memset () instead of bzero ().
10443
104442000-11-07  Nathan Sidwell  <nathan@codesourcery.com>
10445
10446	* decl.c (build_ptrmemfunc_type): Allow error_mark_node.
10447
104482000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
10449
10450	* Make-lang.in (c++.distdir): Remove.
10451
104522000-11-04  Mark Mitchell  <mark@codesourcery.com>
10453
10454	* decl2.c (do_nonmember_using_decl): Allow `extern "C"'
10455	declarations from different namespaces to be combined.
10456
104572000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>
10458
10459	* decl.c: Include tm_p.h.
10460
104612000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
10462
10463	* tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
10464
104652000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10466
10467	* dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
10468	(build_overload_value), repo.c (open_repo_file), xref.c
10469	(open_xref_file): Use strchr () and strrchr () instead of index ()
10470	and rindex ().
10471
104722000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
10473
10474	* call.c (build_over_call): Call fold on the CALL_EXPR.
10475
104762000-11-01  Gabriel Dos Reis  <gdr@codesourcery.com>
10477
10478	* error.c (dump_template_decl): Separate template hearders with
10479	space not comma.
10480
104812000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>
10482
10483	* error.c: Move TFF_ macros into cp-tree.h.  Throughout, replace
10484	TS_* flags with corresponding TFF_*.  Adjust prototypes of
10485	functions (which used to take a tree_string_flags) to take an int.
10486
10487	* cp-tree.h (enum tree_string_flags): Remove
10488	(TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
10489	TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
10490	TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
10491	TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
10492	TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
10493	TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
10494	(type_as_string, decl_as_string, expr_as_string,
10495	context_as_string): Adjust prototype.
10496
10497	* class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
10498	instead of TS_PLAIN.
10499
10500	* pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
10501	instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
10502	plain `0'.
10503
105042000-10-30  Mark Mitchell  <mark@codesourcery.com>
10505
10506	* cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
10507	(linkage_kind): New enumeration.
10508	(decl_linkage): New function.
10509	* decl2.c (comdat_linkage): Extend comment.
10510	* error.c (dump_function_decl): Print the arguments used to
10511	instantiate a template, even when not printing the type of the
10512	function.
10513	* pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
10514	not TREE_PUBLIC, to test for external linkage.
10515	* tree.c (decl_linkage): New function.
10516
105172000-10-28  Mark Mitchell  <mark@codesourcery.com>
10518
10519	* pt.c (instantiate_decl): Always instantiate static data members
10520	initialized in-class.
10521
105222000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
10523
10524	* Make-lang.in: Move all build rules here from Makefile.in,
10525	adapt to new context.  Wrap all rules that change the current
10526	directory in parentheses.  Expunge all references to $(P).
10527	When one command depends on another and they're run all at
10528	once, use && to separate them, not ;.  Add OUTPUT_OPTION to
10529	all object-file generation rules.  Delete obsolete variables.
10530
10531	* Makefile.in: Delete.
10532	* config-lang.in: Delete outputs= line.
10533
105342000-10-26  Gabriel Dos Reis  <gdr@codesourcery.com>
10535
10536	* error.c (dump_function_decl): Print no space between
10537	`ptr-operator' the `type-specifier' of the return type.
10538	(dump_type_prefix): Make sure we put space at the appropriate
10539	place.
10540
105412000-10-23  Jason Merrill  <jason@redhat.com>
10542
10543	* call.c (equal_functions): Also call decls_match for extern "C" fns.
10544
105452000-10-22  Jason Merrill  <jason@redhat.com>
10546
10547	* call.c (build_conditional_expr): Use ocp_convert to force
10548	rvalue conversion.
10549
105502000-10-22  Mark Mitchell  <mark@codesourcery.com>
10551
10552	* call.c (standard_conversion): Use RVALUE_CONVs for all
10553	expressions that satisfy lvalue_p, not just those that satisfy
10554	real_lvalue_p.
10555
10556	* optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
10557
10558	* typeck.c (c_sizeof): Return an expression of `size_t' type,
10559	not one with TYPE_IS_SIZETYPE set.
10560	(dubious_conversion_warnings): Remove special-case code.
10561
105622000-10-21  Geoffrey Keating  <geoffk@cygnus.com>
10563
10564	* decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
10565	* error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
10566	(dump_type_prefix): Print vector-of-int as 'int vector'.
10567	(dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
10568	* tree.c (walk_tree): Handle VECTOR_TYPE.
10569
10570	* decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
10571
105722000-10-21  Jason Merrill  <jason@redhat.com>
10573
10574	* parse.y (operator): Set got_object from got_scope.
10575	Set looking_for_typename.
10576	* decl.c (lookup_name_real): Clear val after setting from_obj.
10577	Reorganize diagnostic.
10578
105792000-10-20  Jason Merrill  <jason@redhat.com>
10580
10581	* tree.c (walk_tree): Don't walk into default args.
10582
10583	* error.c (dump_expr): Use host_integerp.
10584
105852000-10-20  David Edelsohn  <edelsohn@gnu.org>
10586
10587	* typeck2.c (abstract_virtuals_error): Use "because" instead of
10588	"since" in error message.
10589
10590Fri Oct 20 13:54:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10591
10592	* typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
10593
105942000-10-20  Jeffrey Oldham  <oldham@codesourcery.com>
10595
10596	* decl.c (revert_static_member_fn): Fixed typo.
10597
105982000-10-19  Mark Mitchell  <mark@codesourcery.com>
10599
10600	* class.c (subobject_offset_fn): New type.
10601	(dfs_record_base_offsets): Remove.
10602	(record_base_offsets): Likewise.
10603	(dfs_search_base_offsets): Likewise.
10604	(record_subobject_offset): New function.
10605	(check_subobject_offset): Likewise.
10606	(walk_subobject_offsets): Likewise.
10607	(record_subobject_offsets): Likewise.
10608	(layout_conflict_p): Reimplement.
10609	(layout_nonempty_base_or_field): Correct handling of type
10610	conflicts during layout.
10611	(layout_empty_base): Likewise.
10612	(build_base_field): Adjust to handle new representation of empty
10613	base offset table.
10614	(build_base_fields): Likewise.
10615	(layout_virtual_bases): Likewise.
10616	(splay_tree_compare_integer_csts): New function.
10617	(layout_class_type): Use a splay_tree, rather than a varray, to
10618	represent the offsets of empty bases.
10619
10620	* cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
10621	* decl.c (select_decl): Don't return declarations that are
10622	DECL_ANTICIPATED.
10623
106242000-10-18  Mark Mitchell  <mark@codesourcery.com>
10625
10626	* cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
10627	(fake_std_node): New macro.
10628	* decl.c (in_std): Rename to ...
10629	(in_fake_std): ... this.
10630	(flag_no_builtin): Remove.
10631	(flag_no_nonansi_builtin): Likewise.
10632	(walk_namespaces_r): Use fake_std_node.
10633	(push_namespace): Use std_identifier.
10634	(pop_namespace): Use in_fake_std.
10635	(lookup_name_real): Use fake_std_node.
10636	(init_decl_processing): When -fhonor-std, create the `std'
10637	namespace.  Don't create a dummy fake_std_node in that case.
10638	Adjust call to c_common_nodes_and_builtins.  Use std_identifier.
10639	(builtin_function): Put builtins whose names don't begin
10640	with `_' in the std namespace.
10641	* decl2.c (flag_no_builtin): Remove.
10642	(flag_no_nonansi_builtin): Likewise.
10643	(set_decl_namespace): Use fake_std_node.
10644	(validate_nonmember_using_decl): Likewise.
10645	(do_using_directive): Likewise.
10646	(handle_class_head): Likewise.
10647	* dump.c (dequeue_and_dump): Likewise.
10648	* except.c (init_exception_processing): Use std_identifier.
10649	* init.c (build_member_call): Use fake_std_node.
10650	* rtti.c (init_rtti_processing): Use std_identifier.
10651
106522000-10-17  Mark Mitchell  <mark@codesourcery.com>
10653
10654	* cp-tree.h (back_end_hook): Remove declaration.
10655	* decl2.c (back_end_hook): Remove definition.
10656
10657	* dump.c (dequeue_and_dump): Dump TREE_USED.
10658
10659Tue Oct 17 20:19:06 2000  Brad Lucier <lucier@math.purdue.edu>
10660
10661	* spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
10662
106632000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
10664
10665	* decl.c (WINT_TYPE): Define.
10666	(init_decl_processing): Create types unsigned_ptrdiff_type_node,
10667	c_size_type_node, signed_size_type_node and wint_type_node.
10668
106692000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
10670
10671	* decl2.c (warn_missing_format_attribute): New variable.
10672	(lang_decode_option): Decode -Wmissing-format-attribute.
10673
106742000-10-16  Mark Mitchell  <mark@codesourcery.com>
10675
10676	* typeck.c (qualify_type): Remove.
10677	(composite_pointer_type): Fix handling of conversions to `cv void*'.
10678
106792000-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10680
10681	* Makefile.in (parse.c, parse.h): Fix think-o in last patch.
10682
106832000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10684
10685	* Makefile.in (parse.c, parse.h): Create atomically.
10686
106872000-10-12  Mark Mitchell  <mark@codesourcery.com>
10688
10689	* class.c (current_obstack): Remove.
10690	* decl.c (ggc_p): Remove.
10691	(start_decl): Don't use decl_tree_cons.
10692	(grokdeclarator): Don't use build_decl_list.
10693	(start_function): Don't use decl_tree_cons.
10694	(finish_function): Don't mess with obstacks.
10695	* decl2.c (grok_x_components): Don't use build_decl_list.
10696	* lex.c (make_call_declarator): Don't call decl_tree_cons.
10697	(implicitly_declare_fn): Don't call build_decl_list.
10698	* parse.y (frob_specs): Don't call build_decl_list or
10699	decl_tree_cons.
10700	(expr_or_declarator_intern): Don't call decl_tree_cons.
10701	(primary): Don't call build_decl_list.
10702	(fcast_or_absdcl): Likewise.
10703	(typed_declspecs): Don't call decl_tree_cons.
10704	(reserved_declspecs): Don't call build_decl_list.
10705	(declmods): Likewise.
10706	(reserved_typespecquals): Likewise.
10707	(aggr): Likewise.
10708	(new_type_id): Likewise.
10709	(cv_qualifiers): Likewise.
10710	(after_type_declarator_intern): Likewise.
10711	(notype_declarator_intern): Likewise.
10712	(absdcl_intern): Likewise.
10713	(named_parm): Likewise.
10714	* pt.c (most_specialized_class): Likewise.
10715	* repo.c (temporary_obstack): Make it a structure, not a pointer.
10716	(init_repo): Initialize it.
10717	* search.c (current_obstack): Remove.
10718	* typeck2.c (add_exception_specifier): Don't call build_decl_list.
10719
107202000-10-09  Richard Henderson  <rth@cygnus.com>
10721
10722	* Make-lang.in (CXX_EXTRA_HEADERS): Remove.
10723	(c++ language support bits for libgcc): Remove.
10724	(c++.clean): Remove cplib2.txt cleanup.
10725	* config-lang.in (headers, lib2funcs): Remove.
10726
10727	* exception.cc, new.cc, new1.cc, new2.cc: Remove files.
10728	* tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
10729	* inc/cxxabi.h, inc/exception, inc/new: Remove files.
10730	* inc/new.h, inc/typeinfo: Remove files.
10731
107322000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10733
10734	* decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
10735	defined.
10736	(init_decl_processing): Initialize intmax_type_node and
10737	uintmax_type_node.
10738
107392000-10-06  Richard Henderson  <rth@cygnus.com>
10740
10741	* cp-tree.h (struct cp_language_function): Remove x_result_rtx.
10742	(original_result_rtx): Remove.
10743	* decl.c (save_function_data): Don't clear x_result_rtx.
10744	(mark_lang_function): Don't mark it either.
10745	* expr.c (fixup_result_decl): Remove.
10746	* semantics.c (genrtl_named_return_value): Frob the return decl
10747	before calling emit_local_var.
10748	(genrtl_finish_function): Don't call fixup_result_decl.
10749	Always emit the jump to return_label.
10750
107512000-10-06  Nathan Sidwell  <nathan@codesourcery.com>
10752
10753	* pt.c (lookup_template_class): Set current access for enum.
10754	(tsubst_enum): Set file & line for enum decl.
10755
10756	* spew.c (yylex): Remove unused variable.
10757
107582000-10-05  Richard Henderson  <rth@cygnus.com>
10759
10760	* semantics.c (genrtl_finish_function): Don't init or check
10761	can_reach_end; remove noreturn and return value checks.
10762
107632000-10-05  Tom Tromey  <tromey@cygnus.com>
10764
10765	* init.c (build_java_class_ref): Use `build_static_name' with a
10766	suffix, not a prefix, to build the class object's name.
10767
107682000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
10769
10770	* cp-tree.h (access_kind): Fix comment typo.
10771	* decl2.c (grokfield): Fix diagnostic typo.
10772	* semantics.c (finish_template_type): Fix comment typo.
10773	(finish_qualified_object_call_expr): Likewise.
10774
107752000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
10776
10777	* pt.c (tsubst_expr, DECL_STMT case): Don't process if
10778	tsubsting fails.
10779
107802000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
10781
10782	* spew.c (frob_id): New static function.
10783	(frob_opname): Use it.
10784	(yylex): Use it.
10785
107862000-10-01  Mark Mitchell  <mark@codesourcery.com>
10787
10788	* decl.c (lang_mark_false_label_stack): Remove.
10789	* lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
10790
107912000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
10792
10793	* gxxint.texi: Use @email for formatting email addresses.
10794
107952000-09-29  Gabriel Dos Reis  <gdr@codesourcery.com>
10796
10797	* error.c: Remove direct obstack manipulation.  Replace with
10798	output_buffer-based formatting.  Adjust calls to removed macros.
10799	(obstack_chunk_alloc, obstack_chunk_free): Remove.
10800	(OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
10801	OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
10802
108032000-09-24  Mark Mitchell  <mark@codesourcery.com>
10804
10805	* ir.texi: Move to ../c-tree.texi.
10806
108072000-09-20  Jason Merrill  <jason@redhat.com>
10808
10809	* decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
10810
108112000-09-21  Andreas Jaeger  <aj@suse.de>
10812
10813	* errfn.c: Move declaration of cp_printer and cp_printers to ...
10814	* cp-tree.h: ... here.
10815
10816	* error.c: Remove declaration of cp_printer.
10817
108182000-09-20  Mark Mitchell  <mark@codesourcery.com>
10819
10820	* tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
10821
108222000-09-20  Hans-Peter Nilsson  <hp@axis.com>
10823
10824	* except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
10825	users.
10826
108272000-09-18  Mark Mitchell  <mark@codesourcery.com>
10828
10829	* decl.c (start_function): Robustify.
10830
108312000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10832
10833	* cp-tree.h (check_function_format): Accept a `status' parameter.
10834
10835	* call.c, typeck.c: Updates calls to `check_function_format'.
10836
108372000-09-17  Geoffrey Keating  <geoffk@cygnus.com>
10838
10839	* decl2.c (handle_class_head): Always push some scope even
10840	in the error case.
10841
108422000-09-16  Mark Mitchell  <mark@codesourcery.com>
10843
10844	* cp-tree.h (struct cp_language_function): Remove
10845	x_scope_stmt_stack and name_declared.
10846	(current_scope_stmt_stack): Remove.
10847	(function_name_declared_p): New macro.
10848	(struct lang_decl_flags): Use c_lang_decl as a base class.
10849	(context): Remove.
10850	(struct lang_decl): Replace saved_tree with context.
10851	(DECL_FRIEND_CONTEXT): Adjust accordingly.
10852	(SET_DECL_FRIEND_CONTEXT): Likewise.
10853	(DECL_VIRTUAL_CONTEXT): Likewise.
10854	(DECL_SAVED_TREE): Remove.
10855	(C_DECLARED_LABEL_FLAG): Likewise.
10856	(cplus_expand_expr_stmt): Don't declare.
10857	(add_decl_stmt): Likewise.
10858	(add_scope_stmt): Likewise.
10859	* decl.c (mark_stmt_tree): Remove.
10860	(case_compare): Likewise.
10861	(finish_case_label): Use c_add_case_label.
10862	(init_decl_processing): Set more language-specific hooks.
10863	(build_enumerator): Fix typo in comment.
10864	(cplus_expand_expr_stmt): Remove.
10865	(mark_lang_function): Use mark_c_language_function.
10866	(lang_mark_tree): Use c_mark_lang_decl.
10867	* decl2.c: Change order of inclusion.
10868	* except.c: Likewise.
10869	* expr.c (cplus_expand_expr): Remove handling of STMT_EXPR.  Fall
10870	back on c_expand_expr.
10871	* friend.c: Include expr.h.
10872	* init.c: Change order of inclusion.
10873	* Makefile.in: Update dependencies.
10874	* lex.h (free_lang_decl_chain): Remove.
10875	* optimize.c (maybe_clone_body): Use function_name_declared_p.
10876	* pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
10877	it doesn't exist.
10878	(instantiate_decl): Use function_name_declared_p.
10879	* semantics.c (lang_expand_expr_stmt): Remove.
10880	(set_current_function_name_declared): Likewise.
10881	(current_function_name_declared): Likewise.
10882	(begin_compound_stmt): Use function_name_declared_p.
10883	(add_decl_stmt): Remove.
10884	(setup_vtbl_ptr): Use function_name_declared_p.
10885	(add_scope_stmt): Remove.
10886	(current_scope_stmt_stack): New function.
10887	(cp_expand_stmt): Don't handle SCOPE_STMTs.
10888	(expand_body): Use function_name_declared_p.
10889	* tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
10890	* typeck.c: Change order of includes.
10891	(convert_sequence): Remove.
10892
108932000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
10894
10895	* lex.c (reswords): Add _Complex.
10896
10897Thu Sep 14 12:10:45 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10898
10899	* Make-lang.in (cplib2.txt): Depend on cp/Makefile.
10900
109012000-09-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
10902
10903	* init.c (begin_init_stmts): Don't use // comments.
10904
109052000-09-12  Jason Merrill  <jason@redhat.com>
10906
10907	* decl.c (maybe_deduce_size_from_array_init): Set do_default for
10908	all non-extern arrays.
10909
10910	* decl.c (grokdeclarator): Complain about 'friend T' for implicit
10911	typenames, too.  Downgrade complaint to pedwarn.
10912	(xref_tag): Warn about surprising behavior of 'friend struct T'.
10913	* decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
10914	'class This::Inherited'.
10915
109162000-09-12  Mark Mitchell  <mark@codesourcery.com>
10917
10918	* decl.c (finish_case_label): Given the LABEL_DECL a
10919	DECL_CONTEXT.
10920
109212000-09-12  Gabriel Dos Reis  <gdr@codesourcery.com>
10922
10923	* error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
10924	TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
10925	TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
10926	TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
10927	TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
10928	New macros.
10929	(sorry_for_unsupported_tree, print_scope_operator,
10930	print_left_paren, print_right_paren, print_left_bracket,
10931	print_right_bracket, print_whitespace): Likewise.
10932	(aggr_variety): Rename to class_key_or_enum.
10933	(print_type): Rename to print_type_id.
10934	(print_type_specifier_seq, print_simple_type_specifier,
10935	print_elaborated_type_specifier,
10936	print_rest_of_abstract_declarator,
10937	print_parameter_declaration_clause, print_exception_specification,
10938	print_nested_name_specifier, print_template_id,
10939	typedef_original_name,  print_template_argument_list_start,
10940	print_template_argument_list_end): New functions.
10941
109422000-09-11  Gabriel Dos Reis  <gdr@codesourcery.com>
10943
10944	* ir.texi: Add more documentation.
10945
109462000-09-11  Mark Mitchell  <mark@codesourcery.com>
10947
10948	* cp-tree.h (struct saved_scope): Remove x_function_parms.
10949	(current_function_parms): Don't define.
10950	(struct cp_language_function): Remove parms_stored.
10951	(current_function_just_assigned_this): Don't define.
10952	(current_function_parms_stored): Likewise.
10953	(static_ctors): Declare.
10954	(static_dtors): Likewise.
10955	(SF_EXPAND): Don't define.
10956	(expand_start_early_try_stmts): Remove declaration.
10957	(store_parm_decls): Likewise.
10958	* decl.c (static_ctors): Don't declare.
10959	(static_dtors): Likewise.
10960	(struct binding_level): Remove this_block.
10961	(poplevel): Remove dead code.
10962	(set_block): Likewise.
10963	(mark_binding_level): Don't mark this_block.
10964	(mark_saved_scope): Don't mark x_function_parms.
10965	(init_decl_processing): Don't add current_function_parms as a GC
10966	root.
10967	(check_function_type): Change prototype.
10968	(start_function): Remove RTL-generation code.
10969	(expand_start_early_try_stmts): Remove.
10970	(store_parm_decls): Give it internal linkage.  Remove
10971	RTL-generation code.
10972	(finish_function): Remove RTL-generation code.
10973	* decl2.c (static_ctors): Fix formatting.
10974	(static_dtors): Likewise.
10975	* method.c (use_thunk): Don't call store_parm_decls.
10976	(synthesize_method): Likewise.
10977	* optimize.c (maybe_clone_body): Likewise.
10978	* parse.y (fn.def2): Likewise.
10979	(.set_base_init): Likewise.
10980	(nodecls): Likewise.
10981	* pt.c (instantiate_decl): Likewise.
10982	* rtti.c (synthesize_tinfo_fn): Likewise.
10983	* semantics.c (genrtl_try_block): Simplify.
10984	(expand_body): Use genrtl_start_function and
10985	genrtl_finish_function.
10986	(genrtl_start_function): New function.
10987	(genrtl_finish_function): Likewise.
10988
109892000-09-11  Nathan Sidwell  <nathan@codesourcery.com>
10990
10991	* error.c (cp_tree_printer, case 'P'): Append break.
10992
109932000-09-11  Nathan Sidwell  <nathan@codesourcery.com>
10994
10995	* cp-tree.h (frob_opname): Declare.
10996	* parse.y (saved_scopes): New static variable.
10997	(cp_parse_init): Adjust.
10998	(do_id): If lastiddecl is NULL, do do_identifier.
10999	(operator): Save scope information.
11000	(unoperator): New reduction. Restore scope information.
11001	(operator_name): Append unoperator. Call frob_opname.
11002	* spew.c (frob_opname): Define.
11003
110042000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
11005
11006	* decl.c, rtti.c: Include defaults.h if not already included.
11007	Don't define the *_TYPE_SIZE macros.
11008
110092000-09-09  Mark Mitchell  <mark@codesourcery.com>
11010
11011	* cp-tree.h (push_switch): Change prototype.
11012	(check_cp_case_value): Remove declaration.
11013	(decl_constant_value): Likewise.
11014	* decl.c (struct cp_switch): Add switch_stmt and cases.
11015	(case_compare): New function.
11016	(push_switch): Set switch_stmt.  Initialize cases.
11017	(pop_switch): Clean up cases.
11018	(define_case_label): Rename to ...
11019	(finish_case_label): ... this.  Do semantic analysis for case
11020	labels here.
11021	(start_function): Correct comment.
11022	* decl2.c (check_cp_case_value): Remove.
11023	* expr.c (do_case): Remove.
11024	* pt.c (tsubst_expr): Adjust call to finish_case_label.
11025	* semantics.c (genrtl_do_poplevel): Remove declaration.
11026	(RECHAIN_STMTS): Remove.
11027	(finish_break_stmt): Use build_break_stmt.
11028	(finish_continue_stmt): Use build_continue_stmt.
11029	(finish_switch_cond): Adjust condition here, rater than in
11030	c_expand_start_case.
11031	(finish_case_label): Remove.
11032	* typeck.c (c_expand_return): Remove.
11033	(c_expand_start_case): Likewise.
11034
110352000-09-07  Gabriel Dos Reis  <gdr@codesourcery.com>
11036
11037	* ir.texi: Document type nodes.
11038
110392000-09-06  Mark Mitchell  <mark@codesourcery.com>
11040
11041	* cp-tree.h (init_cp_semantics): Declare.
11042	(genrtl_try_block): Don't declare.
11043	(genrtl_handler): Likewise.
11044	(genrtl_catch_block): Likewise.
11045	(genrtl_ctor_stmt): Likewise.
11046	(genrtl_subobject): Likewise.
11047	(genrtl_do_poplevel): Likewise.
11048	(genrtl_named_return_value): Likewise.
11049	* lex.c (init_parse): Call init_cp_semantics.
11050	* semantics.c (genrtl_try_block): Give it internal linkage.
11051	(genrtl_handler): Likewise.
11052	(genrtl_catch_block): Likewise.
11053	(genrtl_ctor_stmt): Likewise.
11054	(genrtl_subobject): Likewise.
11055	(genrtl_do_poplevel): Likewise.
11056	(genrtl_named_return_value): Likewise.
11057	(lang_expand_stmt): Rename to ...
11058	(cp_expand_stmt): ... this.  Only handle C++-specific nodes.
11059	(init_cp_semantics): Define.
11060
11061	* decl.c (initialize_local_var): Remove RTL-generating code.
11062	* semantics.c (genrtl_try_block): Fix formatting.
11063
11064	Move statement-tree facilities from C++ to C front-end.
11065	* cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
11066	(void_zero_node): Remove.
11067	(stmt_tree): Likewise.
11068	(scope_chain): Adjust.
11069	(language_function): Rename to cp_language_function.
11070	(cp_function_chain): Adjust.
11071	(current_stmt_tree): Remove.
11072	(last_tree): Likewise.
11073	(last_expr_type): Likewise.
11074	(struct lang_decl): Adjust.
11075	(STMT_IS_FULL_EXPR_P): Remove.
11076	(add_tree): Remove.
11077	(begin_stmt_tree): Likewise.
11078	(finish_stmt_tree): Likewise.
11079	(walk_tree_fn): Likewise.
11080	(walk_stmt_tree): Likewise.
11081	* class.c (finish_struct): Replace use of add_tree with add_stmt.
11082	* decl.c (mark_stmt_tree): Adjust type.
11083	(init_decl_processing): Don't build void_zero_node.
11084	(initialize_local_var): Adjust usage of current_stmt_tree.
11085	(finish_enum): Use add_stmt, not add_tree.
11086	(save_function_data): Adjust use of language_function.
11087	(finish_constructor_body): Use add_stmt, not add_tree.
11088	(finish_destructor_body): Likewise.
11089	(push_cp_function_context): Adjust use of language_function.
11090	(pop_cp_function_context): Likewise.
11091	(mark_lang_function): Likewise.
11092	(mark_cp_function_context): Likewise.
11093	* init.c (build_aggr_init): Adjust use of current_stmt_tree.
11094	(build_vec_init): Likewise.
11095	* semantics.c (SET_LAST_STMT): Remove.
11096	(RECHAIN_STMTS): Don't use it.
11097	(stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
11098	(current_stmt_tree): Define.
11099	(add_tree): Remove.
11100	(finish_goto_stmt): Use add_stmt, not add_tree.
11101	(finish_expr_stmt): Likewise.
11102	(begin_if_stmt): Likewise.
11103	(finish_then_clause): Likewise.
11104	(begin_while_stmt): Likewise.
11105	(begin_do_stmt): Likewise.
11106	(finish_return_stmt): Likewise.
11107	(begin_for_stmt): Likewise.
11108	(finish_break_stmt): Likewise.
11109	(finish_continue_stmt): Likewise.
11110	(begin_switch_stmt): Likewise.
11111	(finish_case_label): Likewise.
11112	(begin_try_block): Likewise.
11113	(begin_function_try_block): Likewise.
11114	(begin_handler): Likewise.
11115	(begin_catch_block): Likewise.
11116	(begin_compound_stmt): Likewise.
11117	(begin_asm_stmt): Likewise.
11118	(finish_asm_stmt): Likewise.
11119	(finish_label_stmt): Likewise.
11120	(add_decl_stmt): Likewise.
11121	(finish_subobject): Likewise.
11122	(finish_decl_cleanup): Likewise.
11123	(finish_named_return_value): Likewise.
11124	(setup_vtbl_ptr): Likewise.
11125	(add_scope_stmt): Likewise.
11126	(finish_stmt_expr): Likewise.
11127	(prune_unused_decls): Remove.
11128	(begin_stmt_tree): Likewise.
11129	(finish_stmt_tree): Likewise.
11130	(prep_stmt): Adjust use of current_stmt_tree.
11131	(lang_expand_stmt): Likewise.
11132	* tree.c (statement_code_p): Remove.
11133	(cp_statement_code_p): New function.
11134	(walk_stmt_tree): Remove.
11135	(init_tree): Set lang_statement_code_p.
11136
111372000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
11138
11139	Integrated preprocessor.
11140
11141	* Make-lang.in, Makefile.in: Remove all references to input.c,
11142	gxx.gperf, and hash.h.  Add ../c-lex.o to C_OBJS.
11143	* gxx.gperf, hash.h, input.c: Delete.
11144	* lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
11145	initialized properly.
11146
11147	* class.c (fixup_pending_inline): Take a tree, not a
11148	struct pending_inline *.  All callers changed.
11149	(init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
11150	RID_PROTECTED entries in ridpointers[] array here.
11151	* decl.c (duplicate_decls): Do not refer to struct
11152	pending_inline.
11153	(record_builtin_type, init_decl_processing): Use RID_MAX not
11154	CP_RID_MAX.
11155	(grokdeclarator): Use C_IS_RESERVED_WORD.
11156	* decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
11157	cpplib.
11158	(grok_x_components): Do not inspect pending_inlines chain.
11159
11160	* cp-tree.h (struct lang_identifier): Add rid_code entry.
11161	(C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
11162	(flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
11163	(DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
11164	TIME_IDENTIFIER_FILEINFO): Kill.
11165	Update prototypes.
11166	* lex.h: Expunge cp_rid.  Rewrite RIDBIT macros to use just a
11167	single 32-bit word.
11168	* parse.y: Call do_pending_inlines unconditionally.
11169	reinit_parse_for_method is now snarf_method.  fn.defpen is no
11170	longer necessary.  Remove unnecessary <itype> annotation on
11171	SCOPE.  Do not refer to end_of_file or struct pending_inline.
11172	* semantics.c (begin_inline_definitions): Call
11173	do_pending_inlines unconditionally.
11174
11175	* lex.c: Remove all code now shared with C front end.
11176	Initialize cpplib properly if USE_CPPLIB.  Put reserved words
11177	into the get_identifier table.  Rewrite pragma handling to
11178	work with the registry.  Move code to save tokens for later
11179	processing to spew.c.
11180
11181	* spew.c: Rewrite everything in terms of token streams instead
11182	of text.  Move routines here from lex.c / input.c as
11183	appropriate.  GC-mark trees hanging off the pending inlines
11184	chain.
11185
111862000-09-06  Mark Mitchell  <mark@codesourcery.com>
11187
11188	* NEWS: Mention that the named return value extension has been
11189	deprecated.
11190	* cp-tree.h (original_result_rtx): Define.
11191	(TREE_REFERENCE_EXPR): Remove.
11192	(DECL_VPARENT): Likewise.
11193	(pushdecl_nonclass_level): Likewise.
11194	(store_return_init): Likewise.
11195	(reinit_lang_specific): Likewise.
11196	(genrtl_named_return_value): Change prototype.
11197	* decl.c (original_result_rtx): Remove.
11198	(cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
11199	Do not generate RTL for local variables here.
11200	(store_return_init): Remove.
11201	* semantics.c (genrtl_named_return_value): Simplify.  Fold in
11202	store_return_init.
11203	(finish_named_return_value): Adjust accordingly.  Warn that this
11204	extension is deprecated.
11205	(lang_expand_stmt): Adjust call to genrtl_named_return_value.
11206
112072000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
11208
11209	* pt.c (type_unification_real): Replace switch with if.
11210	(unify): Tsubst non-type parms before comparing.
11211
112122000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
11213
11214	* error.c (dump_typename): New function, broken out of ...
11215	(dump_type): ... here. Use it.
11216	* typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
11217
112182000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
11219
11220	* init.c (build_offset_ref): Deal with namespace scoped
11221	TEMPLATE_ID_EXPRs.
11222
112232000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
11224
11225	* class.c (resolve_address_of_overloaded_function): Add
11226	explanation message.
11227	* decl.c (define_case_label): Reformat explanation.
11228	* decl2.c (finish_static_data_member_decl): Likewise.
11229	(grokfield): Likewise.
11230	* friend.c (do_friend): Likewise.
11231
112322000-09-05  Zack Weinberg  <zack@wolery.cumb.org>
11233
11234	* tree.c (walk_tree): Expose tail recursion.
11235	(walk_stmt_tree): New function.
11236	* cp-tree.h: Prototype walk_stmt_tree.
11237	* semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
11238	the BLOCKs directly.  If a BLOCK has no variables after
11239	pruning, discard it.
11240	(finish_stmt_tree): Use walk_stmt_tree.  No need to save and
11241	restore the line number.
11242
112432000-09-05  Mark Mitchell  <mark@codesourcery.com>
11244
11245	* Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
11246	(pt.o): Remove dependency on HTAB_H.
11247	* cp-tree.h: Include hashtab.h.
11248	(walk_tree): Change prototype.
11249	(walk_tree_without_duplicates): New function.
11250	* decl.c (check_default_argument): Use it.
11251	* optimize.c (remap_decl): Adjust calls to walk_tree.
11252	(copy_body): Likewise.
11253	(expand_calls_inline): Likewise.
11254	(calls_setjmp_p): Use walk_tree_without_duplicates.
11255	* pt.c: Don't include hashtab.h.
11256	(for_each_template_parm): Use walk_tree_without_duplicates.
11257	* semantics.c (finish-stmt_tree): Likewise.
11258	(expand_body): Likewise.
11259	* tree.c (walk_tree): Add additional parameter.
11260	(walk_tree_without_duplicates): New function.
11261	(count_trees): Use it.
11262	(verify_stmt_tree): Adjust call to walk_tree.
11263	(find_tree): Use walk_tree_without_duplicates.
11264	(no_linkage_check): Likewise.
11265	(break_out_target_exprs): Adjust call to walk_tree.
11266	(cp_unsave): Likewise.
11267
112682000-09-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
11269
11270	* cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
11271	(TEMPLATE_TEMPLATE_PARM): Adjust comment.
11272	* cp-tree.h (TYPE_BINFO): Adjust comment.
11273	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
11274	(TEMPLATE_TYPE_PARM_INDEX): Likewise.
11275	(IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
11276	(TYPE_TEMPLATE_INFO): Likewise.
11277	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
11278	* class.c (push_nested_class): Likewise.
11279	* decl.c (lookup_name_real): Likewise.
11280	(grokdeclarator): Likewise.
11281	(grok_op_properties): Likewise.
11282	(xref_tag): Likewise.
11283	(xref_basetypes): Likewise.
11284	* decl2.c (constructor_name_full): Likewise.
11285	(arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
11286	(arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
11287	* error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
11288	(dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
11289	(dump_type_suffix): Likewise.
11290	* init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
11291	instead.
11292	(get_aggr_from_typedef): Likewise.
11293	* mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
11294	(write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
11295	(write_template_parm): Likewise.
11296	(write_template_template_parm): Check tree code instead of
11297	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
11298	* method.c (build_overload_nested_name): Add
11299	BOUND_TEMPLATE_TEMPLATE_PARM.
11300	(process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
11301	* parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
11302	* pt.c (convert_template_argument): Check tree code instead of
11303	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
11304	(for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
11305	(for_each_template_parm): Adjust comment.
11306	(tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM.  Reorganize.
11307	(tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
11308	(unify): Add BOUND_TEMPLATE_TEMPLATE_PARM.  Reorganize.  Use
11309	template_args_equal to compare template template parameter cases.
11310	* ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
11311	* search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
11312	instead.
11313	* tree.c (copy_template_template_parm): Decide whether to create
11314	a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
11315	(walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
11316	(copy_tree_r): Likewise.
11317	* typeck.c (comptypes): Likewise.  Check tree code instead of
11318	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
11319
113202000-09-04  Mark Elbrecht  <snowball3@bigfoot.com>
11321
11322	* decl.c (finish_function): Move the code for handling functions
11323	marked with the constructor and destructor attributes inside the
11324	expand_p block.
11325
113262000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
11327
11328	* init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
11329
113302000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
11331
11332	* pt.c (lookup_template_class): Remove abort.
11333	* tree.c (get_type_decl): Allow error_mark_node.
11334
113352000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
11336
11337	* decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
11338	TEMPLATE_ID_EXPRs.
11339
113402000-09-03  Mark Mitchell  <mark@codesourcery.com>
11341
11342	* operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
11343	new ABI mangling.
11344
113452000-09-01  Nathan Sidwell  <nathan@codesourcery.com>
11346
11347	* parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
11348	union tag mismatch error reporting.
11349
113502000-09-01  Nathan Sidwell  <nathan@codesourcery.com>
11351
11352	* call.c (build_scoped_method_call): Check it is not a namespace.
11353
113542000-08-30  Jason Merrill  <jason@redhat.com>
11355
11356	* cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
11357
11358	* tree.c (bot_manip): Check TREE_CONSTANT rather than
11359	!TREE_SIDE_EFFECTS.  Call break_out_target_exprs and
11360	build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
11361
11362	* decl.c (start_function): Always call make_function_rtl.
11363
113642000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
11365
11366	* semantics.c (prune_unused_decls): New function.
11367	(finish_stmt_tree): Call it via walk_tree.
11368
113692000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
11370
11371	* class.c (build_secondary_vtable): Constify a char *.
11372	* decl.c (init_decl_processing): Initialize function_id_node,
11373	pretty_function_id_node, and func_id_node.
11374	* input.c (struct input_source): Constify 'str'.
11375	(feed_input): Constify first argument.
11376	* mangle.c (write_identifier): Constify argument.
11377	* pt.c (mangle_class_name_for_template): Constify argument.
11378
113792000-08-29  Mark Mitchell  <mark@codesourcery.com>
11380
11381	* typeck.c (mark_addressable): Remove code that pokes around in
11382	RTL.
11383
113842000-08-28  Jason Merrill  <jason@redhat.com>
11385
11386	* lex.c (file_name_nondirectory): Move to toplev.c.
11387
11388	* cp-tree.h (LOCAL_CLASS_P): New macro.
11389	* class.c (finish_struct_1): Use it.
11390
113912000-08-27  Alex Samuel  <samuel@codesourcery.com>
11392
11393	* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
11394	(write_encoding): Pass another argument to write_name.
11395	(write_name): Add ignore_local_scope parameter.  Fix handling of
11396	local names.
11397	(write_nested_name): Use write_unqualified_name.
11398	(write_prefix): Likewise.  Skip out on FUNCTION_DECLs.
11399	(write_template_prefix): Use write_unqualified_name.
11400	(write_component): Remove.
11401	(write_local_name): Add parameter.  Use direct local entity to
11402	discriminator calculation.
11403	(write_class_enum_type): Pass another argument to write_name.
11404	(write_template_template_arg): Likewise.
11405	(make_guard_variable): Likewise.
11406
114072000-08-27  Jason Merrill  <jason@redhat.com>
11408
11409	* decl.c (pushdecl): Matching decls for local externs are found in
11410	the current level.  Propagate linkage information from previous
11411	declarations.
11412
114132000-08-26  Gabriel Dos Reis  <gdr@codesourcery.com>
11414
11415	* ir.texi (Expressions): Fix typo.
11416
114172000-08-25  Greg McGary  <greg@mcgary.org>
11418
11419	* tree.c (init_tree): Use ARRAY_SIZE.
11420
114212000-08-25  Gabriel Dos Reis  <gdr@codesourcery.com>
11422
11423	* error.c (cp_tree_printer): Rework.
11424
114252000-08-25  Mark Mitchell  <mark@codesourcery.com>
11426
11427	* Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
11428	dyn-string.o.
11429	(CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
11430	(cp-demangle.o): Remove target.
11431	(dyn-string.o): Likewise.
11432
11433	* decl.c (grokfndecl): Require that `main' return an `int'.
11434	* mangle.c (write_encoding): Don't mangle return types for
11435	conversion functions.
11436
114372000-08-25  Gabriel Dos Reis  <gdr@codesourcery.com>
11438
11439	* error.c (tree_formatting_info): New data type.
11440	(tree_being_formatted): New macro.
11441	(tree_formatting_flags): Likewise.
11442	(put_whitespace): Likewise.
11443	(print_tree_identifier): Likewise.
11444	(print_identifier): Likewise.
11445	(cp_tree_printer, print_function_argument_list, print_declaration,
11446	print_expression, print_function_declaration,
11447	print_function_parameter, print_type, print_cv_qualifier): New
11448	functions.
11449	(init_error): Initialize lang_printer.
11450
114512000-08-24  Jason Merrill  <jason@redhat.com>
11452
11453	* typeck.c (build_ptrmemfunc): Just reinterpret if there's no
11454	adjustment necessary.
11455
114562000-08-24  Greg McGary  <greg@mcgary.org>
11457
11458	* cp-tree.h (MAIN_NAME_P): Remove macro.
11459
114602000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
11461
11462	* error.c (print_instantiation_context): Don't forget to flush the
11463	buffer.
11464
114652000-08-23  Jason Merrill  <jason@redhat.com>
11466
11467	* typeck.c (build_ptrmemfunc): Save the input pmf.
11468
11469	* method.c (process_modifiers): Use same_type_p.
11470
114712000-08-23  Mark Mitchell  <mark@codesourcery.com>
11472
11473	* cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
11474	* mangle.c (write_function_type): Change prototype.
11475	(write_encoding): Don't mangle return types for
11476	constructors or destructors.
11477	(write_type): Adjust call to write_function_type.
11478	* pt.c (instantiate_template): Instantiate alternate entry points
11479	when instantiating the main function.
11480
114812000-08-23  Gabriel Dos Reis  <gdr@codesourcery.com>
11482
11483	* error.c (cp_print_error_function): Don't use embedded '\n' in
11484	output_printf.
11485
114862000-08-23  Gabriel Dos Reis  <gdr@codesourcery.com>
11487
11488	* decl.c (init_decl_processing): Remove bogus initialization.
11489	* error.c (lang_print_error_function): Restore here.
11490	(init_error): Initialize print_error_function.
11491
114922000-08-22  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
11493
11494	* decl2.c (arg_assoc): Revert my 2000-08-11 change.
11495
114962000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
11497
11498	* Makefile.in (error.o): Depends on diagnostic.h
11499
11500	* cp-tree.h (problematic_instantiation_changed,
11501	record_last_problematic_instantiation, current_instantiation,
11502	print_instantiation_context): Declare.
11503	(maybe_print_template_context): Remove.
11504
11505	* decl.c (init_decl_processing): Set print_error_function to NULL.
11506	(lang_print_error_function): Remove, since we're using a new
11507	machinery.
11508
11509	* error.c: #include diagnostic.h
11510	(function_category): New function.
11511	(cp_diagnostic_starter): Likewise.
11512	(cp_diagnostic_finalizer): Likewise.
11513	(cp_print_error_function): Likewise.
11514	(maybe_print_instantiation_context): Likewise.
11515	(print_instantiation_full_context): Likewise.
11516	(print_instantiation_partial_context): Likewise.
11517	(print_instantiation_context): Define.
11518	(init_error): Initialize diagnostic pager and finalizer.
11519
11520	* pt.c (problematic_instantiation_changed): Define.
11521	(record_last_problematic_instantiation): Likewise.
11522	(current_instantiation): Likewise.
11523	(maybe_print_template_context): Remove.
11524	(print_template_context): Likewise.
11525	(current_tinst_level): Make static to reflect Brendan Kehoe's
11526	change of 1995-04-13.
11527	(push_tinst_level): Call print_instantiation_context.
11528
115292000-08-21  Nix  <nix@esperi.demon.co.uk>
11530
11531	* lang-specs.h: Do not process -o or run the assembler if
11532	-fsyntax-only.
11533
115342000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
11535
11536	* decl.c (flag_hosted, flag_noniso_default_format_attributes): New
11537	variables.
11538	* decl2.c (lang_decode_option): Disable gettext attributes for
11539	-ansi.
11540
115412000-08-21  Gabriel Dos Reis  <gdr@codesourcery.com>
11542
11543	* lex.c (lang_init_options): Default diagnostic message maximum
11544	length to 80, when line-wrapping.
11545
115462000-08-20  Mark Mitchell  <mark@codesourcery.com>
11547
11548	* class.c (build_vtbl_initializer): Clear the entire
11549	vtbl_init_data.  Start keeping track of the functions for which we
11550	have created vcall offsets here.
11551	(dfs_build_vcall_offset_vtbl_entries): Remove.
11552	(build_vcall_offset_vtbl_entries): Reimplement.
11553	(add_vcall_offset_vtbl_entries_r): New function.
11554	(add_vcall_offset_vtbl_entries_1): Likewise.  Tweak logic for
11555	computing when vcall offsets are necessary.
11556
115572000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
11558
11559	* decl.c (member_function_or_else): Use cp_error ... %T.
11560	(grokdeclarator): Likewise.
11561	(start_method): Likewise.
11562	* friend.c (make_friend_class): Use cp_pedwarn ... %T.
11563
115642000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
11565
11566	* decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
11567	TYPE_DECLs.
11568
115692000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
11570
11571	* cp-tree.h (PTRMEM_OK_P): New macro.
11572	(itf_ptrmem_ok): New enumeration value.
11573	* class.c (resolve_address_of_overloaded_function): Add PTRMEM
11574	argument. Diagnose implicit pointer to member.
11575	(instantiate_type): Don't diagnose implicit pointer to member
11576	here. Pass itf_ptrmem_ok if ok. Adjust calls to
11577	resolve_address_of_overloaded_function.
11578	* init.c (build_offset_ref): Set PTRMEM_OK_P.
11579	(resolve_offset_ref): Don't diagnose implicit pointer to member here.
11580	* semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
11581	* typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
11582	(build_unary_op): Deal with single non-static member in
11583	microsoft-land.
11584
115852000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
11586
11587	* decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
11588
115892000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
11590
11591	* cp-tree.h (enum_name_string): Remove prototype.
11592	(report_case_error): Remove prototype.
11593	* cp/typeck2.c (enum_name_string): Remove.
11594	(report_case_error): Remove.
11595	* error.c (dump_expr): Deal with enum values directly.
11596	Correctly negate integer constant.
11597
115982000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
11599
11600	* inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
11601	(__cxa_vec_delete2, __cxa_vec_delete3): Declare.
11602	* vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
11603	(__cxa_vec_delete2, __cxa_vec_delete3): Implement.
11604	(__cxa_vec_new): Use __cxa_vec_new2.
11605	(__cxa_vec_delete): Use __cxa_vec_delete2.
11606
116072000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
11608
11609	* vec.cc (__cxa_vec_new): Set "C" linkage.
11610	(__cxa_vec_ctor): Likewise.
11611	(__cxa_vec_cctor): Likewise.
11612	(__cxa_vec_dtor): Likewise.
11613	(__cxa_vec_delete): Likewise.
11614	* inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
11615	(__cxa_vec_ctor): Likewise.
11616	(__cxa_vec_cctor): Likewise.
11617	(__cxa_vec_dtor): Likewise.
11618	(__cxa_vec_delete): Likewise.
11619
116202000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
11621
11622	* class.c (instantiate_type): Reinstate local variable
11623	deleted in previous change.
11624
11625	* cvt.c (cp_convert_to_pointer): Pass itf_complain, not
11626	itf_no_attributes.
11627
116282000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
11629
11630	* cp-tree.h (instantiate_type_flags): New enumeration.
11631	(instantiate_type): Change parameter.
11632	* class.c (instantiate_type): Adjust prototype. Adjust.
11633	* call.c (standard_conversion): Adjust instantiate_type call.
11634	(reference_binding): Likewise.
11635	(build_op_delete_call): Likewise.
11636	(convert_like_real): Likewise.
11637	* cvt.c (cp_convert_to_pointer): Likewise.
11638	(convert_to_reference): Likewise.
11639	* pt.c (convert_nontype_argument): Likewise.
11640	* typeck.c (build_binary_op): Likewise.
11641	(build_ptrmemfunc): Likewise.
11642	(convert_for_assignment): Likewise.
11643
116442000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
11645
11646	* cp-tree.h (CPTR_AGGR_TAG): New global tree node.
11647	(current_aggr): Define.
11648	* decl.c (grokdeclarator): Make sure a friend class is an
11649	elaborated type specifier.
11650	* parse.y (current_aggr): Remove static definition.
11651	(cp_parse_init): Adjust.
11652	(structsp): Clear and restore current_aggr.
11653	(component_decl_list): Clear current_aggr.
11654
11655	* error.c (dump_type, case TYPENAME_TYPE): Don't emit the
11656	aggregate tag on the typename's context.
11657
11658	* pt.c (tsubst_friend_class): Return error_mark_node, if
11659	parms becomes NULL.
11660	(instantiate_class_template): Ignore error_mark_node friend types.
11661
116622000-08-14  Nathan Sidwell  <nathan@codesourcery.com>
11663
11664	* cvt.c (warn_ref_binding): New static function, broken out of ...
11665	(convert_to_reference): ... here. Use it.
11666
116672000-08-11  Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
11668
11669	* parse.y (template_arg): Add rule for template qualified with
11670	global scope.
11671
116722000-08-11  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
11673
11674	* decl2.c (add_function): Reorganize.
11675	(arg_assoc): Do not consider function template decls.
11676
116772000-08-11  Jason Merrill  <jason@redhat.com>
11678
11679	* decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
11680	looking inside.
11681
116822000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
11683
11684	* cp-tree.h (resolve_scope_to_name): Remove unused prototype.
11685	(lookup_nested_tag): Likewise.
11686
11687	* decl2.c (grokfield): Fix comment to reflect many types of _DECLs
11688	can be produced.
11689
116902000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
11691
11692	* parse.y (named_complex_class_head_sans_basetype): Remove
11693	always true if.
11694
116952000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
11696
11697	* decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
11698	explicit TEMPLATE_ID_EXPR args.
11699	(build_expr_from_tree, case CALL_EXPR): Likewise.
11700
117012000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
11702
11703	* decl.c (check_tag_decl): Diagnose typename's which don't
11704	declare anything.
11705
117062000-08-10  Nathan Sidwell  <nathan@codesourcery.com>
11707
11708	* init.c (build_aggr_init): Reject bogus array initializers
11709	early.
11710
117112000-08-09  Nathan Sidwell  <nathan@codesourcery.com>
11712
11713	* rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
11714	runtime.
11715	* cp/tinfo.cc (__dynamic_cast): Likewise.
11716	* cp/inc/cxxabi.h (__dynamic_cast): Likewise.
11717
117182000-08-09  Nathan Sidwell  <nathan@codesourcery.com>
11719
11720	* cvt.c (convert_to_pointer_force): Fix error message when
11721	attempting to cast from ambiguous base.
11722
117232000-08-08  Jason Merrill  <jason@redhat.com>
11724
11725	* pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
11726	(tsubst_template_arg_vector): Likewise.
11727
11728	* decl2.c (build_anon_union_vars): Choose the largest field; don't
11729	assume that one will be as large as the union.
11730
117312000-08-07  Kazu Hirata  <kazu@hxi.com>
11732
11733	* cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
11734	* decl.c (pop_labels): Likewise.
11735
117362000-08-04  Jeffrey Oldham  <oldham@codesourcery.com>
11737
11738	* inc/cxxabi.h (__pbase_type_info): Changed member names to match
11739	specifications.
11740	(__pointer_to_member_type_info): Likewise.
11741	(__base_class_info): Likewise.
11742	(__class_type_info): Likewise.
11743	(__si_class_type_info): Likewise.
11744	(__vmi_class_type_info): Likewise.
11745	* tinfo.cc (__si_class_type_info::__do_find_public_src):
11746	Changed member names to match specifications.
11747	(__vmi_class_type_info::__do_find_public_src): Likewise.
11748	(__si_class_type_info::__do_dyncast): Likewise.
11749	(__vmi_class_type_info::__do_dyncast): Likewise.
11750	(__si_class_type_info::__do_upcast): Likewise.
11751	(__vmi_class_type_info::__do_upcast): Likewise.
11752	* tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
11753	(__pbase_type_info::__pointer_catch): Likewise.
11754	(__pointer_type_info::__pointer_catch): Likewise.
11755	(__pointer_to_member_type_info::__pointer_catch): Likewise.
11756
117572000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
11758
11759	* Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
11760	* Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
11761	(cc1plus): Link with $(BACKEND) and $(C_OBJS).
11762
117632000-08-04  Mark Mitchell  <mark@codesourcery.com>
11764
11765	* cp-tree.h (add_method): Change prototype.
11766	* class.c (add_method): Remove FIELDS parameter.  Add ERROR_P.
11767	Don't double the size of the method vector in the error case.
11768	(handle_using_decl): Adjust call to add_method.
11769	(add_implicitly_declared_members): Likewise.
11770	(clone_function_decl): Likewise.
11771	* decl2.c (check_classfn): Likewise.
11772	* semantics.c (finish_member_declaration): Likewise.
11773
117742000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11775
11776	* decl.c (flag_isoc94): New variable.
11777
117782000-08-02  Jason Merrill  <jason@redhat.com>
11779
11780	* pt.c (do_type_instantiation): Add complain parm; don't complain
11781	if called recursively.
11782	* cp-tree.h, parse.y: Adjust.
11783
117842000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
11785
11786	* decl2.c: Silently ignore -Wstrict-prototypes; warn about
11787	-Wno-strict-prototypes.
11788
11789	* g++spec.c: Adjust type of second argument to
11790	lang_specific_driver, and update code as necessary.
11791
11792	* cp-tree.h: Don't prototype min_precision here.
11793	(my_friendly_assert): Cast expression to void.
11794	* semantics.c (do_poplevel): Initialize scope_stmts.
11795
117962000-08-02  Mark Mitchell  <mark@codesourcery.com>
11797
11798	* cp-tree.h (DECL_NEEDED_P): Tweak.
11799
118002000-07-28  Jason Merrill  <jason@redhat.com>
11801
11802	* lang-specs.h: Use %i in rule for .ii files.
11803
118042000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
11805
11806	* lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
11807
118082000-07-30  Mark Mitchell  <mark@codesourcery.com>
11809
11810	Allow indirect primary bases.
11811	* cp-tree.h (struct lang_type): Remove vfield_parent.  Add
11812	primary_base.
11813	(CLASSTYPE_VFIELD_PARENT): Remove.
11814	(CLASSTYPE_PRIMARY_BINFO): Reimplement.
11815	(BINFO_PRIMARY_BINFO): Remove.
11816	(CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
11817	(BINFO_VBASE_PRIMARY_P): Likewise.
11818	(BINFO_PRIMARY_BASE_OF): New macro.
11819	(BINFO_INDIRECT_PRIMARY_P): Likewise.
11820	(get_primary_binfo): New function.
11821	* decl.c (lang_mark_tree): Make lang_type::primary_base.
11822	* class.c (vcall_offset_data_s): Rename to ...
11823	(vtbl_init_data_s): ... this.  Rename primary_p to primary_vtbl_p,
11824	and add ctor_vtbl_p.
11825	(get_derived_offset): Use get_primary_binfo.
11826	(dfs_mark_primary_bases): Adjust handling of virtual primary
11827	bases.
11828	(mark_primary_bases): Likewise.
11829	(set_primary_base): Take a binfo, not an integer, as a
11830	representation of the primary base.
11831	(indirect_primary_base_p): Remove.
11832	(determine_primary_base): Adjust for indirect primary bases.
11833	(dfs_find_final_overrider): Fix typo in coment.
11834	(update_vtable_entry_for_fn): Use get_primary_binfo.
11835	(layout_nonempty_base_or_field): Tweak.
11836	(build_base_fields): Adjust for new primary base semantics.
11837	(dfs_propagate_binfo_offsets): Remove.
11838	(propagate_binfo_offsets): Rewrite.
11839	(dfs_set_offset_for_shared_vbases): Remove.
11840	(layout_virtual_bases): Don't use it.
11841	(layout_class_type): Set CLASSTYPE_SIZE correctly under the new
11842	ABI.
11843	(finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
11844	CLASSTYPE_VFIELD_PARENT.
11845	(dfs_get_primary_binfo): New function.
11846	(get_primary_binfo): Likewise.
11847	(dump_class_hierarchy_r): Tweak printing of primary bases.
11848	(build_vtbl_initializer): Fix typo in comments.  Use
11849	vtbl_init_data.
11850	(build_vcall_and_vbase_vtbl_entries): Likewise.
11851	(build_vbaes_offset_vtbl_entries): Likewise.
11852	(dfs_build_vcall_offset_vtbl_entries): Adjust setting of
11853	BV_VCALL_INDEX to handle indirect primary bases.
11854	(build_vcall_offset_vtbl_entries): Use vtbl_init_data.
11855	(build_rtti_vtbl_entries): Likewise.
11856	* search.c (get_shared_vbase_if_not_primary): Tweak.
11857	(find_vbase_instance): Likewise.
11858	(binfo_for_vtable): Simplify.
11859	* tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
11860	(make_binfo): Make it have 11 entries.
11861
118622000-07-30  Alex Samuel  <samuel@codesourcery.com>
11863
11864	* mangle.c (DECL_TEMPLATE_ID_P): Remove.
11865	(CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
11866	ascertaining primaryness.
11867	(G): Remove template_args.
11868	(decl_is_template_id): New function.
11869	(write_encoding): Use decl_is_template_id.
11870	(write_name): Likewise.  Handle type_decls.  Get main variant of
11871	type decls.
11872	(write_nested_name): Likewise.
11873	(write_prefix): Likewise.
11874	(write_template_prefix): Likewise.
11875	(write_special_name_constructor): Remove defunct production from
11876	comment.
11877	(write_bare_function_type): Remove comment about absent parameter.
11878	(write_template_template_arg): Add missing grammar production to
11879	comment.
11880
118812000-07-27  Jason Merrill  <jason@redhat.com>
11882
11883	* decl.c (duplicate_decls): If common_type produces a non-typedef
11884	type for a typedef, just use the old type.
11885
118862000-07-27  Mark Mitchell  <mark@codesourcery.com>
11887
11888	* cp-tree.h (function_depth): Declare.
11889	(verify_stmt_tree): Likewise.
11890	(find_tree): Likewise.
11891	* decl.c (function_depth): Give it external linkage.
11892	* optimize.c (optimize_function): Increment and decrement it.
11893	* tree.c (verify_stmt_tree_r): New function.
11894	(verify_stmt_tree): Likewise.
11895	(find_tree_r): Likewise.
11896	(find_tree): Likewise.
11897
118982000-07-27  Jason Merrill  <jason@redhat.com>
11899
11900	* pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
11901	TYPE_PTRMEMFUNC_P.
11902	* cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
11903
119042000-07-26  Mark Mitchell  <mark@codesourcery.com>
11905
11906	* decl.c (start_cleanup_fn): Mark the function as `inline'.
11907	* decl2.c (get_guard): Call cp_finish_decl, not
11908	rest_of_decl_compilation, for local guards.
11909	* lex.c (do_identifier): Remove unused variable.
11910
11911Wed Jul 26 15:05:51 CEST 2000	Marc Espie <espie@cvs.openbsd.org>
11912
11913	* parse.y:  Add missing ';'.
11914
119152000-07-26  Mark Mitchell  <mark@codesourcery.com>
11916
11917	* parse.y (empty_parms): Use `()', not `(...)', when in the scope
11918	of `extern "C++"'.
11919
119202000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
11921
11922	Kill strict_prototype. Backwards compatibility only for
11923	non NO_IMPLICIT_EXTERN_C systems.
11924	* cp-tree.h (flag_strict_prototype): Remove.
11925	(strict_prototype): Remove.
11926	(strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
11927	* decl.c (maybe_push_to_top_level): Adjust.
11928	(pop_from_top_level): Adjust.
11929	(decls_match): Only allow sloppy parm matching for ancient
11930	system headers.
11931	(init_decl_processing): Adjust.
11932	(grokdeclarator): Adjust.
11933	* decl2.c (flag_strict_prototype): Remove.
11934	(strict_prototype): Remove.
11935	(strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
11936	(lang_f_options): Remove "strict-prototype".
11937	(unsupported-options): Add "strict-prototype".
11938	* lex.c (do_identifier): Adjust.
11939	(do_scoped_id): Adjust.
11940	* parse.y (empty_parms): Adjust.
11941	* class.c (push_lang_context): Adjust.
11942	(pop_lang_context): Adjust.
11943	* typeck.c (comp_target_parms): Adjust.
11944
119452000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
11946
11947	* decl.c (poplevel): Deal with anonymous variables at for scope.
11948	(maybe_inject_for_scope_var): Likewise.
11949
119502000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
11951
11952	* decl.c: Remove all signal handling code, now done in toplev.c.
11953
119542000-07-23  Mark Mitchell  <mark@codesourcery.com>
11955
11956	* decl.c (make_rtl_for_nonlocal_decl): Rework.
11957
11958	* pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
11959	correctly.
11960
119612000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
11962
11963	* cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
11964	Define my_friendly_assert and my_friendly_abort as macros
11965	which may call friendly_abort.  Prototype friendly abort, not
11966	my_friendly_abort or my_friendly_assert.
11967	* decl.c (signal_catch): Report the signal caught in the error
11968	message.  Call fatal directly.
11969	* typeck2.c (ack, my_friendly_assert): Delete.
11970	(my_friendly_abort): Rename to friendly_abort.  Expect file,
11971	line, and function parameters.  Report the abort code, then
11972	call fancy_abort.  Do not mask an abort if errors have
11973	already occurred.
11974
119752000-07-18  Nathan Sidwell  <nathan@codesourcery.com>
11976
11977	* typeck.c (comp_target_parms): Remove obsolete parameter.
11978	(comp_target_types): Adjust.
11979
119802000-07-17  Jason Merrill  <jason@redhat.com>
11981
11982	* typeck.c (mark_addressable): Never set TREE_USED.
11983	* call.c (build_call): Don't abort on calls to library functions
11984	that have been declared normally.
11985
11986	* typeck.c (build_binary_op): Fix grammar in warning.
11987
11988	* exception.cc (__eh_free): Fix prototype.
11989
11990	* decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
11991
11992	* decl.c (pushdecl): Handle seeing an OVERLOAD in
11993	IDENTIFIER_NAMESPACE_VALUE.
11994
119952000-07-16  Mark Mitchell  <mark@codesourcery.com>
11996
11997	* cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
11998	* method.c (use_thunk): Correct handling of vcall offsets.
11999
120002000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
12001
12002	* .cvsignore: parse.h and parse.c have no cp- prefix.
12003
120042000-07-13  Mark Mitchell  <mark@codesourcery.com>
12005
12006	* .cvsignore: New file.
12007
120082000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
12009
12010	* lang-specs.h: Use the new named specs.  Remove unnecessary braces.
12011
120122000-07-12  Mark Mitchell  <mark@codesourcery.com>
12013
12014	* Makefile.in ($(PARSE_H)): Depend directly on parse.y.
12015	* parse.c: Remove.
12016	* parse.h: Likewise.
12017
120182000-07-11  Mark Mitchell  <mark@codesourcery.com>
12019
12020	* class.c (layout_class_type): Add pointers to virtual bases after
12021	base classes under the old ABI.
12022
120232000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
12024
12025	* semantics.c (finish_for_stmt): Remove call to emit_line_note.
12026	(finish_continue_stmt): Likewise.
12027	(begin_for_stmt): Remove call to note_level_for_for.
12028	(finish_goto_stmt): Change call from build_min_nt
12029	to build_stmt.
12030	(finish_expr_stmt): Likewise.
12031	(begin_if_stmt): Likewise.
12032	(begin_while_stmt): Likewise.
12033	(finish_while_stmt): Likewise.
12034	(finish_return_stmt): Likewise.
12035	(begin_for_stmt): Likewise.
12036	(finish_for_stmt): Likewise.
12037	(finish_break_stmt): Likewise.
12038	(begin_switch_stmt): Likewise.
12039	(finish_case_label): Likewise.
12040	(genrtl_try_block): Likewise.
12041	(begin_try_block): Likewise.
12042	(begin_handler): Likewise.
12043	(begin_compound_stmt): Likewise.
12044	(finish_asm_stmt): Likewise.
12045	(finish_label_stmt): Likewise.
12046	(add_decl_stmt): Likewise.
12047	(finish_subobject): Likewise.
12048	(finish_decl_cleanup): Likewise.
12049	(finish_named_return_value): Likewise.
12050	(setup_vtbl_ptr): Likewise.
12051	(add_scope_stmt): Likewise.
12052	* decl.c (finish_constructor_body): Likewise.
12053	(finish_destructor_body): Likewise.
12054	* optimize.c (copy_body_r): Likewise.
12055	(initialize_inlined_parameters): Likewise.
12056	(declare_return_variable): Likewise.
12057	(expand_call_inline): Likewise.
12058
120592000-07-10  Jakub Jelinek  <jakub@redhat.com>
12060
12061	* semantics.c (expand_body): Sync interface information
12062	at the end of function body expansion.
12063
120642000-07-09  Jason Merrill  <jason@redhat.com>
12065
12066	* init.c (build_new_1): Bail early if the call to new fails.
12067
12068	* decl.c (compute_array_index_type): Check specifically for
12069	an INTEGER_CST, not just TREE_CONSTANT.
12070
12071	* decl.c (duplicate_decls): Don't call duplicate_decls on
12072	the DECL_TEMPLATE_RESULT.
12073	(decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
12074	codes.
12075
12076	* error.c (dump_template_bindings): Don't crash if we had an
12077	invalid argument list.
12078
12079	* typeck.c (c_expand_start_case): Do narrowing here.
12080	* semantics.c (finish_switch_cond): Not here.
12081
120822000-07-09  Hidvegi Zoli  <hzoli@austin.ibm.com>
12083
12084	* parse.y (asm_clobbers): Do string concatenation.
12085
120862000-07-09  Mark Mitchell  <mark@codesourcery.com>
12087
12088	* decl.c (pushtag): Don't put local classes in template functions
12089	on the local_classes list.
12090
120912000-07-04  Scott Snyder  <snyder@fnal.gov>
12092
12093	* decl2.c (get_guard): Add missing return for old ABI local
12094	variable case.
12095
120962000-07-09  Mark Mitchell  <mark@codesourcery.com>
12097
12098	* cp-tree.h (char_type_p): New function.
12099	* decl.c (init_decl_processing): Don't initialize
12100	signed_wchar_type_node or unsigned_wchar_type_node.
12101	(complete_array_type): Handle brace-enclosed string-constants.
12102	* rtti.c (emit_support_tinfos): Remove #if 0'd code.
12103	* tree.c (char_type_p): New function.
12104	* typeck2.c (digest_init): Use char_type_p.
12105
121062000-07-06  Nathan Sidwell  <nathan@codesourcery.com>
12107
12108	* pt.c (tsubst): Don't layout type, if it's error_mark.
12109
121102000-07-06  Nathan Sidwell  <nathan@codesourcery.com>
12111
12112	* pt.c (instantiate_pending_templates): Reset template level.
12113
121142000-07-05  Jason Merrill  <jason@redhat.com>
12115
12116	* call.c (joust): Don't complain about `operator char *()' beating
12117	`operator const char *() const'.
12118
121192000-07-04  scott snyder  <snyder@fnal.gov>
12120	    Jason Merrill  <jason@redhat.com>
12121
12122	* repo.c (repo_get_id): Handle the case where a class with virtual
12123	bases has a null TYPE_BINFO_VTABLE.
12124
121252000-07-04  Kevin Buhr  <buhr@stat.wisc.edu>
12126	    Jason Merrill  <jason@redhat.com>
12127
12128	* parse.y (member_init): Just pass in the type.
12129	* init.c (expand_member_init): Handle getting a type.
12130
121312000-07-04  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
12132	    Jason Merrill  <jason@redhat.com>
12133
12134	* decl.c (finish_function): Warn if a function has no return
12135	statement.
12136	Suggested by Andrew Koenig.
12137	* typeck.c (check_return_expr): Do set current_function_returns_value
12138	if we got an error_mark_node.
12139
121402000-07-03  Nathan Sidwell  <nathan@codesourcery.com>
12141
12142	* decl2.c (push_decl_namespace): Push the original namespace.
12143
121442000-07-03  Nathan Sidwell  <nathan@codesourcery.com>
12145
12146	* pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES.
12147	* semantics.c (begin_class_definition): Clear it.
12148
121492000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
12150
12151	* cp-tree.h (genrtl_goto_stmt): Remove declaration.
12152	(genrtl_expr_stmt): Likewise.
12153	(genrtl_decl_stmt): Likewise.
12154	(genrtl_if_stmt): Likewise.
12155	(genrtl_while_stmt): Likewise.
12156	(genrtl_do_stmt): Likewise.
12157	(genrtl_return_stmt): Likewise.
12158	(genrtl_for_stmt): Likewise.
12159	(genrtl_break_stmt): Likewise.
12160	(genrtl_continue_stmt): Likewise.
12161	(genrtl_scope_stmt): Likewise.
12162	(genrtl_switch_stmt): Likewise.
12163	(genrtl_case_label): Likewise.
12164	(genrtl_begin_compound_stmt): Likewise.
12165	(genrtl_finish_compound_stmt): Likewise.
12166	(genrtl_compound_stmt): Likewise.
12167	(genrtl_asm_stmt): Likewise.
12168
12169	* init.c (begin_init_stmts): Remove call to
12170	genrtl_begin_compound_stmt.
12171	(finish_init_stmts): Remove call to genrtl_finish_compound_stmt.
12172
12173	* semantics.c (lang_expand_stmt): Changed call to
12174	genrtl_compound_stmt to ignore return value.
12175
121762000-07-02  Mark Mitchell  <mark@codesourcery.com>
12177
12178	* mangle.c (canonicalize_for_substitution): Return the canonical
12179	variant of a type.
12180
12181	* decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a
12182	TYPE_DECL.
12183	* typeck.c (commonparms): Remove obstack manipulations.
12184
121852000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
12186
12187	* Make-lang.in (cc1plus$(exeext)): Added c-semantics.o.
12188
12189	* Makefile.in (OBJS): Added ../c-semantics.o.
12190	(OBJDEPS): Likewise.
12191
12192	* cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to
12193	../c-common.h.
12194	(struct stmt_tree): Added comment.
12195	(current_function_name_declared): Removed.
12196	(stmts_are_full_exprs_p): Likewise.
12197	(genrtl_do_pushlevel): Likewise.
12198	(genrtl_clear_out_block): Likewise.
12199	(COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h.
12200	(DECL_ANON_UNION_ELEMS): Likewise.
12201	(emit_local_var): Likewise.
12202	(make_rtl_for_local_static): Likewise.
12203	(do_case): Likewise.
12204	(expand_stmt): Likewise.
12205	(genrtl_decl_cleanup): Likewise.
12206	(c_expand_asm_operands): Likewise.
12207	(c_expand_return): Likewise.
12208	(c_expand_start_case): Likewise.
12209
12210	* decl.c (make_rtl_for_local_static): Moved to c-semantics.c.
12211	(emit_local_var): Likewise.
12212	(initialize_local_var): Change reference to
12213	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
12214	Change reference to stmts_are_full_exprs_p to
12215	current_stmt_tree->stmts_are_full_exprs_p.
12216	(push_cp_function_context): Likewise.
12217
12218	* expect.c (expand_throw): Change reference to
12219	stmts_are_full_exprs_p.
12220
12221	* init.c (build_aggr_init): Change reference to
12222	stmts_are_full_exprs_p.
12223	(build_vec_init): Likewise.
12224
12225	* optimize.c (maybe_clone_body): Change reference to
12226	current_function_name_declared to
12227	cp_function_chain->name_declared.
12228
12229	* pt.c (instantiate_decl): Change reference to
12230	current_function_name_declared to
12231	cp_function_chain->name_declared.
12232
12233	* semantics.c (expand_cond): Moved declaration to c-common.h.
12234	(genrtl_do_pushlevel): Moved to c-semantics.c.
12235	(genrtl_clear_out_block): Likewise.
12236	(genrtl_goto_stmt): Likewise.
12237	(genrtl_expr_stmt): Likewise.
12238	(genrtl_decl_stmt): Likewise.
12239	(gerntl_if_stmt): Likewise.
12240	(genrtl_while_stmt): Likewise.
12241	(genrtl_do_stmt): Likewise.
12242	(genrtl_return_stmt): Likewise.
12243	(genrtl_for_stmt): Likewise.
12244	(genrtl_break_stmt): Likewise.
12245	(genrtl_continue_stmt): Likewise.
12246	(genrtl_scope_stmt): Likewise.
12247	(genrtl_switch_stmt): Likewise.
12248	(genrtl_case_label): Likewise.
12249	(genrtl_begin_compound_stmt): Likewise.
12250	(genrtl_finish_compound_stmt): Likewise.
12251	(genrtl_compound_stmt): Likewise.
12252	(genrtl_asm_stmt): Likewise.
12253	(genrtl_decl_cleanup): Likewise.
12254	(expand_cond): Likewise.
12255	(expand_stmt): Renamed to ...
12256	(lang_expand_stmt): ... this.
12257	(lang_expand_expr_stmt): Initialize.
12258	(set_current_function_name_declared): Likewise.
12259	(stmts_are_full_exprs_p): Likewise.
12260	(current_function_name_declared): Likewise.
12261	(anon_aggr_type_p): Likewise.
12262	(do_poplevel): Change reference to
12263	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
12264	Change reference to stmts_are_full_exprs_p to
12265	current_stmt_tree->stmts_are_full_exprs_p.
12266	(add_tree): Likewise.
12267	(finish_expr_stmt): Likewise.
12268	(prep_stmt): Likewise.
12269	(lang_expand_stmt): Likewise.
12270	(begin_compound_stmt): Change reference to
12271	current_function_name_declared to
12272	cp_function_chain->name_declared and call to
12273	current_function_name_declared().
12274	(setup_vtbl_ptr): Likewise.
12275	(genrtl_do_poplevel): Removed.
12276
122772000-06-30  Jason Merrill  <jason@redhat.com>
12278
12279	* init.c (init_init_processing): Go back to aligning like
12280	double_type_node for old ABI.
12281	(get_cookie_size): Make cookie larger if we get a type that needs
12282	more alignment.
12283	(build_vec_delete): Call it.
12284
12285	* typeck.c (qualify_type_recursive): New fn.
12286	(composite_pointer_type): Use it.
12287	(build_binary_op): Use composite_pointer_type.
12288
122892000-06-24  Carlos O'Ryan  <coryan@cs.wustl.edu>
12290	    Jason Merrill  <jason@redhat.com>
12291
12292	* typeck.c (check_return_expr): Don't complain about returning
12293	NULL from operator new if -fcheck-new.
12294	* cp-tree.h: Declare flag_check_new here.
12295	* init.c: Not here.
12296
122972000-06-28  Alex Samuel  <samuel@codesourcery.com>
12298
12299	* mangle.c (find_substitution): Use same_type_p.
12300	(write_encoding): Don't check for substitutions.
12301
123022000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
12303
12304	* parse.y (expr_no_comma_rangle): New non-terminal.
12305	(template_parm): Use it for default parameter case.
12306	(template_arg): Use it.
12307	(expr_no_commas): Remove commented out undefined extensions.
12308	* Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r.
12309	* parse.h, parse.c: Rebuilt.
12310
123112000-06-30  Mark Mitchell  <mark@codesourcery.com>
12312
12313	* semantics.c (genrtl_asm_stmt): Don't decay input operands here.
12314	(finish_asm_stmt): Do it here, instead.
12315
12316	* cp-tree.h (ridpointers): Don't declare.
12317	* decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX.
12318	(record_builtin_java_type): Likewise.
12319	(init_decl_processing): Likewise.
12320	* lex.c: Move inclusion of lex.h.
12321	(ridpointers): Don't define.
12322	(init_parse): Initialize ripdointers.  Use CP_RID_MAX instead of
12323	RID_MAX.
12324	* lex.h (enum rid): Rename to ...
12325	(enum cp_rid): ... this.
12326	(ridpointers): Don't declare.
12327	* parse.y: Move inclusion of lex.h.
12328	* parse.c: Regenerated.
12329	* spew.c: Move inclusion of lex.h.
12330
12331	* cp-tree.h (struct language_function): Remove temp_name_counter.
12332	(temp_name_counter): Remove.
12333	(get_temp_name): Change prototype.
12334	(get_guard): New function.
12335	(get_guard_cond): Likewise.
12336	(set_guard): Likewise.
12337	* cvt.c (build_up_reference): Adjust call to get_temp_name.
12338	* decl.c (expand_static_init): Use get_guard and friends to
12339	implement guard variables.
12340	* decl2.c (get_temp_name): Assume that the variables created are
12341	always static.
12342	(get_sentry): Rename to ...
12343	(get_guard): ... this.  Implement new ABI guard	variables.
12344	(get_guard_bits): New function.
12345	(get_guard_cond): Likewise.
12346	(set_guard): Likewise.
12347	(start_static_initialization_or_destruction): Use them.
12348	(do_static_initialization): Replace sentry with guard throughout.
12349	(do_static_destruction): Likewise.
12350	* init.c (create_temporary_var): Add comment.
12351
123522000-06-28  Alex Samuel  <samuel@codesourcery.com>
12353
12354	* mangle.c (find_substitution): Use same_type_p.
12355	(write_encoding): Don't check for substitutions.
12356
123572000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
12358
12359	* parse.y (expr_no_comma_rangle): New non-terminal.
12360	(template_parm): Use it for default parameter case.
12361	(template_arg): Use it.
12362	(expr_no_commas): Remove commented out undefined extensions.
12363	* Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r.
12364	* parse.h, parse.c: Rebuilt.
12365
123662000-06-29  Mark Mitchell  <mark@codesourcery.com>
12367
12368	* cp-tree.h (flag_const_strings): Remove.
12369	(warn_parentheses): Likewise.
12370	(warn_format): Likewise.
12371	(common_type): Likewise.
12372	(default_conversion): Likewise.
12373	(build_binary_op): Likewise.
12374	(cp_build_binary_op): New macro.
12375	* call.c (build_new_op): Use cp_build_binary_op instead of
12376	build_binary_op.
12377	* class.c (build_vtable_entry_ref): Likewise.
12378	* decl.c (expand_static_init): Likewise.
12379	(compute_array_index_type): Likewise.
12380	(build_enumerator): Likewise.
12381	* decl2.c (delete_sanity): Likewise.
12382	(start_static_initialization_or_destruction): Likewise.
12383	* error.c (dump_type_suffix): Likewise.
12384	* init.c (resolve_offset_ref): Likewise.
12385	(build_new): Likewise.
12386	(build_new_1): Likewise.
12387	(build_vec_delete_1): Likewise.
12388	(build_vec_init): Likewise.
12389	(build_delete): Likewise.
12390	* rtti.c (synthesize_tinfo_fn): Likewise.
12391	(synthesize_tinfo_var): Likewise.
12392	* search.c (expand_upcast_fixups): Likewise.
12393	(fixup_all_virtual_upcast_offsets): Likewise.
12394	* typeck.c (build_array_ref): Likewise.
12395	(get_member_function_from_ptrfunc): Likewise.
12396	(build_binary_op): Add parameter.
12397	(pointer_int_sum): Use cp_build_binary_op.
12398	(pointer_diff): Likewise.
12399	(build_modify_expr): Likewise.
12400	(get_delta_difference): Likewise.
12401	(build_ptrmemfunc): Likewise.
12402
124032000-06-29  Nathan Sidwell  <nathan@codesourcery.com>
12404
12405	* cp-tree.h (SET_DECL_ARTIFICIAL): Remove.
12406	* decl.c (create_implicit_typedef): Adjust.
12407	* decl2.c (build_artificial_parm): Adjust.
12408	* method.c (implicitly_declare_fn): Adjust.
12409	* pt.c (push_inline_template_parms_recursive): Adjust.
12410	(process_template_parm): Adjust.
12411	(overloaded_template_name): Adjust.
12412	* semantics.c (finish_template_template_parm): Adjust.
12413
124142000-06-28  Mark Mitchell  <mark@codesourcery.com>
12415
12416	* cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove.
12417	* class.c (update_vtable_entry_for_fn): Correct logic for deciding
12418	where to emit thunks.
12419	(build_vtt): Adjust call to build_vtt_inits.
12420	(build_vtt_inits): Add parameter to indicate whether or not
12421	sub-VTTs for virtual bases should be included.  Adjust handling of
12422	construction vtables.
12423	(get_matching_base): New function.
12424	(dfs_build_vtt_inits): Rename to ...
12425	(dfs_build_secondary_vptr_vtt_inits): Adjust handling of
12426	construction vtables.
12427	(dfs_fixup_binfo_vtbls): Likewise.
12428	(build_ctor_vtbl_groups): Build construction vtables for virtual
12429	bases, too.
12430	(accumulate_vtbl_inits): Tweak logic for deciding whether or not
12431	to build construction vtbls.
12432	(dfs_accumulate_vtbl_inits): Adjust handling of
12433	construction vtables.
12434
12435	* pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified
12436	types correctly.
12437
124382000-06-27  Mark Mitchell  <mark@codesourcery.com>
12439
12440	* decl.c (grokfndecl): Set DECL_CONTEXT for static functions too.
12441
124422000-06-26  Nathan Sidwell  <nathan@codesourcery.com>
12443
12444	* search.c (hides): Remove.
12445	(is_subobject_of_p): Add most_derived parameter. Use
12446	CANONICAL_BINFO.
12447	(lookup_field_queue_p): Adjust.
12448	(lookup_field_r): Adjust.
12449
124502000-06-26  Nathan Sidwell  <nathan@codesourcery.com>
12451
12452	* decl2.c (handle_class_head): Bash typedefs to the type's main
12453	decl.
12454
124552000-06-25  Mark Mitchell  <mark@codesourcery.com>
12456
12457	* cp-tree.h (genrtl_begin_stmt_expr): Rename to ...
12458	(begin_global_stmt_expr): ... this.
12459	(genrtl_finish_stmt_expr): Rename to ...
12460	(finish_global_stmt_expr): ... this.
12461	* init.c (begin_init_stmts): Adjust calls.
12462	(finish_init_stmts): Likewise.
12463	* semantics.c (genrtl_begin_stmt_expr): Rename to ...
12464	(begin_global_stmt_expr): ... this.
12465	(genrtl_finish_stmt_expr): Rename to ...
12466	(finish_global_stmt_expr): ... this.
12467
124682000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
12469
12470	* search.c (lookup_member): Fix typo in comment.
12471
124722000-06-24  Jason Merrill  <jason@redhat.com>
12473
12474	* decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace.
12475	(push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL.
12476
124772000-06-24  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
12478
12479	* parse.y (complex_direct_notype_declarator): Support global_scope.
12480	* Makefile.in: Adjust conflict count.
12481
124822000-06-23  Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
12483
12484	* parse.y (template_arg): Convert TEMPLATE_DECL
12485	that is a template template parameter to
12486	TEMPLATE_TEMPLATE_PARM here.
12487
12488	* cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment.
12489	* cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro.
12490	(copy_template_template_parm): Adjust prototype.
12491	* decl.c (grokdeclarator): Remove dead code.
12492	* pt.c (process_template_parm): Tidy.
12493	(lookup_template_class): Construct nodes in
12494	copy_template_template_parm.
12495	(tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to
12496	lookup_template_class.  Use TYPE_TI_TEMPLATE.
12497	* tree.c (copy_template_template_parm): Add NEWARGS
12498	parameter.
12499	(mapcar): Adjust call to copy_template_template_parm.
12500	* typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.
12501	* method.c (build_template_template_parm_names): Change error
12502	code to avoid compilation warning.
12503
12504	* gxxint.texi: Document template template parameter
12505	name mangling.
12506
125072000-06-21  Alex Samuel  <samuel@codesourcery.com>
12508
12509	* Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o.
12510	(CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c.
12511	(cp-demangle.o): New rule.
12512	(dyn-string.o): Likewise.
12513	* inc/cxxabi.h (__cxa_demangle): New declaration.
12514
125152000-06-22  Mark Mitchell  <mark@codesourcery.com>
12516
12517	* cp-tree.h (BV_USE_VCALL_INDEX_P): New macro.
12518	(BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise.
12519	(lang_decl_flags): Add generate_with_vtable_p.  Make vcall_offset
12520	a tree, not an int.
12521	(THUNK_GENERATE_WITH_VTABLE_P): New macro.
12522	(make_thunk): Change prototype.
12523	(emit_thunk): Rename to use_thunk.
12524	(mangle_thunk): Change prototype.
12525	* class.c (get_derived_offset): Simplify.
12526	(copy_virtuals): Clear BV_USE_VCALL_INDEX_P and
12527	BV_GENERATE_THUNK_WITH_VTABLE_P.
12528	(build_primary_vtable): Simplify.
12529	(add_virtual_function): Use BV_FN, rather than TREE_VALUE.
12530	(dfs_find_base): Remove.
12531	(update_vtable_entry_for_fn): Correct bug in finding the base
12532	where a virtual function was first declared.  Figure out whether
12533	or not to emit a vcall-thunk with the vtables in which it appears.
12534	Correct logic for deciding whether to use an ordinary thunk, or a
12535	vcall thunk.
12536	(finish_struct_1): Remove unnecssary code.
12537	(build_vtbl_initializer): Use ssize_int for the running counter of
12538	negative indices.
12539	(build_vtbl_initializer): Only use vcall thunks where necessary.
12540	Mark thunks as needing to be emitted with their vtables, or not.
12541	(build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in
12542	indices.  Use size_binop.
12543	(dfs_build_vcall_offset_vtbl_entries): Don't rely on
12544	BINFO_PRIMARY_MARKED_P here.  Use BV_FN consistently.  Use
12545	size_binop.
12546	(build_rtti_vtbl_entries): Adjust call to build_vtable_entry.
12547	(build_vtable_entry): Mark thunks as needing to be emitted with
12548	their vtables, or not.
12549	* decl.c (lang_mark_tree): Mark the vcall_offset in a thunk.
12550	* decl2.c (mark_vtable_entries): Use use_thunk instead of
12551	emit_thunk.
12552	* dump.c (dequeue_and_dump): Remove dead code.  Dump new thunk
12553	information.
12554	* error.c (dump_expr): Use BV_FN.
12555	* mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree,
12556	not an int.
12557	* method.c (make_thunk): Likewise.
12558	(emit_thunk): Rename to use_thunk.  Allow callers to decide
12559	whether or not to actually emit the thunk.  Adjust for changes in
12560	representation of vcall offsets.
12561	* search.c (dfs_get_pure_virtuals): Use BV_FN.
12562	* semantics.c (emit_associated_thunks): New function.
12563	(expand_body): Use it.
12564	* ir.texi: Adjust decriptions of thunks.
12565
125662000-06-22  Jason Merrill  <jason@redhat.com>
12567
12568	* pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE.
12569	(tsubst_friend_function): Copy it here.
12570
12571	* decl.c (grok_op_properties): Fix typo.
12572
12573	* decl2.c (delete_sanity): Clarify warning, avoid failure on
12574	deleting void*.
12575
12576	* pt.c (check_explicit_specialization): Clarify error.
12577
12578	* decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from
12579	an old OVERLOAD when we're declaring a non-function.
12580	(pushdecl, destroy_local_var): Check for error_mark_node.
12581	(warn_extern_redeclared_static): Also bail early if
12582	we're a CONST_DECL.
12583	(push_overloaded_decl): Ignore an old error_mark_node.
12584
125852000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
12586
12587	* call.c (build_x_va_arg): Check if in a template decl.
12588	* pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg.
12589
125902000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12591
12592	* class.c (push_lang_context): TYPE_NAME gets you to the Java
12593	types DECLs.
12594	* decl.c (check_goto): Computed gotos assumed OK.
12595
125962000-06-20  Jason Merrill  <jason@redhat.com>
12597
12598	* pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs
12599	for which we don't need to look for instantiations.
12600
126012000-06-21  Nathan Sidwell  <nathan@codesourcery.com>
12602
12603	* parse.y (program): Always call finish_translation_unit.
12604	* parse.c, parse.h: Rebuilt.
12605
126062000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
12607
12608	* method.c: Don't include hard-reg-set.h.
12609
126102000-06-20  Nathan Sidwell  <nathan@codesourcery.com>
12611
12612	* rtti.c (get_base_offset): Cope when vbase field is in a base.
12613
126142000-06-20  Nathan Sidwell  <nathan@codesourcery.com>
12615
12616	* call.c (build_conditional_expr): Use VOID_TYPE_P.
12617	* cvt.c (cp_convert_to_pointer): Likewise.
12618	(convert_to_void): Likewise.
12619	* error.c (dump_expr): Likewise.
12620	* except.c (complete_ptr_ref_or_void_ptr_p): Likewise.
12621	* init.c (build_delete): Likewise.
12622	* method.c (emit_thunk): Likewise.
12623	* optmize.c (declare_return_variable): Likewise.
12624	* rtti.c (get_tinfo_decl_dynamic): Likewise.
12625	(get_typeid): Likewise.
12626	(build_dynamic_cast_1): Likewise.
12627	* typeck.c (composite_pointer_type): Likewise.
12628	(common_type): Likewise.
12629	(build_indirect_ref): Likewise.
12630	(build_binary_op): Likewise.
12631	(build_x_compound_expr): Likewise.
12632	(check_return_expr): Likewise.
12633	* typeck2.c (add_exception_specifier): Likewise.
12634
12635	* mangle.c (write_method_parms): Use direct comparison for end
12636	of parmlist.
12637
126382000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
12639
12640	* cp-tree.h (genrtl_try_block): Declare function.
12641	(genrtl_handler): Likewise.
12642	(genrtl_catch_block): Likewise.
12643	(genrtl_ctor_stmt): Likewise.
12644	(genrtl_subobject): Likewise.
12645	(genrtl_decl_cleanup): Likewise.
12646	(genrtl_do_poplevel): Likewise.
12647	(genrtl_do_pushlevel): Likewise.
12648	(genrtl_clear_out_block): Likewise.
12649	(genrtl_goto_stmt): Likewise.
12650	(genrtl_expr_stmt): Likewise.
12651	(genrtl_decl_stmt): Likewise.
12652	(genrtl_if_stmt): Likewise.
12653	(genrtl_while_stmt): Likewise.
12654	(genrtl_do_stmt): Likewise.
12655	(genrtl_return_stmt): Likewise.
12656	(genrtl_for_stmt): Likewise.
12657	(genrtl_break_stmt): Likewise.
12658	(genrtl_continue_stmt): Likewise.
12659	(genrtl_scope_stmt): Likewise.
12660	(genrtl_switch_stmt): Likewise.
12661	(genrtl_case_label): Likewise.
12662	(genrtl_begin_compound_stmt): Likewise.
12663	(genrtl_finish_compound_stmt): Likewise.
12664	(genrtl_compound_stmt): Likewise.
12665	(genrtl_asm_stmt): Likewise.
12666	(genrtl_named_return_value): Likewise.
12667	(genrtl_begin_stmt_expr): Likewise.
12668	(genrtl_finish_stmt_expr): Likewise.
12669	(finish_for_stmt): Removed first argument.
12670	(finish_switch_stmt): Likewise.
12671
12672	* semantics.c (genrtl_try_block): Define function.
12673	(genrtl_handler): Likewise.
12674	(genrtl_catch_block): Likewise.
12675	(genrtl_ctor_stmt): Likewise.
12676	(genrtl_subobject): Likewise.
12677	(genrtl_decl_cleanup): Likewise.
12678	(genrtl_do_poplevel): Likewise.
12679	(genrtl_do_pushlevel): Likewise.
12680	(genrtl_clear_out_block): Likewise.
12681	(genrtl_goto_stmt): Likewise.
12682	(genrtl_expr_stmt): Likewise.
12683	(genrtl_decl_stmt): Likewise.
12684	(genrtl_if_stmt): Likewise.
12685	(genrtl_while_stmt): Likewise.
12686	(genrtl_do_stmt): Likewise.
12687	(genrtl_return_stmt): Likewise.
12688	(genrtl_for_stmt): Likewise.
12689	(genrtl_break_stmt): Likewise.
12690	(genrtl_continue_stmt): Likewise.
12691	(genrtl_scope_stmt): Likewise.
12692	(genrtl_switch_stmt): Likewise.
12693	(genrtl_case_label): Likewise.
12694	(genrtl_begin_compound_stmt): Likewise.
12695	(genrtl_finish_compound_stmt): Likewise.
12696	(genrtl_compound_stmt): Likewise.
12697	(genrtl_asm_stmt): Likewise.
12698	(genrtl_named_return_value): Likewise.
12699	(genrtl_begin_stmt_expr): Likewise.
12700	(genrtl_finish_stmt_expr): Likewise.
12701	(finish_for_stmt): Removed first argument and generate rtl
12702	specific code.
12703	(finish_switch_stmt): Likewise.
12704	(do_poplevel): Removed generate rtl specific code.
12705	(do_pushlevel): Likewise.
12706	(add_tree): Likewise.
12707	(finish_goto_stmt): Likewise.
12708	(finish_expr_stmt): Likewise.
12709	(begin_if_stmt): Likewise.
12710	(finish_if_stmt_cond): Likewise.
12711	(finish_then_clause): Likewise.
12712	(begin_else_clause): Likewise.
12713	(finish_else_clause): Likewise.
12714	(finish_if_stmt): Likewise.
12715	(clear_out_block): Likewise.
12716	(begin_while_stmt): Likewise.
12717	(finish_while_stmt_cond): Likewise.
12718	(finish_while_stmt): Likewise.
12719	(begin_do_stmt): Likewise.
12720	(finish_do_body): Likewise.
12721	(finish_do_stmt): Likewise.
12722	(finish_return_stmt): Likewise.
12723	(begin_for_stmt): Likewise.
12724	(finish_for_init_stmt): Likewise.
12725	(finish_for_cond): Likewise.
12726	(finish_for_expr): Likewise.
12727	(finish_break_stmt): Likewise.
12728	(finish_continue_stmt): Likewise.
12729	(begin_switch_stmt): Likewise.
12730	(finish_switch_cond): Likewise.
12731	(finish_case_label): Likewise.
12732	(begin_try_block): Likewise.
12733	(begin_function_try_block): Likewise.
12734	(finish_try_block): Likewise.
12735	(finish_cleanup_try_block): Likewise.
12736	(finish_cleanup): Likewise.
12737	(finish_function_try_block): Likewise.
12738	(finish_handler_sequence): Likewise.
12739	(finish_function_handler_sequence): Likewise.
12740	(begin_handler): Likewise.
12741	(finish_handler_parms): Likewise.
12742	(begin_catch_block): Likewise.
12743	(finish_handler): Likewise.
12744	(begin_compound_stmt): Likewise.
12745	(finish_compound_stmt): Likewise.
12746	(finish_asm_stmt): Likewise.
12747	(finish_label_stmt): Likewise.
12748	(finish_label_decl): Likewise.
12749	(finish_subobject): Likewise.
12750	(finish_decl_cleanup): Likewise.
12751	(finish_named_return_value): Likewise.
12752	(begin_stmt_expr): Likewise.
12753	(finish_stmt_expr): Likewise.
12754
12755	* decl.c (initialize_local_var): Changed call to finish_expr_stmt
12756	to call genrtl_expr_stmt when appropriate.
12757
12758	* init.c (begin_init_stmts): Changed calls to begin_stmt_expr and
12759	begin_compound_expr to call genrtl_begin_stmt_expr and
12760	genrtl_begin_compound_expr when appropriate.
12761	(finish_init_stmts): Changed calls to finish_compound_expr and
12762	finish_stmt_expr to call genrtl_finish_compound_expr and
12763	genrtl_finish_stmt_expr when appropriate.
12764	(expand_default_init): Changed call to finish_expr_stmt to call
12765	genrtl_expr_stmt when appropriate.
12766	(build_vec_init): Likewise.
12767
12768	* parse.y (simple_stmt): Removed first argument from call to
12769	finish_for_stmt. Removed first argument from call to
12770	finish_switch_stmt.
12771
12772	* parse.c: Regenerated.
12773
12774	* pt.c (tsubst_expr): Removed first argument from call to
12775	finish_for_stmt. Removed first argument from call to
12776	finish_switch_stmt.
12777
127782000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
12779
12780	* cp-tree.h (enum cplus_tree_code): Changed __DUMMY to
12781	CP_DUMMY_TREE_CODE. Remove #include "c-common.def".
12782
12783	* lex.c (cplus_tree_code_type[]): Removed #include "c-common.def".
12784	(cplus_tree_code_length[]): Likewise.
12785	(cplus_tree_code_name[]): Likewise.
12786	(init_parse): Added call to add_c_tree_codes. Changed
12787	LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE.
12788
127892000-06-16  Mark Mitchell  <mark@codesourcery.com>
12790
12791	* cp-tree.h (finish_mem_initializers): Declare.
12792	(count_trees): Likewise.
12793	* parse.y (base_init): Use finish_mem_initializers.
12794	* semantics.c (finish_mem_initializers): New function.
12795
12796	* tree.c (count_trees_r): Prototype.  Use DATA parameter to store
12797	the number of trees.
12798	(n_trees): Remove.
12799	(count_trees): Don't use it.
12800
128012000-06-15  Jason Merrill  <jason@redhat.com>
12802
12803	* tree.c (count_trees): New debugging function.
12804
12805	* typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P.
12806	* init.c (build_member_call): Pull out the name of a DECL.
12807
12808	* Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H.
12809	* semantics.c (expand_body): Push to TV_INTEGRATION here.
12810	* optimize.c (optimize_function): Not here.
12811	* pt.c (instantiate_decl): Push to TV_PARSE.
12812
128132000-06-15  Mark Mitchell  <mark@codesourcery.com>
12814
12815	* cp-tree.h (struct language_function): Remove x_base_init_list
12816	and x_member_init_list.
12817	(current_base_init_list): Remove.
12818	(current_member_init_list): Likewise.
12819	(setup_vtbl_ptr): Change prototype.
12820	(emit_base_init): Likewise.
12821	(expand_member_init): Likewise.
12822	(reinit_parse_for_function): Remove.
12823	* decl.c (save_function_data): Don't clear x_base_init_list and
12824	x_member_init_list.
12825	(mark_language_function): Don't mark them.
12826	* init.c (perform_member_init): Tweak comment.
12827	(sort_member_init): Take the list of initializers as an argument.
12828	(sort_base_init): Likewise.
12829	(emit_base_init): Likewise.
12830	(expand_member_init): Return the initializer.  Don't use global
12831	variables.
12832	* lex.c (reinit_parse_for_function): Remove.
12833	* method.c (build_template_parm_names): Correct substitution.
12834	(do_build_copy_constructor): Don't use current_member_init_list
12835	and current_base_init_list.
12836	(synthesize_method): Likewise.
12837	* parse.y (base_init): Split mem-initializers into
12838	base-initializers and field-initializers.
12839	(member_init_list): Build up the list here.
12840	(member_init): Return the initializer.
12841	(fn.depfn): Don't use reinit_parse_for_function.
12842	* parse.c: Regenerated.
12843	* pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the
12844	ERROR_MARK.
12845	(tsubst_expr): Don't use current_member_init_list
12846	and current_base_init_list.
12847	(tsubst_expr_values): Rename to ...
12848	(tsubst_initializer_list): ... this.  Use convert_from_reference.
12849	* semantics.c (setup_vtbl_ptr): Don't use current_member_init_list
12850	and current_base_init_list.
12851	(begin_function_definition): Don't call reinit_parse_for_function.
12852
12853	* dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors.
12854
12855	* error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE
12856	correctly.
12857
12858	* cp-tree.h (DECL_PENDING_INLINE_P): Relax checking.
12859
128602000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
12861
12862	* cp-tree.h (IF_COND): Move to c-common.h.
12863	(THEN_CLAUSE): Likewise.
12864	(ELSE_CLAUSE): Likewise.
12865	(WHILE_COND): Likewise.
12866	(WHILE_BODY): Likewise.
12867	(DO_COND): Likewise.
12868	(DO_BODY): Likewise.
12869	(RETURN_EXPR): Likewise.
12870	(EXPR_STMT_EXPR): Likewise.
12871	(FOR_INIT_STMT): Likewise.
12872	(FOR_COND): Likewise.
12873	(FOR_EXPR): Likewise.
12874	(FOR_BODY): Likewise.
12875	(SWITCH_COND): Likewise.
12876	(SWITCH_BODY): Likewise.
12877	(CASE_LOW): Likewise.
12878	(CASE_HIGH): Likewise.
12879	(GOTO_DESTINATION): Likewise.
12880	(COMPOUND_BODY): Likewise.
12881	(ASM_CV_QUAL): Likewise.
12882	(ASM_STRING): Likewise.
12883	(ASM_OUTPUTS): Likewise.
12884	(ASM_INPUTS): Likewise.
12885	(ASM_CLOBBERS): Likewise.
12886	(DECL_STMT_DECL): Likewise.
12887	(STMT_EXPR_STMT): Likewise.
12888	(LABEL_STMT_LABEL): Likewise.
12889	(SCOPE_BEGIN_P): Likewise.
12890	(SCOPE_END_P): Likewise.
12891	(SCOPE_STMT_BLOCK): Likewise.
12892	(SCOPE_NULLIFIED_P): Likewise.
12893	(SCOPE_NO_CLEANUPS_P): Likewise.
12894	(SCOPE_PARTIAL_P): Likewise.
12895	(ASM_VOLATILE_P): Likewise.
12896	(STMT_LINENO): Likewise.
12897	(STMT_LINENO_FOR_FN_P): Likewise.
12898
12899	* cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
12900	ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
12901	FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
12902	CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
12903	SCOPE_STMT, CASE_LABEL, STMT_EXPR.
12904
12905	* Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def.
12906
12907	* Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def.
12908	(cc1plus$(exeext)): Added $(srcdir)/c-common.def.
12909
12910	* lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'.
12911	(cplus_tree_code_length[]): Added '#include "c-common.def"'.
12912	(cplus_tree_code_name[]): Added '#include "c-common.def"'.
12913
129142000-06-14  Mark Mitchell  <mark@codesourcery.com>
12915
12916	* cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro.
12917	* class.c (dfs_find_final_overrider): Set it appropriately.
12918	(dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to
12919	avoid unneeded secondary vptrs.
12920
129212000-06-13  Jakub Jelinek  <jakub@redhat.com>
12922
12923	* class.c (build_secondary_vtable): Set DECL_USER_ALIGN.
12924	(check_bitfield_decl, check_field_decl): Likewise.
12925	(build_vtbl_or_vbase_field, build_base_field): Likewise.
12926	(layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN.
12927	* decl.c (record_unknown_type): Set TYPE_USER_ALIGN.
12928	(xfer_tag, finish_enum): Likewise.
12929	* decl2.c (finish_builtin_type): Likewise.
12930	* init.c (init_init_processing): Likewise.
12931	* pt.c (instantiate_class_template): Likewise.
12932	* rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN.
12933	* cp-tree.h (struct lang_type): Add user_align member.
12934	(CLASSTYPE_USER_ALIGN): Define.
12935
12936Tue Jun 13 15:48:03 2000  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12937
12938	* Make-lang.in (c++.install-common): Install g++-cross in
12939	$(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as
12940	$(target_alias)-g++ and $(target_alias)-c++.
12941
129422000-06-12  Mark Mitchell  <mark@codesourcery.com>
12943
12944	* class.c (vcall_offset_data_s): Add last_init and fns.
12945	(overrides): Rename to same_signature_p.
12946	(dfs_find_final_overrider): Adjust accordingly.
12947	(mark_overriders): Likewise.
12948	(warn_hidden): Likewise.
12949	(build_vtbl_initializer): Reorganize machinery for building things
12950	at negative offsets.
12951	(build_vcall_and_vbase_vtbl_entries): Likewise.
12952	(build_vbase_offset_vtbl_entries): Likewise.
12953	(dfs_build_vcall_offset_vtbl_entries): Correct order of vcall
12954	offset entries.  Do not create two entries for functions with the
12955	same signature.
12956	(build_vcall_offset_vtbl_entries): Initialize vod->fns.
12957	(build_rtti_vtbl_entries): Reorganize machinery for building things
12958	at negative offsets.
12959
12960	* optimize.c (expand_call_inline): Don't recurse into the code
12961	used to initialize the parameters more than once.
12962
129632000-06-11  Mark Mitchell <mark@codesourcery.com>
12964
12965	* mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment.
12966	(is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here.
12967	(find_substitution): Only use the `Sa' substitution for
12968	std::allocator, not instantiations of it.
12969	(write_template_prefix): Move comment.  Only use a TREE_LIST to
12970	represent substitutions for a member template.
12971	(write_array_type): Mangle array dimensions correctly.
12972	* optimize.c (maybe_clone_body): Copy more information from the
12973	cloned function.
12974	* pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE
12975	on the regenerated declaration.
12976
129772000-06-11  Chip Salzenberg  <chip@valinux.com>
12978	    Mark Mitchell <mark@codesourcery.com>
12979
12980	* class.c (build_vtable): Clarify comment.
12981	(build_ctor_vtbl_group): Pass the most derived type to
12982	build_vtable.
12983
129842000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12985
12986	* decl2.c (compare_options): Don't needlessly cast away const-ness.
12987
129882000-06-10  Mark Mitchell  <mark@codesourcery.com>
12989
12990	* decl.c (add_binding): Handle duplicate declarations of external
12991	variables.
12992
129932000-06-09  Chip Salzenberg  <chip@valinux.com>
12994	    Mark Mitchell <mark@codesourcery.com>
12995
12996	* mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an
12997	argument.
12998	(write_signed_number): New macro.
12999	(write_unsigned_number): Likewise.
13000	(write_source_name): Use them.
13001	(write_number): Handle signed and unsigned values.
13002	(write_integer_cst): Use tree_int_cst_sgn, and use
13003	write_unsigned_number or write_signed_number as appropriate.
13004	(write_discriminator): Use write_unsigned_number or
13005	write_signed_number as appropriate.
13006	(write_template_arg_literal): Likewise.
13007	(write_array_type): Use tree_low_cst.
13008	(write_template_parm):  Use write_unsigned_number or
13009	write_signed_number as appropriate.
13010	(write_substitution): Adjust call to write_number.
13011	(write_type): Get the TYPE_MAIN_VARIANT before mangling it.
13012	(write_expression): Handle non-type template arguments of
13013	reference type correctly.
13014	(mangle_thunk): Use write_signed_number.
13015
130162000-06-09  Chip Salzenberg  <chip@valinux.com>
13017
13018	* mangle.c (find_substition): Don't mangle objects with typename
13019	substitutions (e.g. "cin" as "Si").
13020
130212000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
13022
13023	* call.c (add_candidate): Use ggc_alloc_cleared.
13024	* decl.c (lookup_label): Likewise.
13025	* lex.c (retrofit_lang_decl): Likewise.
13026
130272000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
13028
13029	* semantics.c (expand_body): Push to TV_EXPAND.
13030	* optimize.c (optimize_function): Push to TV_INTEGRATION.
13031	* decl.c (start_function): Always call announce_function.
13032
13033	* tinfo2.cc: Just declare abort.
13034
130352000-06-09  Gabriel Dos Reis  <gdr@codesourcery.com>
13036
13037	* lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @'
13038	whenever @ is a symbolic name.
13039
130402000-06-08  Jakub Jelinek  <jakub@redhat.com>
13041
13042	* method.c (make_thunk): Clear DECL_VTT_PARM in thunk.
13043
130442000-06-07  Mark Mitchell  <mark@codesourcery.com>
13045
13046	* decl.c (pushdecl): Look up functions by DECL_NAME, not
13047	DECL_ASSEMBLER_NAME.
13048
130492000-06-06  Mark Mitchell  <mark@codesourcery.com>
13050
13051	* decl2.c (c_language): Define.
13052
130532000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
13054
13055	* lex.c (lang_init_options): Tweak.
13056
13057	* decl2.c: Remove #inclusion of diagnostic.h
13058	(lang_decode_option): Move diagnostic formatting options to
13059	toplevel.
13060
13061	* lang-options.h: Remove documentation for diagnostic options.
13062
13063	* Makefile.in (lex.o): Depends upon diagnostic.h
13064
130652000-06-06  Mark Mitchell  <mark@codesourcery.com>
13066
13067	* decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have
13068	the same DECL_RESULT, it's not a redefinition.
13069	* pt.c (tsubst_decl): Remove code to handle illegal
13070	specializations.
13071
130722000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
13073
13074	* exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c
13075
130762000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
13077
13078	* search.c (maybe_suppress_debug_info): Don't check
13079	CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set.
13080
13081	* pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION
13082	here if extern_p.
13083
13084	Remember instantiation context in deferred instantiations.
13085	* cp-tree.h (struct tinst_level): Remove.
13086	(TINST_DECL, TINST_LINE, TINST_FILE): New macros.
13087	* pt.c (current_tinst_level): Now a tree.
13088	(print_template_context, push_tinst_level, pop_tinst_level,
13089	tinst_for_decl): Adjust.
13090	(reopen_tinst_level): New fn.
13091	(init_pt): Register current_tinst_level as a root.
13092	(add_pending_template): Put current_tinst_level in TREE_PURPOSE
13093	of the pending templates list.
13094	(instantiate_pending_templates): Adjust.  Call reopen_tinst_level.
13095	* lex.c (extract_interface_info): Adjust.
13096	* decl2.c (warn_if_unknown_interface): Adjust.
13097
130982000-06-05  Mark Mitchell  <mark@codesourcery.com>
13099
13100	* class.c (indirect_primary_base_p): New function.
13101	(determine_primary_base): Use it.
13102
131032000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
13104
13105	Update new-abi dynamic cast algorithm.
13106	* tinfo.cc (__class_type_info::__dyncast_result): Add
13107	whole_details. Adjust constructor.
13108	(__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags.
13109	Avoid unnecessary searching.
13110	(__dynamic_cast): Adjust for __dyncast_result::whole_details.
13111
13112Mon Jun  5 06:48:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13113
13114	* decl.c (init_decl_processing): Don't call record_component_aliases.
13115	* tree.c (build_cplus_array_type_1): Likewise.
13116
131172000-06-04  Mark Mitchell  <mark@codesourcery.com>
13118
13119	* ir.texi: Correct typo.
13120	* mangle.c (write_expression): Handle non-type template arguments
13121	with reference type.
13122	* method.c (build_overload_value): Likewise.
13123	* pt.c (convert_nontype_argument): Explicitly represent conversion
13124	to a reference with an ADDR_EXPR.
13125	(unify): Always unify arguments in left-to-right order.
13126
131272000-06-03  Alex Samuel    <samuel@codesourcery.com>
13128	    Mark Mitchell  <mark@codesourcery.com>
13129
13130	* Make-lang.in (CXX_SRCS): Add mangle.c.
13131	* Makefile.in (CXX_OBJS): Add mangle.o.
13132	(mangle.o): New rule.
13133
13134	* class.c (local_classes): New variable.
13135	* class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI.
13136	(get_vtt_name): Use mangle_vtt_name for new ABI.
13137	(init_class_processing): Initialize local_classes.
13138	(build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI.
13139	* cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER.
13140	(std_identifier): New macro.
13141	(DECL_VOLATILE_MEMFUNC_P): New macro.
13142	(DECL_NAMESPACE_STD_P): Likewise.
13143	(local_classes): Declare.
13144	(get_mostly_instantiated_function_type): Declare.
13145	(init_mangle): Declare.
13146	(mangle_decl): Likewise.
13147	(mangle_type_string): Likewise.
13148	(mangle_type): Likewise.
13149	(mangle_typeinfo_for_type): Likewise.
13150	(mangle_typeinfo_string_for_type): Likewise.
13151	(mangle_vtbl_for_type): Likewise.
13152	(mangle_vtt_for_type): Likewise.
13153	(mangle_ctor_vtbl_for_type): Likewise.
13154	(mangle_thunk): Likewise.
13155	(mangle_conv_op_name_for_type): Likewise.
13156	(mangle_guard_variable): Likewise.
13157	* decl.c (pushtag): Keep track of local classes.
13158	(initialize_predefined_identifiers): Initialize std_identifier.
13159	(init_decl_processing): Use std_identifier.
13160	(start_decl): Don't treat instantiations as specializations.
13161	(grokdeclarator): Likewise.
13162	(grokvardecl): Call mangle_decl for new ABI.  Only set mangled
13163	name for fully-instantiated templates.
13164	* decl2.c (grokclassfn): Use set_mangled_name_for_decl for
13165	destructors with the new ABI.
13166	(finish_static_data_member_decl): Use mangle_decl under the new ABI.
13167	(grokfield): Use mangle_type for new ABI.
13168	(grokoptypename): Use mangle_conv_op_for_type for new ABI.
13169	(get_sentry): Use mangle_guard_variable for new ABI.
13170	(start_static_initialization_or_destruction): Likewise.
13171	* expr.c (extract_aggr_init): Remove.
13172	(extract_scalar_init): Likewise.
13173	(extract_init): Remove #if 0'd code.
13174	* mangle.c: New function.
13175	* method.c (build_mangled_name): Assert not flag_new_abi.
13176	(build_static_name): Likewise.
13177	(build_decl_overload_real): Likewise.
13178	(build_typename_overload): Likewise.
13179	(build_overload_with_type): Likewise.
13180	(build_overload_name): Likewise.
13181	(get_ctor_vtbl_name): Likewise.
13182	(start_squangling): Likewise.
13183	(get_id_2): Likewise.
13184	(set_mangled_name_for_decl): Call mangle_decl for new ABI.
13185	(init_method): Call init_mangle for new ABI.
13186	(make_thunk): Call mangle_thunk for new ABI.
13187	* operators.def: Correct new ABI manglings for the `%' operator.
13188	Add `::' operator.
13189	* pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and
13190	DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL.
13191	(lookup_template_class): Call mangle_decl for new ABI.
13192	(get_mostly_instantiated_function_type): New function.
13193	(set_mangled_name_for_template_decl): Use it.
13194	(tsubst_decl): Use set_mangled_name_for_decl for destructors with
13195	the new ABI.  Use mangle_conv_op_name_for_type for instantiated
13196	conversion op names.
13197	* rtti.c (tinfo_name): Call mangle_type_string for new ABI.
13198	(get_tinfo_decl): Call mangle_typeinfo_for_type for new	ABI.
13199	(tinfo_base_init):  Likewise.  Mangle typeinfo string name with
13200	mangle_typeinfo_string_for_type.
13201
132022000-06-03  Mark Mitchell  <mark@codesourcery.com>
13203
13204	* cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment.
13205	(INNERMOST_TEMPLATE_ARGS): New macro.
13206	(innermost_args): Remove.
13207	(get_innermost_template_args): New function.
13208	* decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS.
13209	* error.c (dump_function_decl): Be caution when using
13210	most_general_template.
13211	* method.c (build_template_parm_names):  Use
13212	INNERMOST_TEMPLATE_ARGS.
13213	* pt.c (add_to_template_args): Tidy comment
13214	(get_innermost_template_args): New function.
13215	(check_explicit_specialization): Clear DECL_INITIAL for a new
13216	specialization.
13217	(process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS.
13218	Tidy.
13219	(push_template_decl): Always register specializations of the most
13220	general template.
13221	(convert_template_argument): Use INNERMOST_TEMPLATE_ARGS.
13222	(coerce_template_parms): Likewise.
13223	(lookup_template_class): Likewise.
13224	(innermost_args): Remove.
13225	(tsubst_decl): Use INNERMOST_TEMPLATE_ARGS.
13226	(tsubst_decl): Handle tricky specializations.  Use
13227	get_innermost_template_args.
13228	(instantiate_template): Simplify handling of partial
13229	instantiations.
13230	(get_class_bindings): Use INNERMOST_TEMPLATE_ARGS.
13231	(most_general_template): Reimplement, in a more straightforward
13232	manner.
13233	(regenerate_decl_from_template): Tweak formatting.  Use
13234	TMPL_ARGS_DEPTH for clarity.
13235	(set_mangled_name_for_template_decl): Use INNERMOST_ARGS.
13236
13237	* dump.c (dequeue_and_dump): Dump information about thunks.
13238
132392000-06-01  Richard Henderson  <rth@cygnus.com>
13240
13241	* decl.c (init_decl_processing): Set lang_get_alias_set first thing.
13242
132432000-06-01  Richard Henderson  <rth@cygnus.com>
13244
13245	* decl2.c (unsupported_options): Fix typo, make const.
13246	(lang_decode_option): Fix bsearch argument order.
13247
132482000-06-01  Mark Mitchell  <mark@codesourcery.com>
13249
13250	* init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE
13251	on FIELD_DECLs.
13252
13253Wed May 31 14:09:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13254
13255	* cp-tree.h (c_get_alias_set): Deleted.
13256	* Makefile.in (decl.o): Include ../expr.h.
13257	* decl.c (expr.h): Include.
13258	(init_decl_processing): Call record_component_aliases for arrays.
13259	(grokdeclarator): Likewise.
13260	Set TREE_ADDRESSABLE for fields that aren't bitfields.
13261	* tree.c (build_cplus_array_type_1): Call record_component_aliases.
13262
132632000-05-31  Mark Mitchell  <mark@codesourcery.com>
13264
13265	Remove guiding declaration support.
13266	* cp/cp-tree.h (flag_dump_translation_unit): Make it const.
13267	(flag_guiding_decls): Remove.
13268	* call.c (build_user_type_conversion_1): Remove support for
13269	guiding decls.
13270	(build_new_function_call): Likewise.
13271	(build_new_op): Likewise.
13272	(build_new_method_call): Likewise.
13273	* decl.c (start_function): Likewise.
13274	* friend.c (is_friend): Likewise.
13275	(do_friend): Likewise.
13276	* decl2.c ((flag_dump_translation_unit): Make it const.
13277	(flag_guiding_decls): Remove.
13278	(unsupported_options): New variable
13279	(compare_options): New function.
13280	(lang_decode_option): Use them.
13281
13282	* decl.c (build_cp_library_fn): Set DECL_CONTEXT.
13283
13284	* method.c (mangle_expression): Adjust test for legal expression
13285	operators.
13286
13287	* pt.c (instantiate_decl): Save and restore the local
13288	specializations list.
13289
132902000-05-30  Jason Merrill  <jason@decepticon.cygnus.com>
13291
13292	* decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING.
13293
132942000-05-30  Mark Mitchell  <mark@codesourcery.com>
13295
13296	* call.c (add_template_candidate_real): Handle member template
13297	constructors for classes with virtual bases.
13298	(build_user_type_conversion_1): Use in_charge_arg_for_name.
13299	(build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P.
13300
13301	* ir.texi: Update thunk documentation.
13302
13303	* call.c (joust): Fix handling of overloaded builtin operators.
13304
133052000-05-30  Zack Weinberg  <zack@wolery.cumb.org>
13306
13307	* cp-tree.h (DECL_ANTICIPATED): New macro.
13308	Document new use of DECL_LANG_FLAG_7.
13309	* decl.c (builtin_function): Set DECL_ANTICIPATED on builtins
13310	in the user namespace.
13311	* lex.c (do_identifier): If the identifier's declaration has
13312	DECL_ANTICIPATED on, it has not yet been declared.  But do not
13313	replace it with an ordinary implicit declaration.
13314
13315	* tinfo2.cc: Include stdlib.h.
13316
133172000-05-29  Mark Mitchell  <mark@codesourcery.com>
13318
13319	* cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro.
13320	* class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not
13321	CLASSTYPE_ALIGN.
13322
133232000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
13324
13325	* decl2.c (lang_decode_option): Use skip_leading_substring instead
13326	of plain strncmp.
13327
133282000-05-28  Alexandre Oliva  <aoliva@cygnus.com>
13329
13330	* operators.def (<?): Duplicated, should have been...
13331	(>?): this.  Fixed.
13332
133332000-05-27  Alex Samuel    <samuel@codesourcery.com>
13334	    Mark Mitchell  <mark@codesourcery.com>
13335
13336	* cp-tree.h (ansi_opname): Make it a macro.
13337	(ansi_assopname): Likewise.
13338	(struct lang_decl_flags): Add assignment_operator_p.
13339	(struct lang_decl): Add operator_code.
13340	(DECL_VTT_PARM): Adjust.
13341	(DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an
13342	overloaded operator.
13343	(SET_OVERLOADED_OPERATOR_CODE): New macro.
13344	(DECL_ASSIGNMENT_OPERATOR_P): New macro.
13345	(DECL_ARRAY_DELETE_OPERATOR_P): Adjust.
13346	(opname_tab): Remove.
13347	(assignop_tab): Likewise.
13348	(operator_name_info_t): New type.
13349	(operator_name_info): New variable.
13350	(assignment_operator_name_info): Likewise.
13351	(build_cp_library_fn): Remove declaration.
13352	(push_cp_library_fn): Likewise.
13353	(operator_name_string): Likewise.
13354	(build_decl_overload): Likewise.
13355	* call.c (print_z_candidates): Simplify.
13356	(build_object_call): Adjust usage of ansi_opname.  Use
13357	DECL_OVERLOADED_OPERATOR_P.
13358	(op_error): Adjust operator name lookup.
13359	(build_conditional_expr): Adjust usage of ansi_opname.
13360	(build_new_op): Likewise.
13361	(build_op_delete_call): Likewise.
13362	(build_over_call): Likewise.
13363	(joust): Use DECL_OVERLOADED_OPERATOR_P.
13364	* decl.c (duplicate_decls): Copy operator_code.
13365	(init_decl_processing): Adjust parameters to push_cp_library_fn.
13366	(builtin_function): Adjust parameters to build_library_fn_1.
13367	(build_library_fn_1): Accept an overloaded operator code.
13368	(build_library_fn): Pass ERROR_MARK.
13369	(build_cp_library_fn): Accept an overloaded operator code.
13370	(push_cp_library_fn): Likewise.
13371	(grokfndecl): Tweak.
13372	(grokdeclarator): Simplify code to compute names of overloaded
13373	operators.  Adjust use of ansi_opname.
13374	(ambi_op_p): Work on tree_codes, not identifiers.
13375	(unary_op_p): Likewise.
13376	(grok_op_properties): Likewise.
13377	(start_function): Use DECL_OVERLOADED_OPERATOR_P.
13378	(lang_mark_tree): Don't try to mark the operator_code.
13379	* decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P.
13380	* error.c (dump_decl): Remove special handling for operator
13381	names.
13382	(dump_function_name): Likewise.
13383	(dump_expr): Adjust name lookup of operators.
13384	(op_to_string): Simplify.
13385	(assop_to_string): Likewise.
13386	* init.c (build_new_1): Adjust use of ansi_opname.
13387	* lex.c (opname_tab): Remove.
13388	(assignop_tab): Likewise.
13389	(ansi_opname): Likewise.
13390	(ansi_assopname): Likewise.
13391	(operator_name_string): Likewise.
13392	(reinit_lang_specific): Likewise.
13393	(operator_name_info): New variable.
13394	(assignment_operator_name_info): Likewise.
13395	(init_operators): New function.
13396	(init_parse): Use it.
13397	(do_identifier): Adjust use of ansi_opname.
13398	* method.c (mangle_expression): Don't use ansi_opname for
13399	mangling.
13400	(build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P.
13401	(build_decl_overload): Remove.
13402	(build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly.
13403	(do_build_assign_ref): Adjust use of ansi_opname.
13404	(synthesize_method): Likewise.
13405	(implicitly_declare_fn): Likewise.
13406	* operators.def: New file.
13407	* parse.y (operator): Adjust use of ansi_opname.
13408	* pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P.
13409	(set_mangled_name_for_template_decl): Don't play games with
13410	current_namespace.
13411	(special_function_p): Adjust use of ansi_opname.
13412	* typeck.c (check_return_expr): Likewise.
13413	* Make-lang.in (cc1plus): Depend on operators.def.
13414	* Makefile.in (lex.o): Likewise.
13415	(decl.o): Likewise.
13416
134172000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
13418
13419	* Make-lang.in (cplib2.ready): Eradicate.
13420
13421Sat May 27 11:25:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13422
13423	* method.c (mangle_expression): Use TREE_CODE_LENGTH.
13424	* tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH.
13425	(built_min, cp_tree_equal): Likewise.
13426
134272000-05-26  Mark Mitchell  <mark@codesourcery.com>
13428
13429	* class.c (layout_nonempty_base_or_field): Replace
13430	`record_layout_info' with `record_layout_info_s'.
13431
134322000-05-26  Jason Merrill  <jason@casey.soma.redhat.com>
13433
13434	Fix goto checking.
13435	* cp-tree.h (struct language_function): x_named_labels is now
13436	a struct named_label_list*.
13437	* decl.c (struct named_label_use_list): Renamed from...
13438	(struct named_label_list): ...this.  New struct.
13439	(push_binding_level): Don't set eh_region.
13440	(note_level_for_eh): New fn.
13441	(pop_label): Take label and old value directly.
13442	(pop_labels): Adjust for new named_labels format.
13443	(lookup_label): Likewise.
13444	(poplevel): Note characteristics of a binding level containing a
13445	named label.  Mess with named label lists earlier.
13446	(mark_named_label_lists): New fn.
13447	(mark_lang_function): Call it.
13448	(use_label): New fn, split out from...
13449	(make_label_decl): ...here.  Don't call it.
13450	(decl_jump_unsafe, check_previous_goto, check_previous_goto_1,
13451	check_previous_gotos): New fns,	split out from...
13452	(define_label): ...here.
13453	(check_switch_goto): New fn.
13454	(define_case_label): Call it.
13455	(check_goto): New fn.
13456	* semantics.c (finish_goto_stmt): Call it and use_label.
13457	(begin_compound_stmt): If we're a try block, call note_level_for_eh.
13458	(expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings.
13459
134602000-05-26  Mark Mitchell  <mark@codesourcery.com>
13461
13462	* class.c (build_vtable_entry_ref): Correct usage of
13463	get_vtbl_decl_for_binfo.
13464
13465	* decl2.c (grokclassfn): Set DECL_LANGUAGE here.
13466	* method.c (implicitly_declare_fn): Not here.
13467
134682000-05-26  Nathan Sidwell  <nathan@codesourcery.com>
13469
13470	* cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ...
13471	(CPTI_PTMD_DESC_TYPE): ... here.
13472	(ptmd_desc_type_node): Rename to ...
13473	(ptm_desc_type_node): ... here.
13474	* decl.c: Likewise.
13475	* rtti.c (ptmd_initializer): Rename to ...
13476	(ptm_initializer): ... here.
13477	(sythesize_tinfo_var): Adjust. Deal with pointer to member
13478	function.
13479	(create_tinfo_types): Adjust.
13480
134812000-05-25  Mark Mitchell  <mark@codesourcery.com>
13482
13483	Finish implementation of VTTs.
13484	* cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and
13485	CPTI_VTT_PARM_IDENTIFIER.
13486	(vtt_parm_identifier): New macro.
13487	(vtt_parm_type): Likewise.
13488	(BINFO_SUBVTT_INDEX): Likewise.
13489	(BINFO_VPTR_INDEX): Likewise.
13490	(struct lang_decl): Add vtt_parm.
13491	(DECL_VTT_PARM): New macro.
13492	(DECL_USE_VTT_PARM): Likewise.
13493	(DECL_NEEDS_VTT_PARM_P): Likewise.
13494	(get_vtt_name): Declare.
13495	(build_artificial_parm): Likewise.
13496	(fixup_all_virtual_upcast_offsets): Likewise.
13497	(expand_indirect_vtbls_init): Remove.
13498	* call.c (build_new_method_call): Pass the vtt to subobject
13499	constructors and destructors.
13500	* class.c (get_vtt_name): Give it external linkage.
13501	(build_clone): Handle the magic VTT parameters for clones.
13502	(clone_function_decl): Fix typo in comment.
13503	(build_vtt): Keep track of the indices in the VTTs where various
13504	entities are stored.
13505	(build_vtt_inits): Likewise.
13506	(dfs_build_vtt_inits): Likewise.
13507	(build_ctor_vtbl_group): Tweak type of construction vtables.
13508	(dfs_accumulate_vtbl_inits): Build vtables for all bases, even
13509	primary bases, when building construction vtables.
13510	* decl.c (duplicate_decls): Handle DECL_VTT_PARM.
13511	(initialize_predefined_identifiers): Add vtt_parm_identifier.
13512	(init_decl_processing): Initialize vtt_parm_type.
13513	(grokfndecl): Use DECL_OVERLOADED_OPERATOR_P.
13514	(lang_mark_tree): Make vtt_parm.
13515	* decl2.c (build_artificial_parm): New function.
13516	(maybe_retrofit_in_chrg): Use it.  Add VTT parameters.
13517	(grokclassfn): Use build_artificial_parm.
13518	* init.c (initialize_vtbl_ptrs): Call
13519	fixup_all_virtual_upcast_offsets directly.
13520	(perform_member_init): Use the complete subobject destructor for
13521	member cleanups.
13522	(build_vtbl_address): New function.
13523	(expand_virtual_init): Handle VTTs.
13524	* optimize (maybe_clone_body): Likewise.
13525	* search.c (fixup_all_virtual_upcast_offsets): Give it external
13526	linkage.
13527	(expand_indirect_vtbls_init): Remove.
13528	* semantics.c (setup_vtbl_ptr): Fix typos in comment.
13529	* tree.c (make_binfo): Make them bigger.
13530
135312000-05-25  Nathan Sidwell  <nathan@codesourcery.com>
13532
13533	* inc/cxxabi.h (__pbase_type_info): Define, based on
13534	__pointer_type_info.
13535	(__pointer_type_info): Derive from __pbase_type_info. Adjust.
13536	(__pointer_to_member_type_info): Likewise.
13537	* tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement.
13538	(__pointer_to_member_type_info::__is_pointer_p): Remove.
13539	(__pointer_type_info::__do_catch): Rename to ...
13540	(__pbase_type_info::__do_catch): ... here. Adjust.
13541	(__pbase_type_info::__pointer_catch): Implement.
13542	(__pointer_type_info::__pointer_catch): Adjust.
13543	(__pointer_to_member_type_info::__pointer_catch): Adjust.
13544
135452000-05-25  Nathan Sidwell  <nathan@codesourcery.com>
13546
13547	* tinfo.h (__user_type_info::contained_virtual_p): New
13548	predicate.
13549	* tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond
13550	shaped hierarchy.
13551	(__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to
13552	diamond shaped hierarchy. Add early out for mixed diamond and
13553	duplicate shaped hierarchy.
13554
135552000-05-24  Mark Mitchell  <mark@codesourcery.com>
13556
13557	* cp-tree.h (build_delete): Change prototype.
13558	(build_vec_delete): Likewise.
13559	* call.c (build_scoped_method_call): Use special_function_kind
13560	values to indicate the kind of destruction to be done.
13561	(build_method_call): Likewise.
13562	* decl.c (finish_destructor_body): Likewise.
13563	(maybe_build_cleanup_1): Likewise.  Rename to ...
13564	(maybe_build_cleanup): ... this.
13565	* decl2.c (delete_sanity): Use special_function_kind
13566	values to indicate the kind of destruction to be done.
13567	(build_cleanup): Likewise.
13568	* init.c (perform_member_init): Likewise.
13569	(build_vec_delete_1): Likewise.
13570	(build_dtor_call): Simplify.
13571	(build_delete): Use special_function_kind
13572	values to indicate the kind of destruction to be done.
13573	(build_vbase_delete): Likewise.
13574	(build_vec_delete): Likewise.
13575
13576	* init.c (sort_member_init): Fix typo in error message generation
13577	code.
13578
13579Mon May 15 11:46:29 2000  Donald Lindsay  <dlindsay@cygnus.com>
13580
13581	* semantics.c (begin_class_definition): make the packed
13582	attribute be sensitive to the "-fpack-struct" command line flag
13583
135842000-05-24  Nathan Sidwell  <nathan@codesourcery.com>
13585
13586	Update new-abi upcast algorithm.
13587	* inc/cxxabi.h (__class_type_info::__do_upcast): Change
13588	prototype and meaning of return value.
13589	(__si_class_type_info::__do_upcast): Likewise.
13590	(__vmi_class_type_info::__do_upcast): Likewise.
13591	* tinfo.cc (__class_type_info::__upcast_result): Replace
13592	whole2dst with part2dst. Adjust ctor.
13593	(__class_type_info::__do_upcast): Adjust call of worker function.
13594	(__class_type_info::__do_upcast): Adjust.
13595	(__si_class_type_info::__do_upcast): Adjust. Use parent's
13596	__do_upcast.
13597	(__vmi_class_type_info::__do_upcast): Likewise. Fix private
13598	virtual base in diamond hierarchy bug.
13599
136002000-05-23  Mark Mitchell  <mark@codesourcery.com>
13601
13602	* cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable
13603	and bitfield to tinfo_fn_p.
13604	(DECL_TINFO_FN_P): Adjust.
13605	(SET_DECL_TINFO_FN_P): Likewise.
13606	(DECL_MUTABLE_P): Likewise.
13607	(DECL_C_BIT_FIELD): Likewise.
13608	(SET_DECL_C_BIT_FIELD): Likewise.
13609	(CLEAR_DECL_C_BIT_FIELD): Likewise.
13610	(DECL_UNINLINABLE): Likewise.
13611	* class.c (alter_access): Call retrofit_lang_decl if ncessary.
13612	(handle_using_decl): Remove assertion.
13613	(build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl,
13614	to build FIELD_DECLs.
13615	(build_base_field): Likewise.
13616	(layout_class_type): Likewise.
13617	* decl.c (init_decl_processing): Likewise.
13618	(build_ptrmemfunc_type): Likewise.
13619	(grokdeclarator): Likewise.
13620	* decl2.c (grok_x_components): Likewise.
13621	* except.c (call_eh_info): Likewise.
13622	* init.c (init_init_processing): Likewise.
13623	* rtti.c (expand_class_desc): Likewise.
13624	(create_pseudo_type_info): Likewise.
13625	(get_vmi_pseudo_type_info): Likewise.
13626	(create_tinfo_types): Likewise.
13627	* ptree.c (print_lang_decl): Adjust.
13628	* typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC
13629	before checking DECL_MUTABLE_P.
13630
13631	* decl2.c (maybe_retrofit_in_chrg): Don't create in-charge
13632	parameters for template functions.
13633	* pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for
13634	destructors as well as constructors.
13635
136362000-05-22  Mark Mitchell  <mark@codesourcery.com>
13637
13638	* class.c (build_ctor_vtbl_group): Set inits.
13639	* optimize.c (maybe_clone_body): Set DECL_INLINE and
13640	DECL_THIS_INLINE appropriately for clones.
13641
13642	* cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp.
13643	(DECL_CONV_FN_P): Simplify.
13644	(DECL_OPERATOR): Remove.
13645	(language_to_string): Declare.
13646	* decl.c (duplicate_decls): Fix typo in comment.
13647	(grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P.
13648	(grok_op_properties): Use DECL_CONV_FN_P instead of
13649	IDENTIFIER_TYPENAME_P.
13650	* dump.c (dequeue_and_dump): Dump the language linkage of
13651	declarations.
13652	* error.c (language_to_string): Give it external linkage.
13653	* method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P.
13654	(implicitly_declare_fn): Set DECL_LANGUAGE.
13655	* pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not
13656	IDENTIFIER_TYPENAME_P.
13657	(tsubst_decl): Likewise.
13658	(tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P.
13659	* semantics.c (finish_member_declaration): Don't mark members of
13660	classes declared in an extern "C" region as extern "C".
13661
136622000-05-22  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
13663
13664	* decl2.c (qualified_lookup_using_namespace): Look through
13665	namespace aliases.
13666
13667	* decl.c (push_using_decl): Return the old decl on namespace level.
13668
136692000-05-21  Mark Mitchell  <mark@codesourcery.com>
13670
13671	* cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks.
13672	(VTT_NAME_PREFIX): New macro.
13673	(CTOR_VTBL_NAME_PREFIX): Likewise.
13674	(get_ctor_vtbl_name): New function.
13675	* class.c (get_vtable_name): Simplify.
13676	(get_vtt_name): New function.
13677	(get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE.
13678	(dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list
13679	when a virtual base becomes primary.
13680	(finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier.  Build
13681	VTTs.
13682	(finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in
13683	additional parameters.
13684	(dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED.
13685	(initialize_array): New function.
13686	(build_vtt): Likewise.
13687	(build_vtt_inits): Likewise.
13688	(dfs_build_vtt_inits): Likewise.
13689	(dfs_fixup_binfo_vtbls): Likewise.
13690	(build_ctor_vtbl_group): Likewise.
13691	(initialize_vtable): Use initialize_array.
13692	(accumulate_vtbl_inits): Reimplement to handle construction
13693	vtables.
13694	(dfs_accumulate_vtbl_inits): Likewise.
13695	(bulid_vtbl_initializer): Adjust parameter name.
13696	* method.c (build_typename_overload): Remove #if 0'd code.
13697	(get_ctor_vtbl_name): New function.
13698	* search.c (dfs_walk_real): Use BINFO_N_BASETYPES.
13699	(init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo.
13700
13701	* cp-tree.h (struct lang_type): Remove search_slot.
13702	(CLASSTYPE_SEARCH_SLOT): Remove.
13703	(emit_base_init): Change prototype.
13704	(initialize_vtbl_ptrs): Likewise.
13705	(expand_indirect_vtbls_init): Likewise.
13706	(clear_search_slots): Remove.
13707	* decl.c (lang_mark_tree): Don't mark search_slot.
13708	* init.c (initialize_vtbl_ptrs): Simplify.
13709	(emit_base_init): Likewise.
13710	* search.c (struct vbase_info): Document decl_ptr.
13711	(convert_pointer_to_single_level): Remove.
13712	(dfs_find_vbases): Remove.
13713	(dfs_init_base_pointers): Simplify.
13714	(dfs_clear_vbase_slots): Remove.
13715	(dfs_vtable_path_unmark): New function.
13716	(init_vbase_pointers): Simplify.
13717	(expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT.
13718	(expand_indirect_vtbls_init): Simplify.  Don't call
13719	mark_all_temps_used.
13720	* semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and
13721	initialize_vtbl_ptrs.
13722
137232000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
13724
13725	* except.c: Add static prototypes.
13726
137272000-05-20  H.J. Lu  <hjl@gnu.org>
13728
13729	* Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext).
13730
137312000-05-19  Mark Mitchell  <mark@codesourcery.com>
13732
13733	Don't create a separate copy of virtual bases for the
13734	CLASSTYPE_VBASECLASSES list.
13735	* cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation.
13736	(BINFO_FOR_VBASE): Remove.
13737	(CANONICAL_BINFO): Adjust.
13738	(binfo_for_vbase): New function.
13739	* class.c (build_vbase_pointer_fields): Use binfo_for_vbase
13740	instead of BINFO_FOR_VBASE.
13741	(build_vbase_pointer): Likewise.
13742	(build_secondary_vtable): Likewise.
13743	(dfs_mark_primary_bases): Likewise.
13744	(mark_primary_bases): Likewise.
13745	(layout_nonempty_base_or_field): Likewise.
13746	(dfs_set_offset_for_shared_vbases): Likewise.
13747	(dfs_set_offset_for_unshared_vbases): Likewise.
13748	(layout_virtual_bases): Likewise.  Adjust for changes to the
13749	CLASSTYPE_VBASECLASSES list.
13750	(dump_class_hierarchy_r): Use binfo_for_vbase
13751	instead of BINFO_FOR_VBASE.
13752	(dump_class_hierarchy): Likewise.
13753	(finish_vtbls): Likewise.
13754	(build_vtbl_initializer): Adjust for changes to the
13755	CLASSTYPE_VBASECLASSES list.
13756	(build_vbase_offset_vtbl_entries): Use binfo_for_vbase.
13757	* decl.c (finish_destructor_body): Adjust for changes to the
13758	CLASSTYPE_VBASECLASSES list.
13759	* init.c (sort_base_init): Use binfo_for_vbase.
13760	(construct_virtual_bases): Adjust for changes to the
13761	CLASSTYPE_VBASECLASSES list.
13762	(expand_member_init): Use binfo_for_vbase.
13763	(build_vbase_delete):  Adjust for changes to the
13764	CLASSTYPE_VBASECLASSES list.
13765	* method.c (do_build_copy_constructor): Likewise.
13766	* rtti.c (get_base_offset): Use binfo_for_vbase.
13767	(expand_class_desc): Remove #if 0'd code.
13768	* search.c (struct vbase_info): Remove vbase_types.
13769	(get_base_distance):  Use binfo_for_vbase.
13770	(lookup_field_queue_p): Use CANONICAL_BINFO.
13771	(get_shared_vbase_if_not_primary): Use binfo_for_vbase.
13772	(get_pure_virtuals): Adjust for changes to the
13773	CLASSTYPE_VBASECLASSES list.
13774	(dfs_find_vbases): Use binfo_for_vbase.
13775	(dfs_init_vbase_pointers): Likewise.
13776	(init_vbase_pointers): Don't initialize vi.vbase_types.
13777	(virtual_context): Use binfo_for_vbase.
13778	(fixup_all_virtual_upcast_offsets): Adjust for changes to the
13779	CLASSTYPE_VBASECLASSES list.
13780	(expand_indirect_vtbls_init): Simplify.
13781	(dfs_get_vbase_types): Don't replicate virtual bases.
13782	(find_vbase_instance): Use binfo_for_vbase.
13783	(binfo_for_vbase): New function.
13784	* typeck.c (get_delta_difference): Use binfo_for_vbase.
13785
137862000-05-17  Mark Mitchell  <mark@codesourcery.com>
13787
13788	* decl2.c (finish_anon_union): Generalize error messages to handle
13789	anonymous structures.
13790	* init.c (perform_member_init): Remove `name' parameter.
13791	(build_field_list): New function.
13792	(sort_member_init): Handle anonymous union initialization order
13793	correctly.  Check for multiple initializations of the same union.
13794	(emit_base_init): Don't look up fields by name here.
13795	(expand_member_init): Record the result of name lookup for future
13796	reference.
13797	* typeck.c (build_component_ref): Fix formatting.
13798
13799Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
13800
13801	* decl.c (pop_label): Replace warn_unused with warn_unused_label.
13802	* typeck.c (build_x_compound_expr): Replace warn_unused with
13803	warn_unused_value.
13804
13805	* decl2.c (lang_decode_option): Update -Wall unused flags by
13806	calling set_Wunused.
13807
138082000-05-16  Mark Mitchell  <mark@codesourcery.com>
13809
13810	* cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation.
13811	* init.c (dfs_vtable_path_unmark): Remove.
13812	* search.c (marked_new_vtable_p): Likewise.
13813	(unmarked_new_vtable_p): Likewise.
13814	(dfs_search_slot_nonempty_p): Likewise.
13815	(dfs_mark): Likewise.
13816	(dfs_vtable_path_unmark): Likewise.
13817	(dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED.
13818	(dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED.
13819	(dfs_init_vbase_pointers): Remove special-case new ABI code.
13820	(dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED.
13821	(init_vbase_pointers): Simplify.
13822	(expand_indirect_vtbls_init): Likewise.
13823
13824	* class.c (copy_virtuals): New function.
13825	(build_primary_table): Use it.
13826	(build_secondary_vtable): Likewise.
13827	(modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to
13828	indicate that no vcall offset is required.
13829	(add_virtual_function): Likewise.
13830	(modify_all_vtables): Likewise.
13831	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
13832	(dfs_accumulate_vtbl_inits): Likewise.
13833	(build_vtbl_initializer): Make changes to handle construction
13834	vtables.
13835	(dfs_build_vcall_offset_vtbl_entries): Likewise.
13836	(build_rtti_vtbl_entries): Likewise.
13837	(build_vtable_entries): Handle a NULL vcall_index.
13838
138392000-05-15  Gabriel Dos Reis  <gdr@codesourcery.com>
13840
13841	* decl2.c (lang_decode_option): Fix thinko.
13842
138432000-05-14  Jason Merrill  <jason@casey.cygnus.com>
13844
13845	* except.c (check_handlers): New fn.
13846	* cp-tree.h: Declare it.
13847	* semantics.c (finish_handler_sequence): Call it.
13848	(finish_function_handler_sequence): Likewise.
13849	(finish_handler_parms): Set TREE_TYPE on the handler.
13850	* cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro.
13851	* search.c (get_base_distance_recursive): If protect>1, ignore
13852	special access.
13853	(get_base_distance): Don't reduce watch_access.
13854
138552000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
13856
13857	* lex.c: #include diagnostic.h.
13858	(lang_init_options): Set default prefixing rules.
13859
13860	* lang-options.h: Add -fdiagnostics-show-location=.
13861
13862	* decl2.c: #include diagnostic.h.
13863	(lang_decode_option): Handle -fdiagnostics-show-location=.
13864
138652000-05-12  Nathan Sidwell  <nathan@codesourcery.com>
13866
13867	* tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes.
13868	* vec.cc: Revert my 2000-05-07 change.
13869
138702000-05-11  Jason Merrill  <jason@casey.cygnus.com>
13871
13872	* class.c (check_field_decls): Complain about non-static data
13873	members with same name as class in class with constructor.
13874
138752000-05-10  Jason Merrill  <jason@casey.cygnus.com>
13876
13877	* decl.c (grokdeclarator): Allow non-static data members with
13878	same name as class.
13879
138802000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
13881
13882	* cp-tree.h: Constify tree_srcloc.filename, tinst_level.file,
13883	and pending_inline.filename.  Update prototypes.
13884	* decl.c (define_label): Constify filename parameter.
13885	* decl2.c (warn_if_unknown_interface): Constify local char *.
13886	* input.c Constify input_source.filename. Don't declare
13887	input_filename or lineno.  Constify filename parameter to feed_input.
13888	* lex.c (init_parse): Constify parameter and return value.
13889	(cp_pragma_interface, cp_pragma_implementation): Constify
13890	filename argument.
13891	(reinit_parse_for_method, reinit_parse_for_block,
13892	reinit_parse_for_expr, feed_defarg, handle_cp_pragma):
13893	Constify local char *.
13894	* pt.c: Don't declare lineno or input_filename.
13895	(print_template_context, tsubst_friend_function, tsubst_decl,
13896	tsubst, instantiate_decl): Constify local char *.
13897	* semantics.c (expand_body): Constify local char *.
13898	* tree.c (build_srcloc): Constify filename parameter.
13899	* typeck.c (c_expand_asm_operands): Constify filename
13900	parameter.
13901
139022000-05-08  Nathan Sidwell  <nathan@codesourcery.com>
13903
13904	* tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix
13905	offsetof expansion.
13906
139072000-05-08  Branko Cibej  <branko.cibej@hermes.si>
13908
13909	* inc/cxxabi.h:  Fix typos in comment.
13910	(__base_class_info::__offset): Use a static_cast.
13911
139122000-05-07  Nathan Sidwell  <nathan@codesourcery.com>
13913
13914	* inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place
13915	of std::size_t and std::ptrdiff_t respectively.
13916	* tinfo.cc: Likewise.
13917	* vec.cc: Likewise.
13918
139192000-05-06  Richard Henderson  <rth@cygnus.com>
13920
13921	* typeck.c (build_c_cast): Don't warn integer->pointer size
13922	mismatch for constants.
13923
139242000-05-06  Nathan Sidwell  <nathan@codesourcery.com>
13925
13926	* rtti.c (ptmd_initializer): Set non-public, if class is
13927	incomplete.
13928
13929	* inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++".
13930	(__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
13931	__cxa_vec_delete): Likewise.
13932	* tinfo.cc (__dynamic_cast): Likewise.
13933	* vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
13934	__cxa_vec_delete): Likewise.
13935
139362000-05-04  Mark Mitchell  <mark@codesourcery.com>
13937
13938	* cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove.
13939	(SET_FNADDR_FROM_VTABLE_ENTRY): Likewise.
13940	(lang_decl_flags): Add vcall_offset.
13941	(THUNK_VCALL_OFFSET): Use it.
13942	* decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk.
13943	* method.c (make_thunk): Create the lang_decl here, not in
13944	emit_thunk.
13945	(emit_thunk): Make generic thunks into ordinary functions once
13946	they have been fed to expand_body.
13947	* semantics.c (expand_body): Set current_function_is_thunk here.
13948
139492000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13950
13951	* class.c (update_vtable_entry_for_fn): Prototype.
13952
13953	* pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl'
13954	and `tmpl'.
13955
13956	* search.c (dfs_build_inheritance_graph_order): Prototype.
13957
139582000-05-04  Mark Mitchell  <mark@codesourcery.com>
13959
13960	* cp-tree.h (special_function_kind): Add various kinds of
13961	destructors.
13962	(special_function_p): New function.
13963	* class.c (overrides): Don't let one kind of destructor override
13964	another.
13965	* decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding
13966	whether or not to instantiate a template.
13967	* tree.c (special_function_p): Define.
13968
139692000-05-03  Mark Mitchell  <mark@codesourcery.com>
13970
13971	* cp-tree.def (THUNK_DECL): Remove.
13972	* cp-tree.h (DECL_THUNK_P): New macro.
13973	(DECL_NON_THUNK_FUNCTION_P): Likewise.
13974	(DECL_EXTERN_C_FUNCTION_P): Likewise.
13975	(SET_DECL_THUNK_P): Likewise.
13976	(DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P.
13977	(FNADDR_FROM_VTABLE_ENTRY): Likewise.
13978	(DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P.
13979	* decl.c (decls_match): Use DECL_EXTERN_C_P.
13980	(duplicate_decls): Likewise.
13981	(pushdecl): Likewise.  Adjust thunk handling.
13982	(grokfndecl): Use DECL_EXTERN_C_P.
13983	* decl2.c (mark_vtable_entries): Use DECL_THUNK_P.
13984	* dump.c (dequeue_and_dump): Remove THUNK_DECL handling.
13985	* except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P.
13986	* expr.c (cplus_expand_expr): Remove THUNK_DECL handling.
13987	* method.c (make_thunk): Use SET_DECL_THUNK_P.  Set
13988	DECL_NO_STATIC_CHAIN.
13989	(emit_thunk): Don't play games with TREE_CODE on thunks.  Don't
13990	set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk.
13991	* search.c (covariant_return_p): Remove THUNK_DECL handling.
13992	* ir.texi: Update.
13993
139942000-05-01  Jason Merrill  <jason@casey.cygnus.com>
13995
13996	* tree.c (walk_tree): Set lineno.
13997
139982000-05-01  Mark Mitchell  <mark@codesourcery.com>
13999
14000	* exception.cc: Update license notice.
14001	* new.cc: Likewise.
14002	* new1.cc: Likewise.
14003	* new2.cc: Likewise.
14004	* tinfo.cc: Likewise.
14005	* tinfo2.cc: Likewise.
14006	* vec.cc: Likewise.
14007	* inc/cxxabi.h: Likewise.
14008	* inc/exception: Likewise.
14009	* inc/new: Likewise.
14010	* inc/new.h: Likewise.
14011	* inc/typeinfo: Likewise.
14012
140132000-05-01  Jason Merrill  <jason@casey.cygnus.com>
14014
14015	* tree.c (build_target_expr_with_type): If we already have a
14016	TARGET_EXPR, just return it.
14017
14018	* optimize.c (initialize_inlined_parameters): Don't generate an
14019	EXPR_STMT if we can just use DECL_INITIAL.
14020	* decl.c (emit_local_var): Only make the initialization a
14021	full-expression if stmts_are_full_exprs_p.
14022
140232000-05-01  Mark Mitchell  <mark@codesourcery.com>
14024
14025	* cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New
14026	macro.
14027	* call.c (standard_conversion): Use it.
14028	(direct_reference_binding): Likewise.
14029	(build_over_call): Likewise.
14030	(is_properly_derived_from): Likewise.
14031	(compare_ics): Likewise.
14032	* class.c (resolves_to_fixed_type_p): Likewise.
14033	* optimize.c (declare_return_variable): Likewise.
14034	* pt.c (is_specialization_of): Likewise.
14035	(unify): Likewise.
14036	* typeck.c (comp_target_parms): Likeiwse.
14037	(build_static_cast): Likewise.
14038	(build_reinterpret_cast): Likewise.
14039	(build_const_cast): Likewise.
14040	(comp_ptr_ttypes_real): Likewise.
14041	(comp_ptr_ttypes_const): Likewise.
14042	* typeck2.c (process_init_constructor): Likewise.
14043
140442000-04-30  Scott Snyder <snyder@fnal.gov>
14045
14046	* decl.c (finish_destructor_body): Use the base destructor when
14047	destroying virtual bases.
14048
140492000-04-30  Mark Mitchell  <mark@codesourcery.com>
14050
14051	* expr.c (cplus_expand_expr): Preserve temporaries when expanding
14052	STMT_EXPRs.
14053	* optimize.c (struct inline_data): Add target_exprs field.
14054	(declare_return_variable): When a function returns an aggregate,
14055	use the variable declared in the TARGET_EXPR as the remapped
14056	DECL_RESULT.
14057	(expand_call_inline): Update the pending target_exprs stack.
14058	(optimize_function): Initialize the stack.
14059
14060	* decl2.c (finish_file): Fix typo in comment.
14061
14062	* method.c (emit_thunk): Don't try to return a `void' value.
14063
14064	* optimize.c (initialize_inlined_parameters): If the parameter is
14065	addressable, we need to make a new VAR_DECL, even if the
14066	initializer is constant.
14067
140682000-04-28  Cosmin Truta  <cosmint@cs.ubbcluj.ro>
14069
14070	* decl.c (grok_op_properties): Add an extra check of argtypes.
14071
140722000-04-27  Mark Mitchell  <mark@codesourcery.com>
14073
14074	* optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying
14075	variables.
14076	(initialize_inlined_parameters): Try to avoid creating new
14077	VAR_DECLs.
14078
140792000-04-27  Alex Samuel  <samuel@codesourcery.com>
14080
14081	* lex.c (my_get_run_time): Remove.
14082	(init_filename_times): Use get_run_time instead of my_get_run_time.
14083	(check_newline): Likewise.
14084	(dump_time_statistics): Likewise.
14085	* decl2.c (finish_file): Push and pop timevar TV_VARCONST instead
14086	of computing elapsed time explicitly.
14087
140882000-04-26  Mark Mitchell  <mark@codesourcery.com>
14089
14090	* cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P.
14091	* init.c (decl_constant_value): Check TREE_READONLY_DECL_P.
14092	* call.c (convert_like_real): Don't test TREE_READONLY_DECL_P
14093	before calling decl_constant_value.
14094	* class.c (check_bitfield_decl): Likewise.
14095	* cvt.c (ocp_convert): Likewise.
14096	(convert): Likewise.
14097	* decl.c (compute_array_index_type): Likewise.
14098	(build_enumerator): Likewise.
14099	* decl2.c (check_cp_case_value): Likewise.
14100	* pt.c (convert_nontype_argument): Likewise.
14101	(tsubst): Likewise.
14102	* typeck.c (decay_conversion): Likewise.
14103	(build_compound_expr): Likewise.
14104	(build_reinterpret_cast): Likewise.
14105	(build_c_cast): Likewise.
14106	(convert_for_assignment): Likewise.
14107
141082000-04-26  Jason Merrill  <jason@casey.cygnus.com>
14109
14110	* decl.c (finish_function): Don't play games with DECL_INLINE.
14111
141122000-04-25  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
14113
14114	* ir.texi: Correct typo.
14115
141162000-04-25  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
14117
14118	* decl.c (grokdeclarator): Reject VLAs as members.
14119
141202000-04-24  Gabriel Dos Reis  <gdr@codesourcery.com>
14121
14122	* call.c (standard_conversion): Accept conversion between
14123	COMPLEX_TYPEs.
14124
14125	* cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE.
14126
141272000-04-24  Zack Weinberg  <zack@wolery.cumb.org>
14128
14129	* decl2.c (finish_file): Remove double setup for accounting
14130	compile time.
14131
141322000-04-24  Robert Lipe <robertlipe@usa.net>
14133
14134	* cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD.
14135
141362000-04-23  Benjamin Kosnik  <bkoz@cygnus.com>
14137
14138	* new.cc (set_new_handler): Needs to be in std::.
14139
141402000-04-23  Mark Mitchell  <mark@codesourcery.com>
14141
14142	* cp-tree.h (lang_decl): Remove pretty_function_p.
14143	(DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the
14144	language-specific node.
14145	* decl.c (cp_make_fname_decl): Use build_decl, not
14146	build_lang_decl, to build the variables.
14147	(grokvardecl): Don't call build_lang_decl for local variables in
14148	templates.
14149	(grokdeclarator): Don't call build_lang_decl for local type
14150	declarations in templates.
14151	* lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated
14152	zero'd memory, rather than calling memset.
14153	* pt.c: Include hashtab.h.
14154	(local_specializations): New variable.
14155	(retrieve_local_specialization): Use it.
14156	(register_local_specialization): Likewise.
14157	(tsubst_decl): Don't assume local variables have
14158	DECL_LANG_SPECIFIC.
14159	(instantiate_decl): Set up local_specializations.
14160	* Makefile.in (HTAB_H): New variable.
14161
141622000-04-23  Richard Henderson  <rth@cygnus.com>
14163
14164	* typeck.c (c_expand_asm_operands): Restore the original
14165	contents of the output list.
14166
141672000-04-22  Gabriel Dos Reis <gdr@codesourcery.com>
14168
14169	* ir.texi:  Document complex number representation.
14170
141712000-04-20  Nathan Sidwell  <nathan@codesourcery.com>
14172
14173	* rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi.
14174	(target_incomplete_p): New function.
14175	(tinfo_base_init): Create comdat NTBS name variable.
14176	(ptr_initializer): Add non_public parameter. Calculate it.
14177	(ptmd_initializer): Likewise.
14178	(synthesize_tinfo_var): Adjust. Emit incomplete class tinfo.
14179	(create_real_tinfo_var): Add non_public parameter. Use it.
14180	Push proxy into global namespace.
14181	* inc/cxxabi.h (__pointer_type_info::incomplete_class_mask):
14182	New enumeration.
14183	* inc/typeinfo (type_info::before, type_info::operator==):
14184	Compare __name addresses.
14185
14186	* tinfo2.cc: Remove new-abi builtins comment.
14187
141882000-04-20  Jason Merrill  <jason@casey.cygnus.com>
14189
14190	* typeck.c (build_x_function_call): Resolve an OFFSET_REF.
14191
14192	* call.c (joust): Exit early if we get the same function, too.
14193
14194	* decl2.c (key_method): Return NULL_TREE for template classes.
14195	(import_export_class): Don't need to check for template classes.
14196
141972000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
14198
14199	* lex.c: Remove references to cccp.c.
14200
142012000-04-18  Mark Mitchell  <mark@codesourcery.com>
14202
14203	* cp-tree.h (lang_decl_flags): Remove const_memfunc and
14204	volatile_memfunc.  Add destructor_attr.  Adjust dummy.
14205	(DECL_DESTRUCTOR_P): Use destructor_attr.
14206	(DECL_CONST_MEMFUNC_P): Reimplement.
14207	(DECL_VOLATILE_MEMFUNC_P): Remove.
14208	* class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS.
14209	(overrides): Use DECL_DESTRUCTOR_P.
14210	(check_for_override): Likewise.
14211	* decl.c (start_function): Likewise.
14212	* decl2.c (grokfclassfn): Likewise.
14213	(check_classfn): Likewise.
14214	(grok_function_init): Likewise.
14215
142162000-04-17  Mark Mitchell  <mark@codesourcery.com>
14217
14218	* decl2.c (grokfield): Issue error on illegal data member
14219	declaration.
14220
14221Mon Apr 17 17:11:16 2000  Mark P Mitchell  <mark@codesourcery.com>
14222
14223	* method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL.
14224
142252000-04-16  Mark Mitchell  <mark@codesourcery.com>
14226
14227	* class.c (build_vtable_entry): Don't build thunks for type-info
14228	functions.
14229
142302000-04-16  Jason Merrill  <jason@casey.cygnus.com>
14231
14232	* decl.c (decls_match): Allow a redeclaration of a builtin to
14233	specify args while the builtin did not.
14234
142352000-04-15  Mark Mitchell  <mark@codesourcery.com>
14236
14237	* cp-tree.def (THUNK_DECL): Add to documentation.
14238	* cp-tree.h (flag_huge_objects): Declare.
14239	* class.c (modify_vtable_entry): Tidy.
14240	(update_vtable_entry_for_fn): Split out from dfs_modify_vtables.
14241	Calculate delta appropriately for the new ABI.
14242	(dfs_modify_vtables): Use it.
14243	(modify_all_vtables): Fix thinko in code to add overriding copies
14244	of functions to primary vtables.
14245	(build_clone): Fix typo in comment.
14246	(clone_function_decl): Correct order of destructors in vtable.
14247	(build_vbase_offset_vtbl_entries): Adjust comment.
14248	(dfs_vcall_offset_queue_p): Remove.
14249	(dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX.
14250	(build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases.
14251	(build_vtable_entry): Correct check for pure virtual functions.
14252	Don't declare flag_huge_objects.
14253	* decl.c (flag_huge_objects): Remove declaration.
14254	* method.c (make_thunk): Tweak mangling for vcall offset thunks.
14255	Use int_size_in_bytes.
14256	(emit_thunk): Handle vcall offset thunks.
14257
14258Sat Apr 15 16:00:01 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14259
14260	* decl2.c (parse_time, varconst_time): Delete declarations.
14261	(finish_file): Delete LINENO declaration.
14262	START_TIME and THIS_TIME now long.
14263
142642000-04-13  Nathan Sidwell  <nathan@codesourcery.com>
14265
14266	* class.c (build_base_field): Reformat comment.
14267
14268	* inc/cxxabi.h (stddef.h): Comment inclusion.
14269	(__base_class_info::__offset): Comment shift.
14270
142712000-04-12  Mark Mitchell  <mark@codesourcery.com>
14272
14273	* cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro.
14274	(cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER.
14275	(cp_push_exception_identifier): New macro.
14276	(DECL_COMPLETE_DESTRUCTOR_P): New macro.
14277	(DECL_BASE_DESTRUCTOR_P): Likewise.
14278	(DECL_DELETING_DESTRUCTOR_P): Likewise.
14279	(get_vtbl_decl_for_binfo): Fix formatting.
14280	(in_charge_arg_for_name): New macro.
14281	(maybe_build_cleanup_and_delete): Remove declaration.
14282	* call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P.
14283	(in_charge_arg_for_name): New function.
14284	(build_new_method_call): Use it.  Handle cloned destructors.
14285	(build_clone): Don't make the base constructor virtual.
14286	Automatically defer generated functions.
14287	(clone_function_decl): Handle destructors, too.
14288	(clone_constructors_and_destructors): Likewise.
14289	(create_vtable_ptr): Don't create a vtable entry for a cloned
14290	function.
14291	* decl.c (predefined_identifier): Add ctor_or_dtor_p.
14292	(initialize_predefined_identifiers): Update appropriately.
14293	(finish_destructor_body): Simplify.
14294	(maybe_build_cleanup_and_delete): Remove.
14295	* except.c (expand_throw): Handle new-ABI destructors.
14296	* init.c (expand_cleanup_for_base): Use base_dtor_identifier.
14297	(build_dtor_call): New function.
14298	(build_delete): Use it.  Simplify.
14299	* optimize.c (maybe_clone_body): Handle destructors.
14300	* search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P.
14301
14302	* exception.cc (cleanup_fn): New typedef.
14303	(CALL_CLEANUP): New macro.
14304	(cp_eh_info): Use them.
14305	(__cp_push_exception): Likewise.
14306	(__cp_pop_exception): Likewise.
14307
143082000-04-11  Mark Mitchell  <mark@codesourcery.com>
14309
14310	* cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER.
14311	(complete_dtor_identifier): New macro.
14312	(CLASSTYPE_FIRST_CONVERSION): Remove.
14313	(CLASSTYPE_CONSTRUCTOR_SLOT): New macro.
14314	(CLASSTYPE_DESTRUCTOR_SLOT): Likewise.
14315	(CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise.
14316	(CLASSTYPE_CONSTRUCTORS): Likewise.
14317	(CLASSTYPE_DESTRUCTORS): Likewise.
14318	(lang_decl): Add cloned_function.
14319	(DECL_COMPLETE_CONSTRUCTOR_P): New macro.
14320	(DECL_BASE_CONSTRUCTOR_P): Likewise.
14321	(DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise.
14322	(DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise.
14323	(DECL_CLONED_FUNCTION_P): Likewise.
14324	(DECL_CLONED_FUNCTION): Likewise.
14325	(clone_function_decl): Declare.
14326	(maybe_clone_body): Likewise.
14327	* call.c (build_user_type_conversion_1): Call complete object
14328	constructors in the new ABI.
14329	(build_new_method_call): Don't add in-charge parameters under the
14330	new ABI.
14331	* class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P,
14332	DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and
14333	CLASSTYPE_DESTRUCTOR_SLOT.
14334	(build_clone): New function.
14335	(clone_function_decl): Likewise.
14336	(clone_constructors_and_destructors): Likewise.
14337	(check_bases_and_members): Use it.
14338	* decl.c (iniitialize_predefined_identifiers): Initialize
14339	complete_dtor_identifier.
14340	(finish_function): Don't add extra code to a clone.
14341	(lang_mark_tree): Mark cloned_function.
14342	* decl2.c (mark_used): Don't bother trying to instantiate things
14343	we synthesized.
14344	* dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice.
14345	* method.c (set_mangled_name_for_decl): Don't treat clones as
14346	constructors.
14347	(synthesize_method): Sythesize cloned functions, not the clones.
14348	* optimize.c (inline_data): Update comment on ret_label.
14349	(remap_block): Don't assume DECL_INITIAL exists.
14350	(copy_body_r): Allow ret_label to be NULL.
14351	(maybe_clone_body): Define.
14352	* pt.c (tsubst_decl): Handle clones.
14353	(instantiate_clone): New function.
14354	(instantiate_template): Use it.
14355	(set_mangled_name_for_template_decl): Don't treat clones as
14356	constructors.
14357	* search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT,
14358	CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT.
14359	* semantics.c (expand_body): Clone function bodies as necessary.
14360
14361	* optimize.c (remap_decl): Avoid sharing structure for arrays
14362	whose size is only known at run-time.
14363	* tree.c (copy_tree_r): Don't copy PARM_DECLs.
14364
14365	* cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr
14366	to has_in_charge_parm_p.
14367	(DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ...
14368	(DECL_HAS_IN_CHARGE_PARM_P): ... this.
14369	(DECL_COPY_CONSTRUCTOR_P): New macro.
14370	* call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P.
14371	(build_user_type_conversion_1): Likewise.
14372	(convert_like_real): Likewise.
14373	(build_over_call): Likeiwse.  Use DECL_COPY_CONSTRUCTOR_P.
14374	* decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P.
14375	(copy_args_p): Likewise.
14376	(grok_ctor_properties): Likewise.
14377	(start_function): Likewise.
14378	* decl2.c (maybe_retrofit_in_charge): Likewise.  Set it.
14379	* error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P.
14380	* init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P.
14381	* method.c (do_build_copy_constructor): Use
14382	DECL_HAS_IN_CHARGE_PARM_P.
14383	(synthesize_method): Likewise.
14384	* pt.c (instantiate_template): Remove goto.
14385	* tree.c (build_cplus_method_type): Remove mention of obstacks in
14386	comment.
14387
14388	* cp-tre.h (finish_function): Change prototype.
14389	* decl.c (end_cleanup_fn): Adjust caller.
14390	(finish_function): Take only one parameter.
14391	* decl2.c (finish_objects): Adjust caller.
14392	(finish_static_storage_duration_function): Likewise.
14393	* method.c (emit_thunk): Likewise.
14394	* parse.y: Likewise.
14395	* parse.c: Regenerated.
14396	* pt.c (instantiate_decl): Likewise.
14397	* rtti.c (synthesize_tinfo_fn): Likewise.
14398	* semantics.c (expand_body): Likewise.
14399
14400	* cp-tree.h (copy_decl): New function.
14401	* class.c (finish_struct_1): Use it.
14402	* lex.c (copy_decl): Define it.
14403	* pt.c (tsubst_decl): Likewise.
14404	* tree.c (copy_template_template_parm): Likewise.
14405
14406	* cp-tree.h (lang_type): Remove has_nonpublic_ctor and
14407	has_nonpublic_assign_ref.
14408	(TYPE_HAS_NONPUBLIC_CTOR): Don't declare.
14409	(TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise.
14410	* class.c (finish_struct_methods): Don't set
14411	TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF.
14412	(interface_only): Don't declare.
14413	(interface_unknown): Likewise.
14414
144152000-04-11  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
14416
14417	* tree.h (HAVE_TEMPLATES): Remove definition.
14418	* lang-options.h (-fthis-is-variable): Remove documentation.
14419
144202000-04-10  Jason Merrill  <jason@casey.cygnus.com>
14421
14422	* class.c (instantiate_type): Handle object-relative template-id.
14423
14424	* semantics.c (finish_expr_stmt): Call convert_to_void here.
14425	* decl.c (cplus_expand_expr_stmt): Not here.
14426
14427	* rtti.c (build_dynamic_cast_1): Call non_lvalue.
14428	Initialize exprtype earlier.
14429
14430	* parse.y (fn.def1): Check for defining types in return types.
14431
14432	* decl.c (check_tag_decl): Notice extra fundamental types.
14433	Diagnose empty decls in classes, too.
14434
14435	* decl.c (grokdeclarator): Don't override an anonymous name if no
14436	declarator was given.
14437
14438	* cvt.c (convert_to_void): Call resolve_offset_ref.
14439
14440	* typeck.c (build_x_function_call): Abort if we get an OFFSET_REF.
14441
14442	* decl2.c (decl_namespace): Handle getting a type.
14443
14444	* typeck.c (build_c_cast): Re-enable warning for cast between
14445	pointer and integer of different size.
14446
144472000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
14448
14449	* inc/cxxabi.h (__pointer_type_info): Add restrict and
14450	incomplete flags.
14451	(__pointer_type_info::__pointer_catch): New virtual function.
14452	(__pointer_to_member_type_info): Derive from
14453	__pointer_type_info. Adjust.
14454	(__pointer_to_member_type_info::__do_catch): Remove.
14455	(__pointer_to_member_type_info::__is_pointer_p): Declare.
14456	(__pointer_to_member_type_info::__pointer_catch): Declare.
14457	* rtti.c (qualifier_flags): Add restrict flag.
14458	(ptmd_initializer): Reorder members.
14459	(create_tinfo_types): Expand comments. Reorder
14460	ptmd_desc_type_node members.
14461	* tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p):
14462	Implement.
14463	(__pointer_type_info::__do_catch): Move specific code into
14464	__pointer_catch. Call it.
14465	(__pointer_type_info::__pointer_catch): Non-pointer-to-member
14466	specific catch checking. Fix void conversion check.
14467	(__pointer_to_member_type_info::__do_catch): Remove.
14468	(__pointer_to_member_type_info::__pointer_catch): Implement.
14469
144702000-04-10  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
14471
14472	* lex.c (init_parse): Remove traces of classof and headof.
14473	* decl2.c (flag_operator_names): Default to 1.
14474	(lang_decode_option): Do not set it for -ansi.
14475
144762000-04-09  Mark Mitchell  <mark@codesourcery.com>
14477
14478	* cp-tree.h (struct lang_decl): Remove main_decl_variant.
14479	(DECL_MAIN_VARIANT): Remove.
14480	* decl.c (duplicate_decls): Don't set it.
14481	(start_function): Likewise.
14482	(lang_mark_tree): Don't mark it.
14483	* decl2.c (defer_fn): Don't use it.
14484	* lex.c (retrofit_lang_decl): Don't set it.
14485	* pt.c (tsubst_decl): Likewise.
14486	* ptree.c (print_lang_decl): Don't print it.
14487	* typeck.c (mark_addressable): Don't use it.
14488
144892000-04-09  Nathan Sidwell  <nathan@codesourcery.com>
14490
14491	* vec.cc: Include <new> and <exception>.
14492	(__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup.
14493	(__cxa_vec_dtor): Catch dtor exceptions, and rethrow or
14494	terminate.
14495	(__cxa_vec_delete): Catch dtor exceptions.
14496
144972000-04-09  Nathan Sidwell  <nathan@codesourcery.com>
14498
14499	Prepend __ to implementation defined names.
14500	* inc/typeinfo (type_info): Rename _name to __name.
14501	(type_info::type_info): Rename parameter.
14502	(type_info::operator==, type_info::operator!=,
14503	type_info::before): Likewise.
14504	(type_info::is_pointer_p, type_info::is_function_p,
14505	type_info::do_catch, type_info::do_upcast): Prepend __. Rename
14506	parameters.
14507	* inc/cxxabi.h
14508	(__fundamental_type_info::__fundamental_type_info) Rename parameters.
14509	(__pointer_type_info::__pointer_type_info): Likewise.
14510	(__pointer_type_info::is_pointer_p,
14511	__pointer_type_info::do_catch): Prepend __. Rename parameters.
14512	(__array_type_info::__array_type_info): Rename parameters.
14513	(__function_type_info::__function_type_info): Likewise.
14514	(__function_type_info::is_function_p): Prepend __.
14515	(__enum_type_info::__enum_type_info): Rename parameters.
14516	(__pointer_to_member_type_info::__pointer_to_member_type_info):
14517	Likewise.
14518	(__pointer_to_member_type_info::do_catch): Prepend __. Rename
14519	parameters.
14520	(__base_class_info::is_virtual_p, is_public_p, offset): Prepend	__.
14521	(__class_type_info::__class_type_info): Rename parameters.
14522	(__class_type_info::sub_kind): Prepend __. Adjust member names.
14523	(__class_type_info::upcast_result,
14524	__class_type_info::dyncast_result): Prepend __. Move definition
14525	into tinfo.cc.
14526	(__class_type_info::do_upcast, __class_type_info::do_catch,
14527	__class_type_info::find_public_src,
14528	__class_type_info::do_dyncast,
14529	__class_type_info::do_find_public_src): Prepend __. Rename
14530	parameters.
14531	(__si_class_type_info::__si_class_type_info): Rename parameters.
14532	(__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast,
14533	__si_class_type_info::do_find_public_src): Prepent __. Rename
14534	parameters.
14535	(__vmi_class_type_info::__vmi_class_type_info): Rename parameters.
14536	(__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast,
14537	__vmi_class_type_info::do_find_public_src): Prepent __. Rename
14538	parameters.
14539	(__dynamic_cast): Rename parameters.
14540	* tinfo.cc (type_info::is_pointer_p, type_info::is_function_p,
14541	type_info::do_catch, type_info::do_upcast): Prepend __.
14542	(contained_p, public_p, virtual_p, contained_public_p,
14543	contained_nonpublic_p, contained_nonvirtual_p): Adjust.
14544	(__class_type_info::do_catch,
14545	__class_type_info::do_upcast): Prepend __. Adjust.
14546	(__class_type_info::__upcast_result,
14547	__class_type_info::__dyncast_result): Move from inc/cxxabi.h.
14548	Adjust.
14549	(__class_type_info::find_public_src): Prepend __. Adjust.
14550	(__class_type_info::do_find_public_src,
14551	__si_class_type_info::do_find_public_src,
14552	__vmi_class_type_info::do_find_public_src): Likewise.
14553	(__class_type_info::do_dyncast,
14554	__si_class_type_info::do_dyncast,
14555	__vmi_class_type_info::do_dyncast): Likewise.
14556	(__class_type_info::do_upcast,
14557	__si_class_type_info::do_upcast,
14558	__vmi_class_type_info::do_upcast): Likewise.
14559	(__dynamic_cast): Adjust.
14560	* tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __.
14561	(__function_type_info::is_function_p): Likewise.
14562	(__pointer_type_info::do_catch): Likewise. Adjust.
14563	(__pointer_to_member_type_info::do_catch): Likewise. Adjust.
14564	(__throw_type_match_rtti_2): Adjust.
14565	(__is_pointer): Adjust.
14566
145672000-04-08  Mark Mitchell  <mark@codesourcery.com>
14568
14569	* cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER.
14570	(complete_ctor_identifier): New macro.
14571	(special_function_kind): Add sfk_copy_constructor and
14572	sfk_assignment_operator.
14573	(LOOKUP_HAS_IN_CHARGE): Remove.
14574	(cons_up_default_function): Rename to ...
14575	(implicitly_declare_fn): ... this.
14576	* call.c (build_new_method_call): Add in-charge parameters for
14577	constructors here.
14578	* class.c (add_implicitly_declared_members): Change parameter name
14579	from cant_have_assignment to cant_have_const_assignment.
14580	Replace calls to cons_up_default_function to implicitly_declare_fn.
14581	* cvt.c (ocp_convert): Use complete_ctor_identifier.
14582	* decl.c (initialize_predefined_identifiers): Initialize it.
14583	(start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of
14584	complex expression.
14585	* init.c (expand_default_init): Don't calculate the in-charge
14586	parameter here.
14587	(build_new_1): Likewise.
14588	* lex.c (cons_up_default_function): Move to method.c.
14589	* method.c (synthesize_method): Use DECL_DESTRUCTOR_P.
14590	(implicitly_declare_fn): New function.
14591	* typeck.c (build_static_cast): Use complete_ctor_identifier.
14592	(build_modify_expr): Likewise.
14593	* typeck2.c (build_functional_cast): Likewise.
14594
14595	Under the new ABI, constructors don't return `this'.
14596	* cp-tree.h (warn_reorder): Declare.
14597	(special_function_kind): New enum.
14598	(global_base_init_list): Remove declaration.
14599	(emit_base_init): Don't return a value.
14600	(check_base_init): Don't declare.
14601	(is_aggr_typedef): Likewise.
14602	* decl.c (check_special_function_return_type): New function.
14603	(return_types): Remove.
14604	(grokdeclarator): Use check_special_function_return_type.
14605	(start_function): Don't initialize ctor_label under the new ABI.
14606	(finish_construtor_body): Don't create a corresponding LABEL_STMT.
14607	* init.c (begin_init_stmts): Move to top of file.
14608	(finish_init_stmts): Likewise.
14609	(warn_reorder): Don't declare.
14610	(emit_base_init): Don't create a STMT_EXPR here.  Don't return a
14611	value.
14612	(check_base_init): Remove.
14613	(is_aggr_typedef): Likewise.
14614	(build_new_1): Don't use the return value of a constructor.
14615	* semantics.c (setup_vtbl_ptr): Don't use the return value
14616	of emit_base_init.
14617	* typeck.c (check_return_expr): Don't magically convert return
14618	statements into `return this' in constructors under the new ABI.
14619
14620	* cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER,
14621	CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER.
14622	(base_ctor_identifier): New macro.
14623	(base_dtor_identifier): Likewise.
14624	(deleting_dtor_identifier): Likewise.
14625	* decl.c: Don't include obstack.h.
14626	(obstack_chunk_alloc): Don't define.
14627	(obstack_chunk_free): Likewise.
14628	(struct predefined_identifier): New type.
14629	(initialize_predefined_identifiers): New function.
14630	(init_decl_processing): Use it.
14631	(debug_temp_inits): Remove.
14632	(start_method): Don't call preserve_data.
14633	(hack_incomplete_structures): Update comment.
14634	* init.c (init_init_processing): Don't initialize
14635	nelts_identifier.
14636	(build_offset_rf): Remove dead code.
14637	(build_delete): Use CLASSTYPE_N_BASECLASSES.
14638	* search.c (init_search_processing): Don't initialize
14639	vptr_identifier.
14640
146412000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14642
14643	* typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide
14644	some sign_compare warnings.
14645
146462000-04-07  Nathan Sidwell  <nathan@codesourcery.com>
14647
14648	Rename abi::__vmi_class_type_info members.
14649	* inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases,
14650	base_list, detail_masks members to vmi_flags, vmi_base_count,
14651	vmi_bases and vmi_flags_masks respectively.
14652	(__vmi_class_type_info::vmi_flags_masks): Rename
14653	details_unknown_mask to flags_unknown_mask.
14654	* tinfo.cc (__class_type_info::do_upcast): Adjust.
14655	(__vmi_class_type_info::do_find_public_src): Adjust.
14656	(__vmi_class_type_info::do_dyncast): Adjust.
14657	(__vmi_class_type_info::do_upcast): Adjust.
14658
146592000-04-07  Nathan Sidwell  <nathan@codesourcery.com>
14660
14661	* tinfo.cc (convert_to_base): New function.
14662	(get_vbase_offset): Remove. Move into convert_to_base.
14663	(__vmi_class_type_info::do_find_public_src): Adjust.
14664	(__vmi_class_type_info::do_dyncast): Adjust.
14665	(__vmi_class_type_info::do_upcast): Adjust.
14666
146672000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
14668
14669	* tinfo.cc (operator=): Use __builtin_strcmp.
14670	* tinfo2.cc (before): Likewise.
14671
146722000-04-06  Mark Mitchell  <mark@codesourcery.com>
14673
14674	* cp-tree.h (lang_decl_flags): Rename saved_inline to deferred.
14675	(DECL_SAVED_INLINE): Rename to ...
14676	(DECL_DEFERRED_FN): ... this.
14677	(in_function_p): Remove declaration.
14678	(mark_inline_for_output): Rename to ...
14679	(defer_fn): ... this.
14680	* decl.c (finish_function): Adjust call to mark_inline_for_output.
14681	(in_function_p): Remove definition.
14682	* decl2.c (saved_inlines): Rename to ...
14683	(deferred_fns): ... this.
14684	(saved_inlines_used): Rename to ...
14685	(deferred_fns_used): ... this.
14686	(mark_inline_for_output): Rename to ...
14687	(defer_fn): ... this.
14688	(finish_file): Adjust accordingly.
14689	(init_decl2): Likewise.
14690	* lex.c (cons_up_default_function): Likewise.
14691	* pt.c (mark_decl_instantiated): Likewise.
14692	(instantiate_decl): Don't set DECL_DEFER_OUTPUT under any
14693	circumstances.
14694	* rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output.
14695	* semantics.c (expand_body): Defer more functions.
14696
146972000-04-06  Nathan Sidwell  <nathan@codesourcery.com>
14698
14699	* vec.cc: New file.
14700	* Make-lang.in (CXX_LIB2FUNCS): Add it.
14701	(vec.o): Build it.
14702	* inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
14703	__cxa_vec_delete): Declare.
14704
147052000-04-06  Nathan Sidwell  <nathan@codesourcery.com>
14706
14707	* rtti.c (dfs_class_hint_mark): New static function.
14708	(dfs_class_hint_unmark): New static function.
14709	(class_hint_flags): Use them.
14710
147112000-04-05  Benjamin Kosnik  <bkoz@cygnus.com>
14712
14713	* decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE.
14714
147152000-04-05  Mark Mitchell  <mark@codesourcery.com>
14716
14717	* cp-tree.h (instantiate_decl): Change prototype.
14718	* decl2.c (mark_used): Adjust call.
14719	* optimize.c (inlinable_function_p): Adjust handling of templates.
14720	* pt.c (do_decl_instantiation): Adjust call to instantiate_decl.
14721	(do_type_instantiation): Likewise.
14722	(instantiate_decl): Defer more templates.
14723	(instantiate_pending_templates): Adjust logic to handle inline
14724	friend functions.
14725
14726	* Makefile.in (GGC_H): New variable.  Use it throughout in place
14727	of ggc.h.
14728
14729	* call.c: Don't include obstack.h.  Include ggc.h.
14730	(obstack_chunk_alloc): Don't define.
14731	(obstack_chunk_free): Likewise.
14732	(add_candidate): Allocate the z_candidate with ggc_alloc_obj.
14733	* decl.c (push_switch): Use xmalloc to allocate the cp_switch.
14734	(pop_switch): Free it.
14735
14736	* decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs.
14737
14738	* dump.c (dequeue_and_dump): Don't try to print the bit_position
14739	if we don't have a DECL_FIELD_OFFSET.
14740
14741Wed Apr  5 15:12:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14742
14743	* optimize.c (calls_setjmp_r): Use setjmp_call_p instead of
14744	special_function_p.
14745
147462000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14747
14748	* cfns.gperf (hash, libc_name_p): Prototype.
14749
14750	* rtti.c (build_dynamic_cast_1): Constification.
14751
14752	* search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes.
14753
14754	* semantics.c (deferred_type_access_control): Prototype.
14755
147562000-04-04  Mark Mitchell  <mark@codesourcery.com>
14757
14758	Correct many new ABI issues regarding vbase and vcall offset
14759	layout.
14760	* cp-tree.h (BINFO_VTABLE): Document.
14761	(struct lang_type): Tweak formatting.
14762	(BINFO_PRIMARY_BINFO): Add to documentation.
14763	(CLASSTYPE_VSIZE): Fix typo in comment.
14764	(CLASSTYPE_VBASECLASSES): Update documentation.
14765	(BINFO_VBASE_MARKED): Remove.
14766	(SET_BINFO_VBASE_MARKED): Likewise.
14767	(CLEAR_BINFO_VBASE_MARKED): Likewise.
14768	(BINFO_FIELDS_MARKED): Remove.
14769	(SET_BINFO_FIELDS_MARKED): Likewise.
14770	(CLEAR_BINFO_FIELDS_MARKED): Likewise.
14771	(enum access_kind): New enumeration.
14772	(num_extra_vtbl_entries): Remove declaration.
14773	(size_extra_vtbl_entries): Likewise.
14774	(get_vtbl_decl_for_binfo): New function.
14775	(dfs_vbase_unmark): Remove declaration.
14776	(mark_primary_bases): Likewise.
14777	* class.c (SAME_FN): Remove.
14778	(struct vcall_offset_data_s): Move definition.
14779	(build_vbase_pointer): Use `build', not `build_binary_op', to
14780	access the vbase pointer under the new ABI.
14781	(build_vtable_entry_ref): Use get_vtbl_decl_for_binfo.
14782	(build_primary_vtable): Likewise.
14783	(dfs_mark_primary_bases): Move here from search.c.
14784	(mark_primary_bases): Likewise.
14785	(determine_primary_bases): Under the new ABI, don't make a base
14786	class a primary base just because we don't yet have any virtual
14787	functions.
14788	(layout_vtable_decl): Use get_vtbl_decl_for_binfo.
14789	(num_vfun_entries): Remove.
14790	(dfs_count_virtuals): Likewise.
14791	(num_extra_vtbl_entries): Likewise.
14792	(size_extra_vtbl_entries): Likewise.
14793	(layout_virtual_bases): Iterate in inheritance graph order under
14794	the new ABI.
14795	(finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to
14796	indicate that a vfield is present.
14797	(init_class_processing): Initialize access_public_node, etc., from
14798	ak_public, etc.
14799	(get_vtbl_decl_for_binfo): New function.
14800	(dump_class_hierarchy_r): Likewise.
14801	(dump_class_hierarchy): Use it.
14802	(finish_vtbls): Build the vtbls in inheritance graph order.
14803	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
14804	(initialize_vtable): Use get_vtbl_decl_for_binfo.
14805	(accumulate_vtbl_inits): Add comments explaining why a pre-order
14806	walk is required.
14807	(dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location
14808	where the vptr points, even for primary vtables.
14809	(build_vtbl_initializer): Adjust handling of vbase and vcall
14810	offsets.
14811	(build_vcall_and_vbase_vtable_entries): New function.
14812	(dfs_build_vbase_offset_vtbl_entries): Remove.
14813	(build_vbase_offset_vtbl_entries): Reimplement.
14814	(dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that
14815	were already handled in a primary base class vtable.
14816	(build_vcall_offset_vtbl_entries): Adjust.
14817	(build_rtti_vtbl_entries): Adjust.
14818	* decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo.
14819	* init.c (expand_virtual_init): Simplify.
14820	* repo.c (repo_get_id): Use get_vtbl_decl_for_binfo.
14821	* rtti.c (create_pseudo_type_info): Adjust calculation of vptr.
14822	* search.c (BINFO_ACCESS): New macro.
14823	(SET_BINFO_ACCESS): Likewise.
14824	(dfs_access_in_type): Manipulate access_kinds, not access nodes.
14825	(access_in_type): Likewise.
14826	(dfs_accessible_p): Likewise.
14827	(protected_accessible_p): Likewise.
14828	(lookup_fnfields_1): Adjust documentation.
14829	(dfs_mark_primary_bases): Move to class.c
14830	(mark_primary_bases): Likewise.
14831	(dfs_vbase_unmark): Remove.
14832	(virtual_context): Use BINFO_FOR_VBASE.
14833	(dfs_get_vbase_types): Simplify.
14834	(dfs_build_inheritance_graph_order): New function.
14835	(get_vbase_types): Use it.
14836	* tree.c (debug_binfo): Use get_vtbl_decl_for_binfo.
14837
14838	* tinfo.cc (get_vbase_offset): New function.
14839	(__vmi_class_type_info::do_find_public_src): Use it.
14840	(__vmi_class_type_info::do_dyncast): Likewise.
14841	(__vmi_class_type_info::do_upcast): Likewise.
14842
148432000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
14844
14845	* lang-specs.h: Pass -fno-show-column to the preprocessor.
14846
148472000-03-30  Nathan Sidwell  <nathan@codesourcery.com>
14848
14849	* rtti.c (class_hint_flags): Rename flags.
14850	(class_initializer): Remove flags.
14851	(synthesize_tinfo_var): Combine offset and flags. Add flags
14852	for __vmi_class_type_info.
14853	(create_tinfo_types): Remove flags from __class_type_info and
14854	__si_class_type_info. Merge flags and offset from
14855	base_class_type_info.
14856	* inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags.
14857	(__base_class_info::is_virtual_p): Adjust.
14858	(__base_class_info::is_public_p): Adjust.
14859	(__base_class_info::offset): New accessor.
14860	(__class_type_info::details): Remove member.
14861	(__class_type_info::__class_type_info): Lose details.
14862	(__class_type_info::detail_masks): Remove.
14863	(__si_class_type_info::__si_class_type_info): Lose details.
14864	(__vmi_class_type_info::details): New member.
14865	(__vmi_class_type_info::__vmi_class_type_info): Adjust.
14866	(__vmi_class_type_info::detail_masks): New member.
14867	* tinfo.cc (__class_type_info::do_upcast): Initialize result
14868	with unknown_details_mask.
14869	(__vmi_class_type_info::do_find_public_src): Adjust
14870	(__vmi_class_type_info::do_dyncast): Adjust.
14871	(__vmi_class_type_info::do_upcast): Set result details, if
14872	needed. Adjust.
14873	(__dynamic_cast): Temporarily #if out optimization.
14874
148752000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
14876
14877	* rtti.c (get_tinfo_decl): Mark used.
14878	(emit_tinfo_decl): Don't optimize polymorphic type_info. Only
14879	mark as dealt with, if we output it.
14880
148812000-03-28  Mark Mitchell  <mark@codesourcery.com>
14882
14883	* class.c: Reorganize to put virtual function table initialization
14884	machinery at the end of the file.
14885
148862000-03-28  Jason Merrill  <jason@casey.cygnus.com>
14887
14888	* class.c (finish_struct): Use bitsize_zero_node.
14889	* pt.c (instantiate_class_template): Likewise.
14890
148912000-03-28  Mark Mitchell  <mark@codesourcery.com>
14892
14893	Put RTTI entries at negative offsets in new ABI.
14894	* class.c (dfs_build_vbase_offset_vtbl_entries): Put the first
14895	vbase offset at index -3, not -1.
14896	(build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not
14897	dfs_vtable_path_unmarked_real_bases_queue_p to walk bases.
14898	(dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff.
14899	(build_rtti_vtbl_entries): New function.
14900	(set_rtti_entry): Remove.
14901	(build_primary_vtable): Don't use it.
14902	(build_secondary_vtable): Likewise.
14903	(start_vtable): Remove.
14904	(first_vfun_index): New function.
14905	(set_vindex): Likewise.
14906	(add_virtual_function): Don't call start_vtable.  Do call
14907	set_vindex.
14908	(set_primary_base): Rename parameter.
14909	(determine_primary_base): Likewise.
14910	(num_vfun_entries): Don't use skip_rtti_stuff.
14911	(num_extra_vtbl_entries): Include RTTI information.
14912	(build_vtbl_initializer): Use build_rtti_vtbl_entries.
14913	(skip_rtti_stuff): Remove.
14914	(dfs_modify_vtables): Don't use it.
14915	(modify_all_vtables): Don't use start_vtable.  Do use set_vindex.
14916	(layout_nonempty_base_or_field): Update size handling.
14917	(create_vtable_ptr): Tweak.
14918	(layout_class_type): Adjust parameter names.
14919	(finish_struct_1): Simplify.
14920	* cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation.
14921	(skip_rtti_stuff): Remove.
14922	(first_vfun_index): New function.
14923	(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
14924	(dfs_vtable_path_marked_real_bases_queue_p): Remove.
14925	(marked_vtable_pathp): Declare.
14926	(unmarked_vtable_pathp): Likewise.
14927	* error.c (dump_expr): Use first_vfun_index to calculate vtable
14928	offsets.
14929	* rtti.c (build_headof): Look for RTTI at negative offsets.
14930	(get_tinfo_decl_dynamic): Likewise.
14931	(tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL
14932	here.
14933	(create_pseudo_type_info): Do it here instead.  Adjust so that
14934	vptr points at first virtual function.
14935	* search.c (marked_vtable_pathp): Make it global.
14936	(unmarked_vtable_pathp): Likewise.
14937	(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
14938	(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
14939	(dfs_get_pure_virtuals): Don't use skip_rtti_stuff.
14940	(get_pure_virtuals): Likewise.
14941	(expand_upcast_fixups): Likewise.
14942	* tree.c (debug_binfo): Likewise.
14943	* tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate
14944	negative offset.
14945
14946Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14947
14948	* class.c (check_field_decl): Fix typo.
14949	(build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS.
14950	(check_methods): Likewise.
14951	(check_field_decls): Likewise.
14952	Use DECL_CONTEXT, not DECL_FIELD_CONTEXT.
14953	* cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT):
14954	Use DECL_RESULT_FLD, not DECL_RESULT.
14955	* decl.c (xref_tag): Use DECL_TEMPLATE_RESULT.
14956	* lex.c (identifier_type): Likewise.
14957	* pt.c (determine_specialization, lookup_template_class): Likewise.
14958	(tsubst_friend_function, tsubst_decl, instantiate_template): Likewise.
14959	(resolve_overloaded_unification, more_specialized): Likewise.
14960	* semantics.c (finish_member_declaration): Likewise.
14961	* typeck.c (build_x_function_call): Likewise.
14962
149632000-03-26  Mark Mitchell  <mark@codesourcery.com>
14964
14965	* class.c (layout_empty_base): Handle empty bases with non-byte
14966	alignment.
14967	(build_base_field): Likewise.
14968	(layout_virtual_bases): Likewise.
14969
14970	* class.c (finish_struct_1): Fix typo in this change:
14971
14972	Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14973
149742000-03-25  Mark Mitchell  <mark@codesourcery.com>
14975
14976	* decl.c (grokdeclarator): Count partial specializations when
14977	keeping track of how many template classes have been seen.
14978
14979	* dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT.
14980
14981Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14982
14983	* class.c (build_vbase_pointer_fields): layout_field now place_field.
14984	(get_vfield_offset): Use byte_position.
14985	(set_rtti_entry): Set OFFSET to ssizetype zero.
14986	(get_binfo_offset_as_int): Deleted.
14987	(dfs_record_base_offsets): Use tree_low_cst.
14988	(dfs_search_base_offsets): Likewise.
14989	(layout_nonempty_base_or_field): Reflect changes in RLI format
14990	and call byte_position.
14991	(layout_empty_base): Convert offset to ssizetype.
14992	(build_base_field): use rli_size_unit_so_far.
14993	(dfs_propagate_binfo_offsets): Do computation in proper type.
14994	(layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets.
14995	(layout_class_type): Reflect changes in RLI names and fields.
14996	(finish_struct_1): Set DECL_FIELD_OFFSET.
14997	* dump.c (dequeue_and_dump): Call bit_position.
14998	* expr.c (cplus_expand_constant): Use byte_position.
14999	* rtti.c (expand_class_desc): Use bitsize_one_node.
15000	* typeck.c (build_component_addr): Use byte_position and don't
15001	special case for zero offset.
15002
150032000-03-24  Nathan Sidwell  <nathan@codesourcery.com>
15004
15005	* decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P.
15006
15007	* rtti.c (get_tinfo_decl): Set comdat linkage on new-abi
15008	tinfo object.
15009	(emit_tinfo_decl): Only emit polymorphic tinfo's when emitting
15010	vtable.
15011
150122000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
15013
15014	* call.c (check_dtor_name, build_new_method_call): Use TYPE_P and
15015	DECL_P macros.
15016	* decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name,
15017	make_typename_type, check_initializer, cp_finish_decl,
15018	xref_tag): Likewise.
15019	* decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree,
15020	decl_namespace, arg_assoc_template_arg, arg_assoc,
15021	validate_nonmember_using_decl, do_class_using_decl): Likewise.
15022	* error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of,
15023	args_to_string): Likewise.
15024	* friend.c (is_friend): Likewise.
15025	* lex.c (note_got_semicolon, note_list_got_semicolon,
15026	is_global): Likewise.
15027	* method.c (build_overload_nested_name, build_overload_value,
15028	build_qualified_name, build_qualified_name, hack_identifier): Likewise.
15029	* parse.y (typename_sub, typename_sub1): Likewise.
15030	* pt.c (push_inline_template_parms_recursive, check_template_shadow,
15031	process_partial_specialization, convert_template_argument,
15032	template_args_equal, add_pending_template, lookup_template_class,
15033	for_each_template_parm_r, maybe_fold_nontype_arg,
15034	tsubst, instantiate_template, type_unification_real, unify,
15035	instantiate_pending_templates, set_mangled_name_for_template_decl):
15036	Likewise.
15037	* repo.c (repo_get_id, repo_template_used): Likewise.
15038	* search.c (lookup_field_1): Likewise.
15039	* tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise.
15040	* xref.c (classname): Likewise.
15041
150422000-03-22  Mark Mitchell  <mark@codesourcery.com>
15043
15044	* cp-tree.h (BINFO_FOR_VBASE): Adjust documentation.
15045	(CANONICAL_BINFO): New macro.
15046	(BINFO_NEW_VTABLE_MARKED): Use it.
15047	(SET_BINFO_NEW_VTABLE_MARKED): Likewise.
15048	(CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise.
15049	* class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE,
15050	not TREE_TYPE.
15051	(build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED.
15052	(build_secondary_vtable): Likewise.
15053	(dfs_finish_vtbls): Likewise.
15054	(dfs_accumulate_vtbl_inits): Likewise.
15055	(accumulate_vtbl_inits): New function.
15056	(finish_vtbls): Make sure that virtual bases come after
15057	non-virtual bases in the vtable group.
15058	(record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL.
15059	(finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED.
15060	* search.c (struct vbase_info): Move definition.
15061	(marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED.
15062	(unmarked_new_vtable_p): Likewise.
15063	(dfs_mark_vtable_path): Remove.
15064	(dfs_mark_new_vtable): Remove.
15065	(dfs_unmark_new_vtable): Likewise.
15066	(dfs_clear_search_slot): Likewise.
15067	(dfs_find_vbases):  Adjust usage of BINFO_NEW_VTABLE_MARKED.
15068	(dfs_clear_vbase_slots): Likewise.
15069	(init_vbase_pointers): LIkewise.
15070
150712000-03-22  Jason Merrill  <jason@casey.cygnus.com>
15072
15073	* typeck.c (type_after_usual_arithmetic_conversions): Prefer a
15074	SIZETYPE to a non-SIZETYPE.
15075
150762000-03-21  Mark Mitchell  <mark@codesourcery.com>
15077
15078	* class.c (layout_virtual_bases): Adjust names in conditionally
15079	compiled code.
15080
15081	* class.c (record_base_offsets): New function.
15082	(layout_conflict_p): Likewise.
15083	(layout_nonempty_base_or_field): Use it.
15084	(layout_empty_base): New function.
15085	(build_base_field): Use it.
15086	(build_base_fields): Update comment.
15087	(layout_virtual_bases): Fold in a little code form
15088	layout_basetypes.  Use layout_empty_base.
15089	(layout_basetypes): Remove.
15090	(end_of_class): New function.
15091	(layout_class_type): Use it.  Adjust.
15092
15093	* cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment.
15094	(fntype_p): Remove.
15095	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in
15096	comment.
15097	(dfs_skip_nonprimary_vbases_markedp): Likewise.
15098	* typeck.c (fntype_p): Remove.
15099
15100	* cp-tree.h (TI_SPEC_INFO): Remove.
15101	(CLASSTYPE_TI_SPEC_INFO): Likewise.
15102	* pt.c (process_partial_specialization): Likewise.
15103
15104	* class.c (build_base_field): Fix thinko in computation of binfo
15105	offsets.
15106
15107	* tree.c (mark_local_for_remap_p): Mark variables declared in
15108	TARGET_EXPRs as well.
15109
151102000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
15111
15112	* typeck.c (require_complete_type, complete_type,
15113	complete_type_or_else, c_sizeof, c_sizeof_nowarn,
15114	build_array_ref, convert_arguments, pointer_diff,
15115	build_x_unary_op, build_unary_op, build_c_cast,
15116	build_modify_expr): Use COMPLETE_TYPE_P etc.
15117	* call.c (is_complete, convert_like_real,
15118	build_new_method_call): Likewise.
15119	* class.c (build_vbase_pointer_fields, check_bases,
15120	build_base_field, finish_struct_1, pushclass): Likewise.
15121	* cvt.c (cp_convert_to_pointer, convert_to_void): Likewise.
15122	* decl.c (maybe_process_template_type_declaration, pushtag,
15123	pushdecl, redeclaration_error_message, start_decl, start_decl_1,
15124	layout_var_decl, check_initializer, cp_finish_decl,
15125	grokdeclarator, require_complete_types_for_parms,
15126	grok_op_properties, xref_tag, xref_basetypes,
15127	check_function_type): Likewise.
15128	* decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise.
15129	* friend.c (do_friend): Likewise.
15130	* init.c (build_offset_ref): Likewise.
15131	* parse.y (structsp): Likewise.
15132	* pt.c (maybe_process_partial_specialization,
15133	tsubst_friend_function, instantiate_class_template, tsubst,
15134	do_type_instantiation, instantiate_pending_templates): Likewise.
15135	* repo.c (repo_get_id): Likewise.
15136	* rtti.c (build_typeid, get_typeid, build_dynamic_cast_1,
15137	synthesize_tinfo_var, emit_support_tinfos): Likewise.
15138	* search.c (lookup_fnfields_1, lookup_conversions): Likewise.
15139	* semantics.c (begin_class_definition): Likewise.
15140	* tree.c (build_cplus_method_type): Likewise.
15141	* typeck2.c (digest_init, build_functional_cast,
15142	add_exception_specifier): Likewise.
15143	* parse.h, parse.c: Regenerated.
15144
151452000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
15146
15147	* inc/cxxabi.h: New header file. Define new-abi entry points.
15148	(__pointer_type_info::target): Rename member to ...
15149	(__pointer_type_info::type): ... here.
15150	(__base_class_info::type): Rename member to ...
15151	(__base_class_info::base): ... here.
15152	* Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h
15153	* cp-tree.h (CPTI_ABI): New global tree enumeration.
15154	(abi_node): New global tree node.
15155	* decl.c (abi_node): Document.
15156	(init_decl_processing): Initialize abi_node.
15157	* rtti.c (build_dynamic_cast_1): Use abi_node for new-abi.
15158	(get_vmi_pseudo_type_info): Likewise.
15159	(create_tinfo_types): Likewise.
15160	(emit_support_tinfos): Likewise.
15161	* tinfo.h (cxxabi.h): Include for new-abi.
15162	Move rtti class definitions to new header file.
15163	* tinfo.cc (abi): Use the namespace.
15164	(std): Move new abi rtti classes from here ...
15165	(__cxxabiv1): ... to here.
15166	* tinfo2.cc (cxxabi.h): Include for new-abi.
15167	Move rtti class definitions to new header file.
15168	(std): Move new abi rtti classes from here ...
15169	(__cxxabiv1): ... to here.
15170	* inc/typeinfo (__class_type_info): Move into __cxxabiv1
15171	namespace.
15172
151732000-03-20  Jed Wing <jedwin@zloty.ugcs.caltech.edu>
15174	    Jason Merrill  <jason@casey.cygnus.com>
15175
15176	* method.c (build_overload_int): Use host_integerp.
15177
151782000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
15179
15180	* init.c (build_offset_ref): Handle the case of a templated member
15181	function.
15182
151832000-03-19  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
15184
15185	* except.c (expand_exception_blocks): Clear catch_clauses_last.
15186
151872000-03-18  Mark Mitchell  <mark@codesourcery.com>
15188
15189	* cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro.
15190	* class.c (check_bitfield_decl): Turn illegal bitfields into
15191	non-bitfields.
15192	(dfs_propagate_binfo_offsets): Adjust for new size_binop
15193	semantics.
15194	(dfs_offset_for_unshared_vbases): Likewise.
15195	* cvt.c (cp_convert_to_pointer): Convert NULL to a
15196	pointer-to-member correctly under the new ABI.
15197	* expr.c (cplus_expand_constant): Don't use cp_convert when
15198	turning an offset into a pointer-to-member.
15199	* init.c (resolve_offset_ref): Don't adjust pointers-to-members
15200	when dereferencing them under the new ABI.
15201	* typeck.c (get_member_function_from_ptrfunc): Tweak calculation
15202	of pointers-to-members under the new ABI.
15203
15204	* class.c (check_bitfield_decl): Remove restriction on really long
15205	bitfields.
15206	(layout_class_type): Implement new ABI handling of bitfields
15207	longer than their types.
15208
152092000-03-18  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
15210
15211	* parse.y (extdefs): Call ggc_collect.
15212	* parse.c: Regenerated.
15213
152142000-03-18  Nathan Sidwell  <nathan@codesourcery.com>
15215
15216	* class.c (build_base_field): Use TYPE_ALIGN to examine a type.
15217	(note_name_declared_in_class): Use OVL_CURRENT to get at a
15218	potential overload.
15219
15220Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15221
15222	* class.c (build_vbase_path): Use integer_zerop.
15223	(build_vtable_entry): Use tree_low_cst.
15224	(get_vfield_offset): Use bit_position.
15225	(dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT.
15226	Use tree_low_cst.
15227	(check_bitfield_decl): Set DECL_SIZE using convert.
15228	(build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop.
15229	(layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT.
15230	Use tree_low_cst.
15231	(finish_struct_1): Use bit_position.
15232	(dump_class_hierarchy): Use tree_low_cst.
15233	* cp-tree.h (min_precision): Add declaration.
15234	* decl.c (xref_tag, xref_basetypes): Use tree_low_cst.
15235	* error.c (dump_type_suffix): Use host_integerp and tree_low_cst.
15236	(dump_expr): Use integer_zerop, host_integerp, and tree_low_cst.
15237	* expr.c (cplus_expand_constant): Use bit_position.
15238	* init.c (build_vec_init): Use host_integerp and tree_low_cst.
15239	* rtti.c (get_base_offset): Use bit_position.
15240	* typeck.c (build_binary_op): Use integer_zerop, compare_tree_int,
15241	host_integerp, and tree_low_cst.
15242	(pointer_int_sum): Use integer_zerop.
15243	(build_component_addr): Use bit_position.
15244
152452000-03-17  Nathan Sidwell  <nathan@codesourcery.com>
15246
15247	* typeck.c (require_complete_type): Don't assume size_zero_node.
15248	(complete_type_or_else): Likewise.
15249
152502000-03-16  Steven Grady <grady@digitaldeck.com>
15251	    Jason Merrill  <jason@casey.cygnus.com>
15252
15253	* rtti.c (build_dynamic_cast_1): Improve diagnostics.
15254
152552000-03-16  Nathan Sidwell  <nathan@codesourcery.com>
15256
15257	* decl2.c (grokfield): Bail out if type is error_mark_node.
15258
152592000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
15260
15261	* tinfo2.cc (__ptr_to_member_data): Rename to ...
15262	(__pointer_to_member_data): ... here. Adjust.
15263	* rtti.c (create_tinfo_types): Adjust.
15264
152652000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
15266
15267	* cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove.
15268	* decl.c (ref_desc_type_node): Undocument.
15269	* rtti.c (ptr_ref_initializer): Rename to ...
15270	(ptr_initializer): ... here. Adjust comments.
15271	(ptmd_initializer): Fix comment thinko.
15272	(synthesize_tinfo_var): Remove REFERENCE_TYPE case.
15273	(create_tinfo_types): Remove ref_desc_type_node init.
15274	* tinfo2.cc (__reference_type_info): Remove.
15275
152762000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
15277
15278	* decl.c (cp_finish_decl): Remove obsolete comment.
15279
15280	* typeck.c (build_ptrmemfunc1): Kill uninitialized warning.
15281
152822000-03-14  Mark Mitchell  <mark@codesourcery.com>
15283
15284	* cp-tree.h: Tweak documentation.
15285	* class.c (build_vbase_pointer_fields): Layout the fields, too.
15286	(avoid_overlap): Remove.
15287	(get_binfo_offset_as_int): New function.
15288	(dfs_serach_base_offsets): Likewise.
15289	(layout_nonempty_base_or_field): Likewise.
15290	(build_base_field): Layout fields here.  Avoid placing two objects
15291	of the same type at the same address, under the new ABI.
15292	(build_base_fields): Adjust accordingly.
15293	(create_vtable_ptr): Return the new field, but don't attach it to
15294	TYPE_FIELDS.
15295	(remove_base_field): Remove.
15296	(remove_base_fields): Remove.
15297	(layout_basetypes): Adjust accordingly.
15298	(layout_class_type): Call layout_field for each field, rather than
15299	just making a wholesale call to layout_type.
15300
153012000-03-14  Jeff Sturm  <jsturm@sigma6.com>
15302
15303	* except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw.
15304
153052000-03-13  Jason Merrill  <jason@casey.cygnus.com>
15306
15307	* decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P.
15308
15309	* except.c (dtor_nothrow): New fn.
15310	(do_pop_exception): Use it.  Take type parm.
15311	(push_eh_cleanup): Take type parm.
15312	(expand_start_catch_block): Pass it.
15313	(build_eh_type_type_ref): Accept null type.
15314
153152000-03-12  Mark Mitchell  <mark@codesourcery.com>
15316
15317	* cp-tree.h (revert_static_member_fn): Change prototype.
15318	* decl.c (grokfndecl): Adjust call to revert_static_member_fn.
15319	(grok_op_properties): Likewise.
15320	(start_function): Likewise.
15321	(revert_static_member_fn): Simplify.
15322	* pt.c (check_explicit_specialization): Adjust call to
15323	revert_static_member_fn.
15324
153252000-03-11  Mark Mitchell  <mark@codesourcery.com>
15326
15327	* cp-tree.h (scope_kind): New type.
15328	(tmpl_spec_kind): Likewise.
15329	(declare_pseudo_global_level): Remove.
15330	(pseudo_global_level_p): Rename to template_parm_scope_p.
15331	(pushlevel): Remove declaration.
15332	(begin_scope): New function.
15333	(finish_scope): Likewise.
15334	(current_tmpl_spec_kind): Likewise.
15335	* decl.c (struct binding_level): Shorten parm_flag to 2 bits.
15336	Shorten keep to 2 bits.  Rename pseudo_global to template_parms_p.
15337	Add template_spec_p.
15338	(toplevel_bindings_p): Adjust.
15339	(declare_pseudo_global_level): Remove.
15340	(pseudo_global_level_p): Rename to template_parm_scope_p.
15341	(current_tmpl_spec_kind): New function.
15342	(begin_scope): Likewise.
15343	(finish_scope): Likewise.
15344	(maybe_push_to_top_level): Adjust.
15345	(maybe_process_template_type_declaration): Likewise.
15346	(pushtag): Likewise.
15347	(pushdecl_nonclass_level): Likewise.
15348	(lookup_tag): Likewise.
15349	(grokfndecl): Handle member template specializations.  Share
15350	constructor and non-constructor code.
15351	* decl2.c (check_classfn): Handle member template specializations.
15352	* pt.c (begin_template_parm_list): Use begin_scope.
15353	(begin_specialization): Likewise.
15354	(end_specialization): Likewise.
15355	(check_explicit_specialization): Use current_tmpl_spec_kind.
15356	Handle member template specializations.
15357	(end_template_decl): Use finish_scope.  Remove call to
15358	get_pending_sizes.
15359	(push_template_decl_real): Remove bogus error message.
15360	(tsubst_decl): Fix typo in code contained in comment.
15361	(instantiate_template): Handle member template specializations.
15362	(most_general_template): Likewise.
15363
153642000-03-11  Gabriel Dos Reis  <gdr@codesourcery.com>
15365
15366	* lex.c (whitespace_cr): Compress consecutive calls to warning().
15367	(do_identifier): Ditto for error().
15368
15369	* pt.c (convert_nontype_argument): Ditto for cp_error().
15370	(convert_template_argument): Ditto for cp_pedwarn().
15371
153722000-03-11  Jason Merrill  <jason@casey.cygnus.com>
15373
15374	* exception.cc (__check_null_eh_spec): New fn.
15375	* except.c (expand_end_eh_spec): Call it if the spec is throw().
15376
153772000-03-10  Jason Merrill  <jason@casey.cygnus.com>
15378
15379	* decl.c (push_throw_library_fn): Take the FUNCTION_TYPE.
15380	* except.c (expand_end_eh_spec): Add the return type.
15381	* rtti.c (throw_bad_cast): Add the parmtypes.
15382	(throw_bad_typeid): Likewise.
15383
15384	* semantics.c (expand_stmt): Only leave out rtl for unused
15385	artificials, and set DECL_IGNORED_P on them as well.
15386	* decl.c (wrapup_globals_for_namespace): Likewise.
15387
153882000-03-09  Nathan Sidwell  <nathan@codesourcery.com>
15389
15390	* decl.c (maybe_commonize_var): Skip all artificial decls.
15391	* pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN.
15392
153932000-03-10  Jason Merrill  <jason@casey.cygnus.com>
15394
15395	* lang-options.h, decl2.c: Add -fno-enforce-eh-specs.
15396	* cp-tree.h: Declare flag_enforce_eh_specs.
15397	* decl.c (store_parm_decls, finish_function): Check it.
15398
15399	C library functions don't throw.
15400	* Makefile.in (cfns.h): New target.
15401	(except.o): Depend on it.
15402	* Make-lang.in (cc1plus): Depend on cfns.gperf.
15403	* cfns.gperf: New file.
15404	* cfns.h: Generated.
15405	* except.c: Include it.
15406	(nothrow_libfn_p): New fn.
15407	* decl.c (grokfndecl): Use it.
15408	* cp-tree.h: Declare it.
15409
15410	* decl.c (push_overloaded_decl_1, auto_function,
15411	define_function): Lose.
15412	(build_library_fn_1): New static fn.
15413	(builtin_function): Use it.
15414	(get_atexit_node): Use build_library_fn_ptr.
15415	(build_library_fn, build_cp_library_fn, build_library_fn_ptr,
15416	build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn,
15417	push_void_library_fn, push_throw_library_fn): New fns.
15418	* cp-tree.h: Declare them.
15419	(cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID.
15420	(throw_bad_cast_node, throw_bad_typeid_node): Lose.
15421	* except.c (init_exception_processing, call_eh_info, do_pop_exception,
15422	(expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns.
15423	* rtti.c (build_runtime_decl): Lose.
15424	(throw_bad_cast, throw_bad_typeid, get_tinfo_decl,
15425	build_dynamic_cast_1, expand_si_desc, expand_class_desc,
15426	expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns.
15427
15428	* call.c (build_call): Remove result_type parm.
15429	Call mark_used on unused artificial fns.
15430	* init.c, method.c, typeck.c, except.c, rtti.c: Adjust.
15431
154322000-03-09  Jason Merrill  <jason@casey.cygnus.com>
15433
15434	* call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as
15435	appropriate.
15436	* decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL.
15437	* except.c (call_eh_info, alloc_eh_object, expand_throw): Set
15438	TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate.
15439	* rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1,
15440	expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc,
15441	expand_generic_desc): Likewise.
15442
154432000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
15444
15445	* exception.cc (__cp_pop_exception): Cleanup the original object.
15446
154472000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
15448
15449	* decl.c (grok_op_properties): Merge conversion to void warning
15450	with other silly op warnings.
15451
154522000-03-08  Jason Merrill  <jason@casey.cygnus.com>
15453
15454	* typeck2.c (process_init_constructor): Set TREE_PURPOSE of
15455	array CONSTRUCTOR elements.  Don't use expr_tree_cons.
15456
154572000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
15458
15459	* decl.c (cp_make_fname_decl): New function.
15460	(wrapup_globals_for_namespace): Don't emit unused static vars.
15461	(init_decl_processing): Remove comment about use of
15462	array_domain_type. Set make_fname_decl.
15463	(cp_finish_decl): Remove __FUNCTION__ nadgering.
15464	* semantics.c (begin_compound_stmt): Remove
15465	current_function_name_declared flagging.
15466	(expand_stmt): Don't emit unused local statics.
15467	* typeck.c (decay_conversion): Don't treat __FUNCTION__ decls
15468	specially.
15469
154702000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
15471
15472	* typeck.c (convert_for_assignment): Don't look at array
15473	initializer.
15474	* call.c (convert_like_real): Likewise.
15475
154762000-03-07  Jason Merrill  <jason@casey.cygnus.com>
15477
15478	Add initial support for '\uNNNN' specifier.
15479	* lex.c (read_ucs): New fn.
15480	(readescape, skip_white_space): Call it.
15481	(is_extended_char, is_extended_char_1): New fns.
15482	(utf8_extend_token): New fn, #if 0'd out.
15483	(real_yylex): Treat extended chars like letters.
15484
15485	* search.c (note_debug_info_needed): Walk the bases even if we
15486	weren't deferring the type itself.
15487
154882000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15489
15490	* decl2.c (finish_objects): Constify a char*.
15491
15492	* method.c (emit_thunk): Likewise.
15493
154942000-03-06  Nathan Sidwell  <nathan@codesourcery.com>
15495
15496	* typeck.c (dubious_conversion_warnings): Look through
15497	REFERENCE_TYPE.
15498
15499Mon Mar  6 08:46:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15500
15501	* class.c (dfs_modify_vtables): I is now unsigned.
15502	(check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int.
15503	(build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT.
15504	* error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned.
15505	* init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
15506	* method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned.
15507	* typeck.c (build_binary_op, case TRUNC_DIV_EXPR):
15508	Call integer_all_onesp.
15509	* typeck2.c (process_init_constructor): Use compare_tree_int.
15510
15511	* lang-specs.h (as): Don't call if -syntax-only.
15512
155132000-03-06  Mark Mitchell  <mark@codesourcery.com>
15514
15515	* expr.c (cplus_expand_expr, case STMT_EXPR): Don't set
15516	RTL_EXPR_HAS_NO_SCOPE after all.
15517
155182000-03-05  Mark Mitchell  <mark@codesourcery.com>
15519
15520	* expr.c (cplus_expand_expr, case STMT_EXPR): Use
15521	expand_start_stmt_expr and expand_end_stmt_expr directly.  Set
15522	RTL_EXPR_HAS_NO_SCOPE.
15523
15524	* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little
15525	later.
15526
15527	* dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P.
15528
155292000-03-05  Nathan Sidwell  <nathan@codesourcery.com>
15530
15531	* call.c (convert_like): Macrofy.
15532	(convert_like_with_context): New macro.
15533	(convert_like_real): Renamed from convert_like.  Add calling
15534	context parameters, for diagnostics. Add recursive flag.  Call
15535	dubious_conversion_warnings for outer conversion.
15536	(build_user_type_conversion): Use convert_like_with_context.
15537	(build_over_call): Likewise. Don't warn about dubious
15538	conversions here. Adjust convert_default_arg calls.
15539	(convert_default_arg): Add context parameters for diagnostics.
15540	Pass through to convert_like_with_context.
15541	* cp-tree.h (convert_default_arg): Add context parameters.
15542	(dubious_conversion_warnings): Prototype new function.
15543	* typeck.c (convert_arguments): Adjust convert_default_arg call.
15544	(dubious_conversion_warnings): New function, broken
15545	out of convert_for_assignment.
15546	(convert_for_assignment): Adjust.
15547
155482000-03-03  Jason Merrill  <jason@casey.cygnus.com>
15549
15550	* decl2.c (key_method): Break out from...
15551	(import_export_vtable, import_export_class): ...here.
15552
15553	* decl.c (finish_function): Don't mess with flag_keep_inline_functions.
15554	* decl2.c (finish_vtable_vardecl): Don't check decl_function_context.
15555
15556	* search.c (note_debug_info_needed, dfs_debug_mark,
15557	dfs_debug_unmarkedp): Uncomment.  Adjust for new scheme.
15558	* decl2.c (finish_vtable_vardecl): Call note_debug_info_needed.
15559
155602000-03-03  Nathan Sidwell  <nathan@codesourcery.com>
15561
15562	* decl.c (cp_finish_decl): Remove obsolete obstack comments, fix
15563	typos.
15564
155652000-03-02  Mark Mitchell  <mark@codesourcery.com>
15566
15567	* cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ...
15568	(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this.
15569	(TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro.
15570	(lang_type): Split gets_new into has_new and has_array_new.
15571	(TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
15572	(TYPE_GETS_NEW): Split into ...
15573	(TYPE_HAS_NEW_OPERATOR): ... this, and ...
15574	(TYPE_HAS_ARRAY_NEW_OPERATOR): ... this.
15575	(DECL_ARRAY_DELETE_OPERATOR_P): New macro
15576	(build_op_new_call): Don't declare.
15577	(build_new_1): Likewise.
15578	* call.c (build_op_new_call): Remove.
15579	* class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR
15580	instead of TYPE_NEEDS_DESTRUCTOR.
15581	(finish_struct_bits): Likewise.
15582	(add_implicitly_declared_members): Likewise.
15583	(check_field_decl): Likewise.
15584	(check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it
15585	correctly under the new ABI.
15586	* decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR
15587	instead of TYPE_NEEDS_DESTRUCTOR.
15588	(initialize_local_var): Likewise.
15589	(destroy_local_var): Likewise.
15590	(cp_finish_decl): Likewise.
15591	(register_dtor_fn): Likewise.
15592	(grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and
15593	TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW.  Don't set
15594	TYPE_VEC_DELETE_TAKES_SIZE here.
15595	(xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and
15596	TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW.
15597	(store_parm_decls):  Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
15598	(finish_destructor_body): Likewise.
15599	(maybe_build_cleanup_1): Likewise.
15600	* decl2.c (do_static_destruction): Likewise.
15601	* init.c (build_new_1): Make it static.
15602	(perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
15603	(expand_cleanup_for_base): Likewise.
15604	(get_cookie_size): New function.
15605	(build_new_1): Handle array-new cookies correctly under the new
15606	ABI.
15607	(build_vec_delete_1): Likewise.
15608	(build_vec_init):  Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
15609	(build_delete): Likewise.
15610	(build_vec_delete): Handle array-new cookies correctly under the new
15611	ABI.
15612	* lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
15613	* pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and
15614	TYPE_HAS_ARRAY_NEW_OPERATOR.
15615	* ptree.c (print_lang_type): Check them.
15616	* search.c (context_for_name_lookup): Fix typo in comment.
15617	(tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
15618	* tree.c (break_out_cleanups): Likewise.
15619	(build_cplus_array_test_1): Likewise.
15620	(cp_build_qualified_type_real): Likewise.
15621	* typeck.c (complete_type): Likewise.
15622
15623	* g++spec.c (lang_specific_driver): Add -fnew-abi at the start of
15624	the command-line, not the end.
15625
156262000-03-01  Jason Merrill  <jason@casey.cygnus.com>
15627
15628	* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG.
15629
156302000-03-02  Tom Tromey  <tromey@cygnus.com>
15631
15632	* cp-tree.h (build_java_class_ref): Declare.
15633	* init.c (build_java_class_ref): No longer static.
15634	* except.c (expand_throw): Generate a Java-style `throw' if the
15635	thrown object is a "Java" object.
15636	(initialize_handler_parm): Generate a Java-style lookup of
15637	exception info if the caught object is a "Java" object.
15638	(catch_language, catch_language_init): New globals.
15639	(decl_is_java_type): New function.
15640	(expand_start_catch_block): Don't call push_eh_info() or
15641	push_eh_cleanup() when handling a Java-style "catch".  Pass Java
15642	class reference to build_catch_block.
15643
15644Thu Mar  2 13:32:01 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15645
15646	* typeck.c (comptypes): Treat sizetype like its language equivalent.
15647
156482000-03-01  Bernd Schmidt  <bernds@cygnus.co.uk>
15649
15650	* typeck.c (maybe_warn_about_returning_address_of_local): Reorganize
15651	to merge reference/pointer code and fix incorrect warnings.
15652
156532000-02-29  Jason Merrill  <jason@casey.cygnus.com>
15654
15655	* search.c (protected_accessible_p): Use context_for_name_lookup.
15656
15657	* init.c (construct_virtual_bases): Fix thinko.
15658	* typeck.c (expand_ptrmemfunc_cst): Fix thinko.
15659
156602000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
15661
15662	* decl.c (current_function_decl): Move to toplev.c.
15663
156642000-02-29  Nathan Sidwell  <nathan@codesourcery.com>
15665
15666	* pt.c (fn_type_unification): Unify return type, whenever
15667	provided.
15668	(get_bindings_real): Only pass return type when necessary.
15669	Remove explicit return type check.
15670	* class.c (resolve_address_of_overloaded_function): Pass desired
15671	return type to fn_type_unification.
15672
15673Mon Feb 28 08:15:23 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15674
15675	* class.c (build_vtbl_or_vbase_field, check_methods): Don't clear
15676	DECL_FIELD_SIZE.
15677	(check_bitfield_decl, check_field_decls): Set DECL_SIZE, not
15678	DECL_FIELD_SIZE.
15679	* rtti.c (expand_class_desc): Likewise.
15680	* cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name.
15681	(THUNK_VCALL_OFFSET): Likewise.
15682	(THUNK_DELTA): Reflect changes in ../tree.h.
15683
156842000-02-28  Jason Merrill  <jason@casey.cygnus.com>
15685
15686	* search.c (protected_accessible_p): Also allow the access if
15687	the member is public in DERIVED.  Lose TYPE parm.
15688	(friend_accessible_p): Lose TYPE parm.
15689	(accessible_p): Adjust.
15690
15691Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15692
15693	* class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop
15694	on things that are not sizes; ssize_binop deleted.
15695	Call size_diffop when appropriate.
15696	(dfs_build_vcall_offset_vtbl_entries): Likewise.
15697	(build_primary_vtable, build_secondary_vtable): Likewise.
15698	(dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise.
15699	Variable I is HOST_WIDE_INT.
15700	(get_vfield_offset): Pass proper types to size_binop.
15701	(size_extra_vtbl_entries, layout_virtual_bases): Likewise.
15702	(finish_struct_1): Likewise.
15703	(skip_rtti_stuff): Arg N is now pointer to signed.
15704	(layout_class_type): Use size_zero_node.
15705	* cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed.
15706	* cvt.c (cp_convert_to_pointer): Pass proper types to size_binop.
15707	* decl.c (complete_arry_type): Pass proper types to size_binop.
15708	(xref_basetypes): BINFO_OFFSET is sizetype.
15709	* error.c (dump_expr): Don't use size_binop non-sizes.
15710	* expr.c (cplus_expand_constant): Pass proper types to size_binop.
15711	* init.c (construct_virtual_bases): Fix type error.
15712	(build_vec_delete_1): Pass proper type to size_binop and don't
15713	fold result.
15714	* lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype.
15715	* rtti.c (get_base_offset): Pass proper type to size_binop.
15716	* search.c (dfs_find_vbases): Fix type error.
15717	(expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed.
15718	(dfs_get_vbase_types): BINFO_OFFSET is sizetype.
15719	* tree.c (debug_binfo): Variable N is signed.
15720	Use HOST_WIDE_INT_PRINT_DEC.
15721	* typeck.c (comptypes): sizetype is same as equivalent integer type.
15722	(c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT,
15723	size_one_node and size_zero_node.
15724	(c_alignof): Use size_one_node.
15725	(build_component_addr): Pass proper types to size_binop.
15726	(expand_ptrmemfunc_cst): Don't use size_binop on non-sizes.
15727
157282000-02-26  Jason Merrill  <jason@casey.cygnus.com>
15729
15730	Implement class scope using-declarations for functions.
15731	* class.c (handle_using_decl): Call add_method for used functions.
15732	Use IDENTIFIER_CLASS_VALUE to check for conflicts.
15733	(add_method): Used functions are hidden by local functions.
15734	(check_bases_and_members): Handle using-decls before finalizing
15735	CLASSTYPE_METHOD_VEC.
15736	* call.c (add_function_candidate): Add ctype parm; if nonzero,
15737	override the type of 'this' accordingly.
15738	(add_template_candidate, add_template_candidate_real): Add ctype parm.
15739	(convert_class_to_reference, build_user_type_conversion_1,
15740	build_new_function_call, build_object_call, build_new_op,
15741	build_new_method_call): Pass ctype parm.
15742
15743	* search.c (lookup_member): Put rval_binfo, not basetype_path, in
15744	the baselink.
15745	* call.c (convert_class_to_reference, build_user_type_conversion_1,
15746	build_new_function_call, build_object_call, build_new_op,
15747	build_new_method_call, build_op_delete_call): Don't get basetype_path
15748	from a baselink.
15749	* typeck.c (build_component_ref): Likewise.
15750	* init.c (build_offset_ref): Likewise.
15751	(resolve_offset_ref): Don't call enforce_access.
15752	Call build_scoped_ref.
15753	* typeck2.c (build_scoped_ref): Simplify.  Do nothing if it
15754	would cause an error or if -pedantic.
15755	* class.c (alter_access): Lose binfo parm.
15756
157572000-02-26  Mark Mitchell  <mark@codesourcery.com>
15758
15759	* semantics.c (simplify_aggr_init_exprs_p): Don't walk into
15760	types.
15761
157622000-02-25  Alfred Minarik <a8601248@unet.univie.ac.at>
15763
15764	* rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info
15765	pseudo_type_info creation into the std namespace
15766
157672000-02-26  Mark Mitchell  <mark@codesourcery.com>
15768
15769	* cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF.
15770	(import_export_class): Remove declaration.
15771	* decl2.c (import_export_class): Make it static.
15772	* dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR,
15773	PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR,
15774	EXPR_WITH_FILE_LOCATION.
15775	* lex.c (check_newline): Tweak filename/lineno setting.
15776	* semantics.c (begin_while_stmt): Fix typo in comment.
15777
15778Sat Feb 26 19:50:23 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15779
15780	* lang-options.h (-fmessage-length=): Add missing option.
15781
15782	* Make-lang.in (CXX_SRCS): Add .h files and sort list.
15783
157842000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
15785
15786	* Make-lang.in: Delete refs to LIBGCC2_DEPS.
15787
15788Fri Feb 25 14:52:33 2000  Jim Wilson  <wilson@cygnus.com>
15789
15790	* optimize.c (expand_call_inline): Emit the return label before
15791	evaluating the return value.
15792
157932000-02-24  Mark Mitchell  <mark@codesourcery.com>
15794
15795	* lex.c (check_newline): Use push_srcloc and pop_srcloc, rather
15796	than duplicating functionality here.
15797	* optimize.c: Include input.h.
15798	(expand_call_inline): Use push_srcloc and pop_srcloc.
15799	* parse.y (maybe_cv_qualifier): Remove calls to emit_line_note.
15800	* parse.c: Regenerated.
15801	* Makefile.in (lex.o): Depend on input.h.
15802	(optimize.o): Likewise.
15803
158042000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
15805
15806	* decl.c (grokdeclarator): Diagnose qualifiers on non-member
15807	function type, rather than ICE.
15808
158092000-02-23  Jason Merrill  <jason@casey.cygnus.com>
15810
15811	* decl.c (grokdeclarator): Call decl_type_access_control.
15812	* parse.y (parse_end_decl): Don't call decl_type_access_control if
15813	decl is null.
15814
158152000-02-23  Nathan Sidwell  <nathan@codesourcery.com>
15816
15817	* decl.c (decls_match): Remove obsolete static member nadgering.
15818
158192000-02-21  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
15820
15821	* decl.c (grokdeclarator): Change ANSI to ISO.
15822	* lex.c (consume_string, readescape, do_identifier): Likewise.
15823	(parse_float, real_yylex): Likewise.
15824	* parse.y (paren_expr_or_null, paren_cond_or_null): Likewise.
15825	(unary_expr, new_initializer, cast_expr, primary, primary_no_id,
15826	new_type_id, maybe_label_decls, simple_stmt,
15827	for.init.statement): Likewise.
15828	* pt.c (do_decl_instantiation, do_type_instantiation): Likewise.
15829	* semantics.c (finish_named_return_value): Likewise.
15830	* parse.c: Regenerate.
15831
158322000-02-21  Mark Mitchell  <mark@codesourcery.com>
15833
15834	* cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro.
15835	(CPTI_CLASS_STAR_TYPE): Remove.
15836	(vtable_index_type): Likewise.
15837	(class_star_type_node): Remove.
15838	(TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI.
15839	(build_binary_op_nodefault): Remove.
15840	* call.c (build_new_op): Use build_binary_op instead of
15841	build_binary_op_nodefault.
15842	* decl.c (init_decl_processing): Remove class_star_type_node
15843	initialization.  Make delta_type_node ptrdiff_type_node under the
15844	new ABI.  Initialize vtable_index_type.
15845	(build_ptrmemfunc_type): Build different structures for the new
15846	ABI.
15847	(build_enumerator): Use build_binary_op instead of
15848	build_binary_op_nodefault.
15849	* method.c (build_overload_value): Mangle pointers-to-members
15850	appropriately under the new ABI.
15851	* typeck.c (build_array_ref): Use build_binary_op instead of
15852	build_binary_op_nodefault.
15853	(get_member_function_from_ptrfunc): Adjust for the new ABI.
15854	(build_binary_op_nodefault): Rename to ...
15855	(build_binary_op): ... this.  Remove old version.  Adjust for
15856	pointer-to-member comparisons under the new ABI.
15857	(build_ptrmemfunc1): Remove dead code.  Adjust for the new ABI.
15858	(build_ptrmemfunc): Adjust for the new ABI.
15859	(expand_ptrmemfunc_cst): Likewise.
15860	(delta2_from_ptrmemfunc): Assert that we're not using the new ABI.
15861	(pfn_from_ptrmemfunc): Adjust for the new ABI.
15862
158632000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
15864
15865	* call.c (build_object_call): Compress consecutive calls to
15866	cp_error.
15867	(build_conditional_expr): Say 'ISO C++' not 'ANSI C++'.
15868	(build_op_delete_call): Adjust message formatting.
15869
15870	* class.c (check_bases): Compress consecutive calls to
15871	cp_pedwarn.
15872	(finish_struct_anon): Say 'ISO C++'.
15873
15874	* decl.c (start_decl): Same here.
15875	(grok_reference_init): Likewise.
15876	(grokfndecl): Correct message formatting.
15877	(grokfndecl): Improve diagnostic.
15878	(check_static_variable_definition): Likewise. Say 'ISO C++'
15879	(compute_array_index_type): Say 'ISO C++'
15880	(create_array_type_for_decl): Compress consecutive calls to
15881	cp_error.
15882	(grokdeclarator): Say 'ISO C++'
15883	(grok_op_properties): Likewise.
15884
15885	* decl2.c (delete_sanity): Clairify diagnostic.
15886	(check_member_template): Same here.
15887	(grok_function_init): Use consistent terminology.
15888
15889	* expr.c (do_case): Say 'ISO C++'
15890
15891	* friend.c (do_friend): Compress consecutive calls to warning.
15892
158932000-02-20  Mark Mitchell  <mark@codesourcery.com>
15894
15895	* cp-tree.h (merge_primary_and_secondary_vtables_p): New macro.
15896	* class.c (build_secondary_vtable): Reorganize.  Don't create a
15897	new vtable under the new ABI.
15898	(layout_vtable_decl): Don't add num_extra_vtbl_entries when
15899	computing the size.
15900	(build_vtbl_initializer): Don't return a CONSTRUCTOR; just return
15901	the initializing elements.
15902	(initialize_vtable): New function.
15903	(dfs_finish_vtbls): Use it.
15904	(dfs_accumulate_vtbl_inits): New function.
15905	(finish_vtbls): Merge primary and secondary vtables under the new
15906	ABI.
15907	(finish_struct_1): Remove redundant call to layout_vtable_decl.
15908	* init.c (expand_virtual_init): Deal with BINFO_VTABLEs that
15909	aren't VAR_DECLs.
15910
15911	* class.c (build_vtable): New function, split out from ...
15912	(get_vtable_decl): ... here, and ...
15913	(build_secondary_vtable): ... here.
15914
15915	* pt.c (tsubst_decl): Fix formatting.
15916
15917Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15918
15919	* class.c (build_primary_vtable, layout_vtable_decl): Likewise.
15920	(avoid_overlap, build_base_field): Likewise.
15921	(build_base_field, build_base_fields, is_empty_class):
15922	Test DECL_SIZE with integer_zero.
15923	(layout_class_type): Set CLASSTYPE_SIZE_UNIT.
15924	* cp-tree.h (struct lang_type): New field size_unit.
15925	(CLASSTYPE_SIZE_UNIT): New macro.
15926	* decl.c (init_decl_processing): Set DECL_SIZE_UNIT.
15927	(cp_finish_decl): Delete -Wlarger-than processing.
15928	* optimize.c (remap_decl): Walk DECL_SIZE_UNIT.
15929	* pt.c (tsubst_decl): Set DECL_SIZE_UNIT.
15930	* tree.c (make_binfo): binfo vector is one entry longer.
15931	(walk_tree): Walk DECL_SIZE_UNIT.
15932
159332000-02-19  Mark Mitchell  <mark@codesourcery.com>
15934
15935	* class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in
15936	comment.
15937	(build_vtable_entry): Don't assume all vtable entries are
15938	functions.
15939	(build_vtbl_initializer): Adjust accordingly.
15940	(get_vtable_decl): Fix formatting.
15941
159422000-02-18  Jason Merrill  <jason@casey.cygnus.com>
15943
15944	* semantics.c (deferred_type_access_control): Walk the entire
15945	type_lookups list.
15946	(save_type_access_control): Rename from
15947	initial_deferred_type_access_control.  Just remember the value.
15948	(decl_type_access_control): New fn.
15949	(begin_function_definition): Use deferred_type_access_control, after
15950	we've started the function.  Set type_lookups to error_mark_node.
15951	* parse.y (frob_specs, fn.def1): Adjust.
15952	(parse_decl0, parse_field, parse_field0, parse_bitfield): New fns.
15953	(parse_end_decl, parse_bitfield0, parse_method): New fns.
15954	(fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them.
15955	(after_type_component_declarator0): Likewise.
15956	(after_type_component_declarator): Likewise.
15957	(notype_component_declarator): Likewise.
15958	* cp-tree.h: Adjust.
15959
15960	* decl.c (redeclaration_error_message): Allow redeclaration of
15961	namespace-scope decls.
15962
159632000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
15964
15965	* typeck2.c (my_friendly_abort): Use GCCBUGURL.
15966
159672000-02-17  Mark Mitchell  <mark@codesourcery.com>
15968
15969	* class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT.
15970	* decl2.c (grokclassfn): Likewise.
15971
15972	* ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS.
15973
15974	* decl2.c (lang_decode_option): Don't set default message length
15975	here.
15976	* lex.c (lang_init_options): Set it here.
15977
159782000-02-16  Mark Mitchell  <mark@codesourcery.com>
15979
15980	Make DECL_CONTEXT mean the class in which a member function was
15981	declared, even for a virtual function.
15982	* cp-tree.h (DECL_CLASS_CONTEXT): Adjust.
15983	(DECL_FRIEND_CONTEXT): New macro.
15984	(DECL_REAL_CONTEXT): Remove.
15985	(SET_DECL_FRIEND_CONTEXT): Likewise.
15986	(DECL_VIRTUAL_CONTEXT): Adjust.
15987	(DECL_CLASS_SCOPE_P): Use TYPE_P.
15988	(add_friends): Remove.
15989	(hack_decl_function_context): Likewise.
15990	* call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with
15991	CP_DECL_CONTEXT.
15992	(build_over_call): Fix indentation.  Use DECL_CONTEXT
15993	instead of DECL_CLASS_CONTEXT.
15994	* class.c (dfs_build_vcall_offset_vtbl_entries): Likewise.
15995	(add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
15996	(strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
15997	(build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT.
15998	(build_base_field): Likewise.
15999	(finish_struct_1): Likewise.
16000	(build_self_reference): Likewise.
16001	* decl.c (push_class_binding): Use CP_DECL_CONTEXT, not
16002	DECL_REAL_CONTEXT.
16003	(pushtag): Use decl_function_context, not
16004	hack_decl_function_context.
16005	(decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
16006	(duplicate_decls): Use DECL_VIRTUAL_CONTEXT.
16007	(pushdecl): Remove bogus code.
16008	(start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT.
16009	(cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
16010	(grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
16011	Use decl_function_context, nothack_decl_function_context.
16012	(grokvardecl): Don't set DECL_CLASS_CONTEXT.
16013	(grokdeclarator): Likewise.  Use decl_function_context, not
16014	hack_decl_function_context.
16015	(copy_args_p): Document.  Don't use DECL_CLASS_CONTEXT.
16016	(start_function): Use DECL_FRIEND_CONTEXT, not
16017	DECL_CLASS_CONTEXT.  Use decl_function_context, not
16018	hack_decl_function_context.
16019	(finish_function): Use decl_function_context, not
16020	hack_decl_function_context.
16021	(maybe_retrofit_in_chrg): Use DECL_CONTEXT, not
16022	DECL_CLASS_CONTEXT.
16023	(grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT.
16024	(finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT.
16025	(grokfield): Likewise.
16026	(finish_builtin_type): Likewise.
16027	(finish_vtable_vardec): Use decl_function_context, not
16028	hack_decl_function_context.
16029	(import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
16030	(start_static_initialization_or_destruction): Likewise.
16031	(finish_static_initialization_or_destruction): Likewise.
16032	(mark_used): Adjust logic for deciding when to synthesize methods.
16033	* dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not
16034	DECL_REAL_CONTEXT.
16035	* error.c (dump_function_decl): Use DECL_CONTEXT, not
16036	DECL_CLASS_CONTEXT.
16037	* friend.c (is_friend): Likewise.
16038	(add_friends): Remove.
16039	(do_friend): Use SET_DECL_FRIEND_CONTEXT.
16040	* lex.c (begin_definition_of_inclass_inline): Use
16041	decl_function_context, not hack_decl_function_context.
16042	(process_next_inline): Likewise.
16043	(do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
16044	* method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not
16045	DECL_CLASSS_CONTEXT.
16046	(hack_identifier): Likewise.
16047	(synthesize_method):  Use decl_function_context, not
16048	hack_decl_function_context.
16049	* pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not
16050	DECL_REAL_CONTEXT.
16051	(is_member_template): Use decl_function_context, not
16052	hack_decl_function_context.  Use DECL_CONTEXT, not
16053	DECL_CLASS_CONTEXT.
16054	(build_template_decl): Set DECL_VIRTUAL_CONTEXT, not
16055	DECL_CLASS_CONTEXT.
16056	(check_default_tmpl_args): Use CP_DECL_CONTEXT, not
16057	DECL_REAL_CONTEXT.
16058	(push_template_decl_real): Likewise.
16059	(instantiate_class_template): Don't call add_friends.
16060	(tsubst_default_argument): Use DECL_CONTEXT, not
16061	DECL_REAL_CONTEXT.
16062	(tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
16063	Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
16064	(set_meangled_name_for_template_decl): Use DECL_CONTEXT, not
16065	DECL_CLASS_CONTEXT.
16066	* repo.c (repo_inline_used): Likewise.
16067	* search.c (current_scope): Adjust for new _CONTEXT macros.
16068	(context_for_name_lookup): Use CP_DECL_CONTEXT, not
16069	DECL_REAL_CONTEXT.
16070	(friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
16071	(lookup_fnfields_here):Likewise.
16072	(check_final_overrider): Likewise.
16073	(init_vbase_pointers): Likewise.
16074	(virtual_context): Likewise.
16075	* semantics.c (finish_member_declaration): Just set DECL_CONTEXT.
16076	(expand_body): Use decl_function_context, not
16077	hack_decl_function_context.
16078	* tree.c (hack_decl_function_context): Remove.
16079	* typeck.c (build_x_function_call): Use DECL_CONTEXT, not
16080	DECL_CLASS_CONTEXT.
16081	* typeck2.c (error_not_base_type): Likewise.
16082
160832000-02-15  Jason Merrill  <jason@casey.cygnus.com>
16084
16085	* decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE.
16086
160872000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16088
16089	* Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h.
16090
160912000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
16092
16093	* lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec.
16094
160952000-01-16  Gabriel Dos Reis  <gdr@codesourcery.com>
16096
16097	* decl2.c (lang_decode_option): Enable automatic line wrapping.
16098
160992000-02-13  Jason Merrill  <jason@casey.cygnus.com>
16100
16101	* parse.y (frob_specs): Split out...
16102	(parse_decl): From here.
16103	(fn.def2): Call initial_deferred_type_access_control.
16104	(after_type_component_declarator0): Call frob_specs.
16105	(notype_component_declarator0): Likewise.
16106	* search.c (friend_accessible_p): Nested classes are friends of their
16107	enclosing classes.
16108
161092000-02-10  Mark Mitchell  <mark@codesourcery.com>
16110
16111	* ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be
16112	used to create an implicit temporary.
16113
16114	* class.c (dfs_modify_vtables): Tweak calculation of functions to
16115	override.
16116
161172000-02-08  Nathan Sidwell  <nathan@acm.org>
16118
16119	* typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to
16120	strip array element qualifiers too.
16121
161222000-02-07  Mark Mitchell  <mark@codesourcery.com>
16123
16124	* decl.c (store_parm_decls): Don't build cleanups for parameters
16125	while processing_template_decl.
16126
161272000-02-07  Jason Merrill  <jason@casey.cygnus.com>
16128
16129	* cp-tree.h (struct saved_scope): Add incomplete field.
16130	(namespace_scope_incomplete): New macro.
16131	* decl.c (pushdecl): Use it.
16132	(hack_incomplete_structures): Use it.  See through artificial
16133	binding levels.
16134	(mark_saved_scope): Mark it.
16135
16136	Implement access control for nested types.
16137	* search.c (type_access_control): New fn.
16138	(accessible_p): Now we do perform access control for types.
16139	* semantics.c (deferred_type_access_control): New fn.
16140	(initial_deferred_type_access_control): New fn.
16141	(begin_function_definition): Call it.  Add lookups parm.
16142	* decl.c (struct binding_level): Add this_class field.
16143	(pushlevel_class): Set it.
16144	(mark_binding_level): Mark it.
16145	(lookup_name_real): Use it.  Call type_access_control.
16146	(mark_saved_scope): Mark lookups field.
16147	* cp-tree.h (flagged_type_tree): Add lookups field.
16148	(struct saved_scope): Add lookups field.
16149	(type_lookups): New macro.
16150	* parse.y (declmods): Now <ftype>.
16151	(parse_decl): Add lookups parm.  Call
16152	initial_deferred_type_access_control.
16153	(lang_extdef): Clear type_lookups.
16154	(typed_declspecs, declmods, typespec): Set lookups field.
16155	(initdcl): Call deferred_type_access_control.
16156	(fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0,
16157	component_decl_1, named_parm): Adjust.
16158	* friend.c (is_friend): Nested classes are friends of their
16159	enclosing classes.
16160
16161	* class.c (currently_open_derived_class): New fn.
16162	* method.c (hack_identifier): Use it.
16163
16164	* lex.c (do_identifier): Remove obsolete code.
16165
16166	* parse.y (typed_typespecs): Propagate new_type_flag properly.
16167
161682000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
16169
16170	* tinfo.h: Remove apostrophes from C++ comment (xgettext
16171	thinks this file is plain C).
16172
161732000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16174
16175	* Makefile.in (call.o): Depend on $(EXPR_H).
16176
16177	* call.c: Include "expr.h".
16178
16179	* class.c (dump_class_hierarchy): Add prototype.
16180
16181	* search.c (dfs_get_pure_virtuals): Likewise.
16182
161832000-02-1  Ulrich Drepper  <drepper@redhat.com>
16184
16185	* parse.y (simple_stmt): Allow :: token in asm parameter list.
16186	* parse.c: Rebuilt.
16187
16188Mon Jan 31 15:35:29 2000  Jim Wilson  <wilson@cygnus.com>
16189
16190	* class.c (build_vtbl_or_vbase_field): New parameter fcontext.
16191	Store it in DECL_FCONTEXT.
16192	(build_vbase_pointer_fields, create_vtable_ptr): Fix callers.
16193
161942000-01-31  Jason Merrill  <jason@casey.cygnus.com>
16195
16196	* tinfo.h (old abi): #include "tconfig.h".
16197	* tinfo.cc (convert_to_base): Move into old abi section.
16198
161992000-01-31  Mark Mitchell  <mark@codesourcery.com>
16200
16201	* cp-tree.h (BINFO_VIRTUALS): Tweak documentation.
16202	(CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO.
16203	(BINFO_PRIMARY_BINFO): New macro.
16204	(BF_DELTA): Rename to ...
16205	(BV_DELTA): ... this.
16206	(BF_VCALL_INDEX): Rename to ...
16207	(BV_VCALL_INDEX): ... this.
16208	(BF_FN): Rename to ...
16209	(BV_FN): ... this.
16210	* class.c (build_vbase_path): Adjust for changes to reverse_path.
16211	(set_rtti_entry): Rename BF_ macros to BV_ variants.
16212	(modify_vtable_entry): Simplify.
16213	(add_virtual_function): Rename BF_ macros to BV_ variants.
16214	(build_vtable_initializer): Likewise.
16215	(get_class_offset_1): Remove.
16216	(dfs_get_class_offset): Likewise.
16217	(get_class_offset): Likewise.
16218	(dfs_find_final_overrider): New function.
16219	(find_final_overrider): Likewise.
16220	(modify_one_vtable): Remove.
16221	(dfs_find_base): New function.
16222	(dfs_modify_vtables): Fold modify_one_vtable in here.  Use
16223	find_final_overrider.
16224	(modify_all_vtables): Adjust.  Set BV_VCALL_INDEX on new
16225	virtuals.
16226	(dfs_fixup_vtable_deltas): Remove.
16227	(override_one_vtable): Remove.
16228	(merge_overrides): Likewise.
16229	(layout_virtual_bases): Make sure BINFO_OFFSET is set right for
16230	unreal chilren of virtual bases.
16231	(finish_struct_1): Don't use merge_overrides.  Don't use
16232	dfs_fixup_vtable_deltas.
16233	* tree.c (reverse_path): Return a TREE_LIST, not a chain of
16234	BINFOs.
16235
162362000-01-31  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16237	    Jason Merrill  <jason@yorick.cygnus.com>
16238
16239	* tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT.
16240
162412000-01-31  Alfred Minarik <a8601248@unet.univie.ac.at>
16242
16243	* exception.cc (__throw_bad_typeid): Add missing std::.
16244
162452000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16246
16247	* cp-tree.h (make_thunk): PROTO -> PARAMS.
16248
162492000-01-31  Nathan Sidwell  <sidwell@codesourcery.com>
16250
16251	* cp-tree.h (new_abi_rtti_p): Use flag_new_abi.
16252
16253	Runtime support for new-abi rtti.
16254	* inc/typeinfo (type_info::operator!=): Define in class.
16255	(type_info::before, type_info::name, type_info::operator==,
16256	type_info::operator!=): Define new ABI implementations.
16257	(type_info::is_pointer_p, type_info::is_function_p): Declare
16258	new virtual functions.
16259	(type_info::do_catch, type_info::do_upcast): Likewise.
16260
16261	* tinfo.h (__base_class_info): Define new class.
16262	(__class_type_info): Likewise.
16263	(__si_class_type_info): Likewise.
16264	(__vmi_class_type_info): Likewise.
16265	(__dynamic_cast): Prototype.
16266
16267	* tinfo.cc: Conditionalize old and new rtti mechanisms.
16268	(type_info::is_pointer_p): Define new function.
16269	(type_info::is_function_p): Likewise.
16270	(type_info::do_catch): Likewise.
16271	(type_info::do_upcast): Likewise.
16272	(vtable_prefix): New structure for vtable access.
16273	(adjust_pointer): Define new template function.
16274	(contained_p, public_p, virtual_p, contained_public_p,
16275	contained_nonpublic_p, contained_nonvirtual_p): Define new
16276	functions.
16277	(nonvirtual_base_type): New local variable.
16278	(__class_type_info::~__class_type_info): Define.
16279	(__si_class_type_info::~__si_class_type_info): Likewise.
16280	(__vmi_class_type_info::~__vmi_class_type_info): Likewise.
16281	(__class_type_info::do_catch): Define new function.
16282	(__class_type_info::do_upcast): Likewise.
16283	(__class_type_info::find_public_src): Likewise.
16284	(__class_type_info::do_find_public_src): Likewise.
16285	(__si_class_type_info::do_find_public_src): Likewise.
16286	(__vmi_class_type_info::do_find_public_src): Likewise.
16287	(__class_type_info::do_dyncast): Likewise.
16288	(__si_class_type_info::do_dyncast): Likewise.
16289	(__vmi_class_type_info::do_dyncast): Likewise.
16290	(__class_type_info::do_upcast): Likewise.
16291	(__si_class_type_info::do_upcast): Likewise.
16292	(__vmi_class_type_info::do_upcast): Likewise.
16293	(__dynamic_cast): Likewise.
16294
16295	* tinfo2.cc (__fundamental_type_info): Define new class.
16296	(__pointer_type_info): Likewise.
16297	(__reference_type_info): Likewise.
16298	(__array_type_info): Likewise.
16299	(__function_type_info): Likewise.
16300	(__enum_type_info): Likewise.
16301	(__ptr_to_member_type_info): Likewise.
16302	(__fundamental_type_info::~__fundamental_type_info): Define.
16303	(__pointer_type_info::~__pointer_type_info): Likewise.
16304	(__reference_type_info::~__reference_type_info): Likewise.
16305	(__array_type_info::~__array_type_info): Likewise.
16306	(__function_type_info::~__function_type_info): Likewise.
16307	(__enum_type_info::~__enum_type_info): Likewise.
16308	(__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise.
16309	(__pointer_type_info::do_catch): Define new function.
16310	(__ptr_to_member_type_info::do_catch): Define new function.
16311
16312	(__throw_type_match_rtti_2): Use new ABI interface, if enabled.
16313	(__is_pointer): Likewise.
16314
16315	* exception.cc (__cplus_type_matcher): Deal with new-abi rtti.
16316
163172000-01-30  Mark Mitchell  <mark@codesourcery.com>
16318
16319	* cp/class.c (build_vtable): Rename to build_primary_vtable.
16320	(prepare_fresh_vtable): Rename to build_secondary_vtable.
16321	(make_new_vtable): New function.
16322	(modify_vtable_entry): Handle generation of new vtables correctly.
16323	(modify_one_vtable): Remove unused parameter.
16324	(dfs_fixup_vtable_deltas): Likewise.
16325	(override_one_vtable): Use build_secondary_vtable.
16326	(finish_struct_1): Use build_primary_vtable and
16327	build_secondary_vtable.
16328
163292000-01-28  Ulrich Drepper  <drepper@redhat.com>
16330
16331	* cp/decl.c: Adjust variable names, comments, help strings.
16332
163332000-01-29  Nathan Sidwell  <nathan@acm.org>
16334
16335	* new2.cc (operator delete[]): Use operator delete, don't assume
16336	implementation.
16337
163382000-01-29  Nathan Sidwell  <sidwell@codesourcery.com>
16339
16340	* class.c (build_vtbl_initializer): Add argument to
16341	build_vtable_entry call.
16342
163432000-01-27  Mark Mitchell  <mark@codesourcery.com>
16344
16345	* cp-tree.def (THUNK_DECL): Discuss vcall indices.
16346	* cp-tree.h (BINFO_VIRTUALS): Update documentation.
16347	(BF_DELTA): New macro.
16348	(BF_VCALL_INDEX): Likewise.
16349	(BF_FN): Likewise.
16350	(THUNK_VCALL_OFFSET): Likewise.
16351	(make_thunk): Change prototype.
16352	* class.c (build_vtable_entry): Integrate
16353	build_vtable_entry_for_fn.  Handle vcall indices.
16354	(build_vtable_entry_for_fn): Remove.
16355	(set_rtti_entry): Handle vcall indices.  Use BF_DELTA,
16356	BF_VCALL_INDEX, BF_FN.
16357	(modify_vtable_entry): Integrate common code from
16358	modify_one_vtable and dfs_fixup_vtable_deltas.
16359	(add_virtual_function): Set BF_VCALL_INDEX.
16360	(build_vtbl_initializer): Simplify.  Use BF_DELTA, BF_VCALL_INDEX,
16361	and BF_FN.
16362	(modify_one_vtable): Simplify.
16363	(dfs_fixup_vtable_deltas): Likewise.
16364	(override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN.
16365	* method.c (make_thunk): Handle vcall indices.
16366
163672000-01-28  Nathan Sidwell  <sidwell@codesourcery.com>
16368
16369	Compiler side new abi rtti (not enabled).
16370	* cp-tree.h (new_abi_rtti_p): New macro.
16371	(emit_support_tinfos): Prototype new function.
16372	(tinfo_decl_p): Likewise.
16373	(emit_tinfo_decl): Likwise.
16374	* rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor
16375	macros.
16376	(doing_runtime): New local static.
16377	(init_rtti_processing): Add new-abi initializer.
16378	(get_tinfo_decl): Add new-abi logic.
16379	(tinfo_from_decl): Likewise.
16380	(build_dynamic_cast_1): Likewise.
16381	(qualifier_flags): New static function.
16382	(tinfo_base_init): Likewise.
16383	(generic_initializer): Likewise.
16384	(ptr_ref_initializer): Likewise.
16385	(ptmd_initializer): Likewise.
16386	(class_hint_flags): Likewise.
16387	(class_initializer): Likewise.
16388	(synthesize_tinfo_var): Likewise.
16389	(create_real_tinfo_var): Likewise.
16390	(create_pseudo_type_info): Likewise.
16391	(get_vmi_pseudo_type_info): Likewise.
16392	(create_tinfo_types): Likewise.
16393	(emit_support_tinfos): New global function.
16394	(tinfo_decl_p): New global predicate.
16395	(emit_tinfo_decl): New global function.
16396	* class.c (set_rtti_entry): Generalize for old and new rtti.
16397	(build_vtbl_initializer): Likewise.
16398	* decl2.c (finish_file): Likewise.
16399
16400Thu Jan 27 20:53:36 2000  Jim Wilson  <wilson@cygnus.com>
16401
16402	* optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t)
16403	and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))).
16404
16405Thu Jan 27 13:54:12 2000  Mike Stump  <mrs@wrs.com>
16406
16407	* decl.c (pushdecl): Fix up shadow warnings with respect to implicit
16408	for scopes.
16409
164102000-01-26  Jason Merrill  <jason@casey.cygnus.com>
16411
16412	* pt.c (unify): Use fold, not maybe_fold_nontype_arg.
16413
16414Wed Jan 26 22:19:14 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16415
16416	* optimize.c (calls_setjmp_r): Supply new argument
16417	to special_function_p.
16418
164192000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16420
16421	* call.c: PROTO -> PARAMS.
16422	* class.c: Likewise.
16423	* cp-tree.h: Likewise.
16424	* cvt.c: Likewise.
16425	* decl.c: Likewise.
16426	* decl.h: Likewise.
16427	* decl2.c: Likewise.
16428	* dump.c: Likewise.
16429	* errfn.c: Likewise.
16430	* error.c: Likewise.
16431	* except.c: Likewise.
16432	* expr.c: Likewise.
16433	* init.c: Likewise.
16434	* input.c: Likewise.
16435	* lex.c: Likewise.
16436	* lex.h: Likewise.
16437	* method.c: Likewise.
16438	* optimize.c: Likewise.
16439	* parse.y: Likewise.
16440	* pt.c: Likewise.
16441	* repo.c: Likewise.
16442	* rtti.c: Likewise.
16443	* search.c: Likewise.
16444	* semantics.c: Likewise.
16445	* spew.c: Likewise.
16446	* tree.c: Likewise.
16447	* typeck.c: Likewise.
16448	* typeck2.c: Likewise.
16449	* xref.c: Likewise.
16450
164512000-01-25  Richard Henderson  <rth@cygnus.com>
16452
16453	* typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR.
16454
164552000-01-25  Mark Mitchell  <mark@codesourcery.com>
16456
16457	* cp-tree.h (vcall_offset_in_vtable_p): New macro.
16458	* class.c (build_vbase_offset_vtbl_entries): Fix typo in commment.
16459	(struct vcall_offset_data_s): New type.
16460	(dfs_vcall_offset_queue_p): New function.
16461	(dfs_build_vcall_offset_vtbl_entries): Likewise.
16462	(build_vcall_offset_vtbl_entries): Likewise.
16463	(layout_vtable_decl): Likewise.
16464	(num_vfun_entries): Likewise.
16465	(num_extra_vtbl_entries): Add the entries for vcall offsets.
16466	(build_vtbl_initializer): Likewise.
16467	(dfs_finish_vtabls): Use layout_vtable_decl.
16468	(modify_one_vtables): Always duplicate vtables under the new ABI.
16469	(finish_struct_1): Use layout_vtable_decl.
16470
164712000-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16472
16473	* decl.c (member_function_or_else): Change third arg from a format
16474	specifier to an `enum overload_flags'.  Callers changed.
16475
164762000-01-25  Gabriel Dos Reis  <gdr@codesourcery.com>
16477
16478	* typeck.c (composite_pointer_type, c_sizeof, expr_sizeof,
16479	build_binary_op_nodefault, build_unary_op, build_reinterpret_cast,
16480	build_const_cast, get_delta_difference, check_return_expr): Avoid
16481	ANSI string concatenation usage.
16482
164832000-01-24  Mark Mitchell  <mark@codesourcery.com>
16484
16485	* class.c (layout_class_type): Put the fields required to make a
16486	class non-empty at the end, not the beginning, of the TYPE_FIELDs
16487	list.
16488
164892000-01-24  Jason Merrill  <jason@casey.cygnus.com>
16490
16491	* pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a
16492	template.
16493
16494	* decl2.c (mark_used): Do instantiate inlines that have been
16495	explicitly instantiated.
16496
164972000-01-24  Richard Henderson  <rth@cygnus.com>
16498
16499	* call.c (build_over_call): Use expand_tree_builtin.
16500	* typeck.c (build_function_call_real): Likewise.
16501	(build_binary_op_nodefault): Handle unordered compares.
16502
165032000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
16504
16505	* cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New
16506	cp_tree_index values.
16507	(throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node):
16508	New global node #defines for them.
16509	* rtti.c (call_void_fn): Replace with ...
16510	(build_runtime_decl): ... new static function.
16511	(throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl.
16512	(throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl.
16513	(build_dynamic_cast_1): Always produce correctly typed result.
16514	Explicitly produce type_info addresses. Use dynamic_cast_node.
16515	* exception.cc (__throw_bad_cast): Return `void *'.
16516	(__throw_bad_typeid): Return `const type_info &'.
16517
165182000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
16519
16520	* cp-tree.h (get_vtable_decl): Prototype new function.
16521	* class.c (get_vtable_decl): New function. Broken out from ...
16522	(build_vtable): ... here. Use it.
16523	* decl2.c (finish_vtable_vardecl): Ignore dummy vtables created
16524	by get_vtable_decl.
16525
165262000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
16527
16528	* cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE,
16529	CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE,
16530	CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations.
16531	(CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE,
16532	CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE,
16533	CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations.
16534	(CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ...
16535	(CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here.
16536	(CPTI_TINFO_VAR_ID): New enumeration.
16537	(__tp_desc_type_node, __access_mode_type_node,
16538	__bltn_desc_type_node, __user_desc_type_node,
16539	__class_desc_type_node, __ptr_desc_type_node,
16540	__attr_desc_type_node, __func_desc_type_node,
16541	__ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines.
16542	(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
16543	ref_desc_type_node, ary_desc_type_node, func_desc_type_node,
16544	enum_desc_type_node, class_desc_type_node,
16545	si_class_desc_type_node, vmi_class_desc_type_node,
16546	ptmd_desc_type_node, base_desc_type_node): New #defines.
16547	(tinfo_fn_id, tinfo_fn_type): Rename to ...
16548	(tinfo_decl_id, tinfo_decl_type): ... here. Adjust.
16549	(tinfo_var_id): New enumeration.
16550	(DECL_TINFO_FN_P): Augment comment.
16551	* decl.c (cp_global_trees): Adjust documentation.
16552	* rtti.c (init_rtti_processing): Adjust for tinfo_decl_id,
16553	tinfo_decl_type and tinfo_var_id.
16554	(get_tinfo_decl_dynamic): Adjust for tinfo_decl_type.
16555	(build_typeid): Remove unused variable.
16556	(get_tinfo_var): Use tinfo_var_id.
16557	(tinfo_name): New static function.
16558	(get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type.
16559	(tinfo_from_decl): Likewise.
16560	(get_base_offset): New static function, broken out of
16561	expand_class_desc.
16562	(expand_si_desc): Use tinfo_name.
16563	(expand_class_desc): Likewise. Lose local static variable.
16564	Use base_desc_type_node. Use get_base_offset.
16565	(expand_ptr_desc): Use tinfo_name.
16566	(expand_attr_desc): Likewise.
16567	(expand_generic_desc): Likewise.
16568
16569	* tinfo.cc (__GXX_ABI_VERSION): Test value and existence.
16570	* tinfo.h (__GXX_ABI_VERSION): Test value and existence.
16571
165722000-01-23  Mark Mitchell  <mark@codesourcery.com>
16573
16574	* cp-tree.h (__eprintf): Remove declaration.
16575	* tree.c (__eprintf): Remove definition.
16576
165772000-01-23  Zack Weinberg  <zack@rabi.columbia.edu>
16578	    Mark Mitchell  <mark@codesourcery.com>
16579
16580	* cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N,
16581	CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings.
16582
165832000-01-23  Brad Lucier  <lucier@math.purdue.edu>
16584
16585	* class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly.
16586
165872000-01-23  Mark Mitchell  <mark@codesourcery.com>
16588
16589	* cp-tree.h (register_dtor_fn): New function.
16590	* decl.c (destroy_local_static): Rename to ...
16591	(register_dtor_fn): ... this.  Give it external linkage.
16592	(expand_static_init): Use it.
16593	* decl2.c (do_static_initialization): Likewise, if using
16594	__cxa_atexit.
16595	(do_static_destruction): Check that __cxa_atexit is not in use.
16596	(finish_file): Don't call do_static_destruction if using
16597	__cxa_atexit.
16598
16599	* typeck.c (convert_arguments): Restore two-message error
16600	reporting.
16601
166022000-01-20  Nathan Sidwell  <sidwell@codesourcery.com>
16603
16604	Remap dynamic cast hint values to be consistent across ABIs.
16605	* search.c (dynamic_cast_base_recurse): Remap generated value.
16606	(get_dynamic_cast_base_type): Adjust documentation.
16607	* tinfo.h (__user_type_info::dyncast): Likewise.
16608	(__user_type_info::find_public_subobj): Remap BOFF meaning.
16609	* tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning.
16610	(__class_type_info::do_dyncast): Likewise.
16611	(__class_type_info::do_find_public_subobj): Likewise.
16612	* tinfo2.cc (__dynamic_cast): Remap BOFF parameter.
16613
166142000-01-19  Gabriel Dos Reis  <gdr@codesourcery.com>
16615
16616	* typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn.
16617
16618	* typeck2.c (incomplete_type_error): Restore previous
16619	cp_error and cp_error_at call sequence.
16620
166212000-01-20  Brad Lucier  <lucier@math.purdue.edu>
16622
16623	* class.c (dump_class_hierarchy): Make format agree with argument;
16624	cast pointer to unsigned long and print with %lx.
16625
166262000-01-19  Gabriel Dos Reis  <gdr@codesourcery.com>
16627
16628	* decl2.c (lang_decode_option): Set default line-wrap length to 72.
16629
16630	* typeck.c (composite_pointer_type, common_type,
16631	comp_target_parms, c_sizeof, expr_sizeof, build_array_ref,
16632	build_function_call_real, convert_arguments,
16633	build_binary_op_nodefault, pointer_int_sum, pointer_diff,
16634	build_unary_op, mark_addressable, build_compound_expr,
16635	build_static_cast, build_reinterpret_cast, build_const_cast,
16636	build_c_cast, build_modify_expr, get_delta_difference,
16637	build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with
16638	'ISO C++'.  Fusion consecutive calls to diagnostic message routines
16639	into a single one.
16640	* typeck2.c (readonly_error, abstract_virtuals_error,
16641	process_init_constructor, check_for_new_type): Likewise.
16642
166432000-01-19  Mark Mitchell  <mark@codesourcery.com>
16644
16645	* tree.c (bot_manip): Set DECL_CONTEXT for newly created
16646	VAR_DECLs.
16647
166482000-01-18  Nathan Sidwell  <sidwell@codesourcery.com>
16649
16650	* cp-tree.h (get_tinfo_fn_dynamic): Remove prototype.
16651	(build_x_typeid): Likewise.
16652	(get_tinfo_fn): Likewise.
16653	(get_tinfo_fn_unused): Rename to ...
16654	(get_tinfo_decl): ... here.
16655	* rtti.c (build_headof): Replace logic error with assertion.
16656	(get_tinfo_fn_dynamic): Rename to ...
16657	(get_tinfo_decl_dynamic): ... here. Make static. Use
16658	complete_type_or_else.
16659	(build_x_typeid): Move into ...
16660	(build_typeid): ... here. Adjust call to
16661	get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify
16662	throw_bad_typeid expression.
16663	(get_tinfo_fn_unused): Rename to ...
16664	(get_tinfo_decl): ... here. Adjust comment.
16665	(get_tinfo_fn): Delete.
16666	(tinfo_from_decl): New static function.
16667	(get_typeid_1): Call get_tinfo_decl and tinfo_from_decl.
16668	(get_typeid): Use complete_type_or_else.
16669	(build_dynamic_cast_1): Adjust calls to
16670	get_tinfo_decl_dynamic. Simplify throw_bad_cast expression.
16671	* parse.y (primary): Adjust call to build_typeid.
16672	* except.c (build_eh_type_type_ref): Adjust call to
16673	get_tinfo_decl. Mark as used.
16674	* class.c (set_rtti_entry): Adjust call to get_tinfo_decl.
16675	* decl2.c (build_expr_from_tree): Adjust call to build_typeid.
16676	* parse.c: Regenerated.
16677
166782000-01-17  Mark Mitchell  <mark@codesourcery.com>
16679
16680	* class.c (fixed_type_or_null): Don't clear NONNULL.  Document
16681	calling convention.
16682	(resolves_to_fixed_type_p): Document calling convention.
16683	* rtti.c (build_x_typeid): Initialize NONNULL.
16684
16685	* cp-tree.h (build_shared_int_cst): New function.
16686	* call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity.
16687	* class.c (modify_vtable_entry): Likewise.
16688	(add_virtual_function): Split out code to generated shared
16689	INTEGER_CSTs to build_share_int_cst.
16690	(modify_all_vtables): Handle all the overridden functions here.
16691	Add overridden functions from non-primary virtual bases to the
16692	primary vtable.
16693	(finish_struct_1): Adjust call to modify_all_vtables.  Add
16694	overridden functions from non-primary bases to the vtable.
16695	* tree.c (build_shared_int_cst): New function.
16696
16697	* cp-tree.h (scratchalloc): Remove.
16698	(build_scratch_list): Likewise.
16699	* call.c (convert_class_to_reference): Replace build_scratch_list
16700	and build_expr_list with build_tree_list.
16701	(add_candidate): Replace scratchalloc with expralloc.  Note memory
16702	leak.
16703	(build_user_type_conversion_1):  Replace build_scratch_list
16704	and build_expr_list with build_tree_list.
16705	(build_new_op): Likewise.
16706	(build_op_delete_call): Likewise.
16707	(convert_like): Likewise.
16708	* cvt.c (ocp_convert): Likewise.
16709	* decl.c (start_decl): Likewise.
16710	(start_function): Likewise.
16711	(finish_destructor_body): Likewise.
16712	(maybe_build_cleanup_1): Likewise.
16713	* decl2.c (reparse_decl_as_expr): Likewise.
16714	* init.c (perform_member_init): Likewise.
16715	(expand_cleanup_for_base): Likewise.
16716	(build_builtin_delete_call): Likewise.
16717	(build_new_1): Likewise.
16718	(build_delete): Likewise.
16719	* method.c (do_build_assign_ref): Likewise.
16720	* parse.y (already_scoped_stmt): Likewise.
16721	(nontrivial_exprlist): Likewise.
16722	(net_initializer): Likewise.
16723	(initlist): Likewise.
16724	* parse.c: Regenerated.
16725	* rtti.c (build_x_typeid): Likewise.
16726	(build_dynamic_cast_1): Likewise.
16727	* typeck.c (build_x_compound_expr): Likewise.
16728	(build_static_cast): Likewise.
16729	(build_modify_expr): Likewise.
16730
16731	* cp-tree.h (DECL_VINDEX): Add documentation.
16732	* class.c (build_vtable_entry): Likewise.
16733	(start_vtable): Add comment.
16734	(add_virtual_function): Replace pending_hard_virtuals with
16735	overridden_virtuals and pending_virtuals with new_virtuals.
16736	Replace redundant assignments with assertions.
16737	(check_for_override): Add comment.
16738	(check_bases_and_members): Replace pending_hard_virtuals with
16739	overridden_virtuals and pending_virtuals with new_virtuals.
16740	(create_vtbl_ptr): Likewise.
16741	(layout_class_type): Likewise.
16742	(finish_struct_1): Likewise.  Add comments.
16743
167442000-01-16  Mark Mitchell  <mark@codesourcery.com>
16745
16746	* class.c (finish_struct_1): Replace redundant code with
16747	assertions.
16748
16749	* cp-tree.h (flag_new_abi): Move.
16750	(flag_use_cxa_atexit): Likewise.
16751	(flag_honor_std): Likewise.
16752	(flag_rtti): Likewise.
16753	(vbase_offsets_in_vtable_p): Define.
16754	(vptrs_present_everywhere_p): Likewise.
16755	(TYPE_CONTAINS_VPTR_P): Likewise.
16756	(dfs_walk_real): Declare.
16757	* class.c (build_vbase_pointer_fields): Check
16758	vbase_offsets_in_vtable_p.
16759	(dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in
16760	BINFO_VPTR_FIELD.
16761	(build_vbase_offset_vtbl_entries): Simplify.
16762	(build_vbase_offset_vtbl_entries): Adjust.
16763	(build_vbase_pointer): Add ability to look up vbase offsets in
16764	vtable.
16765	(start_vtable): New function.
16766	(add_virtual_function): Use it.
16767	(determine_primary_base): Use TYPE_CONTAINS_VPTR_P.
16768	(num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p.
16769	(build_vtbl_initializer): Take the type of the complete object as
16770	input.  Use it to correctly calculate vbase offsets.
16771	(dfs_finish_vtbls): Pass the complete type to
16772	build_vtbl_initializer.
16773	(check_bases_and_members): Use TYPE_CONTAINS_VPTR_P.
16774	(create_vtable_ptr): Create a vtable even if there are no
16775	new virtual functions, under the new ABI.
16776	(finish_struct_1): Likewise.
16777	(get_vfield_name): Use TYPE_CONTAINS_VPTR_P.
16778	* decl.c (exapnd_static_init): Remove call to
16779	preserve_initializer.
16780	* decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in
16781	vtables.
16782	* init.c (initialize_vtbl_ptrs): Initialize them in pre-order.
16783	(expand_virtual_init): Use vbase_offsets_in_vtable_p.
16784	(construct_virtual_bases): Don't initialize virtual base pointers
16785	under the new ABI.
16786	(build_aggr_init): Clean up comment.
16787	(expand_aggr_init_1): Likewise.
16788	* rtti.c (expand_class_desc): Store the virtual function table
16789	index where the vbase offset lives in the offset field.
16790	* search.c (dfs_walk_real): Make it global.
16791	(dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P.
16792	* tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD.
16793
16794	* tinfo.h (USItype): Make it signed under the new ABI.
16795	* tinfo.cc (convert_to_base): New function.  Encapsulate base
16796	conversion logic here.
16797	(__class_type_info::do_upcast): Use it.
16798	(__class_type_info::do_dyncast): Likewise.
16799	(__class_type_info::do_find_public_subobj): Likewise.
16800
16801	* init.c (construct_virtual_bases): Don't look up the addresses of
16802	virtual bases at run-time.
16803
16804	* class.c (build_vbase_pointer): Relocate.
16805	(build_vbase_pointer_fields): Likewise.
16806	(dfs_build_vbase_offset_vtbl_entries): Likewise.
16807	(build_vbase_offset_vtbl_entries): Likewise.
16808
16809	* decl.c (init_decl_processing): Complain if -fnew-abi
16810	-fno-vtable-thunks is used.
16811
16812	* decl2.c (lang_decode_option): Don't couple flag_honor_std to
16813	flag_new_abi.
16814
168152000-01-15  Mark Mitchell  <mark@codesourcery.com>
16816
16817	* cp-tree.h (num_extra_vtbl_entries): New function.
16818	(size_extra_vtbl_entries): Likewise.
16819	(dfs_vtable_path_unmark): Likewise.
16820	(dfs_vtable_path_unmarked_real_bases_queue_p): Likewise.
16821	(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
16822	* class.c (num_extra_vtbl_entries): New function.
16823	(size_extra_vtbl_entries): Likewise.
16824	(dfs_build_vbase_offset_vtbl_entries): New function.
16825	(build_vbase_offset_vtbl_entries): Likewise.
16826	(build_vtbl_initializer): Use it.
16827	(finish_struct_1): Adjust vtable sizes (using
16828	num_extra_vtbl_entries).
16829	* expr.c (cplus_expand_expr): Assert that the DECL_RTL for a
16830	THUNK_DECL is non-NULL before expanding it.
16831	* init.c (expand_virtual_init): Adjust the vtable pointer by
16832	size_extra_vtbl_entries before storing it.
16833	* search.c (get_shared_vase_if_not_primary): Adjust prototype.
16834	Handle TREE_LIST parameters here, not in the dfs_* functions.
16835	(dfs_unmarked_real_bases_queue_p): Adjust.
16836	(dfs_marked_real_bases_queue_p): Likewise.
16837	(dfs_vtable_path_unmarked_real_bases_queue_p): New function.
16838	(dfs_vtable_path_marked_real_bases_queue_p): New function.
16839	(dfs_vtable_path_unmark): Likewise.
16840
168412000-01-14  Mark Mitchell  <mark@codesourcery.com>
16842
16843	* optimize.c (copy_body_r): Clear the operand three of a
16844	TARGET_EXPR when copying it.
16845
168462000-01-14  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
16847
16848	* method.c (build_decl_overload_real): Check whether we are in ::
16849	before returning __builtin_new/delete.
16850
168512000-01-13  Mark Mitchell  <mark@codesourcery.com>
16852
16853	* pt.c (tsubst_friend_function): Improve comment.
16854	(instantiate_decl): Avoid crashing when a "nested" function is
16855	instantiated from the top level.
16856
16857	* dump.c (dqeueue_and_dump): Dump
16858	DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION.
16859
168602000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16861
16862	* call.c: If GATHER_STATISTICS, declare `n_build_method_call'.
16863
168642000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
16865
16866	* g++spec.c (lang_specific_driver): Add -fnew-abi if
16867	ENABLE_NEW_GXX_ABI defined.
16868	* Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o,
16869	opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o,
16870	opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch.
16871
168722000-01-12  Mark Mitchell  <mark@codesourcery.com>
16873
16874	* decl.c (start_cleanup_fn): Call pushdecl.
16875
16876	* call.c (convert_class_to_reference): Fix typos.
16877	(build_conditional_expr): Handle errors gracefully.
16878	* class.c (push_nested_class): Likewise.
16879	* cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro.
16880	(DECL_THIS_EXTERN): Use it.
16881	(DECL_THIS_STATIC): Likewise.
16882	* cvt.c (convert_to_void): Handle errors gracefully.
16883	(build_expr_type_conversion): Likewise.
16884	* decl.c (maybe_push_decl): Likewise.
16885	(start_decl_1): Likewise.
16886	(require_complete_types_for_parms): Likewise.
16887	* parse.y (structsp): Likewise.
16888	(base_class): Likewise.
16889	* parse.c: Regenerated.
16890	* pt.c (finish_member_template_decl): Likewise.
16891	* typeck.c (decay_conversion): Likewise.
16892
16893	* cp-tree.h (dfs_skip_vbases): New function.
16894	(find_vbase_instance): Likewise.
16895	* class.c (determine_primary_base): Allow a nearly empty base to
16896	serve as a primary base class under the new ABI.
16897	(get_class_offset_1): Rename to ...
16898	(dfs_get_class_offset): ... this.  Simplify.  Don't issue error
16899	messages here.
16900	(get_class_offset): Use it.  Issue error messages here.
16901	(dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to
16902	find the right copies of virtual bases.
16903	(fixup_vtable_deltas1): Rename to ...
16904	(dfs_fixup_vtable_deltas): ... this.  Adjust to handle virtual
16905	bases as primary bases.
16906	(fixup_vtable_deltas): Remove.
16907	(override_one_vtable): Handle virtual bases as primary bases.
16908	(merge_overrides): Likewise.
16909	(finish_struct_1): Likewise.
16910	(dump_class_hierarchy): Dump primary-ness of bases as well.
16911	* search.c (mark_primary_bases): Use a pre-order traversal to
16912	handle primary virtual bases.
16913	(dfs_skip_vbases): New fiunction.
16914	(expand_upcast_fixups): Adjust to handle primary virtual bases.
16915	(fixup_virtual_upcast_offsets): Likewise.
16916	(fixup_all_virtual_upcast_offsets): Likewise.
16917	(dfs_find_vbase_instances): New function.
16918	(find_vbase_instance): Likewise.
16919
169202000-01-11  Mumit Khan  <khan@xraylith.wisc.edu>
16921
16922	* lex.c (DIR_SEPARATOR): Delete macro.
16923
169242000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
16925
16926       * decl2.c (lang_decode_option): Handle automatic line wrapping
16927       option.
16928
169292000-01-11  Mark Mitchell  <mark@codesourcery.com>
16930
16931	* friend.c (do_friend): Don't resolve scopes when processing
16932	template declarations, even if the qualifying scope doesn't
16933	involve template parameters.
16934
169352000-01-10  Mark Mitchell  <mitchell@dumbledore.codesourcery.com>
16936
16937	* class.c (dfs_modify_vtables_queue_p): Remove.
16938	(modify_all_vtables): Use dfs_unmarked_real_bases_queue_p
16939	and dfs_marked_real_bases_queue_p instead of
16940	dfs_modify_vtables_queue_p.
16941
16942	* class.c (build_vbase_path): Simplify.
16943	(dfs_propagate_binfo_offsets): New function.
16944	(propagate_binfo_offsets): Use it.
16945	(remove_base_field): Simplify.
16946	(dfs_set_offset_for_vbases): Remove.
16947	(dfs_set_offset_for_shared_vbases): New function.
16948	(dfs_set_offset_for_unshared_vbases): Likewise.
16949	(layout_virtual_bases): Use them.
16950	(layout_basetypes): Don't call propagate_binfo_offsets.
16951	* search.c (dfs_get_vbase_types): Clone completely fresh binfos
16952	for the vbases.
16953
16954	* class.c (build_base_field): New function, split out from ...
16955	(build_base_fields): ... here.  Use it.  Allocate primary bases
16956	first, under the new ABI.
16957	(get_vtable_entry): Remove.
16958	(remove_base_field): New function, split out from ...
16959	(remove_base_fields): ... here.  Adjust since primary bases come
16960	first under the new ABI.
16961
16962	* cp-tree.h (expand_direct_vtbls_init): Remove declaration.
16963	(initialize_vtbl_ptrs): New function.
16964	(expand_indirect_vtbls_init): Change prototype.
16965	(convert_pointer_to_vbase): Declare.
16966	* init.c (expand_direct_vtbls_init): Remove.
16967	(dfs_initialize_vtbl_ptrs): New function.
16968	(initialize_vtbl_ptrs): Likewise.
16969	(emit_base_init): Use initialize_vtbl_ptrs.
16970	* search.c (convert_pointer_to_vbase): Make it global.
16971	(expand_indirect_vtbls_init): Remove vtable initialization code.
16972	* semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs.
16973
16974	* class.c (dfs_finish_vtbls): New function.
16975	(finish_vtbls): Use it.
16976	(dump_class_hierarchy): New function.
16977
16978	* cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition.
16979	(BINFO_VBASE_PRIMARY_P): New macro.
16980	(BINFO_VIRTUALS): Add to documentation.
16981	(SET_BINFO_PRIMARY_MARKED_P): Remove.
16982	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
16983	(dfs_mark_primary_bases_queue_p): Likewise.
16984	(dfs_unmarked_real_bases_queue_p): New function.
16985	(dfs_marked_real_bases_queue_p): Likewise.
16986	* search.c (dfs_mark_primary_bases): Adjust.
16987	(mark_primary_bases): Likewise.
16988	(get_shared_vbase_if_not_primary): New function.
16989	(dfs_unmarked_real_bases_queue_p): Likewise.
16990	(dfs_marked_real_bases_queue_p): Likewise.
16991	(dfs_get_pure_virtuals): Simplify.
16992	(get_pure_virtuals): Likewise.
16993
169942000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16995
16996	* lex.c: Include tm_p.h.
16997
169982000-01-07  Nathan Sidwell  <sidwell@codesourcery.com>
16999
17000	* lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro.
17001
170022000-01-06  Jason Merrill  <jason@casey.cygnus.com>
17003
17004	* decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT.
17005	* pt.c (instantiate_decl): Defer comdat templates that might not be
17006	needed.
17007
17008	* cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT.
17009	* decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT.
17010	(finish_file): Likewise.
17011
17012	* decl2.c (import_export_class): Undo 12/14 change.
17013
17014	* error.c (dump_decl): operator new, not operatornew.
17015
17016	* class.c (field_decl_cmp): A nontype is "greater" than a type.
17017	* search.c (lookup_field_1): Look for the last field with the
17018	desired name.
17019
170202000-01-05  Nathan Sidwell  <nathan@acm.org>
17021
17022	* decl2.c (lookup_arg_dependent): Deal with FNS not being a
17023	FUNCTION_DECL.
17024
170252000-01-05  Nathan Sidwell  <nathan@acm.org>
17026
17027	* typeck.c (build_static_cast): Don't strip target qualifiers
17028	when casting from a class.
17029
170302000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17031
17032	* class.c (warn_hidden): Initialize variable `fndecl'.
17033
170342000-01-03  Ulrich Drepper  <drepper@cygnus.com>
17035
17036	* decl.c (flag_isoc9x): New variable to be able to use code in
17037	c-common.c.  For now always zero.
17038
170392000-01-03  Mark Mitchell  <mark@codesourcery.com>
17040
17041	* cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation.
17042	* class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN
17043	or unshare_base_binfos for virtual bases here.
17044	* search.c (dfs_get_vbase_types): Do it here.
17045	(get_vbase_types): Adjust.
17046
170472000-01-02  Mark Mitchell  <mark@codesourcery.com>
17048
17049	* cp-tree.h (CLASSTYPE_VFIELDS): Move definition.
17050	(BINFO_PRIMARY_MARKED_P): Use flag 5.
17051	(SET_BINFO_PRIMARY_MARKED_P): Likewise.
17052	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
17053	(unmark_primary_bases): Remove declaration.
17054	(unmarkedp): Declare.
17055	(dfs_vbase_unmark): Likewise.
17056	* class.c (determine_primary_base): Return immediately if there
17057	are no base classes.  Call mark_primary_bases here.
17058	(modify_all_direct_vtables): Remove.
17059	(modify_all_indirect_vtables): Remove.
17060	(dfs_modify_vtables_queue_p): New function.
17061	(dfs_modify_vtables): New function.
17062	(modify_all_vtables): Use them.
17063	(build_base_fields): Build FIELD_DECLs for primary virtual base
17064	classes.
17065	(create_vtable_ptr): Don't call determine_primary_base here.
17066	(dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ...
17067	(dfs_set_offset_for_vbases): ... this.
17068	(layout_virtual_bases): Use it.
17069	(layout_class_type): Call determine_primary_base here.
17070	* search.c (unmarkedp): Make it global.
17071	(shared_marked_p): Simplify.
17072	(shared_unmarked_p): Likewise.
17073	(dfs_primary_bases_queue_p): Remove.
17074	(dfs_unmark_primary_bases): Likewise.
17075	(unmark_primary_bases): Likewise.
17076	(mark_primary_bases): Simplify.
17077	(get_pure_virtuals): Don't call mark_primary_bases here.
17078	(dfs_vbase_unmark): New function.
17079	(get_vbase_types): Simplify.
17080
17081	* class.c (struct base_info): Remove.
17082	(determine_primary_base): Take has_virtual_p rather than a
17083	base_info as input.  Don't calculate max_has_virtual.
17084	(finish_struct_bits): Remove max_has_virtual argument.
17085	(create_vtable_ptr): Remove max_has_virtual_p argument.
17086	(layout_virtual_bases): Remove max argument.
17087	(layout_basetypes): Likewise.
17088	(layout_class_type): Remove max_has_virtual_p argument.
17089	(finish_struct_1): Remove max_has_virtual.
17090
17091	* cp-tree.h (dfs_mark_primary_bases_queue_p): New function.
17092	(layout_basetypes): Remove.
17093	* class.c (propagate_binfo_offsets): Moved here from tree.c.
17094	Update to handle primary virtual bases.
17095	(remove_base_fields): New function, split out from
17096	layout_basetypes.
17097	(dfs_mark_primary_bases_and_set_vbase_offsets): New function.
17098	(layout_virtual_bases): New function, split out from
17099	layout_basetypes.  Update to handle primary virtual bases.
17100	(layout_basetypes): Moved here from tree.c.  Use
17101	remove_base_fields and layout_virtual_bases.
17102	* search.c (dfs_mark_primary_bases_queue_p): New function.
17103	(mark_primary_bases): Use it.
17104	* tree.c (CEIL): Remove.
17105	(propagate_binfo_offsets): Remove.
17106	(layout_basetypes): Remove.
17107
171082000-01-01  Mark Mitchell  <mark@codesourcery.com>
17109
17110	* cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES.
17111	(BINFO_PRIMARY_MARKED_P): New macro.
17112	(SET_BINFO_PRIMARY_MARKED_P): Likewise.
17113	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
17114	(mark_primary_bases): New function.
17115	(unmark_primary_bases): Likewise.
17116	* search.c (get_abstract_virtuals_1): Remove.
17117	(dfs_mark_primary_bases): New function.
17118	(mark_primary_bases): Likewise.
17119	(dfs_unmark_primary_bases): Likewise.
17120	(unmark_primary_bases): Likewise.
17121	(dfs_get_pure_virtuals): Likewise.
17122
171232000-01-01  Mark Mitchell  <mark@codesourcery.com>
17124
17125	* cp-tree.h (skip_rtti_stuff): Adjust prototype.
17126	* class.c (skip_rtti_stuff): Reorganize parameters and return value.
17127	(modify_one_vtable): Adjust.
17128	(fixup_vtable_deltas1): Likewise.
17129	(override_one_vtable): Likewise.
17130	* search.c (get_abstract_virtuals_1): Likewise.
17131	(get_pure_virtuals): Likewise.
17132	(expand_upcast_fixups): Likewise.
17133	* tree.c (debug_binfo): Likewise.
17134
17135	* class.c (build_vtable): Don't return a value.  Don't rebuild
17136	vtables for bases that have already been handled.
17137	(prepare_fresh_vtable): Don't rebuild vtables for bases that have
17138	already been handled.
17139	(modify_one_vtable): Adjust accordingly.
17140	(fixup_vtable_deltas1): Likewise.
17141	(finish_struct_1): Likewise.
17142
171432000-01-01  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
17144
17145	* call.c (build_new_method_call): Also check destructors.
17146