ChangeLog revision 96263
196263Sobrien2002-05-03  Jason Merrill  <jason@redhat.com>
296263Sobrien
396263Sobrien	* decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
496263Sobrien
596263Sobrien2002-05-02  Mark Mitchell  <mark@codesourcery.com>
696263Sobrien
796263Sobrien	* init.c (perform_base_cleanups): Correct order of base class
896263Sobrien	cleanups.
996263Sobrien
1096263Sobrien2002-05-01  Mark Mitchell  <mark@codesourcery.com>
1196263Sobrien
1296263Sobrien	PR c++/6527
1396263Sobrien	* init.c (perform_base_cleanups): Emit cleanups in reverse order
1496263Sobrien	of construction.
1596263Sobrien
1696263Sobrien2002-05-01  Gabriel Dos Reis  <gdr@codesourcery.com>
1796263Sobrien
1896263Sobrien	* error.c (dump_type): Be careful about implicit typenames.
1996263Sobrien
2096263Sobrien2002-04-30  Mark Mitchell  <mark@codesourcery.com>
2196263Sobrien
2296263Sobrien	ABI change, returning simple classes from functions.
2396263Sobrien	* class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
2496263Sobrien	TYPE_HAS_TRIVIAL_INIT_REF is false or
2596263Sobrien	TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
2696263Sobrien
2796263Sobrien2002-04-30  Jason Merrill  <jason@redhat.com>
2896263Sobrien
2996263Sobrien	* decl.c (grokdeclarator): Don't override TYPE_NAME of an
3096263Sobrien	anonymous class with a typedef if there are attributes.
3196263Sobrien
3296263Sobrien2002-04-29  Paul Eggert  <eggert@twinsun.com>
3396263Sobrien
3496263Sobrien	* parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
3596263Sobrien
3696263Sobrien2002-04-29  Jakub Jelinek  <jakub@redhat.com>
3796263Sobrien
3896263Sobrien	PR c++/6477
3996263Sobrien	* decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
4096263Sobrien	non-NULL first.
4196263Sobrien
4296263Sobrien2002-04-29  Mark Mitchell  <mark@codesourcery.com>
4396263Sobrien
4496263Sobrien	PR c++/6492
4596263Sobrien	* pt.c (tsubst_friend_class): If the friend has an explicit scope,
4696263Sobrien	enter that scope before name lookup.
4796263Sobrien
4896263Sobrien	PR c++/6486
4996263Sobrien	* method.c (do_build_copy_constructor): Avoid building
5096263Sobrien	cv-qualified reference types.
5196263Sobrien
5296263Sobrien2002-04-29  Nathan Sidwell  <nathan@codesourcery.com>
5396263Sobrien
5496263Sobrien	PR c++/5719
5596263Sobrien	* decl.c (grok_op_properties): Assignment ops don't have to return 
5696263Sobrien	by value. operator% should.
5796263Sobrien
5896263Sobrien2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5996263Sobrien
6096263Sobrien	PR c/6343
6196263Sobrien	* decl.c (duplicate_decls): Call merge_weak.
6296263Sobrien
6396263Sobrien2002-04-26  Mark Mitchell  <mark@codesourcery.com>
6496263Sobrien
6596263Sobrien	PR c++/6479
6696263Sobrien	* method.c (do_build_assign_ref): Pass a derivation to
6796263Sobrien	build_method_call when calling base class assignment operators.
6896263Sobrien
6996263Sobrien2002-04-24  Mark Mitchell  <mark@codesourcery.com>
7096263Sobrien
7196263Sobrien	* mangle.c (write_type): Don't use TYPE_MAIN_VARIANT when writing
7296263Sobrien	out an array type.
7396263Sobrien	(write_CV_qualifiers_for_type): Use TYPE_QUALS, not cp_type_quals,
7496263Sobrien	to determine qualifiers.
7596263Sobrien
7696263Sobrien	* cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
7796263Sobrien	void.
7896263Sobrien
7996263Sobrien2002-04-24  Jason Merrill  <jason@redhat.com>
8096263Sobrien
8196263Sobrien	PR c++/6331
8296263Sobrien	* method.c (do_build_copy_constructor): Use cp_build_qualified_type.
8396263Sobrien	* typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
8496263Sobrien	The pedwarn for array assignment is now unconditional.
8596263Sobrien	* tree.c (build_cplus_array_type_1): Still process simple array types
8696263Sobrien	normally in templates.
8796263Sobrien
8896263Sobrien	PR c++/6395
8996263Sobrien	* decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
9096263Sobrien	stuff for comdats.
9196263Sobrien
9296263Sobrien2002-04-23  Jason Merrill  <jason@redhat.com>
9396263Sobrien
9496263Sobrien	PR c++/5504 - but re-breaks c++/411
9596263Sobrien	* init.c (push_base_cleanups): Rename to perform_base_cleanups.
9696263Sobrien	Expand base cleanups now rather than pushing them.
9796263Sobrien	* decl.c (begin_destructor_body): Don't call push_base_cleanups.
9896263Sobrien	(finish_destructor_body): Call perform_base_cleanups.
9996263Sobrien	* cp-tree.h: Adjust prototype.
10096263Sobrien
10196263Sobrien2002-04-23  Jakub Jelinek  <jakub@redhat.com>
10296263Sobrien
10396263Sobrien	* parse.y (check_class_key): Allow KEY to be union/enum/struct/class
10496263Sobrien	node with attributes.
10596263Sobrien
10696263Sobrien2002-2-23  David O'Brien  <obrien@FreeBSD.org>
10796263Sobrien
10896263Sobrien	* g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
10996263Sobrien	Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
11096263Sobrien
11196263Sobrien2002-04-23  Mark Mitchell  <mark@codesourcery.com>
11296263Sobrien
11396263Sobrien	PR c++/6256:
11496263Sobrien	* pt.c (tsubst_friend_class): Handle templates with explicit
11596263Sobrien	nested names.
11696263Sobrien
11796263Sobrien	PR c++/6331:
11896263Sobrien	* typeck.c (merge_types): Remember the cv-qualification of pointer
11996263Sobrien	types when merging them.
12096263Sobrien
12196263Sobrien2002-04-18  Jason Merrill  <jason@redhat.com>
12296263Sobrien
12396263Sobrien	PR c++/5658
12496263Sobrien	* search.c (setup_class_bindings): A class template qualifies as a
12596263Sobrien	type binding.
12696263Sobrien
12796263Sobrien2002-04-17  Jakub Jelinek  <jakub@redhat.com>
12896263Sobrien
12996263Sobrien	PR c++/6316
13096263Sobrien	* decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
13196263Sobrien	before expanding.
13296263Sobrien
13396263Sobrien2002-04-16  Mark Mitchell  <mark@codesourcery.com>
13496263Sobrien
13596263Sobrien	* init.c (begin_init_stmts): Remove commented out code.
13696263Sobrien	(finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
13796263Sobrien	* semantics.c (begin_gobal_stmt_expr): Adjust call to
13896263Sobrien	expand_start_stmt_expr.
13996263Sobrien	
14096263Sobrien2002-04-15  Mark Mitchell  <mark@codesourcery.com>
14196263Sobrien
14296263Sobrien	* decl.c (register_dtor_fn): Pass the address of dso_handle, not
14396263Sobrien	dso_handle itself, to __cxa_atexit.
14496263Sobrien
14596263Sobrien2002-04-14  Jakub Jelinek  <jakub@redhat.com>
14696263Sobrien
14796263Sobrien	* class.c (layout_virtual_bases): Do all dsize computation on trees.
14896263Sobrien
14996263Sobrien2002-04-12  Mark Mitchell  <mark@codesourcery.com>
15096263Sobrien
15196263Sobrien	PR c++/5373.
15296263Sobrien	* semantics.c (finish_expr_stmt): Remember the type of the
15396263Sobrien	expression before any conversions are performed.
15496263Sobrien
15596263Sobrien	PR c++/5189.
15696263Sobrien	* call.c (add_template_candidate_real): Do not treat member
15796263Sobrien	templates as copy constructors.
15896263Sobrien
15996263Sobrien	* decl.c (duplicate_decls): Do not copy the RTL for a variable
16096263Sobrien	declaration if the old variable had an incomplete type and the new
16196263Sobrien	variable does not.
16296263Sobrien	(complete_vars): Do not call layout_decl for completed variables.
16396263Sobrien
16496263Sobrien2002-04-11  Andrew Haley  <aph@redhat.com>
16596263Sobrien
16696263Sobrien        * typeck.c (type_after_usual_arithmetic_conversions):
16796263Sobrien        If two types have the same variant, return immediately.
16896263Sobrien        When two floating-point operands are the same precision: 
16996263Sobrien          convert to float if one of the operands is float;
17096263Sobrien          if neither operand is one of the standard types, return the type
17196263Sobrien          of the first operand.
17296263Sobrien 
17396263Sobrien2002-04-12  Richard Sandiford  <rsandifo@redhat.com>
17496263Sobrien
17596263Sobrien	* decl.c (duplicate_decls): Don't try to unify an implicit typedef
17696263Sobrien	with an explicit one.
17796263Sobrien	(follow_tag_typedef): New.
17896263Sobrien	(lookup_tag): Use it to extract the tag of an explicit typedef.
17996263Sobrien	(xref_tag): Likewise.
18096263Sobrien
18196263Sobrien2002-04-10  Nathan Sidwell  <nathan@codesourcery.com>
18296263Sobrien
18396263Sobrien	PR c++/5507
18496263Sobrien	* decl.c (make_typename_type): Remove implicit typenameness.
18596263Sobrien
18696263Sobrien2002-04-09  Jason Merrill  <jason@redhat.com>
18796263Sobrien
18896263Sobrien	PR optimization/6189
18996263Sobrien	* semantics.c (genrtl_start_function): Don't free
19096263Sobrien	DECL_SAVED_FUNCTION_DATA for inline functions.
19196263Sobrien
19296263Sobrien2002-04-08  Paolo Carlini  <pcarlini@unitus.it>
19396263Sobrien
19496263Sobrien	* parse.y (namespace_qualifier, maybe_identifier,
19596263Sobrien	begin_explicit_instantiation, end_explicit_instantiation,
19696263Sobrien	apparent_template_type, .finish_template_type,
19796263Sobrien	do_id, maybe_init, defarg_again, component_decl_1):
19896263Sobrien	Add ending ';', in accordance with POSIX.
19996263Sobrien
20096263Sobrien2002-04-06  Mark Mitchell  <mark@codesourcery.com>
20196263Sobrien
20296263Sobrien	PR c++/5571
20396263Sobrien	* class.c (layout_class_type): Remember incomplete static
20496263Sobrien	variables.
20596263Sobrien	(finish_struct_1): Call complete_vars, not
20696263Sobrien	hack_incomplete_structures.
20796263Sobrien	* cp-tree.h (hack_incomplete_structures): Rename to ...
20896263Sobrien	(complete_vars): ... this.
20996263Sobrien	(struct saved_scope): Remove incomplete.
21096263Sobrien	(namespace_scope_incomplete): Remove.
21196263Sobrien	* decl.c (struct binding_level): Remove incomplete.
21296263Sobrien	(incomplete_vars): New variable.
21396263Sobrien	(mark_binding_level): Don't mark incomplete.
21496263Sobrien	(print_binding_level): Don't print it.
21596263Sobrien	(mark_saved_scope): Don't mark incomplete.
21696263Sobrien	(pushdecl): Use maybe_register_incopmlete_var.
21796263Sobrien	(cxx_init_decl_processing): Register incomplete_vars for GC.
21896263Sobrien	(start_decl_1): Clarify error message.
21996263Sobrien	(hack_incomplete_vars): Remove.
22096263Sobrien	(maybe_register_incomplete_var): New function.
22196263Sobrien	(complete_vars): Likewise.
22296263Sobrien
22396263Sobrien2002-04-06  Jason Merrill  <jason@redhat.com>
22496263Sobrien
22596263Sobrien	PR c++/4934
22696263Sobrien	* error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
22796263Sobrien	set before checking it.
22896263Sobrien
22996263Sobrien	PR c++/6179
23096263Sobrien	* method.c (implicitly_declare_fn): Pass unqualified type to 
23196263Sobrien	synthesize_exception_spec.
23296263Sobrien
23396263Sobrien2002-04-03  Jason Merrill  <jason@redhat.com>
23496263Sobrien
23596263Sobrien	PR c++/525
23696263Sobrien	* init.c (build_member_call): Convert to intermediate base even
23796263Sobrien	with -pedantic.
23896263Sobrien
23996263Sobrien	PR c++/5636
24096263Sobrien	* semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
24196263Sobrien	cleanup for nrv.
24296263Sobrien
24396263Sobrien	PR c++/5104
24496263Sobrien	* typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
24596263Sobrien	specifiers.
24696263Sobrien	[METHOD_TYPE]: Use same code as FUNCTION_TYPE.
24796263Sobrien
24896263Sobrien2002-04-03  Roger Sayle  <roger@eyesopen.com>
24996263Sobrien
25096263Sobrien	PR c++/5998:
25196263Sobrien	* decl.c (duplicate_decls): Don't mess with assembler names when
25296263Sobrien	redeclaring builtin functions as static.
25396263Sobrien
25496263Sobrien2002-04-01  Roger Sayle  <roger@eyesopen.com>
25596263Sobrien
25696263Sobrien	PR c++/5998:
25796263Sobrien	* decl.c (duplicate_decls):  Overwrite the RTL when (and only
25896263Sobrien	when) overwriting a built-in function.  Don't use COPY_DECL_RTL,
25996263Sobrien	but follow the SET_DECL_RTL idiom used elsewhere in the function.
26096263Sobrien
26196263Sobrien2002-03-28  Roger Sayle  <roger@eyesopen.com>
26296263Sobrien
26396263Sobrien	PR c++/5998:
26496263Sobrien	* decl.c (cxx_init_decl_processing): Re-enable built-in functions
26596263Sobrien	in the g++ front-end.
26696263Sobrien	(duplicate_decl): Allow redefinition of anticipated built-ins.
26796263Sobrien	Fix inlining problem by over-writing the old DECL_RTL.
26896263Sobrien	(lookup_namespace_name): Fail to find an identifier in the
26996263Sobrien	specified namespace if its still anticipated.
27096263Sobrien	(builtin_function_1): New function split out from builtin_function
27196263Sobrien	to create a builtin in the current namespace with given context.
27296263Sobrien	(builtin_function): Call builtin_function_1 to define the
27396263Sobrien	appropriate builtins in both the std and global namespaces.
27496263Sobrien	(select_decl): Don't test for anticipated decls here.
27596263Sobrien	(unqualified_namespace_lookup): Instead ignore them whilst
27696263Sobrien	searching through scopes and namespaces.
27796263Sobrien	* decl2.c (do_nonmember_using_decl): If a using declaration
27896263Sobrien	specifies an anticipated built-in function, mark it as no longer
27996263Sobrien	anticipated in that scope.
28096263Sobrien	(ambiguous_decl):  Avoid resolving to an anticipated decl.
28196263Sobrien	* lex.c (do_scoped_id): Fail to find an identifier in the global
28296263Sobrien	namespace if its still anticipated.
28396263Sobrien
28496263Sobrien2002-03-29  Jakub Jelinek  <jakub@redhat.com>
28596263Sobrien
28696263Sobrien	PR c++/6073
28796263Sobrien	* class.c (finish_struct_1): Update static field's DECL_MODE even
28896263Sobrien	if its type is a variant of t.
28996263Sobrien
29096263Sobrien2002-03-27  Mark Mitchell  <mark@codesourcery.com>
29196263Sobrien
29296263Sobrien	PR c++/4884
29396263Sobrien	* call.c (build_op_delete_call): Allow for the fact the placement
29496263Sobrien	may be a COMPOUND_EXPR.
29596263Sobrien	
29696263Sobrien2002-03-26  Nathan Sidwell  <nathan@codesourcery.com>
29796263Sobrien
29896263Sobrien	PR c++/5682
29996263Sobrien	* cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
30096263Sobrien	(dfs_skip_nonprimary_vbases_unmarkedp): Remove.
30196263Sobrien	(dfs_skip_nonprimary_vbases_markedp): Remove.
30296263Sobrien	* search.c (get_shared_vbase_if_not_primary): Remove.
30396263Sobrien	(dfs_skip_nonprimary_vbases_unmarkedp): Remove.
30496263Sobrien	(dfs_skip_nonprimary_vbases_markedp): Remove.
30596263Sobrien	(dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
30696263Sobrien	(dfs_marked_real_bases_queue_p): Likewise.
30796263Sobrien
30896263Sobrien2002-03-26  Mark Mitchell  <mark@codesourcery.com>
30996263Sobrien
31096263Sobrien	PR c++/4884
31196263Sobrien	* init.c (build_new_1): Allow for the fact the result of
31296263Sobrien	build_function_call may be a COMPOUND_EXPR.
31396263Sobrien
31496263Sobrien2002-03-25  Jakub Jelinek  <jakub@redhat.com>
31596263Sobrien
31696263Sobrien	PR c++/6037
31796263Sobrien	* decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
31896263Sobrien
31996263Sobrien2002-03-22  Jeff Knaggs  <jknaggs@redhat.com>
32096263Sobrien
32196263Sobrien	* typeck.c (expand_ptrmemfunc_cst): Scale idx down to an index
32296263Sobrien	into the vtable_entry array regardless of
32396263Sobrien	TARGET_PTRMEMFUNC_VBIT_LOCATION.
32496263Sobrien
32596263Sobrien2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
32696263Sobrien
32796263Sobrien	* tree.c (cp_cannot_inline_tree_fn): Same.
32896263Sobrien
32996263Sobrien2002-03-20  Jason Merrill  <jason@redhat.com>
33096263Sobrien
33196263Sobrien	PR c++/2136
33296263Sobrien	* init.c (build_delete): Check access for a member op delete here.
33396263Sobrien	* decl2.c (delete_sanity): Not here.
33496263Sobrien
33596263Sobrien2002-03-19  Jason Merrill  <jason@redhat.com>
33696263Sobrien
33796263Sobrien	PR c++/5118
33896263Sobrien	* class.c (get_vfield_name): Use the constructor_name.
33996263Sobrien
34096263Sobrien2002-03-18  Eric Botcazou  <ebotcazou@multimania.com>
34196263Sobrien
34296263Sobrien	PR c++/3882
34396263Sobrien	* pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
34496263Sobrien	(tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
34596263Sobrien	only after recording the declaration.
34696263Sobrien
34796263Sobrien2002-03-18  Ashif Harji  <asharji@uwaterloo.ca>
34896263Sobrien
34996263Sobrien	* lang-specs.h (compiler default_compilers): Add   
35096263Sobrien	-no-integrated-cpp flag to invoke an external cpp.
35196263Sobrien
35296263Sobrien2002-03-18  Jason Merrill  <jason@redhat.com>
35396263Sobrien
35496263Sobrien	PR c++/2039
35596263Sobrien	* init.c (resolve_offset_ref): Hand off to build_component_ref.
35696263Sobrien
35796263Sobrien	PR c++/4222, c++/5995
35896263Sobrien	* call.c (build_over_call): Fix empty class logic.
35996263Sobrien
36096263Sobrien	PR c++/3870
36196263Sobrien	* cp-tree.h (struct saved_scope): Add last_parms field.
36296263Sobrien	* decl.c (maybe_push_to_top_level): Save last_function_parms.
36396263Sobrien	(pop_from_top_level): Restore it.
36496263Sobrien
36596263Sobrien	PR c++/4377
36696263Sobrien	* mangle.c (write_expression): Strip NOP_EXPRs sooner.  Also strip
36796263Sobrien	NON_LVALUE_EXPRs.
36896263Sobrien
36996263Sobrien	PR c++/4003
37096263Sobrien	* pt.c (tsubst_friend_function): Use decl_namespace_context.
37196263Sobrien
37296263Sobrien	PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
37396263Sobrien	* class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
37496263Sobrien	type with a nontrivial destructor.
37596263Sobrien
37696263Sobrien2002-03-17  Jason Merrill  <jason@redhat.com>
37796263Sobrien
37896263Sobrien	PR c++/4460
37996263Sobrien	* class.c (build_base_path): Virtual base layout is fixed in
38096263Sobrien	in-charge [cd]tors.
38196263Sobrien
38296263Sobrien	PR c++/5757
38396263Sobrien	* init.c (build_new_1): Pass the right pointer to op delete.
38496263Sobrien
38596263Sobrien2002-03-15  Richard Henderson  <rth@redhat.com>
38696263Sobrien
38796263Sobrien	* init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
38896263Sobrien
38996263Sobrien2002-03-15  Richard Henderson  <rth@redhat.com>
39096263Sobrien
39196263Sobrien	* decl.c (finish_function): Reapply accidentally reverted
39296263Sobrien	2002-02-28 patch.
39396263Sobrien
39496263Sobrien2002-03-15  Mark Mitchell  <mark@codesourcery.com>
39596263Sobrien
39696263Sobrien	* cp-tree.h (CLEANUP_DECL): Remove.
39796263Sobrien	(CLEANUP_EXPR): Likewise.
39896263Sobrien	* decl.c (destroy_local_var): Simplify.
39996263Sobrien	(maybe_build_cleanup): Tidy.
40096263Sobrien	* dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
40196263Sobrien	* semantics.c (cp_expand_stmt): Likewise.
40296263Sobrien	* cp/tree.c (cp_statement_code_p): Likewise.
40396263Sobrien
40496263Sobrien2002-03-15  Richard Henderson  <rth@redhat.com>
40596263Sobrien
40696263Sobrien	* decl.c: Include c-pragma.h.
40796263Sobrien	(start_decl, start_function): Invoke maybe_apply_pragma_weak.
40896263Sobrien	* Make-lang.in: Update dependencies.
40996263Sobrien
41096263Sobrien2002-03-15  Jason Merrill  <jason@redhat.com>
41196263Sobrien
41296263Sobrien	PR c++/5857
41396263Sobrien	* decl.c (duplicate_decls): Use merge_types instead of common_type.
41496263Sobrien	* typeck.c (common_type): Just hand off to
41596263Sobrien	type_after_usual_arithmetic_conversions and
41696263Sobrien	composite_pointer_type.
41796263Sobrien	(merge_types): New fn.
41896263Sobrien	(commonparms): Use it instead of common_type.
41996263Sobrien	(type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
42096263Sobrien	(composite_pointer_type): Also handle attributes.
42196263Sobrien	* cp-tree.h: Declare merge_types.
42296263Sobrien
42396263Sobrien	* decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
42496263Sobrien	variables.
42596263Sobrien	* decl2.c (maybe_make_one_only): Also mark the decl as needed.
42696263Sobrien
42796263Sobrien2002-03-14  Jakub Jelinek  <jakub@redhat.com>
42896263Sobrien
42996263Sobrien	PR c++/5908
43096263Sobrien	* call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
43196263Sobrien	* cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
43296263Sobrien
43396263Sobrien2002-03-12  Richard Sandiford  <rsandifo@redhat.com>
43496263Sobrien
43596263Sobrien	* mangle.c (write_builtin_type): Handle 128-bit integers even if
43696263Sobrien	they are not a standard integer type.
43796263Sobrien
43896263Sobrien2002-03-12  Nathan Sidwell  <nathan@codesourcery.com>
43996263Sobrien
44096263Sobrien	PR c++/5659
44196263Sobrien	* decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
44296263Sobrien	* decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
44396263Sobrien	definitions.
44496263Sobrien
44596263Sobrien2002-03-11  Nathan Sidwell  <nathan@codesourcery.com>
44696263Sobrien
44796263Sobrien	Revert 2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>,
44896263Sobrien	DR209 is now not a defect.
44996263Sobrien	* cp-tree.h (skip_type_access_control): Remove.
45096263Sobrien	* decl.c (grokdeclarator): Do type access control for friend
45196263Sobrien	declarations.
45296263Sobrien	* semantics.c (decl_type_access_control): Don't reset
45396263Sobrien	current_type_lookups.
45496263Sobrien	(save_type_access_control): Always save the lookups.
45596263Sobrien	(skip_type_access_control): Remove.
45696263Sobrien	(finish_class_definition): Don't change type_lookups.
45796263Sobrien
45896263Sobrien2002-03-11  Nathan Sidwell  <nathan@codesourcery.com>
45996263Sobrien
46096263Sobrien	Revert 2000-12-01  Nathan Sidwell  <nathan@codesourcery.com>,
46196263Sobrien	It is incorrect.
46296263Sobrien	* typeck.c (build_static_cast): Compare non-qualified types
46396263Sobrien	with pointer to member conversions.
46496263Sobrien
46596263Sobrien2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
46696263Sobrien 
46796263Sobrien	* cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
46896263Sobrien	conditional return void.
46996263Sobrien
47096263Sobrien2002-03-02  Nathan Sidwell  <nathan@codesourcery.com>
47196263Sobrien
47296263Sobrien	PR c++/775
47396263Sobrien	* decl.c (lookup_tag): Only reject enum/class mismatch, not
47496263Sobrien	class/union mismatch.
47596263Sobrien	* parse.y (check_class_key): New function.
47696263Sobrien	(structsp): Call it.
47796263Sobrien
47896263Sobrien2002-03-01  Michael Matz  <matz@suse.de>
47996263Sobrien
48096263Sobrien	* typeck.c (cp_pointer_int_sum): Complete inner type which is
48196263Sobrien	used later by size_in_bytes().
48296263Sobrien
48396263Sobrien2002-03-01  Phil Edwards  <pme@gcc.gnu.org>
48496263Sobrien
48596263Sobrien	* cp-tree.h (build_init):  Remove prototype.
48696263Sobrien
48796263Sobrien2002-03-01  Phil Edwards  <pme@gcc.gnu.org>
48896263Sobrien
48996263Sobrien	* cp-tree.h:  Require __GNUC__ to be #defined.
49096263Sobrien	(build_init):  Add missing prototype.
49196263Sobrien
49296263Sobrien2002-02-28  Jason Merrill  <jason@redhat.com>
49396263Sobrien
49496263Sobrien	* search.c (lookup_base_r): Don't clear is_non_public just because
49596263Sobrien	we found a friendly scope.
49696263Sobrien
49796263Sobrien	* decl.c (finish_function): Only warn about missing return
49896263Sobrien	statement with -Wreturn-type.
49996263Sobrien
50096263Sobrien2002-02-24 Craig Rodrigues  <rodrigc@gcc.gnu.org> 
50196263Sobrien
50296263Sobrien	PR c++/4093
50396263Sobrien	* cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
50496263Sobrien	to void.
50596263Sobrien
50696263Sobrien2002-02-22  Jakub Jelinek  <jakub@redhat.com>
50796263Sobrien
50896263Sobrien	PR other/5746
50996263Sobrien	* semantics.c (finish_switch_cond): Don't call get_unwidened
51096263Sobrien	if error_mark_node.
51196263Sobrien
51296263Sobrien2002-02-22  Nathan Sidwell  <nathan@codesourcery.com>
51396263Sobrien
51496263Sobrien	PR c++/2645, DR 295
51596263Sobrien	* cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
51696263Sobrien	tf_keep_type_decl.
51796263Sobrien	(make_typename_type): Use tsubst_flags_t.
51896263Sobrien	* decl.c (make_typename_type): Adjust. Return non-artificial
51996263Sobrien	TYPE_DECLs, if required.
52096263Sobrien	(grokdeclarator): Simplify CVR qualification handling. Allow bad
52196263Sobrien	qualifiers on typedef types.
52296263Sobrien	* decl2.c (handle_class_head): Adjust make_typename_type call.
52396263Sobrien	* parse.y (nested_name_specifier): Likewise.
52496263Sobrien	(typename_sub0): Likewise.
52596263Sobrien	(typename_sub1): Likewise.
52696263Sobrien	* pt.c (convert_template_argument): Adjust make_typename_type
52796263Sobrien	return value.
52896263Sobrien	(tsubst): Adjust cp_build_qualified_type_real calls.
52996263Sobrien	(check_cv_quals_for_unify): Cope with alowing bad qualifications
53096263Sobrien	on template type parms.
53196263Sobrien	(instantiate_decl): Recheck substitutions to give warnings on bad
53296263Sobrien	qualifications.
53396263Sobrien	* tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
53496263Sobrien
53596263Sobrien2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
53696263Sobrien
53796263Sobrien	* cp/decl.c (duplicate_decls): Merge always_inline attribute.
53896263Sobrien
53996263Sobrien	* cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
54096263Sobrien	unless DECL_ALWAYS_INLINE.
54196263Sobrien
54296263Sobrien2002-02-20  Jakub Jelinek  <jakub@redhat.com>
54396263Sobrien
54496263Sobrien	* typeck.c (cp_pointer_int_sum): Renamed from
54596263Sobrien	pointer_int_sum, call pointer_int_sum.
54696263Sobrien
54796263Sobrien2002-02-20  Jakub Jelinek  <jakub@redhat.com>
54896263Sobrien
54996263Sobrien	* decl.c (duplicate_decls): Return 0 if issued error about
55096263Sobrien	redeclaration.
55196263Sobrien
55296263Sobrien2002-02-19  Jason Merrill  <jason@redhat.com>
55396263Sobrien
55496263Sobrien	ABI change: Mangle `void (A::*)() const' as 
55596263Sobrien	M1AKFvvE, not MK1AFvvE.
55696263Sobrien	* mangle.c (write_function_type): Write cv-quals for member
55796263Sobrien	function type here.
55896263Sobrien	(write_pointer_to_member_type): Not here.
55996263Sobrien
56096263Sobrien2002-02-18  Jason Merrill  <jason@redhat.com>
56196263Sobrien
56296263Sobrien	* pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
56396263Sobrien	(do_decl_instantiation): Likewise.
56496263Sobrien
56596263Sobrien2002-02-17  Craig Rodrigues  <rodrigc@gcc.gnu.org>
56696263Sobrien
56796263Sobrien	PR c++/5685
56896263Sobrien	* decl.c (duplicate_decls): Make warning unconditional
56996263Sobrien	if duplicate default argument declarations are present.
57096263Sobrien
57196263Sobrien2002-02-17  Jakub Jelinek  <jakub@redhat.com>
57296263Sobrien
57396263Sobrien	* typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
57496263Sobrien	shortening.
57596263Sobrien
57696263Sobrien2002-02-15  Nathan Sidwell  <nathan@codesourcery.com>
57796263Sobrien
57896263Sobrien	* decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
57996263Sobrien	remove incorrect comment. Move #if 0'd code to common path. Use
58096263Sobrien	IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
58196263Sobrien
58296263Sobrien2002-02-13  Jason Merrill  <jason@redhat.com>
58396263Sobrien
58496263Sobrien	* decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
58596263Sobrien	(finish_function): Don't warn if current_function_returns_null.
58696263Sobrien
58796263Sobrien	* typeck2.c (digest_init): Do handle values of vector type.
58896263Sobrien
58996263Sobrien	* typeck2.c (digest_init, process_init_constructor): Treat vectors
59096263Sobrien	like arrays.
59196263Sobrien
59296263Sobrien2002-02-11  Jason Merrill  <jason@redhat.com>
59396263Sobrien
59496263Sobrien	* parse.y (reserved_declspecs): Don't handle attributes.
59596263Sobrien	(reserved_typespecquals): Handle them here.
59696263Sobrien	* Make-lang.in (parse.c): Adjust expected conflicts.
59796263Sobrien
59896263Sobrien2002-02-08  Jakub Jelinek  <jakub@redhat.com>
59996263Sobrien
60096263Sobrien	* parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
60196263Sobrien	instead of compstmt.
60296263Sobrien	(compstmt_or_stmtexpr): Renamed from compstmt.
60396263Sobrien	(compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
60496263Sobrien
60596263Sobrien2002-02-07  Nathan Sidwell  <nathan@codesourcery.com>
60696263Sobrien
60796263Sobrien	Rename instantiate_type_flags to tsubst_flags_t & expand use.
60896263Sobrien	* cp-tree.h (instantiate_type_flags): Rename to ...
60996263Sobrien	(tsubst_flags_t): ... here. Rename itf_complain to tf_error,
61096263Sobrien	add tf_warning flag.
61196263Sobrien	(instantiate_type): Adjust prototype.
61296263Sobrien	(tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
61396263Sobrien	do_type_instantiation, cp_build_qualified_type_real): Likewise.
61496263Sobrien	cp_build_qualified_type: Adjust.
61596263Sobrien	* class.c (instantiate_type): Adjust parameter. Rename itf_* to
61696263Sobrien	tf_*.
61796263Sobrien	* call.c (standard_conversion): Rename itf_* to tf_*.
61896263Sobrien	(reference_binding): Likewise.
61996263Sobrien	(convert_like_real): Likewise.
62096263Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
62196263Sobrien	(convert_to_reference): Likewise.
62296263Sobrien	* decl.c (lookup_namespace_name): Use tf_* flags.
62396263Sobrien	(make_typename_type): Likewise.
62496263Sobrien	(grokdeclarator): Likewise.
62596263Sobrien	* pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
62696263Sobrien	(coerce_template_template_parms, convert_template_argument,
62796263Sobrien	coerce_template_parms, maybe_get_template_decl_from_type_decl,
62896263Sobrien	lookup_template_class, tsubst_friend_function, tsubst_friend_class,
62996263Sobrien	instantiate_class_template, tsubst_template_arg_vector, 
63096263Sobrien	tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 
63196263Sobrien	tsubst_decl, tsubst_arg_types, tsubst_function_type,
63296263Sobrien	tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 
63396263Sobrien	instantiate_template, fn_type_unification,
63496263Sobrien	resolve_overloaded_unification, verify_class_unification, 
63596263Sobrien	unify, get_bindings_real, do_type_instantiation, 
63696263Sobrien	regenerate_decl_from_template, instantiate_decl, 
63796263Sobrien	tsubst_initializer_list, tsubst_enum,
63896263Sobrien	get_mostly_instantiated_function_type,
63996263Sobrien	invalid_nontype_parm_type_p): Likewise.
64096263Sobrien	* tree.c (cp_build_qualified_type_real): Likewise.
64196263Sobrien	* typeck.c (build_binary_op): Rename itf_* to tf_*.
64296263Sobrien	(build_ptrmemfunc): Likewise.
64396263Sobrien	(convert_for_assignment): Likewise.
64496263Sobrien
64596263Sobrien2002-02-07  Nathan Sidwell  <nathan@codesourcery.com>
64696263Sobrien
64796263Sobrien	PR c++/109
64896263Sobrien	* decl.c (grokdeclarator): Allow friend declarations from
64996263Sobrien	dependent types.
65096263Sobrien	* decl2.c (handle_class_head): Don't push into template parm contexts.
65196263Sobrien	* pt.c (push_template_decl_real): Template parm contexts are never
65296263Sobrien	being defined.
65396263Sobrien
65496263Sobrien2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
65596263Sobrien
65696263Sobrien	* class.c: Include target.h.
65796263Sobrien	(check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
65896263Sobrien	BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
65996263Sobrien	bit-field layout.
66096263Sobrien	* Make-lang.in: Adjust deps.
66196263Sobrien
66296263Sobrien2002-02-05  Jason Merrill  <jason@redhat.com>
66396263Sobrien
66496263Sobrien	* error.c (dump_type): Be more helpful about VECTOR_TYPE.
66596263Sobrien
66696263Sobrien2002-02-04  Jakub Jelinek  <jakub@redhat.com>
66796263Sobrien
66896263Sobrien	* semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
66996263Sobrien	(finish_switch_cond): Set SWITCH_TYPE.
67096263Sobrien
67196263Sobrien2002-02-04  Richard Henderson  <rth@redhat.com>
67296263Sobrien
67396263Sobrien	* method.c (use_thunk): Always initialize the block tree.  Reindent.
67496263Sobrien	* semantics.c (expand_body): Emit thunks after function, not before.
67596263Sobrien
67696263Sobrien2002-02-04  Jason Merrill  <jason@redhat.com>
67796263Sobrien
67896263Sobrien	* decl.c (start_function): Call cplus_decl_attributes immediately
67996263Sobrien	after grokdeclarator.
68096263Sobrien
68196263Sobrien	* decl.c (start_function): Combine DECL_RESULT handling code.
68296263Sobrien
68396263Sobrien2002-02-03  Jason Merrill  <jason@redhat.com>
68496263Sobrien
68596263Sobrien	* xref.c: Remove.
68696263Sobrien	* Make-lang.in (CXX_OBJS): Remove cp/xref.o
68796263Sobrien	(cp/xref.o): Remove dependencies.
68896263Sobrien	* class.c (finish_struct_1, check_methods): Don't call xref fns.
68996263Sobrien	(finish_struct_1): Likewise.
69096263Sobrien	* friend.c (make_friend_class): Likewise.
69196263Sobrien	* lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
69296263Sobrien	* spew.c (read_process_identifier): Likewise.
69396263Sobrien
69490075Sobrien2002-02-01  Jason Merrill  <jason@redhat.com>
69574473Sobrien
69696263Sobrien	PR c++/4872
69796263Sobrien	* decl.c (finish_function): Warn about a non-void function with 
69896263Sobrien	no return statement and no abnormal exit.
69996263Sobrien	* cp-tree.h (struct cp_language_function): Add returns_abnormally.
70096263Sobrien	(current_function_returns_abnormally): New macro.
70196263Sobrien	* call.c (build_call): Set it.
70296263Sobrien
70396263Sobrien	* typeck.c (build_component_ref): Always complain about offsetof
70496263Sobrien	constructs on non-PODs.  Only make it an error for members of
70596263Sobrien	virtual bases.
70696263Sobrien
70790075Sobrien	* error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
70890075Sobrien	(dump_function_decl): Always dump parms.
70974473Sobrien
71090075Sobrien	* decl2.c (finish_static_data_member_decl): Complain about a local
71190075Sobrien	class with a static data member.
71270635Sobrien
71390075Sobrien	PR c++/4286
71490075Sobrien	* search.c (lookup_field_1): Don't xref a static data member
71590075Sobrien	just because we looked it up.
71670635Sobrien
71790075Sobrien2002-01-31  Jason Merrill  <jason@redhat.com>
71870635Sobrien
71990075Sobrien	* Make-lang.in (parse.c): Handle .output file.
72060967Sobrien
72190075Sobrien	PR c++/3395
72290075Sobrien	* decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
72390075Sobrien	not TREE_TYPE.
72490075Sobrien	* semantics.c (finish_class_definition): Adjust.
72560967Sobrien
72690075Sobrien	Allow attributes in parms and casts.
72790075Sobrien	* parse.y (named_parm): Don't strip attrs.
72890075Sobrien	(declmods): Remove 'attributes' production.
72990075Sobrien	(nonempty_cv_qualifiers): Accept attributes.
73090075Sobrien	(ATTRIBUTE): Give precedence.
73190075Sobrien	* decl.c (groktypename): Handle attributes.
73290075Sobrien	(grokparms): Likewise.
73360967Sobrien
73490075Sobrien2002-01-29  Jakub Jelinek  <jakub@redhat.com>
73560967Sobrien
73690075Sobrien	* decl2.c (cxx_decode_option): Pass 0 as last argument to
73790075Sobrien	cpp_handle_option.
73890075Sobrien	* lang-specs.h: Use cpp_unique_options instead of cpp_options
73990075Sobrien	when used together with cc1_options.
74060967Sobrien
74190075Sobrien2002-01-29  Nathan Sidwell  <nathan@codesourcery.com>
74260967Sobrien
74390075Sobrien	PR c++/5132
74490075Sobrien	* typeck2.c (digest_init): Make sure non-array core type is
74590075Sobrien	instantiated.
74690075Sobrien	* decl2.c (reparse_absdcl_as_casts): Just store the type in the
74790075Sobrien	constructor, rather than build a new one.
74890075Sobrien	(build_expr_from_tree, CONSTRUCTOR case): Be careful with the
74990075Sobrien	PURPOSE of constructor elts.
75060967Sobrien
75190075Sobrien2002-01-23  Zack Weinberg  <zack@codesourcery.com>
75260967Sobrien
75390075Sobrien	* Make-lang.in (parse.c): Adjust expected number of
75490075Sobrien	shift-reduce conflicts.
75590075Sobrien	(decl.o): Depend on diagnostic.h.
75690075Sobrien	* decl.c: Include diagnostic.h.
75790075Sobrien	(grokdeclarator): Check for null pointer.
75890075Sobrien	(finish_function): Don't abort when
75990075Sobrien	current_binding_level->parm_flag != 1, if errors have
76090075Sobrien	occurred; throw away the statement tree and extra binding
76190075Sobrien	levels, and continue.
76290075Sobrien	* lex.c (note_list_got_semicolon): Check for null pointer.
76390075Sobrien	* method.c (hack_identifier): Just return error_mark_node if
76490075Sobrien	value is error_mark_node.
76590075Sobrien	* parse.y (primary: TYPEID(type_id)): No need to use
76690075Sobrien	TYPE_MAIN_VARIANT here.
76790075Sobrien	(handler_seq): Accept an empty list of catch clauses and
76890075Sobrien	generate a fake handler block to avoid later crashes.
76990075Sobrien	(ansi_raise_identifier): Accept the error token too.
77090075Sobrien	* semantics.c (begin_class_definition,
77190075Sobrien	finish_class_definition): Check for error_mark_node.
77260967Sobrien
77390075Sobrien2002-01-23  Zack Weinberg  <zack@codesourcery.com>
77460967Sobrien
77590075Sobrien	* typeck2.c (friendly_abort): Delete definition.
77690075Sobrien	* cp-tree.h (friendly_abort): Don't prototype.
77790075Sobrien	(my_friendly_assert): Use fancy_abort.
77857844Sobrien
77990075Sobrien2002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
78057844Sobrien
78190075Sobrien	* cp-tree.h (my_friendly_abort): Remove.
78256385Sobrien
78390075Sobrien2002-01-23  Jakub Jelinek  <jakub@redhat.com>
78456385Sobrien
78590075Sobrien	* spew.c (pending_inlines, pending_inlines_tail,
78690075Sobrien	processing_these_inlines): Make static.
78790075Sobrien	(mark_pending_inlines): Remove static.
78890075Sobrien	(begin_parsing_inclass_inline): If in function, save pi
78990075Sobrien	for GC to cp_function_chain->unparsed_inlines instead.
79090075Sobrien	(process_next_inline): Likewise.
79190075Sobrien	* cp-tree.h (struct cp_language_function): Add unparsed_inlines.
79290075Sobrien	(mark_pending_inlines): Add prototype.
79390075Sobrien	* decl.c (spew_debug): Remove unused extern.
79490075Sobrien	(mark_lang_function): Call mark_pending_inlines.
79552750Sobrien
79690075Sobrien2002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
79752750Sobrien
79890075Sobrien	* call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
79990075Sobrien	init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
80090075Sobrien	semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
80190075Sobrien	Change my_fancy_abort() to abort().
80252750Sobrien
80390075Sobrien2002-01-23  Jason Merrill  <jason@redhat.com>
80452750Sobrien
80590075Sobrien	PR c++/5453
80690075Sobrien	* class.c (fixed_type_or_null): Fix thinko.
80752750Sobrien
80890075Sobrien	PR c++/3331
80990075Sobrien	* init.c (resolve_offset_ref): Use build_indirect_ref.
81052750Sobrien
81190075Sobrien	* decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
81252750Sobrien
81390075Sobrien2002-01-22  Jason Merrill  <jason@redhat.com>
81452750Sobrien
81590075Sobrien	* parse.y (function_body): Suppress the block for the outermost
81690075Sobrien	curly braces.
81790075Sobrien	* decl.c (pushdecl): Don't try to skip it.
81890075Sobrien	(begin_function_body): Keep the block we create, not the next one.
81990075Sobrien	* init.c (emit_base_init): Don't mess with keep_next_level.
82048743Sobrien
82190075Sobrien	* class.c (build_base_path): Tweak formatting.
82248743Sobrien
82390075Sobrien2002-01-19  Nathan Sidwell  <nathan@codesourcery.com>
82452284Sobrien
82590075Sobrien	Fix regression introduced with patch for c++/775
82690075Sobrien	* parse.y (class_head_defn): Check for template specializations
82790075Sobrien	with a different class-key.
82852284Sobrien
82990075Sobrien2002-01-17  Jason Merrill  <jason@redhat.com>
83052284Sobrien
83190075Sobrien	* decl.c (begin_constructor_body, begin_destructor_body): New fns.
83290075Sobrien	(begin_function_body): Call them and keep_next_level.
83390075Sobrien	* init.c (emit_base_init): Call keep_next_level.
83490075Sobrien	* semantics.c (setup_vtbl_ptr): Lose.
83590075Sobrien	* cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
83690075Sobrien	(vtbls_set_up_p): Lose.
83790075Sobrien	* pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
83890075Sobrien	* method.c (do_build_copy_constructor): Likewise.
83990075Sobrien	(synthesize_method): Call finish_mem_initializers.
84090075Sobrien	* parse.y (nodecls): Likewise.
84152284Sobrien
84290075Sobrien	* error.c (dump_type_suffix): Print the exception specs before
84390075Sobrien	recursing.
84490075Sobrien	(dump_function_decl): Here, too.
84552284Sobrien
84690075Sobrien	* cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
84752284Sobrien
84890075Sobrien2002-01-10  Ira Ruben	<ira@apple.com>
84952284Sobrien
85090075Sobrien	PR c++/907
85190075Sobrien	* decl.c (start_method): Handle attrlist.
85252284Sobrien
85390075Sobrien2002-01-10  Jakub Jelinek  <jakub@redhat.com>
85452284Sobrien
85590075Sobrien	* decl2.c (max_tinst_depth): Increase default limit to 500.
85652284Sobrien
85790075Sobrien2002-01-10  Graham Stott  <grahams@redhat.com>
85852284Sobrien
85990075Sobrien	* spew.c (YYCHAR): Uppercase macro parameter and add
86090075Sobrien	parenthesis.
86190075Sobrien	(YYCODE): Likewise.
86290075Sobrien	(NAME): Uppercase macro parameter.
86352284Sobrien
86490075Sobrien2002-01-09  Graham Stott  <grahams@redhat.com>
86552284Sobrien
86690075Sobrien	* decl.h (grokdeclarator): Wrap long line.
86752284Sobrien
86890075Sobrien	* semantics.c (FINISH_COND): Uppercase macro paramaters and
86990075Sobrien	add parenthesis.
87052284Sobrien
87190075Sobrien2002-01-08  Graham Stott  <grahams@redhat.com>
87252284Sobrien
87390075Sobrien	* xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
87490075Sobrien	(PALLOC): Uppercase macro parameter and whitespace.
87590075Sobrien	(SALLOC): Uppercase macro parameter.
87690075Sobrien	(SFREE): Uppercase macros parameter, add parenthese and
87790075Sobrien	whitespace.
87890075Sobrien	(STREQL): Uppercase macro parameter and whitespace.
87990075Sobrien	(STRNEQ): Likewise.
88090075Sobrien	(STRLSS): Likewise.
88190075Sobrien	(STRLEQ): Likewise.
88290075Sobrien	(STRGTR): Likewise.
88390075Sobrien	(STRGEQ): Likewise.
88452284Sobrien
88590075Sobrien	* call.c (convert_like): Add parenthesis and wrap.
88690075Sobrien	(convert_like_with_context): Likewise.
88790075Sobrien	(ICS_RANK): Whitespace.
88890075Sobrien	(NEED_TEMPORARY_P): Remove parenthesis.
88952284Sobrien
89090075Sobrien	* class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
89190075Sobrien	whitespace.
89290075Sobrien	(VTT_MARKED_BINFO_P): Likewise.
89352284Sobrien
89490075Sobrien	* decl.c (BINDING_LEVEL): Add parenthesis.
89590075Sobrien	(DEF_OPERATOR): Likewise.
89652284Sobrien
89790075Sobrien	* mangle.c (MANGLE_TRACE): Add parenthesis.
89890075Sobrien	(MANGLE_TRACE_TREE): Likewise.
89990075Sobrien	(write_signed_number): Likewise.
90090075Sobrien	(write_unsigned_number): Likewise.
90152284Sobrien
90290075Sobrien	* pt.c (ccat): Uppercase macro parameter.
90390075Sobrien	(cat): Likewise
90452284Sobrien
90590075Sobrien	* search.c (SET_BINFO_ACCESS): Add parenthesis.
90652284Sobrien
90790075Sobrien2002-01-07  Jason Merrill  <jason@redhat.com>
90852284Sobrien
90990075Sobrien	* decl2.c (coerce_new_type): Downgrade error for size_t mismatch
91090075Sobrien	to pedwarn.
91152284Sobrien
91290075Sobrien	PR c++/3536
91390075Sobrien	* method.c (make_thunk): If !flag_weak, give the thunk the
91490075Sobrien	function's linkage.
91590075Sobrien	(use_thunk): Here, too.
91652284Sobrien
91790075Sobrien2002-01-07  Graham Stott  <grahams@redhat.com>
91852284Sobrien
91990075Sobrien	* error.c: Update copyright date.
92090075Sobrien	(print_scope_operator): Add parenthesis.
92190075Sobrien	(print_left_paren): Likewise.
92290075Sobrien	(print_right_paren): Likewise.
92390075Sobrien	(print_left_bracket): Likewise.
92490075Sobrien	(print_right_bracket): Likewise.
92590075Sobrien	(print_template_argument_list_start): Likewise.
92690075Sobrien	(print_template_argument_list_end): Likewise.
92790075Sobrien	(print_non_consecutive_character): Likewise.
92890075Sobrien	(print_tree_identifier): Likewise.
92990075Sobrien	(print_identifier): Likewise.
93090075Sobrien	(NEXT_CODE): Uppercase macro parameter.
93190075Sobrien	(ident_fndecl): Delete unused.
93290075Sobrien	(GLOBAL_THING): Likewise.
93352284Sobrien
93490075Sobrien2002-01-06  Graham Stott  <grahams@redhat.com>
93552284Sobrien
93690075Sobrien	* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
93790075Sobrien	(VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
93890075Sobrien	(VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
93990075Sobrien	(RECORD_OR_UNION_TYPE_CHECK): Likewise.
94090075Sobrien	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
94190075Sobrien	(C_IS_RESERVED_WORD): Uppercase macro parameter.
94290075Sobrien	(C_RID_YYCODE) Likewise.
94390075Sobrien	(ptrmem_cst): Use rtx.
94490075Sobrien	(LOCAL_BINDING_P): Add whitespace.
94590075Sobrien	(INHERITED_VALUE_BINDING_P): Likewise.
94690075Sobrien	(BINDING_SCOPE): Wrap long line.
94790075Sobrien	(BINDING_HAS_LEVEL_P): Remove parenthesis.
94890075Sobrien	(BINDING_VALUE): Wrap long line.
94990075Sobrien	(BINDING_TYPE): Whitespace.
95090075Sobrien	(IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
95190075Sobrien	(SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
95290075Sobrien	(IDENTIFIER_NAMESPACE_VALUE): Likewise.
95390075Sobrien	(SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
95490075Sobrien	(same_type_p): Uppercase macro parameters.
95590075Sobrien	(same_type_ignoring_top_level_qualifiers_p): Likewise.
95690075Sobrien	(OVL_FUNCTION): Wrap long line.
95790075Sobrien	(OVL_CHAIN): Whitespace.
95890075Sobrien	(OVL_CURRENT): Add parenthesis and whitespace.
95990075Sobrien	(OVL_NEXT): Whitespace.
96090075Sobrien	(OVL_USED): Likewise.
96190075Sobrien	(IDENTIFIER_TYPE_VALUE): Likewise.
96290075Sobrien	(REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
96390075Sobrien	(SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
96490075Sobrien	(LANG_ID_FIELD): Whitespace.
96590075Sobrien	(SET_LANG_ID(NODE,VALUE,NAME): Likewise.
96690075Sobrien	(IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
96790075Sobrien	(SET_IDENTIFIER_LABEL_VALUE): Whitespace.
96890075Sobrien	(IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
96990075Sobrien	(SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
97090075Sobrien	(IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
97190075Sobrien	(SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
97290075Sobrien	(IDENTIFIER_VIRTUAL_P): Likewise.
97390075Sobrien	(IDENTIFIER_OPNAME_P): Likewise.
97490075Sobrien	(IDENTIFIER_TYPENAME_P): Remove parenthesis.
97590075Sobrien	(C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
97690075Sobrien	(C_SET_EXP_ORIGINAL_CODE): Likewise.
97790075Sobrien	(TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
97890075Sobrien	(TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
97990075Sobrien	(IS_AGGR_TYPE): Uppercase macro parameter.
98090075Sobrien	(CLASS_TYPE_P): Likewise.
98190075Sobrien	(IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
98290075Sobrien	(IS_AGGR_TYPE_2): Whitespace.
98390075Sobrien	(TAGGED_TYPE_P): Uppercase macro parameter.
98490075Sobrien	(TYPE_BUILT_IN): Whitespace.
98590075Sobrien	(TYPE_FOR_JAVA): Likewise.
98690075Sobrien	(FUNCTION_ARG_CHAIN): Remove parenthesis.
98790075Sobrien	(FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
98890075Sobrien	(FUNCTION_FIRST_USER_PARAM): Likewise.
98990075Sobrien	(PROMOTES_TO_AGGR_TYPE): Whitespace.
99090075Sobrien	(DERIVED_FROM_P): Add parenthesis and wrap.
99190075Sobrien	(UNIQUELY_DERIVED_FROM_P): Likewise.
99290075Sobrien	(ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
99390075Sobrien	(PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
99490075Sobrien	(CLASSTYPE_USE_TEMPLATE): Whitespace.
99590075Sobrien	(CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
99690075Sobrien	(TYPE_GETS_DELETE): Add parenthesis.
99790075Sobrien	(TYPE_HAS_CONVERSION): Add parenthesis and wrap.
99890075Sobrien	(TYPE_HAS_ASSIGN_REF): Likewise,
99990075Sobrien	(TYPE_HAS_CONST_ASSIGN_REF): Likewise.
100090075Sobrien	(TYPE_HAS_INIT_REF): Likewise.
100190075Sobrien	(TYPE_HAS_CONST_INIT_REF): Likewise.
100290075Sobrien	(TYPE_BEING_DEFINED): Likewise.
100390075Sobrien	(TYPE_LANG_SPECIFIC): Likewise.
100490075Sobrien	(CLASSTYPE_RTTI): Likewise.
100590075Sobrien	(TYPE_OVERLOADS_CALL_EXPR): Likewise.
100690075Sobrien	(TYPE_OVERLOADS_ARRAY_REF): Likewise.
100790075Sobrien	(TYPE_OVERLOADS_ARROW): Likewise.
100890075Sobrien	(TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
100990075Sobrien	(TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
101090075Sobrien	(CLASSTYPE_METHOD_VEC): Likewise.
101190075Sobrien	(CLASSTYPE_MARKED_N): Likewise.
101290075Sobrien	(CLASSTYPE_MARKED): Likewise.
101390075Sobrien	(CLASSTYPE_MARKED2): Likewise.
101490075Sobrien	(CLASSTYPE_MARKED3): Likewise.
101590075Sobrien	(CLASSTYPE_MARKED4): Likewise.
101690075Sobrien	(CLASSTYPE_MARKED5): Likewise.
101790075Sobrien	(CLASSTYPE_MARKED6): Likewise.
101890075Sobrien	(SET_CLASSTYPE_MARKED): Whitespace.
101990075Sobrien	(CLEAR_CLASSTYPE_MARKED): Likewise.
102090075Sobrien	(SET_CLASSTYPE_MARKED2): Likewise.
102190075Sobrien	(CLEAR_CLASSTYPE_MARKED2): Likewise.
102290075Sobrien	(SET_CLASSTYPE_MARKED3): Likewise.
102390075Sobrien	(CLEAR_CLASSTYPE_MARKED3): Likewise.
102490075Sobrien	(SET_CLASSTYPE_MARKED4): Likewise.
102590075Sobrien	(CLEAR_CLASSTYPE_MARKED4): Likewise.
102690075Sobrien	(SET_CLASSTYPE_MARKED5): Likewise.
102790075Sobrien	(CLEAR_CLASSTYPE_MARKED5): Likewise.
102890075Sobrien	(SET_CLASSTYPE_MARKED6): Likewise.
102990075Sobrien	(CLEAR_CLASSTYPE_MARKED6): Likewise.
103090075Sobrien	(CLASSTYPE_TAGS): Likewise.
103190075Sobrien	(CLASSTYPE_VSIZE): Likewise.
103290075Sobrien	(CLASSTYPE_VBASECLASSES): Likewise.
103390075Sobrien	(CANONICAL_BINFO): Add parenthesis.
103490075Sobrien	(CLASSTYPE_SIZE(NODE): Likewise.
103590075Sobrien	(CLASSTYPE_SIZE_UNIT): Likewise.
103690075Sobrien	(CLASSTYPE_ALIGN(NODE): Likewise.
103790075Sobrien	(CLASSTYPE_USER_ALIGN): Likewise.
103890075Sobrien	(TYPE_JAVA_INTERFACE): Likewise.
103990075Sobrien	(CLASSTYPE_PURE_VIRTUALS): Likewise.
104090075Sobrien	(CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
104190075Sobrien	(TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
104290075Sobrien	(CLASSTYPE_HAS_MUTABLE): Likewise.
104390075Sobrien	(CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
104490075Sobrien	(CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
104590075Sobrien	(CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
104690075Sobrien	(CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
104790075Sobrien	(CLASSTYPE_INTERFACE_ONLY): Likewise.
104890075Sobrien	(CLASSTYPE_INTERFACE_KNOWN): Likewise.
104990075Sobrien	(CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
105090075Sobrien	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
105190075Sobrien	(SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
105290075Sobrien	(SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
105390075Sobrien	(CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
105490075Sobrien	(BINFO_UNSHARED_MARKED): Whitespace.
105590075Sobrien	(BINFO_MARKED): Whitespace and wrap.
105690075Sobrien	(SET_BINFO_MARKED): Likewise.
105790075Sobrien	(CLEAR_BINFO_MARKED): Likewise.
105890075Sobrien	(BINFO_VTABLE_PATH_MARKED): Likewise.
105990075Sobrien	(SET_BINFO_VTABLE_PATH_MARKED): Likewise.
106090075Sobrien	(CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
106190075Sobrien	(BINFO_SUBVTT_INDEX): Remove parenthesis.
106290075Sobrien	(BINFO_VPTR_INDEX): Likewise.
106390075Sobrien	(BINFO_PRIMARY_BASE_OF): Likewise,
106490075Sobrien	(CLASSTYPE_VFIELDS): Whitespace.
106590075Sobrien	(VF_DERIVED_VALUE): Wrap long line.
106690075Sobrien	(NAMESPACE_LEVEL): Whitespace.
106790075Sobrien	(CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
106890075Sobrien	(DEFARG_POINTER): Whitespace.
106990075Sobrien	(DECL_NEEDED_P): Remove parenthesis.
107090075Sobrien	(DECL_LANGUAGE): Whitespace.
107190075Sobrien	(SET_DECL_LANGUAGE): Add parenthesis.
107290075Sobrien	(DECL_CONSTRUCTOR_P): Whitespace and wrap.
107390075Sobrien	(DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
107490075Sobrien	(DECL_IN_AGGR_P): Whitespace.
107590075Sobrien	(DECL_FRIEND_P): Likewise.
107690075Sobrien	(DECL_BEFRIENDING_CLASSES): Likewise.
107790075Sobrien	(DECL_STATIC_FUNCTION_P): Whitespace and wrap.
107890075Sobrien	(DECL_NONCONVERTING_P): Whitespace.
107990075Sobrien	(DECL_PURE_VIRTUAL_P): Likewise.
108090075Sobrien	(DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
108190075Sobrien	(DECL_PENDING_INLINE_INFO): Whitespace.
108290075Sobrien	(DECL_SORTED_FIELDS): Likewise.
108390075Sobrien	(DECL_DEFERRED_FN): Likewise.
108490075Sobrien	(DECL_TEMPLATE_INFO): Likewise.
108590075Sobrien	(CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
108690075Sobrien	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
108790075Sobrien	(SET_TYPE_TEMPLATE_INFO): Add parenthesis.
108890075Sobrien	(TMPL_ARGS_LEVEL): Likewise.
108990075Sobrien	(SET_TMPL_ARGS_LEVEL): Likewise.
109090075Sobrien	(INNERMOST_TEMPLATE_PARMS): Whitespace.
109190075Sobrien	(C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
109290075Sobrien	(INTEGRAL_CODE_P(CODE): Add parenthesis.
109390075Sobrien	(CP_INTEGRAL_TYPE_P): Remove parenthesis.
109490075Sobrien	(TYPE_HAS_CONSTRUCTOR): Whitespace.
109590075Sobrien	(TREE_HAS_CONSTRUCTOR): Likewise.
109690075Sobrien	(TYPE_HAS_DESTRUCTOR): Likewise.
109790075Sobrien	(TYPE_HAS_REAL_ASSIGN_REF): Likewise.
109890075Sobrien	(TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
109990075Sobrien	(TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
110090075Sobrien	(TYPE_HAS_COMPLEX_INIT_REF): Likewise.
110190075Sobrien	(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
110290075Sobrien	(TYPE_PTRMEMFUNC_P): Likewise.
110390075Sobrien	(TYPE_PTRMEMFUNC_FLAG): Likewise.
110490075Sobrien	(TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
110590075Sobrien	(TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
110690075Sobrien	(TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
110790075Sobrien	(TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
110890075Sobrien	(DECL_ACCESS): Whitespace.
110990075Sobrien	(DECL_GLOBAL_CTOR_P): Remove parenthesis.
111090075Sobrien	(DECL_GLOBAL_DTOR_P): Likewise.
111190075Sobrien	(GLOBAL_INIT_PRIORITY): Likewise.
111290075Sobrien	(DECL_TEMPLATE_PARMS): Likewise.
111390075Sobrien	(DECL_TEMPLATE_RESULT): Likewise.
111490075Sobrien	(DECL_TEMPLATE_INSTANTIATIONS): Likewise.
111590075Sobrien	(DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
111690075Sobrien	(DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
111790075Sobrien	(SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
111890075Sobrien	(PRIMARY_TEMPLATE_P): Add parenthesis.
111990075Sobrien	(DECL_USE_TEMPLATE): Whitespace.
112090075Sobrien	(CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
112190075Sobrien	(SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
112290075Sobrien	(CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
112390075Sobrien	(SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
112490075Sobrien	(CALL_DECLARATOR_PARMS): Remove parenthesis.
112590075Sobrien	(CALL_DECLARATOR_QUALS): Likewise.
112690075Sobrien	(CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
112790075Sobrien	(TEMP_NAME_P): Wrap.
112890075Sobrien	(VFIELD_NAME_P): Likewise.
112990075Sobrien	(B_SET): Uppercase macro parameters and add parenthesis.
113090075Sobrien	(B_CLR): Likewise.
113190075Sobrien	(B_TST): Likewise.
113290075Sobrien	(LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
113390075Sobrien	(LOOKUP_TYPES_ONLY): Uppercase macro parameters.
113490075Sobrien	(LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
113590075Sobrien	(same_or_base_type_p): Likewise.
113690075Sobrien	(cp_deprecated): Likewise.
113752284Sobrien
113890075Sobrien2002-01-05  Richard Henderson  <rth@redhat.com>
113952284Sobrien
114090075Sobrien	* semantics.c (expand_body): Revert last change.
114152284Sobrien
114290075Sobrien2002-01-04  Jason Merrill  <jason@redhat.com>
114352284Sobrien
114490075Sobrien	PR c++/4122
114590075Sobrien	* class.c (update_vtable_entry_for_fn): Set delta to zero for a
114690075Sobrien	lost primary.
114752284Sobrien
114890075Sobrien	* class.c (build_vtbl_initializer): Check for a lost primary
114990075Sobrien	before calculating the vtable entry to throw away.
115052284Sobrien
115190075Sobrien2002-01-02  Jason Merrill  <jason@redhat.com>
115252284Sobrien
115390075Sobrien	* semantics.c (expand_body): Call outlining_inline_function when
115490075Sobrien	emitting an inline function out of line.
115552284Sobrien
115690075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
115752284Sobrien
115890075Sobrien	PR c++/5116, c++/764 reversion
115990075Sobrien	* call.c (build_new_op): Revert the instantiations. They are
116090075Sobrien	incorrect.
116152284Sobrien
116290075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
116352284Sobrien
116490075Sobrien	PR c++/5089
116590075Sobrien	* decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
116652284Sobrien
116790075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
116852284Sobrien
116990075Sobrien	PR c++/3716
117090075Sobrien	* pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
117190075Sobrien	(tsubst, case POINTER_TYPE): Handle pmfs here.
117290075Sobrien	(tsubst, case OFFSET_TYPE): Check it is not an offset to
117390075Sobrien	reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
117452284Sobrien
117590075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
117652284Sobrien
117790075Sobrien	PR c++/35
117890075Sobrien	* cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
117990075Sobrien	(DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
118090075Sobrien	* pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
118190075Sobrien	PARM_DECL.
118290075Sobrien	(tsubst_template_parms): Break up loop statements.
118390075Sobrien	(tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
118490075Sobrien	parm PARM_DECLs don't get promoted.
118552284Sobrien
118690075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
118752284Sobrien
118890075Sobrien	PR c++/5123
118990075Sobrien	* typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
119090075Sobrien	(build_x_function_call): Cope with a COMPONENT_REF containing a
119190075Sobrien	TEMPLATE_ID_EXPR.
119252284Sobrien
119390075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
119452284Sobrien
119590075Sobrien	PR c++/5213
119690075Sobrien	* pt.c (convert_template_argument): Be more careful determining
119790075Sobrien	when RECORD_TYPE templates are or are not templates.
119852284Sobrien
119990075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
120052284Sobrien
120190075Sobrien	PR c++/775
120290075Sobrien	* cp-tree.h (handle_class_head): Adjust prototype.
120390075Sobrien	* decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
120490075Sobrien	parameters. Use for all class heads.
120590075Sobrien	* parse.y (named_class_head_sans_basetype, named_class_head,
120690075Sobrien	named_complex_class_head_sans_basetype,
120790075Sobrien	named_class_head_sans_basetype_defn,
120890075Sobrien	unnamed_class_head): Remove.
120990075Sobrien	(class_head, class_head_apparent_template): Recognize class heads
121090075Sobrien	(class_head_decl, class_head_defn): New reductions. Process class
121190075Sobrien	heads.
121290075Sobrien	(structsp): Adjust class definition and class declaration
121390075Sobrien	reductions.
121490075Sobrien	(maybe_base_class_list): Give diagnostic on empty list.
121552284Sobrien
121690075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
121752284Sobrien
121890075Sobrien	PR c++/4379
121990075Sobrien	* typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
122090075Sobrien	single non-static member.
122190075Sobrien	(unary_complex_lvalue): If it cannot be a pointer to member, don't
122290075Sobrien	make it so. Check it is not pointer to reference.
122352284Sobrien
122490075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
122552284Sobrien
122690075Sobrien	PR c++/5132
122790075Sobrien	* decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
122890075Sobrien	are processing a template decl.
122952284Sobrien
123090075Sobrien2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
123152284Sobrien
123290075Sobrien	PR c++/5116, c++/764
123390075Sobrien	* call.c (build_new_op): Make sure template class operands are
123490075Sobrien	instantiated. Simplify arglist construction.
123552284Sobrien
123690075Sobrien2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
123752284Sobrien
123890075Sobrien	* call.c (build_user_type_conversion_1): Use my_friendly_assert
123990075Sobrien	rather than if ... abort.
124090075Sobrien	* cvt.c (convert_to_reference): Likewise.
124190075Sobrien	* semantics.c (setup_vtbl_ptr): Likewise.
124290075Sobrien	* pt.c (lookup_template_class): Comment typo.
124352284Sobrien
124490075Sobrien2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
124552284Sobrien
124690075Sobrien	PR c++/5125
124790075Sobrien	* pt.c (push_template_decl_real): Make sure DECL has
124890075Sobrien	DECL_LANG_SPECIFIC.
124952284Sobrien
125090075Sobrien2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
125152284Sobrien
125290075Sobrien	PR c++/335
125390075Sobrien	* init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
125490075Sobrien	for non-reference fields.
125590075Sobrien	* typeck.c (require_complete_type): Use resolve_offset_ref).
125652284Sobrien
125790075Sobrien2001-12-26  Nathan Sidwell  <nathan@codesourcery.com>
125852284Sobrien
125990075Sobrien	PR c++/196
126090075Sobrien	* parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
126152284Sobrien
126290075Sobrien2001-12-24  Nathan Sidwell  <nathan@codesourcery.com>
126352284Sobrien
126490075Sobrien	PR c++/160
126590075Sobrien	* typeck.c (build_modify_expr): Remove old unreachable code & tidy
126690075Sobrien	up. Don't stabilize_references when initializing a reference.
126752284Sobrien
126890075Sobrien2001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
126952284Sobrien
127090075Sobrien	* decl2.c (lang_f_options): Const-ify.
127152284Sobrien
127290075Sobrien2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
127352284Sobrien
127490075Sobrien	* config-lang.in (diff_excludes): Remove.
127552284Sobrien
127690075Sobrien2001-12-19  Nathan Sidwell  <nathan@codesourcery.com>
127752284Sobrien
127890075Sobrien	PR c++/90
127990075Sobrien	* typeck.c (build_function_call_real): Use original function
128090075Sobrien	expression for errors.
128152284Sobrien
128290075Sobrien2001-12-18  Jason Merrill  <jason@redhat.com>
128352284Sobrien
128490075Sobrien	PR c++/3242
128590075Sobrien	* class.c (add_method): Do compare 'this' quals when trying to match a
128690075Sobrien	used function.  Don't defer to another used function.
128752284Sobrien
128890075Sobrien2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
128952284Sobrien
129090075Sobrien	* pt.c (instantiate_clone): Remove, fold into ...
129190075Sobrien	(instantiate_template): ... here. Simplify by removing mutual
129290075Sobrien	recursion.
129390075Sobrien	* typeck2.c (build_m_component_ref): Don't cv qualify the function
129490075Sobrien	pointed to by a pointer to function.
129590075Sobrien	* class.c (delete_duplicate_fields_1): Typo.
129652284Sobrien
129790075Sobrien2001-12-18  Jason Merrill  <jason@redhat.com>
129852284Sobrien
129990075Sobrien	C++ ABI change: destroy value arguments in caller.
130090075Sobrien	* semantics.c (genrtl_start_function, genrtl_finish_function): Don't
130190075Sobrien	create an extra binding level for the parameters.
130290075Sobrien	* decl.c (store_parm_decls): Don't do parameter cleanups.
130352284Sobrien
130490075Sobrien2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
130552284Sobrien
130690075Sobrien	* call.c (build_new_method_call): Use '%#V'.
130790075Sobrien	* error.c (cv_to_string): Use V parameter to determine padding.
130852284Sobrien
130990075Sobrien2001-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
131052284Sobrien
131190075Sobrien	* call.c, decl2.c, init.c: Use "built-in" and "bit-field"
131290075Sobrien	spellings in messages.
131352284Sobrien
131490075Sobrien2001-12-17  Zack Weinberg  <zack@codesourcery.com>
131552284Sobrien
131690075Sobrien	* cp-tree.h: Delete #defines for cp_error, cp_warning,
131790075Sobrien	cp_pedwarn, and cp_compiler_error.
131890075Sobrien	* call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
131990075Sobrien	except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
132090075Sobrien	rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
132190075Sobrien	typeck2.c: Change calls to the above macros to use their
132290075Sobrien	language-independent equivalents: error, warning, pedwarn, and
132390075Sobrien	internal_error respectively.
132452284Sobrien
132590075Sobrien2001-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
132652284Sobrien
132790075Sobrien	* decl2.c (finish_file): Remove back_end_hook.
132852284Sobrien
132990075Sobrien2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
133052284Sobrien
133190075Sobrien	* ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
133290075Sobrien	cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
133390075Sobrien	pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
133452284Sobrien
133590075Sobrien2001-12-15  Joseph S. Myers  <jsm28@cam.ac.uk>
133652284Sobrien
133790075Sobrien	* lang-options.h: Use American spelling in messages.
133852284Sobrien
133990075Sobrien2001-12-13  Jason Merrill  <jason@redhat.com>
134052284Sobrien
134190075Sobrien	* Make-lang.in (parse.h): Separate rule, just depend on parse.c.
134252284Sobrien
134390075Sobrien	Use cleanups to run base and member destructors.
134490075Sobrien	* init.c (push_base_cleanups): New function, split out from...
134590075Sobrien	(build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
134690075Sobrien	* decl.c (finish_destructor_body): Move vbase destruction code to
134790075Sobrien	push_base_cleanups.
134890075Sobrien	(begin_function_body, finish_function_body): New fns.
134990075Sobrien	(finish_function): Move [cd]tor handling and call_poplevel to
135090075Sobrien	finish_function_body.
135190075Sobrien	(pushdecl): Skip the new level.
135290075Sobrien	* semantics.c (genrtl_try_block): Don't call end_protect_partials.
135390075Sobrien	(setup_vtbl_ptr): Call push_base_cleanups.
135490075Sobrien	* method.c (synthesize_method): Call {begin,end}_function_body.
135590075Sobrien	* pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
135690075Sobrien	* cp-tree.h: Declare new fns.
135790075Sobrien	* parse.y (function_body, .begin_function_body): New nonterminals.
135890075Sobrien	(fndef, pending_inline, function_try_block): Use function_body.
135990075Sobrien	(ctor_initializer_opt, function_try_block): No longer has a value.
136090075Sobrien	(base_init): Remove .set_base_init token.
136190075Sobrien	(.set_base_init, compstmt_or_error): Remove.
136290075Sobrien	* Make-lang.in (parse.c): Expect two fewer s/r conflicts.
136352284Sobrien
136490075Sobrien	* optimize.c (maybe_clone_body): Fix parameter updating.
136552284Sobrien
136690075Sobrien2001-12-12  Jason Merrill  <jason@redhat.com>
136752284Sobrien
136890075Sobrien	* decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
136990075Sobrien	* semantics.c (genrtl_start_function): Don't pass
137090075Sobrien	parms_have_cleanups or push an extra binding level.
137190075Sobrien	(genrtl_finish_function): Lose cleanup_label cruft.
137252284Sobrien
137390075Sobrien	* cp-tree.h (struct cp_language_function): Remove x_ctor_label.
137490075Sobrien	(ctor_label): Remove.
137590075Sobrien	* semantics.c (finish_return_stmt): Lose ctor_label support.
137690075Sobrien	* decl.c (finish_constructor_body, mark_lang_function): Likewise.
137790075Sobrien	* typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
137890075Sobrien	dtor_label.
137952284Sobrien
138090075Sobrien	* call.c (build_new_method_call): Let resolves_to_fixed_type_p
138190075Sobrien	check for [cd]tors.
138290075Sobrien	* class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
138352284Sobrien
138490075Sobrien	* decl.c (finish_function): Check VMS_TARGET, not VMS.
138552284Sobrien
138690075Sobrien	* decl.c (start_cleanup_fn): Remove redundant pushlevel.
138790075Sobrien	(end_cleanup_fn): And poplevel.
138852284Sobrien
138990075Sobrien	* semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
139090075Sobrien	if we're in a template.
139152284Sobrien
139290075Sobrien2001-12-12  Jakub Jelinek  <jakub@redhat.com>
139352284Sobrien
139490075Sobrien	* cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
139590075Sobrien	ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
139690075Sobrien	THIS_NAME_P): Delete.
139790075Sobrien	* spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
139890075Sobrien	THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
139990075Sobrien	with internal naming scheme.
140090075Sobrien	* error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
140152284Sobrien
140290075Sobrien2001-12-12  Nathan Sidwell  <nathan@codesourcery.com>
140352284Sobrien
140490075Sobrien	* decl.c (grokdeclarator): Deprecated implicit typename use.
140552284Sobrien
140690075Sobrien2001-12-11  Nathan Sidwell  <nathan@codesourcery.com>
140752284Sobrien
140890075Sobrien	PR g++/51
140990075Sobrien	* parse.y (frob_specs): Indicate it is a language linkage which
141090075Sobrien	contained the extern.
141190075Sobrien	* decl.c (grokdeclarator): Allow extern language linkage with
141290075Sobrien	other specifiers.
141352284Sobrien
141490075Sobrien2001-12-10  Nathan Sidwell  <nathan@codesourcery.com>
141552284Sobrien
141690075Sobrien	PR g++/72
141790075Sobrien	* decl.c (add_binding): Don't reject duplicate typedefs involving
141890075Sobrien	template parameters.
141952284Sobrien
142090075Sobrien2001-12-10  Neil Booth  <neil@daikokuya.demon.co.uk>
142152284Sobrien
142290075Sobrien	* parse.y, semantics.c: Similarly.
142352284Sobrien
142490075Sobrien2001-12-09  Nathan Sidwell  <nathan@codesourcery.com>
142552284Sobrien
142690075Sobrien	PR g++/87
142790075Sobrien	* cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
142890075Sobrien	(copy_args_p): Rename to ...
142990075Sobrien	(copy_fn_p): ... here.
143090075Sobrien	(grok_special_member_properties): New function.
143190075Sobrien	(grok_op_properties): Lose VIRTUALP parameter.
143290075Sobrien	(copy_assignment_arg_p): Remove.
143390075Sobrien	* call.c (build_over_call): Use copy_fn_p.
143490075Sobrien	* decl.c (grokfndecl): Reformat. Adjust call to
143590075Sobrien	grok_op_properties.
143690075Sobrien	(copy_args_p): Rename to ...
143790075Sobrien	(copy_fn_p): ... here. Reject template functions. Check for pass
143890075Sobrien	by value.
143990075Sobrien	(grok_special_member_properties): Remember special functions.
144090075Sobrien	(grok_ctor_properties): Don't remember them here, just check.
144190075Sobrien	(grok_op_properties): Likewise.
144290075Sobrien	(start_method): Call grok_special_member_properties.
144390075Sobrien	* decl2.c (grokfield): Likewise.
144490075Sobrien	(copy_assignment_arg_p): Remove.
144590075Sobrien	(grok_function_init): Don't remember abstract assignment here.
144690075Sobrien	* pt.c (instantiate_class_template): Call
144790075Sobrien	grok_special_member_properties.
144890075Sobrien	(tsubst_decl): Adjust grok_op_properties call.
144952284Sobrien
145090075Sobrien2001-12-08  Aldy Hernandez  <aldyh@redhat.com>
145152284Sobrien
145290075Sobrien	* lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
145390075Sobrien	RID_TYPES_COMPATIBLE_P.
145452284Sobrien
145590075Sobrien2001-12-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
145652284Sobrien
145790075Sobrien	* semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
145890075Sobrien	call to build_aggr_init.
145990075Sobrien	* cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
146052284Sobrien
146190075Sobrien2001-12-08  Neil Booth  <neil@daikokuya.demon.co.uk>
146252284Sobrien
146390075Sobrien	* parse.y: Replace uses of the string non-terminal with STRING.
146490075Sobrien	Don't perform string concatentaion here.
146590075Sobrien	(string): Remove non-terminal.
146690075Sobrien	* semantics.c (finish_asm_stmt): Don't concatenate strings here.
146752284Sobrien
146890075Sobrien2001-12-05  Jason Merrill  <jason@redhat.com>
146952284Sobrien
147090075Sobrien	* cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
147190075Sobrien	(LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
147290075Sobrien	* tree.c (cp_start_inlining, cp_end_inlining): New fns.
147390075Sobrien	* pt.c (push_tinst_level): No longer static.
147490075Sobrien	* cp-tree.h: Declare them.
147552284Sobrien
147690075Sobrien	* init.c (resolve_offset_ref): Don't check access for the base
147790075Sobrien	conversion to access a FIELD_DECL.
147852284Sobrien
147990075Sobrien	* cp-tree.h (TYPE_REFFN_P): New macro.
148090075Sobrien	* decl.c (bad_specifiers): Check it, too.
148152284Sobrien
148290075Sobrien	* rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
148390075Sobrien	on the __*_type_info type if we haven't seen a definition.
148452284Sobrien
148590075Sobrien2001-12-05  Neil Booth  <neil@daikokuya.demon.co.uk>
148652284Sobrien
148790075Sobrien	* decl.c: Include c-common.h.
148890075Sobrien	(shadow_warning): Move to c-common.c.
148952284Sobrien
149090075SobrienWed Dec  5 17:00:49 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
149152284Sobrien
149290075Sobrien	* decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
149352284Sobrien
149490075Sobrien2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
149552284Sobrien
149690075Sobrien	* pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
149752284Sobrien
149890075Sobrien2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
149952284Sobrien
150090075Sobrien	PR g++/164
150190075Sobrien	* init.c (sort_base_init): Allow binfos to be directly specified.
150290075Sobrien	* method.c (do_build_copy_constructor): Explicitly convert to the
150390075Sobrien	base instance.
150490075Sobrien	(do_build_assign_ref): Likewise.
150552284Sobrien
150690075Sobrien2001-12-03  Hans-Peter Nilsson  <hp@bitrange.com>
150752284Sobrien
150890075Sobrien	* decl.c (xref_basetypes): Don't use C99 construct in tag_code
150990075Sobrien	declaration and initialization.
151052284Sobrien
151190075Sobrien2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
151252284Sobrien
151390075Sobrien	* typeck2.c: Remove leading capital from diagnostic messages, as
151490075Sobrien	per GNU coding standards.
151552284Sobrien
151690075Sobrien2001-12-03  Mumit Khan  <khan@nanotech.wisc.edu>
151752284Sobrien
151890075Sobrien	PR c++/3394
151990075Sobrien	* decl.c (xref_basetypes): Handle attributes between
152090075Sobrien	'class' and name.
152152284Sobrien
152290075Sobrien2001-12-03  Nathan Sidwell  <nathan@codesourcery.com>
152352284Sobrien
152490075Sobrien	PR g++/3381
152590075Sobrien	* parse.y (named_complex_class_head_sans_basetype): Add new
152690075Sobrien	reduction.
152790075Sobrien	* Make-lang.in (parse.c): Adjust expected conflict count.
152852284Sobrien
152990075Sobrien2001-12-03  Jason Merrill  <jason@redhat.com>
153052284Sobrien
153190075Sobrien	* class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
153290075Sobrien	immediate binfos for our virtual bases.
153352284Sobrien
153490075Sobrien2001-12-02  Neil Booth  <neil@daikokuya.demon.co.uk>
153552284Sobrien
153690075Sobrien	* call.c (build_java_interface_fn_ref): Similarly.
153790075Sobrien	* except.c (is_admissible_throw_operand): Similarly.
153890075Sobrien	* init.c (build_java_class_ref): Similarly.
153990075Sobrien	* xref.c (open_xref_file): Similarly.
154052284Sobrien
154190075Sobrien2001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
154252284Sobrien
154390075Sobrien	* class.c (finish_struct): Remove trailing periods from messages.
154490075Sobrien	* decl.c (check_tag_decl): Similarly.
154590075Sobrien	* lex.c (cxx_set_yydebug): Similarly.
154690075Sobrien	* typeck2.c (friendly_abort): Similarly.
154752284Sobrien
154890075Sobrien2001-11-29  Mark Mitchell  <mark@codesourcery.com>
154952284Sobrien
155090075Sobrien	PR c++/3048
155190075Sobrien	* cp-tree.h (ovl_member): Remove.
155290075Sobrien	* decl2.c (merge_functions): Handle extern "C" functions
155390075Sobrien	specially.
155490075Sobrien	* tree.c (ovl_member): Remove.
155552284Sobrien
155690075Sobrien2001-11-29  Mark Mitchell  <mark@codesourcery.com>
155752284Sobrien
155890075Sobrien	PR c++/4842
155990075Sobrien	* class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
156090075Sobrien	FUNCTION_DECL, as input.
156190075Sobrien	(mark_overriders): Remove.
156290075Sobrien	(warn_hidden): Rework for the new ABI.
156352284Sobrien
156490075Sobrien2001-11-29  Mark Mitchell  <mark@codesourcery.com>
156552284Sobrien
156690075Sobrien	PR c++/3471
156790075Sobrien	* call.c (convert_like_real): Do not build additional temporaries
156890075Sobrien	for rvalues of class type.
156952284Sobrien
157090075Sobrien2001-11-28  Nathan Sidwell  <nathan@codesourcery.com>
157152284Sobrien
157290075Sobrien	* cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
157390075Sobrien	(ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
157490075Sobrien	(PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
157590075Sobrien	(DERIVED_FROM_P): Likewise.
157690075Sobrien	(enum base_access): Renumber, add ba_quiet bit mask.
157790075Sobrien	(get_binfo): Remove.
157890075Sobrien	(get_base_distance): Remove.
157990075Sobrien	(binfo_value): Remove.
158090075Sobrien	(ACCESSIBLY_DERIVED_FROM_P): Remove.
158190075Sobrien	* call.c (standard_conversion): Use lookup_base.
158290075Sobrien	* class.c (strictly_overrides): Likewise.
158390075Sobrien	(layout_virtual_bases): Likewise.
158490075Sobrien	(warn_about_ambiguous_direct_bases): Likewise.
158590075Sobrien	(is_base_of_enclosing_class): Likewise.
158690075Sobrien	(add_vcall_offset_vtbl_entries_1): Likewise.
158790075Sobrien	* cvt.c (build_up_reference): Adjust comment.
158890075Sobrien	* init.c (build_member_call): Reformat.
158990075Sobrien	* search.c (get_binfo): Remove.
159090075Sobrien	(get_base_distance_recursive): Remove.
159190075Sobrien	(get_base_distance): Remove.
159290075Sobrien	(lookup_base_r): Tweak.
159390075Sobrien	(lookup_base): Add ba_quiet control. Complete the types here.
159490075Sobrien	(covariant_return_p): Use lookup_base.
159590075Sobrien	* tree.c (binfo_value): Remove.
159690075Sobrien	(maybe_dummy_object): Use lookup_base.
159790075Sobrien	* typeck.c (build_static_cast): Use lookup_base.
159852284Sobrien	(get_delta_difference): Likewise.
159990075Sobrien	* typeck2.c (binfo_or_else): Use lookup_base.
160090075Sobrien	(build_scoped_ref): Add back error_mark_check.
160190075Sobrien	(build_m_component_ref): Use lookup_base.
160252284Sobrien
160390075Sobrien2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
160452284Sobrien
160590075Sobrien	* Make-lang.in (c++.generated-manpages): New dummy target.
160652284Sobrien
160790075SobrienTue Nov 27 09:03:47 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
160852284Sobrien
160990075Sobrien	* Make-lang.in (cp-lang.o): Depends on c-common.h.
161090075Sobrien	* cp-lang.c (c-common.h): Include.
161190075Sobrien	(LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
161290075Sobrien	* decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
161390075Sobrien	* expr.c (init_cplus_expand): Don't set lang_expand_constant.
161452284Sobrien
161590075Sobrien2001-11-26  Neil Booth  <neil@daikokuya.demon.co.uk>
161652284Sobrien
161790075Sobrien	* decl2.c (c_language): Move to c-common.c.
161890075Sobrien	* lex.c (cxx_post_options, cxx_init_options): Use c-common.c
161990075Sobrien	functions.
162090075Sobrien	(cxx_init): Update.
162152284Sobrien
162290075Sobrien2001-11-26  Jason Merrill  <jason@redhat.com>
162352284Sobrien
162490075Sobrien	* call.c (joust): Remove COND_EXPR hack.
162552284Sobrien
162690075Sobrien2001-11-25  Aldy Hernandez  <aldyh@redhat.com>
162752284Sobrien
162890075Sobrien	* search.c (lookup_base_r): Declare bk in variable declaration
162990075Sobrien	space.
163052284Sobrien
163190075Sobrien2001-11-25  Nathan Sidwell  <nathan@codesourcery.com>
163252284Sobrien
163390075Sobrien	PR g++/3145
163490075Sobrien	* class.c (build_vbase_pointer): Remove.
163590075Sobrien	(build_vbase_path): Remove.
163690075Sobrien	(build_base_path): New function.
163790075Sobrien	* cp-tree.h (base_access, base_kind): New enumerations.
163890075Sobrien	(build_base_path): Declare.
163990075Sobrien	(convert_pointer_to_real): Remove.
164090075Sobrien	(convert_pointer_to): Remove.
164190075Sobrien	(lookup_base): Declare.
164290075Sobrien	(convert_pointer_to_vbase): Remove.
164390075Sobrien	* call.c (build_scoped_method_call): Use lookup_base &
164490075Sobrien	build_base_path instead of convert_pointer_to_real,
164590075Sobrien	get_base_distance & get_binfo.
164690075Sobrien	(build_over_call): Likewise.
164790075Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
164890075Sobrien	(convert_to_pointer_force): Likewise.
164990075Sobrien	(build_up_reference): Likewise.
165090075Sobrien	(convert_pointer_to_real): Remove.
165190075Sobrien	(convert_pointer_to): Remove.
165290075Sobrien	* init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
165390075Sobrien	instead of convert_pointer_to_vbase & build_vbase_path.
165490075Sobrien	(emit_base_init): Use build_base_path instead of
165590075Sobrien	convert_pointer_to_real.
165690075Sobrien	(expand_virtual_init): Lose unrequired conversions.
165790075Sobrien	(resolve_offset_ref): Use lookup_base and build_base_path
165890075Sobrien	instead of convert_pointer_to.
165990075Sobrien	* rtti.c (build_dynamic_cast_1): Use lookup_base &
166090075Sobrien	build_base_path instead of get_base_distance & build_vbase_path.
166190075Sobrien	* search.c (get_vbase_1): Remove.
166290075Sobrien	(get_vbase): Remove.
166390075Sobrien	(convert_pointer_to_vbase): Remove.
166490075Sobrien	(lookup_base_recursive): New function.
166590075Sobrien	(lookup_base): New function.
166690075Sobrien	* typeck.c (require_complete_type): Use lookup_base &
166790075Sobrien	build_base_path instead of convert_pointer_to.
166890075Sobrien	(build_component_ref): Likewise.
166990075Sobrien	(build_x_function_call): Likewise.
167090075Sobrien	(get_member_function_from_ptrfunc): Likewise.
167190075Sobrien	(build_component_addr): Likewise.
167290075Sobrien	* typeck2.c (build_scoped_ref): Likewise.
167352284Sobrien
167490075Sobrien2001-11-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
167552284Sobrien
167690075Sobrien	* cp-tree.h (CP_TYPE_QUALS): Removed.
167790075Sobrien	* decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
167890075Sobrien	* cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
167990075Sobrien	LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
168090075Sobrien	* dump.c (cp_dump_tree): Use void* dump_info argument to match
168190075Sobrien	lang-hooks prototype.
168290075Sobrien	* call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
168390075Sobrien	rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
168490075Sobrien	CP_TYPE_QUALS changed to cp_type_quals.
168590075Sobrien	* Make-lang.in: References to c-dump.h changed to tree-dump.h.
168690075Sobrien	(CXX_C_OBJS): Remove c-dump.o.
168752284Sobrien
168890075Sobrien2001-11-21  Mark Mitchell  <mark@codesourcery.com>
168952284Sobrien
169090075Sobrien	PR c++/3637
169190075Sobrien	* pt.c (lookup_template_class): Ensure that all specializations
169290075Sobrien	are registered on the list corresponding to the most general
169390075Sobrien	template.
169452284Sobrien
169590075Sobrien2001-11-20  Mark Mitchell  <mark@codesourcery.com>
169652284Sobrien
169790075Sobrien	* call.c (non_reference): Add documentation.
169890075Sobrien	(convert_class_to_reference): Do not strip reference types
169990075Sobrien	from conversion operators.
170090075Sobrien	(maybe_handle_ref_bind): Simplify.
170190075Sobrien	(compare_ics): Correct handling of references.
170252284Sobrien
170390075Sobrien2001-11-19  John Wilkinson <johnw@research.att.com>
170452284Sobrien
170590075Sobrien	* dump.c (dump_op): New function.
170690075Sobrien	(cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION.  Use
170790075Sobrien	dump_op.  Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
170890075Sobrien	DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
170952284Sobrien
171090075Sobrien2001-11-19  Mark Mitchell  <mark@codesourcery.com>
171152284Sobrien
171290075Sobrien	PR4629
171390075Sobrien	* semantics.c (finish_sizeof): Make sure that expression created
171490075Sobrien	while processing a template do not have a type.
171590075Sobrien	(finish_alignof): Likewise.
171690075Sobrien	* typeck.c (c_sizeof): Likewise.
171790075Sobrien	(expr_sizeof): Likewise.
171852284Sobrien
171990075Sobrien2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
172052284Sobrien
172190075Sobrien	* lex.c (cxx_finish): Call c_common_finish.
172290075Sobrien	(finish_parse): Remove.
172352284Sobrien
172490075Sobrien2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
172552284Sobrien
172690075Sobrien	* decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
172790075Sobrien	when displaying error message about missing array bounds.
172852284Sobrien
172990075Sobrien2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
173052284Sobrien
173190075Sobrien	* mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
173290075Sobrien	CONST_CAST_EXPR.
173390075Sobrien	* operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
173452284Sobrien
173590075Sobrien2001-11-16  Neil Booth  <neil@daikokuya.demon.co.uk>
173652284Sobrien
173790075Sobrien	* cp-tree.h (print_class_statistics): Restore.
173852284Sobrien
173990075Sobrien2001-11-15  Jason Merrill  <jason@redhat.com>
174052284Sobrien
174190075Sobrien	* method.c (use_thunk): Don't emit debugging information for thunks.
174252284Sobrien
174390075Sobrien	* parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
174490075Sobrien	* decl.c (make_typename_type): Handle getting a class template.
174590075Sobrien	* search.c (lookup_field_r): A class template is good enough for
174690075Sobrien	want_type.
174752284Sobrien
174890075Sobrien	* call.c (convert_like_real): Only use cp_convert for the bad part.
174990075Sobrien	(standard_conversion): Also allow bad int->enum.
175090075Sobrien	* typeck.c (ptr_reasonably_similar): Also allow functions to
175190075Sobrien	interconvert.  Pointers to same-size integers are reasonably
175290075Sobrien	similar.
175352284Sobrien
175490075Sobrien	* cvt.c (convert_to_void): If we build a new COND_EXPR, always
175590075Sobrien	give it void type.
175652284Sobrien
175790075Sobrien2001-11-15  Nathan Sidwell  <nathan@codesourcery.com>
175852284Sobrien
175990075Sobrien	PR g++/3154
176090075Sobrien	* init.c (sort_base_init): Remove unreachable code.
176190075Sobrien	(expand_member_init): Adjust comment to reflect reality. Simplify
176290075Sobrien	and remove unreachable code.
176352284Sobrien
176490075Sobrien2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
176552284Sobrien
176690075Sobrien	* cp-tree.h (init_reswords, cxx_init_decl_processing): New.
176790075Sobrien	(cxx_init): Update prototype.
176890075Sobrien	* decl.c (init_decl_processing): Rename.  Move null node init
176990075Sobrien	to its creation time.
177090075Sobrien	* lex.c (cxx_init_options): Update.
177190075Sobrien	(cxx_init): Combine with old init_parse; also call
177290075Sobrien	cxx_init_decl_processing.
177352284Sobrien
177490075Sobrien2001-11-14  Richard Sandiford  <rsandifo@redhat.com>
177552284Sobrien
177690075Sobrien	* decl.c (check_initializer): Try to complete the type of an
177790075Sobrien	array element before checking whether it's complete.  Don't
177890075Sobrien	complain about arrays with complete element types but an
177990075Sobrien	unknown size.
178090075Sobrien	(cp_finish_decl): Build the hierarchical constructor before
178190075Sobrien	calling maybe_deduce_size_from_array_init.
178252284Sobrien
178390075Sobrien2001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
178452284Sobrien
178590075Sobrien	* Make-lang.in: Change all uses of $(manext) to $(man1ext).
178652284Sobrien
178790075Sobrien2001-11-13  Nathan Sidwell  <nathan@codesourcery.com>
178852284Sobrien
178990075Sobrien	PR g++/4206
179090075Sobrien	* parse.y (already_scoped_stmt): Remove.
179190075Sobrien	(simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
179252284Sobrien
179390075Sobrien2001-11-12  H.J. Lu <hjl@gnu.org>
179452284Sobrien
179590075Sobrien	* cvt.c (ocp_convert): Don't warn the address of a weak
179690075Sobrien	function is always `true'.
179752284Sobrien
179890075Sobrien2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
179952284Sobrien
180090075Sobrien	* cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
180190075Sobrien	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
180290075Sobrien	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
180390075Sobrien	* cp-tree.h (print_class_statistics): Remove.
180490075Sobrien	(cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
180590075Sobrien	cxx_print_identifier, cxx_set_yydebug): New.
180690075Sobrien	* lex.c (set_yydebug): Rename c_set_yydebug.
180790075Sobrien	* ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
180890075Sobrien	lang_print_xnode): Rename.
180990075Sobrien	* tree.c (print_lang_statistics): Rename.
181052284Sobrien
181190075Sobrien2001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
181252284Sobrien
181390075Sobrien	* class.c (dump_array): Fix format specifier warning.
181452284Sobrien
181590075Sobrien2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
181652284Sobrien
181790075Sobrien	* cp-lang.c (LANG_HOOKS_NAME): Override.
181890075Sobrien	(struct lang_hooks): Constify.
181990075Sobrien	* lex.c (cxx_init_options): Update.
182090075Sobrien	(lang_identify): Remove.
182190075Sobrien	* parse.y (language_string): Remove.
182252284Sobrien
182390075Sobrien2001-11-08  Andreas Franck  <afranck@gmx.de>
182452284Sobrien
182590075Sobrien	* Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
182690075Sobrien	DEMANGLER_CROSS_NAME): Handle program_transform_name the way
182790075Sobrien	suggested by autoconf.
182890075Sobrien	(GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
182990075Sobrien	(c++.install-common): Use the transformed target alias names.
183052284Sobrien
183190075Sobrien2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
183252284Sobrien
183390075Sobrien	* Make-lang.in: Update.
183490075Sobrien	* cp-lang.c: Include langhooks-def.h.
183552284Sobrien
183690075Sobrien2001-11-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
183752284Sobrien
183890075Sobrien	* pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
183952284Sobrien
184090075Sobrien2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
184152284Sobrien
184290075Sobrien	* lex.c (copy_lang_type): Add static prototype.
184352284Sobrien
184490075Sobrien2001-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
184552284Sobrien
184690075Sobrien	* pt.c (unify): Handle SCOPE_REF.
184752284Sobrien
184890075Sobrien2001-11-01  Jakub Jelinek  <jakub@redhat.com>
184952284Sobrien
185090075Sobrien	* tree.c (cp_copy_res_decl_for_inlining): Adjust
185190075Sobrien	DECL_ABSTRACT_ORIGIN for the return variable.
185252284Sobrien
185390075Sobrien2001-10-31  Zack Weinberg  <zack@codesourcery.com>
185452284Sobrien
185590075Sobrien	*  Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
185652284Sobrien
185790075Sobrien2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
185852284Sobrien
185990075Sobrien	* ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
186090075Sobrien	semantics.c, spew.c: Fix spelling errors.
186152284Sobrien
186290075Sobrien2001-10-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
186352284Sobrien
186490075Sobrien	* decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
186552284Sobrien
186690075Sobrien2001-10-25  Zack Weinberg  <zack@codesourcery.com>
186752284Sobrien
186890075Sobrien	* cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
186990075Sobrien	pop_everything.
187052284Sobrien
187190075SobrienTue Oct 23 14:00:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
187252284Sobrien
187390075Sobrien	* cp-lang.c (cxx_get_alias_set): New function.
187490075Sobrien	Point LANG_HOOKS_GET_ALIAS_SET to it.
187552284Sobrien
187690075Sobrien2001-10-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
187752284Sobrien
187890075Sobrien	* cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
187990075Sobrien	* cp-tree.h (make_unbound_class_template): Prototype new function.
188090075Sobrien	* decl.c (make_unbound_class_template): New function.
188190075Sobrien	* decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
188290075Sobrien	* error.c (dump_type): Likewise.
188390075Sobrien	* mangle.c (write_type): Likewise.
188490075Sobrien	* parse.y (template_parm): Likewise.
188590075Sobrien	(template_argument): Use make_unbound_class_template.
188690075Sobrien	* pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
188790075Sobrien	(tsubst): Likewise.
188890075Sobrien	(tsubst_copy): Likewise.
188990075Sobrien	(unify): Likewise.
189090075Sobrien	* tree.c (walk_tree): Likewise.
189190075Sobrien	* typeck.c (comptypes): Likewise.
189252284Sobrien
189390075Sobrien2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
189452284Sobrien
189590075Sobrien	* xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
189690075Sobrien	extra calls into fewer ones.
189752284Sobrien
189890075Sobrien2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
189952284Sobrien
190090075Sobrien	* decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
190190075Sobrien	Warn when merging inline with attribute noinline.
190290075Sobrien	(start_decl, start_function): Warn if inline and attribute
190390075Sobrien	noinline appear in the same declaration.
190452284Sobrien
190590075Sobrien2001-10-16  H.J. Lu <hjl@gnu.org>
190652284Sobrien
190790075Sobrien	* cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
190890075Sobrien	for tree checking disabled.
190952284Sobrien
191090075Sobrien2001-10-16  Hans-Peter Nilsson  <hp@axis.com>
191152284Sobrien
191290075Sobrien	* cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
191390075Sobrien	NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
191452284Sobrien
191590075Sobrien2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
191652284Sobrien
191790075Sobrien	* pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
191890075Sobrien	(unify): Only handle MINUS_EXPR specially if the above flag is set
191990075Sobrien	and the subtracted constant is 1.  Clear the flag on recursive calls.
192090075Sobrien	Set it when unifying the maximum value in an INTEGER_TYPE's range.
192152284Sobrien
192290075Sobrien2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
192352284Sobrien
192490075Sobrien	* decl.c (bad_specifiers): Don't allow exception specifications
192590075Sobrien	on any typedefs.
192652284Sobrien
192790075Sobrien2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
192852284Sobrien
192990075Sobrien	* cp/lex.c (init_cp_pragma): Similarly.
193052284Sobrien
193190075Sobrien2001-10-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
193252284Sobrien
193390075Sobrien	* pt.c (lookup_template_class): Build complete template arguments
193490075Sobrien	for BOUND_TEMPLATE_TEMPLATE_PARM.
193552284Sobrien
193690075Sobrien2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
193752284Sobrien
193890075Sobrien	* cp-tree.h (TYPE_BINFO): Update comment.
193990075Sobrien	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
194090075Sobrien	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
194190075Sobrien	(TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
194290075Sobrien	(copy_type): Prototype new function.
194390075Sobrien	* lex.c (copy_lang_decl): Gather tree node statistics.
194490075Sobrien	(copy_lang_type): New function.
194590075Sobrien	(copy_type): Likewise.
194690075Sobrien	(cp_make_lang_type): Create lang_type for
194790075Sobrien	BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
194890075Sobrien	and BOUND_TEMPLATE_TEMPLATE_PARM.
194990075Sobrien	* pt.c (tsubst): Use copy_type instead of copy_node.
195090075Sobrien	* search.c (lookup_field_1): Ignore TYPENAME_TYPE.
195152284Sobrien
195290075Sobrien2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
195352284Sobrien
195490075Sobrien	* pt.c (determine_specialization): Ignore functions without
195590075Sobrien	DECL_TEMPLATE_INFO.
195652284Sobrien
195790075Sobrien2001-10-12  Nathan Sidwell  <nathan@codesourcery.com>
195852284Sobrien
195990075Sobrien	PR g++/4476
196090075Sobrien	* typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
196152284Sobrien
196290075Sobrien2001-10-11  Jason Merrill  <jason_merrill@redhat.com>
196352284Sobrien
196490075Sobrien	* typeck2.c (store_init_value): Don't re-digest a bracketed
196590075Sobrien	initializer.
196652284Sobrien
196790075Sobrien	* class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
196890075Sobrien	ANON_AGGR_TYPE_P.
196952284Sobrien
197090075Sobrien2001-10-11  Richard Henderson  <rth@redhat.com>
197152284Sobrien
197290075Sobrien	* class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
197390075Sobrien	of an asm statement.
197490075Sobrien	(build_vtbl_ref_1): Split out from build_vtbl_ref.
197590075Sobrien	(build_vfn_ref): Use it to handle vtable descriptors before
197690075Sobrien	calling build_vtable_entry_ref.
197790075Sobrien	* decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
197852284Sobrien
197990075Sobrien2001-10-10  Richard Henderson  <rth@redhat.com>
198052284Sobrien
198190075Sobrien	* parse.y (asm_operand): Allow named operands.
198290075Sobrien	* semantics.c (finish_asm_stmt): Tweek for changed location
198390075Sobrien	of the operand constrant.
198452284Sobrien
198590075Sobrien2001-10-09  Jason Merrill  <jason_merrill@redhat.com>
198652284Sobrien
198790075Sobrien	* call.c (standard_conversion): Add bad conversion between
198890075Sobrien	integers and pointers.
198990075Sobrien	(convert_like_real): Don't use convert_for_initialization for bad
199090075Sobrien	conversions; complain here and use cp_convert.
199190075Sobrien	(build_over_call): Don't handle bad conversions specially.
199290075Sobrien	(perform_implicit_conversion): Allow bad conversions.
199390075Sobrien	(can_convert_arg_bad): New fn.
199490075Sobrien	* cp-tree.h: Declare it.
199590075Sobrien	* typeck.c (convert_for_assignment): Use it.
199690075Sobrien	(ptr_reasonably_similar): Any target type is similar to void.
199752284Sobrien
199890075Sobrien2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
199952284Sobrien
200090075Sobrien	* Make-lang.in (CXX_OBJS): Added cp-lang.o.
200190075Sobrien	(cp/cp-lang.o): New rule.
200290075Sobrien	* cp-tree.h: Declare hooks.
200390075Sobrien	* tree.c: Make hooks non-static.
200490075Sobrien	(init_tree): Don't initialize hooks here.
200590075Sobrien	* lex.c: Likewise.  Move definition of lang_hooks to...
200690075Sobrien	* cp-lang.c: ... new file.
200752284Sobrien
200890075Sobrien2001-10-08  Richard Henderson  <rth@redhat.com>
200952284Sobrien
201090075Sobrien	* cp-tree.h (struct lang_decl_flags): Remove declared_inline.
201190075Sobrien	(DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
201252284Sobrien
201390075Sobrien2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
201452284Sobrien
201590075Sobrien	* class.c (build_vtable_entry_ref): Const-ify.
201690075Sobrien	* decl.c (predefined_identifier,
201790075Sobrien	initialize_predefined_identifiers): Likewise.
201890075Sobrien	* init.c (build_new_1): Likewise.
201990075Sobrien	* lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
202090075Sobrien	Likewise.
202152284Sobrien
202290075Sobrien2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
202352284Sobrien
202490075Sobrien	* optimize.c (struct inline_data): Moved to ../tree-inline.c.
202590075Sobrien	(INSNS_PER_STMT): Likewise.
202690075Sobrien	(remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
202790075Sobrien	(copy_body, initialize_inlined_parameters): Likewise.
202890075Sobrien	(declare_return_variable, inlinable_function_p): Likewise.
202990075Sobrien	(expand_call_inline, expand_calls_inline): Likewise.
203090075Sobrien	(optimize_inline_calls, clone_body): Likewise.
203190075Sobrien	* tree.c (walk_tree): Moved to ../tree-inline.c.
203290075Sobrien	(walk_tree_without_duplicates): Likewise.
203390075Sobrien	(copy_tree_r, remap_save_expr): Likewise.
203452284Sobrien
203590075Sobrien2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
203652284Sobrien
203790075Sobrien	* Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
203890075Sobrien	(cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
203990075Sobrien	* cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
204090075Sobrien	(TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
204190075Sobrien	(flag_inline_trees): Moved declaration to ../tree-inline.h.
204290075Sobrien	(walk_tree): Moved declaration to ../tree-inline.h.
204390075Sobrien	(walk_tree_without_duplicates, copy_tree_r): Likewise.
204490075Sobrien	(remap_save_expr): Likewise.
204590075Sobrien	* decl.c: Include tree-inline.h.
204690075Sobrien	(lang_mark_tree): Don't mark inlined_fns.
204790075Sobrien	* decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
204890075Sobrien	* optimize.c: Include tree-inline.h.
204990075Sobrien	(optimize_inline_calls): Move declaration to ../tree.h, as
205090075Sobrien	non-static.
205190075Sobrien	(remap_decl): Use language-independent constructs and hooks.
205290075Sobrien	(remap_block, copy_body_r, declare_return_variable): Likewise.
205390075Sobrien	(inlinable_function_p): Likewise.  Don't test for
205490075Sobrien	DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
205590075Sobrien	no longer language-specific.
205690075Sobrien	(optimize_inline_calls): Likewise.  Make it non-static.  Moved
205790075Sobrien	call of dump_function to...
205890075Sobrien	(optimize_function): Here...
205990075Sobrien	(clone_body): New function, extracted from...
206090075Sobrien	(maybe_clone_body): ... here.  Build decl_map locally and pass
206190075Sobrien	it on to clone_body.
206290075Sobrien	* pt.c, semantics.c: Include tree-inline.h.
206390075Sobrien	* tree.c: Likewise.
206490075Sobrien	(cp_walk_subtrees): New language-specific hook for tree inlining.
206590075Sobrien	(cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
206690075Sobrien	cp_is_overload_p, cp_auto_var_in_fn_p,
206790075Sobrien	cp_copy_res_decl_for_inlining): Likewise.
206890075Sobrien	(walk_tree): Move language-specific constructs into...
206990075Sobrien	(cp_walk_subtrees): this new function.
207090075Sobrien	(copy_tree_r): Use language-independent constructs and hooks.
207190075Sobrien	(init_tree): Initialize tree inlining hooks.
207290075Sobrien	(remap_save_expr): Adjust prototype so that the declaration
207390075Sobrien	does not require the definition of splay_tree.
207452284Sobrien
207590075Sobrien2001-10-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
207652284Sobrien
207790075Sobrien	* rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
207890075Sobrien	to build the declaration instead of the declaration itself.
207952284Sobrien
208090075Sobrien2001-10-02  Jason Merrill  <jason_merrill@redhat.com>
208152284Sobrien
208290075Sobrien	* decl2.c (cxx_decode_option): Add 'else'.
208352284Sobrien
208490075Sobrien	* spew.c (end_input): No longer static.
208590075Sobrien	* cp-tree.h: Declare it.
208690075Sobrien	* parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
208752284Sobrien
208890075Sobrien2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
208952284Sobrien
209090075Sobrien	* call.c (build_over_call), typeck.c (build_function_call_real):
209190075Sobrien	Pass type attributes to check_function_format rather than name or
209290075Sobrien	assembler name.  Don't require there to be a name or assembler
209390075Sobrien	name to check formats.
209452284Sobrien
209590075Sobrien2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
209652284Sobrien
209790075Sobrien	* decl.c (init_decl_processing): Don't call
209890075Sobrien	init_function_format_info.  Initialize lang_attribute_table
209990075Sobrien	earlier.
210090075Sobrien	(builtin_function): Call decl_attributes.
210190075Sobrien	(insert_default_attributes): New.
210252284Sobrien
210390075Sobrien2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
210452284Sobrien
210590075Sobrien	* decl.c (grokdeclarator): Copy array typedef handling from C
210690075Sobrien	frontend.
210752284Sobrien
210890075Sobrien	* decl.c (grokdeclarator): Copy too-large array handling from C
210990075Sobrien	frontend.
211052284Sobrien
211190075Sobrien2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
211252284Sobrien
211390075Sobrien	* config-lang.in (target_libs): Added target-gperf, so that we
211490075Sobrien	don't try to build it if C++ is disabled.
211552284Sobrien
211690075Sobrien2001-09-23  Zack Weinberg  <zack@codesourcery.com>
211752284Sobrien
211890075Sobrien	* Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
211990075Sobrien	(cp/errfn.o): Delete rule.
212090075Sobrien	(cp/error.o): Depend on flags.h.
212190075Sobrien	* errfn.c: Delete file.
212290075Sobrien	* cp-tree.h: Declare warn_deprecated.  Remove definitions of
212390075Sobrien	TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
212490075Sobrien	and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
212590075Sobrien	cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
212690075Sobrien	internal_error respectively.  Make cp_deprecated into a macro.
212790075Sobrien	Don't define cp_printer typedef or declare cp_printers.
212890075Sobrien	* error.c: Include flags.h.
212990075Sobrien	Delete: struct tree_formatting_info, print_function_argument_list,
213090075Sobrien	print_declaration, print_expression, print_function_declaration,
213190075Sobrien	print_function_parameter, print_type_id, print_cv_qualifier_seq,
213290075Sobrien	print_type_specifier_seq, print_simple_type_specifier,
213390075Sobrien	print_elaborated_type_specifier, print_rest_of_abstract_declarator,
213490075Sobrien	print_parameter_declaration_clause, print_exception_specification,
213590075Sobrien	print_nested_name_specifier, and definition of cp_printers.
213690075Sobrien	(locate_error): New function.
213790075Sobrien	(cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
213890075Sobrien	rewritten in terms of locate_error and diagnostic.c.
213990075Sobrien	(cp_tree_printer): Rename cp_printer; wire up to *_to_string
214090075Sobrien	instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
214190075Sobrien	(init_error): Adjust to match.
214252284Sobrien
214390075SobrienSat Sep 22 09:15:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
214452284Sobrien
214590075Sobrien	* Make-lang.in (CXX_C_OBJS): Add attribs.o.
214652284Sobrien
214790075Sobrien2001-09-21  Richard Henderson  <rth@redhat.com>
214852284Sobrien
214990075Sobrien	* class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
215090075Sobrien	(build_vtbl_initializer): Likewise.
215190075Sobrien	(build_vfn_ref): New.
215290075Sobrien	* cp-tree.h: Declare it.
215390075Sobrien	* call.c (build_over_call): Use it.
215490075Sobrien	* decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
215590075Sobrien	* typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
215652284Sobrien
215790075SobrienFri Sep 21 08:16:19 2001  J"orn Rennecke <amylaar@redhat.com>
215852284Sobrien
215990075Sobrien	* decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
216052284Sobrien
216190075Sobrien2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
216252284Sobrien
216390075Sobrien	Table-driven attributes.
216490075Sobrien	* decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
216590075Sobrien	* decl2.c (cplus_decl_attributes): Only take one attributes
216690075Sobrien	parameter.
216790075Sobrien	* cp-tree.c (cplus_decl_attributes): Update prototype.
216890075Sobrien	* class.c (finish_struct), decl.c (start_decl, start_function),
216990075Sobrien	decl2.c (grokfield), friend.c (do_friend), parse.y
217090075Sobrien	(parse_bitfield): Update calls to cplus_decl_attributes.
217190075Sobrien	* decl.c (grokdeclarator): Take a pointer to a single ordinary
217290075Sobrien	attribute list.
217390075Sobrien	* decl.h (grokdeclarator): Update prototype.
217490075Sobrien	* decl2.c (grokfield): Take a single ordinary attribute list.
217590075Sobrien	* friend.c (do_friend): Likewise.
217690075Sobrien	* decl.c (shadow_tag, groktypename, start_decl,
217790075Sobrien	start_handler_parms, grokdeclarator, grokparms, start_function,
217890075Sobrien	start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
217990075Sobrien	parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
218090075Sobrien	(process_template_parm, do_decl_instantiation): Pass single
218190075Sobrien	ordinary attribute lists around.
218290075Sobrien	* decl.c (grokdeclarator): Correct handling of nested attributes.
218390075Sobrien	Revert the patch
218490075Sobrien	1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
218590075Sobrien		* decl.c (grokdeclarator): Embedded attrs bind to the right,
218690075Sobrien		not the left.
218790075Sobrien	.
218890075Sobrien	* cp-tree.h (cp_valid_lang_attribute): Remove declaration
218990075Sobrien	(cp_attribute_table): Declare.
219090075Sobrien	* decl.c (valid_lang_attribute): Don't define.
219190075Sobrien	(lang_attribute_table): Define.
219290075Sobrien	(init_decl_processing): Initialize lang_attribute_table instead of
219390075Sobrien	valid_lang_attribute.
219490075Sobrien	* tree.c (cp_valid_lang_attribute): Remove.
219590075Sobrien	(handle_java_interface_attribute, handle_com_interface_attribute,
219690075Sobrien	handle_init_priority_attribute): New functions.
219790075Sobrien	(cp_attribute_table): New array.
219890075Sobrien	* decl2.c (import_export_class): Don't use
219990075Sobrien	targetm.valid_type_attribute.
220052284Sobrien
220190075Sobrien2001-09-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
220252284Sobrien
220396263Sobrien	* Make-lang.in (cp/error.o): Depend on real.h
220496263Sobrien	* error.c: #include "real.h"
220552284Sobrien
220690075Sobrien2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
220752284Sobrien
220890075Sobrien	* mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
220990075Sobrien	xmalloc/strcpy/strcat.
221052284Sobrien
221190075Sobrien2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
221252284Sobrien
221390075Sobrien	* decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
221490075Sobrien	Const-ification.
221590075Sobrien	* pt.c (tsubst_decl): Likewise.
221652284Sobrien
221790075Sobrien2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
221852284Sobrien
221990075Sobrien	* decl2.c (lang_f_options): Const-ification.
222090075Sobrien	* lex.c (cplus_tree_code_name): Likewise.
222190075Sobrien	* spew.c (yyerror): Likewise.
222252284Sobrien
222390075Sobrien2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
222452284Sobrien
222590075Sobrien	PR c++/3986
222690075Sobrien	* class.c (force_canonical_binfo_r): Check & move an indirect
222790075Sobrien	primary base first.
222890075Sobrien	(force_canonical_binfo): Check that it's not already
222990075Sobrien	canonical.
223090075Sobrien	(mark_primary_virtual_base): Remove BINFO parameter.
223190075Sobrien	(mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
223252284Sobrien
223390075Sobrien2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
223452284Sobrien
223590075Sobrien	Remove TYPE_NONCOPIED_PARTS.
223690075Sobrien	* cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
223790075Sobrien	CLASSTYPE_PURE_VIRTUALS.
223890075Sobrien	(TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
223990075Sobrien	* class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
224090075Sobrien	(layout_class_type): Don't call fixup_inline_methods here ...
224190075Sobrien	(finish_struct_1): ... call it here.
224252284Sobrien
224390075Sobrien2001-09-04  Mark Mitchell  <mark@codesourcery.com>
224452284Sobrien
224590075Sobrien	* decl.c (duplicate_decls): Remove code deadling with
224690075Sobrien	DECL_SAVED_INSNS.
224790075Sobrien	* decl2.c (finish_file): Likewise.
224890075Sobrien	* pt.c (instantiate_decl): Likewise.
224990075Sobrien	* semantics.c (expand_body): Don't defer local functions if
225090075Sobrien	they wouldn't be deferred for some other reason.  Don't
225190075Sobrien	generate RTL for functions that will not be emitted.
225290075Sobrien	(genrtl_start_function): Remove code deadling with
225390075Sobrien	DECL_SAVED_INSNS.
225490075Sobrien	(genrtl_finish_function): Likewise.
225552284Sobrien
225690075Sobrien2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
225752284Sobrien
225890075Sobrien	PR c++/4203
225990075Sobrien	* call.c (build_over_call): Do not optimize any empty base
226090075Sobrien	construction.
226152284Sobrien
226290075Sobrien2001-08-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
226352284Sobrien
226490075Sobrien	* error.c (dump_template_decl): Output template parameters
226590075Sobrien	together with their specifiers.
226690075Sobrien	Output `class' prefix for template template parameter.
226790075Sobrien	(dump_decl): Fix formatting.
226852284Sobrien
226990075Sobrien2001-08-30  Kurt Garloff  <garloff@suse.de>
227052284Sobrien
227190075Sobrien	* optimize.c (inlinable_function_p): Allow only smaller single
227290075Sobrien	functions. Halve inline limit after reaching recursive limit.
227352284Sobrien
227490075Sobrien2001-08-30  Joern Rennecke <amylaar@redhat.com>
227590075Sobrien	    Jason Merrill  <jason_merrill@redhat.com>
227652284Sobrien
227790075Sobrien	* class.c (build_vtable_entry_ref): Subtract in char*, not
227890075Sobrien	ptrdiff_t.
227952284Sobrien
228090075Sobrien2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
228152284Sobrien
228290075Sobrien	* tree.c (cp_build_qualified_type_real): Use get_qualified_type.
228390075Sobrien	(build_cplus_array_type): Use cp_build_qualified_type, not
228490075Sobrien	TYPE_MAIN_VARIANT, to get an unqualified version.
228552284Sobrien
228690075Sobrien	* decl2.c (grok_alignof): Lose.
228790075Sobrien	(build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
228890075Sobrien	* typeck.c (c_alignof): Lose.
228990075Sobrien	* semantics.c (finish_sizeof, finish_alignof): New.
229090075Sobrien	* parse.y: Use them.
229190075Sobrien	* cp-tree.h: Declare them.
229252284Sobrien
229390075Sobrien2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
229452284Sobrien
229590075Sobrien	* pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
229690075Sobrien	Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
229790075Sobrien	* tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
229852284Sobrien
229990075Sobrien2001-08-19  Jakub Jelinek  <jakub@redhat.com>
230052284Sobrien
230190075Sobrien	* typeck2.c (add_exception_specifier): Only require complete type if
230290075Sobrien	not in processing template declaration.
230352284Sobrien
230490075Sobrien2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
230552284Sobrien
230690075Sobrien	* decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
230790075Sobrien	GNU_xref_start_scope and GNU_xref_end_scope.
230852284Sobrien
230990075Sobrien	* tree.c (TYPE_HASH): Moved to ../tree.h.
231052284Sobrien
231190075Sobrien2001-08-16  Mark Mitchell  <mark@codesourcery.com>
231252284Sobrien
231390075Sobrien	* cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
231490075Sobrien	on COMPOUND_EXPRs.
231552284Sobrien
231690075Sobrien2001-08-14  Richard Henderson  <rth@redhat.com>
231752284Sobrien
231890075Sobrien	* class.c, cp-tree.h (build_vfn_ref): Remove.
231990075Sobrien	* call.c, rtti.c: Replace all refernces with build_vtbl_ref.
232052284Sobrien
232190075Sobrien2001-08-13  Mark Mitchell  <mark@codesourcery.com>
232252284Sobrien
232390075Sobrien	* call.c (build_over_call): Mark COMPOUND_EXPRs generated for
232490075Sobrien	empty class assignment as having side-effects to avoid
232590075Sobrien	spurious warnings.
232652284Sobrien
232790075Sobrien2001-08-13  Zack Weinberg  <zackw@panix.com>
232852284Sobrien
232990075Sobrien	* Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
233090075Sobrien	* except.c: Include libfuncs.h.
233152284Sobrien
233290075Sobrien2001-08-11  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
233352284Sobrien
233490075Sobrien	* decl.c (grokdeclarator): Clarify diagnostic message.
233552284Sobrien
233690075Sobrien2001-08-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
233752284Sobrien
233890075Sobrien	* decl2.c (do_nonmember_using_decl): Replace using directive
233990075Sobrien	with using declaration in the error message.
234052284Sobrien
234190075Sobrien2001-08-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
234252284Sobrien
234390075Sobrien	* pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
234490075Sobrien	criterion to avoid rebuilding expression tree instead of
234590075Sobrien	processing_template_decl.
234652284Sobrien
234790075Sobrien2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
234852284Sobrien
234990075Sobrien	Support named return value optimization for inlines, too.
235090075Sobrien	* decl.c (finish_function): Nullify returns here.
235190075Sobrien	* semantics.c (genrtl_start_function): Not here.
235290075Sobrien	(cp_expand_stmt): Don't mess with CLEANUP_STMTs.
235390075Sobrien	(nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
235490075Sobrien	Also nullify the CLEANUP_STMT for the nrv.
235590075Sobrien	* cp-tree.h: Declare it.
235690075Sobrien	* optimize.c (declare_return_variable): Replace the nrv with the
235790075Sobrien	return variable.
235890075Sobrien	* typeck.c (check_return_expr): Be more flexible on alignment check.
235990075Sobrien	Ignore cv-quals when checking for a matching type.
236052284Sobrien
236190075Sobrien2001-08-09  Richard Henderson  <rth@redhat.com>
236252284Sobrien
236390075Sobrien	* decl2.c (finish_objects): Use target hooks instead of
236490075Sobrien	assemble_constructor and assemble_destructor.
236552284Sobrien
236690075Sobrien2001-08-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
236752284Sobrien
236890075Sobrien	* g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
236952284Sobrien
237090075Sobrien2001-08-07  Nathan Sidwell  <nathan@codesourcery.com>
237152284Sobrien
237290075Sobrien	PR c++/3820
237390075Sobrien	Stop using TYPE_NONCOPIED_PARTS.
237490075Sobrien	* call.c (build_over_call): Be careful when copy constructing
237590075Sobrien	or assigning to an empty class.
237690075Sobrien	* class.c (check_bases_and_members): It has a
237790075Sobrien	COMPLEX_ASSIGN_REF if it has a vptr.
237890075Sobrien	(layout_class_type): Don't add empty class padding to
237990075Sobrien	TYPE_NONCOPIED_PARTS.
238090075Sobrien	(finish_struct_1): Don't add the VFIELD either.
238190075Sobrien	* cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
238290075Sobrien	initialization.
238352284Sobrien
238490075Sobrien2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
238552284Sobrien
238690075Sobrien	* tree.c (walk_tree): Walk siblings even if !walk_subtrees.
238752284Sobrien
238890075Sobrien2001-08-06  Richard Henderson  <rth@redhat.com>
238952284Sobrien
239090075Sobrien	* decl2.c (finish_objects): Pass a symbol_ref and priority to
239190075Sobrien	assemble_{constructor,destructor}.  Remove priority handling.
239252284Sobrien
239390075Sobrien2001-08-05  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
239452284Sobrien
239590075Sobrien	Don't allow template-id in using-declaration.
239690075Sobrien	* decl2.c (validate_nonmember_using_decl): Handle template-ids.
239790075Sobrien	(do_class_using_decl): Likewise.
239852284Sobrien
239990075Sobrien2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
240052284Sobrien
240190075Sobrien	* cp/spew.c (read_token): No need to pop buffers.
240252284Sobrien
240390075Sobrien2001-08-02  Stan Shebs  <shebs@apple.com>
240452284Sobrien
240590075Sobrien	* cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
240690075Sobrien	(fnaddr_from_vtable_entry): Remove decl.
240790075Sobrien	* method.c (use_thunk): Update comment.
240852284Sobrien
240990075Sobrien2001-08-01  Andrew Cagney  <ac131313@redhat.com>
241052284Sobrien
241190075Sobrien	* repo.c (get_base_filename): Change return value to const char
241290075Sobrien	pointer.
241352284Sobrien
241490075Sobrien2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
241552284Sobrien
241690075Sobrien	Kill -fhonor-std.
241790075Sobrien	* NEWS: Document.
241890075Sobrien	* cp-tree.h (flag_honor_std): Remove.
241990075Sobrien	(CPTI_FAKE_STD): Remove.
242090075Sobrien	(std_node): Remove comment about it being NULL.
242190075Sobrien	(fake_std_node): Remove.
242290075Sobrien	* decl.c (in_fake_std): Remove.
242390075Sobrien	(walk_namespaces_r): Remove fake_std_node check.
242490075Sobrien	(push_namespace): Remove in_fake_std code.
242590075Sobrien	(pop_namespace): Likewise.
242690075Sobrien	(lookup_name_real): Remove fake_std_node check.
242790075Sobrien	(init_decl_processing): Always create std_node. Always add
242890075Sobrien	std:: things there.
242990075Sobrien	(builtin_function): Always put non '_' fns in std.
243090075Sobrien	* decl2.c (flag_honor_std): Remove.
243190075Sobrien	(lang_f_options): Remove honor-std.
243290075Sobrien	(unsupported_options): Add honor-std.
243390075Sobrien	(set_decl_namespace): Remove fake_std_node check.
243490075Sobrien	(validate_nonmember_using_decl): Likewise.
243590075Sobrien	(do_using_directive): Likewise.
243690075Sobrien	(handle_class_head): Likewise.
243790075Sobrien	* dump.c (cp_dump_tree): Likewise.
243890075Sobrien	* except.c (init_exception_processing): Adjust.
243990075Sobrien	* init.c (build_member_call): Remove fake_std_node check.
244090075Sobrien	(build_offset_ref): Likewise.
244190075Sobrien	* lang-options.h: Remove -fhonor-std, -fno-honor-std.
244290075Sobrien	* rtti.c (init_rtti_processing): Adjust.
244352284Sobrien
244490075Sobrien2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
244552284Sobrien
244690075Sobrien	* tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
244790075Sobrien	operand while calling cp_tree_equal.
244852284Sobrien
244990075Sobrien2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
245052284Sobrien
245190075Sobrien	The 3.0 ABI no longer has vbase pointer fields.
245290075Sobrien	* cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
245390075Sobrien	FORMAT_VBASE_NAME): Remove.
245490075Sobrien	* method.c (do_build_copy_constructor): Adjust.
245590075Sobrien	(do_build_assign_ref): Adjust.
245690075Sobrien	* search.c (lookup_field_r): Adjust.
245790075Sobrien	* typeck.c (build_component_ref): Adjust.
245852284Sobrien
245990075Sobrien	The 3.0 ABI always has a vtable pointer at the start of every
246090075Sobrien	polymorphic class.
246190075Sobrien	* rtti.c (build_headof_sub): Remove.
246290075Sobrien	(build_headof): Adjust.
246390075Sobrien	(get_tinfo_decl_dynamic): No need to check flag_rtti
246490075Sobrien	here. Adjust.
246590075Sobrien	(create_real_tinfo_var): Explain why we need a hidden name.
246652284Sobrien
246790075Sobrien2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
246852284Sobrien
246990075Sobrien	PR c++/3631
247090075Sobrien	* class.c (update_vtable_entry_for_fn): The fixed adjustment
247190075Sobrien	of a virtual thunk should be from declaring base.
247252284Sobrien
247390075Sobrien2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
247452284Sobrien
247590075Sobrien	* class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
247690075Sobrien	the shared virtual base, so preserving inheritance graph order.
247748743Sobrien
247890075Sobrien2001-07-30  Andreas Jaeger  <aj@suse.de>
247948743Sobrien
248090075Sobrien	* decl2.c: Remove unused var global_temp_name_counter.
248148743Sobrien
248290075Sobrien2001-07-28  Richard Henderson  <rth@redhat.com>
248352284Sobrien
248490075Sobrien	* method.c (pending_inlines): Remove.
248552284Sobrien
248690075Sobrien2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
248752284Sobrien
248890075Sobrien	* class.c (mark_primary_virtual_base): Don't adjust base
248990075Sobrien	offsets here.
249090075Sobrien	(dfs_unshared_virtual_bases): Adjust them here.
249190075Sobrien	(mark_primary_bases): Explain why we adjust at the end.
249252284Sobrien
249390075Sobrien2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
249452284Sobrien
249590075Sobrien	* class.c (finish_struct_1): When copying the primary base's
249690075Sobrien	VFIELD, make sure we find it is at offset zero.
249752284Sobrien
249890075Sobrien2001-07-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
249952284Sobrien
250090075Sobrien	* pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
250190075Sobrien	tsubst_expr for default template arguments.
250252284Sobrien
250390075Sobrien2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
250452284Sobrien
250590075Sobrien	PR c++/3621
250690075Sobrien	* spew.c (yylex): Only copy the token's lineno, if it is
250790075Sobrien	non-zero.
250852284Sobrien
250990075Sobrien2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
251052284Sobrien
251190075Sobrien	PR c++/3624
251290075Sobrien	* call.c (resolve_args): Simplify, call
251390075Sobrien	convert_from_reference.
251490075Sobrien	(build_new_op): Resolve and convert from reference ARG1
251590075Sobrien	earlier. Adjust ARG2 & ARG3 resolve and conversion.
251652284Sobrien
251790075Sobrien2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
251852284Sobrien
251990075Sobrien	* decl.c (last_function_parm_tags): Remove.
252090075Sobrien	(current_function_parm_tags): Remove.
252190075Sobrien	(init_decl_processing): Adjust.
252290075Sobrien	(start_function): Adjust.
252390075Sobrien	(store_parm_decls): Adjust.
252452284Sobrien
252590075Sobrien	PR c++/3152
252690075Sobrien	* decl.c (grokdeclarator): Detect when a function typedef is
252790075Sobrien	declaring a function, and create last_function_parms correctly.
252852284Sobrien
252990075Sobrien2001-07-25  Jason Merrill  <jason_merrill@redhat.com>
253052284Sobrien
253190075Sobrien	* call.c (joust): Only prefer a non-builtin candidate to a builtin
253290075Sobrien	one if they have the same signature.
253352284Sobrien
253490075Sobrien	* cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
253590075Sobrien	it rather than toplevel_bindings_p.  Give it a mangled name if static.
253690075Sobrien	(convert_to_reference): Adjust.
253790075Sobrien	* decl2.c (get_temp_name): Lose.
253890075Sobrien	* mangle.c (mangle_ref_init_variable): New fn.
253990075Sobrien	(mangle_guard_variable): Strip the ref-init header.
254090075Sobrien	* cp-tree.h: Adjust.
254190075Sobrien	* decl.c (cp_finish_decl): Add the DECL_STMT after processing the
254290075Sobrien	initializer.
254390075Sobrien	(grok_reference_init): Always use DECL_INITIAL.
254452284Sobrien
254590075Sobrien2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
254652284Sobrien
254790075Sobrien	PR c++/3416
254890075Sobrien	* call.c (build_conditional_expr): Recheck args after
254990075Sobrien	conversions.
255090075Sobrien	* cp-tree.h (build_conditional_expr): Move to correct file.
255190075Sobrien	* typeck.c (decay_conversion): Diagnose any unknown types
255290075Sobrien	reaching here.
255390075Sobrien	(build_binary_op): Don't do initial decay or default
255490075Sobrien	conversions on overloaded functions.
255590075Sobrien	(build_static_cast): Don't do a decay conversion here.
255652284Sobrien
255790075Sobrien2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
255852284Sobrien
255990075Sobrien	PR c++/3543
256090075Sobrien	* typeck.c (condition_conversion): Resolve an OFFSET_REF.
256190075Sobrien	* expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
256252284Sobrien
256390075Sobrien2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
256452284Sobrien
256590075Sobrien	* class.c (build_vtbl_or_vbase_field): Remove, move into ...
256690075Sobrien	(create_vtbl_ptr): ... here.
256752284Sobrien
256890075Sobrien2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
256952284Sobrien
257090075Sobrien	* class.c (build_vbase_offset_vbtl_entries): Look for
257190075Sobrien	non-primary base of which we are a sub vtable.
257252284Sobrien
257390075Sobrien2001-07-24  Phil Edwards  <pme@sources.redhat.com>
257452284Sobrien
257590075Sobrien	* semantics.c (finish_this_expr):  Remove unused code.
257652284Sobrien
257790075Sobrien2001-07-24  Nathan Sidwell  <nathan@codesourcery.com>
257852284Sobrien
257990075Sobrien	Simplify rtti, now we've only one ABI.
258090075Sobrien	* cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
258190075Sobrien	CPTI_TINFO_VAR_ID.
258290075Sobrien	(tinfo_decl_id, tinfo_var_id): Remove.
258390075Sobrien	(get_typeid_1): Remove.
258490075Sobrien	* rtti.c
258590075Sobrien	(init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
258690075Sobrien	(typeid_ok_p): New function.
258790075Sobrien	(build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
258890075Sobrien	(get_tinfo_decl): Remove old abi documentation.
258990075Sobrien	(tinfo_from_decl): Remove.
259090075Sobrien	(get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
259190075Sobrien	(get_typeid_1): Remove.
259290075Sobrien	(get_base_offset): Remove.
259390075Sobrien	(synthesize_tinfo_var): Absorb get_base_offset.
259490075Sobrien	(create_real_tinfo_var): Don't use tinfo_decl_id.
259552284Sobrien
259690075Sobrien2001-07-23  Graham Stott  <grahams@redhat.com>
259752284Sobrien
259890075Sobrien	* cp/class.c (type_requires_array_cookie): Fix use of uninitialised
259990075Sobrien	variable has_two_argument_delete_p.
260052284Sobrien
260190075Sobrien2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
260252284Sobrien
260390075Sobrien	Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
260490075Sobrien	* cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
260590075Sobrien	(CPTI_INDEX_IDENTIFIER): Remove.
260690075Sobrien	(CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
260790075Sobrien	(delta2_identifier): Remove.
260890075Sobrien	(index_identifier): Remove.
260990075Sobrien	(pfn_or_delta2_identifier): Remove.
261090075Sobrien	(flag_vtable_thunks): Remove.
261190075Sobrien	(VTABLE_DELTA2_NAME): Remove.
261290075Sobrien	(VTABLE_INDEX_NAME): Remove.
261390075Sobrien	(FNADDR_FROM_VTABLE_ENTRY): Adjust.
261490075Sobrien	(vfunc_ptr_type_node): Adjust.
261590075Sobrien	(VTABLE_NAME_PREFIX): Adjust.
261690075Sobrien	(build_vfn_ref): Lose first parameter.
261790075Sobrien	(fixup_all_virtual_upcast_offsets): Remove.
261890075Sobrien	* decl.c (initialize_predefined_identifiers): Remove
261990075Sobrien	delta2_identifier, index_identifier, pfn_or_delta2_identifier.
262090075Sobrien	(init_decl_processing): Remove no-vtable-thunk code.
262190075Sobrien	* decl2.c (flag_vtable_thunks): Remove.
262290075Sobrien	(mark_vtable_entries): Remove no-vtable-thunk code.
262390075Sobrien	* error.c (dump_decl): Remove no-vtable-thunk code.
262490075Sobrien	(dump_expr): Adjust ptr to member function code.
262590075Sobrien	* init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
262690075Sobrien	code.
262790075Sobrien	* rtti.c (build_headof): Remove no-vtable-thunk code.
262890075Sobrien	(get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
262990075Sobrien	* search.c (get_base_distance): Remove expand_upcast_fixups case.
263090075Sobrien	(virtual_context) Remove.
263190075Sobrien	(expand_upcast_fixups): Remove.
263290075Sobrien	(fixup_virtual_upcast_offsets): Remove.
263390075Sobrien	(fixup_all_virtual_upcast_offsets): Remove.
263490075Sobrien	* typeck.c (get_member_function_from_ptrfunc): Remove
263590075Sobrien	no-vtable-thunk code.
263690075Sobrien	* call.c (build_over_call): Adjust call to build_vfn_ref.
263790075Sobrien	* class.c (build_vfn_ref): Lose first parameter. Remove
263890075Sobrien	no-vtable-thunk code.
263990075Sobrien	(build_rtti_vtbl_entries): Remove no-vtable-thunk code.
264090075Sobrien	(build_vtable_entry): Remove no-vtable-thunk code.
264152284Sobrien
264290075Sobrien2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
264352284Sobrien
264490075Sobrien	Remove old-abi remnants. Remove comments about old abi
264590075Sobrien	behaviour. Remove references to 'new-abi' in comments.
264690075Sobrien	* cp-tree.h: Adjust comments.
264790075Sobrien	(vbase_offsets_in_vtable_p): Delete.
264890075Sobrien	(vcall_offsets_in_vtable_p): Delete.
264990075Sobrien	(vptrs_present_everywhere_p): Delete.
265090075Sobrien	(all_overridden_vfuns_in_vtables_p): Delete.
265190075Sobrien	(merge_primary_and_secondary_vtables_p): Delete.
265290075Sobrien	(TYPE_CONTAINS_VPTR_P): Adjust.
265390075Sobrien	(VTT_NAME_PREFIX): Remove.
265490075Sobrien	(CTOR_VTBL_NAME_PREFIX): Remove.
265590075Sobrien	(init_vbase_pointers): Remove.
265690075Sobrien	* class.c: Adjust coments.
265790075Sobrien	(build_vbase_pointer_fields): Delete.
265890075Sobrien	(build_vbase_pointer): Remove old-abi code.
265990075Sobrien	(build_secondary_vtable): Likewise.
266090075Sobrien	(modify_all_vtables): Likewise.
266190075Sobrien	(create_vtable_ptr): Likewise.
266290075Sobrien	(layout_class_type): Likewise.
266390075Sobrien	(finish_struct_1): Likewise.
266490075Sobrien	(finish_vtbls): Likewise.
266590075Sobrien	(dfs_finish_vtbls): Delete.
266690075Sobrien	(build_vbase_offset_vtbl_entries): Remove old-abi code.
266790075Sobrien	* cvt.c: Adjust comments.
266890075Sobrien	* decl.c: Adjust comments.
266990075Sobrien	* decl2.c: Adjust comments.
267090075Sobrien	* init.c: Adjust comments.
267190075Sobrien	(construct_virtual_bases): Remove old-abi code.
267290075Sobrien	* lang-specs.h: Remove -fno-new-abi.
267390075Sobrien	* mangle.c: Adjust comments.
267490075Sobrien	* rtti.c: Adjust comments.
267590075Sobrien	(get_base_offset): Remove old-abi-code.
267690075Sobrien	* search.c: Adjust comments.
267790075Sobrien	(dfs_init_vbase_pointers): Remove.
267890075Sobrien	(dfs_vtable_path_unmark): Remove.
267990075Sobrien	(init_vbase_pointers): Remove.
268090075Sobrien	* semantics.c: Adjust comments.
268190075Sobrien	(emit_associated_thunks): Remove old-abi code.
268290075Sobrien	* typeck.c: Adjust comments.
268352284Sobrien
268490075Sobrien2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
268552284Sobrien
268690075Sobrien	* Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
268790075Sobrien	params.h.
268852284Sobrien
268990075Sobrien2001-07-19  Mark Mitchell  <mark@codesourcery.com>
269052284Sobrien
269190075Sobrien	* class.c (finish_struct_anon): Forbid nested classes.
269252284Sobrien
269390075Sobrien2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
269452284Sobrien
269590075Sobrien	* decl2.c: Don't include dwarfout.h and dwarf2out.h.
269690075Sobrien	* optimize.c: Include debug.h.
269790075Sobrien	(maybe_clone_body): Use debug hook.
269890075Sobrien	* semantics.c: Include debug.h.
269990075Sobrien	(expand_body): Use debug hook.
270052284Sobrien
270190075Sobrien2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
270252284Sobrien
270390075Sobrien	* spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
270452284Sobrien
270590075Sobrien2001-07-18  Mark Mitchell  <mark@codesourcery.com>
270652284Sobrien
270790075Sobrien	* class.c (type_requires_array_cookie): New function.
270890075Sobrien	(check_methods): Don't try to figure out whether the type needs a
270990075Sobrien	cookie here.
271090075Sobrien	(check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
271190075Sobrien	* cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
271290075Sobrien	(TYPE_VEC_NEW_USES_COOKIE): Reimplement.
271390075Sobrien	* pt.c (instantiate_class_template): Don't set
271490075Sobrien	TYPE_VEC_DELETE_TAKES_SIZE.
271590075Sobrien	* NEWS: Document ABI changes from GCC 3.0.
271652284Sobrien
271790075Sobrien2001-07-18  Xavier Delacour <xavier@fmaudio.net>,
271890075Sobrien	    Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
271952284Sobrien
272090075Sobrien	* NEWS (Changes in GCC 3.0): Fix typo.
272152284Sobrien
272290075Sobrien2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
272352284Sobrien
272490075Sobrien	* decl2.c (cplus_decl_attributes): Take a pointer to the node to
272590075Sobrien	which attributes are to be attached, and a flags argument.  Update
272690075Sobrien	call to decl_attributes.
272790075Sobrien	(grokfield): Update call to decl_attributes.
272890075Sobrien	* class.c (finish_struct): Update call to cplus_decl_attributes.
272990075Sobrien	* cp-tree.h (cplus_decl_attributes): Update prototype.
273090075Sobrien	* decl.c (start_decl, grokdeclarator, start_function): Update
273190075Sobrien	calls to decl_attributes and cplus_decl_attributes.
273290075Sobrien	* friend.c (do_friend): Update call to cplus_decl_attributes.
273390075Sobrien	* parse.y (parse_bitfield): Update call to cplus_decl_attributes.
273452284Sobrien
273590075Sobrien2001-07-12  Mark Mitchell  <mark@codesourcery.com>
273652284Sobrien
273790075Sobrien	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
273890075Sobrien	for `register' variables with an asm-specification.
273952284Sobrien
274090075Sobrien2001-07-11  Mark Mitchell  <mark@codesourcery.com>
274152284Sobrien
274290075Sobrien	* semantics.c (finish_asm_stmt): Mark the output operands
274390075Sobrien	to an asm addressable, if necessary.
274452284Sobrien
274590075Sobrien2001-07-11  Ben Elliston  <bje@redhat.com>
274648743Sobrien
274790075Sobrien	* Revert this change -- there is a subtle bug.
274818334Speter
274990075Sobrien	PR c++/80
275090075Sobrien	* decl.c (finish_enum): New "attributes" argument; pass it to
275190075Sobrien	cplus_decl_attributes.  Use a narrower type if the enum is packed.
275290075Sobrien	* cp-tree.h (finish_enum): Adjust prototype.
275390075Sobrien	* parse.y (enum_head): New non-terminal.
275490075Sobrien	(structsp): Use it. Enums now may be preceded or followed by
275590075Sobrien	optional attributes -- pass their chained tree to finish_enum().
275690075Sobrien	* pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
275718334Speter
275890075Sobrien2001-07-10  Mark Mitchell  <mark@codesourcery.com>
275952284Sobrien
276090075Sobrien	* pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
276190075Sobrien	variables.
276252284Sobrien
276390075Sobrien2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
276452284Sobrien
276590075Sobrien	* semantics.c (cp_expand_stmt): Fix for null
276690075Sobrien	current_function_return_value.
276752284Sobrien
276890075Sobrien2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
276952284Sobrien
277090075Sobrien	* call.c (build_op_delete_call): Initialize fn.
277190075Sobrien	(convert_like_real): Delete conditional.
277290075Sobrien	(joust): Initialize *w and *l.
277390075Sobrien	* class.c: Add prototype for binfo_ctor_vtable.
277490075Sobrien	(get_primary_binfo): Initialize result.
277590075Sobrien	* init.c (build_java_class_ref): Initialize name.
277652284Sobrien
277790075Sobrien2001-07-09  Erik Rozendaal  <dlr@acm.org>
277852284Sobrien
277990075Sobrien	* typeck.c (unary_complex_lvalue): Do not duplicate the
278090075Sobrien	argument to modify, pre-, or post-increment when used as an
278190075Sobrien	lvalue and when the argument has side-effects.
278252284Sobrien
278390075Sobrien2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
278452284Sobrien
278590075Sobrien	* decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
278690075Sobrien	(start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES.  Call
278790075Sobrien	cplus_decl_attributes even if attrs is NULL.
278890075Sobrien	* friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
278952284Sobrien
279090075Sobrien2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
279152284Sobrien
279290075Sobrien	* decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
279390075Sobrien	calls to decl_attributes.
279452284Sobrien
279590075Sobrien2001-07-06  Ira Ruben   <ira@apple.com>
279652284Sobrien
279790075Sobrien	* cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
279890075Sobrien	be DECL_TEMPLATE_RESULT.
279952284Sobrien
280090075Sobrien2001-07-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
280152284Sobrien
280290075Sobrien	* cp-tree.h (copy_template_template_parm): Rename to ...
280390075Sobrien	(bind_template_template_parm): ... here.
280490075Sobrien	* tree.c (copy_template_template_parm): Rename to ...
280590075Sobrien	(bind_template_template_parm): ... here.  Remove the case when
280690075Sobrien	NEWARGS is NULL_TREE.
280790075Sobrien	(copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
280890075Sobrien	BOUND_TEMPLATE_TEMPLATE_PARM.
280990075Sobrien	* pt.c (lookup_template_class): Adjust.
281052284Sobrien
281190075Sobrien2001-07-05  Jason Merrill  <jason_merrill@redhat.com>
281252284Sobrien
281390075Sobrien	* cvt.c (convert_lvalue): New fn.
281490075Sobrien	* cp-tree.h: Declare it.
281590075Sobrien	* method.c (do_build_assign_ref): Use it.
281690075Sobrien	(do_build_copy_constructor): Convert parm to base types
281790075Sobrien	before calling base constructors.
281852284Sobrien
281990075Sobrien	* typeck.c (check_return_expr): Check DECL_ALIGN instead of
282090075Sobrien	DECL_USER_ALIGN.  Check flag_elide_constructors instead of
282190075Sobrien	optimize.
282290075Sobrien	* semantics.c (cp_expand_stmt): Don't destroy the named return value.
282352284Sobrien
282490075Sobrien2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
282552284Sobrien
282690075Sobrien	* optimize.c (optimize_inline_calls): New function, broken out
282790075Sobrien	of ...
282890075Sobrien	(optimize_function): ... here. Call it. Don't inline if it is
282990075Sobrien	a thunk.
283090075Sobrien	(dump_function): Print name of dump flag causing this dump.
283190075Sobrien	* semantics.c (expand_body): Move thunk inline check to
283290075Sobrien	optimize_function.
283352284Sobrien
283490075Sobrien2001-06-29  Joseph S. Myers  <jsm28@cam.ac.uk>
283552284Sobrien
283690075Sobrien	* typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
283790075Sobrien	(comptypes): Use target.comp_type_attributes.
283852284Sobrien
283990075Sobrien2001-06-29  Nathan Sidwell  <nathan@codesourcery.com>
284052284Sobrien
284190075Sobrien	* cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
284252284Sobrien
284390075Sobrien2001-06-28  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
284452284Sobrien
284590075Sobrien	* error.c (lang_print_error_function): Add a `diagnostic_context *'
284690075Sobrien	parameter. Tweak.
284752284Sobrien
284890075Sobrien2001-06-27  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
284952284Sobrien
285090075Sobrien	* decl2.c (import_export_class): Update.
285152284Sobrien
285290075Sobrien2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
285352284Sobrien
285490075Sobrien	* error.c (init_error): Adjust settings.
285552284Sobrien
285690075Sobrien2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
285752284Sobrien
285890075Sobrien	* error.c (init_error): Adjust settings.
285952284Sobrien
286090075Sobrien2001-06-19  Richard Sandiford  <rsandifo@redhat.com>
286152284Sobrien
286290075Sobrien	* except.c (initialize_handler_parm): Expect __cxa_begin_catch to
286390075Sobrien	return pointers to data members by reference rather than by value.
286452284Sobrien
286590075Sobrien2001-06-18  Jason Merrill  <jason_merrill@redhat.com>
286652284Sobrien
286790075Sobrien	Implement the Named Return Value optimization.
286890075Sobrien	* cp-tree.h (struct cp_language_function): Add x_return_value.
286990075Sobrien	(current_function_return_value): Now a macro.
287090075Sobrien	* decl.c: Don't define it.
287190075Sobrien	(define_label, finish_case_label): Don't clear it.
287290075Sobrien	(init_decl_processing): Don't register it with GC.
287390075Sobrien	* semantics.c (genrtl_finish_function): Don't check it for
287490075Sobrien	no_return_label.  Copy the RTL from the return value to
287590075Sobrien	current_function_return_value and walk, calling...
287690075Sobrien	(nullify_returns_r): ...this new fn.
287790075Sobrien	* typeck.c (check_return_expr): Set current_function_return_value.
287852284Sobrien
287990075Sobrien2001-06-15  Jason Merrill  <jason_merrill@redhat.com>
288052284Sobrien
288190075Sobrien	* class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
288290075Sobrien	sharing a ctor vtable with.  Merge code for cases 1 and 2.
288390075Sobrien	(binfo_ctor_vtable): New fn.
288490075Sobrien	(build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
288552284Sobrien
288690075Sobrien2001-06-14  Jason Merrill  <jason_merrill@redhat.com>
288752284Sobrien
288890075Sobrien	* class.c (dfs_find_final_overrider): Fix logic.
288952284Sobrien
289090075Sobrien	* class.c (update_vtable_entry_for_fn): Uncomment optimization to use
289190075Sobrien	virtual thunk instead of non-virtual.
289290075Sobrien	(get_matching_virtual): Uncomment.
289352284Sobrien
289490075Sobrien	* pt.c (unify): Don't recurse between the POINTER_TYPE and the
289590075Sobrien	OFFSET_TYPE.  If we're adding cv-quals, the extra ones would be on
289690075Sobrien	PARM, not ARG.
289752284Sobrien
289890075Sobrien2001-06-14  Nathan Sidwell  <nathan@codesourcery.com>
289952284Sobrien
290090075Sobrien	* class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
290190075Sobrien	we've not emerged from the hierarchy of RTTI_BINFO on reaching
290290075Sobrien	a non-virtual base.
290352284Sobrien
290490075Sobrien2001-06-13  Mark Mitchell  <mark@codesourcery.com>
290552284Sobrien
290690075Sobrien	* NEWS: Update release number.
290752284Sobrien
290890075Sobrien2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
290952284Sobrien
291090075Sobrien	PR c++/3130, c++/3131, c++/3132
291190075Sobrien	* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
291290075Sobrien	* class.c (force_canonical_binfo_r): Move
291390075Sobrien	BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
291490075Sobrien	virtual bases unless they're primary and what they're primary
291590075Sobrien	too has been moved.
291690075Sobrien	(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
291790075Sobrien	with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
291890075Sobrien	BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
291990075Sobrien	derived binfo.
292090075Sobrien	(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
292190075Sobrien	(layout_nonempty_base_or_field): Add most derived type
292290075Sobrien	parameter. Adjust.
292390075Sobrien	(layout_empty_base): Likewise.
292490075Sobrien	(build_base_field): Likewise.
292590075Sobrien	(build_base_fields): Likewise.
292690075Sobrien	(propagate_binfo_offsets): Add most derived type
292790075Sobrien	parameter. Skip non canonical virtual bases too.
292890075Sobrien	(dfs_set_offset_for_unshared_vbases): Don't skip primary
292990075Sobrien	bases. Do skip canonical bases.
293090075Sobrien	(layout_virtual_bases): Adjust.
293190075Sobrien	(layout_class_type): Adjust.
293290075Sobrien	(dfs_get_primary_binfo): Build list of virtual primary base
293390075Sobrien	candidates.
293490075Sobrien	(get_primary_binfo): Check that the shared virtual primary
293590075Sobrien	base candidate was found first.
293690075Sobrien	(accumulate_vtbl_inits): Don't do anything for non-vptr
293790075Sobrien	containing binfos. For case 1 primary virtual bases, keep
293890075Sobrien	checking that we've not emerged from the hierarchy of RTTI_BINFO.
293952284Sobrien
294090075Sobrien2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
294152284Sobrien
294290075Sobrien	PR c++/3089
294390075Sobrien	* class.c (dfs_accumulate_vtbl_inits): Always walk down the
294490075Sobrien	hierarchy looking for primary bases for a ctor
294590075Sobrien	vtable. Recursively call oneself, if we meet our primary via
294690075Sobrien	this route and haven't met it yet via inheritance graph order.
294752284Sobrien
294890075Sobrien2001-06-11  Mark Mitchell  <mark@codesourcery.com>
294952284Sobrien
295090075Sobrien	* lang-options.h: Emit documentation for -fno-honor-std, not
295190075Sobrien	-fhonor-std.
295252284Sobrien
295390075Sobrien2001-06-10  Alexandre Oliva  <aoliva@redhat.com>
295452284Sobrien
295590075Sobrien	* typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
295690075Sobrien	Don't clobber delta.
295790075Sobrien	(expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
295852284Sobrien
295990075Sobrien2001-06-10  Mark Mitchell <mark@codesourcery.com>
296090075Sobrien	    Gabriel Dos Reis  <gdr@codesourcery.com>
296152284Sobrien
296290075Sobrien	* Make-lang.in (cp/call.o): Depend on diagnostic.h
296390075Sobrien	(cp/typeck.o): Depend on diagnostic.h
296490075Sobrien	(cp/typeck2.o): Depend on diagnostic.h
296590075Sobrien	(cp/repo.o): Depend on dignostic.h
296690075Sobrien	* typeck.c: #include diagnostic.h
296790075Sobrien	(convert_for_initialization): Remove extern declaration for
296890075Sobrien	warningcount and errorcount.
296952284Sobrien
297090075Sobrien	* call.c: #include diagnostic.h
297190075Sobrien	(convert_like_real): Remove extern declaration for warnincount and
297290075Sobrien	errorcount.
297352284Sobrien
297490075Sobrien	* repo.c: #include diagnostic.h
297590075Sobrien	* typeck2.c: #include diagnostic.h
297652284Sobrien
297790075Sobrien2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
297852284Sobrien
297990075Sobrien	* decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
298090075Sobrien	in previous change.
298152284Sobrien
298290075Sobrien2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
298352284Sobrien
298490075Sobrien	PR c++/2929
298590075Sobrien	* friend.c (do_friend): Use push_decl_namespace for classes at
298690075Sobrien	namespace scope.
298752284Sobrien
298890075Sobrien2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
298990075Sobrien	    Jason Merrill <jason_merrill@redhat.com>
299052284Sobrien
299190075Sobrien	PR c++/3061
299290075Sobrien	* class.c (build_secondary_vtable): Use assert, rather than an error
299390075Sobrien	message.
299490075Sobrien	(dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
299590075Sobrien	(dfs_accumulate_vtbl_inits): A lost primary virtual base may
299690075Sobrien	be between ORIG_BINFO and RTTI_BINFO, but neither of them.
299790075Sobrien	Don't set BINFO_VTABLE for a primary virtual base.
299852284Sobrien
299990075Sobrien2001-06-07  Mark Mitchell  <mark@codesourcery.com>
300052284Sobrien
300190075Sobrien	* decl.c (duplicate_decls): Update source position information
300290075Sobrien	when a template function is defined.
300352284Sobrien
300490075Sobrien2001-06-07  Phil Edwards  <pme@sources.redhat.com>
300552284Sobrien
300690075Sobrien	* lang-specs.h:  Move -D_GNU_SOURCE to config/linux.h.
300752284Sobrien
300890075Sobrien2001-06-07  Nathan Sidwell  <nathan@codesourcery.com>
300952284Sobrien
301090075Sobrien	PR c++/2914
301190075Sobrien	* decl.c (pushtag): Don't push into a complete type's scope.
301252284Sobrien
301390075Sobrien2001-06-06  Jason Merrill  <jason_merrill@redhat.com>
301452284Sobrien
301590075Sobrien	* cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
301690075Sobrien	(struct lang_decl_flags): Lose generate_with_vtable_p.
301790075Sobrien	(BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
301890075Sobrien	* class.c (copy_virtuals): Adjust.
301990075Sobrien	* decl2.c (mark_vtable_entries): Adjust.
302090075Sobrien	* method.c (make_thunk, build_vtable_entry): Adjust.
302190075Sobrien	* class.c (update_vtable_entry_for_fn): Only look as far as the
302290075Sobrien	first defining class.
302390075Sobrien	(build_vtbl_initializer): Put nothing in the slot for a function only
302490075Sobrien	defined in a lost primary virtual base.
302590075Sobrien	(add_vcall_offset_vtbl_entries_1): Use the same code for
302690075Sobrien	the lost primary case and the normal case.
302790075Sobrien	(dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
302890075Sobrien	(get_vfield_offset, get_derived_offset): Lose.
302990075Sobrien	(dfs_find_final_overrider): Use look_for_overrides_here.
303090075Sobrien	(get_matching_virtual): New fn.
303190075Sobrien	* semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
303290075Sobrien	not BV_VCALL_INDEX.
303390075Sobrien	* search.c (look_for_overrides_here): Split out from...
303490075Sobrien	(look_for_overrides_r): Here.
303552284Sobrien
303690075Sobrien	* class.c (find_final_overrider): Return error_mark_node on error.
303752284Sobrien
303890075Sobrien	* decl2.c (key_method): #if 0 accidental change.
303952284Sobrien
304090075Sobrien2001-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
304152284Sobrien
304290075Sobrien	* call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
304390075Sobrien	(build_over_call): Likewise.
304490075Sobrien	* decl.c (grokparms): Likewise.
304590075Sobrien	* pt.c (tsubst_decl): Likewise.
304690075Sobrien	* typeck.c (convert_arguments): Likewise.
304752284Sobrien
304890075Sobrien2001-06-05  Mark Mitchell  <mark@codesourcery.com>
304952284Sobrien
305090075Sobrien	* semantics.c (begin_class_definition): Robustify.
305152284Sobrien
305290075Sobrien	* pt.c (instantiate_decl): Tell the repository code about the
305390075Sobrien	clones, not the cloned functions.
305490075Sobrien	* repo.c (repo_template_used): Explicitly instantiate the cloned
305590075Sobrien	function, not the clones.
305652284Sobrien
305790075Sobrien2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
305852284Sobrien
305990075Sobrien	* call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
306090075Sobrien	ICS_BAD_FLAG on created conversion.
306190075Sobrien	(compare_ics): Break out rank.
306252284Sobrien
306390075Sobrien2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
306452284Sobrien
306590075Sobrien	* decl.c (xref_tag): Remove extraneous %s on dependent name
306690075Sobrien	lookup warning.
306752284Sobrien
306890075Sobrien2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
306952284Sobrien
307090075Sobrien	* class.c (layout_vtable_decl): Fix off by one error on
307190075Sobrien	build_index_type.
307290075Sobrien	(build_vtt): Likewise.
307390075Sobrien	(build_ctor_vtbl_group): Likewise.
307452284Sobrien
307590075Sobrien2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
307652284Sobrien
307790075Sobrien	* class.c (maybe_indent_hierarchy): New function.
307890075Sobrien	(dump_class_hierarchy_r): Add flags. Dump extra binfo
307990075Sobrien	information, if enabled. Use maybe_indent_hierarchy. Adjust
308090075Sobrien	output format.
308190075Sobrien	(dump_class_hierarchy): Adjust prototype. Adjust output format.
308290075Sobrien	(dump_array, dump_vtable, dump_vtt): New functions.
308390075Sobrien	(finish_struct_1): Adjust hierarchy dumping.
308490075Sobrien	(initialize_vtable): Call dump_vtable.
308590075Sobrien	(build_vtt): Call dump_vtt.
308690075Sobrien	(build_ctor_vtbl_group): Call dump_vtable.
308790075Sobrien	* decl2.c (flag_dump_class_layout): Remove.
308890075Sobrien	(cxx_decode_option): Remove dump translation unit
308990075Sobrien	and dump class hierarchy check. Call dump_switch_p.
309090075Sobrien	(finish_file): Adjust dumping.
309190075Sobrien	(dump.c): Only dump base classes if not TDF_SLIM.
309290075Sobrien	Only dump namespace members if not TDF_SLIM.
309390075Sobrien	* optimize.c (dump_function): New function.
309490075Sobrien	(optimize_function): Call dump_function.
309590075Sobrien	* semantics.c (expand_body): Use dump_enabled_p.
309652284Sobrien
309790075Sobrien2001-06-01  Nathan Sidwell  <nathan@codesourcery.com>
309852284Sobrien
309990075Sobrien	PR g++/2936
310090075Sobrien	Part missed from first commit
310190075Sobrien	* decl2.c (finish_anon_union): Copy context.
310252284Sobrien
310390075Sobrien2001-05-30  Nathan Sidwell  <nathan@codesourcery.com>
310452284Sobrien
310590075Sobrien	PR g++/2936
310690075Sobrien	* optimize.c (remap_decl): Remap anonymous aggregate members too.
310752284Sobrien
310890075Sobrien2001-05-26  Nathan Sidwell  <nathan@codesourcery.com>
310952284Sobrien
311090075Sobrien	PR g++/2823
311190075Sobrien	* semantics.c (expand_body): Don't optimize thunks.
311252284Sobrien
311390075Sobrien2001-05-25  Sam TH  <sam@uchicago.edu>
311452284Sobrien
311590075Sobrien	* cp-tree.h lex.h: Fix header include guards.
311652284Sobrien
311790075Sobrien2001-05-25  Mark Mitchell <mark@codesourcery.com>
311852284Sobrien
311990075Sobrien	* decl.c (init_decl_processing): Tweak.
312052284Sobrien
312190075Sobrien2001-05-24  Mark Mitchell  <mark@codesourcery.com>
312252284Sobrien
312390075Sobrien	* decl.c (duplicate_decls): Tidy.
312490075Sobrien	(init_decl_processing): Always set flag_no_builtin.
312552284Sobrien
312690075Sobrien2001-05-24  Nathan Sidwell  <nathan@codesourcery.com>
312752284Sobrien
312890075Sobrien	PR c++/2184
312990075Sobrien	* decl2.c (do_local_using_decl): Push the decls, even in a
313090075Sobrien	template.
313152284Sobrien
313290075Sobrien2001-05-22  Mark Mitchell  <mark@codesourcery.com>
313352284Sobrien
313490075Sobrien	* optimize.c (initialize_inlined_parameters): Don't set
313590075Sobrien	TREE_READONLY for a VAR_DECL taking the place of an inlined
313690075Sobrien	PARM_DECL.
313752284Sobrien
313890075Sobrien2001-05-22  Jason Merrill  <jason_merrill@redhat.com>
313952284Sobrien
314090075Sobrien	* class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
314190075Sobrien	* tree.c (cp_valid_lang_attribute): Warn about use of com_interface
314290075Sobrien	attribute.
314352284Sobrien
314490075Sobrien2001-05-22  Joseph S. Myers  <jsm28@cam.ac.uk>
314552284Sobrien
314690075Sobrien	* parse.y: Refer to compound literals as such, not as
314790075Sobrien	constructor-expressions.
314852284Sobrien
314990075Sobrien2001-05-21  Mark Mitchell  <mark@codesourcery.com>
315052284Sobrien
315190075Sobrien	* call.c (build_op_delete_call): Ignore exception-specifications
315290075Sobrien	when looking for matching delete operators.
315390075Sobrien	* init.c (build_new_1): Compute whether or not the allocation
315490075Sobrien	function used is a placement allocation function or not, and
315590075Sobrien	communicate this information to build_op_delete_call.
315652284Sobrien
315790075Sobrien2001-05-21  Jason Merrill  <jason_merrill@redhat.com>
315852284Sobrien
315990075Sobrien	* class.c (build_vtable_entry_ref): Lose vtbl parm.  Fix for new abi.
316090075Sobrien	(build_vtbl_ref): Adjust.
316190075Sobrien	(dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
316290075Sobrien	* decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
316390075Sobrien	Re-add vtable-gc.
316490075Sobrien	(unsupported_options): Correspondingly.
316552284Sobrien
316690075Sobrien	* decl2.c (maybe_make_one_only): Check flag_weak, not
316790075Sobrien	supports_one_only().
316852284Sobrien
316990075Sobrien	* cp-tree.def (START_CATCH_STMT): Lose.
317090075Sobrien	* dump.c (cp_dump_tree): Don't dump it.  Do dump HANDLER_PARMS.
317190075Sobrien	* tree.c (cp_statement_code_p): Don't case it.
317290075Sobrien	* semantics.c (cp_expand_stmt): Likewise.
317390075Sobrien	* cp-tree.h (START_CATCH_TYPE): Lose.
317490075Sobrien	(HANDLER_TYPE): New.
317590075Sobrien	* except.c (expand_start_catch_block): Don't start any blocks.
317690075Sobrien	Return the type.
317790075Sobrien	(expand_end_catch_block): Don't end any blocks.
317890075Sobrien	* parse.y (handler): Don't pass anything from finish_handler_parms
317990075Sobrien	to finish_handler.
318090075Sobrien	* pt.c (tsubst_expr): Likewise.
318190075Sobrien	* semantics.c (begin_handler): Call note_level_for_catch here.
318290075Sobrien	(finish_handler_parms): Don't return anything.
318390075Sobrien	(genrtl_catch_block, begin_catch_block): Lose.
318490075Sobrien	(genrtl_handler): Call expand_start_catch here.
318552284Sobrien
318690075Sobrien2001-05-18  Jason Merrill  <jason_merrill@redhat.com>
318752284Sobrien
318890075Sobrien	* class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
318990075Sobrien	(get_vtable_decl, build_vtt): Not here.
319052284Sobrien
319190075Sobrien2001-05-20  Nathan Sidwell  <nathan@codesourcery.com>
319252284Sobrien
319390075Sobrien	PR c++/2781
319490075Sobrien	* optimize.c (update_cloned_parm): Copy addressability and other
319590075Sobrien	flags.
319652284Sobrien
319790075Sobrien2001-05-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
319852284Sobrien
319990075Sobrien	* pt.c (determine_specialization): Ignore artificial functions.
320052284Sobrien
320190075Sobrien2001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>
320252284Sobrien
320390075Sobrien	* cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
320490075Sobrien	(C_RID_CODE): Remove.
320590075Sobrien	* lex.c (cxx_init_options): Call set_identifier_size.  Update.
320690075Sobrien	(init_parse): Don't do it here.
320752284Sobrien
320890075Sobrien2001-05-18  Diego Novillo  <dnovillo@redhat.com>
320952284Sobrien
321090075Sobrien	* decl2.c (finish_objects): Use the original SYMBOL_REF from the
321190075Sobrien	function declaration to avoid stripping the symbol's attributes.
321252284Sobrien
321390075Sobrien2001-05-18  Nathan Sidwell  <nathan@codesourcery.com>
321452284Sobrien
321590075Sobrien	* decl.c (pushdecl): Adjust error string.
321690075Sobrien	(xref_tag): Adjust friend class injection warning. Remove the
321790075Sobrien	inherited name from the class shadowed scope.
321852284Sobrien
321990075Sobrien2001-05-17  Mark Mitchell  <mark@codesourcery.com>
322052284Sobrien
322190075Sobrien	* except.c (cp_protect_cleanup_actions): New function.
322290075Sobrien	(init_exception_processing): Don't set protect_cleanup_actions
322390075Sobrien	here.  Do set lang_protect_cleanup_actions.
322452284Sobrien
322590075Sobrien2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
322652284Sobrien
322790075Sobrien	* spew.c (read_token): Call yyerror on all unexpected tokens.
322852284Sobrien
322990075Sobrien2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
323052284Sobrien
323190075Sobrien	* init.c (member_init_ok_or_else): Take a tree rather than
323290075Sobrien	string for name.
323390075Sobrien	(expand_member_init): Adjust.
323452284Sobrien
323590075Sobrien2001-05-14  Nick Clifton  <nickc@cambridge.redhat.com>
323652284Sobrien
323790075Sobrien	* decl.c (duplicate_decls): Suppress warning about duplicate
323890075Sobrien	decls if the first decl is a friend.
323952284Sobrien
324090075Sobrien2001-05-12  Zack Weinberg  <zackw@stanford.edu>
324152284Sobrien
324290075Sobrien	* except.c (choose_personality_routine): Export.  Add
324390075Sobrien	explanatory comment.  Take an enum languages, not a boolean.
324490075Sobrien	(initialize_handler_parm): Adjust to match.
324590075Sobrien	* cp-tree.h: Prototype choose_personality_routine.
324690075Sobrien	* lex.c (handle_pragma_java_exceptions): New function.
324790075Sobrien	(init_cp_pragma): Register #pragma GCC java_exceptions.
324852284Sobrien
324990075Sobrien2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
325052284Sobrien
325190075Sobrien	* method.c (build_mangled_C99_name): Remove unused prototype.
325252284Sobrien
325390075Sobrien2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
325452284Sobrien
325590075Sobrien	* cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
325690075Sobrien	* typeck.c (get_member_function_from_ptrfunc,
325790075Sobrien	build_ptrmemfunc, expand_ptrmemfunc_cst): Take
325890075Sobrien	TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
325952284Sobrien
326090075Sobrien	Reverted Geoff Keating's 2001-05-03's patch.
326152284Sobrien
326290075Sobrien2001-05-11  Ira Ruben	<ira@apple.com>
326352284Sobrien
326490075Sobrien	* cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
326552284Sobrien
326690075Sobrien2001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
326752284Sobrien
326890075Sobrien	* cp-tree.h (finish_label_expr, lookup_label): Delete.
326990075Sobrien	* parse.y: Update for '&&'; don't issue warning here.
327090075Sobrien	* semantics.c (finish_label_expr): Delete.
327152284Sobrien
327290075Sobrien2001-05-07  Mark Mitchell  <mark@codesourcery.com>
327352284Sobrien
327490075Sobrien	* splay-tree.h (splay_tree_max): New function.
327590075Sobrien	(splay_tree_min): Likewise.
327652284Sobrien
327790075Sobrien2001-05-03  Geoffrey Keating  <geoffk@redhat.com>
327852284Sobrien
327990075Sobrien	* cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
328090075Sobrien	(pfn_vflag_identifier): Define.
328190075Sobrien	Update comment about layout of pointer functions.
328290075Sobrien	(build_ptrmemfunc1): Update prototype.
328390075Sobrien	(expand_ptrmemfunc_cst): Update prototype.
328490075Sobrien	* decl.c (initialize_predefined_identifiers): Initialize
328590075Sobrien	pfn_vflag_identifier.
328690075Sobrien	(build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
328790075Sobrien	an extra field to the type.
328890075Sobrien	* expr.c (cplus_expand_constant): Pass 'flag' between
328990075Sobrien	expand_ptrmemfunc_cst and build_ptrmemfunc1.
329090075Sobrien	* typeck.c (get_member_function_from_ptrfunc): When
329190075Sobrien	FUNCTION_BOUNDARY < 16, look at additional field to determine
329290075Sobrien	if a pointer-to-member is a real pointer or a vtable offset.
329390075Sobrien	(build_ptrmemfunc1): Add new parameter to contain extra field.
329490075Sobrien	(build_ptrmemfunc): Pass the extra field around.
329590075Sobrien	(expand_ptrmemfunc_cst): Add new parameter to return extra field.
329690075Sobrien	(pfn_from_ptrmemfunc): Ignore the extra field.
329752284Sobrien
329890075Sobrien2001-05-03  Mark Mitchell  <mark@codesourcery.com>
329952284Sobrien
330090075Sobrien	* cp-tree.h (flag_inline_trees): Update documentation.
330190075Sobrien	* decl.c (init_decl_processing): Adjust handling of
330290075Sobrien	flag_inline_functions and flag_inline_trees to support -O3.
330390075Sobrien	(grokfndecl): Set DECL_INLINE on all functions if that's what
330490075Sobrien	the user requested.
330590075Sobrien	(save_function_data): Clear DECL_INLINE in
330690075Sobrien	current_function_cannot_inline is non-NULL.
330790075Sobrien	* decl2.c (flag_inline_trees): Update documentation.
330852284Sobrien
330990075Sobrien2001-05-03  Nathan Sidwell  <nathan@codesourcery.com>
331052284Sobrien
331190075Sobrien	* dump.c (cp_dump_tree, USING_STMT case): New case.
331290075Sobrien	* tree.c (cp_statement_code_p): Add USING_STMT.
331390075Sobrien	* decl2.c (do_using_directive): Add the using directive statement.
331452284Sobrien
331590075Sobrien	* tree.c (walk_tree): Reformat an if block.
331652284Sobrien
331790075Sobrien2001-05-02  Mark Mitchell  <mark@codesourcery.com>
331852284Sobrien
331990075Sobrien	* decl.c (compute_array_index_type): Don't try to do anything with
332090075Sobrien	the indices when processing a template.
332152284Sobrien
332290075Sobrien2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
332352284Sobrien
332490075Sobrien	* call.c: NULL_PTR -> NULL.
332590075Sobrien	* class.c: Likewise.
332690075Sobrien	* cvt.c: Likewise.
332790075Sobrien	* decl.c: Likewise.
332890075Sobrien	* decl2.c: Likewise.
332990075Sobrien	* except.c: Likewise.
333090075Sobrien	* init.c: Likewise.
333190075Sobrien	* rtti.c: Likewise.
333290075Sobrien	* search.c: Likewise.
333390075Sobrien	* tree.c: Likewise.
333490075Sobrien	* typeck.c: Likewise.
333590075Sobrien	* typeck2.c: Likewise.
333652284Sobrien
333790075Sobrien2001-05-02  Mark Mitchell  <mark@codesourcery.com>
333852284Sobrien
333990075Sobrien	* decl2.c (do_using_directive): Revert previous patch.
334052284Sobrien
334190075Sobrien2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
334252284Sobrien
334390075Sobrien	* cp-tree.def (USING_STMT): New statement node.
334490075Sobrien	* cp-tree.h (USING_STMT_NAMESPACE): New macro.
334590075Sobrien	* decl2.c (do_using_directive): Add USING_STMT to statement
334690075Sobrien	tree. Don't emit errors when processing template decl.
334790075Sobrien	* pt.c (tsubst_expr, USING_STMT case): New case.
334890075Sobrien	* semantics.c (cp_expand_stmt, USING_STMT case): New case.
334952284Sobrien
335090075Sobrien2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
335152284Sobrien
335290075Sobrien	* call.c (build_new_op): Convert args from reference here.
335390075Sobrien	(build_conditional_expr): Don't convert here.
335452284Sobrien
335590075Sobrien2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
335652284Sobrien
335790075Sobrien	* spew.c (last_token_id): New static variable.
335890075Sobrien	(read_token): Set it here.
335990075Sobrien	(yyerror): Use it here.
336052284Sobrien
336190075Sobrien2001-04-30  Richard Henderson  <rth@redhat.com>
336252284Sobrien
336390075Sobrien	* cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
336490075Sobrien	* decl.c: Likewise.
336552284Sobrien
336690075Sobrien2001-04-30  Mark Mitchell  <mark@codesourcery.com>
336752284Sobrien
336890075Sobrien	* gxxint.texi: Remove.
336990075Sobrien	* Make-lang.in: Remove all traces of gxxint.texi.
337052284Sobrien
337190075SobrienMon Apr 30 16:14:10 2001  Mark P Mitchell  <mark@codesourcery.com>
337252284Sobrien
337390075Sobrien	* decl2.c (start_static_initialization_or_destruction): Correct
337490075Sobrien	logic to handle the -fno-use-cxa-atexit case.
337552284Sobrien
337690075Sobrien2001-04-30  Mark Mitchell  <mark@codesourcery.com>
337752284Sobrien
337890075Sobrien	* optimize.c (update_cloned_parm): New function.
337990075Sobrien	(maybe_clone_body): Use it.  Update the `this' parameter too.
338052284Sobrien
338190075Sobrien2001-04-29  Joseph S. Myers  <jsm28@cam.ac.uk>
338252284Sobrien
338390075Sobrien	* decl2.c (unsupported_options): Add new-abi.
338490075Sobrien	* lang-options.h: Remove no longer supported options.
338552284Sobrien
338690075Sobrien2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
338752284Sobrien
338890075Sobrien	* except.c (can_convert_eh): Don't check template parms,
338990075Sobrien	typename types etc.
339052284Sobrien
339190075Sobrien2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
339252284Sobrien
339390075Sobrien	* optimize.c (maybe_clone_body): Copy parameter names and locations.
339452284Sobrien
339590075Sobrien2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
339652284Sobrien
339790075Sobrien	* cp-tree.h (adjust_clone_args): Prototype new function.
339890075Sobrien	* class.c (adjust_clone_args): New function.
339990075Sobrien	* decl.c (start_function): Call it for in charge ctors.
340052284Sobrien
340190075Sobrien2001-04-26  Mark Mitchell  <mark@codesourcery.com>
340252284Sobrien
340390075Sobrien	* method.c (use_thunk): Make sure that thunks really are emitted
340490075Sobrien	when requested.
340552284Sobrien
340690075Sobrien2001-04-26  Nathan Sidwell <nathan@codesourcery.com>
340752284Sobrien
340890075Sobrien	* mangle.c (write_chars): New macro.
340990075Sobrien	(hwint_to_ascii): New function
341090075Sobrien	(write_number): Use it.
341190075Sobrien	(write_integer_cst): Deal with really big numbers.
341252284Sobrien
341390075Sobrien2001-04-25  Mark Mitchell  <mark@codesourcery.com>
341452284Sobrien
341590075Sobrien	* optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
341690075Sobrien	the clone.
341752284Sobrien
341890075Sobrien2001-04-25  Nathan Sidwell  <nathan@codesourcery.com>
341952284Sobrien
342090075Sobrien	* decl.c (grokdeclarator): Set context of namespace scope
342190075Sobrien	TYPE_DECLS.
342252284Sobrien
342390075Sobrien2001-04-24  Zack Weinberg  <zackw@stanford.edu>
342452284Sobrien
342590075Sobrien	* cp/optimize.c: Include hashtab.h.
342690075Sobrien	(struct inline_data): Add tree_pruner.
342790075Sobrien	(expand_call_inline, expand_calls_inline): Use it when calling
342890075Sobrien	walk_tree.
342990075Sobrien	(optimize_function): Initialize and free tree_pruner.
343052284Sobrien
343190075Sobrien2001-04-24  Nathan Sidwell <nathan@codesourcery.com>
343252284Sobrien
343390075Sobrien	Lazy __FUNCTION__ generation.
343490075Sobrien	* cp-tree.def (FUNCTION_NAME): Remove.
343590075Sobrien	* cp-tree.h (function_name_declared_p): Remove.
343690075Sobrien	(cp_fname_init): Prototype.
343790075Sobrien	* decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
343890075Sobrien	don't call declare_function_name. Call start_fname_decls.
343990075Sobrien	(cp_make_fname_decl): Adjust parameters. Generate the name. Don't
344090075Sobrien	clobber the line number.
344190075Sobrien	(cp_fname_init): New function.
344290075Sobrien	(start_function): Call start_fname_decls.
344390075Sobrien	(finish_function): Call finish_fname_decls.
344490075Sobrien	* lex.c (reswords): Add slots for __FUNCTION__ et al.
344590075Sobrien	(rid_to_yy): Add mappings for __FUNCTION__ et al.
344690075Sobrien	* optimize.c (maybe_clone_body): Remove function_name_declared_p.
344790075Sobrien	* parse.y (VAR_FUNC_NAME): New token.
344890075Sobrien	(primary): Add VAR_FUNC_NAME.
344990075Sobrien	* pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
345090075Sobrien	generation.
345190075Sobrien	(tsubst, FUNCTION_NAME case): Remove.
345290075Sobrien	(tsubst_copy, FUNCTION_NAME case): Remove.
345390075Sobrien	(tsubst_expr, DECL_STMT case): Be careful with a
345490075Sobrien	DECL_PRETTY_FUNCTION_P.
345590075Sobrien	(instantiate_decl): Remove function_name_declared_p.
345690075Sobrien	* semantics.c (begin_compound_statement): Don't call
345790075Sobrien	declare_function_name here.
345890075Sobrien	(setup_vtbl_ptr). Don't save & restore function_name_declared_p.
345990075Sobrien	(finish_translation_unit): Call finish_fname_decls.
346090075Sobrien	(expand_body): Remove function_name_declared_p.
346190075Sobrien	* typeck2.c (digest_init): Allow any ERROR_MARK.
346252284Sobrien
346390075Sobrien2001-04-24  Nathan Sidwell  <nathan@codesourcery.com>
346452284Sobrien
346590075Sobrien	* pt.c (tsubst_decl): Use VOID_TYPE_P.
346690075Sobrien	* semantics.c: Fix some typos.
346752284Sobrien
346890075Sobrien2001-04-23  Phil Edwards  <pme@sources.redhat.com>
346952284Sobrien
347090075Sobrien	* cp/decl2.c (flag_honor_std):  Always initialize to 1.
347152284Sobrien
347290075Sobrien2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
347352284Sobrien
347490075Sobrien	* xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
347552284Sobrien
347690075Sobrien2001-04-23  Jason Merrill  <jason_merrill@redhat.com>
347752284Sobrien
347890075Sobrien	* except.c (build_throw): Wrap the initialization of the exception
347990075Sobrien	object in a MUST_NOT_THROW_EXPR.
348090075Sobrien	(do_free_exception): #if 0.
348152284Sobrien
348290075Sobrien2001-04-20  Mark Mitchell  <mark@codesourcery.com>
348352284Sobrien
348490075Sobrien	* cp-tree.h (finish_enum): Change prototype.
348590075Sobrien	* decl.c (finish_enum): Reorganize.
348690075Sobrien	* parse.y (structsp): Adjust calls to finish_enum.
348752284Sobrien
348890075Sobrien2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
348952284Sobrien
349090075Sobrien	* tree.c (cp_tree_equal): Adjust final switch formatting. Add
349190075Sobrien	't' case.
349252284Sobrien
349390075Sobrien2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
349452284Sobrien
349590075Sobrien	* class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
349690075Sobrien	(layout_empty_base): Return at end flag.
349790075Sobrien	(build_base_field): Likewise.
349890075Sobrien	(build_base_fields): Likewise.
349990075Sobrien	(layout_virtual_bases): Don't add 1 to eoc value.
350090075Sobrien	(end_of_class): Use full size for empty bases.
350190075Sobrien	(layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
350290075Sobrien	empty bases. Don't add 1 to eoc value. Only add trailing padding
350390075Sobrien	if we're an empty class with no empty bases.
350490075Sobrien	(dump_class_hierarchy): Dump size and alignment.
350552284Sobrien
350690075Sobrien2001-04-20  Jakub Jelinek  <jakub@redhat.com>
350752284Sobrien
350890075Sobrien	* call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
350990075Sobrien	ICS_BAD_FLAG.
351052284Sobrien
351190075Sobrien2001-04-20  Jakub Jelinek  <jakub@redhat.com>
351252284Sobrien
351390075Sobrien	* search.c (lookup_field_r): If looking for type and non-TYPE_DECL
351490075Sobrien	is found, look first if name does not match the structure name.
351552284Sobrien
351690075Sobrien2001-04-19  Mark Mitchell  <mark@codesourcery.com>
351752284Sobrien
351890075Sobrien	* cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
351990075Sobrien	set.
352090075Sobrien	(SET_DECL_LANGUAGE): New macro.
352190075Sobrien	* decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
352290075Sobrien	(pushdecl): Likewise.
352390075Sobrien	(build_library_fn_1): Likewise.
352490075Sobrien	(build_cp_library_fn): Likewise.
352590075Sobrien	(grokfndecl): Likewise.
352690075Sobrien	(grokvardecl): Mark `extern "C"' variables as having C linkage.
352790075Sobrien	* decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
352890075Sobrien	* lex.c (retrofit_lang_decl): Likewise.
352990075Sobrien	* mangle.c (mangle_decl_string): Don't mangle the names of
353090075Sobrien	variables declared with C language linkage.
353190075Sobrien	* semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
353252284Sobrien
353390075Sobrien2001-04-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
353452284Sobrien
353590075Sobrien	* semantics.c (simplify_aggr_init_exprs_r): Don't restore
353690075Sobrien	flag_access_control from uninitialized storage.
353752284Sobrien
353890075Sobrien2001-04-15  Mark Mitchell  <mark@codesourcery.com>
353918334Speter
354090075Sobrien	* cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
354190075Sobrien	* mangle.c (write_pointer_to_member_type): Fix mangling of
354290075Sobrien	pointers to cv-qualified member function types.
354318334Speter
354490075Sobrien	* init.c (build_delete): Create a SAVE_EXPR for the address if
354590075Sobrien	we're going to use it more than once.
354652284Sobrien
354790075Sobrien2001-04-13  Mark Mitchell  <mark@codesourcery.com>
354852284Sobrien
354990075Sobrien	* cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
355090075Sobrien	(expand_ptremfunc_cst): Change prototype.
355190075Sobrien	(delta2_from_ptrmemfunc): Remove.
355290075Sobrien	* expr.c (cplus_expand_constant): Adjust call to
355390075Sobrien	expand_ptrmemfunc_cst.
355490075Sobrien	* typeck.c (build_ptrmemfunc1): Simplify.
355590075Sobrien	(build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
355690075Sobrien	results in a constant.
355790075Sobrien	(expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
355890075Sobrien	(delta2_from_ptrmemfunc): Remove.
355990075Sobrien	(pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
356052284Sobrien
356190075Sobrien2001-04-12  Jason Merrill  <jason_merrill@redhat.com>
356252284Sobrien
356390075Sobrien	* cp-tree.h (decl_namespace_list): New macro.
356490075Sobrien	(struct saved_scope): Add decl_ns_list.
356590075Sobrien	* decl.c (mark_saved_scope): Mark it.
356690075Sobrien	* decl2.c: Lose static decl_namespace_list.
356790075Sobrien	(init_decl2): Don't save it.
356852284Sobrien
356990075Sobrien2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
357052284Sobrien
357190075Sobrien	* cp-tree.h (warn_return_type, yylex): Delete redundant
357290075Sobrien	declarations.
357352284Sobrien
357490075Sobrien	* decl.c (current_class_depth, global_namespace): Likewise.
357552284Sobrien
357690075Sobrien	* decl2.c (current_class_depth, flag_gnu_xref): Likewise
357752284Sobrien
357890075Sobrien	* repo.c (flag_use_repository): Likewise.
357952284Sobrien
358090075Sobrien2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
358152284Sobrien
358290075Sobrien	* cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
358390075Sobrien	set_block, pushdecl, getdecls, gettags, init_decl_processing,
358490075Sobrien	maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
358590075Sobrien	lvalue_or_else, print_lang_statistics, comp_target_types,
358690075Sobrien	unsigned_type, signed_type, signed_or_unsigned_type,
358790075Sobrien	build_function_call, mark_addressable, incomplete_type_error):
358890075Sobrien	Delete redundant declarations.
358952284Sobrien
359090075Sobrien2001-04-11  Jason Merrill  <jason_merrill@redhat.com>
359152284Sobrien
359290075Sobrien	* cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
359390075Sobrien	(TYPE_ANONYMOUS_P): New macro.
359490075Sobrien	(TAGGED_TYPE_P): New macro.
359590075Sobrien	* decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
359690075Sobrien	(grokfndecl, grokvardecl, grokdeclarator): Likewise.
359790075Sobrien	* tree.c (no_linkage_helper): Likewise.
359890075Sobrien	* semantics.c (begin_class_definition): Likewise.
359990075Sobrien	* pt.c (convert_template_argument): Likewise.
360090075Sobrien	* lex.c (check_for_missing_semicolon): Likewise.
360152284Sobrien
360290075Sobrien2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
360352284Sobrien
360490075Sobrien	* class.c (dfs_unshared_virtual_bases): New function.
360590075Sobrien	(mark_primary_bases): Call it.
360690075Sobrien	(check_bases): Ignore virtual bases when determining
360790075Sobrien	nearly-emptiness.
360852284Sobrien
360990075Sobrien2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
361052284Sobrien
361190075Sobrien	* method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
361218334Speter
361390075Sobrien2001-04-11  Mark Mitchell  <mark@codesourcery.com>
361418334Speter
361590075Sobrien	* optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
361690075Sobrien	cloned function to the clone.
361718334Speter
361890075Sobrien2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
361918334Speter
362090075Sobrien	* Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
362152284Sobrien
362290075Sobrien	* semantics.c: Include expr.h.
362352284Sobrien
362490075Sobrien2001-04-11  Nathan Sidwell  <nathan@codesourcery.com>
362552284Sobrien
362690075Sobrien	* method.c (implicitly_declare_fn): Commonize code for copy ctor
362790075Sobrien	and assignment op. Set TREE_USED for parameter.
362852284Sobrien
362990075Sobrien2001-04-10  Mark Mitchell  <mark@codesourcery.com>
363052284Sobrien
363190075Sobrien	* class.c (find_final_overrider_data): Add `candidates'.
363290075Sobrien	(dfs_find_final_overrider): Don't issue error messages
363390075Sobrien	prematurely.
363490075Sobrien	(find_final_overrider): Issue error messages here.
363590075Sobrien	(build_base_field): Don't warn about amgibuous direct bases here.
363690075Sobrien	(warn_about_ambiguous_direct_bases): New function.
363790075Sobrien	(layout_class_type): Use it.
363818334Speter
363990075Sobrien2001-04-10  Richard Henderson  <rth@redhat.com>
364018334Speter
364190075Sobrien	* typeck.c (build_array_ref): Push the array reference inside
364290075Sobrien	COMPOUND_EXPR and COND_EXPR.
364352284Sobrien
364490075Sobrien2001-04-05  Mark Mitchell  <mark@codesourcery.com>
364552284Sobrien
364690075Sobrien	* cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
364790075Sobrien	* decl.c (duplicate_decls): Adjust accordingly.
364890075Sobrien	(maybe_commonize_var): Likewise.
364990075Sobrien	(grokfndecl): Likewise.
365090075Sobrien	(start_function): Likewise.
365190075Sobrien	(start_method): Likewise.
365290075Sobrien	* decl2.c (key_method): Likewise.
365390075Sobrien	(import_export_decl): Likewise.
365490075Sobrien	* method.c (implicitly_declare_fn): Likewise.
365590075Sobrien	* optimize.c (maybe_clone_body): Likewise.
365652284Sobrien
365790075Sobrien2001-04-05  Benjamin Kosnik  <bkoz@redhat.com>
365852284Sobrien
365990075Sobrien	* lang-specs.h: Add __DEPRECATED.
366052284Sobrien
366190075SobrienThu Apr  5 16:54:29 2001  J"orn Rennecke <amylaar@redhat.com>
366252284Sobrien
366390075Sobrien	* search.c (get_dynamic_cast_base_type): When building a new
366490075Sobrien	constant, set its type to ssizetype.
366552284Sobrien
366690075Sobrien2001-04-04  Jakub Jelinek  <jakub@redhat.com>
366752284Sobrien
366890075Sobrien	* optimize.c (expand_call_inline): Only add newly inlined statements
366990075Sobrien	into inlined_stmts.
367052284Sobrien
367190075Sobrien2001-04-03  Mark Mitchell  <mark@codesourcery.com>
367252284Sobrien
367390075Sobrien	* cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
367490075Sobrien	(OPERATOR_FORMAT): Likewise.
367590075Sobrien	(OPERATOR_TYPENAME_FORMAT): Likewise.
367690075Sobrien	* operators.def: Remove old name-mangling information.
367790075Sobrien	* decl.c (grok_op_properties): Adjust accordingly.
367890075Sobrien	* lex.c (init_operators): Likewise.
367990075Sobrien	* rtti.c (get_tinfo_decl): Issue error messages about types that
368090075Sobrien	have variable size.
368152284Sobrien
368290075Sobrien2001-04-03  Mark Mitchell  <mark@codesourcery.com>
368352284Sobrien
368490075Sobrien	* decl2.c (import_export_decl): Don't call import_export_class
368590075Sobrien	when processing an inline member function.
368690075Sobrien	* semantics.c (expand_body): Call import_export_decl before
368790075Sobrien	emitting inline functions.
368852284Sobrien
368990075Sobrien2001-03-28  Richard Henderson  <rth@redhat.com>
369052284Sobrien
369190075Sobrien	IA-64 ABI Exception Handling:
369290075Sobrien	* cp-tree.def (EH_SPEC_BLOCK): New.
369390075Sobrien	(MUST_NOT_THROW_EXPR): New.
369490075Sobrien	* cp-tree.h: Update changed function declarations.
369590075Sobrien	(CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
369690075Sobrien	(CPTI_CALL_UNEXPECTED): New.
369790075Sobrien	(struct cp_language_function): Rename x_eh_spec_try_block
369890075Sobrien	to x_eh_spec_block.
369990075Sobrien	(EH_SPEC_STMTS, EH_SPEC_RAISES): New.
370090075Sobrien	* decl.c (current_binding_level): If no current function
370190075Sobrien	bindings, revert to scope_chain.
370290075Sobrien	(initialize_predefined_identifiers): Remove __cp_push_exception.
370390075Sobrien	(store_parm_decls): Use begin_eh_spec_block.
370490075Sobrien	(finish_function): Use finish_eh_spec_block.
370590075Sobrien	(mark_lang_function): Update for name changes.
370690075Sobrien	* decl2.c (finish_file): No mark_all_runtime_matches.
370790075Sobrien	* dump.c (cp_dump_tree): Handle new tree codes.
370890075Sobrien	* error.c (dump_expr) [BIND_EXPR]: Fix typo.
370990075Sobrien	* except.c (catch_language_init, catch_language): Remove.
371090075Sobrien	(init_exception_processing): Don't set language code.
371190075Sobrien	Initialize call_unexpected_node, protect_cleanup_actions,
371290075Sobrien	eh_personality_libfunc, lang_eh_runtime_type.
371390075Sobrien	(call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
371490075Sobrien	(get_eh_type, get_eh_caught, get_eh_handlers): Remove.
371590075Sobrien	(prepare_eh_type): Split out type canonicalizations ...
371690075Sobrien	(build_eh_type_type): ... from here.
371790075Sobrien	(build_eh_type_type_ref): Remove.
371890075Sobrien	(mark_all_runtime_matches): Remove.
371990075Sobrien	(build_exc_ptr): New.
372090075Sobrien	(do_begin_catch, do_end_catch): New.
372190075Sobrien	(do_pop_exception): Remove.
372290075Sobrien	(build_terminate_handler): Remove.
372390075Sobrien	(choose_personality_routine): Split out language choice from ...
372490075Sobrien	(initialize_handler_parm): ... here.
372590075Sobrien	Use MUST_NOT_THROW_EXPR.
372690075Sobrien	(expand_start_catch_block): Use do_begin_catch.  Simplify Java
372790075Sobrien	exception object handling.
372890075Sobrien	(expand_start_eh_spec, expand_end_eh_spec): Remove.
372990075Sobrien	(expand_exception_blocks, alloc_eh_object): Remove.
373090075Sobrien	(begin_eh_spec_block, finish_eh_spec_block): New.
373190075Sobrien	(do_allocate_exception, do_free_exception): New.
373290075Sobrien	(expand_throw): Merge into ...
373390075Sobrien	(build_throw): ... here.  Update for abi.
373490075Sobrien	* expr.c (cplus_expand_expr): No expand_internal_throw.
373590075Sobrien	Handle MUST_NOT_THROW_EXPR.
373690075Sobrien	* pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
373790075Sobrien	* semantics.c (*) Update for except.h name changes.
373890075Sobrien	(genrtl_try_block): No protect_with_terminate.
373990075Sobrien	(genrtl_eh_spec_block): New.
374090075Sobrien	(genrtl_handler): Don't emit the goto here.
374190075Sobrien	(cp_expand_stmt): Handle EH_SPEC_BLOCK.
374290075Sobrien	(genrtl_finish_function): Don't expand_exception_blocks.
374390075Sobrien	* tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
374418334Speter
374590075Sobrien2001-03-28  Richard Henderson  <rth@redhat.com>
374652284Sobrien
374790075Sobrien	* decl.c (struct named_label_list): Rename eh_region to
374890075Sobrien	in_try_scope, add in_catch_scope.
374990075Sobrien	(struct binding_level): Rename eh_region to is_try_scope,
375090075Sobrien	add is_catch_scope.
375190075Sobrien	(note_level_for_try): Rename from note_level_for_eh.
375290075Sobrien	(note_level_for_catch): New.
375390075Sobrien	(poplevel): Copy both is_try_scope and is_catch_scope to
375490075Sobrien	the named_label_list struct.
375590075Sobrien	(check_previous_goto_1): Don't check for catch block via
375690075Sobrien	DECL_ARTIFICIAL; use in_try_scope instead.
375790075Sobrien	(check_goto): Likewise.
375890075Sobrien	* cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
375990075Sobrien	* except.c (expand_start_catch_block): Call note_level_for_catch.
376090075Sobrien	* semantics.c (begin_compound_stmt): Update for note_level_for_try.
376118334Speter
376290075Sobrien2001-03-27  Richard Henderson  <rth@redhat.com>
376352284Sobrien
376490075Sobrien	* except.c: Use USING_SJLJ_EXCEPTIONS instead of
376590075Sobrien	exceptions_via_longjmp.
376652284Sobrien
376790075Sobrien2001-03-27  Phil Edwards  <pme@sources.redhat.com>
376852284Sobrien
376990075Sobrien	* pt.c (check_default_tmpl_args):  Make error messages clearer.
377052284Sobrien
377190075Sobrien2001-03-26  Phil Edwards  <pme@sources.redhat.com>
377252284Sobrien
377390075Sobrien	* error.c:  Also undefine 'A' macro used for cp_printers definition.
377452284Sobrien
377590075Sobrien2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
377652284Sobrien
377790075Sobrien	* Make-lang.in: Depend on $(SYSTEM_H), not system.h.
377852284Sobrien
377990075Sobrien2001-03-26  Mike Yang <yang@research.att.com>
378090075Sobrien	    Mark Mitchell  <mark@codesourcery.com>
378152284Sobrien
378290075Sobrien	* dump.c (dump_access): New function.
378390075Sobrien	(cp_dump_tree): Use it.  Dump basetype information for class
378490075Sobrien	types.
378552284Sobrien
378690075Sobrien2001-03-26  Mark Mitchell  <mark@codesourcery.com>
378752284Sobrien
378890075Sobrien	* Makefile.in (optimize.o): Depend on params.h.
378990075Sobrien	(duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
379090075Sobrien	(init_decl_processing): Set flag_no_inline when doing
379190075Sobrien	inlining-on-trees.
379290075Sobrien	* optimize.c: Include params.h.
379390075Sobrien	(struct inline_data): Improve documentation of FNS.  Add
379490075Sobrien	FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
379590075Sobrien	(INSNS_PER_STMT): New macro.
379690075Sobrien	(remap_block): Use CLONING_P.
379790075Sobrien	(inlinable_function_p): Don't inline big functions.
379890075Sobrien	(expand_call_inline): Keep track of how much inlining we've done.
379990075Sobrien	(optimize_function): Set FIRST_INLINED_FN.
380090075Sobrien	(maybe_clone_body): Set CLONING_P.
380190075Sobrien	* semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
380290075Sobrien	tree nodes.
380390075Sobrien	(genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
380490075Sobrien	rest_of_compilation.  Clear DECL_RTL for local variables
380590075Sobrien	afterwards.
380690075Sobrien	(clear_decl_rtl): New function.
380752284Sobrien
380890075Sobrien2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>
380952284Sobrien
381090075Sobrien	Implement DR 209
381190075Sobrien	* cp-tree.h (skip_type_access_control,
381290075Sobrien	reset_type_access_control): Prototype.
381390075Sobrien	* decl.c (grokdeclarator): Access of friends is not checked.
381490075Sobrien	* parse.y (component_decl_list): Reset type access control.
381590075Sobrien	* semantics.c (decl_type_access_control): Clear
381690075Sobrien	current_type_lookups.
381790075Sobrien	(save_type_access_control): Don't save if not deferring.
381890075Sobrien	(skip_type_access_control, reset_type_access_control): New
381990075Sobrien	functions.
382090075Sobrien	(begin_class_definition): Do type access control for basetypes.
382190075Sobrien	Start deferred access control.
382290075Sobrien	(finish_class_definition): Resume immediate access control if
382390075Sobrien	this is a local class.
382452284Sobrien
382590075Sobrien2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
382652284Sobrien
382790075Sobrien	* class.c (add_method): Use memcpy/memmove, not bcopy.
382852284Sobrien
382990075Sobrien	* decl.c (duplicate_decls): Likewise.
383052284Sobrien
383190075Sobrien2001-03-23  Jakub Jelinek  <jakub@redhat.com>
383252284Sobrien
383390075Sobrien	* mangle.c (write_discriminator): Use `_0' for discriminator 1,
383490075Sobrien	not `_'.
383552284Sobrien
383690075Sobrien2001-03-23  Jakub Jelinek  <jakub@redhat.com>
383718334Speter
383890075Sobrien	* decl.c (local_names): Define.
383990075Sobrien	(push_local_name): New.
384090075Sobrien	(grok_reference_init): Return init if initializing static reference
384190075Sobrien	variable with non-constant instead of emitting it.
384290075Sobrien	Move expand_static_init call to cp_finish_decl.
384390075Sobrien	(layout_var_decl): Call push_local_name.
384490075Sobrien	(maybe_commonize_var): Allow inlining functions even if they have
384590075Sobrien	static local variables, use comdat_linkage for them if flag_weak.
384690075Sobrien	(check_initializer): Call obscure_complex_init if
384790075Sobrien	grok_reference_init returned non-zero.
384890075Sobrien	(save_function_data): Clear x_local_names.
384990075Sobrien	(pop_cp_function_context): Free x_local_names.
385090075Sobrien	(mark_inlined_fns): Remove.
385190075Sobrien	(mark_lang_function): Mark x_local_names.
385290075Sobrien	(lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
385390075Sobrien	Mark inlined_fns as tree, remove call to mark_inlined_fns.
385490075Sobrien	* class.c (alter_access): Ensure DECL_ACCESS is never set if
385590075Sobrien	DECL_DISCRIMINATOR_P.
385690075Sobrien	* cp-tree.h (cp_language_function): Add x_local_names.
385790075Sobrien	(lang_decl_flags): Add discriminator into u2.
385890075Sobrien	(lang_decl_inlined_fns): Remove.
385990075Sobrien	(lang_decl): inlined_fns is now a TREE_VEC.
386090075Sobrien	(DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
386190075Sobrien	* optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
386290075Sobrien	TREE_VEC, not a custom structure.
386390075Sobrien	(optimize_function): Likewise.
386490075Sobrien	* mangle.c (discriminator_for_local_entity): Discriminate among
386590075Sobrien	VAR_DECL local entities.
386690075Sobrien	* search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
386790075Sobrien	is not valid.
386852284Sobrien
386990075Sobrien2001-03-22  Bryce McKinlay  <bryce@albatross.co.nz>
387018334Speter
387190075Sobrien	Add support for Java interface method calls.
387290075Sobrien	* cp-tree.h (struct lang_type): Add java_interface flag.
387390075Sobrien	(TYPE_JAVA_INTERFACE): New macro.
387490075Sobrien	* tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
387590075Sobrien	by setting TYPE_JAVA_INTERFACE.
387690075Sobrien	* call.c (java_iface_lookup_fn): New static.
387790075Sobrien	(build_over_call): If calling a method declared in a
387890075Sobrien	TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
387990075Sobrien	expression which resolves the function address.
388090075Sobrien	(build_java_interface_fn_ref): New function.
388118334Speter
388290075Sobrien2001-03-22  Richard Henderson  <rth@redhat.com>
388352284Sobrien
388490075Sobrien	* Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
388590075Sobrien	* except.c: Don't include it.
388652284Sobrien
388790075Sobrien2001-03-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
388890075Sobrien	    based on an idea from Joe Buck <jbuck@synopsys.com>
388952284Sobrien
389090075Sobrien	* parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
389190075Sobrien	New nonterminals.
389290075Sobrien	(data_def, component_decl): Add reductions to bad_decl.
389352284Sobrien
389490075Sobrien2001-03-22  Jakub Jelinek  <jakub@redhat.com>
389552284Sobrien
389690075Sobrien	* method.c (do_build_assign_ref): Don't use build_modify_expr for
389790075Sobrien	anonymous aggregates, since they don't have assignment operator
389890075Sobrien	method.
389990075Sobrien	* decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
390090075Sobrien	assignment operators for anonymous structure fields.
390152284Sobrien
390290075Sobrien2001-03-21  Jason Merrill  <jason@redhat.com>
390352284Sobrien
390490075Sobrien	* pt.c (instantiate_decl): Abort if we see a member constant
390590075Sobrien	instantiation that doesn't already have its initializer.
390690075Sobrien	Downgrade explicit instantiation without definition to pedwarn.
390752284Sobrien
390890075Sobrien	* cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
390990075Sobrien	* class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
391090075Sobrien	(import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
391152284Sobrien
391290075Sobrien	* cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
391390075Sobrien	(pending_vtables): Remove.
391490075Sobrien	* decl2.c (pending_vtables): Remove.
391590075Sobrien	(import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
391690075Sobrien	CLASSTYPE_VTABLE_NEEDS_WRITING.
391790075Sobrien	(import_export_class): Likewise.
391890075Sobrien	(init_decl2): Don't mark pending_vtables.
391990075Sobrien	* lex.c (handle_pragma_vtable): Just sorry.
392090075Sobrien	* pt.c (instantiate_class_template): Don't mess with
392190075Sobrien	CLASSTYPE_VTABLE_NEEDS_WRITING.
392290075Sobrien	(mark_class_instantiated): Likewise.
392390075Sobrien	* ptree.c (print_lang_type): Don't print it.
392490075Sobrien	* semantics.c (begin_class_definition): Don't set it.
392552284Sobrien
392690075Sobrien	* pt.c (template_tail): Replace with last_pending_template.
392790075Sobrien	(maybe_templates, maybe_template_tail): Remove.
392890075Sobrien	(add_pending_template): Adjust.
392990075Sobrien	(instantiate_pending_templates): Adjust.
393052284Sobrien
393190075Sobrien	* cp-tree.h (struct saved_scope): Remove lang_stack field.
393290075Sobrien	(current_lang_stack): Remove.
393390075Sobrien	* decl.c (maybe_push_to_top_level): Don't initialize it.
393490075Sobrien	(duplicate_decls): Use current_lang_depth.
393590075Sobrien	(xref_basetypes): Likewise.
393690075Sobrien	* class.c (current_lang_depth): New fn.
393790075Sobrien	(push_lang_context): Use more varray functionality.
393890075Sobrien	(pop_lang_context): Likewise.
393952284Sobrien
394090075Sobrien	* error.c (GLOBAL_THING): Always use '__'.
394152284Sobrien
394290075Sobrien2001-03-21  Mark Mitchell  <mark@codesourcery.com>
394352284Sobrien
394490075Sobrien	* class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
394552284Sobrien
394690075Sobrien	* mangle.c (mangle_decl_string): Mangle the names of overloaded
394790075Sobrien	operators, even when they have `extern "C"' linkage.
394852284Sobrien
394990075Sobrien2001-03-19  Mark Mitchell  <mark@codesourcery.com>
395052284Sobrien
395190075Sobrien	* class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
395290075Sobrien	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
395390075Sobrien	where it's not necessary.
395490075Sobrien	(add_method): Remove optimization involving comparison of
395590075Sobrien	DECL_ASSEMBLER_NAME.
395690075Sobrien	(build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
395790075Sobrien	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
395890075Sobrien	where it's not necessary.
395990075Sobrien	(check_methods): Likewise.
396090075Sobrien	(build_clone): Likewise.
396190075Sobrien	(built_vtt): Likewise.
396290075Sobrien	* cp-tree.h (DECL_NEEDED_P): Likewise.
396390075Sobrien	* decl.c (pushtag): Likewise.
396490075Sobrien	(duplicate_decls): Likewise.
396590075Sobrien	(pushdecl): Likewise.
396690075Sobrien	(builtin_function): Likewise.
396790075Sobrien	(build_library_fn_1): Set DECL_LANGUAGE for library functions.
396890075Sobrien	(build_cp_library_fn): Likewise.
396990075Sobrien	(maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
397090075Sobrien	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
397190075Sobrien	where it's not necessary.
397290075Sobrien	(make_rtl_for_nonlocal_decl): Likewise.
397390075Sobrien	(cp_finish_decl): Likewise.
397490075Sobrien	(grokfndecl): Likewise.
397590075Sobrien	(grokvardecl): Likewise.
397690075Sobrien	(grokdeclarator): Likewise.
397752284Sobrien	(start_function): Likewise.
397890075Sobrien	(cp_missing_return_ok_p): Likewise.
397990075Sobrien	* decl2.c (grokclassfn): Likewise.
398090075Sobrien	(check_classfn): Likewise.
398190075Sobrien	(finish_static_data_member_decl): Likewise.
398252284Sobrien	(grokfield): Likewise.
398390075Sobrien	* error.c (GLOBAL_IORD_P): Remove.
398490075Sobrien	(dump_global_iord): Improve output.
398590075Sobrien	(dump_decl): Avoid using DECL_ASSEMBLER_NAME.
398690075Sobrien	* except.c (nothrow_libfn_p): Summarily reject any function not in
398790075Sobrien	namespace-scope.
398890075Sobrien	* init.c (build_java_class_ref): Don't explicitly set
398990075Sobrien	DECL_ASSEMBLER_NAME after calling mangle_decl.
399090075Sobrien	* mangle.c (mangle_decl_string): Handle extern "C" functions.
399190075Sobrien	(mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
399290075Sobrien	* method.c (set_mangled_name_for_decl): Don't explicitly set
399390075Sobrien	DECL_ASSEMBLER_NAME after calling mangle_decl.
399490075Sobrien	(make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
399590075Sobrien	IDENTIFIER_GLOBAL_VALUE for the thunk.
399690075Sobrien	* pt.c (set_mangled_name_for_template_decl): Remove.
399790075Sobrien	(check_explicit_specialization): Don't use it.
399890075Sobrien	(looup_template_class): Don't set DECL_ASSEMBLER_NAME.
399990075Sobrien	(tsubst_friend_function): Likewise.
400090075Sobrien	(tsubst_decl): Likewise.
400190075Sobrien	(regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
400290075Sobrien	* rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
400390075Sobrien	COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
400490075Sobrien	where it's not necessary.
400590075Sobrien	(tinfo_base_init): Likewise.
400690075Sobrien	(create_real_tinfo_var): Likewise.
400790075Sobrien	* search.c (looup_field_1): Likewise.
400890075Sobrien	* semantics.c (finish_named_return_value): Likewise.
400990075Sobrien	* tree.c (init_tree): Set lang_set_decl_assembler_name.
401052284Sobrien
401190075Sobrien2001-03-15  Gabriel Dos Reis  <gdr@codesourcery.com>
401252284Sobrien
401390075Sobrien	Correct semantics restrictions checking in throw-expression.
401490075Sobrien	* except.c (is_admissible_throw_operand): New function.
401590075Sobrien	(build_throw): Use it.
401652284Sobrien
401790075Sobrien2001-03-14  Mark Mitchell  <mark@codesourcery.com>
401852284Sobrien
401990075Sobrien	* decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
402090075Sobrien	and its ilk.
402152284Sobrien
402290075Sobrien2001-03-14  Mark Mitchell  <mark@codesourcery.com>
402352284Sobrien
402490075Sobrien	* class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
402590075Sobrien	* cp-tree.h (DECL_IN_MEMORY_P): Likewise.
402690075Sobrien	* decl.c (duplicate_decls): Likewise.
402790075Sobrien	(builtin_function): Likewise.
402890075Sobrien	(build_library_fn): Likewise.
402990075Sobrien	(build_cp_library_fn): Likewise.
403090075Sobrien	(check_initializer): Likewise.
403190075Sobrien	(cp_finish_decl): Likewise.
403290075Sobrien	* decl2.c (grokfield): Likewise.
403390075Sobrien	(grok_function_init): Remove #if 0'd code.
403490075Sobrien	(finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
403590075Sobrien	* friend.c (do_friend): Likewise.
403690075Sobrien	* init.c (get_temp_regvar): Likewise.
403790075Sobrien	* method.c (make_thunk): Likewise.
403890075Sobrien	* pt.c (tsubst_friend_function): Likewise.
403990075Sobrien	(tsubst_decl): Likewise.
404090075Sobrien	(regenerate_decl_from_template): Likewise.
404190075Sobrien	* semantics.c (genrtl_named_return_value): Likewise.
404290075Sobrien	(expand_body): Likewise.
404390075Sobrien	(genrtl_finish_function): Likewise.
404490075Sobrien	* tree.c (cp_tree_equal): Likewise.
404552284Sobrien
404690075Sobrien2001-03-12  Nathan Sidwell  <nathan@codesourcery.com>
404752284Sobrien
404890075Sobrien	* call.c (convert_like_real): Add extra semantics to INNER
404990075Sobrien	parameter. Don't convert to temporary if a user conversion
405090075Sobrien	gives us an lvalue that we're about to bind to a reference.
405190075Sobrien	Set INNER to indicate pending reference binding on recursive
405290075Sobrien	calls.
405352284Sobrien
405490075Sobrien2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
405552284Sobrien
405690075Sobrien	* cp/lex.c: Delete duplicate pending_lang_change.
405752284Sobrien
405890075Sobrien2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
405952284Sobrien
406090075Sobrien	* cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
406190075Sobrien	Similarly.
406290075Sobrien	* cp/repo.c (get_base_filename, open_repo_file): Similarly.
406390075Sobrien	* cp/cp-tree.h: Remove file_name_nondirectory prototype.
406418334Speter
406590075Sobrien2001-03-09  Zack Weinberg  <zackw@stanford.edu>
406618334Speter
406790075Sobrien	* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
406818334Speter
406990075Sobrien2001-03-08  Stan Shebs  <shebs@apple.com>
407052284Sobrien
407190075Sobrien	* cp-tree.h (set_identifier_local_value): Remove unused decl.
407252284Sobrien
407390075Sobrien2001-03-06  Zack Weinberg  <zackw@stanford.edu>
407452284Sobrien
407590075Sobrien	* spew.c: Remove references to CPP_OSTRING.
407652284Sobrien
407790075Sobrien2001-03-06  Andrew Haley  <aph@redhat.com>
407852284Sobrien
407990075Sobrien	* typeck.c (convert_arguments): Check that we have an fndecl.
408052284Sobrien
408190075Sobrien2001-03-05  Andrew Haley  <aph@redhat.com>
408252284Sobrien
408390075Sobrien	* typeck.c (convert_arguments): Don't do ellipsis conversion for
408490075Sobrien	__built_in_constant_p.
408552284Sobrien
408690075Sobrien2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
408752284Sobrien
408890075Sobrien	* typeck.c (build_static_cast): Allow enum to enum conversions
408990075Sobrien	as per DR 128.
409052284Sobrien
409190075Sobrien2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
409252284Sobrien
409390075Sobrien	* class.c (check_field_decls): Pointers to member do not a
409490075Sobrien	non-pod struct make, as per DR 148.
409552284Sobrien
409690075Sobrien2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
409752284Sobrien
409890075Sobrien	* call.c (joust): cp_pedwarn when using gnu extension concerning
409990075Sobrien	worst conversion sequences.
410052284Sobrien
410190075Sobrien2001-03-01  Zack Weinberg  <zackw@stanford.edu>
410252284Sobrien
410390075Sobrien	* decl.c: Replace all uses of 'boolean' with 'bool'.
410452284Sobrien
410590075Sobrien2001-03-01  Zack Weinberg  <zackw@stanford.edu>
410652284Sobrien
410790075Sobrien	* lang-specs.h: Add zero initializer for cpp_spec field to
410890075Sobrien	all array elements that need one.  Don't put an #ifdef inside
410990075Sobrien	the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
411090075Sobrien	use it.
411152284Sobrien
411290075Sobrien2001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
411352284Sobrien
411490075Sobrien	Implement using decls inside template functions.
411590075Sobrien	* decl2.c (validate_nonmember_using_decl): Don't special case
411690075Sobrien	fake_std_node in the global namespace. Don't reject early when
411790075Sobrien	processing a template.
411890075Sobrien	(do_local_using_decl): Add to statement tree. Don't do further
411990075Sobrien	processing when building a template.
412090075Sobrien	* pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
412152284Sobrien
412290075Sobrien2001-03-01  Nathan Sidwell  <nathan@codesourcery.com>
412352284Sobrien
412490075Sobrien	* decl2.c (do_nonmember_using_decl): Don't complain if we find
412590075Sobrien	same function. Do complain about ambiguating extern "C"
412652284Sobrien	declarations.
412752284Sobrien
412890075Sobrien2001-02-28  Nathan Sidwell  <nathan@codesourcery.com>
412952284Sobrien
413090075Sobrien	Remove floating point and complex type template constant parms.
413190075Sobrien	* pt.c (convert_nontype_argument): Remove REAL_TYPE and
413290075Sobrien	COMPLEX_TYPE extensions.
413390075Sobrien	(invalid_nontype_parm_type_p): Likewise.
413452284Sobrien
413590075Sobrien2001-02-27  Jeffrey Oldham  <oldham@codesourcery.com>
413618334Speter
413790075Sobrien	* except.c (call_eh_info): Revert "match_function"'s type.
413818334Speter
413990075Sobrien2001-02-27  Nathan Sidwell  <nathan@codesourcery.com>
414052284Sobrien
414190075Sobrien	Fix ctor vtable vcall offsets.
414290075Sobrien	* class.c (struct vtbl_init_data_s): Add rtti_binfo member.
414390075Sobrien	(build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
414490075Sobrien	(get_matching_base): Remove.
414590075Sobrien	(get_original_base): New function.
414690075Sobrien	(build_vtbl_initializer): Initialize vid.rtti_binfo.
414790075Sobrien	Use a virtual thunk for a ctor vtable with an index
414890075Sobrien	(add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
414990075Sobrien	primary base within a constructor vtable. Only set
415090075Sobrien	BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
415190075Sobrien	when primary base has been lost.
415290075Sobrien	* cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
415352284Sobrien
415490075Sobrien2001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
415518334Speter
415690075Sobrien	* call.c (joust): Ensure more_specialized()'s argument length
415790075Sobrien	parameter has correct value for constructors.
415818334Speter
415990075Sobrien2001-02-26  Nathan Sidwell  <nathan@codesourcery.com>
416018334Speter
416190075Sobrien	* except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
416252284Sobrien
416390075Sobrien	* decl.c (mark_inlined_fns): Prototype.
416452284Sobrien
416590075Sobrien2001-02-22  Mark Mitchell  <mark@codesourcery.com>
416652284Sobrien
416790075Sobrien	* spew.c (yylex): Correct handling of friends.
416852284Sobrien
416990075Sobrien2001-02-22  Mark Mitchell  <mark@codesourcery.com>
417052284Sobrien
417190075Sobrien	* mangle.c (write_encoding): Pass write_function_type the
417290075Sobrien	FUNCTION_DECL for the function being encoded.
417390075Sobrien	(write_function_type): Pass it along to write_bare_function_type.
417490075Sobrien	(write_bare_function_type): Pass it along to write_method_parms.
417590075Sobrien	(write_method_parms): Don't mangle the compiler-generated
417690075Sobrien	parameters to a constructor or destructor.
417752284Sobrien
417890075Sobrien2001-02-22  Andreas Jaeger  <aj@suse.de>
417952284Sobrien
418090075Sobrien	* optimize.c: Include toplev.h for
418190075Sobrien	note_deferral_of_defined_inline_function prototype.
418252284Sobrien
418390075Sobrien2001-02-22  Jakub Jelinek  <jakub@redhat.com>
418452284Sobrien
418590075Sobrien	* cp-tree.h (struct lang_decl_inlined_fns): New.
418690075Sobrien	(struct lang_decls): Add inlined_fns.
418790075Sobrien	(DECL_INLINED_FNS): New macro.
418890075Sobrien	* optimize.c (struct inline_data): Add inlined_fns.
418990075Sobrien	(declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
419090075Sobrien	(inlinable_function_p): Likewise, fix typo in comment,
419190075Sobrien	function is not inlinable if it already inlined function currently
419290075Sobrien	being optimized.
419390075Sobrien	(expand_call_inline): Add fn to inlined_fns if necessary.
419490075Sobrien	(optimize_function): Initialize inlined_fns.
419590075Sobrien	Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
419690075Sobrien	* decl.c (mark_inlined_fns): New function.
419790075Sobrien	(lang_mark_tree): Call it.
419852284Sobrien
419990075Sobrien2001-02-21  Jason Merrill  <jason@redhat.com>
420052284Sobrien
420190075Sobrien	* cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
420290075Sobrien	(DECL_UNINLINABLE): Move to middle-end.
420352284Sobrien
420490075Sobrien	* class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
420590075Sobrien	* decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
420690075Sobrien	* class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
420790075Sobrien	* optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
420890075Sobrien	parms and outer BLOCK.  note_deferral_of_defined_inline_function.
420952284Sobrien
421090075Sobrien	* method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
421190075Sobrien	second parm of op=.
421252284Sobrien
421390075Sobrien2001-02-19  Mark Mitchell  <mark@codesourcery.com>
421452284Sobrien
421590075Sobrien	* decl2.c (set_decl_namespace): Allow explicit instantiations in
421690075Sobrien	any namespace.
421752284Sobrien
421890075Sobrien2001-02-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
421952284Sobrien
422090075Sobrien	* optimize.c (expand_call_inline): Don't walk subtrees of type
422190075Sobrien	nodes.
422252284Sobrien
422390075Sobrien2001-02-18  Mark Mitchell  <mark@codesourcery.com>
422452284Sobrien
422590075Sobrien	* class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
422690075Sobrien	for a destructor.
422752284Sobrien
422890075Sobrien2001-02-18  Jason Merrill  <jason@redhat.com>
422952284Sobrien
423090075Sobrien	Do put the VTT parameter in DECL_ARGUMENTS.
423190075Sobrien	* cp-tree.h (struct cp_language_function): Add x_vtt_parm.
423290075Sobrien	(current_vtt_parm): New macro.
423390075Sobrien	(struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
423490075Sobrien	(DECL_HAS_VTT_PARM_P): New macro.
423590075Sobrien	(DECL_VTT_PARM): Remove.
423690075Sobrien	(FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
423790075Sobrien	* decl.c (duplicate_decls): Only copy the operator code if
423890075Sobrien	appropriate.
423990075Sobrien	(start_function): Set current_vtt_parm.
424090075Sobrien	(lang_mark_tree): Don't mark vtt_parm.
424190075Sobrien	* decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
424290075Sobrien	DECL_ARGUMENTS.  Set DECL_HAS_VTT_PARM_P.
424390075Sobrien	* class.c (build_clone): Maybe remove the VTT parm.
424490075Sobrien	* optimize.c (maybe_clone_body): Set up the VTT parm.
424590075Sobrien	* pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
424690075Sobrien	* call.c (build_over_call): Just allow the VTT arg.
424790075Sobrien	* method.c (make_thunk): Don't set DECL_VTT_PARM.
424890075Sobrien	(do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
424990075Sobrien	(synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
425090075Sobrien	* decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
425190075Sobrien	* error.c (dump_function_decl): Likewise.
425290075Sobrien	* call.c (build_user_type_conversion_1,	convert_like_real): Abort
425390075Sobrien	if we try to call a constructor with in-charge or VTT parms.
425490075Sobrien	* method.c (skip_artificial_parms_for): New fn.
425590075Sobrien	* call.c (add_function_candidate, build_over_call): Call it.
425690075Sobrien	* call.c (build_new_method_call): Use current_vtt_parm.
425790075Sobrien	* init.c (expand_virtual_init): Likewise.
425890075Sobrien	* class.c (same_signature_p): No longer static.
425990075Sobrien	* cp-tree.h: Declare it.
426090075Sobrien	* search.c (look_for_overrides_r): Use it.
426152284Sobrien
426290075Sobrien2001-02-17  Mark Mitchell  <mark@codesourcery.com>
426352284Sobrien
426490075Sobrien	* cp-tree.h (new_abi_rtti_p): Remove.
426590075Sobrien	(name_mangling_version): Likewise.
426690075Sobrien	(flag_do_squangling): Likewise.
426790075Sobrien	* class.c (build_rtti_vtbl_entries): Remove old ABI support.
426890075Sobrien	* decl.c (grokfndecl): Likewise.
426990075Sobrien	* decl2.c (name_mangling_version): Remove.
427090075Sobrien	(flag_do_squangling): Likewise.
427190075Sobrien	(lang_f_options): Remove `squangle'.
427290075Sobrien	(unsupported_options): Add `squangle'.
427390075Sobrien	(cxx_decode_option): Issue a warning about uses of
427490075Sobrien	-fname-mangling-version.
427590075Sobrien	(finish_file): Remove old ABI support.
427690075Sobrien	* pt.c (check_explicit_specialization): Likewise.
427790075Sobrien	(tsubst_decl): Likewise.
427890075Sobrien	* rtti.c (init_rtti_processing): Likewise.
427990075Sobrien	(build_headof): Likewise.
428090075Sobrien	(get_tinfo_decl_dynamic): Likewise.
428190075Sobrien	(tinfo_from_decl): Likewise.
428290075Sobrien	(build_dynamic_cast_1): Likewise.
428390075Sobrien	(synthesize_tinfo_var): Likewise.
428490075Sobrien	* init.c (build_new): Allow enumeration types for the array-bounds
428590075Sobrien	in a direct-new-declarator.
428652284Sobrien
428790075Sobrien	* semantics.c (finish_typeof): Resolve OFFSET_REFs.
428852284Sobrien
428990075Sobrien	* pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
429090075Sobrien	TREE_PROTECTED from the template being specialized.
429152284Sobrien
429290075Sobrien2001-02-17  Jason Merrill  <jason@redhat.com>
429352284Sobrien
429490075Sobrien	* decl2.c (build_artificial_parm): Set TREE_READONLY.
429552284Sobrien
429690075Sobrien	* decl.c (bad_specifiers): Allow throw specs on things with
429790075Sobrien	pointer-to-function or -member-function type.
429890075Sobrien	* init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
429990075Sobrien	a pmf.
430052284Sobrien
430190075Sobrien2001-02-17  Mark Mitchell  <mark@codesourcery.com>
430252284Sobrien
430390075Sobrien	* call.c (check_dtor_name): Handle template names correctly.
430452284Sobrien
430590075Sobrien2001-02-16  Jason Merrill  <jason@redhat.com>
430618334Speter
430790075Sobrien	* cp-tree.h (DECL_USE_VTT_PARM): Remove.
430890075Sobrien	* decl2.c (maybe_retrofit_in_chrg): Don't create it.
430990075Sobrien	* optimize.c (maybe_clone_body): Don't substitute it.
431090075Sobrien	* call.c (build_new_method_call): Check in_chrg instead.
431190075Sobrien	* init.c (expand_virtual_init): Likewise.
431218334Speter
431390075Sobrien2001-02-16  Gabriel Dos Reis  <gdr@codesourcery.com>
431452284Sobrien
431590075Sobrien	* decl.c (check_tag_decl): Make sure a typedef for an anonymous
431690075Sobrien	class-type introduces at least a type-name.
431752284Sobrien
431890075Sobrien2001-02-16  Jakub Jelinek  <jakub@redhat.com>
431952284Sobrien
432090075Sobrien	* call.c (convert_like_real): Create a temporary for non-lvalue.
432152284Sobrien
432290075Sobrien2001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
432352284Sobrien
432490075Sobrien	* cp-tree.h: Fix typos in comments.
432552284Sobrien
432690075Sobrien2001-02-16  Jason Merrill  <jason@redhat.com>
432718334Speter
432890075Sobrien	* optimize.c (remap_block): If we're compiling a clone, pass the
432990075Sobrien	new block to insert_block.
433052284Sobrien
433190075Sobrien2001-02-16  Mark Mitchell  <mark@codesourcery.com>
433218334Speter
433390075Sobrien	* semantics.c (finish_asm_stmt): Robustify.
433452284Sobrien
433590075Sobrien2001-02-15  Mark Mitchell  <mark@codesourcery.com>
433652284Sobrien
433790075Sobrien	* pt.c (push_template_decl_real): Don't remangle the name of a
433890075Sobrien	class template.
433952284Sobrien
434090075Sobrien2001-02-15  Jim Meyering  <meyering@lucent.com>
434152284Sobrien
434290075Sobrien	* Make-lang.in (c++.install-common): Depend on installdirs.
434390075Sobrien	(c++.install-info): Likewise.
434490075Sobrien	(c++.install-man): Likewise.
434552284Sobrien
434690075Sobrien2001-02-15  Mark Mitchell  <mark@codesourcery.com>
434752284Sobrien
434890075Sobrien	* typeck2.c (build_m_component_ref): Robustify.
434918334Speter
435090075Sobrien2001-02-15  Alexandre Oliva  <aoliva@redhat.com>
435150397Sobrien
435290075Sobrien	* friend.c (do_friend): Don't take the nested [template] class
435390075Sobrien	into account when deciding whether to warn about the friend
435490075Sobrien	function not referring to a template function.
435552284Sobrien
435690075Sobrien2001-02-14  Jakub Jelinek  <jakub@redhat.com>
435752284Sobrien
435890075Sobrien	* typeck.c (build_unary_op): Clarify error message.
435950397Sobrien
436090075Sobrien2001-02-08  Aldy Hernandez  <aldyh@redhat.com>
436150397Sobrien
436290075Sobrien	* parse.y (component_constructor_declarator): allow optional
436390075Sobrien	parentheses around constructor class name.
436452284Sobrien
436590075Sobrien2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
436652284Sobrien
436790075Sobrien	* cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
436890075Sobrien	section.
436990075Sobrien	* init.c (emit_base_init): Remove incorrect comment about
437090075Sobrien	virtual bases.
437190075Sobrien	* method.c (make_thunk): Fix comment alignment.
437252284Sobrien
437390075Sobrien2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
437452284Sobrien
437590075Sobrien	Kill remnants of this is variable.
437690075Sobrien	* cp-tree.h (flag_this_is_variable): Remove.
437790075Sobrien	* decl2.c (flag_this_is_variable): Remove.
437890075Sobrien	* class.c (fixed_type_or_null): Add cdtor parm. Adjust.
437990075Sobrien	(build_vbase_path): The path is non-static, even in a cdtor.
438090075Sobrien	(resolves_to_fixed_type_p): Add additional return value.
438190075Sobrien	* search.c (init_vbase_pointers): Adjust.
438290075Sobrien	* tree.c (lvalue_p_1): Adjust.
438390075Sobrien	* typeck.c (mark_addressable): Adjust.
438452284Sobrien
438590075Sobrien2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
438652284Sobrien
438790075Sobrien	* pt.c (unify): Don't check cv quals of array types.
438852284Sobrien
438990075Sobrien2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
439052284Sobrien
439190075Sobrien	* tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
439290075Sobrien	check whether we already have the type.
439352284Sobrien
439490075Sobrien2001-02-13  Mark Mitchell  <mark@codesourcery.com>
439552284Sobrien
439690075Sobrien	* cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
439790075Sobrien	* call.c (build_op_delete_call): Simplify to remove duplicate
439890075Sobrien	code.
439990075Sobrien	* class.c (clone_function_decl): Don't build the deleting variant
440090075Sobrien	of a non-virtual destructor.
440190075Sobrien	* decl.c (finish_destructor_body): Don't call delete if this is a
440290075Sobrien	non-virtual destructor.
440390075Sobrien	* init.c (build_delete): Explicitly call `operator delete' when
440490075Sobrien	deleting an object with a non-virtual destructor.
440552284Sobrien
440690075Sobrien2001-02-13  Jason Merrill  <jason@redhat.com>
440752284Sobrien
440890075Sobrien	* lang-specs.h: Add more __EXCEPTIONS.
440952284Sobrien
441090075Sobrien2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
441152284Sobrien
441290075Sobrien	* typeck2.c (process_init_constructor): Check
441390075Sobrien	TREE_HAS_CONSTRUCTOR before issuing missing init warning.
441452284Sobrien
441590075Sobrien2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
441652284Sobrien
441790075Sobrien	* pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
441890075Sobrien	Remove spurious information in comment. Allow further
441990075Sobrien	adjustments of REFERENCE_TYPE args.
442052284Sobrien
442190075Sobrien2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
442252284Sobrien
442390075Sobrien	* errfn.c (cp_deprecated): Tweak diagnostic text.
442490075Sobrien	* parse.y (new_initializer): Deprecate initializer lists
442590075Sobrien	extension.
442652284Sobrien
442790075Sobrien2001-02-12  Mark Mitchell  <mark@codesourcery.com>
442852284Sobrien
442990075Sobrien	Remove old ABI support.
443052284Sobrien
443190075Sobrien2001-02-11  Mark Mitchell  <mark@codesourcery.com>
443252284Sobrien
443390075Sobrien	* decl2.c (flag_vtable_thunks): Always set it to 1.
443490075Sobrien	(flag_new_abi): Likewise.
443590075Sobrien	* lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
443652284Sobrien
443790075Sobrien	* Makefile.in (g++spec.o): Fix typo.
443852284Sobrien
443990075Sobrien2001-02-09  Jason Merrill  <jason@redhat.com>
444052284Sobrien
444190075Sobrien	* lang-specs.h: Restore definition of __EXCEPTIONS.
444252284Sobrien
444390075Sobrien2001-02-08  Jason Merrill  <jason@redhat.com>
444452284Sobrien
444590075Sobrien	* search.c (shared_member_p): New function.
444690075Sobrien	(lookup_field_r): Use it.
444790075Sobrien	* cp-tree.h (SHARED_MEMBER_P): Remove.
444852284Sobrien
444990075Sobrien	* method.c (process_overload_item): Handle template-dependent array
445090075Sobrien	bounds.
445190075Sobrien	* pt.c (type_unification_real): If we end up with undeduced nontype
445290075Sobrien	parms, try again.
445352284Sobrien
445490075Sobrien	* decl.c (lookup_name_real): Tweak warning to refer to decls, not
445590075Sobrien	types.
445652284Sobrien
445790075Sobrien	* typeck2.c (friendly_abort): Don't say anything if we have
445890075Sobrien	earlier errors or sorries.
445952284Sobrien
446090075Sobrien	* decl.c (check_tag_decl): Notice attempts to redefine bool and
446190075Sobrien	wchar_t.  Ignore if in_system_header.
446252284Sobrien
446390075Sobrien	* decl.c (maybe_push_cleanup_level): New fn...
446490075Sobrien	(start_decl_1): ...split out from here.
446590075Sobrien	* cvt.c (build_up_reference): Use it.
446690075Sobrien	* cp-tree.h: Declare it.
446752284Sobrien
446890075Sobrien2001-02-07  Mark Mitchell  <mark@codesourcery.com>
446952284Sobrien
447090075Sobrien	* lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
447190075Sobrien	spec.
447252284Sobrien
447390075Sobrien2001-02-06  Nathan Sidwell  <nathan@codesourcery.com>
447452284Sobrien
447590075Sobrien	* pt.c (lookup_template_class): Make sure it's a primary
447690075Sobrien	template or template_template_parm when called from the parser.
447790075Sobrien	(instantiate_template_class): Add assertion.
447852284Sobrien
447990075Sobrien2001-02-05  Alexandre Oliva  <aoliva@redhat.com>
448052284Sobrien
448190075Sobrien	* method.c (build_mangled_name) [old abi]: Protect flush_repeats()
448290075Sobrien	from error_mark_node.
448352284Sobrien
448490075Sobrien2001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
448552284Sobrien
448690075Sobrien	Fix specification and implementation bugs in V3 ABI
448790075Sobrien	construction vtables.
448890075Sobrien	* cp-tree.h (flag_dump_class_layout): New flag.
448990075Sobrien	(BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
449090075Sobrien	(BINFO_LOST_PRIMARY_P): New flag.
449190075Sobrien	(SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
449290075Sobrien	(BINFO_PRIMARY_MARKED_P): Rename to ...
449390075Sobrien	(BINFO_PRIMARY_P): ... here.
449490075Sobrien	(binfo_via_virtual): New prototype.
449590075Sobrien	* decl2.c (flag_dump_class_layout): New flag.
449690075Sobrien	(cxx_decode_option): Set it. Adjust -fdump-translation-unit to
449790075Sobrien	use `=' as a file name separator.
449890075Sobrien	* init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
449990075Sobrien	bases.
450090075Sobrien	(build_vtbl_address): If this is a virtual primary base, then
450190075Sobrien	get the vtbl of what it is ultimately primary for.
450290075Sobrien	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
450390075Sobrien	for BINFO_PRIMARY_P.
450490075Sobrien	(dfs_skip_nonprimary_vbases_markedp): Likewise.
450590075Sobrien	(get_shared_vbase_if_not_primary): Likewise.
450690075Sobrien	(dfs_get_pure_virtuals): Likewise.
450790075Sobrien	(expand_upcast_fixups): Likewise.
450890075Sobrien	(fixup_virtual_upcast_offsets): Likewise.
450990075Sobrien	(dfs_find_vbase_instance): Likewise.
451090075Sobrien	(find_vbase_instance): Likewise.
451190075Sobrien	(binfo_from_vbase): Adjust comment to reflect reality.
451290075Sobrien	(binfo_via_virtual): New function.
451390075Sobrien	* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
451490075Sobrien	for binfo walking during VTT construction.
451590075Sobrien	(dfs_mark_primary_bases): Remove.
451690075Sobrien	(force_canonical_binfo_r): New function.
451790075Sobrien	(force_canonical_binfo): New function.
451890075Sobrien	(mark_primary_virtual_base): New function.
451990075Sobrien	(mark_primary_bases): Walk in inheritance graph order, use
452090075Sobrien	mark_primary_virtual_base.
452190075Sobrien	(determine_primary_base): Use some more intermediate variables.
452290075Sobrien	(dfs_find_final_overrider): Don't check for overriding along a
452390075Sobrien	virtual path.
452490075Sobrien	(dfs_modify_vtables): Walk into primary virtual bases too.
452590075Sobrien	(walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
452690075Sobrien	(build_base_fields): Likewise.
452790075Sobrien	(dfs_set_offset_for_unshared_vbases): Likewise.
452890075Sobrien	(layout_virtual_bases): Likewise.
452990075Sobrien	(end_of_class): Likewise.
453090075Sobrien	(finish_struct_1): Call dump_class_hierarchy, if requested.
453190075Sobrien	(dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
453290075Sobrien	(dump_class_hierarchy_r): Add stream parameter. Emit more information.
453390075Sobrien	(dump_class_hierarchy): Add file parameter. Append to file, if
453490075Sobrien	required.
453590075Sobrien	(finish_vtbls): Adjust accumulate_vtbl_inits call.
453690075Sobrien	Use canonical base for virtual bases.
453790075Sobrien	(build_vtt): Add more comments. Adjust build_vtt_inits call.
453890075Sobrien	(build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
453990075Sobrien	Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
454090075Sobrien	VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
454190075Sobrien	virtual VTTs.
454290075Sobrien	(dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
454390075Sobrien	from DATA.  We want virtual primary bases and all bases via virtual.
454490075Sobrien	Only set BINFO_VPTR_INDEX for top level. Look up from a primary
454590075Sobrien	virtual base when not a construction vtable.
454690075Sobrien	(dfs_ctor_vtable_bases_queue_p): New DFS predicate.
454790075Sobrien	(build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
454890075Sobrien	Use canonical bases when processing virtual bases.
454990075Sobrien	(accumulate_vtbl_inits): We're interested in any base via a
455090075Sobrien	virtual path.
455190075Sobrien	(dfs_accumulate_vtbl_inits): If this is a primary virtual base
455290075Sobrien	within a construction vtable, determine what is being overridden.
455390075Sobrien	(build_vtbl_initializer): Add more comments
455490075Sobrien	(add_vcall_offset_vtbl_entries_1): Adjust comment.
455590075Sobrien	(build_rtti_vtbl_entries): Check if the base has lost its
455690075Sobrien	primary.
455752284Sobrien
455890075Sobrien2001-02-05  Mark Mitchell  <mark@codesourcery.com>
455952284Sobrien
456090075Sobrien	* Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
456152284Sobrien
456290075SobrienSun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
456352284Sobrien
456490075Sobrien	* decl.c (pushdecl): Call abort instead of fatal.
456590075Sobrien	* except.c (decl_is_java_type): Call fatal_error instead of fatal.
456690075Sobrien	* init.c (build_new_1): Likewise.
456790075Sobrien	(build_java_class_ref): Call internal_error and fatal_error, not fatal.
456890075Sobrien	* decl.c (build_typename_type): hash_table_init now returns void.
456990075Sobrien	decl.c (init_decl_processing): Make an error non-fatal.
457052284Sobrien
457190075Sobrien2001-02-04  Mark Mitchell  <mark@codesourcery.com>
457252284Sobrien
457390075Sobrien	* cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
457490075Sobrien	Document.
457590075Sobrien	(CLASSTYPE_INTERFACE_KNOWN): Likewise.
457690075Sobrien	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
457790075Sobrien	(SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
457890075Sobrien	(SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
457990075Sobrien	* decl.c (maybe_commonize_var): Use the new name-mangling where
458090075Sobrien	appropriate.
458190075Sobrien	* decl2.c (comdat_linkage): Enhance comments.  Make all
458290075Sobrien	compiler-generated things static, if COMDAT is not available.
458390075Sobrien	(get_tinfo_decl): Do not make typeinfo objects that belong in the
458490075Sobrien	library COMDAT.
458590075Sobrien	(tinfo_base_init): Use the correct mangled name for typeinfo
458690075Sobrien	strings, and push them into the global scope.
458790075Sobrien	(typeinfo_in_lib_p): New function.
458890075Sobrien	(synthesize_tinfo_var): Use it.
458990075Sobrien	(create_real_tinfo_var): Likewise.
459052284Sobrien
459190075Sobrien2001-02-03  Jakub Jelinek  <jakub@redhat.com>
459252284Sobrien
459390075Sobrien	* decl.c (push_class_binding): Use context_for_name_lookup instead
459490075Sobrien	of CP_DECL_CONTEXT.
459590075Sobrien	* search.c (context_for_name_lookup): Remove static.  Check for NULL
459690075Sobrien	context in the loop.
459790075Sobrien	* cp-tree.h (context_for_name_lookup): Add prototype.
459852284Sobrien
459990075Sobrien2001-02-02  Jakub Jelinek  <jakub@redhat.com>
460052284Sobrien
460190075Sobrien	* cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
460290075Sobrien	* tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
460390075Sobrien	Remove.
460490075Sobrien	* call.c (convert_class_to_reference, build_user_type_conversion_1,
460590075Sobrien	add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
460652284Sobrien
460790075Sobrien2001-02-02  Mark Mitchell  <mark@codesourcery.com>
460852284Sobrien
460990075Sobrien	* Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
461090075Sobrien	of macros used when compiling g++spec.c.
461190075Sobrien	* g++spec.c (lang_specific_driver): Link with the shared
461290075Sobrien	libgcc by default.
461352284Sobrien
461490075Sobrien2001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
461552284Sobrien
461690075Sobrien	* decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
461790075Sobrien	make_reference_declarator, make_call_declarator), method.c
461890075Sobrien	(implicitly_declare_fn), parse.y (namespace_using_decl,
461990075Sobrien	notype_unqualified_id, expr_or_declarator, new_type_id,
462090075Sobrien	after_type_declarator, direct_after_type_declarator,
462190075Sobrien	notype_declarator, complex_notype_declarator,
462290075Sobrien	complex_direct_notype_declarator, qualified_id,
462390075Sobrien	notype_qualified_id, overqualified_id, direct_new_declarator,
462490075Sobrien	absdcl, direct_abstract_declarator, conversion_declarator), pt.c
462590075Sobrien	(tsubst), semantics.c (begin_constructor_declarator): Use build_nt
462690075Sobrien	instead of build_parse_node.
462752284Sobrien
462890075Sobrien2001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
462952284Sobrien
463090075Sobrien	* cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
463190075Sobrien	(minus_one_node): Moved to top level gcc directory.  Renamed
463290075Sobrien	to integer_minus_one_node.
463352284Sobrien
463490075Sobrien	* init.c (init_init_processing): Don't set minus_one_node.
463590075Sobrien	(build_vec_init): Use integer_minus_one_node.
463652284Sobrien
463790075Sobrien	* rtti.c (get_tinfo_decl_dynamic): Likewise.
463852284Sobrien
463990075Sobrien2001-01-28  Jakub Jelinek  <jakub@redhat.com>
464052284Sobrien
464190075Sobrien	* optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
464290075Sobrien	identical and they would be replaced with constant, remove
464390075Sobrien	MODIFY_EXPR from the tree.
464452284Sobrien
464590075Sobrien2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
464652284Sobrien
464790075Sobrien	* Make-lang.in: Remove all dependencies on defaults.h.
464890075Sobrien	* call.c: Don't include defaults.h.
464990075Sobrien	* decl.c: Likewise.
465090075Sobrien	* decl2.c: Likewise.
465190075Sobrien	* except.c: Likewise.
465290075Sobrien	* pt.c: Likewise.
465390075Sobrien	* rtti.c: Likewise.
465490075Sobrien	* tree.c: Likewise.
465590075Sobrien	* typeck.c: Likewise.
465652284Sobrien
465790075Sobrien2001-01-25  Jakub Jelinek  <jakub@redhat.com>
465852284Sobrien
465990075Sobrien	* mangle.c (write_mangled_name, write_encoding): Mangle overloaded
466090075Sobrien	operators even in "C" linkage.
466190075Sobrien	* method.c (set_mangled_name_for_decl): Likewise.
466290075Sobrien	* decl.c (grokfndecl): Call set_mangled_name_for_decl even for
466390075Sobrien	overloaded operators in "C" linkage.
466452284Sobrien
466590075Sobrien2001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
466652284Sobrien
466790075Sobrien	* pt.c (tsubst_decl): Remove IN_DECL parameter.
466890075Sobrien	(tsubst_arg_types): Check parameter is not void.
466990075Sobrien	(tsubst): Adjust tsubst_decl call.
467052284Sobrien
467190075Sobrien2001-01-24  Nathan Sidwell  <nathan@codesourcery.com>
467252284Sobrien
467390075Sobrien	* call.c (add_builtin_candidate): Quote std properly, from
467490075Sobrien	previous change.
467552284Sobrien
467690075Sobrien2001-01-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
467752284Sobrien
467890075Sobrien	* pt.c (check_explicit_specialization): Clone constructors and
467990075Sobrien	destructors.
468052284Sobrien
468190075Sobrien2001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
468252284Sobrien
468390075Sobrien	* decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
468490075Sobrien	indicates anything special about template depth. Make sure we
468590075Sobrien	only count the user visible template classes.
468652284Sobrien
468790075Sobrien2001-01-23  Nathan Sidwell  <nathan@codesourcery.com>
468852284Sobrien
468990075Sobrien	* call.c (build_conv): Typo in comment.
469090075Sobrien	(add_builtin_candidate): Add more explanation.
469190075Sobrien	Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
469290075Sobrien	Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
469390075Sobrien	when we have enumeral types.
469490075Sobrien	(add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
469590075Sobrien	candidates for relops and eqops.
469690075Sobrien	(joust): Simplify control flow. Allow a non-template user
469790075Sobrien	function to hide a builtin.
469850397Sobrien
469990075Sobrien2001-01-22  Nathan Sidwell  <nathan@codesourcery.com>
470052284Sobrien
470190075Sobrien	* cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
470290075Sobrien	(more_specialized): Add deduction parameter.
470390075Sobrien	* call.c (joust): Adjust more_specialized call.
470490075Sobrien	* pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
470590075Sobrien	UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
470690075Sobrien	(get_bindings_order): Remove.
470790075Sobrien	(get_bindings_real): Add DEDUCE parameter.
470890075Sobrien	(maybe_adjust_types_for_deduction): Return extra unify flags. Do
470990075Sobrien	REFERENCE_TYPE jig for DEDUCE_ORDER.
471090075Sobrien	(type_unification_real): Deal with DEDUCE_ORDER. Use result of
471190075Sobrien	maybe_adjust_types_for_deduction.
471290075Sobrien	(more_specialized): Add DEDUCE parameter. Call get_bindings_real
471390075Sobrien	directly.
471490075Sobrien	(try_one_overload): Use result of maybe_adjust_types_for_deduction.
471590075Sobrien	(check_cv_quals_for_unify): Use new unify qualifier flags.
471690075Sobrien	(unify): Clear new unify qualifier flags.
471790075Sobrien	(get_bindings_real): Add DEDUCE parameter.
471890075Sobrien	(get_bindings): Adjust call to get_bindings_real.
471990075Sobrien	(get_bindings_overload): Likewise.
472090075Sobrien	(most_specialized_instantiation): Adjust call to
472190075Sobrien	more_specialized.
472252284Sobrien
472390075Sobrien2001-01-19  Jason Merrill  <jason@redhat.com>
472452284Sobrien
472590075Sobrien	* decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
472652284Sobrien
472790075Sobrien	* decl.c (init_decl_processing): Just force -fvtable-thunks on if
472890075Sobrien	-fnew-abi.
472952284Sobrien
473090075Sobrien2001-01-19  Ute Pelkmann  <scope.muc@t-online.de>
473152284Sobrien
473290075Sobrien	* decl2.c (arg_assoc_class): Fix double iteration logic.
473352284Sobrien
473490075Sobrien2001-01-19  Jason Merrill  <jason@redhat.com>
473552284Sobrien
473690075Sobrien	* init.c (build_delete): Always call convert_force to strip cv-quals.
473752284Sobrien
473890075Sobrien	* decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
473990075Sobrien	* lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
474090075Sobrien	* g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
474152284Sobrien
474290075Sobrien2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
474352284Sobrien
474490075Sobrien	* search.c (get_vbase_1): Count only virtual bases.
474552284Sobrien
474690075Sobrien2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
474752284Sobrien
474890075Sobrien	* class.c (duplicate_tag_error): Robustify flag clearing.
474952284Sobrien
475090075Sobrien2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
475152284Sobrien
475290075Sobrien	* cp-tree.h (lookup_template_class): Add complain parm.
475390075Sobrien	* decl.c (lookup_namespace_name): Adjust call to
475490075Sobrien	lookup_template_class.
475590075Sobrien	(make_typename_type): Likewise.
475690075Sobrien	* semantics.c (finish_template_type): Likewise.
475790075Sobrien	* pt.c (lookup_template_class): Add complain parm. Adjust.
475890075Sobrien	(tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
475990075Sobrien	(tsubst): Likewise.
476052284Sobrien
476190075Sobrien2001-01-19  Nathan Sidwell  <nathan@codesourcery.com>
476252284Sobrien
476390075Sobrien	* pt.c (copy_default_args_to_explicit_spec): Preserve
476490075Sobrien	object's CV quals. Reorganize.
476552284Sobrien
476690075Sobrien2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
476752284Sobrien
476890075Sobrien	* typeck.c (build_modify_expr): Say `initialization' for
476990075Sobrien	INIT_EXPRs.
477090075Sobrien	* init.c (build_default_init): Convert to enumeral type, if
477190075Sobrien	needed.
477252284Sobrien
477390075Sobrien2001-01-18  Jakub Jelinek  <jakub@redhat.com>
477452284Sobrien
477590075Sobrien	* parse.y (nomods_initdcl0): Properly set things up for
477690075Sobrien	initdcl0_innards.
477752284Sobrien
477890075Sobrien2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
477952284Sobrien
478090075Sobrien	* pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
478190075Sobrien	(type_unification_real): Set it.
478290075Sobrien	(unify): Use it.
478352284Sobrien
478490075Sobrien2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
478552284Sobrien
478690075Sobrien	* decl.c (finish_destructor_body): Convert to vbase pointer here.
478752284Sobrien
478890075Sobrien2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
478952284Sobrien
479090075Sobrien	* semantics.c (begin_class_definition): Check we're not inside a
479190075Sobrien	template parm list.
479252284Sobrien
479390075Sobrien2001-01-18  Nathan Sidwell  <nathan@codesourcery.com>
479452284Sobrien
479590075Sobrien	* tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
479690075Sobrien	BASELINK_P.
479752284Sobrien
479890075Sobrien2001-01-16  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
479952284Sobrien
480090075Sobrien	* typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
480190075Sobrien	* call.c (build_over_call): Add comment.
480252284Sobrien
480390075Sobrien2001-01-16 Daniel Berlin <dberlin@redhat.com>
480452284Sobrien
480590075Sobrien	* cvt.c (ocp_convert): Handle vector type conversion
480690075Sobrien	* typeck2.c (digest_init): Handle vector type initializations
480752284Sobrien
480890075Sobrien2001-01-16  Phil Edwards  <pme@sources.redhat.com>
480952284Sobrien
481090075Sobrien	* g++spec.c:  Don't add libraries needlessly if -fsyntax-only
481190075Sobrien	  was given.
481252284Sobrien
481390075Sobrien2001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
481452284Sobrien
481590075Sobrien	* pt.c (check_nontype_parm): Rename to ...
481690075Sobrien	(invalid_nontype_parm_type_p): ... here.
481790075Sobrien	(process_template_parm): Adjust.
481890075Sobrien	(convert_template_argument): Adjust.
481952284Sobrien
482090075Sobrien2001-01-15  Nathan Sidwell  <nathan@codesourcery.com>
482152284Sobrien
482290075Sobrien	* pt.c (check_nontype_parm): New function.
482390075Sobrien	(process_template_parm): Use it.
482490075Sobrien	(convert_template_argument): Use it.
482590075Sobrien	(convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
482690075Sobrien	member.
482752284Sobrien
482890075Sobrien2001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
482952284Sobrien
483090075Sobrien	* tree.c: Add defaults.h
483190075Sobrien	(cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
483290075Sobrien	* Make-lang.in (cp/tree.o): Add defaults.h.
483352284Sobrien
483490075Sobrien2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
483552284Sobrien
483690075Sobrien	* Make-lang.in (CXX_C_OBJS): Add c-format.o.
483752284Sobrien
483890075Sobrien2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
483952284Sobrien
484090075Sobrien	* g++.1: Change to be ".so man1/gcc.1".
484152284Sobrien
484290075Sobrien2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
484352284Sobrien
484490075Sobrien	* Make-lang.in (c++.info, c++.install-info): Build and install g++
484590075Sobrien	internals info.
484690075Sobrien	(c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
484790075Sobrien	($(srcdir)/cp/g++int.info): New target.
484890075Sobrien	* gxxint.texi: Add info directory entry.  Use @@ in email address.
484990075Sobrien	* .cvsignore: Update.
485052284Sobrien
485190075Sobrien2001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
485252284Sobrien
485390075Sobrien	* typeck.c (build_c_cast): Do template processing earlier.
485490075Sobrien	Always pedwarn on array casts.
485552284Sobrien
485690075Sobrien2001-01-12  Nathan Sidwell  <nathan@codesourcery.com>
485752284Sobrien
485890075Sobrien	* friend.c (make_friend_class): Make sure a templated class is
485990075Sobrien	actually a template.
486052284Sobrien
486190075Sobrien2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
486252284Sobrien
486390075Sobrien	* decl2.c (get_guard): Set linkage from guarded decl.
486452284Sobrien
486590075Sobrien2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
486652284Sobrien
486790075Sobrien	* call.c (convert_default_arg): Check for unprocessed
486890075Sobrien	DEFAULT_ARG.
486990075Sobrien	* cp-tree.h (replace_defarg): Move to spew.c.
487090075Sobrien	(maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
487190075Sobrien	spew.c, which is where they really are.
487290075Sobrien	(done_pending_defargs): Declare.
487390075Sobrien	(unprocessed_defarg_fn): Declare.
487490075Sobrien	* decl.c (replace_defarg): Move to spew.c
487590075Sobrien	* parse.y (structsp): Call done_pending_defargs.
487690075Sobrien	* spew.c (defarg_fns): Rearrange list structure.
487790075Sobrien	(defarg_fnsdone): New static variable.
487890075Sobrien	(defarg_depfns): New static variable.
487990075Sobrien	(init_spew): Adjust.
488090075Sobrien	(add_defarg_fn): Store the type in TREE_TYPE.
488190075Sobrien	(do_pending_defargs): Detect and deal with ordering constraints
488290075Sobrien	and circularity.
488390075Sobrien	(done_pending_defargs): New function.
488490075Sobrien	(unprocessed_defarg_fn): New function.
488590075Sobrien	(replace_defarg): Moved from decl.c. Robustify. Don't save
488690075Sobrien	if circularity detected.
488752284Sobrien
488890075Sobrien2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
488952284Sobrien
489090075Sobrien	* pt.c (unify): Check array has a domain, before checking
489190075Sobrien	whether it is variable sized.
489252284Sobrien
489390075Sobrien2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
489452284Sobrien
489590075Sobrien	* decl.c (grokparms): Unobfuscate and get correct diagnostic for
489690075Sobrien	parameters with pointers to arrays of unknown bound.
489752284Sobrien
489890075Sobrien2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
489952284Sobrien
490090075Sobrien	* parse.y (template_parm_header, template_spec_header): New
490190075Sobrien	reductions. Split out from ...
490290075Sobrien	(template_header): ... here. Use them.
490390075Sobrien	(template_template_parm): Use template_parm_header.
490490075Sobrien	* semantics.c (finish_template_template_parm): Add assert.
490552284Sobrien
490690075Sobrien2001-01-10  Mark Mitchell  <mark@codesourcery.com>
490752284Sobrien
490890075Sobrien	* mangle.c (write_builtin_type): Fix thinko.
490952284Sobrien
491090075Sobrien	* pt.c (copy_default_args_to_explicit_spec_1): New function.
491190075Sobrien	(copy_default_args_to_explicit_spec): Likewise.
491290075Sobrien	(check_explicit_specialization): Use it.
491352284Sobrien
491490075Sobrien	* class.c (finish_struct_1):  Remove last argument in call to
491590075Sobrien	make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
491690075Sobrien	* decl.c (builtin_function): Likewise.
491790075Sobrien	(build_cp_library_fn): Likewise.
491890075Sobrien	(check_initializer): Likewise.
491990075Sobrien	(make_rtl_for_nonlocal_decl): Likewise.
492090075Sobrien	(cp_finish_decl): Likewise.
492190075Sobrien	(start_function): Likewise.
492290075Sobrien	* decl2.c (finish_anon_union): Likewise.
492352284Sobrien	* friend.c (do_friend): Likewise.
492490075Sobrien	* init.c (build_java_class_ref): Likewise.
492590075Sobrien	* method.c (make_thunk): Likewise.
492690075Sobrien	* pt.c (tsubst_friend_function): Likewise.
492790075Sobrien	* semantics.c (expand_body): Likewise.
492852284Sobrien
492990075Sobrien2001-01-10  Mark Mitchell  <mark@codesourcery.com>
493052284Sobrien
493190075Sobrien	* cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
493290075Sobrien	looking at DECL_CLONED_FUNCTION for non-functions.
493352284Sobrien
493490075Sobrien2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
493552284Sobrien
493690075Sobrien	* error.c (dump_template_parameter): Use parm to determine how
493790075Sobrien	to print default value.
493852284Sobrien
493990075Sobrien2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
494052284Sobrien
494190075Sobrien	* class.c (duplicate_tag_error): Clear more flags.
494252284Sobrien
494390075Sobrien2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
494452284Sobrien
494590075Sobrien	* call.c (build_new_method_call): Use binfo_for_vbase.
494652284Sobrien
494790075Sobrien2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
494852284Sobrien
494990075Sobrien	* cp-tree.h (flag_cond_mismatch): Don't declare.
495090075Sobrien	* decl2.c (flag_cond_mismatch): Don't define.
495190075Sobrien	(lang_f_options): Remove cond-mismatch.
495290075Sobrien	(unsupported_options): Add cond-mismatch.
495352284Sobrien
495490075Sobrien2001-01-09  Nathan Sidwell  <nathan@codesourcery.com>
495552284Sobrien
495690075Sobrien	* class.c (handle_using_decl): Reject using of constructor name
495790075Sobrien	of sourcing class. Allow injecting of a method with same name as
495890075Sobrien	nested class. Fixup error messages.
495952284Sobrien
496090075Sobrien2001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
496152284Sobrien
496290075Sobrien	* decl2.c (lang_decode_option): Handle -Wformat=2.
496350397Sobrien
496490075Sobrien2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
496552284Sobrien
496690075Sobrien	* cp-tree.h (lang_decl_flags): Rename defined_in_class to
496790075Sobrien	initialized_in_class.
496890075Sobrien	(DECL_DEFINED_IN_CLASS_P): Rename to ...
496990075Sobrien	(DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
497090075Sobrien	* decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
497190075Sobrien	(cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
497290075Sobrien	* pt.c (check_default_tmpl_args): Adjust for
497390075Sobrien	DECL_INITIALIZED_IN_CLASS_P.
497490075Sobrien	(instantiate_class_template): Likewise.
497590075Sobrien	(instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
497652284Sobrien
497790075Sobrien	* class.c (finish_struct): Constify saved_filename.
497852284Sobrien
497990075Sobrien2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
498052284Sobrien
498190075Sobrien	* class.c (duplicate_tag_error): Adjust diagnostic.
498290075Sobrien	(finish_struct): Locally set location to start of struct.
498390075Sobrien	* decl.c (fixup_anonymous_aggr): Use cp_error_at.
498452284Sobrien
498590075Sobrien2001-01-08  Nathan Sidwell  <nathan@codesourcery.com>
498650397Sobrien
498790075Sobrien	* decl.c (struct binding_level): Adjust class_shadowed comments
498890075Sobrien	to reflect reality.
498990075Sobrien	(push_class_level_binding): Adjust comments to reflect reality.
499090075Sobrien	Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
499190075Sobrien	Don't set TREE_VALUE on the class_shadowed list.
499252284Sobrien
499390075Sobrien2001-01-07  Alexandre Petit-Bianco  <apbianco@cygnus.com>
499452284Sobrien
499590075Sobrien	* decl2.c (acceptable_java_type): Allow references too.
499690075Sobrien	* init.c (build_java_class_ref): When using the new ABI, search
499790075Sobrien	`class$' and have it mangled with `mangle_decl.'
499890075Sobrien	* mangle.c (write_java_integer_type_codes): New function.
499990075Sobrien	(write_builtin_type): Detect and mangle Java integer and real
500090075Sobrien	types.
500152284Sobrien
500290075Sobrien2001-01-07  Mark Mitchell  <mark@codesourcery.com>
500352284Sobrien
500490075Sobrien	* decl2.c (grokfield): Don't accept `asm' specifiers for
500590075Sobrien	non-static data members.
500652284Sobrien
500790075Sobrien2001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
500852284Sobrien
500990075Sobrien	* expr.c (cplus_expand_expr): Don't reset `target'.
501050397Sobrien
501190075Sobrien2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
501250397Sobrien
501390075Sobrien	* cp/decl2.c (cxx_post_options): Call cpp_post_options.
501452284Sobrien
501590075Sobrien2001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
501652284Sobrien
501790075Sobrien	* parse.y (template_datadef): Check for error_mark_node.
501852284Sobrien
501990075Sobrien2001-01-05  Nathan Sidwell  <nathan@codesourcery.com>
502052284Sobrien
502190075Sobrien	* cp-tree.def (DEFAULT_ARG): Make `x' class.
502252284Sobrien
502390075Sobrien2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
502452284Sobrien
502590075Sobrien	* decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
502690075Sobrien	(record_builtin_type): Make non-static.
502790075Sobrien	(flag_short_double): Don't declare.
502890075Sobrien	(init_decl_processing): Remove the creation of many tree nodes now
502990075Sobrien	in c_common_nodes_and_builtins.
503090075Sobrien	(build_void_list_node): New function.
503190075Sobrien	* decl2.c (flag_short_double, flag_short_wchar): Don't define.
503290075Sobrien	* cp-tree.h (flag_short_wchar): Don't declare.
503352284Sobrien
503490075Sobrien2001-01-04  Mark Mitchell  <mark@codesourcery.com>
503552284Sobrien
503690075Sobrien	* call.c (build_conv): Don't use build1 for USER_CONV.
503790075Sobrien	* pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
503852284Sobrien
503990075Sobrien2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
504052284Sobrien
504190075Sobrien	* lex.c (lang_init): Call c_common_lang_init.
504252284Sobrien
504390075Sobrien2001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
504452284Sobrien
504590075Sobrien	* search.c (lookup_fnfields_here): Remove.
504690075Sobrien	(look_for_overrides_r): Use lookup_fnfields_1.
504790075Sobrien	Ignore functions from using declarations.
504852284Sobrien
504990075Sobrien2001-01-03  Nathan Sidwell  <nathan@codesourcery.com>
505052284Sobrien
505190075Sobrien	Implement exceptions specifiers for implicit member functions.
505290075Sobrien	* cp-tree.h (merge_exceptions_specifiers): Declare new function.
505390075Sobrien	* method.c (synthesize_exception_spec): New function.
505490075Sobrien	(locate_dtor, locate_ctor, locate_copy): New functions.
505590075Sobrien	(implicitly_declare_fn): Generate the exception spec too.
505690075Sobrien	* search.c (check_final_overrider): Check artificial functions
505790075Sobrien	too.
505890075Sobrien	* typeck2.c (merge_exception_specifiers): New function.
505950397Sobrien
506090075Sobrien2001-01-03  Jason Merrill  <jason@redhat.com>
506152284Sobrien
506290075Sobrien	* init.c (build_default_init): New fn.
506390075Sobrien	(perform_member_init): Split out from here.
506490075Sobrien	(build_new_1): Use it.  Simplify initialization logic.
506590075Sobrien	(build_vec_init): Take an array, rather than a pointer and maxindex.
506690075Sobrien	Speed up simple initializations.  Don't clean up if we're assigning.
506790075Sobrien	* cp-tree.h: Adjust.
506890075Sobrien	* decl2.c (do_static_initialization): Remove TREE_VEC case.
506990075Sobrien	* parse.y (new_initializer): Return void_zero_node for ().
507090075Sobrien	* typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
507190075Sobrien	* typeck2.c (digest_init): Only complain about user-written
507290075Sobrien	CONSTRUCTORs.
507350397Sobrien
507490075Sobrien2000-12-22  Mike Stump  <mrs@wrs.com>
507552284Sobrien
507690075Sobrien	* decl2.c: (max_tinst_depth): Increase to 50.
507752284Sobrien
507890075Sobrien2001-01-02  Mark Mitchell  <mark@codesourcery.com>
507952284Sobrien
508090075Sobrien	* class.c (invalidate_class_lookup_cache): Zero the
508190075Sobrien	previous_class_values.
508290075Sobrien	* cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
508390075Sobrien	TREE_INT_CST_HIGH.
508490075Sobrien	(CLASSTYPE_TEMPLATE_LEVEL): Likewise.
508590075Sobrien	* decl.c (free_bindings): New variable.
508690075Sobrien	(push_binding): Don't create a new binding if we have one on the
508790075Sobrien	free list.
508890075Sobrien	(pop_binding): Put old bindings on the free list.
508990075Sobrien	(init_decl_processing): Use size_int, not build_int_2.
509090075Sobrien	Register free_bindings as a GC root.
509190075Sobrien	(cp_make_fname_decl): Use size_int, not build_int_2.
509290075Sobrien	(push_inline_template_parms_recursive): Likewise.
509390075Sobrien	(end_template_parm_list): Likewise.
509490075Sobrien	(for_each_tempalte_parm): Do not use walk_tree_without_duplicates.
509590075Sobrien	(tsubst_template_parms): Use size_int, not build_int_2.
509652284Sobrien	(tsubst): Likewise.
509790075Sobrien	* rtti.c (get_vmi_pseudo_type_info): Likewise.
509852284Sobrien
509990075Sobrien2001-01-02  Richard Henderson  <rth@redhat.com>
510052284Sobrien
510190075Sobrien	* parse.y (asm): Set ASM_INPUT_P.
510252284Sobrien
510390075Sobrien2001-01-02  Jason Merrill  <jason@redhat.com>
510452284Sobrien
510590075Sobrien	* tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
510690075Sobrien	for v3 ABI.
510752284Sobrien
510890075Sobrien	* typeck.c (cp_truthvalue_conversion): New fn.
510990075Sobrien	* cvt.c (ocp_convert): Use it.
511052284Sobrien
511190075Sobrien	* cp-tree.h: Lose c-common.c decls.
511252284Sobrien
511390075Sobrien	* typeck.c (build_unary_op): Restore old &a.f diagnostic code.
511490075Sobrien	* cvt.c (convert_to_void): Use type_unknown_p.
511552284Sobrien
511690075Sobrien	* typeck.c (strip_all_pointer_quals): Also strip quals from
511790075Sobrien	pointer-to-member types.
511852284Sobrien
511990075Sobrien	* Make-lang.in (cp/TAGS): Use --no-globals.  Ignore parse.c, and treat
512090075Sobrien	parse.y as C.
512152284Sobrien
512290075Sobrien	* call.c (build_new_method_call): Do evaluate the object parameter
512390075Sobrien	when accessing a static member.
512490075Sobrien	* typeck.c (build_component_ref): Likewise.
512552284Sobrien
512690075Sobrien2001-01-02  Andreas Jaeger  <aj@suse.de>
512752284Sobrien
512890075Sobrien	* decl.c (cp_missing_noreturn_ok_p): New.
512990075Sobrien	(init_decl_processing): Set lang_missing_noreturn_ok_p.
513052284Sobrien
513190075Sobrien2000-12-29  Jakub Jelinek  <jakub@redhat.com>
513252284Sobrien
513390075Sobrien	* decl.c (init_decl_processing): Fix sign of wchar_type_node.
513452284Sobrien
513590075Sobrien2000-12-29  Mark Mitchell  <mark@codesourcery.com>
513652284Sobrien
513790075Sobrien	* class.c (pushclass): Remove #if 0'd code.
513890075Sobrien	* cp-tree.h (overload_template_name): Remove.
513990075Sobrien	* decl.c (store_bindings): Simplify.
514090075Sobrien	(pop_from_top_level): Likewise.
514190075Sobrien	* pt.c (overload_template_name): Remove.
514290075Sobrien	(instantiate_decl): Don't call push_to_top_level if it's not
514390075Sobrien	needed.
514452284Sobrien
514590075Sobrien2000-12-28  Mark Mitchell  <mark@codesourcery.com>
514650397Sobrien
514790075Sobrien	* pt.c (register_local_specialization): Don't return a value.
514890075Sobrien	(lookup_template_class): Use move-to-front heuristic when looking
514990075Sobrien	up template instantiations.
515090075Sobrien	(instantiate_decl): Only push_to_top_level when we're actually
515190075Sobrien	going to instantiate the template.
515250397Sobrien
515390075Sobrien2000-12-29  Hans-Peter Nilsson  <hp@bitrange.com>
515450397Sobrien
515590075Sobrien	* search.c (binfo_for_vtable): Return least derived class, not
515690075Sobrien	most.  Handle secondary vtables.
515752284Sobrien
515890075Sobrien2000-12-22  Jason Merrill  <jason@redhat.com>
515952284Sobrien
516090075Sobrien	* pt.c (more_specialized): Don't optimize len==0.
516190075Sobrien	(fn_type_unification): If we're adding the return type, increase len.
516250397Sobrien
516390075Sobrien	* typeck.c (build_binary_op): Fix pmf comparison logic.
516450397Sobrien
516590075Sobrien	* call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
516690075Sobrien	DECL_STATIC_FUNCTION_P.
516752284Sobrien
516890075Sobrien	* semantics.c (genrtl_finish_function): Don't try to jump to
516990075Sobrien	return_label unless it exists.
517052284Sobrien
517190075Sobrien	In partial ordering for a call, ignore parms for which we don't have
517290075Sobrien	a real argument.
517390075Sobrien	* call.c (joust): Pass len to more_specialized.
517490075Sobrien	(add_template_candidate_real): Strip 'this', pass len.
517590075Sobrien	* pt.c (more_specialized): Pass len down.  Lose explicit_args parm.
517690075Sobrien	(get_bindings_order): New fn.  Pass len down.
517790075Sobrien	(get_bindings_real): Strip 'this', pass len.
517890075Sobrien	(fn_type_unification): Likewise.
517990075Sobrien	(type_unification_real): Succeed after checking 'len' args.
518090075Sobrien	(most_specialized_instantiation): Lose explicit_args parm.
518190075Sobrien	* class.c (resolve_address_of_overloaded_function): Strip 'this',
518290075Sobrien	pass len.
518350397Sobrien
518490075Sobrien2000-12-21  Jason Merrill  <jason@redhat.com>
518550397Sobrien
518690075Sobrien	* pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
518790075Sobrien	DECL_TEMPLATE_RESULT.
518850397Sobrien
518990075Sobrien	* search.c (lookup_field_r): Call lookup_fnfields_1, not
519090075Sobrien	lookup_fnfields_here.
519150397Sobrien
519290075Sobrien	* parse.y (typename_sub2): Return the TYPE_DECL, not the type.
519350397Sobrien
519490075Sobrien	* call.c (build_object_call): Also allow conversions that return
519590075Sobrien	reference to pointer to function.
519690075Sobrien	(add_conv_candidate): Handle totype being ref to ptr to fn.
519790075Sobrien	(build_field_call): Also allow members of type reference to function.
519890075Sobrien	Lose support for calling pointer to METHOD_TYPE fields.
519952284Sobrien
520090075Sobrien	* error.c (dump_expr): Handle *_CAST_EXPR.
520152284Sobrien
520290075Sobrien	* typeck2.c (build_scoped_ref): Always convert to the naming class.
520350397Sobrien
520490075Sobrien	* tree.c (break_out_cleanups): Lose.
520590075Sobrien	* cp-tree.h: Remove prototype.
520690075Sobrien	* typeck.c (build_component_ref): Don't break_out_cleanups.
520790075Sobrien	(build_compound_expr): Likewise.
520890075Sobrien	* semantics.c (finish_expr_stmt): Likewise.
520950397Sobrien
521090075Sobrien2000-12-20  Richard Henderson  <rth@redhat.com>
521150397Sobrien
521290075Sobrien	* cp-tree.h: Update declarations.
521390075Sobrien	* decl.c (finish_case_label): Return the new stmt node.
521490075Sobrien	* semantics.c (finish_goto_stmt): Likewise.
521590075Sobrien	(finish_expr_stmt, finish_return_stmt): Likewise.
521690075Sobrien	(finish_break_stmt, finish_continue_stmt): Likewise.
521790075Sobrien	(finish_asm_stmt): Likewise.
521890075Sobrien	* parse.y (already_scoped_stmt): Set STMT_LINENO.
521990075Sobrien	(compstmt, implicitly_scoped_stmt, stmt): Likewise.
522090075Sobrien	(simple_if, simple_stmt): Return the new stmt node.
522190075Sobrien	(save_lineno): New.
522250397Sobrien
522390075Sobrien2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
522450397Sobrien
522590075Sobrien	* cp-tree.h: Don't declare warn_long_long.
522650397Sobrien
522790075Sobrien2000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
522850397Sobrien
522990075Sobrien	* tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
523090075Sobrien	IS_AGGR_TYPE.
523150397Sobrien
523290075Sobrien2000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
523350397Sobrien
523490075Sobrien	* pt.c (unify): Handle when both ARG and PARM are
523590075Sobrien	BOUND_TEMPLATE_TEMPLATE_PARM.
523650397Sobrien
523790075Sobrien2000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
523850397Sobrien
523990075Sobrien	* pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
524090075Sobrien	DECL_TEMPLATE_PARM_P.
524150397Sobrien
524290075Sobrien2000-12-15  Jason Merrill  <jason@redhat.com>
524350397Sobrien
524490075Sobrien	* init.c (build_new_1): Reorganize.  Now with 100% fewer SAVE_EXPRs!
524550397Sobrien
524690075Sobrien	* init.c (build_new_1): Don't strip quals from type.
524750397Sobrien
524890075Sobrien	* decl.c (pushdecl): Don't check for linkage on a non-decl.
524950397Sobrien
525090075Sobrien	* call.c (build_op_delete_call): See through ARRAY_TYPEs.
525150397Sobrien
525290075Sobrien	* call.c (build_new_function_call): Lose space before paren in
525390075Sobrien	error message.
525490075Sobrien	(build_new_method_call): Likewise.
525550397Sobrien
525690075Sobrien	* typeck2.c (build_m_component_ref): Propagate quals from datum.
525750397Sobrien
525890075Sobrien2000-12-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
525950397Sobrien
526090075Sobrien	* pt.c (check_explicit_specialization): Propagate default
526190075Sobrien	function arguments to explicit specializations.
526252284Sobrien
526390075Sobrien2000-12-13  DJ Delorie  <dj@redhat.com>
526452284Sobrien
526590075Sobrien	* typeck.c (build_binary_op): Do signed/unsigned warnings for >?
526690075Sobrien	and <? operators.
526750397Sobrien
526890075Sobrien2000-12-08  Jason Merrill  <jason@redhat.com>
526950397Sobrien
527090075Sobrien	* error.c (dump_function_name): Don't let the user see __comp_ctor.
527150397Sobrien
527290075Sobrien	Clean up copy-initialization in overloading code.
527390075Sobrien	* call.c (build_user_type_conversion_1): Die if we are asked to
527490075Sobrien	convert to the same or a base type.
527590075Sobrien	(implicit_conversion): Avoid doing so.  Lose reference binding code.
527690075Sobrien	(convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
527790075Sobrien	direct-initialization.  Also do direct-init part of copy-init.
527890075Sobrien	(build_user_type_conversion): Don't provide context to convert_like.
527990075Sobrien	* cvt.c (ocp_convert): build_user_type_conversion will now provide
528090075Sobrien	the constructor call for copy-init.
528150397Sobrien
528290075Sobrien	* pt.c (tsubst_decl): Call clone_function_decl here if this is an
528390075Sobrien	instantiation of a member template.
528490075Sobrien	(do_decl_instantiation): Not here.
528552284Sobrien
528690075Sobrien2000-12-07  Nathan Sidwell  <nathan@codesourcery.com>
528718334Speter
528890075Sobrien	* class.c (check_field_decls): Don't special case anonymous
528990075Sobrien	fields in error messages.
529090075Sobrien	(note_name_declared_in_class): Use %D on diagnostic.
529118334Speter
529290075Sobrien	* tree.c (pod_type_p): Use strip_array_types.
529390075Sobrien	(cp_valid_lang_attribute): Likewise.
529490075Sobrien	* typeck.c (cp_type_quals): Strip arrays separately, to avoid
529590075Sobrien	multiple evaluations.
529690075Sobrien	(cp_has_mutable_p): Use strip_array_types.
529718334Speter
529890075Sobrien2000-12-07  Nathan Sidwell  <nathan@codesourcery.com>
529918334Speter
530090075Sobrien	* cp-tree.h (sufficient_parms_p): Declare new function.
530190075Sobrien	* call.c (sufficient_parms_p): New function, broken out of ...
530290075Sobrien	(add_function_candidate): ... here. Use it.
530390075Sobrien	(add_conv_candidate): Use it.
530490075Sobrien	* decl.c (grok_ctor_properties): Use it.
530518334Speter
530690075Sobrien2000-12-07  Jakub Jelinek  <jakub@redhat.com>
530718334Speter
530890075Sobrien	* optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
530918334Speter
531090075Sobrien2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
531118334Speter
531290075Sobrien	* decl2.c (lang_decode_option): Handle -Wformat-security.
531318334Speter
531490075Sobrien2000-12-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
531518334Speter
531690075Sobrien	* pt.c (verify_class_unification): New function.
531790075Sobrien	(get_class_bindings): Use it.
531890075Sobrien	(try_class_unification): Tidy.
531990075Sobrien	(unify): Handle when argument of a template-id is not
532090075Sobrien	template parameter dependent.
532190075Sobrien	(template_args_equal): Handle when TREE_CODE's do not match.
532218334Speter
532390075Sobrien2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
532418334Speter
532590075Sobrien	* lang-specs.h (c++): When invoking the stand-alone preprocessor
532690075Sobrien	for -save-temps, pass all relevant -Defines to it, and then don't
532790075Sobrien	pass them to cc1plus.
532818334Speter
532990075Sobrien2000-12-05  Will Cohen  <wcohen@redhat.com>
533018334Speter
533190075Sobrien	* decl.c (finish_case_label): Cleared
533290075Sobrien	more_cleanups_ok in surrounding function scopes.
533390075Sobrien	(define_label): Likewise.
533418334Speter
533590075Sobrien2000-12-05  Nathan Sidwell  <nathan@codesourcery.com>
533618334Speter
533790075Sobrien	* cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
533890075Sobrien	(get_matching_virtual): Remove.
533990075Sobrien	(look_for_overrides): Declare new function.
534090075Sobrien	* decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
534190075Sobrien	DECL_VINDEX here.
534290075Sobrien	* class.c (check_for_override): Move base class iteration code
534390075Sobrien	to look_for_overrides.
534490075Sobrien	* search.c (next_baselink): Remove.
534590075Sobrien	(get_virtuals_named_this): Remove.
534690075Sobrien	(get_virtual_destructor): Remove.
534790075Sobrien	(tree_has_any_destructors_p): Remove.
534890075Sobrien	(struct gvnt_info): Remove.
534990075Sobrien	(check_final_overrider): Remove `virtual' from error messages.
535090075Sobrien	(get_matching_virtuals): Remove. Move functionality to ...
535190075Sobrien	(look_for_overrides): ... here, and ...
535290075Sobrien	(look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
535390075Sobrien	to be overriding.
535418334Speter
535590075Sobrien2000-12-05  Nathan Sidwell  <nathan@codesourcery.com>
535618334Speter
535790075Sobrien	* typeck.c (get_delta_difference): If via a virtual base,
535890075Sobrien	return zero.
535990075Sobrien	* cvt.c (cp_convert_to_pointer): If via a virtual base, do no
536090075Sobrien	adjustment.
536118334Speter
536290075Sobrien2000-12-04  Richard Henderson  <rth@redhat.com>
536318334Speter
536490075Sobrien	* error.c (dump_tree): Use output_add_string not OB_PUTS.
536518334Speter
536690075Sobrien2000-12-04  Jason Merrill  <jason@redhat.com>
536718334Speter
536890075Sobrien	* mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
536990075Sobrien	(write_builtin_type): Pass intSI_type_node and the like through
537090075Sobrien	type_for_mode.
537190075Sobrien	* method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
537290075Sobrien	Pass intSI_type_node and the like through type_for_mode.
537390075Sobrien	* decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
537490075Sobrien	* pt.c (tsubst, unify): Likewise.
537590075Sobrien	* tree.c (walk_tree): Likewise.
537690075Sobrien	* error.c (dump_type): Likewise.
537790075Sobrien	(dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
537818334Speter
537990075Sobrien	* Make-lang.in: Tweak top comment for emacs.
538090075Sobrien	(cp/TAGS): Restore.
538118334Speter
538290075Sobrien	* except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
538318334Speter
538490075Sobrien	* class.c (clone_function_decl): Robustify.
538518334Speter
538690075Sobrien2000-12-04  Michael Matz  <matzmich@cs.tu-berlin.de>
538718334Speter
538890075Sobrien	* decl.c (store_bindings): Only search in the non modified
538990075Sobrien	old_bindings for duplicates.
539018334Speter
539190075Sobrien2000-12-04  Nathan Sidwell  <nathan@codesourcery.com>
539218334Speter
539390075Sobrien	* error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
539490075Sobrien	TYPE_POLYMORPHIC_P.
539518334Speter
539690075Sobrien	* typeck.c (build_static_cast): Remove unused variable.
539718334Speter
539890075Sobrien2000-12-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
539918334Speter
540090075Sobrien	* pt.c: Fix typo in comment.
540118334Speter
540290075Sobrien2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
540318334Speter
540490075Sobrien	* decl2.c (warn_format): Remove definition.
540590075Sobrien	(lang_decode_option): Handle -Wformat-nonliteral,
540690075Sobrien	-Wno-format-extra-args and -Wno-format-y2k.  Use set_Wformat.
540718334Speter
540890075Sobrien2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
540918334Speter
541090075Sobrien	* decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
541190075Sobrien	(init_decl_processing): Don't create string_type_node,
541290075Sobrien	const_string_type_node, wint_type_node, intmax_type_node,
541390075Sobrien	uintmax_type_node, default_function_type, ptrdiff_type_node and
541490075Sobrien	unsigned_ptrdiff_type_node.  Adjust position of call to
541590075Sobrien	c_common_nodes_and_builtins.
541690075Sobrien	(identifier_global_value): New function.
541718334Speter
541890075Sobrien2000-12-01  Nathan Sidwell  <nathan@codesourcery.com>
541918334Speter
542090075Sobrien	* call.c (standard_conversion): Reject pointer to member
542190075Sobrien	conversions from ambiguous, inaccessible or virtual bases.
542290075Sobrien	* typeck.c (build_static_cast): Don't check pointers to members
542390075Sobrien	specially.
542418334Speter
542590075Sobrien2000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
542618334Speter
542790075Sobrien	* method.c (do_build_copy_constructor): Preserve cv
542890075Sobrien	qualifications when accessing source object members.
542990075Sobrien	(do_build_assign_ref): Likewise. Remove separate diagnostics for
543090075Sobrien	unnamed fields.
543118334Speter
543290075Sobrien2000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
543318334Speter
543490075Sobrien	* method.c (do_build_assign_ref): Construct appropriately
543590075Sobrien	CV-qualified base reference. Don't allow const casts in base
543690075Sobrien	conversion.
543718334Speter
543890075Sobrien2000-11-30  Nathan Sidwell  <nathan@codesourcery.com>
543918334Speter
544090075Sobrien	* call.c (build_over_call): Use VOID_TYPE_P. Don't die on
544190075Sobrien	incomplete return type.
544218334Speter
544390075Sobrien2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
544418334Speter
544590075Sobrien	* parse.y (base_class.1): Produce a _TYPE not a _DECL.
544690075Sobrien	* semantics.c (finish_base_specifier): Accept a _TYPE not a
544790075Sobrien	_DECL.
544852284Sobrien
544990075Sobrien2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
545052284Sobrien
545190075Sobrien	* spew.c (yyerror): Cope if yylval.ttype is NULL.
545252284Sobrien
545390075Sobrien2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
545418334Speter
545590075Sobrien	* decl.c (grokdeclarator): Diagnose undefined template contexts.
545618334Speter
545790075Sobrien2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>
545818334Speter
545990075Sobrien	* decl.c (grokdeclarator): Do type access control on friend
546090075Sobrien	class.
546118334Speter
546290075Sobrien2000-11-27  Nathan Sidwell  <nathan@codesourcery.com>
546318334Speter
546490075Sobrien	* decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
546590075Sobrien	bison parser ickiness.
546690075Sobrien	* pt.c (tsubst_friend_function): Enter namespace scope when
546790075Sobrien	tsubsting the function name.
546890075Sobrien	* cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
546918334Speter
547090075Sobrien2000-11-27  Nathan Sidwell  <nathan@codesourcery.com>
547118334Speter
547290075Sobrien	* cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
547390075Sobrien	* cvt.c (cp_convert_to_pointer): Add force parameter.
547490075Sobrien	Allow conversions via virtual base if forced.
547590075Sobrien	(convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
547690075Sobrien	(ocp_convert): Likewise.
547790075Sobrien	* search.c (binfo_from_vbase): Return the virtual base's binfo.
547890075Sobrien	* typeck.c (get_delta_difference): Adjust handling of virtual
547990075Sobrien	bases.
548018334Speter
548190075Sobrien2000-11-26  Mark Mitchell  <mark@codesourcery.com>
548252284Sobrien
548390075Sobrien	* tree.c (struct list_hash): Remove.
548490075Sobrien	(list_hash_table): Make it be an htab.
548590075Sobrien	(struct list_proxy): New type.
548690075Sobrien	(list_hash_eq): New function.
548790075Sobrien	(list_hash_pieces): Renamed from ...
548890075Sobrien	(list_hash): ... this.
548990075Sobrien	(list_hash_lookup): Remove.
549090075Sobrien	(list_hash_add): Remove.
549190075Sobrien	(hash_tree_cons): Use the generic hashtable.
549290075Sobrien	(mark_list_hash): Remove.
549390075Sobrien	(init_tree): Create the hashtable.
549418334Speter
549590075Sobrien2000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>
549618334Speter
549790075Sobrien	* method.c (build_mangled_C9x_name): Rename to
549890075Sobrien	build_mangled_C99_name.  Change C9X references in comments to
549990075Sobrien	refer to C99.
550018334Speter
550190075Sobrien2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
550218334Speter
550390075Sobrien	* parse.y (unary_expr): Move VA_ARG from here ...
550490075Sobrien	(primary): ... to here.
550518334Speter
550690075Sobrien2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
550718334Speter
550890075Sobrien	* semantics.c (finish_id_expr): If type is error_mark, return
550990075Sobrien	error_mark.
551018334Speter
551190075Sobrien2000-11-23  Nathan Sidwell  <nathan@codesourcery.com>
551218334Speter
551390075Sobrien	* pt.c (lookup_template_class): Simplify loop exit constructs.
551490075Sobrien	Cope when there is no partial instantiation of a template
551590075Sobrien	template member.
551618334Speter
551790075SobrienThu Nov 23 02:16:47 2000  J"orn Rennecke <amylaar@redhat.com>
551818334Speter
551990075Sobrien	* Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
552018334Speter
552190075Sobrien2000-11-22  Mark Mitchell  <mark@codesourcery.com>
552218334Speter
552390075Sobrien	* mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
552490075Sobrien	prefix.
552518334Speter
552690075Sobrien	* pt.c (do_decl_instantiate): Explicitly clone constructors and
552790075Sobrien	destructors that haven't already been cloned.
552818334Speter
552990075Sobrien2000-11-20  Richard Henderson  <rth@redhat.com>
553018334Speter
553190075Sobrien	* parse.y (yyparse_1): Rename the parser entry point.
553218334Speter
553390075Sobrien2000-11-20  Alex Samuel  <samuel@codesourcery.com>
553418334Speter
553590075Sobrien	* mangle.c (write_name): Use <unscoped-name> for names directly in
553690075Sobrien	function scope.
553790075Sobrien	(write_unscoped_name): Accept names directly in function scope.
553818334Speter
553990075Sobrien2000-11-20  Nathan Sidwell  <nathan@codesourcery.com>
554018334Speter
554190075Sobrien	* lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
554290075Sobrien	* parse.y (extdef): Add EXPORT reduction.
554390075Sobrien	* spew.c (yylex): Don't skip export here.
554418334Speter
554590075Sobrien2000-11-19  Mark Mitchell  <mark@codesourcery.com>
554618334Speter
554790075Sobrien	* decl.c (init_decl_processing): Correct name of pure virtual
554890075Sobrien	function under the new ABI.
554990075Sobrien	* rtti.c (throw_bad_cast): Likewise, for bad cast function.
555090075Sobrien	(throw_bad_typeid): Likewise for bad typeid function.
555118334Speter
555290075Sobrien2000-11-18  Mark Mitchell  <mark@codesourcery.com>
555318334Speter
555490075Sobrien	* decl.c (grokparms): Don't even function types of `void' type,
555590075Sobrien	either.
555690075Sobrien	* mangle.c (write_type): Don't crash when confronted with the
555790075Sobrien	error_mark_node.
555818334Speter
555990075Sobrien	* decl.c (grokparms): Don't create parameters of `void' type.
556018334Speter
556190075Sobrien2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
556218334Speter
556390075Sobrien	* lex.c (mark_impl_file_chain): Delete.
556490075Sobrien	(init_parse): Remove call to ggc_add_string_root.  No need to
556590075Sobrien	ggc_strdup a string constant.  Do not add impl_file_chain to GC
556690075Sobrien	roots.
556790075Sobrien	(handle_pragma_implementation): No need to ggc_strdup main_filename.
556818334Speter
556990075Sobrien2000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
557018334Speter
557190075Sobrien	* pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
557218334Speter
557390075Sobrien2000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
557418334Speter
557590075Sobrien	* cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
557690075Sobrien	* decl.c (grokdeclarator): Don't reject void parms here.
557790075Sobrien	(require_complete_types_for_parms): Simplify, use
557890075Sobrien	complete_type_or_else.
557990075Sobrien	(grokparms): Remove bitrot. Remove funcdef parm.
558090075Sobrien	Deal with ellipsis parm lists here.
558190075Sobrien	* semantics.c (finish_parmlist): Don't append void_list_node
558290075Sobrien	here. Set PARMLIST_ELLIPSIS_P.
558318334Speter
558490075Sobrien2000-11-17  Nathan Sidwell  <nathan@codesourcery.com>
558518334Speter
558690075Sobrien	* typeck2.c (incomplete_type_error): Reorganise to avoid
558790075Sobrien	excessive diagnostics.
558818334Speter
558990075Sobrien2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
559018334Speter
559190075Sobrien	* lex.c (struct impl_files, internal_filename): Constify a char *.
559218334Speter
559390075Sobrien2000-11-16  Mark Mitchell  <mark@codesourcery.com>
559418334Speter
559590075Sobrien	* mangle.c (write_special_name_constructor): Don't generate
559690075Sobrien	assembler junk when confronted with an old-style constructor.
559790075Sobrien	(write_special_name_destructor): Likewise.
559890075Sobrien	(mangle_decl_string): Do it here instead.
559918334Speter
560090075Sobrien2000-11-16  Nathan Sidwell  <nathan@codesourcery.com>
560118334Speter
560290075Sobrien	* call.c (op_error): Make error messages clearer.
560318334Speter
560490075Sobrien2000-11-15  Mark Mitchell  <mark@codesourcery.com>
560518334Speter
560690075Sobrien	* decl.c (wrapup_globals_for_namespace): Don't mark things
560790075Sobrien	TREE_ASM_WRITTEN when they're not.
560818334Speter
560990075Sobrien2000-11-15  Jason Merrill  <jason@redhat.com>
561018334Speter
561190075Sobrien	* typeck2.c (friendly_abort): Uncount the error before handing
561290075Sobrien	off to fancy_abort.
561318334Speter
561490075Sobrien2000-11-15  Nathan Sidwell  <nathan@codesourcery.com>
561518334Speter
561690075Sobrien	* typeck.c (lookup_anon_field): Cope with qv qualifiers.
561718334Speter
561890075Sobrien2000-11-14  Mark Mitchell  <mark@codesourcery.com>
561918334Speter
562090075Sobrien	* class.c (build_vtbl_initializer): Fix typo in comment.
562190075Sobrien	* typeck.c (expr_sizeof): Don't crash on errors.
562218334Speter
562390075Sobrien2000-11-14  Jim Wilson  <wilson@redhat.com>
562418334Speter
562590075Sobrien	* lang-specs.h: Add %2 after %(cc1_options).
562618334Speter
562790075Sobrien2000-11-14  Richard Henderson  <rth@redhat.com>
562818334Speter
562990075Sobrien	* typeck.c (c_sizeof): Be strict about casting result value
563090075Sobrien	back to c_size_type_node.
563190075Sobrien	(expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
563218334Speter
563390075Sobrien2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
563418334Speter
563590075Sobrien	* typeck.c (build_unary_op): Use boolean_increment from
563690075Sobrien	c-common.c, moving the relevant code there.
563718334Speter
563890075Sobrien2000-11-11  Jason Merrill  <jason@redhat.com>
563918334Speter
564090075Sobrien	* typeck.c (mark_addressable): Don't call put_var_into_stack.
564118334Speter
564290075Sobrien	* decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
564390075Sobrien	in inlines.
564418334Speter
564590075Sobrien2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
564618334Speter
564790075Sobrien	* decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
564890075Sobrien	* lex.c (copy_lang_decl): Likewise.
564918334Speter
565090075Sobrien2000-11-09  Mark Mitchell  <mark@codesourcery.com>
565118334Speter
565290075Sobrien	* dump.c (cp_dump_tree): Don't dump function bodies here.
565318334Speter
565490075Sobrien	* Make-lang.in (CXX_C_OBJS): Add c-dump.o.
565590075Sobrien	(dump.o): Update dependency list.
565690075Sobrien	* cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
565790075Sobrien	(flag_dump_translation_unit): Likewise.
565890075Sobrien	(CP_TYPE_QUALS): Adjust definition.
565990075Sobrien	(DECL_C_BIT_FIELD): Remove.
566090075Sobrien	(SET_DECL_C_BIT_FIELD): Likewise.
566190075Sobrien	(CLEAR_DECL_C_BIT_FIELD): Likewise.
566290075Sobrien	(add_maybe_template): Likewise.
566390075Sobrien	(strip_array_types): Likewise.
566490075Sobrien	(dump_node_to_file): Likewise.
566590075Sobrien	(cp_dump_tree): New function.
566690075Sobrien	* decl.c (init_decl_processing): Set lang_dump_tree.
566790075Sobrien	* decl2.c (flag_dump_translation_unit): Remove.
566890075Sobrien	* dump.c: Move most of it to ../c-dump.c.
566990075Sobrien	(cp_dump_tree): New function.
567090075Sobrien	* pt.c (add_maybe_template): Remove.
567190075Sobrien	* typeck.c (strip_array_types): Likewise.
567218334Speter
567390075Sobrien2000-11-07  Eric Christopher  <echristo@redhat.com>
567418334Speter
567590075Sobrien	* decl.c (init_decl_processing): Change definition of
567690075Sobrien	__wchar_t to wchar_t.  Remove artificial declaration of
567790075Sobrien	wchar_t.
567890075Sobrien	* lex.c: Change instances of __wchar_t to wchar_t.
567918334Speter
568090075Sobrien2000-11-09  Nathan Sidwell  <nathan@codesourcery.com>
568118334Speter
568290075Sobrien	* lex.c (do_identifier): Don't lookup_name for operators.
568390075Sobrien	* parse.y (operator): Save looking_for_typename.
568490075Sobrien	(unoperator): Restore it.
568590075Sobrien	* spew.c (frob_opname): Use nth_token for lookahead.
568618334Speter
568790075Sobrien2000-11-08  Nathan Sidwell  <nathan@codesourcery.com>
568818334Speter
568990075Sobrien	* decl.c (grok_op_properties): Always use coerce_new_type and
569090075Sobrien	coerce_delete_type.
569190075Sobrien	* decl2.c (coerce_new_type): Use c_size_type_node. Preserve
569290075Sobrien	exception specification. Tidy up.
569390075Sobrien	(coerce_delete_type): Preserve exception specification. Tidy up.
569418334Speter
569590075Sobrien2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
569618334Speter
569790075Sobrien	* class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
569890075Sobrien	(push_binding_level), error.c (cp_tree_printer), pt.c
569990075Sobrien	(process_partial_specialization, tsubst_template_arg_vector),
570090075Sobrien	search.c (lookup_member): Use memset () instead of bzero ().
570118334Speter
570290075Sobrien2000-11-07  Nathan Sidwell  <nathan@codesourcery.com>
570318334Speter
570490075Sobrien	* decl.c (build_ptrmemfunc_type): Allow error_mark_node.
570518334Speter
570690075Sobrien2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
570718334Speter
570890075Sobrien	* Make-lang.in (c++.distdir): Remove.
570918334Speter
571090075Sobrien2000-11-04  Mark Mitchell  <mark@codesourcery.com>
571118334Speter
571290075Sobrien	* decl2.c (do_nonmember_using_decl): Allow `extern "C"'
571390075Sobrien	declarations from different namespaces to be combined.
571418334Speter
571590075Sobrien2000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>
571618334Speter
571790075Sobrien	* decl.c: Include tm_p.h.
571818334Speter
571990075Sobrien2000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
572018334Speter
572190075Sobrien	* tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
572218334Speter
572390075Sobrien2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
572418334Speter
572590075Sobrien	* dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
572690075Sobrien	(build_overload_value), repo.c (open_repo_file), xref.c
572790075Sobrien	(open_xref_file): Use strchr () and strrchr () instead of index ()
572890075Sobrien	and rindex ().
572918334Speter
573090075Sobrien2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
573118334Speter
573290075Sobrien	* call.c (build_over_call): Call fold on the CALL_EXPR.
573318334Speter
573490075Sobrien2000-11-01  Gabriel Dos Reis  <gdr@codesourcery.com>
573518334Speter
573690075Sobrien	* error.c (dump_template_decl): Separate template hearders with
573790075Sobrien	space not comma.
573818334Speter
573990075Sobrien2000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>
574018334Speter
574190075Sobrien	* error.c: Move TFF_ macros into cp-tree.h.  Throughout, replace
574290075Sobrien	TS_* flags with corresponding TFF_*.  Adjust prototypes of
574390075Sobrien	functions (which used to take a tree_string_flags) to take an int.
574418334Speter
574590075Sobrien	* cp-tree.h (enum tree_string_flags): Remove
574690075Sobrien	(TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
574790075Sobrien	TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
574890075Sobrien	TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
574990075Sobrien	TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
575090075Sobrien	TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
575190075Sobrien	TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
575290075Sobrien	(type_as_string, decl_as_string, expr_as_string,
575390075Sobrien	context_as_string): Adjust prototype.
575418334Speter
575590075Sobrien	* class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
575690075Sobrien	instead of TS_PLAIN.
575718334Speter
575890075Sobrien	* pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
575990075Sobrien	instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
576090075Sobrien	plain `0'.
576118334Speter
576290075Sobrien2000-10-30  Mark Mitchell  <mark@codesourcery.com>
576318334Speter
576490075Sobrien	* cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
576590075Sobrien	(linkage_kind): New enumeration.
576690075Sobrien	(decl_linkage): New function.
576790075Sobrien	* decl2.c (comdat_linkage): Extend comment.
576890075Sobrien	* error.c (dump_function_decl): Print the arguments used to
576990075Sobrien	instantiate a template, even when not printing the type of the
577090075Sobrien	function.
577190075Sobrien	* pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
577290075Sobrien	not TREE_PUBLIC, to test for external linkage.
577390075Sobrien	* tree.c (decl_linkage): New function.
577418334Speter
577590075Sobrien2000-10-28  Mark Mitchell  <mark@codesourcery.com>
577618334Speter
577790075Sobrien	* pt.c (instantiate_decl): Always instantiate static data members
577890075Sobrien	initialized in-class.
577918334Speter
578090075Sobrien2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
578118334Speter
578290075Sobrien	* Make-lang.in: Move all build rules here from Makefile.in,
578390075Sobrien	adapt to new context.  Wrap all rules that change the current
578490075Sobrien	directory in parentheses.  Expunge all references to $(P).
578590075Sobrien	When one command depends on another and they're run all at
578690075Sobrien	once, use && to separate them, not ;.  Add OUTPUT_OPTION to
578790075Sobrien	all object-file generation rules.  Delete obsolete variables.
578818334Speter
578990075Sobrien	* Makefile.in: Delete.
579090075Sobrien	* config-lang.in: Delete outputs= line.
579118334Speter
579290075Sobrien2000-10-26  Gabriel Dos Reis  <gdr@codesourcery.com>
579318334Speter
579490075Sobrien	* error.c (dump_function_decl): Print no space between
579590075Sobrien	`ptr-operator' the `type-specifier' of the return type.
579690075Sobrien	(dump_type_prefix): Make sure we put space at the appropriate
579790075Sobrien	place.
579818334Speter
579990075Sobrien2000-10-23  Jason Merrill  <jason@redhat.com>
580018334Speter
580190075Sobrien	* call.c (equal_functions): Also call decls_match for extern "C" fns.
580218334Speter
580390075Sobrien2000-10-22  Jason Merrill  <jason@redhat.com>
580418334Speter
580590075Sobrien	* call.c (build_conditional_expr): Use ocp_convert to force
580690075Sobrien	rvalue conversion.
580718334Speter
580890075Sobrien2000-10-22  Mark Mitchell  <mark@codesourcery.com>
580918334Speter
581090075Sobrien	* call.c (standard_conversion): Use RVALUE_CONVs for all
581190075Sobrien	expressions that satisfy lvalue_p, not just those that satisfy
581290075Sobrien	real_lvalue_p.
581352284Sobrien
581490075Sobrien	* optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
581518334Speter
581690075Sobrien	* typeck.c (c_sizeof): Return an expression of `size_t' type,
581790075Sobrien	not one with TYPE_IS_SIZETYPE set.
581890075Sobrien	(dubious_conversion_warnings): Remove special-case code.
581918334Speter
582090075Sobrien2000-10-21  Geoffrey Keating  <geoffk@cygnus.com>
582118334Speter
582290075Sobrien	* decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
582390075Sobrien	* error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
582490075Sobrien	(dump_type_prefix): Print vector-of-int as 'int vector'.
582590075Sobrien	(dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
582690075Sobrien	* tree.c (walk_tree): Handle VECTOR_TYPE.
582718334Speter
582890075Sobrien	* decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
582918334Speter
583090075Sobrien2000-10-21  Jason Merrill  <jason@redhat.com>
583118334Speter
583290075Sobrien	* parse.y (operator): Set got_object from got_scope.
583390075Sobrien	Set looking_for_typename.
583490075Sobrien	* decl.c (lookup_name_real): Clear val after setting from_obj.
583590075Sobrien	Reorganize diagnostic.
583618334Speter
583790075Sobrien2000-10-20  Jason Merrill  <jason@redhat.com>
583818334Speter
583990075Sobrien	* tree.c (walk_tree): Don't walk into default args.
584018334Speter
584190075Sobrien	* error.c (dump_expr): Use host_integerp.
584218334Speter
584390075Sobrien2000-10-20  David Edelsohn  <edelsohn@gnu.org>
584418334Speter
584590075Sobrien	* typeck2.c (abstract_virtuals_error): Use "because" instead of
584690075Sobrien	"since" in error message.
584718334Speter
584890075SobrienFri Oct 20 13:54:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
584918334Speter
585090075Sobrien	* typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
585118334Speter
585290075Sobrien2000-10-20  Jeffrey Oldham  <oldham@codesourcery.com>
585318334Speter
585490075Sobrien	* decl.c (revert_static_member_fn): Fixed typo.
585518334Speter
585690075Sobrien2000-10-19  Mark Mitchell  <mark@codesourcery.com>
585718334Speter
585890075Sobrien	* class.c (subobject_offset_fn): New type.
585990075Sobrien	(dfs_record_base_offsets): Remove.
586090075Sobrien	(record_base_offsets): Likewise.
586190075Sobrien	(dfs_search_base_offsets): Likewise.
586290075Sobrien	(record_subobject_offset): New function.
586390075Sobrien	(check_subobject_offset): Likewise.
586490075Sobrien	(walk_subobject_offsets): Likewise.
586590075Sobrien	(record_subobject_offsets): Likewise.
586690075Sobrien	(layout_conflict_p): Reimplement.
586790075Sobrien	(layout_nonempty_base_or_field): Correct handling of type
586890075Sobrien	conflicts during layout.
586990075Sobrien	(layout_empty_base): Likewise.
587090075Sobrien	(build_base_field): Adjust to handle new representation of empty
587190075Sobrien	base offset table.
587290075Sobrien	(build_base_fields): Likewise.
587390075Sobrien	(layout_virtual_bases): Likewise.
587490075Sobrien	(splay_tree_compare_integer_csts): New function.
587590075Sobrien	(layout_class_type): Use a splay_tree, rather than a varray, to
587690075Sobrien	represent the offsets of empty bases.
587718334Speter
587890075Sobrien	* cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
587990075Sobrien	* decl.c (select_decl): Don't return declarations that are
588090075Sobrien	DECL_ANTICIPATED.
588118334Speter
588290075Sobrien2000-10-18  Mark Mitchell  <mark@codesourcery.com>
588318334Speter
588490075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
588590075Sobrien	(fake_std_node): New macro.
588690075Sobrien	* decl.c (in_std): Rename to ...
588790075Sobrien	(in_fake_std): ... this.
588890075Sobrien	(flag_no_builtin): Remove.
588990075Sobrien	(flag_no_nonansi_builtin): Likewise.
589090075Sobrien	(walk_namespaces_r): Use fake_std_node.
589190075Sobrien	(push_namespace): Use std_identifier.
589290075Sobrien	(pop_namespace): Use in_fake_std.
589390075Sobrien	(lookup_name_real): Use fake_std_node.
589490075Sobrien	(init_decl_processing): When -fhonor-std, create the `std'
589590075Sobrien	namespace.  Don't create a dummy fake_std_node in that case.
589690075Sobrien	Adjust call to c_common_nodes_and_builtins.  Use std_identifier.
589790075Sobrien	(builtin_function): Put builtins whose names don't begin
589890075Sobrien	with `_' in the std namespace.
589990075Sobrien	* decl2.c (flag_no_builtin): Remove.
590090075Sobrien	(flag_no_nonansi_builtin): Likewise.
590190075Sobrien	(set_decl_namespace): Use fake_std_node.
590290075Sobrien	(validate_nonmember_using_decl): Likewise.
590350397Sobrien	(do_using_directive): Likewise.
590490075Sobrien	(handle_class_head): Likewise.
590590075Sobrien	* dump.c (dequeue_and_dump): Likewise.
590690075Sobrien	* except.c (init_exception_processing): Use std_identifier.
590790075Sobrien	* init.c (build_member_call): Use fake_std_node.
590890075Sobrien	* rtti.c (init_rtti_processing): Use std_identifier.
590918334Speter
591090075Sobrien2000-10-17  Mark Mitchell  <mark@codesourcery.com>
591118334Speter
591290075Sobrien	* cp-tree.h (back_end_hook): Remove declaration.
591390075Sobrien	* decl2.c (back_end_hook): Remove definition.
591418334Speter
591590075Sobrien	* dump.c (dequeue_and_dump): Dump TREE_USED.
591618334Speter
591790075SobrienTue Oct 17 20:19:06 2000  Brad Lucier <lucier@math.purdue.edu>
591818334Speter
591990075Sobrien	* spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
592018334Speter
592190075Sobrien2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
592218334Speter
592390075Sobrien	* decl.c (WINT_TYPE): Define.
592490075Sobrien	(init_decl_processing): Create types unsigned_ptrdiff_type_node,
592590075Sobrien	c_size_type_node, signed_size_type_node and wint_type_node.
592618334Speter
592790075Sobrien2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
592818334Speter
592990075Sobrien	* decl2.c (warn_missing_format_attribute): New variable.
593090075Sobrien	(lang_decode_option): Decode -Wmissing-format-attribute.
593118334Speter
593290075Sobrien2000-10-16  Mark Mitchell  <mark@codesourcery.com>
593318334Speter
593490075Sobrien	* typeck.c (qualify_type): Remove.
593590075Sobrien	(composite_pointer_type): Fix handling of conversions to `cv void*'.
593618334Speter
593790075Sobrien2000-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
593818334Speter
593990075Sobrien	* Makefile.in (parse.c, parse.h): Fix think-o in last patch.
594018334Speter
594190075Sobrien2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
594218334Speter
594390075Sobrien	* Makefile.in (parse.c, parse.h): Create atomically.
594418334Speter
594590075Sobrien2000-10-12  Mark Mitchell  <mark@codesourcery.com>
594618334Speter
594790075Sobrien	* class.c (current_obstack): Remove.
594890075Sobrien	* decl.c (ggc_p): Remove.
594990075Sobrien	(start_decl): Don't use decl_tree_cons.
595090075Sobrien	(grokdeclarator): Don't use build_decl_list.
595190075Sobrien	(start_function): Don't use decl_tree_cons.
595290075Sobrien	(finish_function): Don't mess with obstacks.
595390075Sobrien	* decl2.c (grok_x_components): Don't use build_decl_list.
595490075Sobrien	* lex.c (make_call_declarator): Don't call decl_tree_cons.
595590075Sobrien	(implicitly_declare_fn): Don't call build_decl_list.
595690075Sobrien	* parse.y (frob_specs): Don't call build_decl_list or
595790075Sobrien	decl_tree_cons.
595890075Sobrien	(expr_or_declarator_intern): Don't call decl_tree_cons.
595990075Sobrien	(primary): Don't call build_decl_list.
596090075Sobrien	(fcast_or_absdcl): Likewise.
596190075Sobrien	(typed_declspecs): Don't call decl_tree_cons.
596290075Sobrien	(reserved_declspecs): Don't call build_decl_list.
596390075Sobrien	(declmods): Likewise.
596490075Sobrien	(reserved_typespecquals): Likewise.
596590075Sobrien	(aggr): Likewise.
596690075Sobrien	(new_type_id): Likewise.
596790075Sobrien	(cv_qualifiers): Likewise.
596890075Sobrien	(after_type_declarator_intern): Likewise.
596990075Sobrien	(notype_declarator_intern): Likewise.
597090075Sobrien	(absdcl_intern): Likewise.
597190075Sobrien	(named_parm): Likewise.
597290075Sobrien	* pt.c (most_specialized_class): Likewise.
597390075Sobrien	* repo.c (temporary_obstack): Make it a structure, not a pointer.
597490075Sobrien	(init_repo): Initialize it.
597590075Sobrien	* search.c (current_obstack): Remove.
597690075Sobrien	* typeck2.c (add_exception_specifier): Don't call build_decl_list.
597718334Speter
597890075Sobrien2000-10-09  Richard Henderson  <rth@cygnus.com>
597918334Speter
598090075Sobrien	* Make-lang.in (CXX_EXTRA_HEADERS): Remove.
598190075Sobrien	(c++ language support bits for libgcc): Remove.
598290075Sobrien	(c++.clean): Remove cplib2.txt cleanup.
598390075Sobrien	* config-lang.in (headers, lib2funcs): Remove.
598418334Speter
598590075Sobrien	* exception.cc, new.cc, new1.cc, new2.cc: Remove files.
598690075Sobrien	* tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
598790075Sobrien	* inc/cxxabi.h, inc/exception, inc/new: Remove files.
598890075Sobrien	* inc/new.h, inc/typeinfo: Remove files.
598918334Speter
599090075Sobrien2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
599118334Speter
599290075Sobrien	* decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
599390075Sobrien	defined.
599490075Sobrien	(init_decl_processing): Initialize intmax_type_node and
599590075Sobrien	uintmax_type_node.
599618334Speter
599790075Sobrien2000-10-06  Richard Henderson  <rth@cygnus.com>
599818334Speter
599990075Sobrien	* cp-tree.h (struct cp_language_function): Remove x_result_rtx.
600090075Sobrien	(original_result_rtx): Remove.
600190075Sobrien	* decl.c (save_function_data): Don't clear x_result_rtx.
600290075Sobrien	(mark_lang_function): Don't mark it either.
600390075Sobrien	* expr.c (fixup_result_decl): Remove.
600490075Sobrien	* semantics.c (genrtl_named_return_value): Frob the return decl
600590075Sobrien	before calling emit_local_var.
600690075Sobrien	(genrtl_finish_function): Don't call fixup_result_decl.
600790075Sobrien	Always emit the jump to return_label.
600818334Speter
600990075Sobrien2000-10-06  Nathan Sidwell  <nathan@codesourcery.com>
601018334Speter
601190075Sobrien	* pt.c (lookup_template_class): Set current access for enum.
601290075Sobrien	(tsubst_enum): Set file & line for enum decl.
601318334Speter
601490075Sobrien	* spew.c (yylex): Remove unused variable.
601518334Speter
601690075Sobrien2000-10-05  Richard Henderson  <rth@cygnus.com>
601718334Speter
601890075Sobrien	* semantics.c (genrtl_finish_function): Don't init or check
601990075Sobrien	can_reach_end; remove noreturn and return value checks.
602018334Speter
602190075Sobrien2000-10-05  Tom Tromey  <tromey@cygnus.com>
602218334Speter
602390075Sobrien	* init.c (build_java_class_ref): Use `build_static_name' with a
602490075Sobrien	suffix, not a prefix, to build the class object's name.
602518334Speter
602690075Sobrien2000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
602718334Speter
602890075Sobrien	* cp-tree.h (access_kind): Fix comment typo.
602990075Sobrien	* decl2.c (grokfield): Fix diagnostic typo.
603090075Sobrien	* semantics.c (finish_template_type): Fix comment typo.
603190075Sobrien	(finish_qualified_object_call_expr): Likewise.
603218334Speter
603390075Sobrien2000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
603418334Speter
603590075Sobrien	* pt.c (tsubst_expr, DECL_STMT case): Don't process if
603690075Sobrien	tsubsting fails.
603718334Speter
603890075Sobrien2000-10-05  Nathan Sidwell  <nathan@codesourcery.com>
603918334Speter
604090075Sobrien	* spew.c (frob_id): New static function.
604190075Sobrien	(frob_opname): Use it.
604290075Sobrien	(yylex): Use it.
604318334Speter
604490075Sobrien2000-10-01  Mark Mitchell  <mark@codesourcery.com>
604518334Speter
604690075Sobrien	* decl.c (lang_mark_false_label_stack): Remove.
604790075Sobrien	* lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
604818334Speter
604990075Sobrien2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
605018334Speter
605190075Sobrien	* gxxint.texi: Use @email for formatting email addresses.
605218334Speter
605390075Sobrien2000-09-29  Gabriel Dos Reis  <gdr@codesourcery.com>
605418334Speter
605590075Sobrien	* error.c: Remove direct obstack manipulation.  Replace with
605690075Sobrien	output_buffer-based formatting.  Adjust calls to removed macros.
605790075Sobrien	(obstack_chunk_alloc, obstack_chunk_free): Remove.
605890075Sobrien	(OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
605990075Sobrien	OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
606018334Speter
606190075Sobrien2000-09-24  Mark Mitchell  <mark@codesourcery.com>
606218334Speter
606390075Sobrien	* ir.texi: Move to ../c-tree.texi.
606418334Speter
606590075Sobrien2000-09-20  Jason Merrill  <jason@redhat.com>
606618334Speter
606790075Sobrien	* decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
606818334Speter
606990075Sobrien2000-09-21  Andreas Jaeger  <aj@suse.de>
607018334Speter
607190075Sobrien	* errfn.c: Move declaration of cp_printer and cp_printers to ...
607290075Sobrien	* cp-tree.h: ... here.
607318334Speter
607490075Sobrien	* error.c: Remove declaration of cp_printer.
607518334Speter
607690075Sobrien2000-09-20  Mark Mitchell  <mark@codesourcery.com>
607718334Speter
607890075Sobrien	* tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
607918334Speter
608090075Sobrien2000-09-20  Hans-Peter Nilsson  <hp@axis.com>
608118334Speter
608290075Sobrien	* except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
608390075Sobrien	users.
608418334Speter
608590075Sobrien2000-09-18  Mark Mitchell  <mark@codesourcery.com>
608618334Speter
608790075Sobrien	* decl.c (start_function): Robustify.
608818334Speter
608990075Sobrien2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
609018334Speter
609190075Sobrien	* cp-tree.h (check_function_format): Accept a `status' parameter.
609218334Speter
609390075Sobrien	* call.c, typeck.c: Updates calls to `check_function_format'.
609418334Speter
609590075Sobrien2000-09-17  Geoffrey Keating  <geoffk@cygnus.com>
609618334Speter
609790075Sobrien	* decl2.c (handle_class_head): Always push some scope even
609890075Sobrien	in the error case.
609918334Speter
610090075Sobrien2000-09-16  Mark Mitchell  <mark@codesourcery.com>
610118334Speter
610290075Sobrien	* cp-tree.h (struct cp_language_function): Remove
610390075Sobrien	x_scope_stmt_stack and name_declared.
610490075Sobrien	(current_scope_stmt_stack): Remove.
610590075Sobrien	(function_name_declared_p): New macro.
610690075Sobrien	(struct lang_decl_flags): Use c_lang_decl as a base class.
610790075Sobrien	(context): Remove.
610890075Sobrien	(struct lang_decl): Replace saved_tree with context.
610990075Sobrien	(DECL_FRIEND_CONTEXT): Adjust accordingly.
611090075Sobrien	(SET_DECL_FRIEND_CONTEXT): Likewise.
611190075Sobrien	(DECL_VIRTUAL_CONTEXT): Likewise.
611290075Sobrien	(DECL_SAVED_TREE): Remove.
611390075Sobrien	(C_DECLARED_LABEL_FLAG): Likewise.
611490075Sobrien	(cplus_expand_expr_stmt): Don't declare.
611590075Sobrien	(add_decl_stmt): Likewise.
611690075Sobrien	(add_scope_stmt): Likewise.
611790075Sobrien	* decl.c (mark_stmt_tree): Remove.
611890075Sobrien	(case_compare): Likewise.
611990075Sobrien	(finish_case_label): Use c_add_case_label.
612090075Sobrien	(init_decl_processing): Set more language-specific hooks.
612190075Sobrien	(build_enumerator): Fix typo in comment.
612290075Sobrien	(cplus_expand_expr_stmt): Remove.
612390075Sobrien	(mark_lang_function): Use mark_c_language_function.
612490075Sobrien	(lang_mark_tree): Use c_mark_lang_decl.
612590075Sobrien	* decl2.c: Change order of inclusion.
612690075Sobrien	* except.c: Likewise.
612790075Sobrien	* expr.c (cplus_expand_expr): Remove handling of STMT_EXPR.  Fall
612890075Sobrien	back on c_expand_expr.
612990075Sobrien	* friend.c: Include expr.h.
613090075Sobrien	* init.c: Change order of inclusion.
613190075Sobrien	* Makefile.in: Update dependencies.
613290075Sobrien	* lex.h (free_lang_decl_chain): Remove.
613390075Sobrien	* optimize.c (maybe_clone_body): Use function_name_declared_p.
613490075Sobrien	* pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
613590075Sobrien	it doesn't exist.
613690075Sobrien	(instantiate_decl): Use function_name_declared_p.
613790075Sobrien	* semantics.c (lang_expand_expr_stmt): Remove.
613890075Sobrien	(set_current_function_name_declared): Likewise.
613990075Sobrien	(current_function_name_declared): Likewise.
614090075Sobrien	(begin_compound_stmt): Use function_name_declared_p.
614190075Sobrien	(add_decl_stmt): Remove.
614290075Sobrien	(setup_vtbl_ptr): Use function_name_declared_p.
614390075Sobrien	(add_scope_stmt): Remove.
614490075Sobrien	(current_scope_stmt_stack): New function.
614590075Sobrien	(cp_expand_stmt): Don't handle SCOPE_STMTs.
614690075Sobrien	(expand_body): Use function_name_declared_p.
614790075Sobrien	* tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
614890075Sobrien	* typeck.c: Change order of includes.
614990075Sobrien	(convert_sequence): Remove.
615018334Speter
615190075Sobrien2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
615218334Speter
615390075Sobrien	* lex.c (reswords): Add _Complex.
615418334Speter
615590075SobrienThu Sep 14 12:10:45 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
615618334Speter
615790075Sobrien	* Make-lang.in (cplib2.txt): Depend on cp/Makefile.
615818334Speter
615990075Sobrien2000-09-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
616018334Speter
616190075Sobrien	* init.c (begin_init_stmts): Don't use // comments.
616218334Speter
616390075Sobrien2000-09-12  Jason Merrill  <jason@redhat.com>
616418334Speter
616590075Sobrien	* decl.c (maybe_deduce_size_from_array_init): Set do_default for
616690075Sobrien	all non-extern arrays.
616718334Speter
616890075Sobrien	* decl.c (grokdeclarator): Complain about 'friend T' for implicit
616990075Sobrien	typenames, too.  Downgrade complaint to pedwarn.
617090075Sobrien	(xref_tag): Warn about surprising behavior of 'friend struct T'.
617190075Sobrien	* decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
617290075Sobrien	'class This::Inherited'.
617318334Speter
617490075Sobrien2000-09-12  Mark Mitchell  <mark@codesourcery.com>
617518334Speter
617690075Sobrien	* decl.c (finish_case_label): Given the LABEL_DECL a
617790075Sobrien	DECL_CONTEXT.
617818334Speter
617990075Sobrien2000-09-12  Gabriel Dos Reis  <gdr@codesourcery.com>
618052284Sobrien
618190075Sobrien	* error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
618290075Sobrien	TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
618390075Sobrien	TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
618490075Sobrien	TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
618590075Sobrien	TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
618690075Sobrien	New macros.
618790075Sobrien	(sorry_for_unsupported_tree, print_scope_operator,
618890075Sobrien	print_left_paren, print_right_paren, print_left_bracket,
618990075Sobrien	print_right_bracket, print_whitespace): Likewise.
619090075Sobrien	(aggr_variety): Rename to class_key_or_enum.
619190075Sobrien	(print_type): Rename to print_type_id.
619290075Sobrien	(print_type_specifier_seq, print_simple_type_specifier,
619390075Sobrien	print_elaborated_type_specifier,
619490075Sobrien	print_rest_of_abstract_declarator,
619590075Sobrien	print_parameter_declaration_clause, print_exception_specification,
619690075Sobrien	print_nested_name_specifier, print_template_id,
619790075Sobrien	typedef_original_name,  print_template_argument_list_start,
619890075Sobrien	print_template_argument_list_end): New functions.
619918334Speter
620090075Sobrien2000-09-11  Gabriel Dos Reis  <gdr@codesourcery.com>
620118334Speter
620290075Sobrien	* ir.texi: Add more documentation.
620318334Speter
620490075Sobrien2000-09-11  Mark Mitchell  <mark@codesourcery.com>
620518334Speter
620690075Sobrien	* cp-tree.h (struct saved_scope): Remove x_function_parms.
620790075Sobrien	(current_function_parms): Don't define.
620890075Sobrien	(struct cp_language_function): Remove parms_stored.
620990075Sobrien	(current_function_just_assigned_this): Don't define.
621090075Sobrien	(current_function_parms_stored): Likewise.
621190075Sobrien	(static_ctors): Declare.
621290075Sobrien	(static_dtors): Likewise.
621390075Sobrien	(SF_EXPAND): Don't define.
621490075Sobrien	(expand_start_early_try_stmts): Remove declaration.
621590075Sobrien	(store_parm_decls): Likewise.
621690075Sobrien	* decl.c (static_ctors): Don't declare.
621790075Sobrien	(static_dtors): Likewise.
621890075Sobrien	(struct binding_level): Remove this_block.
621990075Sobrien	(poplevel): Remove dead code.
622090075Sobrien	(set_block): Likewise.
622190075Sobrien	(mark_binding_level): Don't mark this_block.
622290075Sobrien	(mark_saved_scope): Don't mark x_function_parms.
622390075Sobrien	(init_decl_processing): Don't add current_function_parms as a GC
622490075Sobrien	root.
622590075Sobrien	(check_function_type): Change prototype.
622690075Sobrien	(start_function): Remove RTL-generation code.
622790075Sobrien	(expand_start_early_try_stmts): Remove.
622890075Sobrien	(store_parm_decls): Give it internal linkage.  Remove
622990075Sobrien	RTL-generation code.
623090075Sobrien	(finish_function): Remove RTL-generation code.
623190075Sobrien	* decl2.c (static_ctors): Fix formatting.
623290075Sobrien	(static_dtors): Likewise.
623390075Sobrien	* method.c (use_thunk): Don't call store_parm_decls.
623490075Sobrien	(synthesize_method): Likewise.
623590075Sobrien	* optimize.c (maybe_clone_body): Likewise.
623690075Sobrien	* parse.y (fn.def2): Likewise.
623790075Sobrien	(.set_base_init): Likewise.
623890075Sobrien	(nodecls): Likewise.
623990075Sobrien	* pt.c (instantiate_decl): Likewise.
624090075Sobrien	* rtti.c (synthesize_tinfo_fn): Likewise.
624190075Sobrien	* semantics.c (genrtl_try_block): Simplify.
624290075Sobrien	(expand_body): Use genrtl_start_function and
624390075Sobrien	genrtl_finish_function.
624490075Sobrien	(genrtl_start_function): New function.
624590075Sobrien	(genrtl_finish_function): Likewise.
624618334Speter
624790075Sobrien2000-09-11  Nathan Sidwell  <nathan@codesourcery.com>
624818334Speter
624990075Sobrien	* error.c (cp_tree_printer, case 'P'): Append break.
625018334Speter
625190075Sobrien2000-09-11  Nathan Sidwell  <nathan@codesourcery.com>
625218334Speter
625390075Sobrien	* cp-tree.h (frob_opname): Declare.
625490075Sobrien	* parse.y (saved_scopes): New static variable.
625590075Sobrien	(cp_parse_init): Adjust.
625690075Sobrien	(do_id): If lastiddecl is NULL, do do_identifier.
625790075Sobrien	(operator): Save scope information.
625890075Sobrien	(unoperator): New reduction. Restore scope information.
625990075Sobrien	(operator_name): Append unoperator. Call frob_opname.
626090075Sobrien	* spew.c (frob_opname): Define.
626118334Speter
626290075Sobrien2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
626318334Speter
626490075Sobrien	* decl.c, rtti.c: Include defaults.h if not already included.
626590075Sobrien	Don't define the *_TYPE_SIZE macros.
626618334Speter
626790075Sobrien2000-09-09  Mark Mitchell  <mark@codesourcery.com>
626818334Speter
626990075Sobrien	* cp-tree.h (push_switch): Change prototype.
627090075Sobrien	(check_cp_case_value): Remove declaration.
627190075Sobrien	(decl_constant_value): Likewise.
627290075Sobrien	* decl.c (struct cp_switch): Add switch_stmt and cases.
627390075Sobrien	(case_compare): New function.
627490075Sobrien	(push_switch): Set switch_stmt.  Initialize cases.
627590075Sobrien	(pop_switch): Clean up cases.
627690075Sobrien	(define_case_label): Rename to ...
627790075Sobrien	(finish_case_label): ... this.  Do semantic analysis for case
627890075Sobrien	labels here.
627990075Sobrien	(start_function): Correct comment.
628090075Sobrien	* decl2.c (check_cp_case_value): Remove.
628190075Sobrien	* expr.c (do_case): Remove.
628290075Sobrien	* pt.c (tsubst_expr): Adjust call to finish_case_label.
628390075Sobrien	* semantics.c (genrtl_do_poplevel): Remove declaration.
628490075Sobrien	(RECHAIN_STMTS): Remove.
628590075Sobrien	(finish_break_stmt): Use build_break_stmt.
628690075Sobrien	(finish_continue_stmt): Use build_continue_stmt.
628790075Sobrien	(finish_switch_cond): Adjust condition here, rater than in
628890075Sobrien	c_expand_start_case.
628990075Sobrien	(finish_case_label): Remove.
629090075Sobrien	* typeck.c (c_expand_return): Remove.
629190075Sobrien	(c_expand_start_case): Likewise.
629218334Speter
629390075Sobrien2000-09-07  Gabriel Dos Reis  <gdr@codesourcery.com>
629418334Speter
629590075Sobrien	* ir.texi: Document type nodes.
629618334Speter
629790075Sobrien2000-09-06  Mark Mitchell  <mark@codesourcery.com>
629818334Speter
629990075Sobrien	* cp-tree.h (init_cp_semantics): Declare.
630090075Sobrien	(genrtl_try_block): Don't declare.
630190075Sobrien	(genrtl_handler): Likewise.
630290075Sobrien	(genrtl_catch_block): Likewise.
630390075Sobrien	(genrtl_ctor_stmt): Likewise.
630490075Sobrien	(genrtl_subobject): Likewise.
630590075Sobrien	(genrtl_do_poplevel): Likewise.
630690075Sobrien	(genrtl_named_return_value): Likewise.
630790075Sobrien	* lex.c (init_parse): Call init_cp_semantics.
630890075Sobrien	* semantics.c (genrtl_try_block): Give it internal linkage.
630990075Sobrien	(genrtl_handler): Likewise.
631090075Sobrien	(genrtl_catch_block): Likewise.
631190075Sobrien	(genrtl_ctor_stmt): Likewise.
631290075Sobrien	(genrtl_subobject): Likewise.
631390075Sobrien	(genrtl_do_poplevel): Likewise.
631490075Sobrien	(genrtl_named_return_value): Likewise.
631590075Sobrien	(lang_expand_stmt): Rename to ...
631690075Sobrien	(cp_expand_stmt): ... this.  Only handle C++-specific nodes.
631790075Sobrien	(init_cp_semantics): Define.
631818334Speter
631990075Sobrien	* decl.c (initialize_local_var): Remove RTL-generating code.
632090075Sobrien	* semantics.c (genrtl_try_block): Fix formatting.
632118334Speter
632290075Sobrien	Move statement-tree facilities from C++ to C front-end.
632390075Sobrien	* cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
632490075Sobrien	(void_zero_node): Remove.
632590075Sobrien	(stmt_tree): Likewise.
632690075Sobrien	(scope_chain): Adjust.
632790075Sobrien	(language_function): Rename to cp_language_function.
632890075Sobrien	(cp_function_chain): Adjust.
632990075Sobrien	(current_stmt_tree): Remove.
633090075Sobrien	(last_tree): Likewise.
633190075Sobrien	(last_expr_type): Likewise.
633290075Sobrien	(struct lang_decl): Adjust.
633390075Sobrien	(STMT_IS_FULL_EXPR_P): Remove.
633490075Sobrien	(add_tree): Remove.
633590075Sobrien	(begin_stmt_tree): Likewise.
633690075Sobrien	(finish_stmt_tree): Likewise.
633790075Sobrien	(walk_tree_fn): Likewise.
633890075Sobrien	(walk_stmt_tree): Likewise.
633990075Sobrien	* class.c (finish_struct): Replace use of add_tree with add_stmt.
634090075Sobrien	* decl.c (mark_stmt_tree): Adjust type.
634190075Sobrien	(init_decl_processing): Don't build void_zero_node.
634290075Sobrien	(initialize_local_var): Adjust usage of current_stmt_tree.
634390075Sobrien	(finish_enum): Use add_stmt, not add_tree.
634490075Sobrien	(save_function_data): Adjust use of language_function.
634590075Sobrien	(finish_constructor_body): Use add_stmt, not add_tree.
634690075Sobrien	(finish_destructor_body): Likewise.
634790075Sobrien	(push_cp_function_context): Adjust use of language_function.
634890075Sobrien	(pop_cp_function_context): Likewise.
634990075Sobrien	(mark_lang_function): Likewise.
635090075Sobrien	(mark_cp_function_context): Likewise.
635190075Sobrien	* init.c (build_aggr_init): Adjust use of current_stmt_tree.
635290075Sobrien	(build_vec_init): Likewise.
635390075Sobrien	* semantics.c (SET_LAST_STMT): Remove.
635490075Sobrien	(RECHAIN_STMTS): Don't use it.
635590075Sobrien	(stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
635690075Sobrien	(current_stmt_tree): Define.
635790075Sobrien	(add_tree): Remove.
635890075Sobrien	(finish_goto_stmt): Use add_stmt, not add_tree.
635990075Sobrien	(finish_expr_stmt): Likewise.
636090075Sobrien	(begin_if_stmt): Likewise.
636190075Sobrien	(finish_then_clause): Likewise.
636290075Sobrien	(begin_while_stmt): Likewise.
636390075Sobrien	(begin_do_stmt): Likewise.
636490075Sobrien	(finish_return_stmt): Likewise.
636590075Sobrien	(begin_for_stmt): Likewise.
636690075Sobrien	(finish_break_stmt): Likewise.
636790075Sobrien	(finish_continue_stmt): Likewise.
636890075Sobrien	(begin_switch_stmt): Likewise.
636990075Sobrien	(finish_case_label): Likewise.
637090075Sobrien	(begin_try_block): Likewise.
637190075Sobrien	(begin_function_try_block): Likewise.
637290075Sobrien	(begin_handler): Likewise.
637390075Sobrien	(begin_catch_block): Likewise.
637490075Sobrien	(begin_compound_stmt): Likewise.
637590075Sobrien	(begin_asm_stmt): Likewise.
637690075Sobrien	(finish_asm_stmt): Likewise.
637790075Sobrien	(finish_label_stmt): Likewise.
637890075Sobrien	(add_decl_stmt): Likewise.
637990075Sobrien	(finish_subobject): Likewise.
638090075Sobrien	(finish_decl_cleanup): Likewise.
638190075Sobrien	(finish_named_return_value): Likewise.
638290075Sobrien	(setup_vtbl_ptr): Likewise.
638390075Sobrien	(add_scope_stmt): Likewise.
638490075Sobrien	(finish_stmt_expr): Likewise.
638590075Sobrien	(prune_unused_decls): Remove.
638690075Sobrien	(begin_stmt_tree): Likewise.
638790075Sobrien	(finish_stmt_tree): Likewise.
638890075Sobrien	(prep_stmt): Adjust use of current_stmt_tree.
638990075Sobrien	(lang_expand_stmt): Likewise.
639090075Sobrien	* tree.c (statement_code_p): Remove.
639190075Sobrien	(cp_statement_code_p): New function.
639290075Sobrien	(walk_stmt_tree): Remove.
639390075Sobrien	(init_tree): Set lang_statement_code_p.
639418334Speter
639590075Sobrien2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
639618334Speter
639790075Sobrien	Integrated preprocessor.
639818334Speter
639990075Sobrien	* Make-lang.in, Makefile.in: Remove all references to input.c,
640090075Sobrien	gxx.gperf, and hash.h.  Add ../c-lex.o to C_OBJS.
640190075Sobrien	* gxx.gperf, hash.h, input.c: Delete.
640290075Sobrien	* lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
640390075Sobrien	initialized properly.
640418334Speter
640590075Sobrien	* class.c (fixup_pending_inline): Take a tree, not a
640690075Sobrien	struct pending_inline *.  All callers changed.
640790075Sobrien	(init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
640890075Sobrien	RID_PROTECTED entries in ridpointers[] array here.
640990075Sobrien	* decl.c (duplicate_decls): Do not refer to struct
641090075Sobrien	pending_inline.
641190075Sobrien	(record_builtin_type, init_decl_processing): Use RID_MAX not
641290075Sobrien	CP_RID_MAX.
641390075Sobrien	(grokdeclarator): Use C_IS_RESERVED_WORD.
641490075Sobrien	* decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
641590075Sobrien	cpplib.
641690075Sobrien	(grok_x_components): Do not inspect pending_inlines chain.
641718334Speter
641890075Sobrien	* cp-tree.h (struct lang_identifier): Add rid_code entry.
641990075Sobrien	(C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
642090075Sobrien	(flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
642190075Sobrien	(DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
642290075Sobrien	TIME_IDENTIFIER_FILEINFO): Kill.
642390075Sobrien	Update prototypes.
642490075Sobrien	* lex.h: Expunge cp_rid.  Rewrite RIDBIT macros to use just a
642590075Sobrien	single 32-bit word.
642690075Sobrien	* parse.y: Call do_pending_inlines unconditionally.
642790075Sobrien	reinit_parse_for_method is now snarf_method.  fn.defpen is no
642890075Sobrien	longer necessary.  Remove unnecessary <itype> annotation on
642990075Sobrien	SCOPE.  Do not refer to end_of_file or struct pending_inline.
643090075Sobrien	* semantics.c (begin_inline_definitions): Call
643190075Sobrien	do_pending_inlines unconditionally.
643218334Speter
643390075Sobrien	* lex.c: Remove all code now shared with C front end.
643490075Sobrien	Initialize cpplib properly if USE_CPPLIB.  Put reserved words
643590075Sobrien	into the get_identifier table.  Rewrite pragma handling to
643690075Sobrien	work with the registry.  Move code to save tokens for later
643790075Sobrien	processing to spew.c.
643818334Speter
643990075Sobrien	* spew.c: Rewrite everything in terms of token streams instead
644090075Sobrien	of text.  Move routines here from lex.c / input.c as
644190075Sobrien	appropriate.  GC-mark trees hanging off the pending inlines
644290075Sobrien	chain.
644318334Speter
644490075Sobrien2000-09-06  Mark Mitchell  <mark@codesourcery.com>
644518334Speter
644690075Sobrien	* NEWS: Mention that the named return value extension has been
644790075Sobrien	deprecated.
644890075Sobrien	* cp-tree.h (original_result_rtx): Define.
644990075Sobrien	(TREE_REFERENCE_EXPR): Remove.
645090075Sobrien	(DECL_VPARENT): Likewise.
645190075Sobrien	(pushdecl_nonclass_level): Likewise.
645290075Sobrien	(store_return_init): Likewise.
645390075Sobrien	(reinit_lang_specific): Likewise.
645490075Sobrien	(genrtl_named_return_value): Change prototype.
645590075Sobrien	* decl.c (original_result_rtx): Remove.
645690075Sobrien	(cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
645790075Sobrien	Do not generate RTL for local variables here.
645890075Sobrien	(store_return_init): Remove.
645990075Sobrien	* semantics.c (genrtl_named_return_value): Simplify.  Fold in
646090075Sobrien	store_return_init.
646190075Sobrien	(finish_named_return_value): Adjust accordingly.  Warn that this
646290075Sobrien	extension is deprecated.
646390075Sobrien	(lang_expand_stmt): Adjust call to genrtl_named_return_value.
646418334Speter
646590075Sobrien2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
646618334Speter
646790075Sobrien	* pt.c (type_unification_real): Replace switch with if.
646890075Sobrien	(unify): Tsubst non-type parms before comparing.
646918334Speter
647090075Sobrien2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
647118334Speter
647290075Sobrien	* error.c (dump_typename): New function, broken out of ...
647390075Sobrien	(dump_type): ... here. Use it.
647490075Sobrien	* typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
647518334Speter
647690075Sobrien2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
647718334Speter
647890075Sobrien	* init.c (build_offset_ref): Deal with namespace scoped
647990075Sobrien	TEMPLATE_ID_EXPRs.
648018334Speter
648190075Sobrien2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>
648218334Speter
648390075Sobrien	* class.c (resolve_address_of_overloaded_function): Add
648490075Sobrien	explanation message.
648590075Sobrien	* decl.c (define_case_label): Reformat explanation.
648690075Sobrien	* decl2.c (finish_static_data_member_decl): Likewise.
648790075Sobrien	(grokfield): Likewise.
648850397Sobrien	* friend.c (do_friend): Likewise.
648918334Speter
649090075Sobrien2000-09-05  Zack Weinberg  <zack@wolery.cumb.org>
649118334Speter
649290075Sobrien	* tree.c (walk_tree): Expose tail recursion.
649390075Sobrien	(walk_stmt_tree): New function.
649490075Sobrien	* cp-tree.h: Prototype walk_stmt_tree.
649590075Sobrien	* semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
649690075Sobrien	the BLOCKs directly.  If a BLOCK has no variables after
649790075Sobrien	pruning, discard it.
649890075Sobrien	(finish_stmt_tree): Use walk_stmt_tree.  No need to save and
649990075Sobrien	restore the line number.
650018334Speter
650190075Sobrien2000-09-05  Mark Mitchell  <mark@codesourcery.com>
650218334Speter
650390075Sobrien	* Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
650490075Sobrien	(pt.o): Remove dependency on HTAB_H.
650590075Sobrien	* cp-tree.h: Include hashtab.h.
650690075Sobrien	(walk_tree): Change prototype.
650790075Sobrien	(walk_tree_without_duplicates): New function.
650890075Sobrien	* decl.c (check_default_argument): Use it.
650990075Sobrien	* optimize.c (remap_decl): Adjust calls to walk_tree.
651090075Sobrien	(copy_body): Likewise.
651190075Sobrien	(expand_calls_inline): Likewise.
651290075Sobrien	(calls_setjmp_p): Use walk_tree_without_duplicates.
651390075Sobrien	* pt.c: Don't include hashtab.h.
651490075Sobrien	(for_each_template_parm): Use walk_tree_without_duplicates.
651590075Sobrien	* semantics.c (finish-stmt_tree): Likewise.
651690075Sobrien	(expand_body): Likewise.
651790075Sobrien	* tree.c (walk_tree): Add additional parameter.
651890075Sobrien	(walk_tree_without_duplicates): New function.
651990075Sobrien	(count_trees): Use it.
652090075Sobrien	(verify_stmt_tree): Adjust call to walk_tree.
652190075Sobrien	(find_tree): Use walk_tree_without_duplicates.
652290075Sobrien	(no_linkage_check): Likewise.
652390075Sobrien	(break_out_target_exprs): Adjust call to walk_tree.
652490075Sobrien	(cp_unsave): Likewise.
652518334Speter
652690075Sobrien2000-09-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
652718334Speter
652890075Sobrien	* cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
652990075Sobrien	(TEMPLATE_TEMPLATE_PARM): Adjust comment.
653090075Sobrien	* cp-tree.h (TYPE_BINFO): Adjust comment.
653190075Sobrien	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
653290075Sobrien	(TEMPLATE_TYPE_PARM_INDEX): Likewise.
653390075Sobrien	(IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
653490075Sobrien	(TYPE_TEMPLATE_INFO): Likewise.
653590075Sobrien	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
653690075Sobrien	* class.c (push_nested_class): Likewise.
653790075Sobrien	* decl.c (lookup_name_real): Likewise.
653890075Sobrien	(grokdeclarator): Likewise.
653990075Sobrien	(grok_op_properties): Likewise.
654090075Sobrien	(xref_tag): Likewise.
654190075Sobrien	(xref_basetypes): Likewise.
654250397Sobrien	* decl2.c (constructor_name_full): Likewise.
654390075Sobrien	(arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
654490075Sobrien	(arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
654590075Sobrien	* error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
654690075Sobrien	(dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
654790075Sobrien	(dump_type_suffix): Likewise.
654890075Sobrien	* init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
654990075Sobrien	instead.
655090075Sobrien	(get_aggr_from_typedef): Likewise.
655190075Sobrien	* mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
655290075Sobrien	(write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
655390075Sobrien	(write_template_parm): Likewise.
655490075Sobrien	(write_template_template_parm): Check tree code instead of
655590075Sobrien	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
655690075Sobrien	* method.c (build_overload_nested_name): Add
655790075Sobrien	BOUND_TEMPLATE_TEMPLATE_PARM.
655890075Sobrien	(process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
655990075Sobrien	* parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
656090075Sobrien	* pt.c (convert_template_argument): Check tree code instead of
656190075Sobrien	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
656290075Sobrien	(for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
656390075Sobrien	(for_each_template_parm): Adjust comment.
656490075Sobrien	(tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM.  Reorganize.
656590075Sobrien	(tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
656690075Sobrien	(unify): Add BOUND_TEMPLATE_TEMPLATE_PARM.  Reorganize.  Use
656790075Sobrien	template_args_equal to compare template template parameter cases.
656890075Sobrien	* ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
656990075Sobrien	* search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
657090075Sobrien	instead.
657190075Sobrien	* tree.c (copy_template_template_parm): Decide whether to create
657290075Sobrien	a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
657390075Sobrien	(walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
657490075Sobrien	(copy_tree_r): Likewise.
657590075Sobrien	* typeck.c (comptypes): Likewise.  Check tree code instead of
657690075Sobrien	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
657718334Speter
657890075Sobrien2000-09-04  Mark Elbrecht  <snowball3@bigfoot.com>
657918334Speter
658090075Sobrien	* decl.c (finish_function): Move the code for handling functions
658190075Sobrien	marked with the constructor and destructor attributes inside the
658290075Sobrien	expand_p block.
658318334Speter
658490075Sobrien2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
658518334Speter
658690075Sobrien	* init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
658718334Speter
658890075Sobrien2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
658918334Speter
659090075Sobrien	* pt.c (lookup_template_class): Remove abort.
659190075Sobrien	* tree.c (get_type_decl): Allow error_mark_node.
659218334Speter
659390075Sobrien2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
659418334Speter
659590075Sobrien	* decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
659690075Sobrien	TEMPLATE_ID_EXPRs.
659718334Speter
659890075Sobrien2000-09-03  Mark Mitchell  <mark@codesourcery.com>
659918334Speter
660090075Sobrien	* operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
660190075Sobrien	new ABI mangling.
660218334Speter
660390075Sobrien2000-09-01  Nathan Sidwell  <nathan@codesourcery.com>
660418334Speter
660590075Sobrien	* parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
660690075Sobrien	union tag mismatch error reporting.
660718334Speter
660890075Sobrien2000-09-01  Nathan Sidwell  <nathan@codesourcery.com>
660918334Speter
661090075Sobrien	* call.c (build_scoped_method_call): Check it is not a namespace.
661118334Speter
661290075Sobrien2000-08-30  Jason Merrill  <jason@redhat.com>
661318334Speter
661490075Sobrien	* cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
661518334Speter
661690075Sobrien	* tree.c (bot_manip): Check TREE_CONSTANT rather than
661790075Sobrien	!TREE_SIDE_EFFECTS.  Call break_out_target_exprs and
661890075Sobrien	build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
661918334Speter
662090075Sobrien	* decl.c (start_function): Always call make_function_rtl.
662118334Speter
662290075Sobrien2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
662318334Speter
662490075Sobrien	* semantics.c (prune_unused_decls): New function.
662590075Sobrien	(finish_stmt_tree): Call it via walk_tree.
662618334Speter
662790075Sobrien2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
662818334Speter
662990075Sobrien	* class.c (build_secondary_vtable): Constify a char *.
663090075Sobrien	* decl.c (init_decl_processing): Initialize function_id_node,
663190075Sobrien	pretty_function_id_node, and func_id_node.
663290075Sobrien	* input.c (struct input_source): Constify 'str'.
663390075Sobrien	(feed_input): Constify first argument.
663490075Sobrien	* mangle.c (write_identifier): Constify argument.
663590075Sobrien	* pt.c (mangle_class_name_for_template): Constify argument.
663618334Speter
663790075Sobrien2000-08-29  Mark Mitchell  <mark@codesourcery.com>
663818334Speter
663990075Sobrien	* typeck.c (mark_addressable): Remove code that pokes around in
664090075Sobrien	RTL.
664118334Speter
664290075Sobrien2000-08-28  Jason Merrill  <jason@redhat.com>
664318334Speter
664490075Sobrien	* lex.c (file_name_nondirectory): Move to toplev.c.
664518334Speter
664690075Sobrien	* cp-tree.h (LOCAL_CLASS_P): New macro.
664790075Sobrien	* class.c (finish_struct_1): Use it.
664818334Speter
664990075Sobrien2000-08-27  Alex Samuel  <samuel@codesourcery.com>
665018334Speter
665190075Sobrien	* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
665290075Sobrien	(write_encoding): Pass another argument to write_name.
665390075Sobrien	(write_name): Add ignore_local_scope parameter.  Fix handling of
665490075Sobrien	local names.
665590075Sobrien	(write_nested_name): Use write_unqualified_name.
665690075Sobrien	(write_prefix): Likewise.  Skip out on FUNCTION_DECLs.
665790075Sobrien	(write_template_prefix): Use write_unqualified_name.
665890075Sobrien	(write_component): Remove.
665990075Sobrien	(write_local_name): Add parameter.  Use direct local entity to
666090075Sobrien	discriminator calculation.
666190075Sobrien	(write_class_enum_type): Pass another argument to write_name.
666290075Sobrien	(write_template_template_arg): Likewise.
666390075Sobrien	(make_guard_variable): Likewise.
666418334Speter
666590075Sobrien2000-08-27  Jason Merrill  <jason@redhat.com>
666618334Speter
666790075Sobrien	* decl.c (pushdecl): Matching decls for local externs are found in
666890075Sobrien	the current level.  Propagate linkage information from previous
666990075Sobrien	declarations.
667018334Speter
667190075Sobrien2000-08-26  Gabriel Dos Reis  <gdr@codesourcery.com>
667218334Speter
667390075Sobrien	* ir.texi (Expressions): Fix typo.
667418334Speter
667590075Sobrien2000-08-25  Greg McGary  <greg@mcgary.org>
667618334Speter
667790075Sobrien	* tree.c (init_tree): Use ARRAY_SIZE.
667818334Speter
667990075Sobrien2000-08-25  Gabriel Dos Reis  <gdr@codesourcery.com>
668018334Speter
668190075Sobrien	* error.c (cp_tree_printer): Rework.
668218334Speter
668390075Sobrien2000-08-25  Mark Mitchell  <mark@codesourcery.com>
668418334Speter
668590075Sobrien	* Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
668690075Sobrien	dyn-string.o.
668790075Sobrien	(CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
668890075Sobrien	(cp-demangle.o): Remove target.
668990075Sobrien	(dyn-string.o): Likewise.
669018334Speter
669190075Sobrien	* decl.c (grokfndecl): Require that `main' return an `int'.
669290075Sobrien	* mangle.c (write_encoding): Don't mangle return types for
669390075Sobrien	conversion functions.
669418334Speter
669590075Sobrien2000-08-25  Gabriel Dos Reis  <gdr@codesourcery.com>
669618334Speter
669790075Sobrien	* error.c (tree_formatting_info): New data type.
669890075Sobrien	(tree_being_formatted): New macro.
669990075Sobrien	(tree_formatting_flags): Likewise.
670090075Sobrien	(put_whitespace): Likewise.
670190075Sobrien	(print_tree_identifier): Likewise.
670290075Sobrien	(print_identifier): Likewise.
670390075Sobrien	(cp_tree_printer, print_function_argument_list, print_declaration,
670490075Sobrien	print_expression, print_function_declaration,
670590075Sobrien	print_function_parameter, print_type, print_cv_qualifier): New
670690075Sobrien	functions.
670790075Sobrien	(init_error): Initialize lang_printer.
670818334Speter
670990075Sobrien2000-08-24  Jason Merrill  <jason@redhat.com>
671018334Speter
671190075Sobrien	* typeck.c (build_ptrmemfunc): Just reinterpret if there's no
671290075Sobrien	adjustment necessary.
671318334Speter
671490075Sobrien2000-08-24  Greg McGary  <greg@mcgary.org>
671518334Speter
671690075Sobrien	* cp-tree.h (MAIN_NAME_P): Remove macro.
671718334Speter
671890075Sobrien2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
671918334Speter
672090075Sobrien	* error.c (print_instantiation_context): Don't forget to flush the
672190075Sobrien	buffer.
672218334Speter
672390075Sobrien2000-08-23  Jason Merrill  <jason@redhat.com>
672418334Speter
672590075Sobrien	* typeck.c (build_ptrmemfunc): Save the input pmf.
672618334Speter
672790075Sobrien	* method.c (process_modifiers): Use same_type_p.
672818334Speter
672990075Sobrien2000-08-23  Mark Mitchell  <mark@codesourcery.com>
673018334Speter
673190075Sobrien	* cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
673290075Sobrien	* mangle.c (write_function_type): Change prototype.
673390075Sobrien	(write_encoding): Don't mangle return types for
673490075Sobrien	constructors or destructors.
673590075Sobrien	(write_type): Adjust call to write_function_type.
673690075Sobrien	* pt.c (instantiate_template): Instantiate alternate entry points
673790075Sobrien	when instantiating the main function.
673818334Speter
673990075Sobrien2000-08-23  Gabriel Dos Reis  <gdr@codesourcery.com>
674018334Speter
674190075Sobrien	* error.c (cp_print_error_function): Don't use embedded '\n' in
674290075Sobrien	output_printf.
674318334Speter
674490075Sobrien2000-08-23  Gabriel Dos Reis  <gdr@codesourcery.com>
674518334Speter
674690075Sobrien	* decl.c (init_decl_processing): Remove bogus initialization.
674790075Sobrien	* error.c (lang_print_error_function): Restore here.
674890075Sobrien	(init_error): Initialize print_error_function.
674918334Speter
675090075Sobrien2000-08-22  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
675118334Speter
675290075Sobrien	* decl2.c (arg_assoc): Revert my 2000-08-11 change.
675318334Speter
675490075Sobrien2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
675518334Speter
675690075Sobrien	* Makefile.in (error.o): Depends on diagnostic.h
675718334Speter
675890075Sobrien	* cp-tree.h (problematic_instantiation_changed,
675990075Sobrien	record_last_problematic_instantiation, current_instantiation,
676090075Sobrien	print_instantiation_context): Declare.
676190075Sobrien	(maybe_print_template_context): Remove.
676218334Speter
676390075Sobrien	* decl.c (init_decl_processing): Set print_error_function to NULL.
676490075Sobrien	(lang_print_error_function): Remove, since we're using a new
676590075Sobrien	machinery.
676618334Speter
676790075Sobrien	* error.c: #include diagnostic.h
676890075Sobrien	(function_category): New function.
676990075Sobrien	(cp_diagnostic_starter): Likewise.
677090075Sobrien	(cp_diagnostic_finalizer): Likewise.
677190075Sobrien	(cp_print_error_function): Likewise.
677290075Sobrien	(maybe_print_instantiation_context): Likewise.
677390075Sobrien	(print_instantiation_full_context): Likewise.
677490075Sobrien	(print_instantiation_partial_context): Likewise.
677590075Sobrien	(print_instantiation_context): Define.
677690075Sobrien	(init_error): Initialize diagnostic pager and finalizer.
677718334Speter
677890075Sobrien	* pt.c (problematic_instantiation_changed): Define.
677990075Sobrien	(record_last_problematic_instantiation): Likewise.
678090075Sobrien	(current_instantiation): Likewise.
678190075Sobrien	(maybe_print_template_context): Remove.
678290075Sobrien	(print_template_context): Likewise.
678390075Sobrien	(current_tinst_level): Make static to reflect Brendan Kehoe's
678490075Sobrien	change of 1995-04-13.
678590075Sobrien	(push_tinst_level): Call print_instantiation_context.
678618334Speter
678790075Sobrien2000-08-21  Nix  <nix@esperi.demon.co.uk>
678818334Speter
678990075Sobrien	* lang-specs.h: Do not process -o or run the assembler if
679090075Sobrien	-fsyntax-only.
679118334Speter
679290075Sobrien2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
679318334Speter
679490075Sobrien	* decl.c (flag_hosted, flag_noniso_default_format_attributes): New
679590075Sobrien	variables.
679690075Sobrien	* decl2.c (lang_decode_option): Disable gettext attributes for
679790075Sobrien	-ansi.
679818334Speter
679990075Sobrien2000-08-21  Gabriel Dos Reis  <gdr@codesourcery.com>
680018334Speter
680190075Sobrien	* lex.c (lang_init_options): Default diagnostic message maximum
680290075Sobrien	length to 80, when line-wrapping.
680318334Speter
680490075Sobrien2000-08-20  Mark Mitchell  <mark@codesourcery.com>
680518334Speter
680690075Sobrien	* class.c (build_vtbl_initializer): Clear the entire
680790075Sobrien	vtbl_init_data.  Start keeping track of the functions for which we
680890075Sobrien	have created vcall offsets here.
680990075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Remove.
681090075Sobrien	(build_vcall_offset_vtbl_entries): Reimplement.
681190075Sobrien	(add_vcall_offset_vtbl_entries_r): New function.
681290075Sobrien	(add_vcall_offset_vtbl_entries_1): Likewise.  Tweak logic for
681390075Sobrien	computing when vcall offsets are necessary.
681418334Speter
681590075Sobrien2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
681618334Speter
681790075Sobrien	* decl.c (member_function_or_else): Use cp_error ... %T.
681852284Sobrien	(grokdeclarator): Likewise.
681952284Sobrien	(start_method): Likewise.
682090075Sobrien	* friend.c (make_friend_class): Use cp_pedwarn ... %T.
682118334Speter
682290075Sobrien2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
682318334Speter
682490075Sobrien	* decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
682590075Sobrien	TYPE_DECLs.
682618334Speter
682790075Sobrien2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
682818334Speter
682990075Sobrien	* cp-tree.h (PTRMEM_OK_P): New macro.
683090075Sobrien	(itf_ptrmem_ok): New enumeration value.
683190075Sobrien	* class.c (resolve_address_of_overloaded_function): Add PTRMEM
683290075Sobrien	argument. Diagnose implicit pointer to member.
683390075Sobrien	(instantiate_type): Don't diagnose implicit pointer to member
683490075Sobrien	here. Pass itf_ptrmem_ok if ok. Adjust calls to
683590075Sobrien	resolve_address_of_overloaded_function.
683690075Sobrien	* init.c (build_offset_ref): Set PTRMEM_OK_P.
683790075Sobrien	(resolve_offset_ref): Don't diagnose implicit pointer to member here.
683890075Sobrien	* semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
683990075Sobrien	* typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
684090075Sobrien	(build_unary_op): Deal with single non-static member in
684190075Sobrien	microsoft-land.
684218334Speter
684390075Sobrien2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
684418334Speter
684590075Sobrien	* decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
684618334Speter
684790075Sobrien2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>
684818334Speter
684990075Sobrien	* cp-tree.h (enum_name_string): Remove prototype.
685090075Sobrien	(report_case_error): Remove prototype.
685190075Sobrien	* cp/typeck2.c (enum_name_string): Remove.
685290075Sobrien	(report_case_error): Remove.
685390075Sobrien	* error.c (dump_expr): Deal with enum values directly.
685490075Sobrien	Correctly negate integer constant.
685518334Speter
685690075Sobrien2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
685718334Speter
685890075Sobrien	* inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
685990075Sobrien	(__cxa_vec_delete2, __cxa_vec_delete3): Declare.
686090075Sobrien	* vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
686190075Sobrien	(__cxa_vec_delete2, __cxa_vec_delete3): Implement.
686290075Sobrien	(__cxa_vec_new): Use __cxa_vec_new2.
686390075Sobrien	(__cxa_vec_delete): Use __cxa_vec_delete2.
686418334Speter
686590075Sobrien2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
686618334Speter
686790075Sobrien	* vec.cc (__cxa_vec_new): Set "C" linkage.
686890075Sobrien	(__cxa_vec_ctor): Likewise.
686990075Sobrien	(__cxa_vec_cctor): Likewise.
687090075Sobrien	(__cxa_vec_dtor): Likewise.
687190075Sobrien	(__cxa_vec_delete): Likewise.
687290075Sobrien	* inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
687390075Sobrien	(__cxa_vec_ctor): Likewise.
687490075Sobrien	(__cxa_vec_cctor): Likewise.
687590075Sobrien	(__cxa_vec_dtor): Likewise.
687690075Sobrien	(__cxa_vec_delete): Likewise.
687718334Speter
687890075Sobrien2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
687918334Speter
688090075Sobrien	* class.c (instantiate_type): Reinstate local variable
688190075Sobrien	deleted in previous change.
688218334Speter
688390075Sobrien	* cvt.c (cp_convert_to_pointer): Pass itf_complain, not
688490075Sobrien	itf_no_attributes.
688518334Speter
688690075Sobrien2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
688718334Speter
688890075Sobrien	* cp-tree.h (instantiate_type_flags): New enumeration.
688990075Sobrien	(instantiate_type): Change parameter.
689090075Sobrien	* class.c (instantiate_type): Adjust prototype. Adjust.
689190075Sobrien	* call.c (standard_conversion): Adjust instantiate_type call.
689290075Sobrien	(reference_binding): Likewise.
689350397Sobrien	(build_op_delete_call): Likewise.
689490075Sobrien	(convert_like_real): Likewise.
689590075Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
689690075Sobrien	(convert_to_reference): Likewise.
689790075Sobrien	* pt.c (convert_nontype_argument): Likewise.
689890075Sobrien	* typeck.c (build_binary_op): Likewise.
689990075Sobrien	(build_ptrmemfunc): Likewise.
690090075Sobrien	(convert_for_assignment): Likewise.
690118334Speter
690290075Sobrien2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>
690318334Speter
690490075Sobrien	* cp-tree.h (CPTR_AGGR_TAG): New global tree node.
690590075Sobrien	(current_aggr): Define.
690690075Sobrien	* decl.c (grokdeclarator): Make sure a friend class is an
690790075Sobrien	elaborated type specifier.
690890075Sobrien	* parse.y (current_aggr): Remove static definition.
690990075Sobrien	(cp_parse_init): Adjust.
691090075Sobrien	(structsp): Clear and restore current_aggr.
691190075Sobrien	(component_decl_list): Clear current_aggr.
691218334Speter
691390075Sobrien	* error.c (dump_type, case TYPENAME_TYPE): Don't emit the
691490075Sobrien	aggregate tag on the typename's context.
691518334Speter
691690075Sobrien	* pt.c (tsubst_friend_class): Return error_mark_node, if
691790075Sobrien	parms becomes NULL.
691890075Sobrien	(instantiate_class_template): Ignore error_mark_node friend types.
691918334Speter
692090075Sobrien2000-08-14  Nathan Sidwell  <nathan@codesourcery.com>
692118334Speter
692290075Sobrien	* cvt.c (warn_ref_binding): New static function, broken out of ...
692390075Sobrien	(convert_to_reference): ... here. Use it.
692418334Speter
692590075Sobrien2000-08-11  Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
692618334Speter
692790075Sobrien	* parse.y (template_arg): Add rule for template qualified with
692890075Sobrien	global scope.
692918334Speter
693090075Sobrien2000-08-11  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
693118334Speter
693290075Sobrien	* decl2.c (add_function): Reorganize.
693390075Sobrien	(arg_assoc): Do not consider function template decls.
693418334Speter
693590075Sobrien2000-08-11  Jason Merrill  <jason@redhat.com>
693618334Speter
693790075Sobrien	* decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
693890075Sobrien	looking inside.
693918334Speter
694090075Sobrien2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
694118334Speter
694290075Sobrien	* cp-tree.h (resolve_scope_to_name): Remove unused prototype.
694390075Sobrien	(lookup_nested_tag): Likewise.
694418334Speter
694590075Sobrien	* decl2.c (grokfield): Fix comment to reflect many types of _DECLs
694690075Sobrien	can be produced.
694718334Speter
694890075Sobrien2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
694918334Speter
695090075Sobrien	* parse.y (named_complex_class_head_sans_basetype): Remove
695190075Sobrien	always true if.
695218334Speter
695390075Sobrien2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
695418334Speter
695590075Sobrien	* decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
695690075Sobrien	explicit TEMPLATE_ID_EXPR args.
695790075Sobrien	(build_expr_from_tree, case CALL_EXPR): Likewise.
695818334Speter
695990075Sobrien2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
696018334Speter
696190075Sobrien	* decl.c (check_tag_decl): Diagnose typename's which don't
696290075Sobrien	declare anything.
696318334Speter
696490075Sobrien2000-08-10  Nathan Sidwell  <nathan@codesourcery.com>
696518334Speter
696690075Sobrien	* init.c (build_aggr_init): Reject bogus array initializers
696790075Sobrien	early.
696818334Speter
696990075Sobrien2000-08-09  Nathan Sidwell  <nathan@codesourcery.com>
697018334Speter
697190075Sobrien	* rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
697290075Sobrien	runtime.
697390075Sobrien	* cp/tinfo.cc (__dynamic_cast): Likewise.
697490075Sobrien	* cp/inc/cxxabi.h (__dynamic_cast): Likewise.
697518334Speter
697690075Sobrien2000-08-09  Nathan Sidwell  <nathan@codesourcery.com>
697718334Speter
697890075Sobrien	* cvt.c (convert_to_pointer_force): Fix error message when
697990075Sobrien	attempting to cast from ambiguous base.
698018334Speter
698190075Sobrien2000-08-08  Jason Merrill  <jason@redhat.com>
698218334Speter
698390075Sobrien	* pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
698490075Sobrien	(tsubst_template_arg_vector): Likewise.
698518334Speter
698690075Sobrien	* decl2.c (build_anon_union_vars): Choose the largest field; don't
698790075Sobrien	assume that one will be as large as the union.
698818334Speter
698990075Sobrien2000-08-07  Kazu Hirata  <kazu@hxi.com>
699018334Speter
699190075Sobrien	* cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
699290075Sobrien	* decl.c (pop_labels): Likewise.
699318334Speter
699490075Sobrien2000-08-04  Jeffrey Oldham  <oldham@codesourcery.com>
699518334Speter
699690075Sobrien	* inc/cxxabi.h (__pbase_type_info): Changed member names to match
699790075Sobrien	specifications.
699890075Sobrien	(__pointer_to_member_type_info): Likewise.
699990075Sobrien	(__base_class_info): Likewise.
700090075Sobrien	(__class_type_info): Likewise.
700190075Sobrien	(__si_class_type_info): Likewise.
700290075Sobrien	(__vmi_class_type_info): Likewise.
700390075Sobrien	* tinfo.cc (__si_class_type_info::__do_find_public_src):
700490075Sobrien	Changed member names to match specifications.
700590075Sobrien	(__vmi_class_type_info::__do_find_public_src): Likewise.
700690075Sobrien	(__si_class_type_info::__do_dyncast): Likewise.
700790075Sobrien	(__vmi_class_type_info::__do_dyncast): Likewise.
700890075Sobrien	(__si_class_type_info::__do_upcast): Likewise.
700990075Sobrien	(__vmi_class_type_info::__do_upcast): Likewise.
701090075Sobrien	* tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
701190075Sobrien	(__pbase_type_info::__pointer_catch): Likewise.
701290075Sobrien	(__pointer_type_info::__pointer_catch): Likewise.
701390075Sobrien	(__pointer_to_member_type_info::__pointer_catch): Likewise.
701418334Speter
701590075Sobrien2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
701618334Speter
701790075Sobrien	* Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
701890075Sobrien	* Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
701990075Sobrien	(cc1plus): Link with $(BACKEND) and $(C_OBJS).
702018334Speter
702190075Sobrien2000-08-04  Mark Mitchell  <mark@codesourcery.com>
702218334Speter
702390075Sobrien	* cp-tree.h (add_method): Change prototype.
702490075Sobrien	* class.c (add_method): Remove FIELDS parameter.  Add ERROR_P.
702590075Sobrien	Don't double the size of the method vector in the error case.
702690075Sobrien	(handle_using_decl): Adjust call to add_method.
702790075Sobrien	(add_implicitly_declared_members): Likewise.
702890075Sobrien	(clone_function_decl): Likewise.
702990075Sobrien	* decl2.c (check_classfn): Likewise.
703090075Sobrien	* semantics.c (finish_member_declaration): Likewise.
703118334Speter
703290075Sobrien2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
703318334Speter
703490075Sobrien	* decl.c (flag_isoc94): New variable.
703518334Speter
703690075Sobrien2000-08-02  Jason Merrill  <jason@redhat.com>
703718334Speter
703890075Sobrien	* pt.c (do_type_instantiation): Add complain parm; don't complain
703990075Sobrien	if called recursively.
704090075Sobrien	* cp-tree.h, parse.y: Adjust.
704118334Speter
704290075Sobrien2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
704318334Speter
704490075Sobrien	* decl2.c: Silently ignore -Wstrict-prototypes; warn about
704590075Sobrien	-Wno-strict-prototypes.
704618334Speter
704790075Sobrien	* g++spec.c: Adjust type of second argument to
704890075Sobrien	lang_specific_driver, and update code as necessary.
704918334Speter
705090075Sobrien	* cp-tree.h: Don't prototype min_precision here.
705190075Sobrien	(my_friendly_assert): Cast expression to void.
705290075Sobrien	* semantics.c (do_poplevel): Initialize scope_stmts.
705318334Speter
705490075Sobrien2000-08-02  Mark Mitchell  <mark@codesourcery.com>
705518334Speter
705690075Sobrien	* cp-tree.h (DECL_NEEDED_P): Tweak.
705718334Speter
705890075Sobrien2000-07-28  Jason Merrill  <jason@redhat.com>
705952284Sobrien
706090075Sobrien	* lang-specs.h: Use %i in rule for .ii files.
706118334Speter
706290075Sobrien2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
706318334Speter
706490075Sobrien	* lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
706518334Speter
706690075Sobrien2000-07-30  Mark Mitchell  <mark@codesourcery.com>
706718334Speter
706890075Sobrien	Allow indirect primary bases.
706990075Sobrien	* cp-tree.h (struct lang_type): Remove vfield_parent.  Add
707090075Sobrien	primary_base.
707190075Sobrien	(CLASSTYPE_VFIELD_PARENT): Remove.
707290075Sobrien	(CLASSTYPE_PRIMARY_BINFO): Reimplement.
707390075Sobrien	(BINFO_PRIMARY_BINFO): Remove.
707490075Sobrien	(CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
707590075Sobrien	(BINFO_VBASE_PRIMARY_P): Likewise.
707690075Sobrien	(BINFO_PRIMARY_BASE_OF): New macro.
707790075Sobrien	(BINFO_INDIRECT_PRIMARY_P): Likewise.
707890075Sobrien	(get_primary_binfo): New function.
707990075Sobrien	* decl.c (lang_mark_tree): Make lang_type::primary_base.
708090075Sobrien	* class.c (vcall_offset_data_s): Rename to ...
708190075Sobrien	(vtbl_init_data_s): ... this.  Rename primary_p to primary_vtbl_p,
708290075Sobrien	and add ctor_vtbl_p.
708390075Sobrien	(get_derived_offset): Use get_primary_binfo.
708490075Sobrien	(dfs_mark_primary_bases): Adjust handling of virtual primary
708590075Sobrien	bases.
708690075Sobrien	(mark_primary_bases): Likewise.
708790075Sobrien	(set_primary_base): Take a binfo, not an integer, as a
708890075Sobrien	representation of the primary base.
708990075Sobrien	(indirect_primary_base_p): Remove.
709090075Sobrien	(determine_primary_base): Adjust for indirect primary bases.
709190075Sobrien	(dfs_find_final_overrider): Fix typo in coment.
709290075Sobrien	(update_vtable_entry_for_fn): Use get_primary_binfo.
709390075Sobrien	(layout_nonempty_base_or_field): Tweak.
709490075Sobrien	(build_base_fields): Adjust for new primary base semantics.
709590075Sobrien	(dfs_propagate_binfo_offsets): Remove.
709690075Sobrien	(propagate_binfo_offsets): Rewrite.
709790075Sobrien	(dfs_set_offset_for_shared_vbases): Remove.
709890075Sobrien	(layout_virtual_bases): Don't use it.
709990075Sobrien	(layout_class_type): Set CLASSTYPE_SIZE correctly under the new
710090075Sobrien	ABI.
710190075Sobrien	(finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
710290075Sobrien	CLASSTYPE_VFIELD_PARENT.
710390075Sobrien	(dfs_get_primary_binfo): New function.
710490075Sobrien	(get_primary_binfo): Likewise.
710590075Sobrien	(dump_class_hierarchy_r): Tweak printing of primary bases.
710690075Sobrien	(build_vtbl_initializer): Fix typo in comments.  Use
710790075Sobrien	vtbl_init_data.
710890075Sobrien	(build_vcall_and_vbase_vtbl_entries): Likewise.
710990075Sobrien	(build_vbaes_offset_vtbl_entries): Likewise.
711090075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Adjust setting of
711190075Sobrien	BV_VCALL_INDEX to handle indirect primary bases.
711290075Sobrien	(build_vcall_offset_vtbl_entries): Use vtbl_init_data.
711390075Sobrien	(build_rtti_vtbl_entries): Likewise.
711490075Sobrien	* search.c (get_shared_vbase_if_not_primary): Tweak.
711590075Sobrien	(find_vbase_instance): Likewise.
711690075Sobrien	(binfo_for_vtable): Simplify.
711790075Sobrien	* tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
711890075Sobrien	(make_binfo): Make it have 11 entries.
711918334Speter
712090075Sobrien2000-07-30  Alex Samuel  <samuel@codesourcery.com>
712118334Speter
712290075Sobrien	* mangle.c (DECL_TEMPLATE_ID_P): Remove.
712390075Sobrien	(CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
712490075Sobrien	ascertaining primaryness.
712590075Sobrien	(G): Remove template_args.
712690075Sobrien	(decl_is_template_id): New function.
712790075Sobrien	(write_encoding): Use decl_is_template_id.
712890075Sobrien	(write_name): Likewise.  Handle type_decls.  Get main variant of
712990075Sobrien	type decls.
713090075Sobrien	(write_nested_name): Likewise.
713190075Sobrien	(write_prefix): Likewise.
713290075Sobrien	(write_template_prefix): Likewise.
713390075Sobrien	(write_special_name_constructor): Remove defunct production from
713490075Sobrien	comment.
713590075Sobrien	(write_bare_function_type): Remove comment about absent parameter.
713690075Sobrien	(write_template_template_arg): Add missing grammar production to
713790075Sobrien	comment.
713818334Speter
713990075Sobrien2000-07-27  Jason Merrill  <jason@redhat.com>
714018334Speter
714190075Sobrien	* decl.c (duplicate_decls): If common_type produces a non-typedef
714290075Sobrien	type for a typedef, just use the old type.
714318334Speter
714490075Sobrien2000-07-27  Mark Mitchell  <mark@codesourcery.com>
714518334Speter
714690075Sobrien	* cp-tree.h (function_depth): Declare.
714790075Sobrien	(verify_stmt_tree): Likewise.
714890075Sobrien	(find_tree): Likewise.
714990075Sobrien	* decl.c (function_depth): Give it external linkage.
715090075Sobrien	* optimize.c (optimize_function): Increment and decrement it.
715190075Sobrien	* tree.c (verify_stmt_tree_r): New function.
715290075Sobrien	(verify_stmt_tree): Likewise.
715390075Sobrien	(find_tree_r): Likewise.
715490075Sobrien	(find_tree): Likewise.
715518334Speter
715690075Sobrien2000-07-27  Jason Merrill  <jason@redhat.com>
715718334Speter
715890075Sobrien	* pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
715990075Sobrien	TYPE_PTRMEMFUNC_P.
716090075Sobrien	* cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
716150397Sobrien
716290075Sobrien2000-07-26  Mark Mitchell  <mark@codesourcery.com>
716350397Sobrien
716490075Sobrien	* decl.c (start_cleanup_fn): Mark the function as `inline'.
716590075Sobrien	* decl2.c (get_guard): Call cp_finish_decl, not
716690075Sobrien	rest_of_decl_compilation, for local guards.
716790075Sobrien	* lex.c (do_identifier): Remove unused variable.
716850397Sobrien
716990075SobrienWed Jul 26 15:05:51 CEST 2000	Marc Espie <espie@cvs.openbsd.org>
717050397Sobrien
717190075Sobrien	* parse.y:  Add missing ';'.
717250397Sobrien
717390075Sobrien2000-07-26  Mark Mitchell  <mark@codesourcery.com>
717450397Sobrien
717590075Sobrien	* parse.y (empty_parms): Use `()', not `(...)', when in the scope
717690075Sobrien	of `extern "C++"'.
717752284Sobrien
717890075Sobrien2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
717918334Speter
718090075Sobrien	Kill strict_prototype. Backwards compatibility only for
718190075Sobrien	non NO_IMPLICIT_EXTERN_C systems.
718290075Sobrien	* cp-tree.h (flag_strict_prototype): Remove.
718390075Sobrien	(strict_prototype): Remove.
718490075Sobrien	(strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
718590075Sobrien	* decl.c (maybe_push_to_top_level): Adjust.
718690075Sobrien	(pop_from_top_level): Adjust.
718790075Sobrien	(decls_match): Only allow sloppy parm matching for ancient
718890075Sobrien	system headers.
718990075Sobrien	(init_decl_processing): Adjust.
719090075Sobrien	(grokdeclarator): Adjust.
719190075Sobrien	* decl2.c (flag_strict_prototype): Remove.
719290075Sobrien	(strict_prototype): Remove.
719390075Sobrien	(strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
719490075Sobrien	(lang_f_options): Remove "strict-prototype".
719590075Sobrien	(unsupported-options): Add "strict-prototype".
719690075Sobrien	* lex.c (do_identifier): Adjust.
719790075Sobrien	(do_scoped_id): Adjust.
719890075Sobrien	* parse.y (empty_parms): Adjust.
719990075Sobrien	* class.c (push_lang_context): Adjust.
720090075Sobrien	(pop_lang_context): Adjust.
720190075Sobrien	* typeck.c (comp_target_parms): Adjust.
720218334Speter
720390075Sobrien2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
720418334Speter
720590075Sobrien	* decl.c (poplevel): Deal with anonymous variables at for scope.
720690075Sobrien	(maybe_inject_for_scope_var): Likewise.
720718334Speter
720890075Sobrien2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
720918334Speter
721090075Sobrien	* decl.c: Remove all signal handling code, now done in toplev.c.
721118334Speter
721290075Sobrien2000-07-23  Mark Mitchell  <mark@codesourcery.com>
721318334Speter
721490075Sobrien	* decl.c (make_rtl_for_nonlocal_decl): Rework.
721518334Speter
721690075Sobrien	* pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
721790075Sobrien	correctly.
721852284Sobrien
721990075Sobrien2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
722018334Speter
722190075Sobrien	* cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
722290075Sobrien	Define my_friendly_assert and my_friendly_abort as macros
722390075Sobrien	which may call friendly_abort.  Prototype friendly abort, not
722490075Sobrien	my_friendly_abort or my_friendly_assert.
722590075Sobrien	* decl.c (signal_catch): Report the signal caught in the error
722690075Sobrien	message.  Call fatal directly.
722790075Sobrien	* typeck2.c (ack, my_friendly_assert): Delete.
722890075Sobrien	(my_friendly_abort): Rename to friendly_abort.  Expect file,
722990075Sobrien	line, and function parameters.  Report the abort code, then
723090075Sobrien	call fancy_abort.  Do not mask an abort if errors have
723190075Sobrien	already occurred.
723218334Speter
723390075Sobrien2000-07-18  Nathan Sidwell  <nathan@codesourcery.com>
723418334Speter
723590075Sobrien	* typeck.c (comp_target_parms): Remove obsolete parameter.
723690075Sobrien	(comp_target_types): Adjust.
723718334Speter
723890075Sobrien2000-07-17  Jason Merrill  <jason@redhat.com>
723918334Speter
724090075Sobrien	* typeck.c (mark_addressable): Never set TREE_USED.
724190075Sobrien	* call.c (build_call): Don't abort on calls to library functions
724290075Sobrien	that have been declared normally.
724318334Speter
724490075Sobrien	* typeck.c (build_binary_op): Fix grammar in warning.
724518334Speter
724690075Sobrien	* exception.cc (__eh_free): Fix prototype.
724718334Speter
724890075Sobrien	* decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
724918334Speter
725090075Sobrien	* decl.c (pushdecl): Handle seeing an OVERLOAD in
725190075Sobrien	IDENTIFIER_NAMESPACE_VALUE.
725218334Speter
725390075Sobrien2000-07-16  Mark Mitchell  <mark@codesourcery.com>
725418334Speter
725590075Sobrien	* cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
725690075Sobrien	* method.c (use_thunk): Correct handling of vcall offsets.
725718334Speter
725890075Sobrien2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
725918334Speter
726090075Sobrien	* .cvsignore: parse.h and parse.c have no cp- prefix.
726118334Speter
726290075Sobrien2000-07-13  Mark Mitchell  <mark@codesourcery.com>
726318334Speter
726490075Sobrien	* .cvsignore: New file.
726518334Speter
726690075Sobrien2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
726718334Speter
726890075Sobrien	* lang-specs.h: Use the new named specs.  Remove unnecessary braces.
726918334Speter
727090075Sobrien2000-07-12  Mark Mitchell  <mark@codesourcery.com>
727118334Speter
727290075Sobrien	* Makefile.in ($(PARSE_H)): Depend directly on parse.y.
727390075Sobrien	* parse.c: Remove.
727490075Sobrien	* parse.h: Likewise.
727518334Speter
727690075Sobrien2000-07-11  Mark Mitchell  <mark@codesourcery.com>
727718334Speter
727890075Sobrien	* class.c (layout_class_type): Add pointers to virtual bases after
727990075Sobrien	base classes under the old ABI.
728018334Speter
728190075Sobrien2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
728218334Speter
728390075Sobrien	* semantics.c (finish_for_stmt): Remove call to emit_line_note.
728490075Sobrien	(finish_continue_stmt): Likewise.
728590075Sobrien	(begin_for_stmt): Remove call to note_level_for_for.
728690075Sobrien	(finish_goto_stmt): Change call from build_min_nt
728790075Sobrien	to build_stmt.
728890075Sobrien	(finish_expr_stmt): Likewise.
728990075Sobrien	(begin_if_stmt): Likewise.
729090075Sobrien	(begin_while_stmt): Likewise.
729190075Sobrien	(finish_while_stmt): Likewise.
729290075Sobrien	(finish_return_stmt): Likewise.
729390075Sobrien	(begin_for_stmt): Likewise.
729490075Sobrien	(finish_for_stmt): Likewise.
729590075Sobrien	(finish_break_stmt): Likewise.
729690075Sobrien	(begin_switch_stmt): Likewise.
729790075Sobrien	(finish_case_label): Likewise.
729890075Sobrien	(genrtl_try_block): Likewise.
729990075Sobrien	(begin_try_block): Likewise.
730090075Sobrien	(begin_handler): Likewise.
730190075Sobrien	(begin_compound_stmt): Likewise.
730290075Sobrien	(finish_asm_stmt): Likewise.
730390075Sobrien	(finish_label_stmt): Likewise.
730490075Sobrien	(add_decl_stmt): Likewise.
730590075Sobrien	(finish_subobject): Likewise.
730690075Sobrien	(finish_decl_cleanup): Likewise.
730790075Sobrien	(finish_named_return_value): Likewise.
730890075Sobrien	(setup_vtbl_ptr): Likewise.
730990075Sobrien	(add_scope_stmt): Likewise.
731090075Sobrien	* decl.c (finish_constructor_body): Likewise.
731190075Sobrien	(finish_destructor_body): Likewise.
731290075Sobrien	* optimize.c (copy_body_r): Likewise.
731390075Sobrien	(initialize_inlined_parameters): Likewise.
731490075Sobrien	(declare_return_variable): Likewise.
731590075Sobrien	(expand_call_inline): Likewise.
731618334Speter
731790075Sobrien2000-07-10  Jakub Jelinek  <jakub@redhat.com>
731818334Speter
731990075Sobrien	* semantics.c (expand_body): Sync interface information
732090075Sobrien	at the end of function body expansion.
732118334Speter
732290075Sobrien2000-07-09  Jason Merrill  <jason@redhat.com>
732352284Sobrien
732490075Sobrien	* init.c (build_new_1): Bail early if the call to new fails.
732518334Speter
732690075Sobrien	* decl.c (compute_array_index_type): Check specifically for
732790075Sobrien	an INTEGER_CST, not just TREE_CONSTANT.
732818334Speter
732990075Sobrien	* decl.c (duplicate_decls): Don't call duplicate_decls on
733090075Sobrien	the DECL_TEMPLATE_RESULT.
733190075Sobrien	(decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
733290075Sobrien	codes.
733318334Speter
733490075Sobrien	* error.c (dump_template_bindings): Don't crash if we had an
733590075Sobrien	invalid argument list.
733618334Speter
733790075Sobrien	* typeck.c (c_expand_start_case): Do narrowing here.
733890075Sobrien	* semantics.c (finish_switch_cond): Not here.
733918334Speter
734090075Sobrien2000-07-09  Hidvegi Zoli  <hzoli@austin.ibm.com>
734118334Speter
734290075Sobrien	* parse.y (asm_clobbers): Do string concatenation.
734318334Speter
734490075Sobrien2000-07-09  Mark Mitchell  <mark@codesourcery.com>
734518334Speter
734690075Sobrien	* decl.c (pushtag): Don't put local classes in template functions
734790075Sobrien	on the local_classes list.
734818334Speter
734990075Sobrien2000-07-04  Scott Snyder  <snyder@fnal.gov>
735018334Speter
735190075Sobrien	* decl2.c (get_guard): Add missing return for old ABI local
735290075Sobrien	variable case.
735318334Speter
735490075Sobrien2000-07-09  Mark Mitchell  <mark@codesourcery.com>
735518334Speter
735690075Sobrien	* cp-tree.h (char_type_p): New function.
735790075Sobrien	* decl.c (init_decl_processing): Don't initialize
735890075Sobrien	signed_wchar_type_node or unsigned_wchar_type_node.
735990075Sobrien	(complete_array_type): Handle brace-enclosed string-constants.
736090075Sobrien	* rtti.c (emit_support_tinfos): Remove #if 0'd code.
736190075Sobrien	* tree.c (char_type_p): New function.
736290075Sobrien	* typeck2.c (digest_init): Use char_type_p.
736318334Speter
736490075Sobrien2000-07-06  Nathan Sidwell  <nathan@codesourcery.com>
736518334Speter
736690075Sobrien	* pt.c (tsubst): Don't layout type, if it's error_mark.
736718334Speter
736890075Sobrien2000-07-06  Nathan Sidwell  <nathan@codesourcery.com>
736918334Speter
737090075Sobrien	* pt.c (instantiate_pending_templates): Reset template level.
737118334Speter
737290075Sobrien2000-07-05  Jason Merrill  <jason@redhat.com>
737318334Speter
737490075Sobrien	* call.c (joust): Don't complain about `operator char *()' beating
737590075Sobrien	`operator const char *() const'.
737618334Speter
737790075Sobrien2000-07-04  scott snyder  <snyder@fnal.gov>
737890075Sobrien	    Jason Merrill  <jason@redhat.com>
737918334Speter
738090075Sobrien	* repo.c (repo_get_id): Handle the case where a class with virtual
738190075Sobrien	bases has a null TYPE_BINFO_VTABLE.
738218334Speter
738390075Sobrien2000-07-04  Kevin Buhr  <buhr@stat.wisc.edu>
738490075Sobrien	    Jason Merrill  <jason@redhat.com>
738518334Speter
738690075Sobrien	* parse.y (member_init): Just pass in the type.
738790075Sobrien	* init.c (expand_member_init): Handle getting a type.
738818334Speter
738990075Sobrien2000-07-04  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
739090075Sobrien	    Jason Merrill  <jason@redhat.com>
739118334Speter
739290075Sobrien	* decl.c (finish_function): Warn if a function has no return
739390075Sobrien	statement.
739490075Sobrien	Suggested by Andrew Koenig.
739590075Sobrien	* typeck.c (check_return_expr): Do set current_function_returns_value
739690075Sobrien	if we got an error_mark_node.
739718334Speter
739890075Sobrien2000-07-03  Nathan Sidwell  <nathan@codesourcery.com>
739918334Speter
740090075Sobrien	* decl2.c (push_decl_namespace): Push the original namespace.
740118334Speter
740290075Sobrien2000-07-03  Nathan Sidwell  <nathan@codesourcery.com>
740318334Speter
740490075Sobrien	* pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES.
740590075Sobrien	* semantics.c (begin_class_definition): Clear it.
740618334Speter
740790075Sobrien2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
740818334Speter
740990075Sobrien	* cp-tree.h (genrtl_goto_stmt): Remove declaration.
741090075Sobrien	(genrtl_expr_stmt): Likewise.
741190075Sobrien	(genrtl_decl_stmt): Likewise.
741290075Sobrien	(genrtl_if_stmt): Likewise.
741390075Sobrien	(genrtl_while_stmt): Likewise.
741490075Sobrien	(genrtl_do_stmt): Likewise.
741590075Sobrien	(genrtl_return_stmt): Likewise.
741690075Sobrien	(genrtl_for_stmt): Likewise.
741790075Sobrien	(genrtl_break_stmt): Likewise.
741890075Sobrien	(genrtl_continue_stmt): Likewise.
741990075Sobrien	(genrtl_scope_stmt): Likewise.
742090075Sobrien	(genrtl_switch_stmt): Likewise.
742190075Sobrien	(genrtl_case_label): Likewise.
742290075Sobrien	(genrtl_begin_compound_stmt): Likewise.
742390075Sobrien	(genrtl_finish_compound_stmt): Likewise.
742490075Sobrien	(genrtl_compound_stmt): Likewise.
742590075Sobrien	(genrtl_asm_stmt): Likewise.
742618334Speter
742790075Sobrien	* init.c (begin_init_stmts): Remove call to
742890075Sobrien	genrtl_begin_compound_stmt.
742990075Sobrien	(finish_init_stmts): Remove call to genrtl_finish_compound_stmt.
743018334Speter
743190075Sobrien	* semantics.c (lang_expand_stmt): Changed call to
743290075Sobrien	genrtl_compound_stmt to ignore return value.
743318334Speter
743490075Sobrien2000-07-02  Mark Mitchell  <mark@codesourcery.com>
743518334Speter
743690075Sobrien	* mangle.c (canonicalize_for_substitution): Return the canonical
743790075Sobrien	variant of a type.
743818334Speter
743990075Sobrien	* decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a
744090075Sobrien	TYPE_DECL.
744190075Sobrien	* typeck.c (commonparms): Remove obstack manipulations.
744218334Speter
744390075Sobrien2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
744418334Speter
744590075Sobrien	* Make-lang.in (cc1plus$(exeext)): Added c-semantics.o.
744618334Speter
744790075Sobrien	* Makefile.in (OBJS): Added ../c-semantics.o.
744890075Sobrien	(OBJDEPS): Likewise.
744918334Speter
745090075Sobrien	* cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to
745190075Sobrien	../c-common.h.
745290075Sobrien	(struct stmt_tree): Added comment.
745390075Sobrien	(current_function_name_declared): Removed.
745490075Sobrien	(stmts_are_full_exprs_p): Likewise.
745590075Sobrien	(genrtl_do_pushlevel): Likewise.
745690075Sobrien	(genrtl_clear_out_block): Likewise.
745790075Sobrien	(COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h.
745890075Sobrien	(DECL_ANON_UNION_ELEMS): Likewise.
745990075Sobrien	(emit_local_var): Likewise.
746090075Sobrien	(make_rtl_for_local_static): Likewise.
746190075Sobrien	(do_case): Likewise.
746290075Sobrien	(expand_stmt): Likewise.
746390075Sobrien	(genrtl_decl_cleanup): Likewise.
746490075Sobrien	(c_expand_asm_operands): Likewise.
746590075Sobrien	(c_expand_return): Likewise.
746690075Sobrien	(c_expand_start_case): Likewise.
746718334Speter
746890075Sobrien	* decl.c (make_rtl_for_local_static): Moved to c-semantics.c.
746990075Sobrien	(emit_local_var): Likewise.
747090075Sobrien	(initialize_local_var): Change reference to
747190075Sobrien	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
747290075Sobrien	Change reference to stmts_are_full_exprs_p to
747390075Sobrien	current_stmt_tree->stmts_are_full_exprs_p.
747490075Sobrien	(push_cp_function_context): Likewise.
747518334Speter
747690075Sobrien	* expect.c (expand_throw): Change reference to
747790075Sobrien	stmts_are_full_exprs_p.
747818334Speter
747990075Sobrien	* init.c (build_aggr_init): Change reference to
748090075Sobrien	stmts_are_full_exprs_p.
748190075Sobrien	(build_vec_init): Likewise.
748218334Speter
748390075Sobrien	* optimize.c (maybe_clone_body): Change reference to
748490075Sobrien	current_function_name_declared to
748590075Sobrien	cp_function_chain->name_declared.
748618334Speter
748790075Sobrien	* pt.c (instantiate_decl): Change reference to
748890075Sobrien	current_function_name_declared to
748990075Sobrien	cp_function_chain->name_declared.
749018334Speter
749190075Sobrien	* semantics.c (expand_cond): Moved declaration to c-common.h.
749290075Sobrien	(genrtl_do_pushlevel): Moved to c-semantics.c.
749390075Sobrien	(genrtl_clear_out_block): Likewise.
749490075Sobrien	(genrtl_goto_stmt): Likewise.
749590075Sobrien	(genrtl_expr_stmt): Likewise.
749690075Sobrien	(genrtl_decl_stmt): Likewise.
749790075Sobrien	(gerntl_if_stmt): Likewise.
749890075Sobrien	(genrtl_while_stmt): Likewise.
749990075Sobrien	(genrtl_do_stmt): Likewise.
750090075Sobrien	(genrtl_return_stmt): Likewise.
750190075Sobrien	(genrtl_for_stmt): Likewise.
750290075Sobrien	(genrtl_break_stmt): Likewise.
750390075Sobrien	(genrtl_continue_stmt): Likewise.
750490075Sobrien	(genrtl_scope_stmt): Likewise.
750590075Sobrien	(genrtl_switch_stmt): Likewise.
750690075Sobrien	(genrtl_case_label): Likewise.
750790075Sobrien	(genrtl_begin_compound_stmt): Likewise.
750890075Sobrien	(genrtl_finish_compound_stmt): Likewise.
750990075Sobrien	(genrtl_compound_stmt): Likewise.
751090075Sobrien	(genrtl_asm_stmt): Likewise.
751190075Sobrien	(genrtl_decl_cleanup): Likewise.
751290075Sobrien	(expand_cond): Likewise.
751390075Sobrien	(expand_stmt): Renamed to ...
751490075Sobrien	(lang_expand_stmt): ... this.
751590075Sobrien	(lang_expand_expr_stmt): Initialize.
751690075Sobrien	(set_current_function_name_declared): Likewise.
751790075Sobrien	(stmts_are_full_exprs_p): Likewise.
751890075Sobrien	(current_function_name_declared): Likewise.
751990075Sobrien	(anon_aggr_type_p): Likewise.
752090075Sobrien	(do_poplevel): Change reference to
752190075Sobrien	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
752290075Sobrien	Change reference to stmts_are_full_exprs_p to
752390075Sobrien	current_stmt_tree->stmts_are_full_exprs_p.
752490075Sobrien	(add_tree): Likewise.
752590075Sobrien	(finish_expr_stmt): Likewise.
752690075Sobrien	(prep_stmt): Likewise.
752790075Sobrien	(lang_expand_stmt): Likewise.
752890075Sobrien	(begin_compound_stmt): Change reference to
752990075Sobrien	current_function_name_declared to
753090075Sobrien	cp_function_chain->name_declared and call to
753190075Sobrien	current_function_name_declared().
753290075Sobrien	(setup_vtbl_ptr): Likewise.
753390075Sobrien	(genrtl_do_poplevel): Removed.
753418334Speter
753590075Sobrien2000-06-30  Jason Merrill  <jason@redhat.com>
753618334Speter
753790075Sobrien	* init.c (init_init_processing): Go back to aligning like
753890075Sobrien	double_type_node for old ABI.
753990075Sobrien	(get_cookie_size): Make cookie larger if we get a type that needs
754090075Sobrien	more alignment.
754190075Sobrien	(build_vec_delete): Call it.
754218334Speter
754390075Sobrien	* typeck.c (qualify_type_recursive): New fn.
754490075Sobrien	(composite_pointer_type): Use it.
754590075Sobrien	(build_binary_op): Use composite_pointer_type.
754652284Sobrien
754790075Sobrien2000-06-24  Carlos O'Ryan  <coryan@cs.wustl.edu>
754890075Sobrien	    Jason Merrill  <jason@redhat.com>
754952284Sobrien
755090075Sobrien	* typeck.c (check_return_expr): Don't complain about returning
755190075Sobrien	NULL from operator new if -fcheck-new.
755290075Sobrien	* cp-tree.h: Declare flag_check_new here.
755390075Sobrien	* init.c: Not here.
755418334Speter
755590075Sobrien2000-06-28  Alex Samuel  <samuel@codesourcery.com>
755618334Speter
755790075Sobrien	* mangle.c (find_substitution): Use same_type_p.
755890075Sobrien	(write_encoding): Don't check for substitutions.
755918334Speter
756090075Sobrien2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
756118334Speter
756290075Sobrien	* parse.y (expr_no_comma_rangle): New non-terminal.
756390075Sobrien	(template_parm): Use it for default parameter case.
756490075Sobrien	(template_arg): Use it.
756590075Sobrien	(expr_no_commas): Remove commented out undefined extensions.
756690075Sobrien	* Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r.
756790075Sobrien	* parse.h, parse.c: Rebuilt.
756818334Speter
756990075Sobrien2000-06-30  Mark Mitchell  <mark@codesourcery.com>
757018334Speter
757190075Sobrien	* semantics.c (genrtl_asm_stmt): Don't decay input operands here.
757290075Sobrien	(finish_asm_stmt): Do it here, instead.
757318334Speter
757490075Sobrien	* cp-tree.h (ridpointers): Don't declare.
757590075Sobrien	* decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX.
757690075Sobrien	(record_builtin_java_type): Likewise.
757790075Sobrien	(init_decl_processing): Likewise.
757890075Sobrien	* lex.c: Move inclusion of lex.h.
757990075Sobrien	(ridpointers): Don't define.
758090075Sobrien	(init_parse): Initialize ripdointers.  Use CP_RID_MAX instead of
758190075Sobrien	RID_MAX.
758290075Sobrien	* lex.h (enum rid): Rename to ...
758390075Sobrien	(enum cp_rid): ... this.
758490075Sobrien	(ridpointers): Don't declare.
758590075Sobrien	* parse.y: Move inclusion of lex.h.
758650397Sobrien	* parse.c: Regenerated.
758790075Sobrien	* spew.c: Move inclusion of lex.h.
758852284Sobrien
758990075Sobrien	* cp-tree.h (struct language_function): Remove temp_name_counter.
759090075Sobrien	(temp_name_counter): Remove.
759190075Sobrien	(get_temp_name): Change prototype.
759290075Sobrien	(get_guard): New function.
759390075Sobrien	(get_guard_cond): Likewise.
759490075Sobrien	(set_guard): Likewise.
759590075Sobrien	* cvt.c (build_up_reference): Adjust call to get_temp_name.
759690075Sobrien	* decl.c (expand_static_init): Use get_guard and friends to
759790075Sobrien	implement guard variables.
759890075Sobrien	* decl2.c (get_temp_name): Assume that the variables created are
759990075Sobrien	always static.
760090075Sobrien	(get_sentry): Rename to ...
760190075Sobrien	(get_guard): ... this.  Implement new ABI guard	variables.
760290075Sobrien	(get_guard_bits): New function.
760390075Sobrien	(get_guard_cond): Likewise.
760490075Sobrien	(set_guard): Likewise.
760590075Sobrien	(start_static_initialization_or_destruction): Use them.
760690075Sobrien	(do_static_initialization): Replace sentry with guard throughout.
760790075Sobrien	(do_static_destruction): Likewise.
760890075Sobrien	* init.c (create_temporary_var): Add comment.
760918334Speter
761090075Sobrien2000-06-28  Alex Samuel  <samuel@codesourcery.com>
761118334Speter
761290075Sobrien	* mangle.c (find_substitution): Use same_type_p.
761390075Sobrien	(write_encoding): Don't check for substitutions.
761418334Speter
761590075Sobrien2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
761618334Speter
761790075Sobrien	* parse.y (expr_no_comma_rangle): New non-terminal.
761890075Sobrien	(template_parm): Use it for default parameter case.
761990075Sobrien	(template_arg): Use it.
762090075Sobrien	(expr_no_commas): Remove commented out undefined extensions.
762190075Sobrien	* Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r.
762290075Sobrien	* parse.h, parse.c: Rebuilt.
762318334Speter
762490075Sobrien2000-06-29  Mark Mitchell  <mark@codesourcery.com>
762518334Speter
762690075Sobrien	* cp-tree.h (flag_const_strings): Remove.
762790075Sobrien	(warn_parentheses): Likewise.
762890075Sobrien	(warn_format): Likewise.
762990075Sobrien	(common_type): Likewise.
763090075Sobrien	(default_conversion): Likewise.
763190075Sobrien	(build_binary_op): Likewise.
763290075Sobrien	(cp_build_binary_op): New macro.
763390075Sobrien	* call.c (build_new_op): Use cp_build_binary_op instead of
763490075Sobrien	build_binary_op.
763590075Sobrien	* class.c (build_vtable_entry_ref): Likewise.
763690075Sobrien	* decl.c (expand_static_init): Likewise.
763790075Sobrien	(compute_array_index_type): Likewise.
763890075Sobrien	(build_enumerator): Likewise.
763990075Sobrien	* decl2.c (delete_sanity): Likewise.
764090075Sobrien	(start_static_initialization_or_destruction): Likewise.
764190075Sobrien	* error.c (dump_type_suffix): Likewise.
764290075Sobrien	* init.c (resolve_offset_ref): Likewise.
764390075Sobrien	(build_new): Likewise.
764490075Sobrien	(build_new_1): Likewise.
764590075Sobrien	(build_vec_delete_1): Likewise.
764690075Sobrien	(build_vec_init): Likewise.
764790075Sobrien	(build_delete): Likewise.
764890075Sobrien	* rtti.c (synthesize_tinfo_fn): Likewise.
764990075Sobrien	(synthesize_tinfo_var): Likewise.
765090075Sobrien	* search.c (expand_upcast_fixups): Likewise.
765190075Sobrien	(fixup_all_virtual_upcast_offsets): Likewise.
765290075Sobrien	* typeck.c (build_array_ref): Likewise.
765390075Sobrien	(get_member_function_from_ptrfunc): Likewise.
765490075Sobrien	(build_binary_op): Add parameter.
765590075Sobrien	(pointer_int_sum): Use cp_build_binary_op.
765690075Sobrien	(pointer_diff): Likewise.
765790075Sobrien	(build_modify_expr): Likewise.
765890075Sobrien	(get_delta_difference): Likewise.
765990075Sobrien	(build_ptrmemfunc): Likewise.
766018334Speter
766190075Sobrien2000-06-29  Nathan Sidwell  <nathan@codesourcery.com>
766218334Speter
766390075Sobrien	* cp-tree.h (SET_DECL_ARTIFICIAL): Remove.
766490075Sobrien	* decl.c (create_implicit_typedef): Adjust.
766590075Sobrien	* decl2.c (build_artificial_parm): Adjust.
766690075Sobrien	* method.c (implicitly_declare_fn): Adjust.
766790075Sobrien	* pt.c (push_inline_template_parms_recursive): Adjust.
766890075Sobrien	(process_template_parm): Adjust.
766990075Sobrien	(overloaded_template_name): Adjust.
767090075Sobrien	* semantics.c (finish_template_template_parm): Adjust.
767118334Speter
767290075Sobrien2000-06-28  Mark Mitchell  <mark@codesourcery.com>
767318334Speter
767490075Sobrien	* cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove.
767590075Sobrien	* class.c (update_vtable_entry_for_fn): Correct logic for deciding
767690075Sobrien	where to emit thunks.
767790075Sobrien	(build_vtt): Adjust call to build_vtt_inits.
767890075Sobrien	(build_vtt_inits): Add parameter to indicate whether or not
767990075Sobrien	sub-VTTs for virtual bases should be included.  Adjust handling of
768090075Sobrien	construction vtables.
768190075Sobrien	(get_matching_base): New function.
768290075Sobrien	(dfs_build_vtt_inits): Rename to ...
768390075Sobrien	(dfs_build_secondary_vptr_vtt_inits): Adjust handling of
768490075Sobrien	construction vtables.
768590075Sobrien	(dfs_fixup_binfo_vtbls): Likewise.
768690075Sobrien	(build_ctor_vtbl_groups): Build construction vtables for virtual
768790075Sobrien	bases, too.
768890075Sobrien	(accumulate_vtbl_inits): Tweak logic for deciding whether or not
768990075Sobrien	to build construction vtbls.
769090075Sobrien	(dfs_accumulate_vtbl_inits): Adjust handling of
769190075Sobrien	construction vtables.
769218334Speter
769390075Sobrien	* pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified
769490075Sobrien	types correctly.
769518334Speter
769690075Sobrien2000-06-27  Mark Mitchell  <mark@codesourcery.com>
769718334Speter
769890075Sobrien	* decl.c (grokfndecl): Set DECL_CONTEXT for static functions too.
769918334Speter
770090075Sobrien2000-06-26  Nathan Sidwell  <nathan@codesourcery.com>
770118334Speter
770290075Sobrien	* search.c (hides): Remove.
770390075Sobrien	(is_subobject_of_p): Add most_derived parameter. Use
770490075Sobrien	CANONICAL_BINFO.
770590075Sobrien	(lookup_field_queue_p): Adjust.
770690075Sobrien	(lookup_field_r): Adjust.
770718334Speter
770890075Sobrien2000-06-26  Nathan Sidwell  <nathan@codesourcery.com>
770918334Speter
771090075Sobrien	* decl2.c (handle_class_head): Bash typedefs to the type's main
771152284Sobrien	decl.
771218334Speter
771390075Sobrien2000-06-25  Mark Mitchell  <mark@codesourcery.com>
771418334Speter
771590075Sobrien	* cp-tree.h (genrtl_begin_stmt_expr): Rename to ...
771690075Sobrien	(begin_global_stmt_expr): ... this.
771790075Sobrien	(genrtl_finish_stmt_expr): Rename to ...
771890075Sobrien	(finish_global_stmt_expr): ... this.
771990075Sobrien	* init.c (begin_init_stmts): Adjust calls.
772090075Sobrien	(finish_init_stmts): Likewise.
772190075Sobrien	* semantics.c (genrtl_begin_stmt_expr): Rename to ...
772290075Sobrien	(begin_global_stmt_expr): ... this.
772390075Sobrien	(genrtl_finish_stmt_expr): Rename to ...
772490075Sobrien	(finish_global_stmt_expr): ... this.
772518334Speter
772690075Sobrien2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
772718334Speter
772890075Sobrien	* search.c (lookup_member): Fix typo in comment.
772918334Speter
773090075Sobrien2000-06-24  Jason Merrill  <jason@redhat.com>
773118334Speter
773290075Sobrien	* decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace.
773390075Sobrien	(push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL.
773418334Speter
773590075Sobrien2000-06-24  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
773618334Speter
773790075Sobrien	* parse.y (complex_direct_notype_declarator): Support global_scope.
773890075Sobrien	* Makefile.in: Adjust conflict count.
773918334Speter
774090075Sobrien2000-06-23  Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
774118334Speter
774290075Sobrien	* parse.y (template_arg): Convert TEMPLATE_DECL
774390075Sobrien	that is a template template parameter to
774490075Sobrien	TEMPLATE_TEMPLATE_PARM here.
774518334Speter
774690075Sobrien	* cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment.
774790075Sobrien	* cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro.
774890075Sobrien	(copy_template_template_parm): Adjust prototype.
774990075Sobrien	* decl.c (grokdeclarator): Remove dead code.
775090075Sobrien	* pt.c (process_template_parm): Tidy.
775190075Sobrien	(lookup_template_class): Construct nodes in
775290075Sobrien	copy_template_template_parm.
775390075Sobrien	(tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to
775490075Sobrien	lookup_template_class.  Use TYPE_TI_TEMPLATE.
775590075Sobrien	* tree.c (copy_template_template_parm): Add NEWARGS
775690075Sobrien	parameter.
775790075Sobrien	(mapcar): Adjust call to copy_template_template_parm.
775890075Sobrien	* typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.
775990075Sobrien	* method.c (build_template_template_parm_names): Change error
776090075Sobrien	code to avoid compilation warning.
776118334Speter
776290075Sobrien	* gxxint.texi: Document template template parameter
776390075Sobrien	name mangling.
776418334Speter
776590075Sobrien2000-06-21  Alex Samuel  <samuel@codesourcery.com>
776618334Speter
776790075Sobrien	* Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o.
776890075Sobrien	(CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c.
776990075Sobrien	(cp-demangle.o): New rule.
777090075Sobrien	(dyn-string.o): Likewise.
777190075Sobrien	* inc/cxxabi.h (__cxa_demangle): New declaration.
777218334Speter
777390075Sobrien2000-06-22  Mark Mitchell  <mark@codesourcery.com>
777418334Speter
777590075Sobrien	* cp-tree.h (BV_USE_VCALL_INDEX_P): New macro.
777690075Sobrien	(BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise.
777790075Sobrien	(lang_decl_flags): Add generate_with_vtable_p.  Make vcall_offset
777890075Sobrien	a tree, not an int.
777990075Sobrien	(THUNK_GENERATE_WITH_VTABLE_P): New macro.
778090075Sobrien	(make_thunk): Change prototype.
778190075Sobrien	(emit_thunk): Rename to use_thunk.
778290075Sobrien	(mangle_thunk): Change prototype.
778390075Sobrien	* class.c (get_derived_offset): Simplify.
778490075Sobrien	(copy_virtuals): Clear BV_USE_VCALL_INDEX_P and
778590075Sobrien	BV_GENERATE_THUNK_WITH_VTABLE_P.
778690075Sobrien	(build_primary_vtable): Simplify.
778790075Sobrien	(add_virtual_function): Use BV_FN, rather than TREE_VALUE.
778890075Sobrien	(dfs_find_base): Remove.
778990075Sobrien	(update_vtable_entry_for_fn): Correct bug in finding the base
779090075Sobrien	where a virtual function was first declared.  Figure out whether
779190075Sobrien	or not to emit a vcall-thunk with the vtables in which it appears.
779290075Sobrien	Correct logic for deciding whether to use an ordinary thunk, or a
779390075Sobrien	vcall thunk.
779490075Sobrien	(finish_struct_1): Remove unnecssary code.
779590075Sobrien	(build_vtbl_initializer): Use ssize_int for the running counter of
779690075Sobrien	negative indices.
779790075Sobrien	(build_vtbl_initializer): Only use vcall thunks where necessary.
779890075Sobrien	Mark thunks as needing to be emitted with their vtables, or not.
779990075Sobrien	(build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in
780090075Sobrien	indices.  Use size_binop.
780190075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Don't rely on
780290075Sobrien	BINFO_PRIMARY_MARKED_P here.  Use BV_FN consistently.  Use
780390075Sobrien	size_binop.
780490075Sobrien	(build_rtti_vtbl_entries): Adjust call to build_vtable_entry.
780590075Sobrien	(build_vtable_entry): Mark thunks as needing to be emitted with
780690075Sobrien	their vtables, or not.
780790075Sobrien	* decl.c (lang_mark_tree): Mark the vcall_offset in a thunk.
780890075Sobrien	* decl2.c (mark_vtable_entries): Use use_thunk instead of
780990075Sobrien	emit_thunk.
781090075Sobrien	* dump.c (dequeue_and_dump): Remove dead code.  Dump new thunk
781190075Sobrien	information.
781290075Sobrien	* error.c (dump_expr): Use BV_FN.
781390075Sobrien	* mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree,
781490075Sobrien	not an int.
781590075Sobrien	* method.c (make_thunk): Likewise.
781690075Sobrien	(emit_thunk): Rename to use_thunk.  Allow callers to decide
781790075Sobrien	whether or not to actually emit the thunk.  Adjust for changes in
781890075Sobrien	representation of vcall offsets.
781990075Sobrien	* search.c (dfs_get_pure_virtuals): Use BV_FN.
782090075Sobrien	* semantics.c (emit_associated_thunks): New function.
782190075Sobrien	(expand_body): Use it.
782290075Sobrien	* ir.texi: Adjust decriptions of thunks.
782318334Speter
782490075Sobrien2000-06-22  Jason Merrill  <jason@redhat.com>
782518334Speter
782690075Sobrien	* pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE.
782790075Sobrien	(tsubst_friend_function): Copy it here.
782818334Speter
782990075Sobrien	* decl.c (grok_op_properties): Fix typo.
783018334Speter
783190075Sobrien	* decl2.c (delete_sanity): Clarify warning, avoid failure on
783290075Sobrien	deleting void*.
783318334Speter
783490075Sobrien	* pt.c (check_explicit_specialization): Clarify error.
783518334Speter
783690075Sobrien	* decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from
783790075Sobrien	an old OVERLOAD when we're declaring a non-function.
783890075Sobrien	(pushdecl, destroy_local_var): Check for error_mark_node.
783990075Sobrien	(warn_extern_redeclared_static): Also bail early if
784090075Sobrien	we're a CONST_DECL.
784190075Sobrien	(push_overloaded_decl): Ignore an old error_mark_node.
784218334Speter
784390075Sobrien2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
784418334Speter
784590075Sobrien	* call.c (build_x_va_arg): Check if in a template decl.
784690075Sobrien	* pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg.
784718334Speter
784890075Sobrien2000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
784918334Speter
785090075Sobrien	* class.c (push_lang_context): TYPE_NAME gets you to the Java
785190075Sobrien	types DECLs.
785290075Sobrien	* decl.c (check_goto): Computed gotos assumed OK.
785318334Speter
785490075Sobrien2000-06-20  Jason Merrill  <jason@redhat.com>
785552284Sobrien
785690075Sobrien	* pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs
785790075Sobrien	for which we don't need to look for instantiations.
785818334Speter
785990075Sobrien2000-06-21  Nathan Sidwell  <nathan@codesourcery.com>
786018334Speter
786190075Sobrien	* parse.y (program): Always call finish_translation_unit.
786290075Sobrien	* parse.c, parse.h: Rebuilt.
786352284Sobrien
786490075Sobrien2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
786518334Speter
786690075Sobrien	* method.c: Don't include hard-reg-set.h.
786718334Speter
786890075Sobrien2000-06-20  Nathan Sidwell  <nathan@codesourcery.com>
786918334Speter
787090075Sobrien	* rtti.c (get_base_offset): Cope when vbase field is in a base.
787118334Speter
787290075Sobrien2000-06-20  Nathan Sidwell  <nathan@codesourcery.com>
787318334Speter
787490075Sobrien	* call.c (build_conditional_expr): Use VOID_TYPE_P.
787590075Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
787690075Sobrien	(convert_to_void): Likewise.
787750397Sobrien	* error.c (dump_expr): Likewise.
787890075Sobrien	* except.c (complete_ptr_ref_or_void_ptr_p): Likewise.
787990075Sobrien	* init.c (build_delete): Likewise.
788090075Sobrien	* method.c (emit_thunk): Likewise.
788190075Sobrien	* optmize.c (declare_return_variable): Likewise.
788290075Sobrien	* rtti.c (get_tinfo_decl_dynamic): Likewise.
788390075Sobrien	(get_typeid): Likewise.
788490075Sobrien	(build_dynamic_cast_1): Likewise.
788590075Sobrien	* typeck.c (composite_pointer_type): Likewise.
788690075Sobrien	(common_type): Likewise.
788790075Sobrien	(build_indirect_ref): Likewise.
788890075Sobrien	(build_binary_op): Likewise.
788990075Sobrien	(build_x_compound_expr): Likewise.
789090075Sobrien	(check_return_expr): Likewise.
789190075Sobrien	* typeck2.c (add_exception_specifier): Likewise.
789252284Sobrien
789390075Sobrien	* mangle.c (write_method_parms): Use direct comparison for end
789490075Sobrien	of parmlist.
789518334Speter
789690075Sobrien2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
789752284Sobrien
789890075Sobrien	* cp-tree.h (genrtl_try_block): Declare function.
789990075Sobrien	(genrtl_handler): Likewise.
790090075Sobrien	(genrtl_catch_block): Likewise.
790190075Sobrien	(genrtl_ctor_stmt): Likewise.
790290075Sobrien	(genrtl_subobject): Likewise.
790390075Sobrien	(genrtl_decl_cleanup): Likewise.
790490075Sobrien	(genrtl_do_poplevel): Likewise.
790590075Sobrien	(genrtl_do_pushlevel): Likewise.
790690075Sobrien	(genrtl_clear_out_block): Likewise.
790790075Sobrien	(genrtl_goto_stmt): Likewise.
790890075Sobrien	(genrtl_expr_stmt): Likewise.
790990075Sobrien	(genrtl_decl_stmt): Likewise.
791090075Sobrien	(genrtl_if_stmt): Likewise.
791190075Sobrien	(genrtl_while_stmt): Likewise.
791290075Sobrien	(genrtl_do_stmt): Likewise.
791390075Sobrien	(genrtl_return_stmt): Likewise.
791490075Sobrien	(genrtl_for_stmt): Likewise.
791590075Sobrien	(genrtl_break_stmt): Likewise.
791690075Sobrien	(genrtl_continue_stmt): Likewise.
791790075Sobrien	(genrtl_scope_stmt): Likewise.
791890075Sobrien	(genrtl_switch_stmt): Likewise.
791990075Sobrien	(genrtl_case_label): Likewise.
792090075Sobrien	(genrtl_begin_compound_stmt): Likewise.
792190075Sobrien	(genrtl_finish_compound_stmt): Likewise.
792290075Sobrien	(genrtl_compound_stmt): Likewise.
792390075Sobrien	(genrtl_asm_stmt): Likewise.
792490075Sobrien	(genrtl_named_return_value): Likewise.
792590075Sobrien	(genrtl_begin_stmt_expr): Likewise.
792690075Sobrien	(genrtl_finish_stmt_expr): Likewise.
792790075Sobrien	(finish_for_stmt): Removed first argument.
792890075Sobrien	(finish_switch_stmt): Likewise.
792918334Speter
793090075Sobrien	* semantics.c (genrtl_try_block): Define function.
793190075Sobrien	(genrtl_handler): Likewise.
793290075Sobrien	(genrtl_catch_block): Likewise.
793390075Sobrien	(genrtl_ctor_stmt): Likewise.
793490075Sobrien	(genrtl_subobject): Likewise.
793590075Sobrien	(genrtl_decl_cleanup): Likewise.
793690075Sobrien	(genrtl_do_poplevel): Likewise.
793790075Sobrien	(genrtl_do_pushlevel): Likewise.
793890075Sobrien	(genrtl_clear_out_block): Likewise.
793990075Sobrien	(genrtl_goto_stmt): Likewise.
794090075Sobrien	(genrtl_expr_stmt): Likewise.
794190075Sobrien	(genrtl_decl_stmt): Likewise.
794290075Sobrien	(genrtl_if_stmt): Likewise.
794390075Sobrien	(genrtl_while_stmt): Likewise.
794490075Sobrien	(genrtl_do_stmt): Likewise.
794590075Sobrien	(genrtl_return_stmt): Likewise.
794690075Sobrien	(genrtl_for_stmt): Likewise.
794790075Sobrien	(genrtl_break_stmt): Likewise.
794890075Sobrien	(genrtl_continue_stmt): Likewise.
794990075Sobrien	(genrtl_scope_stmt): Likewise.
795090075Sobrien	(genrtl_switch_stmt): Likewise.
795190075Sobrien	(genrtl_case_label): Likewise.
795290075Sobrien	(genrtl_begin_compound_stmt): Likewise.
795390075Sobrien	(genrtl_finish_compound_stmt): Likewise.
795490075Sobrien	(genrtl_compound_stmt): Likewise.
795590075Sobrien	(genrtl_asm_stmt): Likewise.
795690075Sobrien	(genrtl_named_return_value): Likewise.
795790075Sobrien	(genrtl_begin_stmt_expr): Likewise.
795890075Sobrien	(genrtl_finish_stmt_expr): Likewise.
795990075Sobrien	(finish_for_stmt): Removed first argument and generate rtl
796090075Sobrien	specific code.
796190075Sobrien	(finish_switch_stmt): Likewise.
796290075Sobrien	(do_poplevel): Removed generate rtl specific code.
796390075Sobrien	(do_pushlevel): Likewise.
796490075Sobrien	(add_tree): Likewise.
796590075Sobrien	(finish_goto_stmt): Likewise.
796690075Sobrien	(finish_expr_stmt): Likewise.
796790075Sobrien	(begin_if_stmt): Likewise.
796890075Sobrien	(finish_if_stmt_cond): Likewise.
796990075Sobrien	(finish_then_clause): Likewise.
797090075Sobrien	(begin_else_clause): Likewise.
797190075Sobrien	(finish_else_clause): Likewise.
797290075Sobrien	(finish_if_stmt): Likewise.
797390075Sobrien	(clear_out_block): Likewise.
797490075Sobrien	(begin_while_stmt): Likewise.
797590075Sobrien	(finish_while_stmt_cond): Likewise.
797690075Sobrien	(finish_while_stmt): Likewise.
797790075Sobrien	(begin_do_stmt): Likewise.
797890075Sobrien	(finish_do_body): Likewise.
797990075Sobrien	(finish_do_stmt): Likewise.
798090075Sobrien	(finish_return_stmt): Likewise.
798190075Sobrien	(begin_for_stmt): Likewise.
798290075Sobrien	(finish_for_init_stmt): Likewise.
798390075Sobrien	(finish_for_cond): Likewise.
798490075Sobrien	(finish_for_expr): Likewise.
798590075Sobrien	(finish_break_stmt): Likewise.
798690075Sobrien	(finish_continue_stmt): Likewise.
798790075Sobrien	(begin_switch_stmt): Likewise.
798890075Sobrien	(finish_switch_cond): Likewise.
798990075Sobrien	(finish_case_label): Likewise.
799090075Sobrien	(begin_try_block): Likewise.
799190075Sobrien	(begin_function_try_block): Likewise.
799290075Sobrien	(finish_try_block): Likewise.
799390075Sobrien	(finish_cleanup_try_block): Likewise.
799490075Sobrien	(finish_cleanup): Likewise.
799590075Sobrien	(finish_function_try_block): Likewise.
799690075Sobrien	(finish_handler_sequence): Likewise.
799790075Sobrien	(finish_function_handler_sequence): Likewise.
799890075Sobrien	(begin_handler): Likewise.
799990075Sobrien	(finish_handler_parms): Likewise.
800090075Sobrien	(begin_catch_block): Likewise.
800190075Sobrien	(finish_handler): Likewise.
800290075Sobrien	(begin_compound_stmt): Likewise.
800390075Sobrien	(finish_compound_stmt): Likewise.
800490075Sobrien	(finish_asm_stmt): Likewise.
800590075Sobrien	(finish_label_stmt): Likewise.
800690075Sobrien	(finish_label_decl): Likewise.
800790075Sobrien	(finish_subobject): Likewise.
800890075Sobrien	(finish_decl_cleanup): Likewise.
800990075Sobrien	(finish_named_return_value): Likewise.
801090075Sobrien	(begin_stmt_expr): Likewise.
801190075Sobrien	(finish_stmt_expr): Likewise.
801218334Speter
801390075Sobrien	* decl.c (initialize_local_var): Changed call to finish_expr_stmt
801490075Sobrien	to call genrtl_expr_stmt when appropriate.
801518334Speter
801690075Sobrien	* init.c (begin_init_stmts): Changed calls to begin_stmt_expr and
801790075Sobrien	begin_compound_expr to call genrtl_begin_stmt_expr and
801890075Sobrien	genrtl_begin_compound_expr when appropriate.
801990075Sobrien	(finish_init_stmts): Changed calls to finish_compound_expr and
802090075Sobrien	finish_stmt_expr to call genrtl_finish_compound_expr and
802190075Sobrien	genrtl_finish_stmt_expr when appropriate.
802290075Sobrien	(expand_default_init): Changed call to finish_expr_stmt to call
802390075Sobrien	genrtl_expr_stmt when appropriate.
802490075Sobrien	(build_vec_init): Likewise.
802518334Speter
802690075Sobrien	* parse.y (simple_stmt): Removed first argument from call to
802790075Sobrien	finish_for_stmt. Removed first argument from call to
802890075Sobrien	finish_switch_stmt.
802918334Speter
803090075Sobrien	* parse.c: Regenerated.
803118334Speter
803290075Sobrien	* pt.c (tsubst_expr): Removed first argument from call to
803390075Sobrien	finish_for_stmt. Removed first argument from call to
803490075Sobrien	finish_switch_stmt.
803518334Speter
803690075Sobrien2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
803718334Speter
803890075Sobrien	* cp-tree.h (enum cplus_tree_code): Changed __DUMMY to
803990075Sobrien	CP_DUMMY_TREE_CODE. Remove #include "c-common.def".
804018334Speter
804190075Sobrien	* lex.c (cplus_tree_code_type[]): Removed #include "c-common.def".
804290075Sobrien	(cplus_tree_code_length[]): Likewise.
804390075Sobrien	(cplus_tree_code_name[]): Likewise.
804490075Sobrien	(init_parse): Added call to add_c_tree_codes. Changed
804590075Sobrien	LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE.
804618334Speter
804790075Sobrien2000-06-16  Mark Mitchell  <mark@codesourcery.com>
804818334Speter
804990075Sobrien	* cp-tree.h (finish_mem_initializers): Declare.
805090075Sobrien	(count_trees): Likewise.
805190075Sobrien	* parse.y (base_init): Use finish_mem_initializers.
805290075Sobrien	* semantics.c (finish_mem_initializers): New function.
805318334Speter
805490075Sobrien	* tree.c (count_trees_r): Prototype.  Use DATA parameter to store
805590075Sobrien	the number of trees.
805690075Sobrien	(n_trees): Remove.
805790075Sobrien	(count_trees): Don't use it.
805818334Speter
805990075Sobrien2000-06-15  Jason Merrill  <jason@redhat.com>
806018334Speter
806190075Sobrien	* tree.c (count_trees): New debugging function.
806218334Speter
806390075Sobrien	* typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P.
806490075Sobrien	* init.c (build_member_call): Pull out the name of a DECL.
806518334Speter
806690075Sobrien	* Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H.
806790075Sobrien	* semantics.c (expand_body): Push to TV_INTEGRATION here.
806890075Sobrien	* optimize.c (optimize_function): Not here.
806990075Sobrien	* pt.c (instantiate_decl): Push to TV_PARSE.
807018334Speter
807190075Sobrien2000-06-15  Mark Mitchell  <mark@codesourcery.com>
807218334Speter
807390075Sobrien	* cp-tree.h (struct language_function): Remove x_base_init_list
807490075Sobrien	and x_member_init_list.
807590075Sobrien	(current_base_init_list): Remove.
807690075Sobrien	(current_member_init_list): Likewise.
807790075Sobrien	(setup_vtbl_ptr): Change prototype.
807890075Sobrien	(emit_base_init): Likewise.
807990075Sobrien	(expand_member_init): Likewise.
808090075Sobrien	(reinit_parse_for_function): Remove.
808190075Sobrien	* decl.c (save_function_data): Don't clear x_base_init_list and
808290075Sobrien	x_member_init_list.
808390075Sobrien	(mark_language_function): Don't mark them.
808490075Sobrien	* init.c (perform_member_init): Tweak comment.
808590075Sobrien	(sort_member_init): Take the list of initializers as an argument.
808690075Sobrien	(sort_base_init): Likewise.
808790075Sobrien	(emit_base_init): Likewise.
808890075Sobrien	(expand_member_init): Return the initializer.  Don't use global
808990075Sobrien	variables.
809090075Sobrien	* lex.c (reinit_parse_for_function): Remove.
809190075Sobrien	* method.c (build_template_parm_names): Correct substitution.
809290075Sobrien	(do_build_copy_constructor): Don't use current_member_init_list
809390075Sobrien	and current_base_init_list.
809490075Sobrien	(synthesize_method): Likewise.
809590075Sobrien	* parse.y (base_init): Split mem-initializers into
809690075Sobrien	base-initializers and field-initializers.
809790075Sobrien	(member_init_list): Build up the list here.
809890075Sobrien	(member_init): Return the initializer.
809990075Sobrien	(fn.depfn): Don't use reinit_parse_for_function.
810090075Sobrien	* parse.c: Regenerated.
810190075Sobrien	* pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the
810290075Sobrien	ERROR_MARK.
810390075Sobrien	(tsubst_expr): Don't use current_member_init_list
810490075Sobrien	and current_base_init_list.
810590075Sobrien	(tsubst_expr_values): Rename to ...
810690075Sobrien	(tsubst_initializer_list): ... this.  Use convert_from_reference.
810790075Sobrien	* semantics.c (setup_vtbl_ptr): Don't use current_member_init_list
810890075Sobrien	and current_base_init_list.
810990075Sobrien	(begin_function_definition): Don't call reinit_parse_for_function.
811018334Speter
811190075Sobrien	* dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors.
811218334Speter
811390075Sobrien	* error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE
811452284Sobrien	correctly.
811552284Sobrien
811690075Sobrien	* cp-tree.h (DECL_PENDING_INLINE_P): Relax checking.
811718334Speter
811890075Sobrien2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
811918334Speter
812090075Sobrien	* cp-tree.h (IF_COND): Move to c-common.h.
812190075Sobrien	(THEN_CLAUSE): Likewise.
812290075Sobrien	(ELSE_CLAUSE): Likewise.
812390075Sobrien	(WHILE_COND): Likewise.
812490075Sobrien	(WHILE_BODY): Likewise.
812590075Sobrien	(DO_COND): Likewise.
812690075Sobrien	(DO_BODY): Likewise.
812790075Sobrien	(RETURN_EXPR): Likewise.
812890075Sobrien	(EXPR_STMT_EXPR): Likewise.
812990075Sobrien	(FOR_INIT_STMT): Likewise.
813090075Sobrien	(FOR_COND): Likewise.
813190075Sobrien	(FOR_EXPR): Likewise.
813290075Sobrien	(FOR_BODY): Likewise.
813390075Sobrien	(SWITCH_COND): Likewise.
813490075Sobrien	(SWITCH_BODY): Likewise.
813590075Sobrien	(CASE_LOW): Likewise.
813690075Sobrien	(CASE_HIGH): Likewise.
813790075Sobrien	(GOTO_DESTINATION): Likewise.
813890075Sobrien	(COMPOUND_BODY): Likewise.
813990075Sobrien	(ASM_CV_QUAL): Likewise.
814090075Sobrien	(ASM_STRING): Likewise.
814190075Sobrien	(ASM_OUTPUTS): Likewise.
814290075Sobrien	(ASM_INPUTS): Likewise.
814390075Sobrien	(ASM_CLOBBERS): Likewise.
814490075Sobrien	(DECL_STMT_DECL): Likewise.
814590075Sobrien	(STMT_EXPR_STMT): Likewise.
814690075Sobrien	(LABEL_STMT_LABEL): Likewise.
814790075Sobrien	(SCOPE_BEGIN_P): Likewise.
814890075Sobrien	(SCOPE_END_P): Likewise.
814990075Sobrien	(SCOPE_STMT_BLOCK): Likewise.
815090075Sobrien	(SCOPE_NULLIFIED_P): Likewise.
815190075Sobrien	(SCOPE_NO_CLEANUPS_P): Likewise.
815290075Sobrien	(SCOPE_PARTIAL_P): Likewise.
815390075Sobrien	(ASM_VOLATILE_P): Likewise.
815490075Sobrien	(STMT_LINENO): Likewise.
815590075Sobrien	(STMT_LINENO_FOR_FN_P): Likewise.
815652284Sobrien
815790075Sobrien	* cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
815890075Sobrien	ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
815990075Sobrien	FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
816090075Sobrien	CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
816190075Sobrien	SCOPE_STMT, CASE_LABEL, STMT_EXPR.
816218334Speter
816390075Sobrien	* Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def.
816418334Speter
816590075Sobrien	* Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def.
816690075Sobrien	(cc1plus$(exeext)): Added $(srcdir)/c-common.def.
816718334Speter
816890075Sobrien	* lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'.
816990075Sobrien	(cplus_tree_code_length[]): Added '#include "c-common.def"'.
817090075Sobrien	(cplus_tree_code_name[]): Added '#include "c-common.def"'.
817118334Speter
817290075Sobrien2000-06-14  Mark Mitchell  <mark@codesourcery.com>
817318334Speter
817490075Sobrien	* cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro.
817590075Sobrien	* class.c (dfs_find_final_overrider): Set it appropriately.
817690075Sobrien	(dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to
817790075Sobrien	avoid unneeded secondary vptrs.
817818334Speter
817990075Sobrien2000-06-13  Jakub Jelinek  <jakub@redhat.com>
818018334Speter
818190075Sobrien	* class.c (build_secondary_vtable): Set DECL_USER_ALIGN.
818290075Sobrien	(check_bitfield_decl, check_field_decl): Likewise.
818390075Sobrien	(build_vtbl_or_vbase_field, build_base_field): Likewise.
818490075Sobrien	(layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN.
818590075Sobrien	* decl.c (record_unknown_type): Set TYPE_USER_ALIGN.
818690075Sobrien	(xfer_tag, finish_enum): Likewise.
818790075Sobrien	* decl2.c (finish_builtin_type): Likewise.
818890075Sobrien	* init.c (init_init_processing): Likewise.
818990075Sobrien	* pt.c (instantiate_class_template): Likewise.
819090075Sobrien	* rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN.
819190075Sobrien	* cp-tree.h (struct lang_type): Add user_align member.
819290075Sobrien	(CLASSTYPE_USER_ALIGN): Define.
819318334Speter
819490075SobrienTue Jun 13 15:48:03 2000  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
819518334Speter
819690075Sobrien	* Make-lang.in (c++.install-common): Install g++-cross in
819790075Sobrien	$(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as
819890075Sobrien	$(target_alias)-g++ and $(target_alias)-c++.
819918334Speter
820090075Sobrien2000-06-12  Mark Mitchell  <mark@codesourcery.com>
820118334Speter
820290075Sobrien	* class.c (vcall_offset_data_s): Add last_init and fns.
820390075Sobrien	(overrides): Rename to same_signature_p.
820490075Sobrien	(dfs_find_final_overrider): Adjust accordingly.
820590075Sobrien	(mark_overriders): Likewise.
820690075Sobrien	(warn_hidden): Likewise.
820790075Sobrien	(build_vtbl_initializer): Reorganize machinery for building things
820890075Sobrien	at negative offsets.
820990075Sobrien	(build_vcall_and_vbase_vtbl_entries): Likewise.
821090075Sobrien	(build_vbase_offset_vtbl_entries): Likewise.
821190075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Correct order of vcall
821290075Sobrien	offset entries.  Do not create two entries for functions with the
821390075Sobrien	same signature.
821490075Sobrien	(build_vcall_offset_vtbl_entries): Initialize vod->fns.
821590075Sobrien	(build_rtti_vtbl_entries): Reorganize machinery for building things
821690075Sobrien	at negative offsets.
821718334Speter
821890075Sobrien	* optimize.c (expand_call_inline): Don't recurse into the code
821990075Sobrien	used to initialize the parameters more than once.
822018334Speter
822190075Sobrien2000-06-11  Mark Mitchell <mark@codesourcery.com>
822252284Sobrien
822390075Sobrien	* mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment.
822490075Sobrien	(is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here.
822590075Sobrien	(find_substitution): Only use the `Sa' substitution for
822690075Sobrien	std::allocator, not instantiations of it.
822790075Sobrien	(write_template_prefix): Move comment.  Only use a TREE_LIST to
822890075Sobrien	represent substitutions for a member template.
822990075Sobrien	(write_array_type): Mangle array dimensions correctly.
823090075Sobrien	* optimize.c (maybe_clone_body): Copy more information from the
823190075Sobrien	cloned function.
823290075Sobrien	* pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE
823390075Sobrien	on the regenerated declaration.
823418334Speter
823590075Sobrien2000-06-11  Chip Salzenberg  <chip@valinux.com>
823690075Sobrien	    Mark Mitchell <mark@codesourcery.com>
823718334Speter
823890075Sobrien	* class.c (build_vtable): Clarify comment.
823990075Sobrien	(build_ctor_vtbl_group): Pass the most derived type to
824090075Sobrien	build_vtable.
824118334Speter
824290075Sobrien2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
824318334Speter
824490075Sobrien	* decl2.c (compare_options): Don't needlessly cast away const-ness.
824518334Speter
824690075Sobrien2000-06-10  Mark Mitchell  <mark@codesourcery.com>
824718334Speter
824890075Sobrien	* decl.c (add_binding): Handle duplicate declarations of external
824990075Sobrien	variables.
825018334Speter
825190075Sobrien2000-06-09  Chip Salzenberg  <chip@valinux.com>
825290075Sobrien	    Mark Mitchell <mark@codesourcery.com>
825318334Speter
825490075Sobrien	* mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an
825590075Sobrien	argument.
825690075Sobrien	(write_signed_number): New macro.
825790075Sobrien	(write_unsigned_number): Likewise.
825890075Sobrien	(write_source_name): Use them.
825990075Sobrien	(write_number): Handle signed and unsigned values.
826090075Sobrien	(write_integer_cst): Use tree_int_cst_sgn, and use
826190075Sobrien	write_unsigned_number or write_signed_number as appropriate.
826290075Sobrien	(write_discriminator): Use write_unsigned_number or
826390075Sobrien	write_signed_number as appropriate.
826490075Sobrien	(write_template_arg_literal): Likewise.
826590075Sobrien	(write_array_type): Use tree_low_cst.
826690075Sobrien	(write_template_parm):  Use write_unsigned_number or
826790075Sobrien	write_signed_number as appropriate.
826890075Sobrien	(write_substitution): Adjust call to write_number.
826990075Sobrien	(write_type): Get the TYPE_MAIN_VARIANT before mangling it.
827090075Sobrien	(write_expression): Handle non-type template arguments of
827190075Sobrien	reference type correctly.
827290075Sobrien	(mangle_thunk): Use write_signed_number.
827318334Speter
827490075Sobrien2000-06-09  Chip Salzenberg  <chip@valinux.com>
827518334Speter
827690075Sobrien	* mangle.c (find_substition): Don't mangle objects with typename
827790075Sobrien	substitutions (e.g. "cin" as "Si").
827818334Speter
827990075Sobrien2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
828018334Speter
828190075Sobrien	* call.c (add_candidate): Use ggc_alloc_cleared.
828290075Sobrien	* decl.c (lookup_label): Likewise.
828390075Sobrien	* lex.c (retrofit_lang_decl): Likewise.
828418334Speter
828590075Sobrien2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
828618334Speter
828790075Sobrien	* semantics.c (expand_body): Push to TV_EXPAND.
828890075Sobrien	* optimize.c (optimize_function): Push to TV_INTEGRATION.
828990075Sobrien	* decl.c (start_function): Always call announce_function.
829018334Speter
829190075Sobrien	* tinfo2.cc: Just declare abort.
829218334Speter
829390075Sobrien2000-06-09  Gabriel Dos Reis  <gdr@codesourcery.com>
829418334Speter
829590075Sobrien	* lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @'
829690075Sobrien	whenever @ is a symbolic name.
829718334Speter
829890075Sobrien2000-06-08  Jakub Jelinek  <jakub@redhat.com>
829918334Speter
830090075Sobrien	* method.c (make_thunk): Clear DECL_VTT_PARM in thunk.
830118334Speter
830290075Sobrien2000-06-07  Mark Mitchell  <mark@codesourcery.com>
830318334Speter
830490075Sobrien	* decl.c (pushdecl): Look up functions by DECL_NAME, not
830590075Sobrien	DECL_ASSEMBLER_NAME.
830618334Speter
830790075Sobrien2000-06-06  Mark Mitchell  <mark@codesourcery.com>
830818334Speter
830990075Sobrien	* decl2.c (c_language): Define.
831018334Speter
831190075Sobrien2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
831218334Speter
831390075Sobrien	* lex.c (lang_init_options): Tweak.
831418334Speter
831590075Sobrien	* decl2.c: Remove #inclusion of diagnostic.h
831690075Sobrien	(lang_decode_option): Move diagnostic formatting options to
831790075Sobrien	toplevel.
831818334Speter
831990075Sobrien	* lang-options.h: Remove documentation for diagnostic options.
832018334Speter
832190075Sobrien	* Makefile.in (lex.o): Depends upon diagnostic.h
832218334Speter
832390075Sobrien2000-06-06  Mark Mitchell  <mark@codesourcery.com>
832418334Speter
832590075Sobrien	* decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have
832690075Sobrien	the same DECL_RESULT, it's not a redefinition.
832790075Sobrien	* pt.c (tsubst_decl): Remove code to handle illegal
832850397Sobrien	specializations.
832918334Speter
833090075Sobrien2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
833118334Speter
833290075Sobrien	* exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c
833318334Speter
833490075Sobrien2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
833518334Speter
833690075Sobrien	* search.c (maybe_suppress_debug_info): Don't check
833790075Sobrien	CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set.
833818334Speter
833990075Sobrien	* pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION
834090075Sobrien	here if extern_p.
834118334Speter
834290075Sobrien	Remember instantiation context in deferred instantiations.
834390075Sobrien	* cp-tree.h (struct tinst_level): Remove.
834490075Sobrien	(TINST_DECL, TINST_LINE, TINST_FILE): New macros.
834590075Sobrien	* pt.c (current_tinst_level): Now a tree.
834690075Sobrien	(print_template_context, push_tinst_level, pop_tinst_level,
834790075Sobrien	tinst_for_decl): Adjust.
834890075Sobrien	(reopen_tinst_level): New fn.
834990075Sobrien	(init_pt): Register current_tinst_level as a root.
835090075Sobrien	(add_pending_template): Put current_tinst_level in TREE_PURPOSE
835190075Sobrien	of the pending templates list.
835290075Sobrien	(instantiate_pending_templates): Adjust.  Call reopen_tinst_level.
835390075Sobrien	* lex.c (extract_interface_info): Adjust.
835490075Sobrien	* decl2.c (warn_if_unknown_interface): Adjust.
835518334Speter
835690075Sobrien2000-06-05  Mark Mitchell  <mark@codesourcery.com>
835718334Speter
835890075Sobrien	* class.c (indirect_primary_base_p): New function.
835990075Sobrien	(determine_primary_base): Use it.
836018334Speter
836190075Sobrien2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
836218334Speter
836390075Sobrien	Update new-abi dynamic cast algorithm.
836490075Sobrien	* tinfo.cc (__class_type_info::__dyncast_result): Add
836590075Sobrien	whole_details. Adjust constructor.
836690075Sobrien	(__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags.
836790075Sobrien	Avoid unnecessary searching.
836890075Sobrien	(__dynamic_cast): Adjust for __dyncast_result::whole_details.
836918334Speter
837090075SobrienMon Jun  5 06:48:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
837118334Speter
837290075Sobrien	* decl.c (init_decl_processing): Don't call record_component_aliases.
837390075Sobrien	* tree.c (build_cplus_array_type_1): Likewise.
837418334Speter
837590075Sobrien2000-06-04  Mark Mitchell  <mark@codesourcery.com>
837618334Speter
837790075Sobrien	* ir.texi: Correct typo.
837890075Sobrien	* mangle.c (write_expression): Handle non-type template arguments
837990075Sobrien	with reference type.
838090075Sobrien	* method.c (build_overload_value): Likewise.
838190075Sobrien	* pt.c (convert_nontype_argument): Explicitly represent conversion
838290075Sobrien	to a reference with an ADDR_EXPR.
838390075Sobrien	(unify): Always unify arguments in left-to-right order.
838418334Speter
838590075Sobrien2000-06-03  Alex Samuel    <samuel@codesourcery.com>
838690075Sobrien	    Mark Mitchell  <mark@codesourcery.com>
838718334Speter
838890075Sobrien	* Make-lang.in (CXX_SRCS): Add mangle.c.
838990075Sobrien	* Makefile.in (CXX_OBJS): Add mangle.o.
839090075Sobrien	(mangle.o): New rule.
839118334Speter
839290075Sobrien	* class.c (local_classes): New variable.
839390075Sobrien	* class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI.
839490075Sobrien	(get_vtt_name): Use mangle_vtt_name for new ABI.
839590075Sobrien	(init_class_processing): Initialize local_classes.
839690075Sobrien	(build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI.
839790075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER.
839890075Sobrien	(std_identifier): New macro.
839990075Sobrien	(DECL_VOLATILE_MEMFUNC_P): New macro.
840090075Sobrien	(DECL_NAMESPACE_STD_P): Likewise.
840190075Sobrien	(local_classes): Declare.
840290075Sobrien	(get_mostly_instantiated_function_type): Declare.
840390075Sobrien	(init_mangle): Declare.
840490075Sobrien	(mangle_decl): Likewise.
840590075Sobrien	(mangle_type_string): Likewise.
840690075Sobrien	(mangle_type): Likewise.
840790075Sobrien	(mangle_typeinfo_for_type): Likewise.
840890075Sobrien	(mangle_typeinfo_string_for_type): Likewise.
840990075Sobrien	(mangle_vtbl_for_type): Likewise.
841090075Sobrien	(mangle_vtt_for_type): Likewise.
841190075Sobrien	(mangle_ctor_vtbl_for_type): Likewise.
841290075Sobrien	(mangle_thunk): Likewise.
841390075Sobrien	(mangle_conv_op_name_for_type): Likewise.
841490075Sobrien	(mangle_guard_variable): Likewise.
841590075Sobrien	* decl.c (pushtag): Keep track of local classes.
841690075Sobrien	(initialize_predefined_identifiers): Initialize std_identifier.
841790075Sobrien	(init_decl_processing): Use std_identifier.
841890075Sobrien	(start_decl): Don't treat instantiations as specializations.
841990075Sobrien	(grokdeclarator): Likewise.
842090075Sobrien	(grokvardecl): Call mangle_decl for new ABI.  Only set mangled
842190075Sobrien	name for fully-instantiated templates.
842290075Sobrien	* decl2.c (grokclassfn): Use set_mangled_name_for_decl for
842390075Sobrien	destructors with the new ABI.
842490075Sobrien	(finish_static_data_member_decl): Use mangle_decl under the new ABI.
842590075Sobrien	(grokfield): Use mangle_type for new ABI.
842690075Sobrien	(grokoptypename): Use mangle_conv_op_for_type for new ABI.
842790075Sobrien	(get_sentry): Use mangle_guard_variable for new ABI.
842890075Sobrien	(start_static_initialization_or_destruction): Likewise.
842990075Sobrien	* expr.c (extract_aggr_init): Remove.
843090075Sobrien	(extract_scalar_init): Likewise.
843190075Sobrien	(extract_init): Remove #if 0'd code.
843290075Sobrien	* mangle.c: New function.
843390075Sobrien	* method.c (build_mangled_name): Assert not flag_new_abi.
843490075Sobrien	(build_static_name): Likewise.
843590075Sobrien	(build_decl_overload_real): Likewise.
843690075Sobrien	(build_typename_overload): Likewise.
843790075Sobrien	(build_overload_with_type): Likewise.
843890075Sobrien	(build_overload_name): Likewise.
843990075Sobrien	(get_ctor_vtbl_name): Likewise.
844090075Sobrien	(start_squangling): Likewise.
844190075Sobrien	(get_id_2): Likewise.
844290075Sobrien	(set_mangled_name_for_decl): Call mangle_decl for new ABI.
844390075Sobrien	(init_method): Call init_mangle for new ABI.
844490075Sobrien	(make_thunk): Call mangle_thunk for new ABI.
844590075Sobrien	* operators.def: Correct new ABI manglings for the `%' operator.
844690075Sobrien	Add `::' operator.
844790075Sobrien	* pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and
844890075Sobrien	DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL.
844990075Sobrien	(lookup_template_class): Call mangle_decl for new ABI.
845090075Sobrien	(get_mostly_instantiated_function_type): New function.
845190075Sobrien	(set_mangled_name_for_template_decl): Use it.
845290075Sobrien	(tsubst_decl): Use set_mangled_name_for_decl for destructors with
845390075Sobrien	the new ABI.  Use mangle_conv_op_name_for_type for instantiated
845490075Sobrien	conversion op names.
845590075Sobrien	* rtti.c (tinfo_name): Call mangle_type_string for new ABI.
845690075Sobrien	(get_tinfo_decl): Call mangle_typeinfo_for_type for new	ABI.
845790075Sobrien	(tinfo_base_init):  Likewise.  Mangle typeinfo string name with
845890075Sobrien	mangle_typeinfo_string_for_type.
845918334Speter
846090075Sobrien2000-06-03  Mark Mitchell  <mark@codesourcery.com>
846118334Speter
846290075Sobrien	* cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment.
846390075Sobrien	(INNERMOST_TEMPLATE_ARGS): New macro.
846490075Sobrien	(innermost_args): Remove.
846590075Sobrien	(get_innermost_template_args): New function.
846690075Sobrien	* decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS.
846790075Sobrien	* error.c (dump_function_decl): Be caution when using
846890075Sobrien	most_general_template.
846990075Sobrien	* method.c (build_template_parm_names):  Use
847090075Sobrien	INNERMOST_TEMPLATE_ARGS.
847190075Sobrien	* pt.c (add_to_template_args): Tidy comment
847290075Sobrien	(get_innermost_template_args): New function.
847390075Sobrien	(check_explicit_specialization): Clear DECL_INITIAL for a new
847490075Sobrien	specialization.
847590075Sobrien	(process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS.
847690075Sobrien	Tidy.
847790075Sobrien	(push_template_decl): Always register specializations of the most
847890075Sobrien	general template.
847990075Sobrien	(convert_template_argument): Use INNERMOST_TEMPLATE_ARGS.
848090075Sobrien	(coerce_template_parms): Likewise.
848190075Sobrien	(lookup_template_class): Likewise.
848290075Sobrien	(innermost_args): Remove.
848390075Sobrien	(tsubst_decl): Use INNERMOST_TEMPLATE_ARGS.
848490075Sobrien	(tsubst_decl): Handle tricky specializations.  Use
848590075Sobrien	get_innermost_template_args.
848690075Sobrien	(instantiate_template): Simplify handling of partial
848752284Sobrien	instantiations.
848890075Sobrien	(get_class_bindings): Use INNERMOST_TEMPLATE_ARGS.
848990075Sobrien	(most_general_template): Reimplement, in a more straightforward
849090075Sobrien	manner.
849190075Sobrien	(regenerate_decl_from_template): Tweak formatting.  Use
849290075Sobrien	TMPL_ARGS_DEPTH for clarity.
849390075Sobrien	(set_mangled_name_for_template_decl): Use INNERMOST_ARGS.
849418334Speter
849590075Sobrien	* dump.c (dequeue_and_dump): Dump information about thunks.
849618334Speter
849790075Sobrien2000-06-01  Richard Henderson  <rth@cygnus.com>
849818334Speter
849990075Sobrien	* decl.c (init_decl_processing): Set lang_get_alias_set first thing.
850018334Speter
850190075Sobrien2000-06-01  Richard Henderson  <rth@cygnus.com>
850218334Speter
850390075Sobrien	* decl2.c (unsupported_options): Fix typo, make const.
850490075Sobrien	(lang_decode_option): Fix bsearch argument order.
850518334Speter
850690075Sobrien2000-06-01  Mark Mitchell  <mark@codesourcery.com>
850718334Speter
850890075Sobrien	* init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE
850990075Sobrien	on FIELD_DECLs.
851018334Speter
851190075SobrienWed May 31 14:09:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
851218334Speter
851390075Sobrien	* cp-tree.h (c_get_alias_set): Deleted.
851490075Sobrien	* Makefile.in (decl.o): Include ../expr.h.
851590075Sobrien	* decl.c (expr.h): Include.
851690075Sobrien	(init_decl_processing): Call record_component_aliases for arrays.
851790075Sobrien	(grokdeclarator): Likewise.
851890075Sobrien	Set TREE_ADDRESSABLE for fields that aren't bitfields.
851990075Sobrien	* tree.c (build_cplus_array_type_1): Call record_component_aliases.
852018334Speter
852190075Sobrien2000-05-31  Mark Mitchell  <mark@codesourcery.com>
852218334Speter
852390075Sobrien	Remove guiding declaration support.
852490075Sobrien	* cp/cp-tree.h (flag_dump_translation_unit): Make it const.
852590075Sobrien	(flag_guiding_decls): Remove.
852690075Sobrien	* call.c (build_user_type_conversion_1): Remove support for
852790075Sobrien	guiding decls.
852850397Sobrien	(build_new_function_call): Likewise.
852950397Sobrien	(build_new_op): Likewise.
853050397Sobrien	(build_new_method_call): Likewise.
853190075Sobrien	* decl.c (start_function): Likewise.
853290075Sobrien	* friend.c (is_friend): Likewise.
853390075Sobrien	(do_friend): Likewise.
853490075Sobrien	* decl2.c ((flag_dump_translation_unit): Make it const.
853590075Sobrien	(flag_guiding_decls): Remove.
853690075Sobrien	(unsupported_options): New variable
853790075Sobrien	(compare_options): New function.
853890075Sobrien	(lang_decode_option): Use them.
853952284Sobrien
854090075Sobrien	* decl.c (build_cp_library_fn): Set DECL_CONTEXT.
854152284Sobrien
854290075Sobrien	* method.c (mangle_expression): Adjust test for legal expression
854352284Sobrien	operators.
854418334Speter
854590075Sobrien	* pt.c (instantiate_decl): Save and restore the local
854690075Sobrien	specializations list.
854718334Speter
854890075Sobrien2000-05-30  Jason Merrill  <jason@decepticon.cygnus.com>
854952284Sobrien
855090075Sobrien	* decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING.
855118334Speter
855290075Sobrien2000-05-30  Mark Mitchell  <mark@codesourcery.com>
855318334Speter
855490075Sobrien	* call.c (add_template_candidate_real): Handle member template
855590075Sobrien	constructors for classes with virtual bases.
855690075Sobrien	(build_user_type_conversion_1): Use in_charge_arg_for_name.
855790075Sobrien	(build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P.
855818334Speter
855990075Sobrien	* ir.texi: Update thunk documentation.
856018334Speter
856190075Sobrien	* call.c (joust): Fix handling of overloaded builtin operators.
856218334Speter
856390075Sobrien2000-05-30  Zack Weinberg  <zack@wolery.cumb.org>
856418334Speter
856590075Sobrien	* cp-tree.h (DECL_ANTICIPATED): New macro.
856690075Sobrien	Document new use of DECL_LANG_FLAG_7.
856790075Sobrien	* decl.c (builtin_function): Set DECL_ANTICIPATED on builtins
856890075Sobrien	in the user namespace.
856990075Sobrien	* lex.c (do_identifier): If the identifier's declaration has
857090075Sobrien	DECL_ANTICIPATED on, it has not yet been declared.  But do not
857190075Sobrien	replace it with an ordinary implicit declaration.
857218334Speter
857390075Sobrien	* tinfo2.cc: Include stdlib.h.
857418334Speter
857590075Sobrien2000-05-29  Mark Mitchell  <mark@codesourcery.com>
857618334Speter
857790075Sobrien	* cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro.
857890075Sobrien	* class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not
857990075Sobrien	CLASSTYPE_ALIGN.
858018334Speter
858190075Sobrien2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
858218334Speter
858390075Sobrien	* decl2.c (lang_decode_option): Use skip_leading_substring instead
858490075Sobrien	of plain strncmp.
858518334Speter
858690075Sobrien2000-05-28  Alexandre Oliva  <aoliva@cygnus.com>
858718334Speter
858890075Sobrien	* operators.def (<?): Duplicated, should have been...
858990075Sobrien	(>?): this.  Fixed.
859018334Speter
859190075Sobrien2000-05-27  Alex Samuel    <samuel@codesourcery.com>
859290075Sobrien	    Mark Mitchell  <mark@codesourcery.com>
859318334Speter
859490075Sobrien	* cp-tree.h (ansi_opname): Make it a macro.
859590075Sobrien	(ansi_assopname): Likewise.
859690075Sobrien	(struct lang_decl_flags): Add assignment_operator_p.
859790075Sobrien	(struct lang_decl): Add operator_code.
859890075Sobrien	(DECL_VTT_PARM): Adjust.
859990075Sobrien	(DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an
860090075Sobrien	overloaded operator.
860190075Sobrien	(SET_OVERLOADED_OPERATOR_CODE): New macro.
860290075Sobrien	(DECL_ASSIGNMENT_OPERATOR_P): New macro.
860390075Sobrien	(DECL_ARRAY_DELETE_OPERATOR_P): Adjust.
860490075Sobrien	(opname_tab): Remove.
860590075Sobrien	(assignop_tab): Likewise.
860690075Sobrien	(operator_name_info_t): New type.
860790075Sobrien	(operator_name_info): New variable.
860890075Sobrien	(assignment_operator_name_info): Likewise.
860990075Sobrien	(build_cp_library_fn): Remove declaration.
861090075Sobrien	(push_cp_library_fn): Likewise.
861190075Sobrien	(operator_name_string): Likewise.
861290075Sobrien	(build_decl_overload): Likewise.
861390075Sobrien	* call.c (print_z_candidates): Simplify.
861490075Sobrien	(build_object_call): Adjust usage of ansi_opname.  Use
861590075Sobrien	DECL_OVERLOADED_OPERATOR_P.
861690075Sobrien	(op_error): Adjust operator name lookup.
861790075Sobrien	(build_conditional_expr): Adjust usage of ansi_opname.
861850397Sobrien	(build_new_op): Likewise.
861990075Sobrien	(build_op_delete_call): Likewise.
862090075Sobrien	(build_over_call): Likewise.
862190075Sobrien	(joust): Use DECL_OVERLOADED_OPERATOR_P.
862290075Sobrien	* decl.c (duplicate_decls): Copy operator_code.
862390075Sobrien	(init_decl_processing): Adjust parameters to push_cp_library_fn.
862490075Sobrien	(builtin_function): Adjust parameters to build_library_fn_1.
862590075Sobrien	(build_library_fn_1): Accept an overloaded operator code.
862690075Sobrien	(build_library_fn): Pass ERROR_MARK.
862790075Sobrien	(build_cp_library_fn): Accept an overloaded operator code.
862890075Sobrien	(push_cp_library_fn): Likewise.
862990075Sobrien	(grokfndecl): Tweak.
863090075Sobrien	(grokdeclarator): Simplify code to compute names of overloaded
863190075Sobrien	operators.  Adjust use of ansi_opname.
863290075Sobrien	(ambi_op_p): Work on tree_codes, not identifiers.
863390075Sobrien	(unary_op_p): Likewise.
863490075Sobrien	(grok_op_properties): Likewise.
863590075Sobrien	(start_function): Use DECL_OVERLOADED_OPERATOR_P.
863690075Sobrien	(lang_mark_tree): Don't try to mark the operator_code.
863790075Sobrien	* decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P.
863890075Sobrien	* error.c (dump_decl): Remove special handling for operator
863990075Sobrien	names.
864090075Sobrien	(dump_function_name): Likewise.
864190075Sobrien	(dump_expr): Adjust name lookup of operators.
864290075Sobrien	(op_to_string): Simplify.
864390075Sobrien	(assop_to_string): Likewise.
864490075Sobrien	* init.c (build_new_1): Adjust use of ansi_opname.
864590075Sobrien	* lex.c (opname_tab): Remove.
864690075Sobrien	(assignop_tab): Likewise.
864790075Sobrien	(ansi_opname): Likewise.
864890075Sobrien	(ansi_assopname): Likewise.
864990075Sobrien	(operator_name_string): Likewise.
865090075Sobrien	(reinit_lang_specific): Likewise.
865190075Sobrien	(operator_name_info): New variable.
865290075Sobrien	(assignment_operator_name_info): Likewise.
865390075Sobrien	(init_operators): New function.
865490075Sobrien	(init_parse): Use it.
865590075Sobrien	(do_identifier): Adjust use of ansi_opname.
865690075Sobrien	* method.c (mangle_expression): Don't use ansi_opname for
865790075Sobrien	mangling.
865890075Sobrien	(build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P.
865990075Sobrien	(build_decl_overload): Remove.
866090075Sobrien	(build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly.
866190075Sobrien	(do_build_assign_ref): Adjust use of ansi_opname.
866290075Sobrien	(synthesize_method): Likewise.
866390075Sobrien	(implicitly_declare_fn): Likewise.
866490075Sobrien	* operators.def: New file.
866590075Sobrien	* parse.y (operator): Adjust use of ansi_opname.
866690075Sobrien	* pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P.
866790075Sobrien	(set_mangled_name_for_template_decl): Don't play games with
866890075Sobrien	current_namespace.
866990075Sobrien	(special_function_p): Adjust use of ansi_opname.
867090075Sobrien	* typeck.c (check_return_expr): Likewise.
867190075Sobrien	* Make-lang.in (cc1plus): Depend on operators.def.
867290075Sobrien	* Makefile.in (lex.o): Likewise.
867390075Sobrien	(decl.o): Likewise.
867418334Speter
867590075Sobrien2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
867618334Speter
867790075Sobrien	* Make-lang.in (cplib2.ready): Eradicate.
867818334Speter
867990075SobrienSat May 27 11:25:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
868018334Speter
868190075Sobrien	* method.c (mangle_expression): Use TREE_CODE_LENGTH.
868290075Sobrien	* tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH.
868390075Sobrien	(built_min, cp_tree_equal): Likewise.
868418334Speter
868590075Sobrien2000-05-26  Mark Mitchell  <mark@codesourcery.com>
868618334Speter
868790075Sobrien	* class.c (layout_nonempty_base_or_field): Replace
868890075Sobrien	`record_layout_info' with `record_layout_info_s'.
868918334Speter
869090075Sobrien2000-05-26  Jason Merrill  <jason@casey.soma.redhat.com>
869118334Speter
869290075Sobrien	Fix goto checking.
869390075Sobrien	* cp-tree.h (struct language_function): x_named_labels is now
869490075Sobrien	a struct named_label_list*.
869590075Sobrien	* decl.c (struct named_label_use_list): Renamed from...
869690075Sobrien	(struct named_label_list): ...this.  New struct.
869790075Sobrien	(push_binding_level): Don't set eh_region.
869890075Sobrien	(note_level_for_eh): New fn.
869990075Sobrien	(pop_label): Take label and old value directly.
870090075Sobrien	(pop_labels): Adjust for new named_labels format.
870190075Sobrien	(lookup_label): Likewise.
870290075Sobrien	(poplevel): Note characteristics of a binding level containing a
870390075Sobrien	named label.  Mess with named label lists earlier.
870490075Sobrien	(mark_named_label_lists): New fn.
870590075Sobrien	(mark_lang_function): Call it.
870690075Sobrien	(use_label): New fn, split out from...
870790075Sobrien	(make_label_decl): ...here.  Don't call it.
870890075Sobrien	(decl_jump_unsafe, check_previous_goto, check_previous_goto_1,
870990075Sobrien	check_previous_gotos): New fns,	split out from...
871090075Sobrien	(define_label): ...here.
871190075Sobrien	(check_switch_goto): New fn.
871290075Sobrien	(define_case_label): Call it.
871390075Sobrien	(check_goto): New fn.
871490075Sobrien	* semantics.c (finish_goto_stmt): Call it and use_label.
871590075Sobrien	(begin_compound_stmt): If we're a try block, call note_level_for_eh.
871690075Sobrien	(expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings.
871718334Speter
871890075Sobrien2000-05-26  Mark Mitchell  <mark@codesourcery.com>
871918334Speter
872090075Sobrien	* class.c (build_vtable_entry_ref): Correct usage of
872190075Sobrien	get_vtbl_decl_for_binfo.
872218334Speter
872390075Sobrien	* decl2.c (grokclassfn): Set DECL_LANGUAGE here.
872490075Sobrien	* method.c (implicitly_declare_fn): Not here.
872518334Speter
872690075Sobrien2000-05-26  Nathan Sidwell  <nathan@codesourcery.com>
872718334Speter
872890075Sobrien	* cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ...
872990075Sobrien	(CPTI_PTMD_DESC_TYPE): ... here.
873090075Sobrien	(ptmd_desc_type_node): Rename to ...
873190075Sobrien	(ptm_desc_type_node): ... here.
873290075Sobrien	* decl.c: Likewise.
873390075Sobrien	* rtti.c (ptmd_initializer): Rename to ...
873490075Sobrien	(ptm_initializer): ... here.
873590075Sobrien	(sythesize_tinfo_var): Adjust. Deal with pointer to member
873690075Sobrien	function.
873790075Sobrien	(create_tinfo_types): Adjust.
873818334Speter
873990075Sobrien2000-05-25  Mark Mitchell  <mark@codesourcery.com>
874018334Speter
874190075Sobrien	Finish implementation of VTTs.
874290075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and
874390075Sobrien	CPTI_VTT_PARM_IDENTIFIER.
874490075Sobrien	(vtt_parm_identifier): New macro.
874590075Sobrien	(vtt_parm_type): Likewise.
874690075Sobrien	(BINFO_SUBVTT_INDEX): Likewise.
874790075Sobrien	(BINFO_VPTR_INDEX): Likewise.
874890075Sobrien	(struct lang_decl): Add vtt_parm.
874990075Sobrien	(DECL_VTT_PARM): New macro.
875090075Sobrien	(DECL_USE_VTT_PARM): Likewise.
875190075Sobrien	(DECL_NEEDS_VTT_PARM_P): Likewise.
875290075Sobrien	(get_vtt_name): Declare.
875390075Sobrien	(build_artificial_parm): Likewise.
875490075Sobrien	(fixup_all_virtual_upcast_offsets): Likewise.
875590075Sobrien	(expand_indirect_vtbls_init): Remove.
875690075Sobrien	* call.c (build_new_method_call): Pass the vtt to subobject
875790075Sobrien	constructors and destructors.
875890075Sobrien	* class.c (get_vtt_name): Give it external linkage.
875990075Sobrien	(build_clone): Handle the magic VTT parameters for clones.
876090075Sobrien	(clone_function_decl): Fix typo in comment.
876190075Sobrien	(build_vtt): Keep track of the indices in the VTTs where various
876290075Sobrien	entities are stored.
876390075Sobrien	(build_vtt_inits): Likewise.
876490075Sobrien	(dfs_build_vtt_inits): Likewise.
876590075Sobrien	(build_ctor_vtbl_group): Tweak type of construction vtables.
876690075Sobrien	(dfs_accumulate_vtbl_inits): Build vtables for all bases, even
876790075Sobrien	primary bases, when building construction vtables.
876890075Sobrien	* decl.c (duplicate_decls): Handle DECL_VTT_PARM.
876990075Sobrien	(initialize_predefined_identifiers): Add vtt_parm_identifier.
877090075Sobrien	(init_decl_processing): Initialize vtt_parm_type.
877190075Sobrien	(grokfndecl): Use DECL_OVERLOADED_OPERATOR_P.
877290075Sobrien	(lang_mark_tree): Make vtt_parm.
877390075Sobrien	* decl2.c (build_artificial_parm): New function.
877490075Sobrien	(maybe_retrofit_in_chrg): Use it.  Add VTT parameters.
877590075Sobrien	(grokclassfn): Use build_artificial_parm.
877690075Sobrien	* init.c (initialize_vtbl_ptrs): Call
877790075Sobrien	fixup_all_virtual_upcast_offsets directly.
877890075Sobrien	(perform_member_init): Use the complete subobject destructor for
877990075Sobrien	member cleanups.
878090075Sobrien	(build_vtbl_address): New function.
878190075Sobrien	(expand_virtual_init): Handle VTTs.
878290075Sobrien	* optimize (maybe_clone_body): Likewise.
878390075Sobrien	* search.c (fixup_all_virtual_upcast_offsets): Give it external
878490075Sobrien	linkage.
878590075Sobrien	(expand_indirect_vtbls_init): Remove.
878690075Sobrien	* semantics.c (setup_vtbl_ptr): Fix typos in comment.
878790075Sobrien	* tree.c (make_binfo): Make them bigger.
878818334Speter
878990075Sobrien2000-05-25  Nathan Sidwell  <nathan@codesourcery.com>
879018334Speter
879190075Sobrien	* inc/cxxabi.h (__pbase_type_info): Define, based on
879290075Sobrien	__pointer_type_info.
879390075Sobrien	(__pointer_type_info): Derive from __pbase_type_info. Adjust.
879490075Sobrien	(__pointer_to_member_type_info): Likewise.
879590075Sobrien	* tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement.
879690075Sobrien	(__pointer_to_member_type_info::__is_pointer_p): Remove.
879790075Sobrien	(__pointer_type_info::__do_catch): Rename to ...
879890075Sobrien	(__pbase_type_info::__do_catch): ... here. Adjust.
879990075Sobrien	(__pbase_type_info::__pointer_catch): Implement.
880090075Sobrien	(__pointer_type_info::__pointer_catch): Adjust.
880190075Sobrien	(__pointer_to_member_type_info::__pointer_catch): Adjust.
880218334Speter
880390075Sobrien2000-05-25  Nathan Sidwell  <nathan@codesourcery.com>
880418334Speter
880590075Sobrien	* tinfo.h (__user_type_info::contained_virtual_p): New
880690075Sobrien	predicate.
880790075Sobrien	* tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond
880890075Sobrien	shaped hierarchy.
880990075Sobrien	(__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to
881090075Sobrien	diamond shaped hierarchy. Add early out for mixed diamond and
881190075Sobrien	duplicate shaped hierarchy.
881218334Speter
881390075Sobrien2000-05-24  Mark Mitchell  <mark@codesourcery.com>
881418334Speter
881590075Sobrien	* cp-tree.h (build_delete): Change prototype.
881690075Sobrien	(build_vec_delete): Likewise.
881790075Sobrien	* call.c (build_scoped_method_call): Use special_function_kind
881890075Sobrien	values to indicate the kind of destruction to be done.
881990075Sobrien	(build_method_call): Likewise.
882090075Sobrien	* decl.c (finish_destructor_body): Likewise.
882190075Sobrien	(maybe_build_cleanup_1): Likewise.  Rename to ...
882290075Sobrien	(maybe_build_cleanup): ... this.
882390075Sobrien	* decl2.c (delete_sanity): Use special_function_kind
882490075Sobrien	values to indicate the kind of destruction to be done.
882590075Sobrien	(build_cleanup): Likewise.
882690075Sobrien	* init.c (perform_member_init): Likewise.
882790075Sobrien	(build_vec_delete_1): Likewise.
882890075Sobrien	(build_dtor_call): Simplify.
882990075Sobrien	(build_delete): Use special_function_kind
883090075Sobrien	values to indicate the kind of destruction to be done.
883190075Sobrien	(build_vbase_delete): Likewise.
883290075Sobrien	(build_vec_delete): Likewise.
883318334Speter
883490075Sobrien	* init.c (sort_member_init): Fix typo in error message generation
883590075Sobrien	code.
883618334Speter
883790075SobrienMon May 15 11:46:29 2000  Donald Lindsay  <dlindsay@cygnus.com>
883818334Speter
883990075Sobrien	* semantics.c (begin_class_definition): make the packed
884090075Sobrien	attribute be sensitive to the "-fpack-struct" command line flag
884118334Speter
884290075Sobrien2000-05-24  Nathan Sidwell  <nathan@codesourcery.com>
884318334Speter
884490075Sobrien	Update new-abi upcast algorithm.
884590075Sobrien	* inc/cxxabi.h (__class_type_info::__do_upcast): Change
884690075Sobrien	prototype and meaning of return value.
884790075Sobrien	(__si_class_type_info::__do_upcast): Likewise.
884890075Sobrien	(__vmi_class_type_info::__do_upcast): Likewise.
884990075Sobrien	* tinfo.cc (__class_type_info::__upcast_result): Replace
885090075Sobrien	whole2dst with part2dst. Adjust ctor.
885190075Sobrien	(__class_type_info::__do_upcast): Adjust call of worker function.
885290075Sobrien	(__class_type_info::__do_upcast): Adjust.
885390075Sobrien	(__si_class_type_info::__do_upcast): Adjust. Use parent's
885490075Sobrien	__do_upcast.
885590075Sobrien	(__vmi_class_type_info::__do_upcast): Likewise. Fix private
885690075Sobrien	virtual base in diamond hierarchy bug.
885718334Speter
885890075Sobrien2000-05-23  Mark Mitchell  <mark@codesourcery.com>
885918334Speter
886090075Sobrien	* cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable
886190075Sobrien	and bitfield to tinfo_fn_p.
886290075Sobrien	(DECL_TINFO_FN_P): Adjust.
886390075Sobrien	(SET_DECL_TINFO_FN_P): Likewise.
886490075Sobrien	(DECL_MUTABLE_P): Likewise.
886590075Sobrien	(DECL_C_BIT_FIELD): Likewise.
886690075Sobrien	(SET_DECL_C_BIT_FIELD): Likewise.
886790075Sobrien	(CLEAR_DECL_C_BIT_FIELD): Likewise.
886890075Sobrien	(DECL_UNINLINABLE): Likewise.
886990075Sobrien	* class.c (alter_access): Call retrofit_lang_decl if ncessary.
887090075Sobrien	(handle_using_decl): Remove assertion.
887190075Sobrien	(build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl,
887290075Sobrien	to build FIELD_DECLs.
887390075Sobrien	(build_base_field): Likewise.
887490075Sobrien	(layout_class_type): Likewise.
887590075Sobrien	* decl.c (init_decl_processing): Likewise.
887690075Sobrien	(build_ptrmemfunc_type): Likewise.
887790075Sobrien	(grokdeclarator): Likewise.
887890075Sobrien	* decl2.c (grok_x_components): Likewise.
887990075Sobrien	* except.c (call_eh_info): Likewise.
888090075Sobrien	* init.c (init_init_processing): Likewise.
888190075Sobrien	* rtti.c (expand_class_desc): Likewise.
888290075Sobrien	(create_pseudo_type_info): Likewise.
888390075Sobrien	(get_vmi_pseudo_type_info): Likewise.
888490075Sobrien	(create_tinfo_types): Likewise.
888590075Sobrien	* ptree.c (print_lang_decl): Adjust.
888690075Sobrien	* typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC
888790075Sobrien	before checking DECL_MUTABLE_P.
888818334Speter
888990075Sobrien	* decl2.c (maybe_retrofit_in_chrg): Don't create in-charge
889090075Sobrien	parameters for template functions.
889190075Sobrien	* pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for
889290075Sobrien	destructors as well as constructors.
889318334Speter
889490075Sobrien2000-05-22  Mark Mitchell  <mark@codesourcery.com>
889518334Speter
889690075Sobrien	* class.c (build_ctor_vtbl_group): Set inits.
889790075Sobrien	* optimize.c (maybe_clone_body): Set DECL_INLINE and
889890075Sobrien	DECL_THIS_INLINE appropriately for clones.
889918334Speter
890090075Sobrien	* cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp.
890190075Sobrien	(DECL_CONV_FN_P): Simplify.
890290075Sobrien	(DECL_OPERATOR): Remove.
890390075Sobrien	(language_to_string): Declare.
890490075Sobrien	* decl.c (duplicate_decls): Fix typo in comment.
890590075Sobrien	(grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P.
890690075Sobrien	(grok_op_properties): Use DECL_CONV_FN_P instead of
890790075Sobrien	IDENTIFIER_TYPENAME_P.
890890075Sobrien	* dump.c (dequeue_and_dump): Dump the language linkage of
890990075Sobrien	declarations.
891090075Sobrien	* error.c (language_to_string): Give it external linkage.
891190075Sobrien	* method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P.
891290075Sobrien	(implicitly_declare_fn): Set DECL_LANGUAGE.
891390075Sobrien	* pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not
891490075Sobrien	IDENTIFIER_TYPENAME_P.
891590075Sobrien	(tsubst_decl): Likewise.
891690075Sobrien	(tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P.
891790075Sobrien	* semantics.c (finish_member_declaration): Don't mark members of
891890075Sobrien	classes declared in an extern "C" region as extern "C".
891918334Speter
892090075Sobrien2000-05-22  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
892118334Speter
892290075Sobrien	* decl2.c (qualified_lookup_using_namespace): Look through
892390075Sobrien	namespace aliases.
892418334Speter
892590075Sobrien	* decl.c (push_using_decl): Return the old decl on namespace level.
892618334Speter
892790075Sobrien2000-05-21  Mark Mitchell  <mark@codesourcery.com>
892818334Speter
892990075Sobrien	* cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks.
893090075Sobrien	(VTT_NAME_PREFIX): New macro.
893190075Sobrien	(CTOR_VTBL_NAME_PREFIX): Likewise.
893290075Sobrien	(get_ctor_vtbl_name): New function.
893390075Sobrien	* class.c (get_vtable_name): Simplify.
893490075Sobrien	(get_vtt_name): New function.
893590075Sobrien	(get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE.
893690075Sobrien	(dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list
893790075Sobrien	when a virtual base becomes primary.
893890075Sobrien	(finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier.  Build
893990075Sobrien	VTTs.
894090075Sobrien	(finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in
894190075Sobrien	additional parameters.
894290075Sobrien	(dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED.
894390075Sobrien	(initialize_array): New function.
894490075Sobrien	(build_vtt): Likewise.
894590075Sobrien	(build_vtt_inits): Likewise.
894690075Sobrien	(dfs_build_vtt_inits): Likewise.
894790075Sobrien	(dfs_fixup_binfo_vtbls): Likewise.
894890075Sobrien	(build_ctor_vtbl_group): Likewise.
894990075Sobrien	(initialize_vtable): Use initialize_array.
895090075Sobrien	(accumulate_vtbl_inits): Reimplement to handle construction
895190075Sobrien	vtables.
895290075Sobrien	(dfs_accumulate_vtbl_inits): Likewise.
895390075Sobrien	(bulid_vtbl_initializer): Adjust parameter name.
895490075Sobrien	* method.c (build_typename_overload): Remove #if 0'd code.
895590075Sobrien	(get_ctor_vtbl_name): New function.
895690075Sobrien	* search.c (dfs_walk_real): Use BINFO_N_BASETYPES.
895790075Sobrien	(init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo.
895818334Speter
895990075Sobrien	* cp-tree.h (struct lang_type): Remove search_slot.
896090075Sobrien	(CLASSTYPE_SEARCH_SLOT): Remove.
896190075Sobrien	(emit_base_init): Change prototype.
896290075Sobrien	(initialize_vtbl_ptrs): Likewise.
896390075Sobrien	(expand_indirect_vtbls_init): Likewise.
896490075Sobrien	(clear_search_slots): Remove.
896590075Sobrien	* decl.c (lang_mark_tree): Don't mark search_slot.
896690075Sobrien	* init.c (initialize_vtbl_ptrs): Simplify.
896750397Sobrien	(emit_base_init): Likewise.
896890075Sobrien	* search.c (struct vbase_info): Document decl_ptr.
896990075Sobrien	(convert_pointer_to_single_level): Remove.
897090075Sobrien	(dfs_find_vbases): Remove.
897190075Sobrien	(dfs_init_base_pointers): Simplify.
897290075Sobrien	(dfs_clear_vbase_slots): Remove.
897390075Sobrien	(dfs_vtable_path_unmark): New function.
897490075Sobrien	(init_vbase_pointers): Simplify.
897590075Sobrien	(expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT.
897690075Sobrien	(expand_indirect_vtbls_init): Simplify.  Don't call
897790075Sobrien	mark_all_temps_used.
897890075Sobrien	* semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and
897990075Sobrien	initialize_vtbl_ptrs.
898052284Sobrien
898190075Sobrien2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
898218334Speter
898390075Sobrien	* except.c: Add static prototypes.
898418334Speter
898590075Sobrien2000-05-20  H.J. Lu  <hjl@gnu.org>
898652284Sobrien
898790075Sobrien	* Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext).
898818334Speter
898990075Sobrien2000-05-19  Mark Mitchell  <mark@codesourcery.com>
899018334Speter
899190075Sobrien	Don't create a separate copy of virtual bases for the
899290075Sobrien	CLASSTYPE_VBASECLASSES list.
899390075Sobrien	* cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation.
899490075Sobrien	(BINFO_FOR_VBASE): Remove.
899590075Sobrien	(CANONICAL_BINFO): Adjust.
899690075Sobrien	(binfo_for_vbase): New function.
899790075Sobrien	* class.c (build_vbase_pointer_fields): Use binfo_for_vbase
899890075Sobrien	instead of BINFO_FOR_VBASE.
899990075Sobrien	(build_vbase_pointer): Likewise.
900090075Sobrien	(build_secondary_vtable): Likewise.
900190075Sobrien	(dfs_mark_primary_bases): Likewise.
900290075Sobrien	(mark_primary_bases): Likewise.
900390075Sobrien	(layout_nonempty_base_or_field): Likewise.
900490075Sobrien	(dfs_set_offset_for_shared_vbases): Likewise.
900590075Sobrien	(dfs_set_offset_for_unshared_vbases): Likewise.
900690075Sobrien	(layout_virtual_bases): Likewise.  Adjust for changes to the
900790075Sobrien	CLASSTYPE_VBASECLASSES list.
900890075Sobrien	(dump_class_hierarchy_r): Use binfo_for_vbase
900990075Sobrien	instead of BINFO_FOR_VBASE.
901090075Sobrien	(dump_class_hierarchy): Likewise.
901190075Sobrien	(finish_vtbls): Likewise.
901290075Sobrien	(build_vtbl_initializer): Adjust for changes to the
901390075Sobrien	CLASSTYPE_VBASECLASSES list.
901490075Sobrien	(build_vbase_offset_vtbl_entries): Use binfo_for_vbase.
901590075Sobrien	* decl.c (finish_destructor_body): Adjust for changes to the
901690075Sobrien	CLASSTYPE_VBASECLASSES list.
901790075Sobrien	* init.c (sort_base_init): Use binfo_for_vbase.
901890075Sobrien	(construct_virtual_bases): Adjust for changes to the
901990075Sobrien	CLASSTYPE_VBASECLASSES list.
902090075Sobrien	(expand_member_init): Use binfo_for_vbase.
902190075Sobrien	(build_vbase_delete):  Adjust for changes to the
902290075Sobrien	CLASSTYPE_VBASECLASSES list.
902390075Sobrien	* method.c (do_build_copy_constructor): Likewise.
902490075Sobrien	* rtti.c (get_base_offset): Use binfo_for_vbase.
902590075Sobrien	(expand_class_desc): Remove #if 0'd code.
902690075Sobrien	* search.c (struct vbase_info): Remove vbase_types.
902790075Sobrien	(get_base_distance):  Use binfo_for_vbase.
902890075Sobrien	(lookup_field_queue_p): Use CANONICAL_BINFO.
902990075Sobrien	(get_shared_vbase_if_not_primary): Use binfo_for_vbase.
903090075Sobrien	(get_pure_virtuals): Adjust for changes to the
903190075Sobrien	CLASSTYPE_VBASECLASSES list.
903290075Sobrien	(dfs_find_vbases): Use binfo_for_vbase.
903390075Sobrien	(dfs_init_vbase_pointers): Likewise.
903490075Sobrien	(init_vbase_pointers): Don't initialize vi.vbase_types.
903590075Sobrien	(virtual_context): Use binfo_for_vbase.
903690075Sobrien	(fixup_all_virtual_upcast_offsets): Adjust for changes to the
903790075Sobrien	CLASSTYPE_VBASECLASSES list.
903890075Sobrien	(expand_indirect_vtbls_init): Simplify.
903990075Sobrien	(dfs_get_vbase_types): Don't replicate virtual bases.
904090075Sobrien	(find_vbase_instance): Use binfo_for_vbase.
904190075Sobrien	(binfo_for_vbase): New function.
904290075Sobrien	* typeck.c (get_delta_difference): Use binfo_for_vbase.
904318334Speter
904490075Sobrien2000-05-17  Mark Mitchell  <mark@codesourcery.com>
904518334Speter
904690075Sobrien	* decl2.c (finish_anon_union): Generalize error messages to handle
904790075Sobrien	anonymous structures.
904890075Sobrien	* init.c (perform_member_init): Remove `name' parameter.
904990075Sobrien	(build_field_list): New function.
905090075Sobrien	(sort_member_init): Handle anonymous union initialization order
905190075Sobrien	correctly.  Check for multiple initializations of the same union.
905290075Sobrien	(emit_base_init): Don't look up fields by name here.
905390075Sobrien	(expand_member_init): Record the result of name lookup for future
905490075Sobrien	reference.
905590075Sobrien	* typeck.c (build_component_ref): Fix formatting.
905618334Speter
905790075SobrienWed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
905818334Speter
905990075Sobrien	* decl.c (pop_label): Replace warn_unused with warn_unused_label.
906090075Sobrien	* typeck.c (build_x_compound_expr): Replace warn_unused with
906190075Sobrien	warn_unused_value.
906218334Speter
906390075Sobrien	* decl2.c (lang_decode_option): Update -Wall unused flags by
906490075Sobrien	calling set_Wunused.
906518334Speter
906690075Sobrien2000-05-16  Mark Mitchell  <mark@codesourcery.com>
906718334Speter
906890075Sobrien	* cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation.
906990075Sobrien	* init.c (dfs_vtable_path_unmark): Remove.
907090075Sobrien	* search.c (marked_new_vtable_p): Likewise.
907190075Sobrien	(unmarked_new_vtable_p): Likewise.
907290075Sobrien	(dfs_search_slot_nonempty_p): Likewise.
907390075Sobrien	(dfs_mark): Likewise.
907490075Sobrien	(dfs_vtable_path_unmark): Likewise.
907590075Sobrien	(dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED.
907690075Sobrien	(dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED.
907790075Sobrien	(dfs_init_vbase_pointers): Remove special-case new ABI code.
907890075Sobrien	(dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED.
907990075Sobrien	(init_vbase_pointers): Simplify.
908090075Sobrien	(expand_indirect_vtbls_init): Likewise.
908118334Speter
908290075Sobrien	* class.c (copy_virtuals): New function.
908390075Sobrien	(build_primary_table): Use it.
908490075Sobrien	(build_secondary_vtable): Likewise.
908590075Sobrien	(modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to
908690075Sobrien	indicate that no vcall offset is required.
908790075Sobrien	(add_virtual_function): Likewise.
908890075Sobrien	(modify_all_vtables): Likewise.
908990075Sobrien	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
909090075Sobrien	(dfs_accumulate_vtbl_inits): Likewise.
909190075Sobrien	(build_vtbl_initializer): Make changes to handle construction
909290075Sobrien	vtables.
909390075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Likewise.
909490075Sobrien	(build_rtti_vtbl_entries): Likewise.
909590075Sobrien	(build_vtable_entries): Handle a NULL vcall_index.
909618334Speter
909790075Sobrien2000-05-15  Gabriel Dos Reis  <gdr@codesourcery.com>
909818334Speter
909990075Sobrien	* decl2.c (lang_decode_option): Fix thinko.
910018334Speter
910190075Sobrien2000-05-14  Jason Merrill  <jason@casey.cygnus.com>
910218334Speter
910390075Sobrien	* except.c (check_handlers): New fn.
910490075Sobrien	* cp-tree.h: Declare it.
910590075Sobrien	* semantics.c (finish_handler_sequence): Call it.
910690075Sobrien	(finish_function_handler_sequence): Likewise.
910790075Sobrien	(finish_handler_parms): Set TREE_TYPE on the handler.
910890075Sobrien	* cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro.
910990075Sobrien	* search.c (get_base_distance_recursive): If protect>1, ignore
911090075Sobrien	special access.
911190075Sobrien	(get_base_distance): Don't reduce watch_access.
911218334Speter
911390075Sobrien2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
911418334Speter
911590075Sobrien	* lex.c: #include diagnostic.h.
911690075Sobrien	(lang_init_options): Set default prefixing rules.
911718334Speter
911890075Sobrien	* lang-options.h: Add -fdiagnostics-show-location=.
911918334Speter
912090075Sobrien	* decl2.c: #include diagnostic.h.
912190075Sobrien	(lang_decode_option): Handle -fdiagnostics-show-location=.
912218334Speter
912390075Sobrien2000-05-12  Nathan Sidwell  <nathan@codesourcery.com>
912418334Speter
912590075Sobrien	* tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes.
912690075Sobrien	* vec.cc: Revert my 2000-05-07 change.
912718334Speter
912890075Sobrien2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
912952284Sobrien
913090075Sobrien	* class.c (check_field_decls): Complain about non-static data
913190075Sobrien	members with same name as class in class with constructor.
913218334Speter
913390075Sobrien2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
913418334Speter
913590075Sobrien	* decl.c (grokdeclarator): Allow non-static data members with
913690075Sobrien	same name as class.
913718334Speter
913890075Sobrien2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
913918334Speter
914090075Sobrien	* cp-tree.h: Constify tree_srcloc.filename, tinst_level.file,
914190075Sobrien	and pending_inline.filename.  Update prototypes.
914290075Sobrien	* decl.c (define_label): Constify filename parameter.
914390075Sobrien	* decl2.c (warn_if_unknown_interface): Constify local char *.
914490075Sobrien	* input.c Constify input_source.filename. Don't declare
914590075Sobrien	input_filename or lineno.  Constify filename parameter to feed_input.
914690075Sobrien	* lex.c (init_parse): Constify parameter and return value.
914790075Sobrien	(cp_pragma_interface, cp_pragma_implementation): Constify
914890075Sobrien	filename argument.
914990075Sobrien	(reinit_parse_for_method, reinit_parse_for_block,
915090075Sobrien	reinit_parse_for_expr, feed_defarg, handle_cp_pragma):
915190075Sobrien	Constify local char *.
915290075Sobrien	* pt.c: Don't declare lineno or input_filename.
915390075Sobrien	(print_template_context, tsubst_friend_function, tsubst_decl,
915490075Sobrien	tsubst, instantiate_decl): Constify local char *.
915590075Sobrien	* semantics.c (expand_body): Constify local char *.
915690075Sobrien	* tree.c (build_srcloc): Constify filename parameter.
915790075Sobrien	* typeck.c (c_expand_asm_operands): Constify filename
915890075Sobrien	parameter.
915918334Speter
916090075Sobrien2000-05-08  Nathan Sidwell  <nathan@codesourcery.com>
916118334Speter
916290075Sobrien	* tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix
916390075Sobrien	offsetof expansion.
916418334Speter
916590075Sobrien2000-05-08  Branko Cibej  <branko.cibej@hermes.si>
916618334Speter
916790075Sobrien	* inc/cxxabi.h:  Fix typos in comment.
916890075Sobrien	(__base_class_info::__offset): Use a static_cast.
916918334Speter
917090075Sobrien2000-05-07  Nathan Sidwell  <nathan@codesourcery.com>
917118334Speter
917290075Sobrien	* inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place
917390075Sobrien	of std::size_t and std::ptrdiff_t respectively.
917490075Sobrien	* tinfo.cc: Likewise.
917590075Sobrien	* vec.cc: Likewise.
917618334Speter
917790075Sobrien2000-05-06  Richard Henderson  <rth@cygnus.com>
917818334Speter
917990075Sobrien	* typeck.c (build_c_cast): Don't warn integer->pointer size
918090075Sobrien	mismatch for constants.
918118334Speter
918290075Sobrien2000-05-06  Nathan Sidwell  <nathan@codesourcery.com>
918318334Speter
918490075Sobrien	* rtti.c (ptmd_initializer): Set non-public, if class is
918590075Sobrien	incomplete.
918618334Speter
918790075Sobrien	* inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++".
918890075Sobrien	(__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
918990075Sobrien	__cxa_vec_delete): Likewise.
919090075Sobrien	* tinfo.cc (__dynamic_cast): Likewise.
919190075Sobrien	* vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
919290075Sobrien	__cxa_vec_delete): Likewise.
919318334Speter
919490075Sobrien2000-05-04  Mark Mitchell  <mark@codesourcery.com>
919518334Speter
919690075Sobrien	* cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove.
919790075Sobrien	(SET_FNADDR_FROM_VTABLE_ENTRY): Likewise.
919890075Sobrien	(lang_decl_flags): Add vcall_offset.
919990075Sobrien	(THUNK_VCALL_OFFSET): Use it.
920090075Sobrien	* decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk.
920190075Sobrien	* method.c (make_thunk): Create the lang_decl here, not in
920290075Sobrien	emit_thunk.
920390075Sobrien	(emit_thunk): Make generic thunks into ordinary functions once
920490075Sobrien	they have been fed to expand_body.
920590075Sobrien	* semantics.c (expand_body): Set current_function_is_thunk here.
920618334Speter
920790075Sobrien2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
920818334Speter
920990075Sobrien	* class.c (update_vtable_entry_for_fn): Prototype.
921018334Speter
921190075Sobrien	* pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl'
921290075Sobrien	and `tmpl'.
921318334Speter
921490075Sobrien	* search.c (dfs_build_inheritance_graph_order): Prototype.
921518334Speter
921690075Sobrien2000-05-04  Mark Mitchell  <mark@codesourcery.com>
921718334Speter
921890075Sobrien	* cp-tree.h (special_function_kind): Add various kinds of
921990075Sobrien	destructors.
922090075Sobrien	(special_function_p): New function.
922190075Sobrien	* class.c (overrides): Don't let one kind of destructor override
922290075Sobrien	another.
922390075Sobrien	* decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding
922490075Sobrien	whether or not to instantiate a template.
922590075Sobrien	* tree.c (special_function_p): Define.
922618334Speter
922790075Sobrien2000-05-03  Mark Mitchell  <mark@codesourcery.com>
922818334Speter
922990075Sobrien	* cp-tree.def (THUNK_DECL): Remove.
923090075Sobrien	* cp-tree.h (DECL_THUNK_P): New macro.
923190075Sobrien	(DECL_NON_THUNK_FUNCTION_P): Likewise.
923290075Sobrien	(DECL_EXTERN_C_FUNCTION_P): Likewise.
923390075Sobrien	(SET_DECL_THUNK_P): Likewise.
923490075Sobrien	(DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P.
923590075Sobrien	(FNADDR_FROM_VTABLE_ENTRY): Likewise.
923690075Sobrien	(DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P.
923790075Sobrien	* decl.c (decls_match): Use DECL_EXTERN_C_P.
923850397Sobrien	(duplicate_decls): Likewise.
923990075Sobrien	(pushdecl): Likewise.  Adjust thunk handling.
924090075Sobrien	(grokfndecl): Use DECL_EXTERN_C_P.
924190075Sobrien	* decl2.c (mark_vtable_entries): Use DECL_THUNK_P.
924290075Sobrien	* dump.c (dequeue_and_dump): Remove THUNK_DECL handling.
924390075Sobrien	* except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P.
924490075Sobrien	* expr.c (cplus_expand_expr): Remove THUNK_DECL handling.
924590075Sobrien	* method.c (make_thunk): Use SET_DECL_THUNK_P.  Set
924690075Sobrien	DECL_NO_STATIC_CHAIN.
924790075Sobrien	(emit_thunk): Don't play games with TREE_CODE on thunks.  Don't
924890075Sobrien	set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk.
924990075Sobrien	* search.c (covariant_return_p): Remove THUNK_DECL handling.
925090075Sobrien	* ir.texi: Update.
925118334Speter
925290075Sobrien2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
925318334Speter
925490075Sobrien	* tree.c (walk_tree): Set lineno.
925518334Speter
925690075Sobrien2000-05-01  Mark Mitchell  <mark@codesourcery.com>
925718334Speter
925890075Sobrien	* exception.cc: Update license notice.
925990075Sobrien	* new.cc: Likewise.
926090075Sobrien	* new1.cc: Likewise.
926190075Sobrien	* new2.cc: Likewise.
926290075Sobrien	* tinfo.cc: Likewise.
926390075Sobrien	* tinfo2.cc: Likewise.
926490075Sobrien	* vec.cc: Likewise.
926590075Sobrien	* inc/cxxabi.h: Likewise.
926690075Sobrien	* inc/exception: Likewise.
926790075Sobrien	* inc/new: Likewise.
926890075Sobrien	* inc/new.h: Likewise.
926990075Sobrien	* inc/typeinfo: Likewise.
927018334Speter
927190075Sobrien2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
927218334Speter
927390075Sobrien	* tree.c (build_target_expr_with_type): If we already have a
927490075Sobrien	TARGET_EXPR, just return it.
927518334Speter
927690075Sobrien	* optimize.c (initialize_inlined_parameters): Don't generate an
927790075Sobrien	EXPR_STMT if we can just use DECL_INITIAL.
927890075Sobrien	* decl.c (emit_local_var): Only make the initialization a
927990075Sobrien	full-expression if stmts_are_full_exprs_p.
928018334Speter
928190075Sobrien2000-05-01  Mark Mitchell  <mark@codesourcery.com>
928218334Speter
928390075Sobrien	* cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New
928490075Sobrien	macro.
928590075Sobrien	* call.c (standard_conversion): Use it.
928690075Sobrien	(direct_reference_binding): Likewise.
928790075Sobrien	(build_over_call): Likewise.
928890075Sobrien	(is_properly_derived_from): Likewise.
928990075Sobrien	(compare_ics): Likewise.
929090075Sobrien	* class.c (resolves_to_fixed_type_p): Likewise.
929190075Sobrien	* optimize.c (declare_return_variable): Likewise.
929290075Sobrien	* pt.c (is_specialization_of): Likewise.
929390075Sobrien	(unify): Likewise.
929490075Sobrien	* typeck.c (comp_target_parms): Likeiwse.
929590075Sobrien	(build_static_cast): Likewise.
929690075Sobrien	(build_reinterpret_cast): Likewise.
929790075Sobrien	(build_const_cast): Likewise.
929890075Sobrien	(comp_ptr_ttypes_real): Likewise.
929990075Sobrien	(comp_ptr_ttypes_const): Likewise.
930090075Sobrien	* typeck2.c (process_init_constructor): Likewise.
930118334Speter
930290075Sobrien2000-04-30  Scott Snyder <snyder@fnal.gov>
930318334Speter
930490075Sobrien	* decl.c (finish_destructor_body): Use the base destructor when
930590075Sobrien	destroying virtual bases.
930618334Speter
930790075Sobrien2000-04-30  Mark Mitchell  <mark@codesourcery.com>
930818334Speter
930990075Sobrien	* expr.c (cplus_expand_expr): Preserve temporaries when expanding
931090075Sobrien	STMT_EXPRs.
931190075Sobrien	* optimize.c (struct inline_data): Add target_exprs field.
931290075Sobrien	(declare_return_variable): When a function returns an aggregate,
931390075Sobrien	use the variable declared in the TARGET_EXPR as the remapped
931490075Sobrien	DECL_RESULT.
931590075Sobrien	(expand_call_inline): Update the pending target_exprs stack.
931690075Sobrien	(optimize_function): Initialize the stack.
931718334Speter
931890075Sobrien	* decl2.c (finish_file): Fix typo in comment.
931918334Speter
932090075Sobrien	* method.c (emit_thunk): Don't try to return a `void' value.
932118334Speter
932290075Sobrien	* optimize.c (initialize_inlined_parameters): If the parameter is
932390075Sobrien	addressable, we need to make a new VAR_DECL, even if the
932490075Sobrien	initializer is constant.
932518334Speter
932690075Sobrien2000-04-28  Cosmin Truta  <cosmint@cs.ubbcluj.ro>
932718334Speter
932890075Sobrien	* decl.c (grok_op_properties): Add an extra check of argtypes.
932918334Speter
933090075Sobrien2000-04-27  Mark Mitchell  <mark@codesourcery.com>
933118334Speter
933290075Sobrien	* optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying
933390075Sobrien	variables.
933490075Sobrien	(initialize_inlined_parameters): Try to avoid creating new
933590075Sobrien	VAR_DECLs.
933618334Speter
933790075Sobrien2000-04-27  Alex Samuel  <samuel@codesourcery.com>
933818334Speter
933990075Sobrien	* lex.c (my_get_run_time): Remove.
934090075Sobrien	(init_filename_times): Use get_run_time instead of my_get_run_time.
934190075Sobrien	(check_newline): Likewise.
934290075Sobrien	(dump_time_statistics): Likewise.
934390075Sobrien	* decl2.c (finish_file): Push and pop timevar TV_VARCONST instead
934490075Sobrien	of computing elapsed time explicitly.
934518334Speter
934690075Sobrien2000-04-26  Mark Mitchell  <mark@codesourcery.com>
934718334Speter
934890075Sobrien	* cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P.
934990075Sobrien	* init.c (decl_constant_value): Check TREE_READONLY_DECL_P.
935090075Sobrien	* call.c (convert_like_real): Don't test TREE_READONLY_DECL_P
935190075Sobrien	before calling decl_constant_value.
935290075Sobrien	* class.c (check_bitfield_decl): Likewise.
935390075Sobrien	* cvt.c (ocp_convert): Likewise.
935490075Sobrien	(convert): Likewise.
935590075Sobrien	* decl.c (compute_array_index_type): Likewise.
935690075Sobrien	(build_enumerator): Likewise.
935790075Sobrien	* decl2.c (check_cp_case_value): Likewise.
935890075Sobrien	* pt.c (convert_nontype_argument): Likewise.
935990075Sobrien	(tsubst): Likewise.
936090075Sobrien	* typeck.c (decay_conversion): Likewise.
936190075Sobrien	(build_compound_expr): Likewise.
936290075Sobrien	(build_reinterpret_cast): Likewise.
936390075Sobrien	(build_c_cast): Likewise.
936490075Sobrien	(convert_for_assignment): Likewise.
936518334Speter
936690075Sobrien2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
936718334Speter
936890075Sobrien	* decl.c (finish_function): Don't play games with DECL_INLINE.
936918334Speter
937090075Sobrien2000-04-25  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
937118334Speter
937290075Sobrien	* ir.texi: Correct typo.
937318334Speter
937490075Sobrien2000-04-25  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
937518334Speter
937690075Sobrien	* decl.c (grokdeclarator): Reject VLAs as members.
937718334Speter
937890075Sobrien2000-04-24  Gabriel Dos Reis  <gdr@codesourcery.com>
937918334Speter
938090075Sobrien	* call.c (standard_conversion): Accept conversion between
938190075Sobrien	COMPLEX_TYPEs.
938218334Speter
938390075Sobrien	* cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE.
938418334Speter
938590075Sobrien2000-04-24  Zack Weinberg  <zack@wolery.cumb.org>
938618334Speter
938790075Sobrien	* decl2.c (finish_file): Remove double setup for accounting
938890075Sobrien	compile time.
938918334Speter
939090075Sobrien2000-04-24  Robert Lipe <robertlipe@usa.net>
939118334Speter
939290075Sobrien	* cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD.
939318334Speter
939490075Sobrien2000-04-23  Benjamin Kosnik  <bkoz@cygnus.com>
939518334Speter
939690075Sobrien	* new.cc (set_new_handler): Needs to be in std::.
939718334Speter
939890075Sobrien2000-04-23  Mark Mitchell  <mark@codesourcery.com>
939918334Speter
940090075Sobrien	* cp-tree.h (lang_decl): Remove pretty_function_p.
940190075Sobrien	(DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the
940290075Sobrien	language-specific node.
940390075Sobrien	* decl.c (cp_make_fname_decl): Use build_decl, not
940490075Sobrien	build_lang_decl, to build the variables.
940590075Sobrien	(grokvardecl): Don't call build_lang_decl for local variables in
940650397Sobrien	templates.
940790075Sobrien	(grokdeclarator): Don't call build_lang_decl for local type
940890075Sobrien	declarations in templates.
940990075Sobrien	* lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated
941090075Sobrien	zero'd memory, rather than calling memset.
941190075Sobrien	* pt.c: Include hashtab.h.
941290075Sobrien	(local_specializations): New variable.
941390075Sobrien	(retrieve_local_specialization): Use it.
941490075Sobrien	(register_local_specialization): Likewise.
941590075Sobrien	(tsubst_decl): Don't assume local variables have
941690075Sobrien	DECL_LANG_SPECIFIC.
941790075Sobrien	(instantiate_decl): Set up local_specializations.
941890075Sobrien	* Makefile.in (HTAB_H): New variable.
941918334Speter
942090075Sobrien2000-04-23  Richard Henderson  <rth@cygnus.com>
942118334Speter
942290075Sobrien	* typeck.c (c_expand_asm_operands): Restore the original
942390075Sobrien	contents of the output list.
942418334Speter
942590075Sobrien2000-04-22  Gabriel Dos Reis <gdr@codesourcery.com>
942618334Speter
942790075Sobrien	* ir.texi:  Document complex number representation.
942818334Speter
942990075Sobrien2000-04-20  Nathan Sidwell  <nathan@codesourcery.com>
943018334Speter
943190075Sobrien	* rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi.
943290075Sobrien	(target_incomplete_p): New function.
943390075Sobrien	(tinfo_base_init): Create comdat NTBS name variable.
943490075Sobrien	(ptr_initializer): Add non_public parameter. Calculate it.
943590075Sobrien	(ptmd_initializer): Likewise.
943690075Sobrien	(synthesize_tinfo_var): Adjust. Emit incomplete class tinfo.
943790075Sobrien	(create_real_tinfo_var): Add non_public parameter. Use it.
943890075Sobrien	Push proxy into global namespace.
943990075Sobrien	* inc/cxxabi.h (__pointer_type_info::incomplete_class_mask):
944090075Sobrien	New enumeration.
944190075Sobrien	* inc/typeinfo (type_info::before, type_info::operator==):
944290075Sobrien	Compare __name addresses.
944318334Speter
944490075Sobrien	* tinfo2.cc: Remove new-abi builtins comment.
944518334Speter
944690075Sobrien2000-04-20  Jason Merrill  <jason@casey.cygnus.com>
944718334Speter
944890075Sobrien	* typeck.c (build_x_function_call): Resolve an OFFSET_REF.
944918334Speter
945090075Sobrien	* call.c (joust): Exit early if we get the same function, too.
945118334Speter
945290075Sobrien	* decl2.c (key_method): Return NULL_TREE for template classes.
945390075Sobrien	(import_export_class): Don't need to check for template classes.
945418334Speter
945590075Sobrien2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
945618334Speter
945790075Sobrien	* lex.c: Remove references to cccp.c.
945818334Speter
945990075Sobrien2000-04-18  Mark Mitchell  <mark@codesourcery.com>
946018334Speter
946190075Sobrien	* cp-tree.h (lang_decl_flags): Remove const_memfunc and
946290075Sobrien	volatile_memfunc.  Add destructor_attr.  Adjust dummy.
946390075Sobrien	(DECL_DESTRUCTOR_P): Use destructor_attr.
946490075Sobrien	(DECL_CONST_MEMFUNC_P): Reimplement.
946590075Sobrien	(DECL_VOLATILE_MEMFUNC_P): Remove.
946690075Sobrien	* class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS.
946790075Sobrien	(overrides): Use DECL_DESTRUCTOR_P.
946890075Sobrien	(check_for_override): Likewise.
946990075Sobrien	* decl.c (start_function): Likewise.
947090075Sobrien	* decl2.c (grokfclassfn): Likewise.
947190075Sobrien	(check_classfn): Likewise.
947290075Sobrien	(grok_function_init): Likewise.
947318334Speter
947490075Sobrien2000-04-17  Mark Mitchell  <mark@codesourcery.com>
947518334Speter
947690075Sobrien	* decl2.c (grokfield): Issue error on illegal data member
947790075Sobrien	declaration.
947818334Speter
947990075SobrienMon Apr 17 17:11:16 2000  Mark P Mitchell  <mark@codesourcery.com>
948018334Speter
948190075Sobrien	* method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL.
948218334Speter
948390075Sobrien2000-04-16  Mark Mitchell  <mark@codesourcery.com>
948418334Speter
948590075Sobrien	* class.c (build_vtable_entry): Don't build thunks for type-info
948650397Sobrien	functions.
948750397Sobrien
948890075Sobrien2000-04-16  Jason Merrill  <jason@casey.cygnus.com>
948950397Sobrien
949090075Sobrien	* decl.c (decls_match): Allow a redeclaration of a builtin to
949190075Sobrien	specify args while the builtin did not.
949218334Speter
949390075Sobrien2000-04-15  Mark Mitchell  <mark@codesourcery.com>
949418334Speter
949590075Sobrien	* cp-tree.def (THUNK_DECL): Add to documentation.
949690075Sobrien	* cp-tree.h (flag_huge_objects): Declare.
949790075Sobrien	* class.c (modify_vtable_entry): Tidy.
949890075Sobrien	(update_vtable_entry_for_fn): Split out from dfs_modify_vtables.
949990075Sobrien	Calculate delta appropriately for the new ABI.
950090075Sobrien	(dfs_modify_vtables): Use it.
950190075Sobrien	(modify_all_vtables): Fix thinko in code to add overriding copies
950290075Sobrien	of functions to primary vtables.
950390075Sobrien	(build_clone): Fix typo in comment.
950490075Sobrien	(clone_function_decl): Correct order of destructors in vtable.
950590075Sobrien	(build_vbase_offset_vtbl_entries): Adjust comment.
950690075Sobrien	(dfs_vcall_offset_queue_p): Remove.
950790075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX.
950890075Sobrien	(build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases.
950990075Sobrien	(build_vtable_entry): Correct check for pure virtual functions.
951090075Sobrien	Don't declare flag_huge_objects.
951190075Sobrien	* decl.c (flag_huge_objects): Remove declaration.
951290075Sobrien	* method.c (make_thunk): Tweak mangling for vcall offset thunks.
951390075Sobrien	Use int_size_in_bytes.
951490075Sobrien	(emit_thunk): Handle vcall offset thunks.
951518334Speter
951690075SobrienSat Apr 15 16:00:01 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
951718334Speter
951890075Sobrien	* decl2.c (parse_time, varconst_time): Delete declarations.
951990075Sobrien	(finish_file): Delete LINENO declaration.
952090075Sobrien	START_TIME and THIS_TIME now long.
952118334Speter
952290075Sobrien2000-04-13  Nathan Sidwell  <nathan@codesourcery.com>
952318334Speter
952490075Sobrien	* class.c (build_base_field): Reformat comment.
952518334Speter
952690075Sobrien	* inc/cxxabi.h (stddef.h): Comment inclusion.
952790075Sobrien	(__base_class_info::__offset): Comment shift.
952818334Speter
952990075Sobrien2000-04-12  Mark Mitchell  <mark@codesourcery.com>
953018334Speter
953190075Sobrien	* cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro.
953290075Sobrien	(cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER.
953390075Sobrien	(cp_push_exception_identifier): New macro.
953490075Sobrien	(DECL_COMPLETE_DESTRUCTOR_P): New macro.
953590075Sobrien	(DECL_BASE_DESTRUCTOR_P): Likewise.
953690075Sobrien	(DECL_DELETING_DESTRUCTOR_P): Likewise.
953790075Sobrien	(get_vtbl_decl_for_binfo): Fix formatting.
953890075Sobrien	(in_charge_arg_for_name): New macro.
953990075Sobrien	(maybe_build_cleanup_and_delete): Remove declaration.
954090075Sobrien	* call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P.
954190075Sobrien	(in_charge_arg_for_name): New function.
954290075Sobrien	(build_new_method_call): Use it.  Handle cloned destructors.
954390075Sobrien	(build_clone): Don't make the base constructor virtual.
954490075Sobrien	Automatically defer generated functions.
954590075Sobrien	(clone_function_decl): Handle destructors, too.
954690075Sobrien	(clone_constructors_and_destructors): Likewise.
954790075Sobrien	(create_vtable_ptr): Don't create a vtable entry for a cloned
954890075Sobrien	function.
954990075Sobrien	* decl.c (predefined_identifier): Add ctor_or_dtor_p.
955090075Sobrien	(initialize_predefined_identifiers): Update appropriately.
955190075Sobrien	(finish_destructor_body): Simplify.
955290075Sobrien	(maybe_build_cleanup_and_delete): Remove.
955390075Sobrien	* except.c (expand_throw): Handle new-ABI destructors.
955490075Sobrien	* init.c (expand_cleanup_for_base): Use base_dtor_identifier.
955590075Sobrien	(build_dtor_call): New function.
955690075Sobrien	(build_delete): Use it.  Simplify.
955790075Sobrien	* optimize.c (maybe_clone_body): Handle destructors.
955890075Sobrien	* search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P.
955918334Speter
956090075Sobrien	* exception.cc (cleanup_fn): New typedef.
956190075Sobrien	(CALL_CLEANUP): New macro.
956290075Sobrien	(cp_eh_info): Use them.
956390075Sobrien	(__cp_push_exception): Likewise.
956490075Sobrien	(__cp_pop_exception): Likewise.
956518334Speter
956690075Sobrien2000-04-11  Mark Mitchell  <mark@codesourcery.com>
956718334Speter
956890075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER.
956990075Sobrien	(complete_dtor_identifier): New macro.
957090075Sobrien	(CLASSTYPE_FIRST_CONVERSION): Remove.
957190075Sobrien	(CLASSTYPE_CONSTRUCTOR_SLOT): New macro.
957290075Sobrien	(CLASSTYPE_DESTRUCTOR_SLOT): Likewise.
957390075Sobrien	(CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise.
957490075Sobrien	(CLASSTYPE_CONSTRUCTORS): Likewise.
957590075Sobrien	(CLASSTYPE_DESTRUCTORS): Likewise.
957690075Sobrien	(lang_decl): Add cloned_function.
957790075Sobrien	(DECL_COMPLETE_CONSTRUCTOR_P): New macro.
957890075Sobrien	(DECL_BASE_CONSTRUCTOR_P): Likewise.
957990075Sobrien	(DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise.
958090075Sobrien	(DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise.
958190075Sobrien	(DECL_CLONED_FUNCTION_P): Likewise.
958290075Sobrien	(DECL_CLONED_FUNCTION): Likewise.
958390075Sobrien	(clone_function_decl): Declare.
958490075Sobrien	(maybe_clone_body): Likewise.
958590075Sobrien	* call.c (build_user_type_conversion_1): Call complete object
958690075Sobrien	constructors in the new ABI.
958790075Sobrien	(build_new_method_call): Don't add in-charge parameters under the
958890075Sobrien	new ABI.
958990075Sobrien	* class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P,
959090075Sobrien	DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and
959190075Sobrien	CLASSTYPE_DESTRUCTOR_SLOT.
959290075Sobrien	(build_clone): New function.
959390075Sobrien	(clone_function_decl): Likewise.
959490075Sobrien	(clone_constructors_and_destructors): Likewise.
959590075Sobrien	(check_bases_and_members): Use it.
959690075Sobrien	* decl.c (iniitialize_predefined_identifiers): Initialize
959790075Sobrien	complete_dtor_identifier.
959890075Sobrien	(finish_function): Don't add extra code to a clone.
959990075Sobrien	(lang_mark_tree): Mark cloned_function.
960090075Sobrien	* decl2.c (mark_used): Don't bother trying to instantiate things
960190075Sobrien	we synthesized.
960290075Sobrien	* dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice.
960390075Sobrien	* method.c (set_mangled_name_for_decl): Don't treat clones as
960490075Sobrien	constructors.
960590075Sobrien	(synthesize_method): Sythesize cloned functions, not the clones.
960690075Sobrien	* optimize.c (inline_data): Update comment on ret_label.
960790075Sobrien	(remap_block): Don't assume DECL_INITIAL exists.
960890075Sobrien	(copy_body_r): Allow ret_label to be NULL.
960990075Sobrien	(maybe_clone_body): Define.
961090075Sobrien	* pt.c (tsubst_decl): Handle clones.
961190075Sobrien	(instantiate_clone): New function.
961290075Sobrien	(instantiate_template): Use it.
961390075Sobrien	(set_mangled_name_for_template_decl): Don't treat clones as
961490075Sobrien	constructors.
961590075Sobrien	* search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT,
961690075Sobrien	CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT.
961790075Sobrien	* semantics.c (expand_body): Clone function bodies as necessary.
961818334Speter
961990075Sobrien	* optimize.c (remap_decl): Avoid sharing structure for arrays
962090075Sobrien	whose size is only known at run-time.
962190075Sobrien	* tree.c (copy_tree_r): Don't copy PARM_DECLs.
962218334Speter
962390075Sobrien	* cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr
962490075Sobrien	to has_in_charge_parm_p.
962590075Sobrien	(DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ...
962690075Sobrien	(DECL_HAS_IN_CHARGE_PARM_P): ... this.
962790075Sobrien	(DECL_COPY_CONSTRUCTOR_P): New macro.
962890075Sobrien	* call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P.
962990075Sobrien	(build_user_type_conversion_1): Likewise.
963090075Sobrien	(convert_like_real): Likewise.
963190075Sobrien	(build_over_call): Likeiwse.  Use DECL_COPY_CONSTRUCTOR_P.
963290075Sobrien	* decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P.
963390075Sobrien	(copy_args_p): Likewise.
963490075Sobrien	(grok_ctor_properties): Likewise.
963550397Sobrien	(start_function): Likewise.
963690075Sobrien	* decl2.c (maybe_retrofit_in_charge): Likewise.  Set it.
963790075Sobrien	* error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P.
963890075Sobrien	* init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P.
963990075Sobrien	* method.c (do_build_copy_constructor): Use
964090075Sobrien	DECL_HAS_IN_CHARGE_PARM_P.
964190075Sobrien	(synthesize_method): Likewise.
964290075Sobrien	* pt.c (instantiate_template): Remove goto.
964390075Sobrien	* tree.c (build_cplus_method_type): Remove mention of obstacks in
964490075Sobrien	comment.
964550397Sobrien
964690075Sobrien	* cp-tre.h (finish_function): Change prototype.
964790075Sobrien	* decl.c (end_cleanup_fn): Adjust caller.
964890075Sobrien	(finish_function): Take only one parameter.
964990075Sobrien	* decl2.c (finish_objects): Adjust caller.
965090075Sobrien	(finish_static_storage_duration_function): Likewise.
965190075Sobrien	* method.c (emit_thunk): Likewise.
965250397Sobrien	* parse.y: Likewise.
965390075Sobrien	* parse.c: Regenerated.
965490075Sobrien	* pt.c (instantiate_decl): Likewise.
965590075Sobrien	* rtti.c (synthesize_tinfo_fn): Likewise.
965690075Sobrien	* semantics.c (expand_body): Likewise.
965752284Sobrien
965890075Sobrien	* cp-tree.h (copy_decl): New function.
965990075Sobrien	* class.c (finish_struct_1): Use it.
966090075Sobrien	* lex.c (copy_decl): Define it.
966190075Sobrien	* pt.c (tsubst_decl): Likewise.
966290075Sobrien	* tree.c (copy_template_template_parm): Likewise.
966318334Speter
966490075Sobrien	* cp-tree.h (lang_type): Remove has_nonpublic_ctor and
966590075Sobrien	has_nonpublic_assign_ref.
966690075Sobrien	(TYPE_HAS_NONPUBLIC_CTOR): Don't declare.
966790075Sobrien	(TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise.
966890075Sobrien	* class.c (finish_struct_methods): Don't set
966990075Sobrien	TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF.
967090075Sobrien	(interface_only): Don't declare.
967190075Sobrien	(interface_unknown): Likewise.
967218334Speter
967390075Sobrien2000-04-11  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
967418334Speter
967590075Sobrien	* tree.h (HAVE_TEMPLATES): Remove definition.
967690075Sobrien	* lang-options.h (-fthis-is-variable): Remove documentation.
967752284Sobrien
967890075Sobrien2000-04-10  Jason Merrill  <jason@casey.cygnus.com>
967952284Sobrien
968090075Sobrien	* class.c (instantiate_type): Handle object-relative template-id.
968118334Speter
968290075Sobrien	* semantics.c (finish_expr_stmt): Call convert_to_void here.
968390075Sobrien	* decl.c (cplus_expand_expr_stmt): Not here.
968418334Speter
968590075Sobrien	* rtti.c (build_dynamic_cast_1): Call non_lvalue.
968690075Sobrien	Initialize exprtype earlier.
968718334Speter
968890075Sobrien	* parse.y (fn.def1): Check for defining types in return types.
968918334Speter
969090075Sobrien	* decl.c (check_tag_decl): Notice extra fundamental types.
969190075Sobrien	Diagnose empty decls in classes, too.
969218334Speter
969390075Sobrien	* decl.c (grokdeclarator): Don't override an anonymous name if no
969490075Sobrien	declarator was given.
969518334Speter
969690075Sobrien	* cvt.c (convert_to_void): Call resolve_offset_ref.
969718334Speter
969890075Sobrien	* typeck.c (build_x_function_call): Abort if we get an OFFSET_REF.
969918334Speter
970090075Sobrien	* decl2.c (decl_namespace): Handle getting a type.
970118334Speter
970290075Sobrien	* typeck.c (build_c_cast): Re-enable warning for cast between
970390075Sobrien	pointer and integer of different size.
970418334Speter
970590075Sobrien2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
970618334Speter
970790075Sobrien	* inc/cxxabi.h (__pointer_type_info): Add restrict and
970890075Sobrien	incomplete flags.
970990075Sobrien	(__pointer_type_info::__pointer_catch): New virtual function.
971090075Sobrien	(__pointer_to_member_type_info): Derive from
971190075Sobrien	__pointer_type_info. Adjust.
971290075Sobrien	(__pointer_to_member_type_info::__do_catch): Remove.
971390075Sobrien	(__pointer_to_member_type_info::__is_pointer_p): Declare.
971490075Sobrien	(__pointer_to_member_type_info::__pointer_catch): Declare.
971590075Sobrien	* rtti.c (qualifier_flags): Add restrict flag.
971690075Sobrien	(ptmd_initializer): Reorder members.
971790075Sobrien	(create_tinfo_types): Expand comments. Reorder
971890075Sobrien	ptmd_desc_type_node members.
971990075Sobrien	* tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p):
972090075Sobrien	Implement.
972190075Sobrien	(__pointer_type_info::__do_catch): Move specific code into
972290075Sobrien	__pointer_catch. Call it.
972390075Sobrien	(__pointer_type_info::__pointer_catch): Non-pointer-to-member
972490075Sobrien	specific catch checking. Fix void conversion check.
972590075Sobrien	(__pointer_to_member_type_info::__do_catch): Remove.
972690075Sobrien	(__pointer_to_member_type_info::__pointer_catch): Implement.
972718334Speter
972890075Sobrien2000-04-10  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
972918334Speter
973090075Sobrien	* lex.c (init_parse): Remove traces of classof and headof.
973190075Sobrien	* decl2.c (flag_operator_names): Default to 1.
973290075Sobrien	(lang_decode_option): Do not set it for -ansi.
973318334Speter
973490075Sobrien2000-04-09  Mark Mitchell  <mark@codesourcery.com>
973518334Speter
973690075Sobrien	* cp-tree.h (struct lang_decl): Remove main_decl_variant.
973790075Sobrien	(DECL_MAIN_VARIANT): Remove.
973890075Sobrien	* decl.c (duplicate_decls): Don't set it.
973990075Sobrien	(start_function): Likewise.
974090075Sobrien	(lang_mark_tree): Don't mark it.
974190075Sobrien	* decl2.c (defer_fn): Don't use it.
974290075Sobrien	* lex.c (retrofit_lang_decl): Don't set it.
974390075Sobrien	* pt.c (tsubst_decl): Likewise.
974490075Sobrien	* ptree.c (print_lang_decl): Don't print it.
974590075Sobrien	* typeck.c (mark_addressable): Don't use it.
974618334Speter
974790075Sobrien2000-04-09  Nathan Sidwell  <nathan@codesourcery.com>
974818334Speter
974990075Sobrien	* vec.cc: Include <new> and <exception>.
975090075Sobrien	(__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup.
975190075Sobrien	(__cxa_vec_dtor): Catch dtor exceptions, and rethrow or
975290075Sobrien	terminate.
975390075Sobrien	(__cxa_vec_delete): Catch dtor exceptions.
975418334Speter
975590075Sobrien2000-04-09  Nathan Sidwell  <nathan@codesourcery.com>
975618334Speter
975790075Sobrien	Prepend __ to implementation defined names.
975890075Sobrien	* inc/typeinfo (type_info): Rename _name to __name.
975990075Sobrien	(type_info::type_info): Rename parameter.
976090075Sobrien	(type_info::operator==, type_info::operator!=,
976190075Sobrien	type_info::before): Likewise.
976290075Sobrien	(type_info::is_pointer_p, type_info::is_function_p,
976390075Sobrien	type_info::do_catch, type_info::do_upcast): Prepend __. Rename
976490075Sobrien	parameters.
976590075Sobrien	* inc/cxxabi.h
976690075Sobrien	(__fundamental_type_info::__fundamental_type_info) Rename parameters.
976790075Sobrien	(__pointer_type_info::__pointer_type_info): Likewise.
976890075Sobrien	(__pointer_type_info::is_pointer_p,
976990075Sobrien	__pointer_type_info::do_catch): Prepend __. Rename parameters.
977090075Sobrien	(__array_type_info::__array_type_info): Rename parameters.
977190075Sobrien	(__function_type_info::__function_type_info): Likewise.
977290075Sobrien	(__function_type_info::is_function_p): Prepend __.
977390075Sobrien	(__enum_type_info::__enum_type_info): Rename parameters.
977490075Sobrien	(__pointer_to_member_type_info::__pointer_to_member_type_info):
977590075Sobrien	Likewise.
977690075Sobrien	(__pointer_to_member_type_info::do_catch): Prepend __. Rename
977790075Sobrien	parameters.
977890075Sobrien	(__base_class_info::is_virtual_p, is_public_p, offset): Prepend	__.
977990075Sobrien	(__class_type_info::__class_type_info): Rename parameters.
978090075Sobrien	(__class_type_info::sub_kind): Prepend __. Adjust member names.
978190075Sobrien	(__class_type_info::upcast_result,
978290075Sobrien	__class_type_info::dyncast_result): Prepend __. Move definition
978390075Sobrien	into tinfo.cc.
978490075Sobrien	(__class_type_info::do_upcast, __class_type_info::do_catch,
978590075Sobrien	__class_type_info::find_public_src,
978690075Sobrien	__class_type_info::do_dyncast,
978790075Sobrien	__class_type_info::do_find_public_src): Prepend __. Rename
978890075Sobrien	parameters.
978990075Sobrien	(__si_class_type_info::__si_class_type_info): Rename parameters.
979090075Sobrien	(__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast,
979190075Sobrien	__si_class_type_info::do_find_public_src): Prepent __. Rename
979290075Sobrien	parameters.
979390075Sobrien	(__vmi_class_type_info::__vmi_class_type_info): Rename parameters.
979490075Sobrien	(__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast,
979590075Sobrien	__vmi_class_type_info::do_find_public_src): Prepent __. Rename
979690075Sobrien	parameters.
979790075Sobrien	(__dynamic_cast): Rename parameters.
979890075Sobrien	* tinfo.cc (type_info::is_pointer_p, type_info::is_function_p,
979990075Sobrien	type_info::do_catch, type_info::do_upcast): Prepend __.
980090075Sobrien	(contained_p, public_p, virtual_p, contained_public_p,
980190075Sobrien	contained_nonpublic_p, contained_nonvirtual_p): Adjust.
980290075Sobrien	(__class_type_info::do_catch,
980390075Sobrien	__class_type_info::do_upcast): Prepend __. Adjust.
980490075Sobrien	(__class_type_info::__upcast_result,
980590075Sobrien	__class_type_info::__dyncast_result): Move from inc/cxxabi.h.
980690075Sobrien	Adjust.
980790075Sobrien	(__class_type_info::find_public_src): Prepend __. Adjust.
980890075Sobrien	(__class_type_info::do_find_public_src,
980990075Sobrien	__si_class_type_info::do_find_public_src,
981090075Sobrien	__vmi_class_type_info::do_find_public_src): Likewise.
981190075Sobrien	(__class_type_info::do_dyncast,
981290075Sobrien	__si_class_type_info::do_dyncast,
981390075Sobrien	__vmi_class_type_info::do_dyncast): Likewise.
981490075Sobrien	(__class_type_info::do_upcast,
981590075Sobrien	__si_class_type_info::do_upcast,
981690075Sobrien	__vmi_class_type_info::do_upcast): Likewise.
981790075Sobrien	(__dynamic_cast): Adjust.
981890075Sobrien	* tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __.
981990075Sobrien	(__function_type_info::is_function_p): Likewise.
982090075Sobrien	(__pointer_type_info::do_catch): Likewise. Adjust.
982190075Sobrien	(__pointer_to_member_type_info::do_catch): Likewise. Adjust.
982290075Sobrien	(__throw_type_match_rtti_2): Adjust.
982390075Sobrien	(__is_pointer): Adjust.
982418334Speter
982590075Sobrien2000-04-08  Mark Mitchell  <mark@codesourcery.com>
982618334Speter
982790075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER.
982890075Sobrien	(complete_ctor_identifier): New macro.
982990075Sobrien	(special_function_kind): Add sfk_copy_constructor and
983090075Sobrien	sfk_assignment_operator.
983190075Sobrien	(LOOKUP_HAS_IN_CHARGE): Remove.
983290075Sobrien	(cons_up_default_function): Rename to ...
983390075Sobrien	(implicitly_declare_fn): ... this.
983490075Sobrien	* call.c (build_new_method_call): Add in-charge parameters for
983590075Sobrien	constructors here.
983690075Sobrien	* class.c (add_implicitly_declared_members): Change parameter name
983790075Sobrien	from cant_have_assignment to cant_have_const_assignment.
983890075Sobrien	Replace calls to cons_up_default_function to implicitly_declare_fn.
983990075Sobrien	* cvt.c (ocp_convert): Use complete_ctor_identifier.
984090075Sobrien	* decl.c (initialize_predefined_identifiers): Initialize it.
984190075Sobrien	(start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of
984290075Sobrien	complex expression.
984390075Sobrien	* init.c (expand_default_init): Don't calculate the in-charge
984490075Sobrien	parameter here.
984590075Sobrien	(build_new_1): Likewise.
984690075Sobrien	* lex.c (cons_up_default_function): Move to method.c.
984790075Sobrien	* method.c (synthesize_method): Use DECL_DESTRUCTOR_P.
984890075Sobrien	(implicitly_declare_fn): New function.
984990075Sobrien	* typeck.c (build_static_cast): Use complete_ctor_identifier.
985090075Sobrien	(build_modify_expr): Likewise.
985190075Sobrien	* typeck2.c (build_functional_cast): Likewise.
985218334Speter
985390075Sobrien	Under the new ABI, constructors don't return `this'.
985490075Sobrien	* cp-tree.h (warn_reorder): Declare.
985590075Sobrien	(special_function_kind): New enum.
985690075Sobrien	(global_base_init_list): Remove declaration.
985790075Sobrien	(emit_base_init): Don't return a value.
985890075Sobrien	(check_base_init): Don't declare.
985990075Sobrien	(is_aggr_typedef): Likewise.
986090075Sobrien	* decl.c (check_special_function_return_type): New function.
986190075Sobrien	(return_types): Remove.
986290075Sobrien	(grokdeclarator): Use check_special_function_return_type.
986390075Sobrien	(start_function): Don't initialize ctor_label under the new ABI.
986490075Sobrien	(finish_construtor_body): Don't create a corresponding LABEL_STMT.
986590075Sobrien	* init.c (begin_init_stmts): Move to top of file.
986690075Sobrien	(finish_init_stmts): Likewise.
986790075Sobrien	(warn_reorder): Don't declare.
986890075Sobrien	(emit_base_init): Don't create a STMT_EXPR here.  Don't return a
986990075Sobrien	value.
987090075Sobrien	(check_base_init): Remove.
987190075Sobrien	(is_aggr_typedef): Likewise.
987290075Sobrien	(build_new_1): Don't use the return value of a constructor.
987390075Sobrien	* semantics.c (setup_vtbl_ptr): Don't use the return value
987490075Sobrien	of emit_base_init.
987590075Sobrien	* typeck.c (check_return_expr): Don't magically convert return
987690075Sobrien	statements into `return this' in constructors under the new ABI.
987718334Speter
987890075Sobrien	* cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER,
987990075Sobrien	CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER.
988090075Sobrien	(base_ctor_identifier): New macro.
988190075Sobrien	(base_dtor_identifier): Likewise.
988290075Sobrien	(deleting_dtor_identifier): Likewise.
988390075Sobrien	* decl.c: Don't include obstack.h.
988490075Sobrien	(obstack_chunk_alloc): Don't define.
988590075Sobrien	(obstack_chunk_free): Likewise.
988690075Sobrien	(struct predefined_identifier): New type.
988790075Sobrien	(initialize_predefined_identifiers): New function.
988890075Sobrien	(init_decl_processing): Use it.
988990075Sobrien	(debug_temp_inits): Remove.
989090075Sobrien	(start_method): Don't call preserve_data.
989190075Sobrien	(hack_incomplete_structures): Update comment.
989290075Sobrien	* init.c (init_init_processing): Don't initialize
989390075Sobrien	nelts_identifier.
989490075Sobrien	(build_offset_rf): Remove dead code.
989590075Sobrien	(build_delete): Use CLASSTYPE_N_BASECLASSES.
989690075Sobrien	* search.c (init_search_processing): Don't initialize
989790075Sobrien	vptr_identifier.
989818334Speter
989990075Sobrien2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
990018334Speter
990190075Sobrien	* typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide
990290075Sobrien	some sign_compare warnings.
990318334Speter
990490075Sobrien2000-04-07  Nathan Sidwell  <nathan@codesourcery.com>
990518334Speter
990690075Sobrien	Rename abi::__vmi_class_type_info members.
990790075Sobrien	* inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases,
990890075Sobrien	base_list, detail_masks members to vmi_flags, vmi_base_count,
990990075Sobrien	vmi_bases and vmi_flags_masks respectively.
991090075Sobrien	(__vmi_class_type_info::vmi_flags_masks): Rename
991190075Sobrien	details_unknown_mask to flags_unknown_mask.
991290075Sobrien	* tinfo.cc (__class_type_info::do_upcast): Adjust.
991390075Sobrien	(__vmi_class_type_info::do_find_public_src): Adjust.
991490075Sobrien	(__vmi_class_type_info::do_dyncast): Adjust.
991590075Sobrien	(__vmi_class_type_info::do_upcast): Adjust.
991618334Speter
991790075Sobrien2000-04-07  Nathan Sidwell  <nathan@codesourcery.com>
991818334Speter
991990075Sobrien	* tinfo.cc (convert_to_base): New function.
992090075Sobrien	(get_vbase_offset): Remove. Move into convert_to_base.
992190075Sobrien	(__vmi_class_type_info::do_find_public_src): Adjust.
992290075Sobrien	(__vmi_class_type_info::do_dyncast): Adjust.
992390075Sobrien	(__vmi_class_type_info::do_upcast): Adjust.
992418334Speter
992590075Sobrien2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
992618334Speter
992790075Sobrien	* tinfo.cc (operator=): Use __builtin_strcmp.
992890075Sobrien	* tinfo2.cc (before): Likewise.
992918334Speter
993090075Sobrien2000-04-06  Mark Mitchell  <mark@codesourcery.com>
993118334Speter
993290075Sobrien	* cp-tree.h (lang_decl_flags): Rename saved_inline to deferred.
993390075Sobrien	(DECL_SAVED_INLINE): Rename to ...
993490075Sobrien	(DECL_DEFERRED_FN): ... this.
993590075Sobrien	(in_function_p): Remove declaration.
993690075Sobrien	(mark_inline_for_output): Rename to ...
993790075Sobrien	(defer_fn): ... this.
993890075Sobrien	* decl.c (finish_function): Adjust call to mark_inline_for_output.
993990075Sobrien	(in_function_p): Remove definition.
994090075Sobrien	* decl2.c (saved_inlines): Rename to ...
994190075Sobrien	(deferred_fns): ... this.
994290075Sobrien	(saved_inlines_used): Rename to ...
994390075Sobrien	(deferred_fns_used): ... this.
994490075Sobrien	(mark_inline_for_output): Rename to ...
994590075Sobrien	(defer_fn): ... this.
994690075Sobrien	(finish_file): Adjust accordingly.
994790075Sobrien	(init_decl2): Likewise.
994890075Sobrien	* lex.c (cons_up_default_function): Likewise.
994990075Sobrien	* pt.c (mark_decl_instantiated): Likewise.
995090075Sobrien	(instantiate_decl): Don't set DECL_DEFER_OUTPUT under any
995190075Sobrien	circumstances.
995290075Sobrien	* rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output.
995390075Sobrien	* semantics.c (expand_body): Defer more functions.
995418334Speter
995590075Sobrien2000-04-06  Nathan Sidwell  <nathan@codesourcery.com>
995618334Speter
995790075Sobrien	* vec.cc: New file.
995890075Sobrien	* Make-lang.in (CXX_LIB2FUNCS): Add it.
995990075Sobrien	(vec.o): Build it.
996090075Sobrien	* inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
996190075Sobrien	__cxa_vec_delete): Declare.
996218334Speter
996390075Sobrien2000-04-06  Nathan Sidwell  <nathan@codesourcery.com>
996418334Speter
996590075Sobrien	* rtti.c (dfs_class_hint_mark): New static function.
996690075Sobrien	(dfs_class_hint_unmark): New static function.
996790075Sobrien	(class_hint_flags): Use them.
996818334Speter
996990075Sobrien2000-04-05  Benjamin Kosnik  <bkoz@cygnus.com>
997018334Speter
997190075Sobrien	* decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE.
997218334Speter
997390075Sobrien2000-04-05  Mark Mitchell  <mark@codesourcery.com>
997418334Speter
997590075Sobrien	* cp-tree.h (instantiate_decl): Change prototype.
997690075Sobrien	* decl2.c (mark_used): Adjust call.
997790075Sobrien	* optimize.c (inlinable_function_p): Adjust handling of templates.
997890075Sobrien	* pt.c (do_decl_instantiation): Adjust call to instantiate_decl.
997990075Sobrien	(do_type_instantiation): Likewise.
998090075Sobrien	(instantiate_decl): Defer more templates.
998190075Sobrien	(instantiate_pending_templates): Adjust logic to handle inline
998290075Sobrien	friend functions.
998318334Speter
998490075Sobrien	* Makefile.in (GGC_H): New variable.  Use it throughout in place
998590075Sobrien	of ggc.h.
998618334Speter
998790075Sobrien	* call.c: Don't include obstack.h.  Include ggc.h.
998890075Sobrien	(obstack_chunk_alloc): Don't define.
998990075Sobrien	(obstack_chunk_free): Likewise.
999090075Sobrien	(add_candidate): Allocate the z_candidate with ggc_alloc_obj.
999190075Sobrien	* decl.c (push_switch): Use xmalloc to allocate the cp_switch.
999290075Sobrien	(pop_switch): Free it.
999318334Speter
999490075Sobrien	* decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs.
999518334Speter
999690075Sobrien	* dump.c (dequeue_and_dump): Don't try to print the bit_position
999790075Sobrien	if we don't have a DECL_FIELD_OFFSET.
999818334Speter
999990075SobrienWed Apr  5 15:12:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1000018334Speter
1000190075Sobrien	* optimize.c (calls_setjmp_r): Use setjmp_call_p instead of
1000290075Sobrien	special_function_p.
1000318334Speter
1000490075Sobrien2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1000518334Speter
1000690075Sobrien	* cfns.gperf (hash, libc_name_p): Prototype.
1000718334Speter
1000890075Sobrien	* rtti.c (build_dynamic_cast_1): Constification.
1000918334Speter
1001090075Sobrien	* search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes.
1001118334Speter
1001290075Sobrien	* semantics.c (deferred_type_access_control): Prototype.
1001318334Speter
1001490075Sobrien2000-04-04  Mark Mitchell  <mark@codesourcery.com>
1001518334Speter
1001690075Sobrien	Correct many new ABI issues regarding vbase and vcall offset
1001790075Sobrien	layout.
1001890075Sobrien	* cp-tree.h (BINFO_VTABLE): Document.
1001990075Sobrien	(struct lang_type): Tweak formatting.
1002090075Sobrien	(BINFO_PRIMARY_BINFO): Add to documentation.
1002190075Sobrien	(CLASSTYPE_VSIZE): Fix typo in comment.
1002290075Sobrien	(CLASSTYPE_VBASECLASSES): Update documentation.
1002390075Sobrien	(BINFO_VBASE_MARKED): Remove.
1002490075Sobrien	(SET_BINFO_VBASE_MARKED): Likewise.
1002590075Sobrien	(CLEAR_BINFO_VBASE_MARKED): Likewise.
1002690075Sobrien	(BINFO_FIELDS_MARKED): Remove.
1002790075Sobrien	(SET_BINFO_FIELDS_MARKED): Likewise.
1002890075Sobrien	(CLEAR_BINFO_FIELDS_MARKED): Likewise.
1002990075Sobrien	(enum access_kind): New enumeration.
1003090075Sobrien	(num_extra_vtbl_entries): Remove declaration.
1003190075Sobrien	(size_extra_vtbl_entries): Likewise.
1003290075Sobrien	(get_vtbl_decl_for_binfo): New function.
1003390075Sobrien	(dfs_vbase_unmark): Remove declaration.
1003490075Sobrien	(mark_primary_bases): Likewise.
1003590075Sobrien	* class.c (SAME_FN): Remove.
1003690075Sobrien	(struct vcall_offset_data_s): Move definition.
1003790075Sobrien	(build_vbase_pointer): Use `build', not `build_binary_op', to
1003890075Sobrien	access the vbase pointer under the new ABI.
1003990075Sobrien	(build_vtable_entry_ref): Use get_vtbl_decl_for_binfo.
1004090075Sobrien	(build_primary_vtable): Likewise.
1004190075Sobrien	(dfs_mark_primary_bases): Move here from search.c.
1004290075Sobrien	(mark_primary_bases): Likewise.
1004390075Sobrien	(determine_primary_bases): Under the new ABI, don't make a base
1004490075Sobrien	class a primary base just because we don't yet have any virtual
1004590075Sobrien	functions.
1004690075Sobrien	(layout_vtable_decl): Use get_vtbl_decl_for_binfo.
1004790075Sobrien	(num_vfun_entries): Remove.
1004890075Sobrien	(dfs_count_virtuals): Likewise.
1004990075Sobrien	(num_extra_vtbl_entries): Likewise.
1005090075Sobrien	(size_extra_vtbl_entries): Likewise.
1005190075Sobrien	(layout_virtual_bases): Iterate in inheritance graph order under
1005290075Sobrien	the new ABI.
1005390075Sobrien	(finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to
1005490075Sobrien	indicate that a vfield is present.
1005590075Sobrien	(init_class_processing): Initialize access_public_node, etc., from
1005690075Sobrien	ak_public, etc.
1005790075Sobrien	(get_vtbl_decl_for_binfo): New function.
1005890075Sobrien	(dump_class_hierarchy_r): Likewise.
1005990075Sobrien	(dump_class_hierarchy): Use it.
1006090075Sobrien	(finish_vtbls): Build the vtbls in inheritance graph order.
1006190075Sobrien	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
1006290075Sobrien	(initialize_vtable): Use get_vtbl_decl_for_binfo.
1006390075Sobrien	(accumulate_vtbl_inits): Add comments explaining why a pre-order
1006490075Sobrien	walk is required.
1006590075Sobrien	(dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location
1006690075Sobrien	where the vptr points, even for primary vtables.
1006790075Sobrien	(build_vtbl_initializer): Adjust handling of vbase and vcall
1006890075Sobrien	offsets.
1006990075Sobrien	(build_vcall_and_vbase_vtable_entries): New function.
1007090075Sobrien	(dfs_build_vbase_offset_vtbl_entries): Remove.
1007190075Sobrien	(build_vbase_offset_vtbl_entries): Reimplement.
1007290075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that
1007390075Sobrien	were already handled in a primary base class vtable.
1007490075Sobrien	(build_vcall_offset_vtbl_entries): Adjust.
1007590075Sobrien	(build_rtti_vtbl_entries): Adjust.
1007690075Sobrien	* decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo.
1007790075Sobrien	* init.c (expand_virtual_init): Simplify.
1007890075Sobrien	* repo.c (repo_get_id): Use get_vtbl_decl_for_binfo.
1007990075Sobrien	* rtti.c (create_pseudo_type_info): Adjust calculation of vptr.
1008090075Sobrien	* search.c (BINFO_ACCESS): New macro.
1008190075Sobrien	(SET_BINFO_ACCESS): Likewise.
1008290075Sobrien	(dfs_access_in_type): Manipulate access_kinds, not access nodes.
1008390075Sobrien	(access_in_type): Likewise.
1008490075Sobrien	(dfs_accessible_p): Likewise.
1008590075Sobrien	(protected_accessible_p): Likewise.
1008690075Sobrien	(lookup_fnfields_1): Adjust documentation.
1008790075Sobrien	(dfs_mark_primary_bases): Move to class.c
1008890075Sobrien	(mark_primary_bases): Likewise.
1008990075Sobrien	(dfs_vbase_unmark): Remove.
1009090075Sobrien	(virtual_context): Use BINFO_FOR_VBASE.
1009190075Sobrien	(dfs_get_vbase_types): Simplify.
1009290075Sobrien	(dfs_build_inheritance_graph_order): New function.
1009390075Sobrien	(get_vbase_types): Use it.
1009490075Sobrien	* tree.c (debug_binfo): Use get_vtbl_decl_for_binfo.
1009518334Speter
1009690075Sobrien	* tinfo.cc (get_vbase_offset): New function.
1009790075Sobrien	(__vmi_class_type_info::do_find_public_src): Use it.
1009890075Sobrien	(__vmi_class_type_info::do_dyncast): Likewise.
1009990075Sobrien	(__vmi_class_type_info::do_upcast): Likewise.
1010018334Speter
1010190075Sobrien2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
1010218334Speter
1010390075Sobrien	* lang-specs.h: Pass -fno-show-column to the preprocessor.
1010418334Speter
1010590075Sobrien2000-03-30  Nathan Sidwell  <nathan@codesourcery.com>
1010618334Speter
1010790075Sobrien	* rtti.c (class_hint_flags): Rename flags.
1010890075Sobrien	(class_initializer): Remove flags.
1010990075Sobrien	(synthesize_tinfo_var): Combine offset and flags. Add flags
1011090075Sobrien	for __vmi_class_type_info.
1011190075Sobrien	(create_tinfo_types): Remove flags from __class_type_info and
1011290075Sobrien	__si_class_type_info. Merge flags and offset from
1011390075Sobrien	base_class_type_info.
1011490075Sobrien	* inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags.
1011590075Sobrien	(__base_class_info::is_virtual_p): Adjust.
1011690075Sobrien	(__base_class_info::is_public_p): Adjust.
1011790075Sobrien	(__base_class_info::offset): New accessor.
1011890075Sobrien	(__class_type_info::details): Remove member.
1011990075Sobrien	(__class_type_info::__class_type_info): Lose details.
1012090075Sobrien	(__class_type_info::detail_masks): Remove.
1012190075Sobrien	(__si_class_type_info::__si_class_type_info): Lose details.
1012290075Sobrien	(__vmi_class_type_info::details): New member.
1012390075Sobrien	(__vmi_class_type_info::__vmi_class_type_info): Adjust.
1012490075Sobrien	(__vmi_class_type_info::detail_masks): New member.
1012590075Sobrien	* tinfo.cc (__class_type_info::do_upcast): Initialize result
1012690075Sobrien	with unknown_details_mask.
1012790075Sobrien	(__vmi_class_type_info::do_find_public_src): Adjust
1012890075Sobrien	(__vmi_class_type_info::do_dyncast): Adjust.
1012990075Sobrien	(__vmi_class_type_info::do_upcast): Set result details, if
1013090075Sobrien	needed. Adjust.
1013190075Sobrien	(__dynamic_cast): Temporarily #if out optimization.
1013218334Speter
1013390075Sobrien2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
1013418334Speter
1013590075Sobrien	* rtti.c (get_tinfo_decl): Mark used.
1013690075Sobrien	(emit_tinfo_decl): Don't optimize polymorphic type_info. Only
1013790075Sobrien	mark as dealt with, if we output it.
1013818334Speter
1013990075Sobrien2000-03-28  Mark Mitchell  <mark@codesourcery.com>
1014018334Speter
1014190075Sobrien	* class.c: Reorganize to put virtual function table initialization
1014290075Sobrien	machinery at the end of the file.
1014318334Speter
1014490075Sobrien2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
1014518334Speter
1014690075Sobrien	* class.c (finish_struct): Use bitsize_zero_node.
1014790075Sobrien	* pt.c (instantiate_class_template): Likewise.
1014818334Speter
1014990075Sobrien2000-03-28  Mark Mitchell  <mark@codesourcery.com>
1015018334Speter
1015190075Sobrien	Put RTTI entries at negative offsets in new ABI.
1015290075Sobrien	* class.c (dfs_build_vbase_offset_vtbl_entries): Put the first
1015390075Sobrien	vbase offset at index -3, not -1.
1015490075Sobrien	(build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not
1015590075Sobrien	dfs_vtable_path_unmarked_real_bases_queue_p to walk bases.
1015690075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff.
1015790075Sobrien	(build_rtti_vtbl_entries): New function.
1015890075Sobrien	(set_rtti_entry): Remove.
1015990075Sobrien	(build_primary_vtable): Don't use it.
1016090075Sobrien	(build_secondary_vtable): Likewise.
1016190075Sobrien	(start_vtable): Remove.
1016290075Sobrien	(first_vfun_index): New function.
1016390075Sobrien	(set_vindex): Likewise.
1016490075Sobrien	(add_virtual_function): Don't call start_vtable.  Do call
1016590075Sobrien	set_vindex.
1016690075Sobrien	(set_primary_base): Rename parameter.
1016790075Sobrien	(determine_primary_base): Likewise.
1016890075Sobrien	(num_vfun_entries): Don't use skip_rtti_stuff.
1016990075Sobrien	(num_extra_vtbl_entries): Include RTTI information.
1017090075Sobrien	(build_vtbl_initializer): Use build_rtti_vtbl_entries.
1017190075Sobrien	(skip_rtti_stuff): Remove.
1017290075Sobrien	(dfs_modify_vtables): Don't use it.
1017390075Sobrien	(modify_all_vtables): Don't use start_vtable.  Do use set_vindex.
1017490075Sobrien	(layout_nonempty_base_or_field): Update size handling.
1017590075Sobrien	(create_vtable_ptr): Tweak.
1017690075Sobrien	(layout_class_type): Adjust parameter names.
1017790075Sobrien	(finish_struct_1): Simplify.
1017890075Sobrien	* cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation.
1017990075Sobrien	(skip_rtti_stuff): Remove.
1018090075Sobrien	(first_vfun_index): New function.
1018190075Sobrien	(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
1018290075Sobrien	(dfs_vtable_path_marked_real_bases_queue_p): Remove.
1018390075Sobrien	(marked_vtable_pathp): Declare.
1018490075Sobrien	(unmarked_vtable_pathp): Likewise.
1018590075Sobrien	* error.c (dump_expr): Use first_vfun_index to calculate vtable
1018690075Sobrien	offsets.
1018790075Sobrien	* rtti.c (build_headof): Look for RTTI at negative offsets.
1018890075Sobrien	(get_tinfo_decl_dynamic): Likewise.
1018990075Sobrien	(tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL
1019090075Sobrien	here.
1019190075Sobrien	(create_pseudo_type_info): Do it here instead.  Adjust so that
1019290075Sobrien	vptr points at first virtual function.
1019390075Sobrien	* search.c (marked_vtable_pathp): Make it global.
1019490075Sobrien	(unmarked_vtable_pathp): Likewise.
1019590075Sobrien	(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
1019690075Sobrien	(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
1019790075Sobrien	(dfs_get_pure_virtuals): Don't use skip_rtti_stuff.
1019890075Sobrien	(get_pure_virtuals): Likewise.
1019990075Sobrien	(expand_upcast_fixups): Likewise.
1020090075Sobrien	* tree.c (debug_binfo): Likewise.
1020190075Sobrien	* tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate
1020290075Sobrien	negative offset.
1020318334Speter
1020490075SobrienSun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1020518334Speter
1020690075Sobrien	* class.c (check_field_decl): Fix typo.
1020790075Sobrien	(build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS.
1020890075Sobrien	(check_methods): Likewise.
1020990075Sobrien	(check_field_decls): Likewise.
1021090075Sobrien	Use DECL_CONTEXT, not DECL_FIELD_CONTEXT.
1021190075Sobrien	* cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT):
1021290075Sobrien	Use DECL_RESULT_FLD, not DECL_RESULT.
1021390075Sobrien	* decl.c (xref_tag): Use DECL_TEMPLATE_RESULT.
1021490075Sobrien	* lex.c (identifier_type): Likewise.
1021590075Sobrien	* pt.c (determine_specialization, lookup_template_class): Likewise.
1021690075Sobrien	(tsubst_friend_function, tsubst_decl, instantiate_template): Likewise.
1021790075Sobrien	(resolve_overloaded_unification, more_specialized): Likewise.
1021890075Sobrien	* semantics.c (finish_member_declaration): Likewise.
1021990075Sobrien	* typeck.c (build_x_function_call): Likewise.
1022018334Speter
1022190075Sobrien2000-03-26  Mark Mitchell  <mark@codesourcery.com>
1022218334Speter
1022390075Sobrien	* class.c (layout_empty_base): Handle empty bases with non-byte
1022490075Sobrien	alignment.
1022590075Sobrien	(build_base_field): Likewise.
1022690075Sobrien	(layout_virtual_bases): Likewise.
1022718334Speter
1022890075Sobrien	* class.c (finish_struct_1): Fix typo in this change:
1022918334Speter
1023090075Sobrien	Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1023118334Speter
1023290075Sobrien2000-03-25  Mark Mitchell  <mark@codesourcery.com>
1023318334Speter
1023490075Sobrien	* decl.c (grokdeclarator): Count partial specializations when
1023590075Sobrien	keeping track of how many template classes have been seen.
1023618334Speter
1023790075Sobrien	* dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT.
1023818334Speter
1023990075SobrienSat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1024018334Speter
1024190075Sobrien	* class.c (build_vbase_pointer_fields): layout_field now place_field.
1024290075Sobrien	(get_vfield_offset): Use byte_position.
1024390075Sobrien	(set_rtti_entry): Set OFFSET to ssizetype zero.
1024490075Sobrien	(get_binfo_offset_as_int): Deleted.
1024590075Sobrien	(dfs_record_base_offsets): Use tree_low_cst.
1024690075Sobrien	(dfs_search_base_offsets): Likewise.
1024790075Sobrien	(layout_nonempty_base_or_field): Reflect changes in RLI format
1024890075Sobrien	and call byte_position.
1024990075Sobrien	(layout_empty_base): Convert offset to ssizetype.
1025090075Sobrien	(build_base_field): use rli_size_unit_so_far.
1025190075Sobrien	(dfs_propagate_binfo_offsets): Do computation in proper type.
1025290075Sobrien	(layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets.
1025390075Sobrien	(layout_class_type): Reflect changes in RLI names and fields.
1025490075Sobrien	(finish_struct_1): Set DECL_FIELD_OFFSET.
1025590075Sobrien	* dump.c (dequeue_and_dump): Call bit_position.
1025690075Sobrien	* expr.c (cplus_expand_constant): Use byte_position.
1025790075Sobrien	* rtti.c (expand_class_desc): Use bitsize_one_node.
1025890075Sobrien	* typeck.c (build_component_addr): Use byte_position and don't
1025990075Sobrien	special case for zero offset.
1026018334Speter
1026190075Sobrien2000-03-24  Nathan Sidwell  <nathan@codesourcery.com>
1026218334Speter
1026390075Sobrien	* decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P.
1026418334Speter
1026590075Sobrien	* rtti.c (get_tinfo_decl): Set comdat linkage on new-abi
1026690075Sobrien	tinfo object.
1026790075Sobrien	(emit_tinfo_decl): Only emit polymorphic tinfo's when emitting
1026890075Sobrien	vtable.
1026918334Speter
1027090075Sobrien2000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1027118334Speter
1027290075Sobrien	* call.c (check_dtor_name, build_new_method_call): Use TYPE_P and
1027390075Sobrien	DECL_P macros.
1027490075Sobrien	* decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name,
1027590075Sobrien	make_typename_type, check_initializer, cp_finish_decl,
1027690075Sobrien	xref_tag): Likewise.
1027790075Sobrien	* decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree,
1027890075Sobrien	decl_namespace, arg_assoc_template_arg, arg_assoc,
1027990075Sobrien	validate_nonmember_using_decl, do_class_using_decl): Likewise.
1028090075Sobrien	* error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of,
1028190075Sobrien	args_to_string): Likewise.
1028290075Sobrien	* friend.c (is_friend): Likewise.
1028390075Sobrien	* lex.c (note_got_semicolon, note_list_got_semicolon,
1028490075Sobrien	is_global): Likewise.
1028590075Sobrien	* method.c (build_overload_nested_name, build_overload_value,
1028690075Sobrien	build_qualified_name, build_qualified_name, hack_identifier): Likewise.
1028790075Sobrien	* parse.y (typename_sub, typename_sub1): Likewise.
1028890075Sobrien	* pt.c (push_inline_template_parms_recursive, check_template_shadow,
1028990075Sobrien	process_partial_specialization, convert_template_argument,
1029090075Sobrien	template_args_equal, add_pending_template, lookup_template_class,
1029190075Sobrien	for_each_template_parm_r, maybe_fold_nontype_arg,
1029290075Sobrien	tsubst, instantiate_template, type_unification_real, unify,
1029390075Sobrien	instantiate_pending_templates, set_mangled_name_for_template_decl):
1029490075Sobrien	Likewise.
1029590075Sobrien	* repo.c (repo_get_id, repo_template_used): Likewise.
1029690075Sobrien	* search.c (lookup_field_1): Likewise.
1029790075Sobrien	* tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise.
1029890075Sobrien	* xref.c (classname): Likewise.
1029918334Speter
1030090075Sobrien2000-03-22  Mark Mitchell  <mark@codesourcery.com>
1030118334Speter
1030290075Sobrien	* cp-tree.h (BINFO_FOR_VBASE): Adjust documentation.
1030390075Sobrien	(CANONICAL_BINFO): New macro.
1030490075Sobrien	(BINFO_NEW_VTABLE_MARKED): Use it.
1030590075Sobrien	(SET_BINFO_NEW_VTABLE_MARKED): Likewise.
1030690075Sobrien	(CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise.
1030790075Sobrien	* class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE,
1030890075Sobrien	not TREE_TYPE.
1030990075Sobrien	(build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED.
1031090075Sobrien	(build_secondary_vtable): Likewise.
1031190075Sobrien	(dfs_finish_vtbls): Likewise.
1031290075Sobrien	(dfs_accumulate_vtbl_inits): Likewise.
1031390075Sobrien	(accumulate_vtbl_inits): New function.
1031490075Sobrien	(finish_vtbls): Make sure that virtual bases come after
1031590075Sobrien	non-virtual bases in the vtable group.
1031690075Sobrien	(record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL.
1031790075Sobrien	(finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED.
1031890075Sobrien	* search.c (struct vbase_info): Move definition.
1031990075Sobrien	(marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED.
1032090075Sobrien	(unmarked_new_vtable_p): Likewise.
1032190075Sobrien	(dfs_mark_vtable_path): Remove.
1032290075Sobrien	(dfs_mark_new_vtable): Remove.
1032390075Sobrien	(dfs_unmark_new_vtable): Likewise.
1032490075Sobrien	(dfs_clear_search_slot): Likewise.
1032590075Sobrien	(dfs_find_vbases):  Adjust usage of BINFO_NEW_VTABLE_MARKED.
1032690075Sobrien	(dfs_clear_vbase_slots): Likewise.
1032790075Sobrien	(init_vbase_pointers): LIkewise.
1032818334Speter
1032990075Sobrien2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
1033018334Speter
1033190075Sobrien	* typeck.c (type_after_usual_arithmetic_conversions): Prefer a
1033290075Sobrien	SIZETYPE to a non-SIZETYPE.
1033318334Speter
1033490075Sobrien2000-03-21  Mark Mitchell  <mark@codesourcery.com>
1033518334Speter
1033690075Sobrien	* class.c (layout_virtual_bases): Adjust names in conditionally
1033790075Sobrien	compiled code.
1033818334Speter
1033990075Sobrien	* class.c (record_base_offsets): New function.
1034090075Sobrien	(layout_conflict_p): Likewise.
1034190075Sobrien	(layout_nonempty_base_or_field): Use it.
1034290075Sobrien	(layout_empty_base): New function.
1034390075Sobrien	(build_base_field): Use it.
1034490075Sobrien	(build_base_fields): Update comment.
1034590075Sobrien	(layout_virtual_bases): Fold in a little code form
1034690075Sobrien	layout_basetypes.  Use layout_empty_base.
1034790075Sobrien	(layout_basetypes): Remove.
1034890075Sobrien	(end_of_class): New function.
1034990075Sobrien	(layout_class_type): Use it.  Adjust.
1035018334Speter
1035190075Sobrien	* cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment.
1035290075Sobrien	(fntype_p): Remove.
1035390075Sobrien	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in
1035490075Sobrien	comment.
1035590075Sobrien	(dfs_skip_nonprimary_vbases_markedp): Likewise.
1035690075Sobrien	* typeck.c (fntype_p): Remove.
1035718334Speter
1035890075Sobrien	* cp-tree.h (TI_SPEC_INFO): Remove.
1035990075Sobrien	(CLASSTYPE_TI_SPEC_INFO): Likewise.
1036090075Sobrien	* pt.c (process_partial_specialization): Likewise.
1036118334Speter
1036290075Sobrien	* class.c (build_base_field): Fix thinko in computation of binfo
1036390075Sobrien	offsets.
1036418334Speter
1036590075Sobrien	* tree.c (mark_local_for_remap_p): Mark variables declared in
1036690075Sobrien	TARGET_EXPRs as well.
1036718334Speter
1036890075Sobrien2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1036918334Speter
1037090075Sobrien	* typeck.c (require_complete_type, complete_type,
1037190075Sobrien	complete_type_or_else, c_sizeof, c_sizeof_nowarn,
1037290075Sobrien	build_array_ref, convert_arguments, pointer_diff,
1037390075Sobrien	build_x_unary_op, build_unary_op, build_c_cast,
1037490075Sobrien	build_modify_expr): Use COMPLETE_TYPE_P etc.
1037590075Sobrien	* call.c (is_complete, convert_like_real,
1037690075Sobrien	build_new_method_call): Likewise.
1037790075Sobrien	* class.c (build_vbase_pointer_fields, check_bases,
1037890075Sobrien	build_base_field, finish_struct_1, pushclass): Likewise.
1037990075Sobrien	* cvt.c (cp_convert_to_pointer, convert_to_void): Likewise.
1038090075Sobrien	* decl.c (maybe_process_template_type_declaration, pushtag,
1038190075Sobrien	pushdecl, redeclaration_error_message, start_decl, start_decl_1,
1038290075Sobrien	layout_var_decl, check_initializer, cp_finish_decl,
1038390075Sobrien	grokdeclarator, require_complete_types_for_parms,
1038490075Sobrien	grok_op_properties, xref_tag, xref_basetypes,
1038590075Sobrien	check_function_type): Likewise.
1038690075Sobrien	* decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise.
1038790075Sobrien	* friend.c (do_friend): Likewise.
1038890075Sobrien	* init.c (build_offset_ref): Likewise.
1038990075Sobrien	* parse.y (structsp): Likewise.
1039090075Sobrien	* pt.c (maybe_process_partial_specialization,
1039190075Sobrien	tsubst_friend_function, instantiate_class_template, tsubst,
1039290075Sobrien	do_type_instantiation, instantiate_pending_templates): Likewise.
1039390075Sobrien	* repo.c (repo_get_id): Likewise.
1039490075Sobrien	* rtti.c (build_typeid, get_typeid, build_dynamic_cast_1,
1039590075Sobrien	synthesize_tinfo_var, emit_support_tinfos): Likewise.
1039690075Sobrien	* search.c (lookup_fnfields_1, lookup_conversions): Likewise.
1039790075Sobrien	* semantics.c (begin_class_definition): Likewise.
1039890075Sobrien	* tree.c (build_cplus_method_type): Likewise.
1039990075Sobrien	* typeck2.c (digest_init, build_functional_cast,
1040090075Sobrien	add_exception_specifier): Likewise.
1040190075Sobrien	* parse.h, parse.c: Regenerated.
1040218334Speter
1040390075Sobrien2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1040418334Speter
1040590075Sobrien	* inc/cxxabi.h: New header file. Define new-abi entry points.
1040690075Sobrien	(__pointer_type_info::target): Rename member to ...
1040790075Sobrien	(__pointer_type_info::type): ... here.
1040890075Sobrien	(__base_class_info::type): Rename member to ...
1040990075Sobrien	(__base_class_info::base): ... here.
1041090075Sobrien	* Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h
1041190075Sobrien	* cp-tree.h (CPTI_ABI): New global tree enumeration.
1041290075Sobrien	(abi_node): New global tree node.
1041390075Sobrien	* decl.c (abi_node): Document.
1041490075Sobrien	(init_decl_processing): Initialize abi_node.
1041590075Sobrien	* rtti.c (build_dynamic_cast_1): Use abi_node for new-abi.
1041690075Sobrien	(get_vmi_pseudo_type_info): Likewise.
1041790075Sobrien	(create_tinfo_types): Likewise.
1041890075Sobrien	(emit_support_tinfos): Likewise.
1041990075Sobrien	* tinfo.h (cxxabi.h): Include for new-abi.
1042090075Sobrien	Move rtti class definitions to new header file.
1042190075Sobrien	* tinfo.cc (abi): Use the namespace.
1042290075Sobrien	(std): Move new abi rtti classes from here ...
1042390075Sobrien	(__cxxabiv1): ... to here.
1042490075Sobrien	* tinfo2.cc (cxxabi.h): Include for new-abi.
1042590075Sobrien	Move rtti class definitions to new header file.
1042690075Sobrien	(std): Move new abi rtti classes from here ...
1042790075Sobrien	(__cxxabiv1): ... to here.
1042890075Sobrien	* inc/typeinfo (__class_type_info): Move into __cxxabiv1
1042990075Sobrien	namespace.
1043018334Speter
1043190075Sobrien2000-03-20  Jed Wing <jedwin@zloty.ugcs.caltech.edu>
1043290075Sobrien	    Jason Merrill  <jason@casey.cygnus.com>
1043318334Speter
1043490075Sobrien	* method.c (build_overload_int): Use host_integerp.
1043518334Speter
1043690075Sobrien2000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1043718334Speter
1043890075Sobrien	* init.c (build_offset_ref): Handle the case of a templated member
1043990075Sobrien	function.
1044018334Speter
1044190075Sobrien2000-03-19  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1044218334Speter
1044390075Sobrien	* except.c (expand_exception_blocks): Clear catch_clauses_last.
1044418334Speter
1044590075Sobrien2000-03-18  Mark Mitchell  <mark@codesourcery.com>
1044618334Speter
1044790075Sobrien	* cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro.
1044890075Sobrien	* class.c (check_bitfield_decl): Turn illegal bitfields into
1044990075Sobrien	non-bitfields.
1045090075Sobrien	(dfs_propagate_binfo_offsets): Adjust for new size_binop
1045190075Sobrien	semantics.
1045290075Sobrien	(dfs_offset_for_unshared_vbases): Likewise.
1045390075Sobrien	* cvt.c (cp_convert_to_pointer): Convert NULL to a
1045490075Sobrien	pointer-to-member correctly under the new ABI.
1045590075Sobrien	* expr.c (cplus_expand_constant): Don't use cp_convert when
1045690075Sobrien	turning an offset into a pointer-to-member.
1045790075Sobrien	* init.c (resolve_offset_ref): Don't adjust pointers-to-members
1045890075Sobrien	when dereferencing them under the new ABI.
1045990075Sobrien	* typeck.c (get_member_function_from_ptrfunc): Tweak calculation
1046090075Sobrien	of pointers-to-members under the new ABI.
1046118334Speter
1046290075Sobrien	* class.c (check_bitfield_decl): Remove restriction on really long
1046390075Sobrien	bitfields.
1046490075Sobrien	(layout_class_type): Implement new ABI handling of bitfields
1046590075Sobrien	longer than their types.
1046618334Speter
1046790075Sobrien2000-03-18  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1046818334Speter
1046990075Sobrien	* parse.y (extdefs): Call ggc_collect.
1047090075Sobrien	* parse.c: Regenerated.
1047118334Speter
1047290075Sobrien2000-03-18  Nathan Sidwell  <nathan@codesourcery.com>
1047318334Speter
1047490075Sobrien	* class.c (build_base_field): Use TYPE_ALIGN to examine a type.
1047590075Sobrien	(note_name_declared_in_class): Use OVL_CURRENT to get at a
1047690075Sobrien	potential overload.
1047718334Speter
1047890075SobrienFri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1047918334Speter
1048090075Sobrien	* class.c (build_vbase_path): Use integer_zerop.
1048190075Sobrien	(build_vtable_entry): Use tree_low_cst.
1048290075Sobrien	(get_vfield_offset): Use bit_position.
1048390075Sobrien	(dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT.
1048490075Sobrien	Use tree_low_cst.
1048590075Sobrien	(check_bitfield_decl): Set DECL_SIZE using convert.
1048690075Sobrien	(build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop.
1048790075Sobrien	(layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT.
1048890075Sobrien	Use tree_low_cst.
1048990075Sobrien	(finish_struct_1): Use bit_position.
1049090075Sobrien	(dump_class_hierarchy): Use tree_low_cst.
1049190075Sobrien	* cp-tree.h (min_precision): Add declaration.
1049290075Sobrien	* decl.c (xref_tag, xref_basetypes): Use tree_low_cst.
1049390075Sobrien	* error.c (dump_type_suffix): Use host_integerp and tree_low_cst.
1049490075Sobrien	(dump_expr): Use integer_zerop, host_integerp, and tree_low_cst.
1049590075Sobrien	* expr.c (cplus_expand_constant): Use bit_position.
1049690075Sobrien	* init.c (build_vec_init): Use host_integerp and tree_low_cst.
1049790075Sobrien	* rtti.c (get_base_offset): Use bit_position.
1049890075Sobrien	* typeck.c (build_binary_op): Use integer_zerop, compare_tree_int,
1049990075Sobrien	host_integerp, and tree_low_cst.
1050090075Sobrien	(pointer_int_sum): Use integer_zerop.
1050190075Sobrien	(build_component_addr): Use bit_position.
1050218334Speter
1050390075Sobrien2000-03-17  Nathan Sidwell  <nathan@codesourcery.com>
1050418334Speter
1050590075Sobrien	* typeck.c (require_complete_type): Don't assume size_zero_node.
1050690075Sobrien	(complete_type_or_else): Likewise.
1050718334Speter
1050890075Sobrien2000-03-16  Steven Grady <grady@digitaldeck.com>
1050990075Sobrien	    Jason Merrill  <jason@casey.cygnus.com>
1051018334Speter
1051190075Sobrien	* rtti.c (build_dynamic_cast_1): Improve diagnostics.
1051218334Speter
1051390075Sobrien2000-03-16  Nathan Sidwell  <nathan@codesourcery.com>
1051418334Speter
1051590075Sobrien	* decl2.c (grokfield): Bail out if type is error_mark_node.
1051618334Speter
1051790075Sobrien2000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
1051818334Speter
1051990075Sobrien	* tinfo2.cc (__ptr_to_member_data): Rename to ...
1052090075Sobrien	(__pointer_to_member_data): ... here. Adjust.
1052190075Sobrien	* rtti.c (create_tinfo_types): Adjust.
1052218334Speter
1052390075Sobrien2000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
1052418334Speter
1052590075Sobrien	* cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove.
1052690075Sobrien	* decl.c (ref_desc_type_node): Undocument.
1052790075Sobrien	* rtti.c (ptr_ref_initializer): Rename to ...
1052890075Sobrien	(ptr_initializer): ... here. Adjust comments.
1052990075Sobrien	(ptmd_initializer): Fix comment thinko.
1053090075Sobrien	(synthesize_tinfo_var): Remove REFERENCE_TYPE case.
1053190075Sobrien	(create_tinfo_types): Remove ref_desc_type_node init.
1053290075Sobrien	* tinfo2.cc (__reference_type_info): Remove.
1053318334Speter
1053490075Sobrien2000-03-15  Nathan Sidwell  <nathan@codesourcery.com>
1053518334Speter
1053690075Sobrien	* decl.c (cp_finish_decl): Remove obsolete comment.
1053718334Speter
1053890075Sobrien	* typeck.c (build_ptrmemfunc1): Kill uninitialized warning.
1053918334Speter
1054090075Sobrien2000-03-14  Mark Mitchell  <mark@codesourcery.com>
1054118334Speter
1054290075Sobrien	* cp-tree.h: Tweak documentation.
1054390075Sobrien	* class.c (build_vbase_pointer_fields): Layout the fields, too.
1054490075Sobrien	(avoid_overlap): Remove.
1054590075Sobrien	(get_binfo_offset_as_int): New function.
1054690075Sobrien	(dfs_serach_base_offsets): Likewise.
1054790075Sobrien	(layout_nonempty_base_or_field): Likewise.
1054890075Sobrien	(build_base_field): Layout fields here.  Avoid placing two objects
1054990075Sobrien	of the same type at the same address, under the new ABI.
1055090075Sobrien	(build_base_fields): Adjust accordingly.
1055190075Sobrien	(create_vtable_ptr): Return the new field, but don't attach it to
1055290075Sobrien	TYPE_FIELDS.
1055390075Sobrien	(remove_base_field): Remove.
1055490075Sobrien	(remove_base_fields): Remove.
1055590075Sobrien	(layout_basetypes): Adjust accordingly.
1055690075Sobrien	(layout_class_type): Call layout_field for each field, rather than
1055790075Sobrien	just making a wholesale call to layout_type.
1055818334Speter
1055990075Sobrien2000-03-14  Jeff Sturm  <jsturm@sigma6.com>
1056018334Speter
1056190075Sobrien	* except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw.
1056218334Speter
1056390075Sobrien2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
1056418334Speter
1056590075Sobrien	* decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P.
1056618334Speter
1056790075Sobrien	* except.c (dtor_nothrow): New fn.
1056890075Sobrien	(do_pop_exception): Use it.  Take type parm.
1056990075Sobrien	(push_eh_cleanup): Take type parm.
1057090075Sobrien	(expand_start_catch_block): Pass it.
1057190075Sobrien	(build_eh_type_type_ref): Accept null type.
1057218334Speter
1057390075Sobrien2000-03-12  Mark Mitchell  <mark@codesourcery.com>
1057418334Speter
1057590075Sobrien	* cp-tree.h (revert_static_member_fn): Change prototype.
1057690075Sobrien	* decl.c (grokfndecl): Adjust call to revert_static_member_fn.
1057790075Sobrien	(grok_op_properties): Likewise.
1057890075Sobrien	(start_function): Likewise.
1057990075Sobrien	(revert_static_member_fn): Simplify.
1058090075Sobrien	* pt.c (check_explicit_specialization): Adjust call to
1058190075Sobrien	revert_static_member_fn.
1058218334Speter
1058390075Sobrien2000-03-11  Mark Mitchell  <mark@codesourcery.com>
1058418334Speter
1058590075Sobrien	* cp-tree.h (scope_kind): New type.
1058690075Sobrien	(tmpl_spec_kind): Likewise.
1058790075Sobrien	(declare_pseudo_global_level): Remove.
1058890075Sobrien	(pseudo_global_level_p): Rename to template_parm_scope_p.
1058990075Sobrien	(pushlevel): Remove declaration.
1059090075Sobrien	(begin_scope): New function.
1059190075Sobrien	(finish_scope): Likewise.
1059290075Sobrien	(current_tmpl_spec_kind): Likewise.
1059390075Sobrien	* decl.c (struct binding_level): Shorten parm_flag to 2 bits.
1059490075Sobrien	Shorten keep to 2 bits.  Rename pseudo_global to template_parms_p.
1059590075Sobrien	Add template_spec_p.
1059690075Sobrien	(toplevel_bindings_p): Adjust.
1059790075Sobrien	(declare_pseudo_global_level): Remove.
1059890075Sobrien	(pseudo_global_level_p): Rename to template_parm_scope_p.
1059990075Sobrien	(current_tmpl_spec_kind): New function.
1060090075Sobrien	(begin_scope): Likewise.
1060190075Sobrien	(finish_scope): Likewise.
1060290075Sobrien	(maybe_push_to_top_level): Adjust.
1060390075Sobrien	(maybe_process_template_type_declaration): Likewise.
1060490075Sobrien	(pushtag): Likewise.
1060590075Sobrien	(pushdecl_nonclass_level): Likewise.
1060690075Sobrien	(lookup_tag): Likewise.
1060790075Sobrien	(grokfndecl): Handle member template specializations.  Share
1060890075Sobrien	constructor and non-constructor code.
1060990075Sobrien	* decl2.c (check_classfn): Handle member template specializations.
1061090075Sobrien	* pt.c (begin_template_parm_list): Use begin_scope.
1061190075Sobrien	(begin_specialization): Likewise.
1061290075Sobrien	(end_specialization): Likewise.
1061390075Sobrien	(check_explicit_specialization): Use current_tmpl_spec_kind.
1061490075Sobrien	Handle member template specializations.
1061590075Sobrien	(end_template_decl): Use finish_scope.  Remove call to
1061690075Sobrien	get_pending_sizes.
1061790075Sobrien	(push_template_decl_real): Remove bogus error message.
1061890075Sobrien	(tsubst_decl): Fix typo in code contained in comment.
1061990075Sobrien	(instantiate_template): Handle member template specializations.
1062090075Sobrien	(most_general_template): Likewise.
1062118334Speter
1062290075Sobrien2000-03-11  Gabriel Dos Reis  <gdr@codesourcery.com>
1062318334Speter
1062490075Sobrien	* lex.c (whitespace_cr): Compress consecutive calls to warning().
1062590075Sobrien	(do_identifier): Ditto for error().
1062618334Speter
1062790075Sobrien	* pt.c (convert_nontype_argument): Ditto for cp_error().
1062890075Sobrien	(convert_template_argument): Ditto for cp_pedwarn().
1062918334Speter
1063090075Sobrien2000-03-11  Jason Merrill  <jason@casey.cygnus.com>
1063118334Speter
1063290075Sobrien	* exception.cc (__check_null_eh_spec): New fn.
1063390075Sobrien	* except.c (expand_end_eh_spec): Call it if the spec is throw().
1063418334Speter
1063590075Sobrien2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
1063618334Speter
1063790075Sobrien	* decl.c (push_throw_library_fn): Take the FUNCTION_TYPE.
1063890075Sobrien	* except.c (expand_end_eh_spec): Add the return type.
1063990075Sobrien	* rtti.c (throw_bad_cast): Add the parmtypes.
1064090075Sobrien	(throw_bad_typeid): Likewise.
1064118334Speter
1064290075Sobrien	* semantics.c (expand_stmt): Only leave out rtl for unused
1064390075Sobrien	artificials, and set DECL_IGNORED_P on them as well.
1064490075Sobrien	* decl.c (wrapup_globals_for_namespace): Likewise.
1064518334Speter
1064690075Sobrien2000-03-09  Nathan Sidwell  <nathan@codesourcery.com>
1064718334Speter
1064890075Sobrien	* decl.c (maybe_commonize_var): Skip all artificial decls.
1064990075Sobrien	* pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN.
1065018334Speter
1065190075Sobrien2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
1065218334Speter
1065390075Sobrien	* lang-options.h, decl2.c: Add -fno-enforce-eh-specs.
1065490075Sobrien	* cp-tree.h: Declare flag_enforce_eh_specs.
1065590075Sobrien	* decl.c (store_parm_decls, finish_function): Check it.
1065618334Speter
1065790075Sobrien	C library functions don't throw.
1065890075Sobrien	* Makefile.in (cfns.h): New target.
1065990075Sobrien	(except.o): Depend on it.
1066090075Sobrien	* Make-lang.in (cc1plus): Depend on cfns.gperf.
1066190075Sobrien	* cfns.gperf: New file.
1066290075Sobrien	* cfns.h: Generated.
1066390075Sobrien	* except.c: Include it.
1066490075Sobrien	(nothrow_libfn_p): New fn.
1066590075Sobrien	* decl.c (grokfndecl): Use it.
1066690075Sobrien	* cp-tree.h: Declare it.
1066718334Speter
1066890075Sobrien	* decl.c (push_overloaded_decl_1, auto_function,
1066990075Sobrien	define_function): Lose.
1067090075Sobrien	(build_library_fn_1): New static fn.
1067190075Sobrien	(builtin_function): Use it.
1067290075Sobrien	(get_atexit_node): Use build_library_fn_ptr.
1067390075Sobrien	(build_library_fn, build_cp_library_fn, build_library_fn_ptr,
1067490075Sobrien	build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn,
1067590075Sobrien	push_void_library_fn, push_throw_library_fn): New fns.
1067690075Sobrien	* cp-tree.h: Declare them.
1067790075Sobrien	(cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID.
1067890075Sobrien	(throw_bad_cast_node, throw_bad_typeid_node): Lose.
1067990075Sobrien	* except.c (init_exception_processing, call_eh_info, do_pop_exception,
1068090075Sobrien	(expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns.
1068190075Sobrien	* rtti.c (build_runtime_decl): Lose.
1068290075Sobrien	(throw_bad_cast, throw_bad_typeid, get_tinfo_decl,
1068390075Sobrien	build_dynamic_cast_1, expand_si_desc, expand_class_desc,
1068490075Sobrien	expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns.
1068518334Speter
1068690075Sobrien	* call.c (build_call): Remove result_type parm.
1068790075Sobrien	Call mark_used on unused artificial fns.
1068890075Sobrien	* init.c, method.c, typeck.c, except.c, rtti.c: Adjust.
1068918334Speter
1069090075Sobrien2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
1069118334Speter
1069290075Sobrien	* call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as
1069390075Sobrien	appropriate.
1069490075Sobrien	* decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL.
1069590075Sobrien	* except.c (call_eh_info, alloc_eh_object, expand_throw): Set
1069690075Sobrien	TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate.
1069790075Sobrien	* rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1,
1069890075Sobrien	expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc,
1069990075Sobrien	expand_generic_desc): Likewise.
1070018334Speter
1070190075Sobrien2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
1070218334Speter
1070390075Sobrien	* exception.cc (__cp_pop_exception): Cleanup the original object.
1070418334Speter
1070590075Sobrien2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
1070618334Speter
1070790075Sobrien	* decl.c (grok_op_properties): Merge conversion to void warning
1070890075Sobrien	with other silly op warnings.
1070918334Speter
1071090075Sobrien2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
1071118334Speter
1071290075Sobrien	* typeck2.c (process_init_constructor): Set TREE_PURPOSE of
1071390075Sobrien	array CONSTRUCTOR elements.  Don't use expr_tree_cons.
1071418334Speter
1071590075Sobrien2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
1071618334Speter
1071790075Sobrien	* decl.c (cp_make_fname_decl): New function.
1071890075Sobrien	(wrapup_globals_for_namespace): Don't emit unused static vars.
1071990075Sobrien	(init_decl_processing): Remove comment about use of
1072090075Sobrien	array_domain_type. Set make_fname_decl.
1072190075Sobrien	(cp_finish_decl): Remove __FUNCTION__ nadgering.
1072290075Sobrien	* semantics.c (begin_compound_stmt): Remove
1072390075Sobrien	current_function_name_declared flagging.
1072490075Sobrien	(expand_stmt): Don't emit unused local statics.
1072590075Sobrien	* typeck.c (decay_conversion): Don't treat __FUNCTION__ decls
1072690075Sobrien	specially.
1072718334Speter
1072890075Sobrien2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
1072918334Speter
1073090075Sobrien	* typeck.c (convert_for_assignment): Don't look at array
1073190075Sobrien	initializer.
1073290075Sobrien	* call.c (convert_like_real): Likewise.
1073350397Sobrien
1073490075Sobrien2000-03-07  Jason Merrill  <jason@casey.cygnus.com>
1073550397Sobrien
1073690075Sobrien	Add initial support for '\uNNNN' specifier.
1073790075Sobrien	* lex.c (read_ucs): New fn.
1073890075Sobrien	(readescape, skip_white_space): Call it.
1073990075Sobrien	(is_extended_char, is_extended_char_1): New fns.
1074090075Sobrien	(utf8_extend_token): New fn, #if 0'd out.
1074190075Sobrien	(real_yylex): Treat extended chars like letters.
1074250397Sobrien
1074390075Sobrien	* search.c (note_debug_info_needed): Walk the bases even if we
1074490075Sobrien	weren't deferring the type itself.
1074550397Sobrien
1074690075Sobrien2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1074750397Sobrien
1074890075Sobrien	* decl2.c (finish_objects): Constify a char*.
1074950397Sobrien
1075090075Sobrien	* method.c (emit_thunk): Likewise.
1075150397Sobrien
1075290075Sobrien2000-03-06  Nathan Sidwell  <nathan@codesourcery.com>
1075350397Sobrien
1075490075Sobrien	* typeck.c (dubious_conversion_warnings): Look through
1075590075Sobrien	REFERENCE_TYPE.
1075650397Sobrien
1075790075SobrienMon Mar  6 08:46:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1075818334Speter
1075990075Sobrien	* class.c (dfs_modify_vtables): I is now unsigned.
1076090075Sobrien	(check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int.
1076190075Sobrien	(build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT.
1076290075Sobrien	* error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned.
1076390075Sobrien	* init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
1076490075Sobrien	* method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned.
1076590075Sobrien	* typeck.c (build_binary_op, case TRUNC_DIV_EXPR):
1076690075Sobrien	Call integer_all_onesp.
1076790075Sobrien	* typeck2.c (process_init_constructor): Use compare_tree_int.
1076818334Speter
1076990075Sobrien	* lang-specs.h (as): Don't call if -syntax-only.
1077018334Speter
1077190075Sobrien2000-03-06  Mark Mitchell  <mark@codesourcery.com>
1077218334Speter
1077390075Sobrien	* expr.c (cplus_expand_expr, case STMT_EXPR): Don't set
1077490075Sobrien	RTL_EXPR_HAS_NO_SCOPE after all.
1077518334Speter
1077690075Sobrien2000-03-05  Mark Mitchell  <mark@codesourcery.com>
1077718334Speter
1077890075Sobrien	* expr.c (cplus_expand_expr, case STMT_EXPR): Use
1077990075Sobrien	expand_start_stmt_expr and expand_end_stmt_expr directly.  Set
1078090075Sobrien	RTL_EXPR_HAS_NO_SCOPE.
1078118334Speter
1078290075Sobrien	* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little
1078350397Sobrien	later.
1078418334Speter
1078590075Sobrien	* dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P.
1078618334Speter
1078790075Sobrien2000-03-05  Nathan Sidwell  <nathan@codesourcery.com>
1078818334Speter
1078990075Sobrien	* call.c (convert_like): Macrofy.
1079090075Sobrien	(convert_like_with_context): New macro.
1079190075Sobrien	(convert_like_real): Renamed from convert_like.  Add calling
1079290075Sobrien	context parameters, for diagnostics. Add recursive flag.  Call
1079390075Sobrien	dubious_conversion_warnings for outer conversion.
1079490075Sobrien	(build_user_type_conversion): Use convert_like_with_context.
1079590075Sobrien	(build_over_call): Likewise. Don't warn about dubious
1079690075Sobrien	conversions here. Adjust convert_default_arg calls.
1079790075Sobrien	(convert_default_arg): Add context parameters for diagnostics.
1079890075Sobrien	Pass through to convert_like_with_context.
1079990075Sobrien	* cp-tree.h (convert_default_arg): Add context parameters.
1080090075Sobrien	(dubious_conversion_warnings): Prototype new function.
1080190075Sobrien	* typeck.c (convert_arguments): Adjust convert_default_arg call.
1080290075Sobrien	(dubious_conversion_warnings): New function, broken
1080390075Sobrien	out of convert_for_assignment.
1080490075Sobrien	(convert_for_assignment): Adjust.
1080518334Speter
1080690075Sobrien2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
1080718334Speter
1080890075Sobrien	* decl2.c (key_method): Break out from...
1080990075Sobrien	(import_export_vtable, import_export_class): ...here.
1081018334Speter
1081190075Sobrien	* decl.c (finish_function): Don't mess with flag_keep_inline_functions.
1081290075Sobrien	* decl2.c (finish_vtable_vardecl): Don't check decl_function_context.
1081318334Speter
1081490075Sobrien	* search.c (note_debug_info_needed, dfs_debug_mark,
1081590075Sobrien	dfs_debug_unmarkedp): Uncomment.  Adjust for new scheme.
1081690075Sobrien	* decl2.c (finish_vtable_vardecl): Call note_debug_info_needed.
1081718334Speter
1081890075Sobrien2000-03-03  Nathan Sidwell  <nathan@codesourcery.com>
1081918334Speter
1082090075Sobrien	* decl.c (cp_finish_decl): Remove obsolete obstack comments, fix
1082190075Sobrien	typos.
1082218334Speter
1082390075Sobrien2000-03-02  Mark Mitchell  <mark@codesourcery.com>
1082418334Speter
1082590075Sobrien	* cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ...
1082690075Sobrien	(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this.
1082790075Sobrien	(TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro.
1082890075Sobrien	(lang_type): Split gets_new into has_new and has_array_new.
1082990075Sobrien	(TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1083090075Sobrien	(TYPE_GETS_NEW): Split into ...
1083190075Sobrien	(TYPE_HAS_NEW_OPERATOR): ... this, and ...
1083290075Sobrien	(TYPE_HAS_ARRAY_NEW_OPERATOR): ... this.
1083390075Sobrien	(DECL_ARRAY_DELETE_OPERATOR_P): New macro
1083490075Sobrien	(build_op_new_call): Don't declare.
1083590075Sobrien	(build_new_1): Likewise.
1083690075Sobrien	* call.c (build_op_new_call): Remove.
1083790075Sobrien	* class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR
1083890075Sobrien	instead of TYPE_NEEDS_DESTRUCTOR.
1083990075Sobrien	(finish_struct_bits): Likewise.
1084090075Sobrien	(add_implicitly_declared_members): Likewise.
1084190075Sobrien	(check_field_decl): Likewise.
1084290075Sobrien	(check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it
1084390075Sobrien	correctly under the new ABI.
1084490075Sobrien	* decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR
1084590075Sobrien	instead of TYPE_NEEDS_DESTRUCTOR.
1084690075Sobrien	(initialize_local_var): Likewise.
1084790075Sobrien	(destroy_local_var): Likewise.
1084890075Sobrien	(cp_finish_decl): Likewise.
1084990075Sobrien	(register_dtor_fn): Likewise.
1085090075Sobrien	(grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and
1085190075Sobrien	TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW.  Don't set
1085290075Sobrien	TYPE_VEC_DELETE_TAKES_SIZE here.
1085390075Sobrien	(xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and
1085490075Sobrien	TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW.
1085590075Sobrien	(store_parm_decls):  Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1085690075Sobrien	(finish_destructor_body): Likewise.
1085790075Sobrien	(maybe_build_cleanup_1): Likewise.
1085890075Sobrien	* decl2.c (do_static_destruction): Likewise.
1085990075Sobrien	* init.c (build_new_1): Make it static.
1086090075Sobrien	(perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1086190075Sobrien	(expand_cleanup_for_base): Likewise.
1086290075Sobrien	(get_cookie_size): New function.
1086390075Sobrien	(build_new_1): Handle array-new cookies correctly under the new
1086490075Sobrien	ABI.
1086590075Sobrien	(build_vec_delete_1): Likewise.
1086690075Sobrien	(build_vec_init):  Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1086790075Sobrien	(build_delete): Likewise.
1086890075Sobrien	(build_vec_delete): Handle array-new cookies correctly under the new
1086990075Sobrien	ABI.
1087090075Sobrien	* lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1087190075Sobrien	* pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and
1087290075Sobrien	TYPE_HAS_ARRAY_NEW_OPERATOR.
1087390075Sobrien	* ptree.c (print_lang_type): Check them.
1087490075Sobrien	* search.c (context_for_name_lookup): Fix typo in comment.
1087590075Sobrien	(tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
1087690075Sobrien	* tree.c (break_out_cleanups): Likewise.
1087790075Sobrien	(build_cplus_array_test_1): Likewise.
1087890075Sobrien	(cp_build_qualified_type_real): Likewise.
1087990075Sobrien	* typeck.c (complete_type): Likewise.
1088018334Speter
1088190075Sobrien	* g++spec.c (lang_specific_driver): Add -fnew-abi at the start of
1088290075Sobrien	the command-line, not the end.
1088318334Speter
1088490075Sobrien2000-03-01  Jason Merrill  <jason@casey.cygnus.com>
1088518334Speter
1088690075Sobrien	* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG.
1088718334Speter
1088890075Sobrien2000-03-02  Tom Tromey  <tromey@cygnus.com>
1088918334Speter
1089090075Sobrien	* cp-tree.h (build_java_class_ref): Declare.
1089190075Sobrien	* init.c (build_java_class_ref): No longer static.
1089290075Sobrien	* except.c (expand_throw): Generate a Java-style `throw' if the
1089390075Sobrien	thrown object is a "Java" object.
1089490075Sobrien	(initialize_handler_parm): Generate a Java-style lookup of
1089590075Sobrien	exception info if the caught object is a "Java" object.
1089690075Sobrien	(catch_language, catch_language_init): New globals.
1089790075Sobrien	(decl_is_java_type): New function.
1089890075Sobrien	(expand_start_catch_block): Don't call push_eh_info() or
1089990075Sobrien	push_eh_cleanup() when handling a Java-style "catch".  Pass Java
1090090075Sobrien	class reference to build_catch_block.
1090118334Speter
1090290075SobrienThu Mar  2 13:32:01 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1090318334Speter
1090490075Sobrien	* typeck.c (comptypes): Treat sizetype like its language equivalent.
1090518334Speter
1090690075Sobrien2000-03-01  Bernd Schmidt  <bernds@cygnus.co.uk>
1090718334Speter
1090890075Sobrien	* typeck.c (maybe_warn_about_returning_address_of_local): Reorganize
1090990075Sobrien	to merge reference/pointer code and fix incorrect warnings.
1091018334Speter
1091190075Sobrien2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
1091218334Speter
1091390075Sobrien	* search.c (protected_accessible_p): Use context_for_name_lookup.
1091418334Speter
1091590075Sobrien	* init.c (construct_virtual_bases): Fix thinko.
1091690075Sobrien	* typeck.c (expand_ptrmemfunc_cst): Fix thinko.
1091718334Speter
1091890075Sobrien2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1091918334Speter
1092090075Sobrien	* decl.c (current_function_decl): Move to toplev.c.
1092118334Speter
1092290075Sobrien2000-02-29  Nathan Sidwell  <nathan@codesourcery.com>
1092318334Speter
1092490075Sobrien	* pt.c (fn_type_unification): Unify return type, whenever
1092590075Sobrien	provided.
1092690075Sobrien	(get_bindings_real): Only pass return type when necessary.
1092790075Sobrien	Remove explicit return type check.
1092890075Sobrien	* class.c (resolve_address_of_overloaded_function): Pass desired
1092990075Sobrien	return type to fn_type_unification.
1093018334Speter
1093190075SobrienMon Feb 28 08:15:23 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1093218334Speter
1093390075Sobrien	* class.c (build_vtbl_or_vbase_field, check_methods): Don't clear
1093490075Sobrien	DECL_FIELD_SIZE.
1093590075Sobrien	(check_bitfield_decl, check_field_decls): Set DECL_SIZE, not
1093690075Sobrien	DECL_FIELD_SIZE.
1093790075Sobrien	* rtti.c (expand_class_desc): Likewise.
1093890075Sobrien	* cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name.
1093990075Sobrien	(THUNK_VCALL_OFFSET): Likewise.
1094090075Sobrien	(THUNK_DELTA): Reflect changes in ../tree.h.
1094118334Speter
1094290075Sobrien2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
1094352284Sobrien
1094490075Sobrien	* search.c (protected_accessible_p): Also allow the access if
1094590075Sobrien	the member is public in DERIVED.  Lose TYPE parm.
1094690075Sobrien	(friend_accessible_p): Lose TYPE parm.
1094790075Sobrien	(accessible_p): Adjust.
1094818334Speter
1094990075SobrienSun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1095018334Speter
1095190075Sobrien	* class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop
1095290075Sobrien	on things that are not sizes; ssize_binop deleted.
1095390075Sobrien	Call size_diffop when appropriate.
1095490075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Likewise.
1095590075Sobrien	(build_primary_vtable, build_secondary_vtable): Likewise.
1095690075Sobrien	(dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise.
1095790075Sobrien	Variable I is HOST_WIDE_INT.
1095890075Sobrien	(get_vfield_offset): Pass proper types to size_binop.
1095990075Sobrien	(size_extra_vtbl_entries, layout_virtual_bases): Likewise.
1096090075Sobrien	(finish_struct_1): Likewise.
1096190075Sobrien	(skip_rtti_stuff): Arg N is now pointer to signed.
1096290075Sobrien	(layout_class_type): Use size_zero_node.
1096390075Sobrien	* cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed.
1096490075Sobrien	* cvt.c (cp_convert_to_pointer): Pass proper types to size_binop.
1096590075Sobrien	* decl.c (complete_arry_type): Pass proper types to size_binop.
1096690075Sobrien	(xref_basetypes): BINFO_OFFSET is sizetype.
1096790075Sobrien	* error.c (dump_expr): Don't use size_binop non-sizes.
1096890075Sobrien	* expr.c (cplus_expand_constant): Pass proper types to size_binop.
1096990075Sobrien	* init.c (construct_virtual_bases): Fix type error.
1097090075Sobrien	(build_vec_delete_1): Pass proper type to size_binop and don't
1097190075Sobrien	fold result.
1097290075Sobrien	* lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype.
1097390075Sobrien	* rtti.c (get_base_offset): Pass proper type to size_binop.
1097490075Sobrien	* search.c (dfs_find_vbases): Fix type error.
1097590075Sobrien	(expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed.
1097690075Sobrien	(dfs_get_vbase_types): BINFO_OFFSET is sizetype.
1097790075Sobrien	* tree.c (debug_binfo): Variable N is signed.
1097890075Sobrien	Use HOST_WIDE_INT_PRINT_DEC.
1097990075Sobrien	* typeck.c (comptypes): sizetype is same as equivalent integer type.
1098090075Sobrien	(c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT,
1098190075Sobrien	size_one_node and size_zero_node.
1098290075Sobrien	(c_alignof): Use size_one_node.
1098390075Sobrien	(build_component_addr): Pass proper types to size_binop.
1098490075Sobrien	(expand_ptrmemfunc_cst): Don't use size_binop on non-sizes.
1098518334Speter
1098690075Sobrien2000-02-26  Jason Merrill  <jason@casey.cygnus.com>
1098718334Speter
1098890075Sobrien	Implement class scope using-declarations for functions.
1098990075Sobrien	* class.c (handle_using_decl): Call add_method for used functions.
1099090075Sobrien	Use IDENTIFIER_CLASS_VALUE to check for conflicts.
1099190075Sobrien	(add_method): Used functions are hidden by local functions.
1099290075Sobrien	(check_bases_and_members): Handle using-decls before finalizing
1099390075Sobrien	CLASSTYPE_METHOD_VEC.
1099490075Sobrien	* call.c (add_function_candidate): Add ctype parm; if non-zero,
1099590075Sobrien	override the type of 'this' accordingly.
1099690075Sobrien	(add_template_candidate, add_template_candidate_real): Add ctype parm.
1099790075Sobrien	(convert_class_to_reference, build_user_type_conversion_1,
1099890075Sobrien	build_new_function_call, build_object_call, build_new_op,
1099990075Sobrien	build_new_method_call): Pass ctype parm.
1100018334Speter
1100190075Sobrien	* search.c (lookup_member): Put rval_binfo, not basetype_path, in
1100290075Sobrien	the baselink.
1100390075Sobrien	* call.c (convert_class_to_reference, build_user_type_conversion_1,
1100490075Sobrien	build_new_function_call, build_object_call, build_new_op,
1100590075Sobrien	build_new_method_call, build_op_delete_call): Don't get basetype_path
1100690075Sobrien	from a baselink.
1100790075Sobrien	* typeck.c (build_component_ref): Likewise.
1100890075Sobrien	* init.c (build_offset_ref): Likewise.
1100990075Sobrien	(resolve_offset_ref): Don't call enforce_access.
1101090075Sobrien	Call build_scoped_ref.
1101190075Sobrien	* typeck2.c (build_scoped_ref): Simplify.  Do nothing if it
1101290075Sobrien	would cause an error or if -pedantic.
1101390075Sobrien	* class.c (alter_access): Lose binfo parm.
1101418334Speter
1101590075Sobrien2000-02-26  Mark Mitchell  <mark@codesourcery.com>
1101618334Speter
1101790075Sobrien	* semantics.c (simplify_aggr_init_exprs_p): Don't walk into
1101890075Sobrien	types.
1101918334Speter
1102090075Sobrien2000-02-25  Alfred Minarik <a8601248@unet.univie.ac.at>
1102118334Speter
1102290075Sobrien	* rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info
1102390075Sobrien	pseudo_type_info creation into the std namespace
1102418334Speter
1102590075Sobrien2000-02-26  Mark Mitchell  <mark@codesourcery.com>
1102618334Speter
1102790075Sobrien	* cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF.
1102890075Sobrien	(import_export_class): Remove declaration.
1102990075Sobrien	* decl2.c (import_export_class): Make it static.
1103090075Sobrien	* dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR,
1103190075Sobrien	PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR,
1103290075Sobrien	EXPR_WITH_FILE_LOCATION.
1103390075Sobrien	* lex.c (check_newline): Tweak filename/lineno setting.
1103490075Sobrien	* semantics.c (begin_while_stmt): Fix typo in comment.
1103518334Speter
1103690075SobrienSat Feb 26 19:50:23 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1103718334Speter
1103890075Sobrien	* lang-options.h (-fmessage-length=): Add missing option.
1103918334Speter
1104090075Sobrien	* Make-lang.in (CXX_SRCS): Add .h files and sort list.
1104118334Speter
1104290075Sobrien2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
1104318334Speter
1104490075Sobrien	* Make-lang.in: Delete refs to LIBGCC2_DEPS.
1104518334Speter
1104690075SobrienFri Feb 25 14:52:33 2000  Jim Wilson  <wilson@cygnus.com>
1104718334Speter
1104890075Sobrien	* optimize.c (expand_call_inline): Emit the return label before
1104990075Sobrien	evaluating the return value.
1105018334Speter
1105190075Sobrien2000-02-24  Mark Mitchell  <mark@codesourcery.com>
1105218334Speter
1105390075Sobrien	* lex.c (check_newline): Use push_srcloc and pop_srcloc, rather
1105490075Sobrien	than duplicating functionality here.
1105590075Sobrien	* optimize.c: Include input.h.
1105690075Sobrien	(expand_call_inline): Use push_srcloc and pop_srcloc.
1105790075Sobrien	* parse.y (maybe_cv_qualifier): Remove calls to emit_line_note.
1105890075Sobrien	* parse.c: Regenerated.
1105990075Sobrien	* Makefile.in (lex.o): Depend on input.h.
1106090075Sobrien	(optimize.o): Likewise.
1106118334Speter
1106290075Sobrien2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
1106318334Speter
1106490075Sobrien	* decl.c (grokdeclarator): Diagnose qualifiers on non-member
1106590075Sobrien	function type, rather than ICE.
1106618334Speter
1106790075Sobrien2000-02-23  Jason Merrill  <jason@casey.cygnus.com>
1106818334Speter
1106990075Sobrien	* decl.c (grokdeclarator): Call decl_type_access_control.
1107090075Sobrien	* parse.y (parse_end_decl): Don't call decl_type_access_control if
1107190075Sobrien	decl is null.
1107218334Speter
1107390075Sobrien2000-02-23  Nathan Sidwell  <nathan@codesourcery.com>
1107452284Sobrien
1107590075Sobrien	* decl.c (decls_match): Remove obsolete static member nadgering.
1107618334Speter
1107790075Sobrien2000-02-21  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1107818334Speter
1107990075Sobrien	* decl.c (grokdeclarator): Change ANSI to ISO.
1108090075Sobrien	* lex.c (consume_string, readescape, do_identifier): Likewise.
1108190075Sobrien	(parse_float, real_yylex): Likewise.
1108290075Sobrien	* parse.y (paren_expr_or_null, paren_cond_or_null): Likewise.
1108390075Sobrien	(unary_expr, new_initializer, cast_expr, primary, primary_no_id,
1108490075Sobrien	new_type_id, maybe_label_decls, simple_stmt,
1108590075Sobrien	for.init.statement): Likewise.
1108690075Sobrien	* pt.c (do_decl_instantiation, do_type_instantiation): Likewise.
1108790075Sobrien	* semantics.c (finish_named_return_value): Likewise.
1108890075Sobrien	* parse.c: Regenerate.
1108918334Speter
1109090075Sobrien2000-02-21  Mark Mitchell  <mark@codesourcery.com>
1109118334Speter
1109290075Sobrien	* cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro.
1109390075Sobrien	(CPTI_CLASS_STAR_TYPE): Remove.
1109490075Sobrien	(vtable_index_type): Likewise.
1109590075Sobrien	(class_star_type_node): Remove.
1109690075Sobrien	(TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI.
1109790075Sobrien	(build_binary_op_nodefault): Remove.
1109890075Sobrien	* call.c (build_new_op): Use build_binary_op instead of
1109990075Sobrien	build_binary_op_nodefault.
1110090075Sobrien	* decl.c (init_decl_processing): Remove class_star_type_node
1110190075Sobrien	initialization.  Make delta_type_node ptrdiff_type_node under the
1110290075Sobrien	new ABI.  Initialize vtable_index_type.
1110390075Sobrien	(build_ptrmemfunc_type): Build different structures for the new
1110490075Sobrien	ABI.
1110590075Sobrien	(build_enumerator): Use build_binary_op instead of
1110690075Sobrien	build_binary_op_nodefault.
1110790075Sobrien	* method.c (build_overload_value): Mangle pointers-to-members
1110890075Sobrien	appropriately under the new ABI.
1110990075Sobrien	* typeck.c (build_array_ref): Use build_binary_op instead of
1111090075Sobrien	build_binary_op_nodefault.
1111190075Sobrien	(get_member_function_from_ptrfunc): Adjust for the new ABI.
1111290075Sobrien	(build_binary_op_nodefault): Rename to ...
1111390075Sobrien	(build_binary_op): ... this.  Remove old version.  Adjust for
1111490075Sobrien	pointer-to-member comparisons under the new ABI.
1111590075Sobrien	(build_ptrmemfunc1): Remove dead code.  Adjust for the new ABI.
1111690075Sobrien	(build_ptrmemfunc): Adjust for the new ABI.
1111790075Sobrien	(expand_ptrmemfunc_cst): Likewise.
1111890075Sobrien	(delta2_from_ptrmemfunc): Assert that we're not using the new ABI.
1111990075Sobrien	(pfn_from_ptrmemfunc): Adjust for the new ABI.
1112018334Speter
1112190075Sobrien2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
1112218334Speter
1112390075Sobrien	* call.c (build_object_call): Compress consecutive calls to
1112490075Sobrien	cp_error.
1112590075Sobrien	(build_conditional_expr): Say 'ISO C++' not 'ANSI C++'.
1112690075Sobrien	(build_op_delete_call): Adjust message formatting.
1112718334Speter
1112890075Sobrien	* class.c (check_bases): Compress consecutive calls to
1112990075Sobrien	cp_pedwarn.
1113090075Sobrien	(finish_struct_anon): Say 'ISO C++'.
1113118334Speter
1113290075Sobrien	* decl.c (start_decl): Same here.
1113390075Sobrien	(grok_reference_init): Likewise.
1113490075Sobrien	(grokfndecl): Correct message formatting.
1113590075Sobrien	(grokfndecl): Improve diagnostic.
1113690075Sobrien	(check_static_variable_definition): Likewise. Say 'ISO C++'
1113790075Sobrien	(compute_array_index_type): Say 'ISO C++'
1113890075Sobrien	(create_array_type_for_decl): Compress consecutive calls to
1113990075Sobrien	cp_error.
1114090075Sobrien	(grokdeclarator): Say 'ISO C++'
1114190075Sobrien	(grok_op_properties): Likewise.
1114218334Speter
1114390075Sobrien	* decl2.c (delete_sanity): Clairify diagnostic.
1114490075Sobrien	(check_member_template): Same here.
1114590075Sobrien	(grok_function_init): Use consistent terminology.
1114618334Speter
1114790075Sobrien	* expr.c (do_case): Say 'ISO C++'
1114818334Speter
1114990075Sobrien	* friend.c (do_friend): Compress consecutive calls to warning.
1115018334Speter
1115190075Sobrien2000-02-20  Mark Mitchell  <mark@codesourcery.com>
1115218334Speter
1115390075Sobrien	* cp-tree.h (merge_primary_and_secondary_vtables_p): New macro.
1115490075Sobrien	* class.c (build_secondary_vtable): Reorganize.  Don't create a
1115590075Sobrien	new vtable under the new ABI.
1115690075Sobrien	(layout_vtable_decl): Don't add num_extra_vtbl_entries when
1115790075Sobrien	computing the size.
1115890075Sobrien	(build_vtbl_initializer): Don't return a CONSTRUCTOR; just return
1115990075Sobrien	the initializing elements.
1116090075Sobrien	(initialize_vtable): New function.
1116190075Sobrien	(dfs_finish_vtbls): Use it.
1116290075Sobrien	(dfs_accumulate_vtbl_inits): New function.
1116390075Sobrien	(finish_vtbls): Merge primary and secondary vtables under the new
1116490075Sobrien	ABI.
1116590075Sobrien	(finish_struct_1): Remove redundant call to layout_vtable_decl.
1116690075Sobrien	* init.c (expand_virtual_init): Deal with BINFO_VTABLEs that
1116790075Sobrien	aren't VAR_DECLs.
1116818334Speter
1116990075Sobrien	* class.c (build_vtable): New function, split out from ...
1117090075Sobrien	(get_vtable_decl): ... here, and ...
1117190075Sobrien	(build_secondary_vtable): ... here.
1117218334Speter
1117390075Sobrien	* pt.c (tsubst_decl): Fix formatting.
1117418334Speter
1117590075SobrienSat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1117618334Speter
1117790075Sobrien	* class.c (build_primary_vtable, layout_vtable_decl): Likewise.
1117890075Sobrien	(avoid_overlap, build_base_field): Likewise.
1117990075Sobrien	(build_base_field, build_base_fields, is_empty_class):
1118090075Sobrien	Test DECL_SIZE with integer_zero.
1118190075Sobrien	(layout_class_type): Set CLASSTYPE_SIZE_UNIT.
1118290075Sobrien	* cp-tree.h (struct lang_type): New field size_unit.
1118390075Sobrien	(CLASSTYPE_SIZE_UNIT): New macro.
1118490075Sobrien	* decl.c (init_decl_processing): Set DECL_SIZE_UNIT.
1118590075Sobrien	(cp_finish_decl): Delete -Wlarger-than processing.
1118690075Sobrien	* optimize.c (remap_decl): Walk DECL_SIZE_UNIT.
1118790075Sobrien	* pt.c (tsubst_decl): Set DECL_SIZE_UNIT.
1118890075Sobrien	* tree.c (make_binfo): binfo vector is one entry longer.
1118990075Sobrien	(walk_tree): Walk DECL_SIZE_UNIT.
1119018334Speter
1119190075Sobrien2000-02-19  Mark Mitchell  <mark@codesourcery.com>
1119218334Speter
1119390075Sobrien	* class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in
1119490075Sobrien	comment.
1119590075Sobrien	(build_vtable_entry): Don't assume all vtable entries are
1119650397Sobrien	functions.
1119790075Sobrien	(build_vtbl_initializer): Adjust accordingly.
1119890075Sobrien	(get_vtable_decl): Fix formatting.
1119918334Speter
1120090075Sobrien2000-02-18  Jason Merrill  <jason@casey.cygnus.com>
1120118334Speter
1120290075Sobrien	* semantics.c (deferred_type_access_control): Walk the entire
1120390075Sobrien	type_lookups list.
1120490075Sobrien	(save_type_access_control): Rename from
1120590075Sobrien	initial_deferred_type_access_control.  Just remember the value.
1120690075Sobrien	(decl_type_access_control): New fn.
1120790075Sobrien	(begin_function_definition): Use deferred_type_access_control, after
1120890075Sobrien	we've started the function.  Set type_lookups to error_mark_node.
1120990075Sobrien	* parse.y (frob_specs, fn.def1): Adjust.
1121090075Sobrien	(parse_decl0, parse_field, parse_field0, parse_bitfield): New fns.
1121190075Sobrien	(parse_end_decl, parse_bitfield0, parse_method): New fns.
1121290075Sobrien	(fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them.
1121390075Sobrien	(after_type_component_declarator0): Likewise.
1121490075Sobrien	(after_type_component_declarator): Likewise.
1121590075Sobrien	(notype_component_declarator): Likewise.
1121650397Sobrien	* cp-tree.h: Adjust.
1121718334Speter
1121890075Sobrien	* decl.c (redeclaration_error_message): Allow redeclaration of
1121990075Sobrien	namespace-scope decls.
1122018334Speter
1122190075Sobrien2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1122218334Speter
1122390075Sobrien	* typeck2.c (my_friendly_abort): Use GCCBUGURL.
1122418334Speter
1122590075Sobrien2000-02-17  Mark Mitchell  <mark@codesourcery.com>
1122618334Speter
1122790075Sobrien	* class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT.
1122890075Sobrien	* decl2.c (grokclassfn): Likewise.
1122918334Speter
1123090075Sobrien	* ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS.
1123118334Speter
1123290075Sobrien	* decl2.c (lang_decode_option): Don't set default message length
1123390075Sobrien	here.
1123490075Sobrien	* lex.c (lang_init_options): Set it here.
1123518334Speter
1123690075Sobrien2000-02-16  Mark Mitchell  <mark@codesourcery.com>
1123718334Speter
1123890075Sobrien	Make DECL_CONTEXT mean the class in which a member function was
1123990075Sobrien	declared, even for a virtual function.
1124090075Sobrien	* cp-tree.h (DECL_CLASS_CONTEXT): Adjust.
1124190075Sobrien	(DECL_FRIEND_CONTEXT): New macro.
1124290075Sobrien	(DECL_REAL_CONTEXT): Remove.
1124390075Sobrien	(SET_DECL_FRIEND_CONTEXT): Likewise.
1124490075Sobrien	(DECL_VIRTUAL_CONTEXT): Adjust.
1124590075Sobrien	(DECL_CLASS_SCOPE_P): Use TYPE_P.
1124690075Sobrien	(add_friends): Remove.
1124790075Sobrien	(hack_decl_function_context): Likewise.
1124890075Sobrien	* call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with
1124990075Sobrien	CP_DECL_CONTEXT.
1125090075Sobrien	(build_over_call): Fix indentation.  Use DECL_CONTEXT
1125190075Sobrien	instead of DECL_CLASS_CONTEXT.
1125290075Sobrien	* class.c (dfs_build_vcall_offset_vtbl_entries): Likewise.
1125390075Sobrien	(add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
1125490075Sobrien	(strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
1125590075Sobrien	(build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT.
1125690075Sobrien	(build_base_field): Likewise.
1125750397Sobrien	(finish_struct_1): Likewise.
1125890075Sobrien	(build_self_reference): Likewise.
1125990075Sobrien	* decl.c (push_class_binding): Use CP_DECL_CONTEXT, not
1126090075Sobrien	DECL_REAL_CONTEXT.
1126190075Sobrien	(pushtag): Use decl_function_context, not
1126250397Sobrien	hack_decl_function_context.
1126390075Sobrien	(decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
1126490075Sobrien	(duplicate_decls): Use DECL_VIRTUAL_CONTEXT.
1126590075Sobrien	(pushdecl): Remove bogus code.
1126690075Sobrien	(start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT.
1126790075Sobrien	(cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
1126890075Sobrien	(grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
1126990075Sobrien	Use decl_function_context, nothack_decl_function_context.
1127090075Sobrien	(grokvardecl): Don't set DECL_CLASS_CONTEXT.
1127190075Sobrien	(grokdeclarator): Likewise.  Use decl_function_context, not
1127290075Sobrien	hack_decl_function_context.
1127390075Sobrien	(copy_args_p): Document.  Don't use DECL_CLASS_CONTEXT.
1127490075Sobrien	(start_function): Use DECL_FRIEND_CONTEXT, not
1127590075Sobrien	DECL_CLASS_CONTEXT.  Use decl_function_context, not
1127690075Sobrien	hack_decl_function_context.
1127790075Sobrien	(finish_function): Use decl_function_context, not
1127890075Sobrien	hack_decl_function_context.
1127990075Sobrien	(maybe_retrofit_in_chrg): Use DECL_CONTEXT, not
1128090075Sobrien	DECL_CLASS_CONTEXT.
1128190075Sobrien	(grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT.
1128290075Sobrien	(finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT.
1128390075Sobrien	(grokfield): Likewise.
1128490075Sobrien	(finish_builtin_type): Likewise.
1128590075Sobrien	(finish_vtable_vardec): Use decl_function_context, not
1128690075Sobrien	hack_decl_function_context.
1128790075Sobrien	(import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
1128890075Sobrien	(start_static_initialization_or_destruction): Likewise.
1128990075Sobrien	(finish_static_initialization_or_destruction): Likewise.
1129090075Sobrien	(mark_used): Adjust logic for deciding when to synthesize methods.
1129190075Sobrien	* dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not
1129290075Sobrien	DECL_REAL_CONTEXT.
1129390075Sobrien	* error.c (dump_function_decl): Use DECL_CONTEXT, not
1129490075Sobrien	DECL_CLASS_CONTEXT.
1129590075Sobrien	* friend.c (is_friend): Likewise.
1129690075Sobrien	(add_friends): Remove.
1129790075Sobrien	(do_friend): Use SET_DECL_FRIEND_CONTEXT.
1129890075Sobrien	* lex.c (begin_definition_of_inclass_inline): Use
1129990075Sobrien	decl_function_context, not hack_decl_function_context.
1130090075Sobrien	(process_next_inline): Likewise.
1130190075Sobrien	(do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
1130290075Sobrien	* method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not
1130390075Sobrien	DECL_CLASSS_CONTEXT.
1130490075Sobrien	(hack_identifier): Likewise.
1130590075Sobrien	(synthesize_method):  Use decl_function_context, not
1130690075Sobrien	hack_decl_function_context.
1130790075Sobrien	* pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not
1130890075Sobrien	DECL_REAL_CONTEXT.
1130990075Sobrien	(is_member_template): Use decl_function_context, not
1131090075Sobrien	hack_decl_function_context.  Use DECL_CONTEXT, not
1131190075Sobrien	DECL_CLASS_CONTEXT.
1131290075Sobrien	(build_template_decl): Set DECL_VIRTUAL_CONTEXT, not
1131390075Sobrien	DECL_CLASS_CONTEXT.
1131490075Sobrien	(check_default_tmpl_args): Use CP_DECL_CONTEXT, not
1131590075Sobrien	DECL_REAL_CONTEXT.
1131690075Sobrien	(push_template_decl_real): Likewise.
1131790075Sobrien	(instantiate_class_template): Don't call add_friends.
1131890075Sobrien	(tsubst_default_argument): Use DECL_CONTEXT, not
1131990075Sobrien	DECL_REAL_CONTEXT.
1132090075Sobrien	(tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
1132190075Sobrien	Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
1132290075Sobrien	(set_meangled_name_for_template_decl): Use DECL_CONTEXT, not
1132390075Sobrien	DECL_CLASS_CONTEXT.
1132490075Sobrien	* repo.c (repo_inline_used): Likewise.
1132590075Sobrien	* search.c (current_scope): Adjust for new _CONTEXT macros.
1132690075Sobrien	(context_for_name_lookup): Use CP_DECL_CONTEXT, not
1132790075Sobrien	DECL_REAL_CONTEXT.
1132890075Sobrien	(friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
1132990075Sobrien	(lookup_fnfields_here):Likewise.
1133090075Sobrien	(check_final_overrider): Likewise.
1133190075Sobrien	(init_vbase_pointers): Likewise.
1133290075Sobrien	(virtual_context): Likewise.
1133390075Sobrien	* semantics.c (finish_member_declaration): Just set DECL_CONTEXT.
1133490075Sobrien	(expand_body): Use decl_function_context, not
1133590075Sobrien	hack_decl_function_context.
1133690075Sobrien	* tree.c (hack_decl_function_context): Remove.
1133790075Sobrien	* typeck.c (build_x_function_call): Use DECL_CONTEXT, not
1133890075Sobrien	DECL_CLASS_CONTEXT.
1133990075Sobrien	* typeck2.c (error_not_base_type): Likewise.
1134018334Speter
1134190075Sobrien2000-02-15  Jason Merrill  <jason@casey.cygnus.com>
1134218334Speter
1134390075Sobrien	* decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE.
1134418334Speter
1134590075Sobrien2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1134618334Speter
1134790075Sobrien	* Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h.
1134818334Speter
1134990075Sobrien2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
1135018334Speter
1135190075Sobrien	* lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec.
1135218334Speter
1135390075Sobrien2000-01-16  Gabriel Dos Reis  <gdr@codesourcery.com>
1135418334Speter
1135590075Sobrien	* decl2.c (lang_decode_option): Enable automatic line wrapping.
1135618334Speter
1135790075Sobrien2000-02-13  Jason Merrill  <jason@casey.cygnus.com>
1135818334Speter
1135990075Sobrien	* parse.y (frob_specs): Split out...
1136090075Sobrien	(parse_decl): From here.
1136190075Sobrien	(fn.def2): Call initial_deferred_type_access_control.
1136290075Sobrien	(after_type_component_declarator0): Call frob_specs.
1136390075Sobrien	(notype_component_declarator0): Likewise.
1136490075Sobrien	* search.c (friend_accessible_p): Nested classes are friends of their
1136590075Sobrien	enclosing classes.
1136618334Speter
1136790075Sobrien2000-02-10  Mark Mitchell  <mark@codesourcery.com>
1136818334Speter
1136990075Sobrien	* ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be
1137090075Sobrien	used to create an implicit temporary.
1137118334Speter
1137290075Sobrien	* class.c (dfs_modify_vtables): Tweak calculation of functions to
1137390075Sobrien	override.
1137418334Speter
1137590075Sobrien2000-02-08  Nathan Sidwell  <nathan@acm.org>
1137618334Speter
1137790075Sobrien	* typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to
1137890075Sobrien	strip array element qualifiers too.
1137918334Speter
1138090075Sobrien2000-02-07  Mark Mitchell  <mark@codesourcery.com>
1138118334Speter
1138290075Sobrien	* decl.c (store_parm_decls): Don't build cleanups for parameters
1138390075Sobrien	while processing_template_decl.
1138418334Speter
1138590075Sobrien2000-02-07  Jason Merrill  <jason@casey.cygnus.com>
1138618334Speter
1138790075Sobrien	* cp-tree.h (struct saved_scope): Add incomplete field.
1138890075Sobrien	(namespace_scope_incomplete): New macro.
1138990075Sobrien	* decl.c (pushdecl): Use it.
1139090075Sobrien	(hack_incomplete_structures): Use it.  See through artificial
1139190075Sobrien	binding levels.
1139290075Sobrien	(mark_saved_scope): Mark it.
1139318334Speter
1139490075Sobrien	Implement access control for nested types.
1139590075Sobrien	* search.c (type_access_control): New fn.
1139690075Sobrien	(accessible_p): Now we do perform access control for types.
1139790075Sobrien	* semantics.c (deferred_type_access_control): New fn.
1139890075Sobrien	(initial_deferred_type_access_control): New fn.
1139990075Sobrien	(begin_function_definition): Call it.  Add lookups parm.
1140090075Sobrien	* decl.c (struct binding_level): Add this_class field.
1140190075Sobrien	(pushlevel_class): Set it.
1140290075Sobrien	(mark_binding_level): Mark it.
1140390075Sobrien	(lookup_name_real): Use it.  Call type_access_control.
1140490075Sobrien	(mark_saved_scope): Mark lookups field.
1140590075Sobrien	* cp-tree.h (flagged_type_tree): Add lookups field.
1140690075Sobrien	(struct saved_scope): Add lookups field.
1140790075Sobrien	(type_lookups): New macro.
1140890075Sobrien	* parse.y (declmods): Now <ftype>.
1140990075Sobrien	(parse_decl): Add lookups parm.  Call
1141090075Sobrien	initial_deferred_type_access_control.
1141190075Sobrien	(lang_extdef): Clear type_lookups.
1141290075Sobrien	(typed_declspecs, declmods, typespec): Set lookups field.
1141390075Sobrien	(initdcl): Call deferred_type_access_control.
1141490075Sobrien	(fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0,
1141590075Sobrien	component_decl_1, named_parm): Adjust.
1141690075Sobrien	* friend.c (is_friend): Nested classes are friends of their
1141790075Sobrien	enclosing classes.
1141818334Speter
1141990075Sobrien	* class.c (currently_open_derived_class): New fn.
1142090075Sobrien	* method.c (hack_identifier): Use it.
1142118334Speter
1142290075Sobrien	* lex.c (do_identifier): Remove obsolete code.
1142318334Speter
1142490075Sobrien	* parse.y (typed_typespecs): Propagate new_type_flag properly.
1142518334Speter
1142690075Sobrien2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
1142718334Speter
1142890075Sobrien	* tinfo.h: Remove apostrophes from C++ comment (xgettext
1142990075Sobrien	thinks this file is plain C).
1143018334Speter
1143190075Sobrien2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1143218334Speter
1143390075Sobrien	* Makefile.in (call.o): Depend on $(EXPR_H).
1143418334Speter
1143590075Sobrien	* call.c: Include "expr.h".
1143618334Speter
1143790075Sobrien	* class.c (dump_class_hierarchy): Add prototype.
1143818334Speter
1143990075Sobrien	* search.c (dfs_get_pure_virtuals): Likewise.
1144018334Speter
1144190075Sobrien2000-02-1  Ulrich Drepper  <drepper@redhat.com>
1144218334Speter
1144390075Sobrien	* parse.y (simple_stmt): Allow :: token in asm parameter list.
1144490075Sobrien	* parse.c: Rebuilt.
1144518334Speter
1144690075SobrienMon Jan 31 15:35:29 2000  Jim Wilson  <wilson@cygnus.com>
1144718334Speter
1144890075Sobrien	* class.c (build_vtbl_or_vbase_field): New parameter fcontext.
1144990075Sobrien	Store it in DECL_FCONTEXT.
1145090075Sobrien	(build_vbase_pointer_fields, create_vtable_ptr): Fix callers.
1145118334Speter
1145290075Sobrien2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
1145318334Speter
1145490075Sobrien	* tinfo.h (old abi): #include "tconfig.h".
1145590075Sobrien	* tinfo.cc (convert_to_base): Move into old abi section.
1145618334Speter
1145790075Sobrien2000-01-31  Mark Mitchell  <mark@codesourcery.com>
1145818334Speter
1145990075Sobrien	* cp-tree.h (BINFO_VIRTUALS): Tweak documentation.
1146090075Sobrien	(CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO.
1146190075Sobrien	(BINFO_PRIMARY_BINFO): New macro.
1146290075Sobrien	(BF_DELTA): Rename to ...
1146390075Sobrien	(BV_DELTA): ... this.
1146490075Sobrien	(BF_VCALL_INDEX): Rename to ...
1146590075Sobrien	(BV_VCALL_INDEX): ... this.
1146690075Sobrien	(BF_FN): Rename to ...
1146790075Sobrien	(BV_FN): ... this.
1146890075Sobrien	* class.c (build_vbase_path): Adjust for changes to reverse_path.
1146990075Sobrien	(set_rtti_entry): Rename BF_ macros to BV_ variants.
1147090075Sobrien	(modify_vtable_entry): Simplify.
1147190075Sobrien	(add_virtual_function): Rename BF_ macros to BV_ variants.
1147290075Sobrien	(build_vtable_initializer): Likewise.
1147390075Sobrien	(get_class_offset_1): Remove.
1147490075Sobrien	(dfs_get_class_offset): Likewise.
1147590075Sobrien	(get_class_offset): Likewise.
1147690075Sobrien	(dfs_find_final_overrider): New function.
1147790075Sobrien	(find_final_overrider): Likewise.
1147890075Sobrien	(modify_one_vtable): Remove.
1147990075Sobrien	(dfs_find_base): New function.
1148090075Sobrien	(dfs_modify_vtables): Fold modify_one_vtable in here.  Use
1148190075Sobrien	find_final_overrider.
1148290075Sobrien	(modify_all_vtables): Adjust.  Set BV_VCALL_INDEX on new
1148390075Sobrien	virtuals.
1148490075Sobrien	(dfs_fixup_vtable_deltas): Remove.
1148590075Sobrien	(override_one_vtable): Remove.
1148690075Sobrien	(merge_overrides): Likewise.
1148790075Sobrien	(layout_virtual_bases): Make sure BINFO_OFFSET is set right for
1148890075Sobrien	unreal chilren of virtual bases.
1148990075Sobrien	(finish_struct_1): Don't use merge_overrides.  Don't use
1149090075Sobrien	dfs_fixup_vtable_deltas.
1149190075Sobrien	* tree.c (reverse_path): Return a TREE_LIST, not a chain of
1149290075Sobrien	BINFOs.
1149318334Speter
1149490075Sobrien2000-01-31  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1149590075Sobrien	    Jason Merrill  <jason@yorick.cygnus.com>
1149618334Speter
1149790075Sobrien	* tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT.
1149818334Speter
1149990075Sobrien2000-01-31  Alfred Minarik <a8601248@unet.univie.ac.at>
1150018334Speter
1150190075Sobrien	* exception.cc (__throw_bad_typeid): Add missing std::.
1150250397Sobrien
1150390075Sobrien2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1150450397Sobrien
1150590075Sobrien	* cp-tree.h (make_thunk): PROTO -> PARAMS.
1150650397Sobrien
1150790075Sobrien2000-01-31  Nathan Sidwell  <sidwell@codesourcery.com>
1150850397Sobrien
1150990075Sobrien	* cp-tree.h (new_abi_rtti_p): Use flag_new_abi.
1151050397Sobrien
1151190075Sobrien	Runtime support for new-abi rtti.
1151290075Sobrien	* inc/typeinfo (type_info::operator!=): Define in class.
1151390075Sobrien	(type_info::before, type_info::name, type_info::operator==,
1151490075Sobrien	type_info::operator!=): Define new ABI implementations.
1151590075Sobrien	(type_info::is_pointer_p, type_info::is_function_p): Declare
1151690075Sobrien	new virtual functions.
1151790075Sobrien	(type_info::do_catch, type_info::do_upcast): Likewise.
1151850397Sobrien
1151990075Sobrien	* tinfo.h (__base_class_info): Define new class.
1152090075Sobrien	(__class_type_info): Likewise.
1152190075Sobrien	(__si_class_type_info): Likewise.
1152290075Sobrien	(__vmi_class_type_info): Likewise.
1152390075Sobrien	(__dynamic_cast): Prototype.
1152450397Sobrien
1152590075Sobrien	* tinfo.cc: Conditionalize old and new rtti mechanisms.
1152690075Sobrien	(type_info::is_pointer_p): Define new function.
1152790075Sobrien	(type_info::is_function_p): Likewise.
1152890075Sobrien	(type_info::do_catch): Likewise.
1152990075Sobrien	(type_info::do_upcast): Likewise.
1153090075Sobrien	(vtable_prefix): New structure for vtable access.
1153190075Sobrien	(adjust_pointer): Define new template function.
1153290075Sobrien	(contained_p, public_p, virtual_p, contained_public_p,
1153390075Sobrien	contained_nonpublic_p, contained_nonvirtual_p): Define new
1153450397Sobrien	functions.
1153590075Sobrien	(nonvirtual_base_type): New local variable.
1153690075Sobrien	(__class_type_info::~__class_type_info): Define.
1153790075Sobrien	(__si_class_type_info::~__si_class_type_info): Likewise.
1153890075Sobrien	(__vmi_class_type_info::~__vmi_class_type_info): Likewise.
1153990075Sobrien	(__class_type_info::do_catch): Define new function.
1154090075Sobrien	(__class_type_info::do_upcast): Likewise.
1154190075Sobrien	(__class_type_info::find_public_src): Likewise.
1154290075Sobrien	(__class_type_info::do_find_public_src): Likewise.
1154390075Sobrien	(__si_class_type_info::do_find_public_src): Likewise.
1154490075Sobrien	(__vmi_class_type_info::do_find_public_src): Likewise.
1154590075Sobrien	(__class_type_info::do_dyncast): Likewise.
1154690075Sobrien	(__si_class_type_info::do_dyncast): Likewise.
1154790075Sobrien	(__vmi_class_type_info::do_dyncast): Likewise.
1154890075Sobrien	(__class_type_info::do_upcast): Likewise.
1154990075Sobrien	(__si_class_type_info::do_upcast): Likewise.
1155090075Sobrien	(__vmi_class_type_info::do_upcast): Likewise.
1155190075Sobrien	(__dynamic_cast): Likewise.
1155218334Speter
1155390075Sobrien	* tinfo2.cc (__fundamental_type_info): Define new class.
1155490075Sobrien	(__pointer_type_info): Likewise.
1155590075Sobrien	(__reference_type_info): Likewise.
1155690075Sobrien	(__array_type_info): Likewise.
1155790075Sobrien	(__function_type_info): Likewise.
1155890075Sobrien	(__enum_type_info): Likewise.
1155990075Sobrien	(__ptr_to_member_type_info): Likewise.
1156090075Sobrien	(__fundamental_type_info::~__fundamental_type_info): Define.
1156190075Sobrien	(__pointer_type_info::~__pointer_type_info): Likewise.
1156290075Sobrien	(__reference_type_info::~__reference_type_info): Likewise.
1156390075Sobrien	(__array_type_info::~__array_type_info): Likewise.
1156490075Sobrien	(__function_type_info::~__function_type_info): Likewise.
1156590075Sobrien	(__enum_type_info::~__enum_type_info): Likewise.
1156690075Sobrien	(__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise.
1156790075Sobrien	(__pointer_type_info::do_catch): Define new function.
1156890075Sobrien	(__ptr_to_member_type_info::do_catch): Define new function.
1156918334Speter
1157090075Sobrien	(__throw_type_match_rtti_2): Use new ABI interface, if enabled.
1157190075Sobrien	(__is_pointer): Likewise.
1157218334Speter
1157390075Sobrien	* exception.cc (__cplus_type_matcher): Deal with new-abi rtti.
1157418334Speter
1157590075Sobrien2000-01-30  Mark Mitchell  <mark@codesourcery.com>
1157618334Speter
1157790075Sobrien	* cp/class.c (build_vtable): Rename to build_primary_vtable.
1157890075Sobrien	(prepare_fresh_vtable): Rename to build_secondary_vtable.
1157990075Sobrien	(make_new_vtable): New function.
1158090075Sobrien	(modify_vtable_entry): Handle generation of new vtables correctly.
1158190075Sobrien	(modify_one_vtable): Remove unused parameter.
1158290075Sobrien	(dfs_fixup_vtable_deltas): Likewise.
1158390075Sobrien	(override_one_vtable): Use build_secondary_vtable.
1158490075Sobrien	(finish_struct_1): Use build_primary_vtable and
1158590075Sobrien	build_secondary_vtable.
1158618334Speter
1158790075Sobrien2000-01-28  Ulrich Drepper  <drepper@redhat.com>
1158818334Speter
1158990075Sobrien	* cp/decl.c: Adjust variable names, comments, help strings.
1159018334Speter
1159190075Sobrien2000-01-29  Nathan Sidwell  <nathan@acm.org>
1159218334Speter
1159390075Sobrien	* new2.cc (operator delete[]): Use operator delete, don't assume
1159490075Sobrien	implementation.
1159518334Speter
1159690075Sobrien2000-01-29  Nathan Sidwell  <sidwell@codesourcery.com>
1159718334Speter
1159890075Sobrien	* class.c (build_vtbl_initializer): Add argument to
1159990075Sobrien	build_vtable_entry call.
1160018334Speter
1160190075Sobrien2000-01-27  Mark Mitchell  <mark@codesourcery.com>
1160218334Speter
1160390075Sobrien	* cp-tree.def (THUNK_DECL): Discuss vcall indices.
1160490075Sobrien	* cp-tree.h (BINFO_VIRTUALS): Update documentation.
1160590075Sobrien	(BF_DELTA): New macro.
1160690075Sobrien	(BF_VCALL_INDEX): Likewise.
1160790075Sobrien	(BF_FN): Likewise.
1160890075Sobrien	(THUNK_VCALL_OFFSET): Likewise.
1160990075Sobrien	(make_thunk): Change prototype.
1161090075Sobrien	* class.c (build_vtable_entry): Integrate
1161190075Sobrien	build_vtable_entry_for_fn.  Handle vcall indices.
1161290075Sobrien	(build_vtable_entry_for_fn): Remove.
1161390075Sobrien	(set_rtti_entry): Handle vcall indices.  Use BF_DELTA,
1161490075Sobrien	BF_VCALL_INDEX, BF_FN.
1161590075Sobrien	(modify_vtable_entry): Integrate common code from
1161690075Sobrien	modify_one_vtable and dfs_fixup_vtable_deltas.
1161790075Sobrien	(add_virtual_function): Set BF_VCALL_INDEX.
1161890075Sobrien	(build_vtbl_initializer): Simplify.  Use BF_DELTA, BF_VCALL_INDEX,
1161990075Sobrien	and BF_FN.
1162090075Sobrien	(modify_one_vtable): Simplify.
1162190075Sobrien	(dfs_fixup_vtable_deltas): Likewise.
1162290075Sobrien	(override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN.
1162390075Sobrien	* method.c (make_thunk): Handle vcall indices.
1162418334Speter
1162590075Sobrien2000-01-28  Nathan Sidwell  <sidwell@codesourcery.com>
1162618334Speter
1162790075Sobrien	Compiler side new abi rtti (not enabled).
1162890075Sobrien	* cp-tree.h (new_abi_rtti_p): New macro.
1162990075Sobrien	(emit_support_tinfos): Prototype new function.
1163090075Sobrien	(tinfo_decl_p): Likewise.
1163190075Sobrien	(emit_tinfo_decl): Likwise.
1163290075Sobrien	* rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor
1163390075Sobrien	macros.
1163490075Sobrien	(doing_runtime): New local static.
1163590075Sobrien	(init_rtti_processing): Add new-abi initializer.
1163690075Sobrien	(get_tinfo_decl): Add new-abi logic.
1163790075Sobrien	(tinfo_from_decl): Likewise.
1163890075Sobrien	(build_dynamic_cast_1): Likewise.
1163990075Sobrien	(qualifier_flags): New static function.
1164090075Sobrien	(tinfo_base_init): Likewise.
1164190075Sobrien	(generic_initializer): Likewise.
1164290075Sobrien	(ptr_ref_initializer): Likewise.
1164390075Sobrien	(ptmd_initializer): Likewise.
1164490075Sobrien	(class_hint_flags): Likewise.
1164590075Sobrien	(class_initializer): Likewise.
1164690075Sobrien	(synthesize_tinfo_var): Likewise.
1164790075Sobrien	(create_real_tinfo_var): Likewise.
1164890075Sobrien	(create_pseudo_type_info): Likewise.
1164990075Sobrien	(get_vmi_pseudo_type_info): Likewise.
1165090075Sobrien	(create_tinfo_types): Likewise.
1165190075Sobrien	(emit_support_tinfos): New global function.
1165290075Sobrien	(tinfo_decl_p): New global predicate.
1165390075Sobrien	(emit_tinfo_decl): New global function.
1165490075Sobrien	* class.c (set_rtti_entry): Generalize for old and new rtti.
1165590075Sobrien	(build_vtbl_initializer): Likewise.
1165690075Sobrien	* decl2.c (finish_file): Likewise.
1165718334Speter
1165890075SobrienThu Jan 27 20:53:36 2000  Jim Wilson  <wilson@cygnus.com>
1165918334Speter
1166090075Sobrien	* optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t)
1166190075Sobrien	and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))).
1166218334Speter
1166390075SobrienThu Jan 27 13:54:12 2000  Mike Stump  <mrs@wrs.com>
1166418334Speter
1166590075Sobrien	* decl.c (pushdecl): Fix up shadow warnings with respect to implicit
1166690075Sobrien	for scopes.
1166718334Speter
1166890075Sobrien2000-01-26  Jason Merrill  <jason@casey.cygnus.com>
1166918334Speter
1167090075Sobrien	* pt.c (unify): Use fold, not maybe_fold_nontype_arg.
1167118334Speter
1167290075SobrienWed Jan 26 22:19:14 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1167318334Speter
1167490075Sobrien	* optimize.c (calls_setjmp_r): Supply new argument
1167590075Sobrien	to special_function_p.
1167652284Sobrien
1167790075Sobrien2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1167818334Speter
1167990075Sobrien	* call.c: PROTO -> PARAMS.
1168090075Sobrien	* class.c: Likewise.
1168190075Sobrien	* cp-tree.h: Likewise.
1168290075Sobrien	* cvt.c: Likewise.
1168390075Sobrien	* decl.c: Likewise.
1168490075Sobrien	* decl.h: Likewise.
1168590075Sobrien	* decl2.c: Likewise.
1168690075Sobrien	* dump.c: Likewise.
1168790075Sobrien	* errfn.c: Likewise.
1168890075Sobrien	* error.c: Likewise.
1168990075Sobrien	* except.c: Likewise.
1169090075Sobrien	* expr.c: Likewise.
1169190075Sobrien	* init.c: Likewise.
1169290075Sobrien	* input.c: Likewise.
1169390075Sobrien	* lex.c: Likewise.
1169490075Sobrien	* lex.h: Likewise.
1169590075Sobrien	* method.c: Likewise.
1169690075Sobrien	* optimize.c: Likewise.
1169790075Sobrien	* parse.y: Likewise.
1169890075Sobrien	* pt.c: Likewise.
1169990075Sobrien	* repo.c: Likewise.
1170090075Sobrien	* rtti.c: Likewise.
1170190075Sobrien	* search.c: Likewise.
1170290075Sobrien	* semantics.c: Likewise.
1170390075Sobrien	* spew.c: Likewise.
1170490075Sobrien	* tree.c: Likewise.
1170590075Sobrien	* typeck.c: Likewise.
1170690075Sobrien	* typeck2.c: Likewise.
1170790075Sobrien	* xref.c: Likewise.
1170818334Speter
1170990075Sobrien2000-01-25  Richard Henderson  <rth@cygnus.com>
1171018334Speter
1171190075Sobrien	* typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR.
1171218334Speter
1171390075Sobrien2000-01-25  Mark Mitchell  <mark@codesourcery.com>
1171418334Speter
1171590075Sobrien	* cp-tree.h (vcall_offset_in_vtable_p): New macro.
1171690075Sobrien	* class.c (build_vbase_offset_vtbl_entries): Fix typo in commment.
1171790075Sobrien	(struct vcall_offset_data_s): New type.
1171890075Sobrien	(dfs_vcall_offset_queue_p): New function.
1171990075Sobrien	(dfs_build_vcall_offset_vtbl_entries): Likewise.
1172090075Sobrien	(build_vcall_offset_vtbl_entries): Likewise.
1172190075Sobrien	(layout_vtable_decl): Likewise.
1172290075Sobrien	(num_vfun_entries): Likewise.
1172390075Sobrien	(num_extra_vtbl_entries): Add the entries for vcall offsets.
1172490075Sobrien	(build_vtbl_initializer): Likewise.
1172590075Sobrien	(dfs_finish_vtabls): Use layout_vtable_decl.
1172690075Sobrien	(modify_one_vtables): Always duplicate vtables under the new ABI.
1172790075Sobrien	(finish_struct_1): Use layout_vtable_decl.
1172818334Speter
1172990075Sobrien2000-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1173018334Speter
1173190075Sobrien	* decl.c (member_function_or_else): Change third arg from a format
1173290075Sobrien	specifier to an `enum overload_flags'.  Callers changed.
1173318334Speter
1173490075Sobrien2000-01-25  Gabriel Dos Reis  <gdr@codesourcery.com>
1173518334Speter
1173690075Sobrien	* typeck.c (composite_pointer_type, c_sizeof, expr_sizeof,
1173790075Sobrien	build_binary_op_nodefault, build_unary_op, build_reinterpret_cast,
1173890075Sobrien	build_const_cast, get_delta_difference, check_return_expr): Avoid
1173990075Sobrien	ANSI string concatenation usage.
1174018334Speter
1174190075Sobrien2000-01-24  Mark Mitchell  <mark@codesourcery.com>
1174218334Speter
1174390075Sobrien	* class.c (layout_class_type): Put the fields required to make a
1174490075Sobrien	class non-empty at the end, not the beginning, of the TYPE_FIELDs
1174590075Sobrien	list.
1174618334Speter
1174790075Sobrien2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
1174818334Speter
1174990075Sobrien	* pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a
1175090075Sobrien	template.
1175118334Speter
1175290075Sobrien	* decl2.c (mark_used): Do instantiate inlines that have been
1175390075Sobrien	explicitly instantiated.
1175418334Speter
1175590075Sobrien2000-01-24  Richard Henderson  <rth@cygnus.com>
1175618334Speter
1175790075Sobrien	* call.c (build_over_call): Use expand_tree_builtin.
1175890075Sobrien	* typeck.c (build_function_call_real): Likewise.
1175990075Sobrien	(build_binary_op_nodefault): Handle unordered compares.
1176018334Speter
1176190075Sobrien2000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
1176218334Speter
1176390075Sobrien	* cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New
1176490075Sobrien	cp_tree_index values.
1176590075Sobrien	(throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node):
1176690075Sobrien	New global node #defines for them.
1176790075Sobrien	* rtti.c (call_void_fn): Replace with ...
1176890075Sobrien	(build_runtime_decl): ... new static function.
1176990075Sobrien	(throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl.
1177090075Sobrien	(throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl.
1177190075Sobrien	(build_dynamic_cast_1): Always produce correctly typed result.
1177290075Sobrien	Explicitly produce type_info addresses. Use dynamic_cast_node.
1177390075Sobrien	* exception.cc (__throw_bad_cast): Return `void *'.
1177490075Sobrien	(__throw_bad_typeid): Return `const type_info &'.
1177518334Speter
1177690075Sobrien2000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
1177718334Speter
1177890075Sobrien	* cp-tree.h (get_vtable_decl): Prototype new function.
1177990075Sobrien	* class.c (get_vtable_decl): New function. Broken out from ...
1178090075Sobrien	(build_vtable): ... here. Use it.
1178190075Sobrien	* decl2.c (finish_vtable_vardecl): Ignore dummy vtables created
1178290075Sobrien	by get_vtable_decl.
1178318334Speter
1178490075Sobrien2000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>
1178518334Speter
1178690075Sobrien	* cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE,
1178790075Sobrien	CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE,
1178890075Sobrien	CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations.
1178990075Sobrien	(CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE,
1179090075Sobrien	CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE,
1179190075Sobrien	CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations.
1179290075Sobrien	(CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ...
1179390075Sobrien	(CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here.
1179490075Sobrien	(CPTI_TINFO_VAR_ID): New enumeration.
1179590075Sobrien	(__tp_desc_type_node, __access_mode_type_node,
1179690075Sobrien	__bltn_desc_type_node, __user_desc_type_node,
1179790075Sobrien	__class_desc_type_node, __ptr_desc_type_node,
1179890075Sobrien	__attr_desc_type_node, __func_desc_type_node,
1179990075Sobrien	__ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines.
1180090075Sobrien	(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
1180190075Sobrien	ref_desc_type_node, ary_desc_type_node, func_desc_type_node,
1180290075Sobrien	enum_desc_type_node, class_desc_type_node,
1180390075Sobrien	si_class_desc_type_node, vmi_class_desc_type_node,
1180490075Sobrien	ptmd_desc_type_node, base_desc_type_node): New #defines.
1180590075Sobrien	(tinfo_fn_id, tinfo_fn_type): Rename to ...
1180690075Sobrien	(tinfo_decl_id, tinfo_decl_type): ... here. Adjust.
1180790075Sobrien	(tinfo_var_id): New enumeration.
1180890075Sobrien	(DECL_TINFO_FN_P): Augment comment.
1180990075Sobrien	* decl.c (cp_global_trees): Adjust documentation.
1181090075Sobrien	* rtti.c (init_rtti_processing): Adjust for tinfo_decl_id,
1181190075Sobrien	tinfo_decl_type and tinfo_var_id.
1181290075Sobrien	(get_tinfo_decl_dynamic): Adjust for tinfo_decl_type.
1181390075Sobrien	(build_typeid): Remove unused variable.
1181490075Sobrien	(get_tinfo_var): Use tinfo_var_id.
1181590075Sobrien	(tinfo_name): New static function.
1181690075Sobrien	(get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type.
1181790075Sobrien	(tinfo_from_decl): Likewise.
1181890075Sobrien	(get_base_offset): New static function, broken out of
1181990075Sobrien	expand_class_desc.
1182090075Sobrien	(expand_si_desc): Use tinfo_name.
1182190075Sobrien	(expand_class_desc): Likewise. Lose local static variable.
1182290075Sobrien	Use base_desc_type_node. Use get_base_offset.
1182390075Sobrien	(expand_ptr_desc): Use tinfo_name.
1182490075Sobrien	(expand_attr_desc): Likewise.
1182590075Sobrien	(expand_generic_desc): Likewise.
1182618334Speter
1182790075Sobrien	* tinfo.cc (__GXX_ABI_VERSION): Test value and existence.
1182890075Sobrien	* tinfo.h (__GXX_ABI_VERSION): Test value and existence.
1182918334Speter
1183090075Sobrien2000-01-23  Mark Mitchell  <mark@codesourcery.com>
1183118334Speter
1183290075Sobrien	* cp-tree.h (__eprintf): Remove declaration.
1183390075Sobrien	* tree.c (__eprintf): Remove definition.
1183418334Speter
1183590075Sobrien2000-01-23  Zack Weinberg  <zack@rabi.columbia.edu>
1183690075Sobrien	    Mark Mitchell  <mark@codesourcery.com>
1183718334Speter
1183890075Sobrien	* cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N,
1183990075Sobrien	CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings.
1184018334Speter
1184190075Sobrien2000-01-23  Brad Lucier  <lucier@math.purdue.edu>
1184218334Speter
1184390075Sobrien	* class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly.
1184418334Speter
1184590075Sobrien2000-01-23  Mark Mitchell  <mark@codesourcery.com>
1184618334Speter
1184790075Sobrien	* cp-tree.h (register_dtor_fn): New function.
1184890075Sobrien	* decl.c (destroy_local_static): Rename to ...
1184990075Sobrien	(register_dtor_fn): ... this.  Give it external linkage.
1185090075Sobrien	(expand_static_init): Use it.
1185190075Sobrien	* decl2.c (do_static_initialization): Likewise, if using
1185290075Sobrien	__cxa_atexit.
1185390075Sobrien	(do_static_destruction): Check that __cxa_atexit is not in use.
1185490075Sobrien	(finish_file): Don't call do_static_destruction if using
1185590075Sobrien	__cxa_atexit.
1185618334Speter
1185790075Sobrien	* typeck.c (convert_arguments): Restore two-message error
1185890075Sobrien	reporting.
1185918334Speter
1186090075Sobrien2000-01-20  Nathan Sidwell  <sidwell@codesourcery.com>
1186118334Speter
1186290075Sobrien	Remap dynamic cast hint values to be consistent across ABIs.
1186390075Sobrien	* search.c (dynamic_cast_base_recurse): Remap generated value.
1186490075Sobrien	(get_dynamic_cast_base_type): Adjust documentation.
1186590075Sobrien	* tinfo.h (__user_type_info::dyncast): Likewise.
1186690075Sobrien	(__user_type_info::find_public_subobj): Remap BOFF meaning.
1186790075Sobrien	* tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning.
1186890075Sobrien	(__class_type_info::do_dyncast): Likewise.
1186990075Sobrien	(__class_type_info::do_find_public_subobj): Likewise.
1187090075Sobrien	* tinfo2.cc (__dynamic_cast): Remap BOFF parameter.
1187118334Speter
1187290075Sobrien2000-01-19  Gabriel Dos Reis  <gdr@codesourcery.com>
1187318334Speter
1187490075Sobrien	* typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn.
1187518334Speter
1187690075Sobrien	* typeck2.c (incomplete_type_error): Restore previous
1187790075Sobrien	cp_error and cp_error_at call sequence.
1187818334Speter
1187990075Sobrien2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
1188018334Speter
1188190075Sobrien	* class.c (dump_class_hierarchy): Make format agree with argument;
1188290075Sobrien	cast pointer to unsigned long and print with %lx.
1188318334Speter
1188490075Sobrien2000-01-19  Gabriel Dos Reis  <gdr@codesourcery.com>
1188518334Speter
1188690075Sobrien	* decl2.c (lang_decode_option): Set default line-wrap length to 72.
1188718334Speter
1188890075Sobrien	* typeck.c (composite_pointer_type, common_type,
1188990075Sobrien	comp_target_parms, c_sizeof, expr_sizeof, build_array_ref,
1189090075Sobrien	build_function_call_real, convert_arguments,
1189190075Sobrien	build_binary_op_nodefault, pointer_int_sum, pointer_diff,
1189290075Sobrien	build_unary_op, mark_addressable, build_compound_expr,
1189390075Sobrien	build_static_cast, build_reinterpret_cast, build_const_cast,
1189490075Sobrien	build_c_cast, build_modify_expr, get_delta_difference,
1189590075Sobrien	build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with
1189690075Sobrien	'ISO C++'.  Fusion consecutive calls to diagnostic message routines
1189790075Sobrien	into a single one.
1189890075Sobrien	* typeck2.c (readonly_error, abstract_virtuals_error,
1189990075Sobrien	process_init_constructor, check_for_new_type): Likewise.
1190018334Speter
1190190075Sobrien2000-01-19  Mark Mitchell  <mark@codesourcery.com>
1190218334Speter
1190390075Sobrien	* tree.c (bot_manip): Set DECL_CONTEXT for newly created
1190490075Sobrien	VAR_DECLs.
1190518334Speter
1190690075Sobrien2000-01-18  Nathan Sidwell  <sidwell@codesourcery.com>
1190718334Speter
1190890075Sobrien	* cp-tree.h (get_tinfo_fn_dynamic): Remove prototype.
1190990075Sobrien	(build_x_typeid): Likewise.
1191090075Sobrien	(get_tinfo_fn): Likewise.
1191190075Sobrien	(get_tinfo_fn_unused): Rename to ...
1191290075Sobrien	(get_tinfo_decl): ... here.
1191390075Sobrien	* rtti.c (build_headof): Replace logic error with assertion.
1191490075Sobrien	(get_tinfo_fn_dynamic): Rename to ...
1191590075Sobrien	(get_tinfo_decl_dynamic): ... here. Make static. Use
1191690075Sobrien	complete_type_or_else.
1191790075Sobrien	(build_x_typeid): Move into ...
1191890075Sobrien	(build_typeid): ... here. Adjust call to
1191990075Sobrien	get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify
1192090075Sobrien	throw_bad_typeid expression.
1192190075Sobrien	(get_tinfo_fn_unused): Rename to ...
1192290075Sobrien	(get_tinfo_decl): ... here. Adjust comment.
1192390075Sobrien	(get_tinfo_fn): Delete.
1192490075Sobrien	(tinfo_from_decl): New static function.
1192590075Sobrien	(get_typeid_1): Call get_tinfo_decl and tinfo_from_decl.
1192690075Sobrien	(get_typeid): Use complete_type_or_else.
1192790075Sobrien	(build_dynamic_cast_1): Adjust calls to
1192890075Sobrien	get_tinfo_decl_dynamic. Simplify throw_bad_cast expression.
1192990075Sobrien	* parse.y (primary): Adjust call to build_typeid.
1193090075Sobrien	* except.c (build_eh_type_type_ref): Adjust call to
1193190075Sobrien	get_tinfo_decl. Mark as used.
1193290075Sobrien	* class.c (set_rtti_entry): Adjust call to get_tinfo_decl.
1193390075Sobrien	* decl2.c (build_expr_from_tree): Adjust call to build_typeid.
1193490075Sobrien	* parse.c: Regenerated.
1193518334Speter
1193690075Sobrien2000-01-17  Mark Mitchell  <mark@codesourcery.com>
1193718334Speter
1193890075Sobrien	* class.c (fixed_type_or_null): Don't clear NONNULL.  Document
1193990075Sobrien	calling convention.
1194090075Sobrien	(resolves_to_fixed_type_p): Document calling convention.
1194190075Sobrien	* rtti.c (build_x_typeid): Initialize NONNULL.
1194218334Speter
1194390075Sobrien	* cp-tree.h (build_shared_int_cst): New function.
1194490075Sobrien	* call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity.
1194590075Sobrien	* class.c (modify_vtable_entry): Likewise.
1194690075Sobrien	(add_virtual_function): Split out code to generated shared
1194790075Sobrien	INTEGER_CSTs to build_share_int_cst.
1194890075Sobrien	(modify_all_vtables): Handle all the overridden functions here.
1194990075Sobrien	Add overridden functions from non-primary virtual bases to the
1195090075Sobrien	primary vtable.
1195190075Sobrien	(finish_struct_1): Adjust call to modify_all_vtables.  Add
1195290075Sobrien	overridden functions from non-primary bases to the vtable.
1195390075Sobrien	* tree.c (build_shared_int_cst): New function.
1195418334Speter
1195590075Sobrien	* cp-tree.h (scratchalloc): Remove.
1195690075Sobrien	(build_scratch_list): Likewise.
1195790075Sobrien	* call.c (convert_class_to_reference): Replace build_scratch_list
1195890075Sobrien	and build_expr_list with build_tree_list.
1195990075Sobrien	(add_candidate): Replace scratchalloc with expralloc.  Note memory
1196090075Sobrien	leak.
1196190075Sobrien	(build_user_type_conversion_1):  Replace build_scratch_list
1196290075Sobrien	and build_expr_list with build_tree_list.
1196390075Sobrien	(build_new_op): Likewise.
1196490075Sobrien	(build_op_delete_call): Likewise.
1196590075Sobrien	(convert_like): Likewise.
1196690075Sobrien	* cvt.c (ocp_convert): Likewise.
1196790075Sobrien	* decl.c (start_decl): Likewise.
1196850397Sobrien	(start_function): Likewise.
1196990075Sobrien	(finish_destructor_body): Likewise.
1197090075Sobrien	(maybe_build_cleanup_1): Likewise.
1197190075Sobrien	* decl2.c (reparse_decl_as_expr): Likewise.
1197290075Sobrien	* init.c (perform_member_init): Likewise.
1197390075Sobrien	(expand_cleanup_for_base): Likewise.
1197490075Sobrien	(build_builtin_delete_call): Likewise.
1197590075Sobrien	(build_new_1): Likewise.
1197690075Sobrien	(build_delete): Likewise.
1197750397Sobrien	* method.c (do_build_assign_ref): Likewise.
1197890075Sobrien	* parse.y (already_scoped_stmt): Likewise.
1197990075Sobrien	(nontrivial_exprlist): Likewise.
1198090075Sobrien	(net_initializer): Likewise.
1198190075Sobrien	(initlist): Likewise.
1198290075Sobrien	* parse.c: Regenerated.
1198390075Sobrien	* rtti.c (build_x_typeid): Likewise.
1198490075Sobrien	(build_dynamic_cast_1): Likewise.
1198590075Sobrien	* typeck.c (build_x_compound_expr): Likewise.
1198690075Sobrien	(build_static_cast): Likewise.
1198790075Sobrien	(build_modify_expr): Likewise.
1198818334Speter
1198990075Sobrien	* cp-tree.h (DECL_VINDEX): Add documentation.
1199090075Sobrien	* class.c (build_vtable_entry): Likewise.
1199190075Sobrien	(start_vtable): Add comment.
1199290075Sobrien	(add_virtual_function): Replace pending_hard_virtuals with
1199390075Sobrien	overridden_virtuals and pending_virtuals with new_virtuals.
1199490075Sobrien	Replace redundant assignments with assertions.
1199590075Sobrien	(check_for_override): Add comment.
1199690075Sobrien	(check_bases_and_members): Replace pending_hard_virtuals with
1199790075Sobrien	overridden_virtuals and pending_virtuals with new_virtuals.
1199890075Sobrien	(create_vtbl_ptr): Likewise.
1199990075Sobrien	(layout_class_type): Likewise.
1200090075Sobrien	(finish_struct_1): Likewise.  Add comments.
1200118334Speter
1200290075Sobrien2000-01-16  Mark Mitchell  <mark@codesourcery.com>
1200318334Speter
1200490075Sobrien	* class.c (finish_struct_1): Replace redundant code with
1200590075Sobrien	assertions.
1200618334Speter
1200790075Sobrien	* cp-tree.h (flag_new_abi): Move.
1200890075Sobrien	(flag_use_cxa_atexit): Likewise.
1200990075Sobrien	(flag_honor_std): Likewise.
1201090075Sobrien	(flag_rtti): Likewise.
1201190075Sobrien	(vbase_offsets_in_vtable_p): Define.
1201290075Sobrien	(vptrs_present_everywhere_p): Likewise.
1201390075Sobrien	(TYPE_CONTAINS_VPTR_P): Likewise.
1201490075Sobrien	(dfs_walk_real): Declare.
1201590075Sobrien	* class.c (build_vbase_pointer_fields): Check
1201690075Sobrien	vbase_offsets_in_vtable_p.
1201790075Sobrien	(dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in
1201890075Sobrien	BINFO_VPTR_FIELD.
1201990075Sobrien	(build_vbase_offset_vtbl_entries): Simplify.
1202090075Sobrien	(build_vbase_offset_vtbl_entries): Adjust.
1202190075Sobrien	(build_vbase_pointer): Add ability to look up vbase offsets in
1202290075Sobrien	vtable.
1202390075Sobrien	(start_vtable): New function.
1202490075Sobrien	(add_virtual_function): Use it.
1202590075Sobrien	(determine_primary_base): Use TYPE_CONTAINS_VPTR_P.
1202690075Sobrien	(num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p.
1202790075Sobrien	(build_vtbl_initializer): Take the type of the complete object as
1202890075Sobrien	input.  Use it to correctly calculate vbase offsets.
1202990075Sobrien	(dfs_finish_vtbls): Pass the complete type to
1203090075Sobrien	build_vtbl_initializer.
1203190075Sobrien	(check_bases_and_members): Use TYPE_CONTAINS_VPTR_P.
1203290075Sobrien	(create_vtable_ptr): Create a vtable even if there are no
1203390075Sobrien	new virtual functions, under the new ABI.
1203490075Sobrien	(finish_struct_1): Likewise.
1203590075Sobrien	(get_vfield_name): Use TYPE_CONTAINS_VPTR_P.
1203690075Sobrien	* decl.c (exapnd_static_init): Remove call to
1203790075Sobrien	preserve_initializer.
1203890075Sobrien	* decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in
1203990075Sobrien	vtables.
1204090075Sobrien	* init.c (initialize_vtbl_ptrs): Initialize them in pre-order.
1204190075Sobrien	(expand_virtual_init): Use vbase_offsets_in_vtable_p.
1204290075Sobrien	(construct_virtual_bases): Don't initialize virtual base pointers
1204390075Sobrien	under the new ABI.
1204490075Sobrien	(build_aggr_init): Clean up comment.
1204590075Sobrien	(expand_aggr_init_1): Likewise.
1204690075Sobrien	* rtti.c (expand_class_desc): Store the virtual function table
1204790075Sobrien	index where the vbase offset lives in the offset field.
1204890075Sobrien	* search.c (dfs_walk_real): Make it global.
1204990075Sobrien	(dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P.
1205090075Sobrien	* tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD.
1205118334Speter
1205290075Sobrien	* tinfo.h (USItype): Make it signed under the new ABI.
1205390075Sobrien	* tinfo.cc (convert_to_base): New function.  Encapsulate base
1205490075Sobrien	conversion logic here.
1205590075Sobrien	(__class_type_info::do_upcast): Use it.
1205690075Sobrien	(__class_type_info::do_dyncast): Likewise.
1205790075Sobrien	(__class_type_info::do_find_public_subobj): Likewise.
1205818334Speter
1205990075Sobrien	* init.c (construct_virtual_bases): Don't look up the addresses of
1206090075Sobrien	virtual bases at run-time.
1206118334Speter
1206290075Sobrien	* class.c (build_vbase_pointer): Relocate.
1206390075Sobrien	(build_vbase_pointer_fields): Likewise.
1206490075Sobrien	(dfs_build_vbase_offset_vtbl_entries): Likewise.
1206590075Sobrien	(build_vbase_offset_vtbl_entries): Likewise.
1206618334Speter
1206790075Sobrien	* decl.c (init_decl_processing): Complain if -fnew-abi
1206890075Sobrien	-fno-vtable-thunks is used.
1206918334Speter
1207090075Sobrien	* decl2.c (lang_decode_option): Don't couple flag_honor_std to
1207190075Sobrien	flag_new_abi.
1207218334Speter
1207390075Sobrien2000-01-15  Mark Mitchell  <mark@codesourcery.com>
1207418334Speter
1207590075Sobrien	* cp-tree.h (num_extra_vtbl_entries): New function.
1207690075Sobrien	(size_extra_vtbl_entries): Likewise.
1207790075Sobrien	(dfs_vtable_path_unmark): Likewise.
1207890075Sobrien	(dfs_vtable_path_unmarked_real_bases_queue_p): Likewise.
1207990075Sobrien	(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
1208090075Sobrien	* class.c (num_extra_vtbl_entries): New function.
1208190075Sobrien	(size_extra_vtbl_entries): Likewise.
1208290075Sobrien	(dfs_build_vbase_offset_vtbl_entries): New function.
1208390075Sobrien	(build_vbase_offset_vtbl_entries): Likewise.
1208490075Sobrien	(build_vtbl_initializer): Use it.
1208590075Sobrien	(finish_struct_1): Adjust vtable sizes (using
1208690075Sobrien	num_extra_vtbl_entries).
1208790075Sobrien	* expr.c (cplus_expand_expr): Assert that the DECL_RTL for a
1208890075Sobrien	THUNK_DECL is non-NULL before expanding it.
1208990075Sobrien	* init.c (expand_virtual_init): Adjust the vtable pointer by
1209090075Sobrien	size_extra_vtbl_entries before storing it.
1209190075Sobrien	* search.c (get_shared_vase_if_not_primary): Adjust prototype.
1209290075Sobrien	Handle TREE_LIST parameters here, not in the dfs_* functions.
1209390075Sobrien	(dfs_unmarked_real_bases_queue_p): Adjust.
1209490075Sobrien	(dfs_marked_real_bases_queue_p): Likewise.
1209590075Sobrien	(dfs_vtable_path_unmarked_real_bases_queue_p): New function.
1209690075Sobrien	(dfs_vtable_path_marked_real_bases_queue_p): New function.
1209790075Sobrien	(dfs_vtable_path_unmark): Likewise.
1209818334Speter
1209990075Sobrien2000-01-14  Mark Mitchell  <mark@codesourcery.com>
1210018334Speter
1210190075Sobrien	* optimize.c (copy_body_r): Clear the operand three of a
1210290075Sobrien	TARGET_EXPR when copying it.
1210318334Speter
1210490075Sobrien2000-01-14  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1210518334Speter
1210690075Sobrien	* method.c (build_decl_overload_real): Check whether we are in ::
1210790075Sobrien	before returning __builtin_new/delete.
1210818334Speter
1210990075Sobrien2000-01-13  Mark Mitchell  <mark@codesourcery.com>
1211018334Speter
1211190075Sobrien	* pt.c (tsubst_friend_function): Improve comment.
1211290075Sobrien	(instantiate_decl): Avoid crashing when a "nested" function is
1211390075Sobrien	instantiated from the top level.
1211418334Speter
1211590075Sobrien	* dump.c (dqeueue_and_dump): Dump
1211690075Sobrien	DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION.
1211718334Speter
1211890075Sobrien2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1211918334Speter
1212090075Sobrien	* call.c: If GATHER_STATISTICS, declare `n_build_method_call'.
1212118334Speter
1212290075Sobrien2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
1212318334Speter
1212490075Sobrien	* g++spec.c (lang_specific_driver): Add -fnew-abi if
1212590075Sobrien	ENABLE_NEW_GXX_ABI defined.
1212690075Sobrien	* Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o,
1212790075Sobrien	opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o,
1212890075Sobrien	opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch.
1212918334Speter
1213090075Sobrien2000-01-12  Mark Mitchell  <mark@codesourcery.com>
1213118334Speter
1213290075Sobrien	* decl.c (start_cleanup_fn): Call pushdecl.
1213318334Speter
1213490075Sobrien	* call.c (convert_class_to_reference): Fix typos.
1213590075Sobrien	(build_conditional_expr): Handle errors gracefully.
1213690075Sobrien	* class.c (push_nested_class): Likewise.
1213790075Sobrien	* cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro.
1213890075Sobrien	(DECL_THIS_EXTERN): Use it.
1213990075Sobrien	(DECL_THIS_STATIC): Likewise.
1214090075Sobrien	* cvt.c (convert_to_void): Handle errors gracefully.
1214190075Sobrien	(build_expr_type_conversion): Likewise.
1214290075Sobrien	* decl.c (maybe_push_decl): Likewise.
1214390075Sobrien	(start_decl_1): Likewise.
1214490075Sobrien	(require_complete_types_for_parms): Likewise.
1214590075Sobrien	* parse.y (structsp): Likewise.
1214690075Sobrien	(base_class): Likewise.
1214790075Sobrien	* parse.c: Regenerated.
1214890075Sobrien	* pt.c (finish_member_template_decl): Likewise.
1214990075Sobrien	* typeck.c (decay_conversion): Likewise.
1215018334Speter
1215190075Sobrien	* cp-tree.h (dfs_skip_vbases): New function.
1215290075Sobrien	(find_vbase_instance): Likewise.
1215390075Sobrien	* class.c (determine_primary_base): Allow a nearly empty base to
1215490075Sobrien	serve as a primary base class under the new ABI.
1215590075Sobrien	(get_class_offset_1): Rename to ...
1215690075Sobrien	(dfs_get_class_offset): ... this.  Simplify.  Don't issue error
1215790075Sobrien	messages here.
1215890075Sobrien	(get_class_offset): Use it.  Issue error messages here.
1215990075Sobrien	(dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to
1216090075Sobrien	find the right copies of virtual bases.
1216190075Sobrien	(fixup_vtable_deltas1): Rename to ...
1216290075Sobrien	(dfs_fixup_vtable_deltas): ... this.  Adjust to handle virtual
1216390075Sobrien	bases as primary bases.
1216490075Sobrien	(fixup_vtable_deltas): Remove.
1216590075Sobrien	(override_one_vtable): Handle virtual bases as primary bases.
1216690075Sobrien	(merge_overrides): Likewise.
1216790075Sobrien	(finish_struct_1): Likewise.
1216890075Sobrien	(dump_class_hierarchy): Dump primary-ness of bases as well.
1216990075Sobrien	* search.c (mark_primary_bases): Use a pre-order traversal to
1217090075Sobrien	handle primary virtual bases.
1217190075Sobrien	(dfs_skip_vbases): New fiunction.
1217290075Sobrien	(expand_upcast_fixups): Adjust to handle primary virtual bases.
1217390075Sobrien	(fixup_virtual_upcast_offsets): Likewise.
1217490075Sobrien	(fixup_all_virtual_upcast_offsets): Likewise.
1217590075Sobrien	(dfs_find_vbase_instances): New function.
1217690075Sobrien	(find_vbase_instance): Likewise.
1217718334Speter
1217890075Sobrien2000-01-11  Mumit Khan  <khan@xraylith.wisc.edu>
1217918334Speter
1218090075Sobrien	* lex.c (DIR_SEPARATOR): Delete macro.
1218118334Speter
1218290075Sobrien2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
1218318334Speter
1218490075Sobrien       * decl2.c (lang_decode_option): Handle automatic line wrapping
1218590075Sobrien       option.
1218618334Speter
1218790075Sobrien2000-01-11  Mark Mitchell  <mark@codesourcery.com>
1218818334Speter
1218990075Sobrien	* friend.c (do_friend): Don't resolve scopes when processing
1219090075Sobrien	template declarations, even if the qualifying scope doesn't
1219190075Sobrien	involve template parameters.
1219218334Speter
1219390075Sobrien2000-01-10  Mark Mitchell  <mitchell@dumbledore.codesourcery.com>
1219418334Speter
1219590075Sobrien	* class.c (dfs_modify_vtables_queue_p): Remove.
1219690075Sobrien	(modify_all_vtables): Use dfs_unmarked_real_bases_queue_p
1219790075Sobrien	and dfs_marked_real_bases_queue_p instead of
1219890075Sobrien	dfs_modify_vtables_queue_p.
1219918334Speter
1220090075Sobrien	* class.c (build_vbase_path): Simplify.
1220190075Sobrien	(dfs_propagate_binfo_offsets): New function.
1220290075Sobrien	(propagate_binfo_offsets): Use it.
1220390075Sobrien	(remove_base_field): Simplify.
1220490075Sobrien	(dfs_set_offset_for_vbases): Remove.
1220590075Sobrien	(dfs_set_offset_for_shared_vbases): New function.
1220690075Sobrien	(dfs_set_offset_for_unshared_vbases): Likewise.
1220790075Sobrien	(layout_virtual_bases): Use them.
1220890075Sobrien	(layout_basetypes): Don't call propagate_binfo_offsets.
1220990075Sobrien	* search.c (dfs_get_vbase_types): Clone completely fresh binfos
1221090075Sobrien	for the vbases.
1221118334Speter
1221290075Sobrien	* class.c (build_base_field): New function, split out from ...
1221390075Sobrien	(build_base_fields): ... here.  Use it.  Allocate primary bases
1221490075Sobrien	first, under the new ABI.
1221590075Sobrien	(get_vtable_entry): Remove.
1221690075Sobrien	(remove_base_field): New function, split out from ...
1221790075Sobrien	(remove_base_fields): ... here.  Adjust since primary bases come
1221890075Sobrien	first under the new ABI.
1221918334Speter
1222090075Sobrien	* cp-tree.h (expand_direct_vtbls_init): Remove declaration.
1222190075Sobrien	(initialize_vtbl_ptrs): New function.
1222290075Sobrien	(expand_indirect_vtbls_init): Change prototype.
1222390075Sobrien	(convert_pointer_to_vbase): Declare.
1222490075Sobrien	* init.c (expand_direct_vtbls_init): Remove.
1222590075Sobrien	(dfs_initialize_vtbl_ptrs): New function.
1222690075Sobrien	(initialize_vtbl_ptrs): Likewise.
1222790075Sobrien	(emit_base_init): Use initialize_vtbl_ptrs.
1222890075Sobrien	* search.c (convert_pointer_to_vbase): Make it global.
1222990075Sobrien	(expand_indirect_vtbls_init): Remove vtable initialization code.
1223090075Sobrien	* semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs.
1223118334Speter
1223290075Sobrien	* class.c (dfs_finish_vtbls): New function.
1223390075Sobrien	(finish_vtbls): Use it.
1223490075Sobrien	(dump_class_hierarchy): New function.
1223518334Speter
1223690075Sobrien	* cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition.
1223790075Sobrien	(BINFO_VBASE_PRIMARY_P): New macro.
1223890075Sobrien	(BINFO_VIRTUALS): Add to documentation.
1223990075Sobrien	(SET_BINFO_PRIMARY_MARKED_P): Remove.
1224090075Sobrien	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
1224190075Sobrien	(dfs_mark_primary_bases_queue_p): Likewise.
1224290075Sobrien	(dfs_unmarked_real_bases_queue_p): New function.
1224390075Sobrien	(dfs_marked_real_bases_queue_p): Likewise.
1224490075Sobrien	* search.c (dfs_mark_primary_bases): Adjust.
1224590075Sobrien	(mark_primary_bases): Likewise.
1224690075Sobrien	(get_shared_vbase_if_not_primary): New function.
1224790075Sobrien	(dfs_unmarked_real_bases_queue_p): Likewise.
1224890075Sobrien	(dfs_marked_real_bases_queue_p): Likewise.
1224990075Sobrien	(dfs_get_pure_virtuals): Simplify.
1225090075Sobrien	(get_pure_virtuals): Likewise.
1225118334Speter
1225290075Sobrien2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1225318334Speter
1225490075Sobrien	* lex.c: Include tm_p.h.
1225518334Speter
1225690075Sobrien2000-01-07  Nathan Sidwell  <sidwell@codesourcery.com>
1225718334Speter
1225890075Sobrien	* lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro.
1225918334Speter
1226090075Sobrien2000-01-06  Jason Merrill  <jason@casey.cygnus.com>
1226118334Speter
1226290075Sobrien	* decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT.
1226390075Sobrien	* pt.c (instantiate_decl): Defer comdat templates that might not be
1226490075Sobrien	needed.
1226518334Speter
1226690075Sobrien	* cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT.
1226790075Sobrien	* decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT.
1226890075Sobrien	(finish_file): Likewise.
1226918334Speter
1227090075Sobrien	* decl2.c (import_export_class): Undo 12/14 change.
1227118334Speter
1227290075Sobrien	* error.c (dump_decl): operator new, not operatornew.
1227318334Speter
1227490075Sobrien	* class.c (field_decl_cmp): A nontype is "greater" than a type.
1227590075Sobrien	* search.c (lookup_field_1): Look for the last field with the
1227690075Sobrien	desired name.
1227718334Speter
1227890075Sobrien2000-01-05  Nathan Sidwell  <nathan@acm.org>
1227918334Speter
1228090075Sobrien	* decl2.c (lookup_arg_dependent): Deal with FNS not being a
1228190075Sobrien	FUNCTION_DECL.
1228218334Speter
1228390075Sobrien2000-01-05  Nathan Sidwell  <nathan@acm.org>
1228452284Sobrien
1228590075Sobrien	* typeck.c (build_static_cast): Don't strip target qualifiers
1228690075Sobrien	when casting from a class.
1228718334Speter
1228890075Sobrien2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1228918334Speter
1229090075Sobrien	* class.c (warn_hidden): Initialize variable `fndecl'.
1229118334Speter
1229290075Sobrien2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
1229318334Speter
1229490075Sobrien	* decl.c (flag_isoc9x): New variable to be able to use code in
1229590075Sobrien	c-common.c.  For now always zero.
1229618334Speter
1229790075Sobrien2000-01-03  Mark Mitchell  <mark@codesourcery.com>
1229818334Speter
1229990075Sobrien	* cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation.
1230090075Sobrien	* class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN
1230190075Sobrien	or unshare_base_binfos for virtual bases here.
1230290075Sobrien	* search.c (dfs_get_vbase_types): Do it here.
1230390075Sobrien	(get_vbase_types): Adjust.
1230418334Speter
1230590075Sobrien2000-01-02  Mark Mitchell  <mark@codesourcery.com>
1230618334Speter
1230790075Sobrien	* cp-tree.h (CLASSTYPE_VFIELDS): Move definition.
1230890075Sobrien	(BINFO_PRIMARY_MARKED_P): Use flag 5.
1230990075Sobrien	(SET_BINFO_PRIMARY_MARKED_P): Likewise.
1231090075Sobrien	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
1231190075Sobrien	(unmark_primary_bases): Remove declaration.
1231290075Sobrien	(unmarkedp): Declare.
1231390075Sobrien	(dfs_vbase_unmark): Likewise.
1231490075Sobrien	* class.c (determine_primary_base): Return immediately if there
1231590075Sobrien	are no base classes.  Call mark_primary_bases here.
1231690075Sobrien	(modify_all_direct_vtables): Remove.
1231790075Sobrien	(modify_all_indirect_vtables): Remove.
1231890075Sobrien	(dfs_modify_vtables_queue_p): New function.
1231990075Sobrien	(dfs_modify_vtables): New function.
1232090075Sobrien	(modify_all_vtables): Use them.
1232190075Sobrien	(build_base_fields): Build FIELD_DECLs for primary virtual base
1232290075Sobrien	classes.
1232390075Sobrien	(create_vtable_ptr): Don't call determine_primary_base here.
1232490075Sobrien	(dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ...
1232590075Sobrien	(dfs_set_offset_for_vbases): ... this.
1232690075Sobrien	(layout_virtual_bases): Use it.
1232790075Sobrien	(layout_class_type): Call determine_primary_base here.
1232890075Sobrien	* search.c (unmarkedp): Make it global.
1232990075Sobrien	(shared_marked_p): Simplify.
1233090075Sobrien	(shared_unmarked_p): Likewise.
1233190075Sobrien	(dfs_primary_bases_queue_p): Remove.
1233290075Sobrien	(dfs_unmark_primary_bases): Likewise.
1233390075Sobrien	(unmark_primary_bases): Likewise.
1233490075Sobrien	(mark_primary_bases): Simplify.
1233590075Sobrien	(get_pure_virtuals): Don't call mark_primary_bases here.
1233690075Sobrien	(dfs_vbase_unmark): New function.
1233790075Sobrien	(get_vbase_types): Simplify.
1233818334Speter
1233990075Sobrien	* class.c (struct base_info): Remove.
1234090075Sobrien	(determine_primary_base): Take has_virtual_p rather than a
1234190075Sobrien	base_info as input.  Don't calculate max_has_virtual.
1234290075Sobrien	(finish_struct_bits): Remove max_has_virtual argument.
1234390075Sobrien	(create_vtable_ptr): Remove max_has_virtual_p argument.
1234490075Sobrien	(layout_virtual_bases): Remove max argument.
1234590075Sobrien	(layout_basetypes): Likewise.
1234690075Sobrien	(layout_class_type): Remove max_has_virtual_p argument.
1234790075Sobrien	(finish_struct_1): Remove max_has_virtual.
1234818334Speter
1234990075Sobrien	* cp-tree.h (dfs_mark_primary_bases_queue_p): New function.
1235090075Sobrien	(layout_basetypes): Remove.
1235190075Sobrien	* class.c (propagate_binfo_offsets): Moved here from tree.c.
1235290075Sobrien	Update to handle primary virtual bases.
1235390075Sobrien	(remove_base_fields): New function, split out from
1235490075Sobrien	layout_basetypes.
1235590075Sobrien	(dfs_mark_primary_bases_and_set_vbase_offsets): New function.
1235690075Sobrien	(layout_virtual_bases): New function, split out from
1235790075Sobrien	layout_basetypes.  Update to handle primary virtual bases.
1235890075Sobrien	(layout_basetypes): Moved here from tree.c.  Use
1235990075Sobrien	remove_base_fields and layout_virtual_bases.
1236090075Sobrien	* search.c (dfs_mark_primary_bases_queue_p): New function.
1236190075Sobrien	(mark_primary_bases): Use it.
1236290075Sobrien	* tree.c (CEIL): Remove.
1236390075Sobrien	(propagate_binfo_offsets): Remove.
1236490075Sobrien	(layout_basetypes): Remove.
1236518334Speter
1236690075Sobrien2000-01-01  Mark Mitchell  <mark@codesourcery.com>
1236718334Speter
1236890075Sobrien	* cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES.
1236990075Sobrien	(BINFO_PRIMARY_MARKED_P): New macro.
1237090075Sobrien	(SET_BINFO_PRIMARY_MARKED_P): Likewise.
1237190075Sobrien	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
1237290075Sobrien	(mark_primary_bases): New function.
1237390075Sobrien	(unmark_primary_bases): Likewise.
1237490075Sobrien	* search.c (get_abstract_virtuals_1): Remove.
1237590075Sobrien	(dfs_mark_primary_bases): New function.
1237690075Sobrien	(mark_primary_bases): Likewise.
1237790075Sobrien	(dfs_unmark_primary_bases): Likewise.
1237890075Sobrien	(unmark_primary_bases): Likewise.
1237990075Sobrien	(dfs_get_pure_virtuals): Likewise.
1238018334Speter
1238190075Sobrien2000-01-01  Mark Mitchell  <mark@codesourcery.com>
1238218334Speter
1238390075Sobrien	* cp-tree.h (skip_rtti_stuff): Adjust prototype.
1238490075Sobrien	* class.c (skip_rtti_stuff): Reorganize parameters and return value.
1238590075Sobrien	(modify_one_vtable): Adjust.
1238690075Sobrien	(fixup_vtable_deltas1): Likewise.
1238790075Sobrien	(override_one_vtable): Likewise.
1238890075Sobrien	* search.c (get_abstract_virtuals_1): Likewise.
1238990075Sobrien	(get_pure_virtuals): Likewise.
1239090075Sobrien	(expand_upcast_fixups): Likewise.
1239190075Sobrien	* tree.c (debug_binfo): Likewise.
1239218334Speter
1239390075Sobrien	* class.c (build_vtable): Don't return a value.  Don't rebuild
1239490075Sobrien	vtables for bases that have already been handled.
1239590075Sobrien	(prepare_fresh_vtable): Don't rebuild vtables for bases that have
1239690075Sobrien	already been handled.
1239790075Sobrien	(modify_one_vtable): Adjust accordingly.
1239890075Sobrien	(fixup_vtable_deltas1): Likewise.
1239990075Sobrien	(finish_struct_1): Likewise.
1240018334Speter
1240190075Sobrien2000-01-01  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
1240218334Speter
1240390075Sobrien	* call.c (build_new_method_call): Also check destructors.
12404