2000-12-29  Jakub Jelinek  <jakub@redhat.com>

	* decl.c (init_decl_processing): Fix sign of wchar_type_node.

2000-12-29  Mark Mitchell  <mark@codesourcery.com>

	* class.c (pushclass): Remove #if 0'd code.
	* cp-tree.h (overload_template_name): Remove.
	* decl.c (store_bindings): Simplify.
	(pop_from_top_level): Likewise.
	* pt.c (overload_template_name): Remove.
	(instantiate_decl): Don't call push_to_top_level if it's not
	needed.

2000-12-28  Mark Mitchell  <mark@codesourcery.com>

	* pt.c (register_local_specialization): Don't return a value.
	(lookup_template_class): Use move-to-front heuristic when looking
	up template instantiations.
	(instantiate_decl): Only push_to_top_level when we're actually
	going to instantiate the template.

2000-12-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* search.c (binfo_for_vtable): Return least derived class, not
	most.  Handle secondary vtables.

2000-12-22  Jason Merrill  <jason@redhat.com>

	* pt.c (more_specialized): Don't optimize len==0.
	(fn_type_unification): If we're adding the return type, increase len.

	* typeck.c (build_binary_op): Fix pmf comparison logic.

	* call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
	DECL_STATIC_FUNCTION_P.

	* semantics.c (genrtl_finish_function): Don't try to jump to
	return_label unless it exists.

	In partial ordering for a call, ignore parms for which we don't have
	a real argument.
	* call.c (joust): Pass len to more_specialized.
	(add_template_candidate_real): Strip 'this', pass len.
	* pt.c (more_specialized): Pass len down.  Lose explicit_args parm.
	(get_bindings_order): New fn.  Pass len down.
	(get_bindings_real): Strip 'this', pass len.
	(fn_type_unification): Likewise.
	(type_unification_real): Succeed after checking 'len' args.
	(most_specialized_instantiation): Lose explicit_args parm.
	* class.c (resolve_address_of_overloaded_function): Strip 'this',
	pass len.

2000-12-21  Jason Merrill  <jason@redhat.com>

	* pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
	DECL_TEMPLATE_RESULT.

	* search.c (lookup_field_r): Call lookup_fnfields_1, not
	lookup_fnfields_here.

	* parse.y (typename_sub2): Return the TYPE_DECL, not the type.

	* call.c (build_object_call): Also allow conversions that return
	reference to pointer to function.
	(add_conv_candidate): Handle totype being ref to ptr to fn.
	(build_field_call): Also allow members of type reference to function.
	Lose support for calling pointer to METHOD_TYPE fields.

	* error.c (dump_expr): Handle *_CAST_EXPR.

	* typeck2.c (build_scoped_ref): Always convert to the naming class.

	* tree.c (break_out_cleanups): Lose.
	* cp-tree.h: Remove prototype.
	* typeck.c (build_component_ref): Don't break_out_cleanups.
	(build_compound_expr): Likewise.
	* semantics.c (finish_expr_stmt): Likewise.

2000-12-20  Richard Henderson  <rth@redhat.com>

	* cp-tree.h: Update declarations.
	* decl.c (finish_case_label): Return the new stmt node.
	* semantics.c (finish_goto_stmt): Likewise.
	(finish_expr_stmt, finish_return_stmt): Likewise.
	(finish_break_stmt, finish_continue_stmt): Likewise.
	(finish_asm_stmt): Likewise.
	* parse.y (already_scoped_stmt): Set STMT_LINENO.
	(compstmt, implicitly_scoped_stmt, stmt): Likewise.
	(simple_if, simple_stmt): Return the new stmt node.
	(save_lineno): New.

2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>

	* cp-tree.h: Don't declare warn_long_long.

2000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
	IS_AGGR_TYPE.

2000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* pt.c (unify): Handle when both ARG and PARM are
	BOUND_TEMPLATE_TEMPLATE_PARM.

2000-12-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
	DECL_TEMPLATE_PARM_P.

2000-12-15  Jason Merrill  <jason@redhat.com>

	* init.c (build_new_1): Reorganize.  Now with 100% fewer SAVE_EXPRs!

	* init.c (build_new_1): Don't strip quals from type.

	* decl.c (pushdecl): Don't check for linkage on a non-decl.

	* call.c (build_op_delete_call): See through ARRAY_TYPEs.

	* call.c (build_new_function_call): Lose space before paren in
	error message.
	(build_new_method_call): Likewise.

	* typeck2.c (build_m_component_ref): Propagate quals from datum.

2000-12-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* pt.c (check_explicit_specialization): Propagate default
	function arguments to explicit specializations.

2000-12-13  DJ Delorie  <dj@redhat.com>

	* typeck.c (build_binary_op): Do signed/unsigned warnings for >?
	and <? operators.

2000-12-08  Jason Merrill  <jason@redhat.com>

	* error.c (dump_function_name): Don't let the user see __comp_ctor.

	Clean up copy-initialization in overloading code.
	* call.c (build_user_type_conversion_1): Die if we are asked to
	convert to the same or a base type.
	(implicit_conversion): Avoid doing so.  Lose reference binding code.
	(convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
	direct-initialization.  Also do direct-init part of copy-init.
	(build_user_type_conversion): Don't provide context to convert_like.
	* cvt.c (ocp_convert): build_user_type_conversion will now provide
	the constructor call for copy-init.

	* pt.c (tsubst_decl): Call clone_function_decl here if this is an
	instantiation of a member template.
	(do_decl_instantiation): Not here.

2000-12-07  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (check_field_decls): Don't special case anonymous
	fields in error messages.
	(note_name_declared_in_class): Use %D on diagnostic.

	* tree.c (pod_type_p): Use strip_array_types.
	(cp_valid_lang_attribute): Likewise.
	* typeck.c (cp_type_quals): Strip arrays separately, to avoid
	multiple evaluations.
	(cp_has_mutable_p): Use strip_array_types.

2000-12-07  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (sufficient_parms_p): Declare new function.
	* call.c (sufficient_parms_p): New function, broken out of ...
	(add_function_candidate): ... here. Use it.
	(add_conv_candidate): Use it.
	* decl.c (grok_ctor_properties): Use it.

2000-12-07  Jakub Jelinek  <jakub@redhat.com>

	* optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.

2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>

	* decl2.c (lang_decode_option): Handle -Wformat-security.

2000-12-06  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* pt.c (verify_class_unification): New function.
	(get_class_bindings): Use it.
	(try_class_unification): Tidy.
	(unify): Handle when argument of a template-id is not
	template parameter dependent.
	(template_args_equal): Handle when TREE_CODE's do not match.

2000-12-06  Alexandre Oliva  <aoliva@redhat.com>

	* lang-specs.h (c++): When invoking the stand-alone preprocessor
	for -save-temps, pass all relevant -Defines to it, and then don't
	pass them to cc1plus.

2000-12-05  Will Cohen  <wcohen@redhat.com>

	* decl.c (finish_case_label): Cleared
	more_cleanups_ok in surrounding function scopes.
	(define_label): Likewise.

2000-12-05  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
	(get_matching_virtual): Remove.
	(look_for_overrides): Declare new function.
	* decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
	DECL_VINDEX here.
	* class.c (check_for_override): Move base class iteration code
	to look_for_overrides.
	* search.c (next_baselink): Remove.
	(get_virtuals_named_this): Remove.
	(get_virtual_destructor): Remove.
	(tree_has_any_destructors_p): Remove.
	(struct gvnt_info): Remove.
	(check_final_overrider): Remove `virtual' from error messages.
	(get_matching_virtuals): Remove. Move functionality to ...
	(look_for_overrides): ... here, and ...
	(look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
	to be overriding.

2000-12-05  Nathan Sidwell  <nathan@codesourcery.com>

	* typeck.c (get_delta_difference): If via a virtual base,
	return zero.
	* cvt.c (cp_convert_to_pointer): If via a virtual base, do no
	adjustment.

2000-12-04  Richard Henderson  <rth@redhat.com>

	* error.c (dump_tree): Use output_add_string not OB_PUTS.

2000-12-04  Jason Merrill  <jason@redhat.com>

	* mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
	(write_builtin_type): Pass intSI_type_node and the like through
	type_for_mode.
	* method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
	Pass intSI_type_node and the like through type_for_mode.
	* decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
	* pt.c (tsubst, unify): Likewise.
	* tree.c (walk_tree): Likewise.
	* error.c (dump_type): Likewise.
	(dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.

	* Make-lang.in: Tweak top comment for emacs.
	(cp/TAGS): Restore.

	* except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.

	* class.c (clone_function_decl): Robustify.

2000-12-04  Michael Matz  <matzmich@cs.tu-berlin.de>

	* decl.c (store_bindings): Only search in the non modified
	old_bindings for duplicates.

2000-12-04  Nathan Sidwell  <nathan@codesourcery.com>

	* error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
	TYPE_POLYMORPHIC_P.

	* typeck.c (build_static_cast): Remove unused variable.

2000-12-01  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* pt.c: Fix typo in comment.

2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>

	* decl2.c (warn_format): Remove definition.
	(lang_decode_option): Handle -Wformat-nonliteral,
	-Wno-format-extra-args and -Wno-format-y2k.  Use set_Wformat.

2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>

	* decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
	(init_decl_processing): Don't create string_type_node,
	const_string_type_node, wint_type_node, intmax_type_node,
	uintmax_type_node, default_function_type, ptrdiff_type_node and
	unsigned_ptrdiff_type_node.  Adjust position of call to
	c_common_nodes_and_builtins.
	(identifier_global_value): New function.

2000-12-01  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (standard_conversion): Reject pointer to member
	conversions from ambiguous, inaccessible or virtual bases.
	* typeck.c (build_static_cast): Don't check pointers to members
	specially.

2000-11-30  Nathan Sidwell  <nathan@codesourcery.com>

	* method.c (do_build_copy_constructor): Preserve cv
	qualifications when accessing source object members.
	(do_build_assign_ref): Likewise. Remove separate diagnostics for
	unnamed fields.

2000-11-30  Nathan Sidwell  <nathan@codesourcery.com>

	* method.c (do_build_assign_ref): Construct appropriately
	CV-qualified base reference. Don't allow const casts in base
	conversion.

2000-11-30  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (build_over_call): Use VOID_TYPE_P. Don't die on
	incomplete return type.

2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>

	* parse.y (base_class.1): Produce a _TYPE not a _DECL.
	* semantics.c (finish_base_specifier): Accept a _TYPE not a
	_DECL.

2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>

	* spew.c (yyerror): Cope if yylval.ttype is NULL.

2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (grokdeclarator): Diagnose undefined template contexts.

2000-11-28  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (grokdeclarator): Do type access control on friend
	class.

2000-11-27  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
	bison parser ickiness.
	* pt.c (tsubst_friend_function): Enter namespace scope when
	tsubsting the function name.
	* cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.

2000-11-27  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
	* cvt.c (cp_convert_to_pointer): Add force parameter.
	Allow conversions via virtual base if forced.
	(convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
	(ocp_convert): Likewise.
	* search.c (binfo_from_vbase): Return the virtual base's binfo.
	* typeck.c (get_delta_difference): Adjust handling of virtual
	bases.

2000-11-26  Mark Mitchell  <mark@codesourcery.com>

	* tree.c (struct list_hash): Remove.
	(list_hash_table): Make it be an htab.
	(struct list_proxy): New type.
	(list_hash_eq): New function.
	(list_hash_pieces): Renamed from ...
	(list_hash): ... this.
	(list_hash_lookup): Remove.
	(list_hash_add): Remove.
	(hash_tree_cons): Use the generic hashtable.
	(mark_list_hash): Remove.
	(init_tree): Create the hashtable.

2000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>

	* method.c (build_mangled_C9x_name): Rename to
	build_mangled_C99_name.  Change C9X references in comments to
	refer to C99.

2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>

	* parse.y (unary_expr): Move VA_ARG from here ...
	(primary): ... to here.

2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>

	* semantics.c (finish_id_expr): If type is error_mark, return
	error_mark.

2000-11-23  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (lookup_template_class): Simplify loop exit constructs.
	Cope when there is no partial instantiation of a template
	template member.

2000-11-23  J"orn Rennecke <amylaar@redhat.com>

	* Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).

2000-11-22  Mark Mitchell  <mark@codesourcery.com>

	* mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
	prefix.

	* pt.c (do_decl_instantiate): Explicitly clone constructors and
	destructors that haven't already been cloned.

2000-11-20  Richard Henderson  <rth@redhat.com>

	* parse.y (yyparse_1): Rename the parser entry point.

2000-11-20  Alex Samuel  <samuel@codesourcery.com>

	* mangle.c (write_name): Use <unscoped-name> for names directly in
	function scope.
	(write_unscoped_name): Accept names directly in function scope.

2000-11-20  Nathan Sidwell  <nathan@codesourcery.com>

	* lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
	* parse.y (extdef): Add EXPORT reduction.
	* spew.c (yylex): Don't skip export here.

2000-11-19  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (init_decl_processing): Correct name of pure virtual
	function under the new ABI.
	* rtti.c (throw_bad_cast): Likewise, for bad cast function.
	(throw_bad_typeid): Likewise for bad typeid function.

2000-11-18  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (grokparms): Don't even function types of `void' type,
	either.
	* mangle.c (write_type): Don't crash when confronted with the
	error_mark_node.

	* decl.c (grokparms): Don't create parameters of `void' type.

2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>

	* lex.c (mark_impl_file_chain): Delete.
	(init_parse): Remove call to ggc_add_string_root.  No need to
	ggc_strdup a string constant.  Do not add impl_file_chain to GC
	roots.
	(handle_pragma_implementation): No need to ggc_strdup main_filename.

2000-11-17  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.

2000-11-17  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
	* decl.c (grokdeclarator): Don't reject void parms here.
	(require_complete_types_for_parms): Simplify, use
	complete_type_or_else.
	(grokparms): Remove bitrot. Remove funcdef parm.
	Deal with ellipsis parm lists here.
	* semantics.c (finish_parmlist): Don't append void_list_node
	here. Set PARMLIST_ELLIPSIS_P.

2000-11-17  Nathan Sidwell  <nathan@codesourcery.com>

	* typeck2.c (incomplete_type_error): Reorganize to avoid
	excessive diagnostics.

2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>

	* lex.c (struct impl_files, internal_filename): Constify a char *.

2000-11-16  Mark Mitchell  <mark@codesourcery.com>

	* mangle.c (write_special_name_constructor): Don't generate
	assembler junk when confronted with an old-style constructor.
	(write_special_name_destructor): Likewise.
	(mangle_decl_string): Do it here instead.

2000-11-16  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (op_error): Make error messages clearer.

2000-11-15  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (wrapup_globals_for_namespace): Don't mark things
	TREE_ASM_WRITTEN when they're not.

2000-11-15  Jason Merrill  <jason@redhat.com>

	* typeck2.c (friendly_abort): Uncount the error before handing
	off to fancy_abort.

2000-11-15  Nathan Sidwell  <nathan@codesourcery.com>

	* typeck.c (lookup_anon_field): Cope with qv qualifiers.

2000-11-14  Mark Mitchell  <mark@codesourcery.com>

	* class.c (build_vtbl_initializer): Fix typo in comment.
	* typeck.c (expr_sizeof): Don't crash on errors.

2000-11-14  Jim Wilson  <wilson@redhat.com>

	* lang-specs.h: Add %2 after %(cc1_options).

2000-11-14  Richard Henderson  <rth@redhat.com>

	* typeck.c (c_sizeof): Be strict about casting result value
	back to c_size_type_node.
	(expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.

2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>

	* typeck.c (build_unary_op): Use boolean_increment from
	c-common.c, moving the relevant code there.

2000-11-11  Jason Merrill  <jason@redhat.com>

	* typeck.c (mark_addressable): Don't call put_var_into_stack.

	* decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
	in inlines.

2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
	* lex.c (copy_lang_decl): Likewise.

2000-11-09  Mark Mitchell  <mark@codesourcery.com>

	* dump.c (cp_dump_tree): Don't dump function bodies here.

	* Make-lang.in (CXX_C_OBJS): Add c-dump.o.
	(dump.o): Update dependency list.
	* cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
	(flag_dump_translation_unit): Likewise.
	(CP_TYPE_QUALS): Adjust definition.
	(DECL_C_BIT_FIELD): Remove.
	(SET_DECL_C_BIT_FIELD): Likewise.
	(CLEAR_DECL_C_BIT_FIELD): Likewise.
	(add_maybe_template): Likewise.
	(strip_array_types): Likewise.
	(dump_node_to_file): Likewise.
	(cp_dump_tree): New function.
	* decl.c (init_decl_processing): Set lang_dump_tree.
	* decl2.c (flag_dump_translation_unit): Remove.
	* dump.c: Move most of it to ../c-dump.c.
	(cp_dump_tree): New function.
	* pt.c (add_maybe_template): Remove.
	* typeck.c (strip_array_types): Likewise.

2000-11-07  Eric Christopher  <echristo@redhat.com>

	* decl.c (init_decl_processing): Change definition of
	__wchar_t to wchar_t.  Remove artificial declaration of
	wchar_t.
	* lex.c: Change instances of __wchar_t to wchar_t.

2000-11-09  Nathan Sidwell  <nathan@codesourcery.com>

	* lex.c (do_identifier): Don't lookup_name for operators.
	* parse.y (operator): Save looking_for_typename.
	(unoperator): Restore it.
	* spew.c (frob_opname): Use nth_token for lookahead.

2000-11-08  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (grok_op_properties): Always use coerce_new_type and
	coerce_delete_type.
	* decl2.c (coerce_new_type): Use c_size_type_node. Preserve
	exception specification. Tidy up.
	(coerce_delete_type): Preserve exception specification. Tidy up.

2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>

	* class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
	(push_binding_level), error.c (cp_tree_printer), pt.c
	(process_partial_specialization, tsubst_template_arg_vector),
	search.c (lookup_member): Use memset () instead of bzero ().

2000-11-07  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (build_ptrmemfunc_type): Allow error_mark_node.

2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>

	* Make-lang.in (c++.distdir): Remove.

2000-11-04  Mark Mitchell  <mark@codesourcery.com>

	* decl2.c (do_nonmember_using_decl): Allow `extern "C"'
	declarations from different namespaces to be combined.

2000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>

	* decl.c: Include tm_p.h.

2000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>

	* tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().

2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>

	* dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
	(build_overload_value), repo.c (open_repo_file), xref.c
	(open_xref_file): Use strchr () and strrchr () instead of index ()
	and rindex ().

2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>

	* call.c (build_over_call): Call fold on the CALL_EXPR.

2000-11-01  Gabriel Dos Reis  <gdr@codesourcery.com>

	* error.c (dump_template_decl): Separate template hearders with
	space not comma.

2000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>

	* error.c: Move TFF_ macros into cp-tree.h.  Throughout, replace
	TS_* flags with corresponding TFF_*.  Adjust prototypes of
	functions (which used to take a tree_string_flags) to take an int.

	* cp-tree.h (enum tree_string_flags): Remove
	(TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
	TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
	TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
	TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
	TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
	TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
	(type_as_string, decl_as_string, expr_as_string,
	context_as_string): Adjust prototype.

	* class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
	instead of TS_PLAIN.

	* pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
	instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
	plain `0'.

2000-10-30  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
	(linkage_kind): New enumeration.
	(decl_linkage): New function.
	* decl2.c (comdat_linkage): Extend comment.
	* error.c (dump_function_decl): Print the arguments used to
	instantiate a template, even when not printing the type of the
	function.
	* pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
	not TREE_PUBLIC, to test for external linkage.
	* tree.c (decl_linkage): New function.

2000-10-28  Mark Mitchell  <mark@codesourcery.com>

	* pt.c (instantiate_decl): Always instantiate static data members
	initialized in-class.

2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>

	* Make-lang.in: Move all build rules here from Makefile.in,
	adapt to new context.  Wrap all rules that change the current
	directory in parentheses.  Expunge all references to $(P).
	When one command depends on another and they're run all at
	once, use && to separate them, not ;.  Add OUTPUT_OPTION to
	all object-file generation rules.  Delete obsolete variables.

	* Makefile.in: Delete.
	* config-lang.in: Delete outputs= line.

2000-10-26  Gabriel Dos Reis  <gdr@codesourcery.com>

	* error.c (dump_function_decl): Print no space between
	`ptr-operator' the `type-specifier' of the return type.
	(dump_type_prefix): Make sure we put space at the appropriate
	place.

2000-10-23  Jason Merrill  <jason@redhat.com>

	* call.c (equal_functions): Also call decls_match for extern "C" fns.

2000-10-22  Jason Merrill  <jason@redhat.com>

	* call.c (build_conditional_expr): Use ocp_convert to force
	rvalue conversion.

2000-10-22  Mark Mitchell  <mark@codesourcery.com>

	* call.c (standard_conversion): Use RVALUE_CONVs for all
	expressions that satisfy lvalue_p, not just those that satisfy
	real_lvalue_p.

	* optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.

	* typeck.c (c_sizeof): Return an expression of `size_t' type,
	not one with TYPE_IS_SIZETYPE set.
	(dubious_conversion_warnings): Remove special-case code.

2000-10-21  Geoffrey Keating  <geoffk@cygnus.com>

	* decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
	* error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
	(dump_type_prefix): Print vector-of-int as 'int vector'.
	(dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
	* tree.c (walk_tree): Handle VECTOR_TYPE.

	* decl.c (init_decl_processing): Call MD_INIT_BUILTINS.

2000-10-21  Jason Merrill  <jason@redhat.com>

	* parse.y (operator): Set got_object from got_scope.
	Set looking_for_typename.
	* decl.c (lookup_name_real): Clear val after setting from_obj.
	Reorganize diagnostic.

2000-10-20  Jason Merrill  <jason@redhat.com>

	* tree.c (walk_tree): Don't walk into default args.

	* error.c (dump_expr): Use host_integerp.

2000-10-20  David Edelsohn  <edelsohn@gnu.org>

	* typeck2.c (abstract_virtuals_error): Use "because" instead of
	"since" in error message.

2000-10-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.

2000-10-20  Jeffrey Oldham  <oldham@codesourcery.com>

	* decl.c (revert_static_member_fn): Fixed typo.

2000-10-19  Mark Mitchell  <mark@codesourcery.com>

	* class.c (subobject_offset_fn): New type.
	(dfs_record_base_offsets): Remove.
	(record_base_offsets): Likewise.
	(dfs_search_base_offsets): Likewise.
	(record_subobject_offset): New function.
	(check_subobject_offset): Likewise.
	(walk_subobject_offsets): Likewise.
	(record_subobject_offsets): Likewise.
	(layout_conflict_p): Reimplement.
	(layout_nonempty_base_or_field): Correct handling of type
	conflicts during layout.
	(layout_empty_base): Likewise.
	(build_base_field): Adjust to handle new representation of empty
	base offset table.
	(build_base_fields): Likewise.
	(layout_virtual_bases): Likewise.
	(splay_tree_compare_integer_csts): New function.
	(layout_class_type): Use a splay_tree, rather than a varray, to
	represent the offsets of empty bases.

	* cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
	* decl.c (select_decl): Don't return declarations that are
	DECL_ANTICIPATED.

2000-10-18  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
	(fake_std_node): New macro.
	* decl.c (in_std): Rename to ...
	(in_fake_std): ... this.
	(flag_no_builtin): Remove.
	(flag_no_nonansi_builtin): Likewise.
	(walk_namespaces_r): Use fake_std_node.
	(push_namespace): Use std_identifier.
	(pop_namespace): Use in_fake_std.
	(lookup_name_real): Use fake_std_node.
	(init_decl_processing): When -fhonor-std, create the `std'
	namespace.  Don't create a dummy fake_std_node in that case.
	Adjust call to c_common_nodes_and_builtins.  Use std_identifier.
	(builtin_function): Put builtins whose names don't begin
	with `_' in the std namespace.
	* decl2.c (flag_no_builtin): Remove.
	(flag_no_nonansi_builtin): Likewise.
	(set_decl_namespace): Use fake_std_node.
	(validate_nonmember_using_decl): Likewise.
	(do_using_directive): Likewise.
	(handle_class_head): Likewise.
	* dump.c (dequeue_and_dump): Likewise.
	* except.c (init_exception_processing): Use std_identifier.
	* init.c (build_member_call): Use fake_std_node.
	* rtti.c (init_rtti_processing): Use std_identifier.

2000-10-17  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (back_end_hook): Remove declaration.
	* decl2.c (back_end_hook): Remove definition.

	* dump.c (dequeue_and_dump): Dump TREE_USED.

2000-10-17  Brad Lucier <lucier@math.purdue.edu>

	* spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).

2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>

	* decl.c (WINT_TYPE): Define.
	(init_decl_processing): Create types unsigned_ptrdiff_type_node,
	c_size_type_node, signed_size_type_node and wint_type_node.

2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>

	* decl2.c (warn_missing_format_attribute): New variable.
	(lang_decode_option): Decode -Wmissing-format-attribute.

2000-10-16  Mark Mitchell  <mark@codesourcery.com>

	* typeck.c (qualify_type): Remove.
	(composite_pointer_type): Fix handling of conversions to `cv void*'.

2000-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (parse.c, parse.h): Fix think-o in last patch.

2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (parse.c, parse.h): Create atomically.

2000-10-12  Mark Mitchell  <mark@codesourcery.com>

	* class.c (current_obstack): Remove.
	* decl.c (ggc_p): Remove.
	(start_decl): Don't use decl_tree_cons.
	(grokdeclarator): Don't use build_decl_list.
	(start_function): Don't use decl_tree_cons.
	(finish_function): Don't mess with obstacks.
	* decl2.c (grok_x_components): Don't use build_decl_list.
	* lex.c (make_call_declarator): Don't call decl_tree_cons.
	(implicitly_declare_fn): Don't call build_decl_list.
	* parse.y (frob_specs): Don't call build_decl_list or
	decl_tree_cons.
	(expr_or_declarator_intern): Don't call decl_tree_cons.
	(primary): Don't call build_decl_list.
	(fcast_or_absdcl): Likewise.
	(typed_declspecs): Don't call decl_tree_cons.
	(reserved_declspecs): Don't call build_decl_list.
	(declmods): Likewise.
	(reserved_typespecquals): Likewise.
	(aggr): Likewise.
	(new_type_id): Likewise.
	(cv_qualifiers): Likewise.
	(after_type_declarator_intern): Likewise.
	(notype_declarator_intern): Likewise.
	(absdcl_intern): Likewise.
	(named_parm): Likewise.
	* pt.c (most_specialized_class): Likewise.
	* repo.c (temporary_obstack): Make it a structure, not a pointer.
	(init_repo): Initialize it.
	* search.c (current_obstack): Remove.
	* typeck2.c (add_exception_specifier): Don't call build_decl_list.

2000-10-09  Richard Henderson  <rth@cygnus.com>

	* Make-lang.in (CXX_EXTRA_HEADERS): Remove.
	(c++ language support bits for libgcc): Remove.
	(c++.clean): Remove cplib2.txt cleanup.
	* config-lang.in (headers, lib2funcs): Remove.

	* exception.cc, new.cc, new1.cc, new2.cc: Remove files.
	* tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
	* inc/cxxabi.h, inc/exception, inc/new: Remove files.
	* inc/new.h, inc/typeinfo: Remove files.

2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>

	* decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
	defined.
	(init_decl_processing): Initialize intmax_type_node and
	uintmax_type_node.

2000-10-06  Richard Henderson  <rth@cygnus.com>

	* cp-tree.h (struct cp_language_function): Remove x_result_rtx.
	(original_result_rtx): Remove.
	* decl.c (save_function_data): Don't clear x_result_rtx.
	(mark_lang_function): Don't mark it either.
	* expr.c (fixup_result_decl): Remove.
	* semantics.c (genrtl_named_return_value): Frob the return decl
	before calling emit_local_var.
	(genrtl_finish_function): Don't call fixup_result_decl.
	Always emit the jump to return_label.

2000-10-06  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (lookup_template_class): Set current access for enum.
	(tsubst_enum): Set file & line for enum decl.

	* spew.c (yylex): Remove unused variable.

2000-10-05  Richard Henderson  <rth@cygnus.com>

	* semantics.c (genrtl_finish_function): Don't init or check
	can_reach_end; remove noreturn and return value checks.

2000-10-05  Tom Tromey  <tromey@cygnus.com>

	* init.c (build_java_class_ref): Use `build_static_name' with a
	suffix, not a prefix, to build the class object's name.

2000-10-05  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (access_kind): Fix comment typo.
	* decl2.c (grokfield): Fix diagnostic typo.
	* semantics.c (finish_template_type): Fix comment typo.
	(finish_qualified_object_call_expr): Likewise.

2000-10-05  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (tsubst_expr, DECL_STMT case): Don't process if
	tsubsting fails.

2000-10-05  Nathan Sidwell  <nathan@codesourcery.com>

	* spew.c (frob_id): New static function.
	(frob_opname): Use it.
	(yylex): Use it.

2000-10-01  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (lang_mark_false_label_stack): Remove.
	* lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.

2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>

	* gxxint.texi: Use @email for formatting email addresses.

2000-09-29  Gabriel Dos Reis  <gdr@codesourcery.com>

	* error.c: Remove direct obstack manipulation.  Replace with
	output_buffer-based formatting.  Adjust calls to removed macros.
	(obstack_chunk_alloc, obstack_chunk_free): Remove.
	(OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
	OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.

2000-09-24  Mark Mitchell  <mark@codesourcery.com>

	* ir.texi: Move to ../c-tree.texi.

2000-09-20  Jason Merrill  <jason@redhat.com>

	* decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.

2000-09-21  Andreas Jaeger  <aj@suse.de>

	* errfn.c: Move declaration of cp_printer and cp_printers to ...
	* cp-tree.h: ... here.

	* error.c: Remove declaration of cp_printer.

2000-09-20  Mark Mitchell  <mark@codesourcery.com>

	* tree.c (mark_local_for_remap_r): Handle CASE_LABELs.

2000-09-20  Hans-Peter Nilsson  <hp@axis.com>

	* except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
	users.

2000-09-18  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (start_function): Robustify.

2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cp-tree.h (check_function_format): Accept a `status' parameter.

	* call.c, typeck.c: Updates calls to `check_function_format'.

2000-09-17  Geoffrey Keating  <geoffk@cygnus.com>

	* decl2.c (handle_class_head): Always push some scope even
	in the error case.

2000-09-16  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (struct cp_language_function): Remove
	x_scope_stmt_stack and name_declared.
	(current_scope_stmt_stack): Remove.
	(function_name_declared_p): New macro.
	(struct lang_decl_flags): Use c_lang_decl as a base class.
	(context): Remove.
	(struct lang_decl): Replace saved_tree with context.
	(DECL_FRIEND_CONTEXT): Adjust accordingly.
	(SET_DECL_FRIEND_CONTEXT): Likewise.
	(DECL_VIRTUAL_CONTEXT): Likewise.
	(DECL_SAVED_TREE): Remove.
	(C_DECLARED_LABEL_FLAG): Likewise.
	(cplus_expand_expr_stmt): Don't declare.
	(add_decl_stmt): Likewise.
	(add_scope_stmt): Likewise.
	* decl.c (mark_stmt_tree): Remove.
	(case_compare): Likewise.
	(finish_case_label): Use c_add_case_label.
	(init_decl_processing): Set more language-specific hooks.
	(build_enumerator): Fix typo in comment.
	(cplus_expand_expr_stmt): Remove.
	(mark_lang_function): Use mark_c_language_function.
	(lang_mark_tree): Use c_mark_lang_decl.
	* decl2.c: Change order of inclusion.
	* except.c: Likewise.
	* expr.c (cplus_expand_expr): Remove handling of STMT_EXPR.  Fall
	back on c_expand_expr.
	* friend.c: Include expr.h.
	* init.c: Change order of inclusion.
	* Makefile.in: Update dependencies.
	* lex.h (free_lang_decl_chain): Remove.
	* optimize.c (maybe_clone_body): Use function_name_declared_p.
	* pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
	it doesn't exist.
	(instantiate_decl): Use function_name_declared_p.
	* semantics.c (lang_expand_expr_stmt): Remove.
	(set_current_function_name_declared): Likewise.
	(current_function_name_declared): Likewise.
	(begin_compound_stmt): Use function_name_declared_p.
	(add_decl_stmt): Remove.
	(setup_vtbl_ptr): Use function_name_declared_p.
	(add_scope_stmt): Remove.
	(current_scope_stmt_stack): New function.
	(cp_expand_stmt): Don't handle SCOPE_STMTs.
	(expand_body): Use function_name_declared_p.
	* tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
	* typeck.c: Change order of includes.
	(convert_sequence): Remove.

2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>

	* lex.c (reswords): Add _Complex.

2000-09-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* Make-lang.in (cplib2.txt): Depend on cp/Makefile.

2000-09-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>

	* init.c (begin_init_stmts): Don't use // comments.

2000-09-12  Jason Merrill  <jason@redhat.com>

	* decl.c (maybe_deduce_size_from_array_init): Set do_default for
	all non-extern arrays.

	* decl.c (grokdeclarator): Complain about 'friend T' for implicit
	typenames, too.  Downgrade complaint to pedwarn.
	(xref_tag): Warn about surprising behavior of 'friend struct T'.
	* decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
	'class This::Inherited'.

2000-09-12  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (finish_case_label): Given the LABEL_DECL a
	DECL_CONTEXT.

2000-09-12  Gabriel Dos Reis  <gdr@codesourcery.com>

	* error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
	TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
	TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
	TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
	TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
	New macros.
	(sorry_for_unsupported_tree, print_scope_operator,
	print_left_paren, print_right_paren, print_left_bracket,
	print_right_bracket, print_whitespace): Likewise.
	(aggr_variety): Rename to class_key_or_enum.
	(print_type): Rename to print_type_id.
	(print_type_specifier_seq, print_simple_type_specifier,
	print_elaborated_type_specifier,
	print_rest_of_abstract_declarator,
	print_parameter_declaration_clause, print_exception_specification,
	print_nested_name_specifier, print_template_id,
	typedef_original_name,  print_template_argument_list_start,
	print_template_argument_list_end): New functions.

2000-09-11  Gabriel Dos Reis  <gdr@codesourcery.com>

	* ir.texi: Add more documentation.

2000-09-11  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (struct saved_scope): Remove x_function_parms.
	(current_function_parms): Don't define.
	(struct cp_language_function): Remove parms_stored.
	(current_function_just_assigned_this): Don't define.
	(current_function_parms_stored): Likewise.
	(static_ctors): Declare.
	(static_dtors): Likewise.
	(SF_EXPAND): Don't define.
	(expand_start_early_try_stmts): Remove declaration.
	(store_parm_decls): Likewise.
	* decl.c (static_ctors): Don't declare.
	(static_dtors): Likewise.
	(struct binding_level): Remove this_block.
	(poplevel): Remove dead code.
	(set_block): Likewise.
	(mark_binding_level): Don't mark this_block.
	(mark_saved_scope): Don't mark x_function_parms.
	(init_decl_processing): Don't add current_function_parms as a GC
	root.
	(check_function_type): Change prototype.
	(start_function): Remove RTL-generation code.
	(expand_start_early_try_stmts): Remove.
	(store_parm_decls): Give it internal linkage.  Remove
	RTL-generation code.
	(finish_function): Remove RTL-generation code.
	* decl2.c (static_ctors): Fix formatting.
	(static_dtors): Likewise.
	* method.c (use_thunk): Don't call store_parm_decls.
	(synthesize_method): Likewise.
	* optimize.c (maybe_clone_body): Likewise.
	* parse.y (fn.def2): Likewise.
	(.set_base_init): Likewise.
	(nodecls): Likewise.
	* pt.c (instantiate_decl): Likewise.
	* rtti.c (synthesize_tinfo_fn): Likewise.
	* semantics.c (genrtl_try_block): Simplify.
	(expand_body): Use genrtl_start_function and
	genrtl_finish_function.
	(genrtl_start_function): New function.
	(genrtl_finish_function): Likewise.

2000-09-11  Nathan Sidwell  <nathan@codesourcery.com>

	* error.c (cp_tree_printer, case 'P'): Append break.

2000-09-11  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (frob_opname): Declare.
	* parse.y (saved_scopes): New static variable.
	(cp_parse_init): Adjust.
	(do_id): If lastiddecl is NULL, do do_identifier.
	(operator): Save scope information.
	(unoperator): New reduction. Restore scope information.
	(operator_name): Append unoperator. Call frob_opname.
	* spew.c (frob_opname): Define.

2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>

	* decl.c, rtti.c: Include defaults.h if not already included.
	Don't define the *_TYPE_SIZE macros.

2000-09-09  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (push_switch): Change prototype.
	(check_cp_case_value): Remove declaration.
	(decl_constant_value): Likewise.
	* decl.c (struct cp_switch): Add switch_stmt and cases.
	(case_compare): New function.
	(push_switch): Set switch_stmt.  Initialize cases.
	(pop_switch): Clean up cases.
	(define_case_label): Rename to ...
	(finish_case_label): ... this.  Do semantic analysis for case
	labels here.
	(start_function): Correct comment.
	* decl2.c (check_cp_case_value): Remove.
	* expr.c (do_case): Remove.
	* pt.c (tsubst_expr): Adjust call to finish_case_label.
	* semantics.c (genrtl_do_poplevel): Remove declaration.
	(RECHAIN_STMTS): Remove.
	(finish_break_stmt): Use build_break_stmt.
	(finish_continue_stmt): Use build_continue_stmt.
	(finish_switch_cond): Adjust condition here, rater than in
	c_expand_start_case.
	(finish_case_label): Remove.
	* typeck.c (c_expand_return): Remove.
	(c_expand_start_case): Likewise.

2000-09-07  Gabriel Dos Reis  <gdr@codesourcery.com>

	* ir.texi: Document type nodes.

2000-09-06  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (init_cp_semantics): Declare.
	(genrtl_try_block): Don't declare.
	(genrtl_handler): Likewise.
	(genrtl_catch_block): Likewise.
	(genrtl_ctor_stmt): Likewise.
	(genrtl_subobject): Likewise.
	(genrtl_do_poplevel): Likewise.
	(genrtl_named_return_value): Likewise.
	* lex.c (init_parse): Call init_cp_semantics.
	* semantics.c (genrtl_try_block): Give it internal linkage.
	(genrtl_handler): Likewise.
	(genrtl_catch_block): Likewise.
	(genrtl_ctor_stmt): Likewise.
	(genrtl_subobject): Likewise.
	(genrtl_do_poplevel): Likewise.
	(genrtl_named_return_value): Likewise.
	(lang_expand_stmt): Rename to ...
	(cp_expand_stmt): ... this.  Only handle C++-specific nodes.
	(init_cp_semantics): Define.

	* decl.c (initialize_local_var): Remove RTL-generating code.
	* semantics.c (genrtl_try_block): Fix formatting.

	Move statement-tree facilities from C++ to C front-end.
	* cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
	(void_zero_node): Remove.
	(stmt_tree): Likewise.
	(scope_chain): Adjust.
	(language_function): Rename to cp_language_function.
	(cp_function_chain): Adjust.
	(current_stmt_tree): Remove.
	(last_tree): Likewise.
	(last_expr_type): Likewise.
	(struct lang_decl): Adjust.
	(STMT_IS_FULL_EXPR_P): Remove.
	(add_tree): Remove.
	(begin_stmt_tree): Likewise.
	(finish_stmt_tree): Likewise.
	(walk_tree_fn): Likewise.
	(walk_stmt_tree): Likewise.
	* class.c (finish_struct): Replace use of add_tree with add_stmt.
	* decl.c (mark_stmt_tree): Adjust type.
	(init_decl_processing): Don't build void_zero_node.
	(initialize_local_var): Adjust usage of current_stmt_tree.
	(finish_enum): Use add_stmt, not add_tree.
	(save_function_data): Adjust use of language_function.
	(finish_constructor_body): Use add_stmt, not add_tree.
	(finish_destructor_body): Likewise.
	(push_cp_function_context): Adjust use of language_function.
	(pop_cp_function_context): Likewise.
	(mark_lang_function): Likewise.
	(mark_cp_function_context): Likewise.
	* init.c (build_aggr_init): Adjust use of current_stmt_tree.
	(build_vec_init): Likewise.
	* semantics.c (SET_LAST_STMT): Remove.
	(RECHAIN_STMTS): Don't use it.
	(stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
	(current_stmt_tree): Define.
	(add_tree): Remove.
	(finish_goto_stmt): Use add_stmt, not add_tree.
	(finish_expr_stmt): Likewise.
	(begin_if_stmt): Likewise.
	(finish_then_clause): Likewise.
	(begin_while_stmt): Likewise.
	(begin_do_stmt): Likewise.
	(finish_return_stmt): Likewise.
	(begin_for_stmt): Likewise.
	(finish_break_stmt): Likewise.
	(finish_continue_stmt): Likewise.
	(begin_switch_stmt): Likewise.
	(finish_case_label): Likewise.
	(begin_try_block): Likewise.
	(begin_function_try_block): Likewise.
	(begin_handler): Likewise.
	(begin_catch_block): Likewise.
	(begin_compound_stmt): Likewise.
	(begin_asm_stmt): Likewise.
	(finish_asm_stmt): Likewise.
	(finish_label_stmt): Likewise.
	(add_decl_stmt): Likewise.
	(finish_subobject): Likewise.
	(finish_decl_cleanup): Likewise.
	(finish_named_return_value): Likewise.
	(setup_vtbl_ptr): Likewise.
	(add_scope_stmt): Likewise.
	(finish_stmt_expr): Likewise.
	(prune_unused_decls): Remove.
	(begin_stmt_tree): Likewise.
	(finish_stmt_tree): Likewise.
	(prep_stmt): Adjust use of current_stmt_tree.
	(lang_expand_stmt): Likewise.
	* tree.c (statement_code_p): Remove.
	(cp_statement_code_p): New function.
	(walk_stmt_tree): Remove.
	(init_tree): Set lang_statement_code_p.

2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>

	Integrated preprocessor.

	* Make-lang.in, Makefile.in: Remove all references to input.c,
	gxx.gperf, and hash.h.  Add ../c-lex.o to C_OBJS.
	* gxx.gperf, hash.h, input.c: Delete.
	* lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
	initialized properly.

	* class.c (fixup_pending_inline): Take a tree, not a
	struct pending_inline *.  All callers changed.
	(init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
	RID_PROTECTED entries in ridpointers[] array here.
	* decl.c (duplicate_decls): Do not refer to struct
	pending_inline.
	(record_builtin_type, init_decl_processing): Use RID_MAX not
	CP_RID_MAX.
	(grokdeclarator): Use C_IS_RESERVED_WORD.
	* decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
	cpplib.
	(grok_x_components): Do not inspect pending_inlines chain.

	* cp-tree.h (struct lang_identifier): Add rid_code entry.
	(C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
	(flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
	(DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
	TIME_IDENTIFIER_FILEINFO): Kill.
	Update prototypes.
	* lex.h: Expunge cp_rid.  Rewrite RIDBIT macros to use just a
	single 32-bit word.
	* parse.y: Call do_pending_inlines unconditionally.
	reinit_parse_for_method is now snarf_method.  fn.defpen is no
	longer necessary.  Remove unnecessary <itype> annotation on
	SCOPE.  Do not refer to end_of_file or struct pending_inline.
	* semantics.c (begin_inline_definitions): Call
	do_pending_inlines unconditionally.

	* lex.c: Remove all code now shared with C front end.
	Initialize cpplib properly if USE_CPPLIB.  Put reserved words
	into the get_identifier table.  Rewrite pragma handling to
	work with the registry.  Move code to save tokens for later
	processing to spew.c.

	* spew.c: Rewrite everything in terms of token streams instead
	of text.  Move routines here from lex.c / input.c as
	appropriate.  GC-mark trees hanging off the pending inlines
	chain.

2000-09-06  Mark Mitchell  <mark@codesourcery.com>

	* NEWS: Mention that the named return value extension has been
	deprecated.
	* cp-tree.h (original_result_rtx): Define.
	(TREE_REFERENCE_EXPR): Remove.
	(DECL_VPARENT): Likewise.
	(pushdecl_nonclass_level): Likewise.
	(store_return_init): Likewise.
	(reinit_lang_specific): Likewise.
	(genrtl_named_return_value): Change prototype.
	* decl.c (original_result_rtx): Remove.
	(cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
	Do not generate RTL for local variables here.
	(store_return_init): Remove.
	* semantics.c (genrtl_named_return_value): Simplify.  Fold in
	store_return_init.
	(finish_named_return_value): Adjust accordingly.  Warn that this
	extension is deprecated.
	(lang_expand_stmt): Adjust call to genrtl_named_return_value.

2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (type_unification_real): Replace switch with if.
	(unify): Tsubst non-type parms before comparing.

2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>

	* error.c (dump_typename): New function, broken out of ...
	(dump_type): ... here. Use it.
	* typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.

2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>

	* init.c (build_offset_ref): Deal with namespace scoped
	TEMPLATE_ID_EXPRs.

2000-09-06  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (resolve_address_of_overloaded_function): Add
	explanation message.
	* decl.c (define_case_label): Reformat explanation.
	* decl2.c (finish_static_data_member_decl): Likewise.
	(grokfield): Likewise.
	* friend.c (do_friend): Likewise.

2000-09-05  Zack Weinberg  <zack@wolery.cumb.org>

	* tree.c (walk_tree): Expose tail recursion.
	(walk_stmt_tree): New function.
	* cp-tree.h: Prototype walk_stmt_tree.
	* semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
	the BLOCKs directly.  If a BLOCK has no variables after
	pruning, discard it.
	(finish_stmt_tree): Use walk_stmt_tree.  No need to save and
	restore the line number.

2000-09-05  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
	(pt.o): Remove dependency on HTAB_H.
	* cp-tree.h: Include hashtab.h.
	(walk_tree): Change prototype.
	(walk_tree_without_duplicates): New function.
	* decl.c (check_default_argument): Use it.
	* optimize.c (remap_decl): Adjust calls to walk_tree.
	(copy_body): Likewise.
	(expand_calls_inline): Likewise.
	(calls_setjmp_p): Use walk_tree_without_duplicates.
	* pt.c: Don't include hashtab.h.
	(for_each_template_parm): Use walk_tree_without_duplicates.
	* semantics.c (finish-stmt_tree): Likewise.
	(expand_body): Likewise.
	* tree.c (walk_tree): Add additional parameter.
	(walk_tree_without_duplicates): New function.
	(count_trees): Use it.
	(verify_stmt_tree): Adjust call to walk_tree.
	(find_tree): Use walk_tree_without_duplicates.
	(no_linkage_check): Likewise.
	(break_out_target_exprs): Adjust call to walk_tree.
	(cp_unsave): Likewise.

2000-09-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
	(TEMPLATE_TEMPLATE_PARM): Adjust comment.
	* cp-tree.h (TYPE_BINFO): Adjust comment.
	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
	(TEMPLATE_TYPE_PARM_INDEX): Likewise.
	(IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
	(TYPE_TEMPLATE_INFO): Likewise.
	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
	* class.c (push_nested_class): Likewise.
	* decl.c (lookup_name_real): Likewise.
	(grokdeclarator): Likewise.
	(grok_op_properties): Likewise.
	(xref_tag): Likewise.
	(xref_basetypes): Likewise.
	* decl2.c (constructor_name_full): Likewise.
	(arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
	(arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
	* error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
	(dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
	(dump_type_suffix): Likewise.
	* init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
	instead.
	(get_aggr_from_typedef): Likewise.
	* mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
	(write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
	(write_template_parm): Likewise.
	(write_template_template_parm): Check tree code instead of
	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
	* method.c (build_overload_nested_name): Add
	BOUND_TEMPLATE_TEMPLATE_PARM.
	(process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
	* parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
	* pt.c (convert_template_argument): Check tree code instead of
	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
	(for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
	(for_each_template_parm): Adjust comment.
	(tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM.  Reorganize.
	(tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
	(unify): Add BOUND_TEMPLATE_TEMPLATE_PARM.  Reorganize.  Use
	template_args_equal to compare template template parameter cases.
	* ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
	* search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
	instead.
	* tree.c (copy_template_template_parm): Decide whether to create
	a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
	(walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
	(copy_tree_r): Likewise.
	* typeck.c (comptypes): Likewise.  Check tree code instead of
	using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.

2000-09-04  Mark Elbrecht  <snowball3@bigfoot.com>

	* decl.c (finish_function): Move the code for handling functions
	marked with the constructor and destructor attributes inside the
	expand_p block.

2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>

	* init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.

2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (lookup_template_class): Remove abort.
	* tree.c (get_type_decl): Allow error_mark_node.

2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>

	* decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
	TEMPLATE_ID_EXPRs.

2000-09-03  Mark Mitchell  <mark@codesourcery.com>

	* operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
	new ABI mangling.

2000-09-01  Nathan Sidwell  <nathan@codesourcery.com>

	* parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
	union tag mismatch error reporting.

2000-09-01  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (build_scoped_method_call): Check it is not a namespace.

2000-08-30  Jason Merrill  <jason@redhat.com>

	* cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.

	* tree.c (bot_manip): Check TREE_CONSTANT rather than
	!TREE_SIDE_EFFECTS.  Call break_out_target_exprs and
	build_target_expr_with_type for the non-AGGR_INIT_EXPR case.

	* decl.c (start_function): Always call make_function_rtl.

2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>

	* semantics.c (prune_unused_decls): New function.
	(finish_stmt_tree): Call it via walk_tree.

2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>

	* class.c (build_secondary_vtable): Constify a char *.
	* decl.c (init_decl_processing): Initialize function_id_node,
	pretty_function_id_node, and func_id_node.
	* input.c (struct input_source): Constify 'str'.
	(feed_input): Constify first argument.
	* mangle.c (write_identifier): Constify argument.
	* pt.c (mangle_class_name_for_template): Constify argument.

2000-08-29  Mark Mitchell  <mark@codesourcery.com>

	* typeck.c (mark_addressable): Remove code that pokes around in
	RTL.

2000-08-28  Jason Merrill  <jason@redhat.com>

	* lex.c (file_name_nondirectory): Move to toplev.c.

	* cp-tree.h (LOCAL_CLASS_P): New macro.
	* class.c (finish_struct_1): Use it.

2000-08-27  Alex Samuel  <samuel@codesourcery.com>

	* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
	(write_encoding): Pass another argument to write_name.
	(write_name): Add ignore_local_scope parameter.  Fix handling of
	local names.
	(write_nested_name): Use write_unqualified_name.
	(write_prefix): Likewise.  Skip out on FUNCTION_DECLs.
	(write_template_prefix): Use write_unqualified_name.
	(write_component): Remove.
	(write_local_name): Add parameter.  Use direct local entity to
	discriminator calculation.
	(write_class_enum_type): Pass another argument to write_name.
	(write_template_template_arg): Likewise.
	(make_guard_variable): Likewise.

2000-08-27  Jason Merrill  <jason@redhat.com>

	* decl.c (pushdecl): Matching decls for local externs are found in
	the current level.  Propagate linkage information from previous
	declarations.

2000-08-26  Gabriel Dos Reis  <gdr@codesourcery.com>

	* ir.texi (Expressions): Fix typo.

2000-08-25  Greg McGary  <greg@mcgary.org>

	* tree.c (init_tree): Use ARRAY_SIZE.

2000-08-25  Gabriel Dos Reis  <gdr@codesourcery.com>

	* error.c (cp_tree_printer): Rework.

2000-08-25  Mark Mitchell  <mark@codesourcery.com>

	* Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
	dyn-string.o.
	(CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
	(cp-demangle.o): Remove target.
	(dyn-string.o): Likewise.

	* decl.c (grokfndecl): Require that `main' return an `int'.
	* mangle.c (write_encoding): Don't mangle return types for
	conversion functions.

2000-08-25  Gabriel Dos Reis  <gdr@codesourcery.com>

	* error.c (tree_formatting_info): New data type.
	(tree_being_formatted): New macro.
	(tree_formatting_flags): Likewise.
	(put_whitespace): Likewise.
	(print_tree_identifier): Likewise.
	(print_identifier): Likewise.
	(cp_tree_printer, print_function_argument_list, print_declaration,
	print_expression, print_function_declaration,
	print_function_parameter, print_type, print_cv_qualifier): New
	functions.
	(init_error): Initialize lang_printer.

2000-08-24  Jason Merrill  <jason@redhat.com>

	* typeck.c (build_ptrmemfunc): Just reinterpret if there's no
	adjustment necessary.

2000-08-24  Greg McGary  <greg@mcgary.org>

	* cp-tree.h (MAIN_NAME_P): Remove macro.

2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>

	* error.c (print_instantiation_context): Don't forget to flush the
	buffer.

2000-08-23  Jason Merrill  <jason@redhat.com>

	* typeck.c (build_ptrmemfunc): Save the input pmf.

	* method.c (process_modifiers): Use same_type_p.

2000-08-23  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
	* mangle.c (write_function_type): Change prototype.
	(write_encoding): Don't mangle return types for
	constructors or destructors.
	(write_type): Adjust call to write_function_type.
	* pt.c (instantiate_template): Instantiate alternate entry points
	when instantiating the main function.

2000-08-23  Gabriel Dos Reis  <gdr@codesourcery.com>

	* error.c (cp_print_error_function): Don't use embedded '\n' in
	output_printf.

2000-08-23  Gabriel Dos Reis  <gdr@codesourcery.com>

	* decl.c (init_decl_processing): Remove bogus initialization.
	* error.c (lang_print_error_function): Restore here.
	(init_error): Initialize print_error_function.

2000-08-22  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>

	* decl2.c (arg_assoc): Revert my 2000-08-11 change.

2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>

	* Makefile.in (error.o): Depends on diagnostic.h

	* cp-tree.h (problematic_instantiation_changed,
	record_last_problematic_instantiation, current_instantiation,
	print_instantiation_context): Declare.
	(maybe_print_template_context): Remove.

	* decl.c (init_decl_processing): Set print_error_function to NULL.
	(lang_print_error_function): Remove, since we're using a new
	machinery.

	* error.c: #include diagnostic.h
	(function_category): New function.
	(cp_diagnostic_starter): Likewise.
	(cp_diagnostic_finalizer): Likewise.
	(cp_print_error_function): Likewise.
	(maybe_print_instantiation_context): Likewise.
	(print_instantiation_full_context): Likewise.
	(print_instantiation_partial_context): Likewise.
	(print_instantiation_context): Define.
	(init_error): Initialize diagnostic pager and finalizer.

	* pt.c (problematic_instantiation_changed): Define.
	(record_last_problematic_instantiation): Likewise.
	(current_instantiation): Likewise.
	(maybe_print_template_context): Remove.
	(print_template_context): Likewise.
	(current_tinst_level): Make static to reflect Brendan Kehoe's
	change of 1995-04-13.
	(push_tinst_level): Call print_instantiation_context.

2000-08-21  Nix  <nix@esperi.demon.co.uk>

	* lang-specs.h: Do not process -o or run the assembler if
	-fsyntax-only.

2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* decl.c (flag_hosted, flag_noniso_default_format_attributes): New
	variables.
	* decl2.c (lang_decode_option): Disable gettext attributes for
	-ansi.

2000-08-21  Gabriel Dos Reis  <gdr@codesourcery.com>

	* lex.c (lang_init_options): Default diagnostic message maximum
	length to 80, when line-wrapping.

2000-08-20  Mark Mitchell  <mark@codesourcery.com>

	* class.c (build_vtbl_initializer): Clear the entire
	vtbl_init_data.  Start keeping track of the functions for which we
	have created vcall offsets here.
	(dfs_build_vcall_offset_vtbl_entries): Remove.
	(build_vcall_offset_vtbl_entries): Reimplement.
	(add_vcall_offset_vtbl_entries_r): New function.
	(add_vcall_offset_vtbl_entries_1): Likewise.  Tweak logic for
	computing when vcall offsets are necessary.

2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (member_function_or_else): Use cp_error ... %T.
	(grokdeclarator): Likewise.
	(start_method): Likewise.
	* friend.c (make_friend_class): Use cp_pedwarn ... %T.

2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>

	* decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
	TYPE_DECLs.

2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (PTRMEM_OK_P): New macro.
	(itf_ptrmem_ok): New enumeration value.
	* class.c (resolve_address_of_overloaded_function): Add PTRMEM
	argument. Diagnose implicit pointer to member.
	(instantiate_type): Don't diagnose implicit pointer to member
	here. Pass itf_ptrmem_ok if ok. Adjust calls to
	resolve_address_of_overloaded_function.
	* init.c (build_offset_ref): Set PTRMEM_OK_P.
	(resolve_offset_ref): Don't diagnose implicit pointer to member here.
	* semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
	* typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
	(build_unary_op): Deal with single non-static member in
	microsoft-land.

2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>

	* decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.

2000-08-18  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (enum_name_string): Remove prototype.
	(report_case_error): Remove prototype.
	* cp/typeck2.c (enum_name_string): Remove.
	(report_case_error): Remove.
	* error.c (dump_expr): Deal with enum values directly.
	Correctly negate integer constant.

2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>

	* inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
	(__cxa_vec_delete2, __cxa_vec_delete3): Declare.
	* vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
	(__cxa_vec_delete2, __cxa_vec_delete3): Implement.
	(__cxa_vec_new): Use __cxa_vec_new2.
	(__cxa_vec_delete): Use __cxa_vec_delete2.

2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>

	* vec.cc (__cxa_vec_new): Set "C" linkage.
	(__cxa_vec_ctor): Likewise.
	(__cxa_vec_cctor): Likewise.
	(__cxa_vec_dtor): Likewise.
	(__cxa_vec_delete): Likewise.
	* inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
	(__cxa_vec_ctor): Likewise.
	(__cxa_vec_cctor): Likewise.
	(__cxa_vec_dtor): Likewise.
	(__cxa_vec_delete): Likewise.

2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (instantiate_type): Reinstate local variable
	deleted in previous change.

	* cvt.c (cp_convert_to_pointer): Pass itf_complain, not
	itf_no_attributes.

2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (instantiate_type_flags): New enumeration.
	(instantiate_type): Change parameter.
	* class.c (instantiate_type): Adjust prototype. Adjust.
	* call.c (standard_conversion): Adjust instantiate_type call.
	(reference_binding): Likewise.
	(build_op_delete_call): Likewise.
	(convert_like_real): Likewise.
	* cvt.c (cp_convert_to_pointer): Likewise.
	(convert_to_reference): Likewise.
	* pt.c (convert_nontype_argument): Likewise.
	* typeck.c (build_binary_op): Likewise.
	(build_ptrmemfunc): Likewise.
	(convert_for_assignment): Likewise.

2000-08-17  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (CPTR_AGGR_TAG): New global tree node.
	(current_aggr): Define.
	* decl.c (grokdeclarator): Make sure a friend class is an
	elaborated type specifier.
	* parse.y (current_aggr): Remove static definition.
	(cp_parse_init): Adjust.
	(structsp): Clear and restore current_aggr.
	(component_decl_list): Clear current_aggr.

	* error.c (dump_type, case TYPENAME_TYPE): Don't emit the
	aggregate tag on the typename's context.

	* pt.c (tsubst_friend_class): Return error_mark_node, if
	parms becomes NULL.
	(instantiate_class_template): Ignore error_mark_node friend types.

2000-08-14  Nathan Sidwell  <nathan@codesourcery.com>

	* cvt.c (warn_ref_binding): New static function, broken out of ...
	(convert_to_reference): ... here. Use it.

2000-08-11  Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>

	* parse.y (template_arg): Add rule for template qualified with
	global scope.

2000-08-11  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

	* decl2.c (add_function): Reorganize.
	(arg_assoc): Do not consider function template decls.

2000-08-11  Jason Merrill  <jason@redhat.com>

	* decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
	looking inside.

2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (resolve_scope_to_name): Remove unused prototype.
	(lookup_nested_tag): Likewise.

	* decl2.c (grokfield): Fix comment to reflect many types of _DECLs
	can be produced.

2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>

	* parse.y (named_complex_class_head_sans_basetype): Remove
	always true if.

2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>

	* decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
	explicit TEMPLATE_ID_EXPR args.
	(build_expr_from_tree, case CALL_EXPR): Likewise.

2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (check_tag_decl): Diagnose typename's which don't
	declare anything.

2000-08-10  Nathan Sidwell  <nathan@codesourcery.com>

	* init.c (build_aggr_init): Reject bogus array initializers
	early.

2000-08-09  Nathan Sidwell  <nathan@codesourcery.com>

	* rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
	runtime.
	* cp/tinfo.cc (__dynamic_cast): Likewise.
	* cp/inc/cxxabi.h (__dynamic_cast): Likewise.

2000-08-09  Nathan Sidwell  <nathan@codesourcery.com>

	* cvt.c (convert_to_pointer_force): Fix error message when
	attempting to cast from ambiguous base.

2000-08-08  Jason Merrill  <jason@redhat.com>

	* pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
	(tsubst_template_arg_vector): Likewise.

	* decl2.c (build_anon_union_vars): Choose the largest field; don't
	assume that one will be as large as the union.

2000-08-07  Kazu Hirata  <kazu@hxi.com>

	* cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
	* decl.c (pop_labels): Likewise.

2000-08-04  Jeffrey Oldham  <oldham@codesourcery.com>

	* inc/cxxabi.h (__pbase_type_info): Changed member names to match
	specifications.
	(__pointer_to_member_type_info): Likewise.
	(__base_class_info): Likewise.
	(__class_type_info): Likewise.
	(__si_class_type_info): Likewise.
	(__vmi_class_type_info): Likewise.
	* tinfo.cc (__si_class_type_info::__do_find_public_src):
	Changed member names to match specifications.
	(__vmi_class_type_info::__do_find_public_src): Likewise.
	(__si_class_type_info::__do_dyncast): Likewise.
	(__vmi_class_type_info::__do_dyncast): Likewise.
	(__si_class_type_info::__do_upcast): Likewise.
	(__vmi_class_type_info::__do_upcast): Likewise.
	* tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
	(__pbase_type_info::__pointer_catch): Likewise.
	(__pointer_type_info::__pointer_catch): Likewise.
	(__pointer_to_member_type_info::__pointer_catch): Likewise.

2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>

	* Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
	* Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
	(cc1plus): Link with $(BACKEND) and $(C_OBJS).

2000-08-04  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (add_method): Change prototype.
	* class.c (add_method): Remove FIELDS parameter.  Add ERROR_P.
	Don't double the size of the method vector in the error case.
	(handle_using_decl): Adjust call to add_method.
	(add_implicitly_declared_members): Likewise.
	(clone_function_decl): Likewise.
	* decl2.c (check_classfn): Likewise.
	* semantics.c (finish_member_declaration): Likewise.

2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>

	* decl.c (flag_isoc94): New variable.

2000-08-02  Jason Merrill  <jason@redhat.com>

	* pt.c (do_type_instantiation): Add complain parm; don't complain
	if called recursively.
	* cp-tree.h, parse.y: Adjust.

2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>

	* decl2.c: Silently ignore -Wstrict-prototypes; warn about
	-Wno-strict-prototypes.

	* g++spec.c: Adjust type of second argument to
	lang_specific_driver, and update code as necessary.

	* cp-tree.h: Don't prototype min_precision here.
	(my_friendly_assert): Cast expression to void.
	* semantics.c (do_poplevel): Initialize scope_stmts.

2000-08-02  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (DECL_NEEDED_P): Tweak.

2000-07-28  Jason Merrill  <jason@redhat.com>

	* lang-specs.h: Use %i in rule for .ii files.

2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>

	* lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.

2000-07-30  Mark Mitchell  <mark@codesourcery.com>

	Allow indirect primary bases.
	* cp-tree.h (struct lang_type): Remove vfield_parent.  Add
	primary_base.
	(CLASSTYPE_VFIELD_PARENT): Remove.
	(CLASSTYPE_PRIMARY_BINFO): Reimplement.
	(BINFO_PRIMARY_BINFO): Remove.
	(CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
	(BINFO_VBASE_PRIMARY_P): Likewise.
	(BINFO_PRIMARY_BASE_OF): New macro.
	(BINFO_INDIRECT_PRIMARY_P): Likewise.
	(get_primary_binfo): New function.
	* decl.c (lang_mark_tree): Make lang_type::primary_base.
	* class.c (vcall_offset_data_s): Rename to ...
	(vtbl_init_data_s): ... this.  Rename primary_p to primary_vtbl_p,
	and add ctor_vtbl_p.
	(get_derived_offset): Use get_primary_binfo.
	(dfs_mark_primary_bases): Adjust handling of virtual primary
	bases.
	(mark_primary_bases): Likewise.
	(set_primary_base): Take a binfo, not an integer, as a
	representation of the primary base.
	(indirect_primary_base_p): Remove.
	(determine_primary_base): Adjust for indirect primary bases.
	(dfs_find_final_overrider): Fix typo in coment.
	(update_vtable_entry_for_fn): Use get_primary_binfo.
	(layout_nonempty_base_or_field): Tweak.
	(build_base_fields): Adjust for new primary base semantics.
	(dfs_propagate_binfo_offsets): Remove.
	(propagate_binfo_offsets): Rewrite.
	(dfs_set_offset_for_shared_vbases): Remove.
	(layout_virtual_bases): Don't use it.
	(layout_class_type): Set CLASSTYPE_SIZE correctly under the new
	ABI.
	(finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
	CLASSTYPE_VFIELD_PARENT.
	(dfs_get_primary_binfo): New function.
	(get_primary_binfo): Likewise.
	(dump_class_hierarchy_r): Tweak printing of primary bases.
	(build_vtbl_initializer): Fix typo in comments.  Use
	vtbl_init_data.
	(build_vcall_and_vbase_vtbl_entries): Likewise.
	(build_vbaes_offset_vtbl_entries): Likewise.
	(dfs_build_vcall_offset_vtbl_entries): Adjust setting of
	BV_VCALL_INDEX to handle indirect primary bases.
	(build_vcall_offset_vtbl_entries): Use vtbl_init_data.
	(build_rtti_vtbl_entries): Likewise.
	* search.c (get_shared_vbase_if_not_primary): Tweak.
	(find_vbase_instance): Likewise.
	(binfo_for_vtable): Simplify.
	* tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
	(make_binfo): Make it have 11 entries.

2000-07-30  Alex Samuel  <samuel@codesourcery.com>

	* mangle.c (DECL_TEMPLATE_ID_P): Remove.
	(CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
	ascertaining primaryness.
	(G): Remove template_args.
	(decl_is_template_id): New function.
	(write_encoding): Use decl_is_template_id.
	(write_name): Likewise.  Handle type_decls.  Get main variant of
	type decls.
	(write_nested_name): Likewise.
	(write_prefix): Likewise.
	(write_template_prefix): Likewise.
	(write_special_name_constructor): Remove defunct production from
	comment.
	(write_bare_function_type): Remove comment about absent parameter.
	(write_template_template_arg): Add missing grammar production to
	comment.

2000-07-27  Jason Merrill  <jason@redhat.com>

	* decl.c (duplicate_decls): If common_type produces a non-typedef
	type for a typedef, just use the old type.

2000-07-27  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (function_depth): Declare.
	(verify_stmt_tree): Likewise.
	(find_tree): Likewise.
	* decl.c (function_depth): Give it external linkage.
	* optimize.c (optimize_function): Increment and decrement it.
	* tree.c (verify_stmt_tree_r): New function.
	(verify_stmt_tree): Likewise.
	(find_tree_r): Likewise.
	(find_tree): Likewise.

2000-07-27  Jason Merrill  <jason@redhat.com>

	* pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
	TYPE_PTRMEMFUNC_P.
	* cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.

2000-07-26  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (start_cleanup_fn): Mark the function as `inline'.
	* decl2.c (get_guard): Call cp_finish_decl, not
	rest_of_decl_compilation, for local guards.
	* lex.c (do_identifier): Remove unused variable.

2000-07-26	Marc Espie <espie@cvs.openbsd.org>

	* parse.y:  Add missing ';'.

2000-07-26  Mark Mitchell  <mark@codesourcery.com>

	* parse.y (empty_parms): Use `()', not `(...)', when in the scope
	of `extern "C++"'.

2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>

	Kill strict_prototype. Backwards compatibility only for
	non NO_IMPLICIT_EXTERN_C systems.
	* cp-tree.h (flag_strict_prototype): Remove.
	(strict_prototype): Remove.
	(strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
	* decl.c (maybe_push_to_top_level): Adjust.
	(pop_from_top_level): Adjust.
	(decls_match): Only allow sloppy parm matching for ancient
	system headers.
	(init_decl_processing): Adjust.
	(grokdeclarator): Adjust.
	* decl2.c (flag_strict_prototype): Remove.
	(strict_prototype): Remove.
	(strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
	(lang_f_options): Remove "strict-prototype".
	(unsupported-options): Add "strict-prototype".
	* lex.c (do_identifier): Adjust.
	(do_scoped_id): Adjust.
	* parse.y (empty_parms): Adjust.
	* class.c (push_lang_context): Adjust.
	(pop_lang_context): Adjust.
	* typeck.c (comp_target_parms): Adjust.

2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (poplevel): Deal with anonymous variables at for scope.
	(maybe_inject_for_scope_var): Likewise.

2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>

	* decl.c: Remove all signal handling code, now done in toplev.c.

2000-07-23  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (make_rtl_for_nonlocal_decl): Rework.

	* pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
	correctly.

2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>

	* cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
	Define my_friendly_assert and my_friendly_abort as macros
	which may call friendly_abort.  Prototype friendly abort, not
	my_friendly_abort or my_friendly_assert.
	* decl.c (signal_catch): Report the signal caught in the error
	message.  Call fatal directly.
	* typeck2.c (ack, my_friendly_assert): Delete.
	(my_friendly_abort): Rename to friendly_abort.  Expect file,
	line, and function parameters.  Report the abort code, then
	call fancy_abort.  Do not mask an abort if errors have
	already occurred.

2000-07-18  Nathan Sidwell  <nathan@codesourcery.com>

	* typeck.c (comp_target_parms): Remove obsolete parameter.
	(comp_target_types): Adjust.

2000-07-17  Jason Merrill  <jason@redhat.com>

	* typeck.c (mark_addressable): Never set TREE_USED.
	* call.c (build_call): Don't abort on calls to library functions
	that have been declared normally.

	* typeck.c (build_binary_op): Fix grammar in warning.

	* exception.cc (__eh_free): Fix prototype.

	* decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.

	* decl.c (pushdecl): Handle seeing an OVERLOAD in
	IDENTIFIER_NAMESPACE_VALUE.

2000-07-16  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
	* method.c (use_thunk): Correct handling of vcall offsets.

2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>

	* .cvsignore: parse.h and parse.c have no cp- prefix.

2000-07-13  Mark Mitchell  <mark@codesourcery.com>

	* .cvsignore: New file.

2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>

	* lang-specs.h: Use the new named specs.  Remove unnecessary braces.

2000-07-12  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.in ($(PARSE_H)): Depend directly on parse.y.
	* parse.c: Remove.
	* parse.h: Likewise.

2000-07-11  Mark Mitchell  <mark@codesourcery.com>

	* class.c (layout_class_type): Add pointers to virtual bases after
	base classes under the old ABI.

2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>

	* semantics.c (finish_for_stmt): Remove call to emit_line_note.
	(finish_continue_stmt): Likewise.
	(begin_for_stmt): Remove call to note_level_for_for.
	(finish_goto_stmt): Change call from build_min_nt
	to build_stmt.
	(finish_expr_stmt): Likewise.
	(begin_if_stmt): Likewise.
	(begin_while_stmt): Likewise.
	(finish_while_stmt): Likewise.
	(finish_return_stmt): Likewise.
	(begin_for_stmt): Likewise.
	(finish_for_stmt): Likewise.
	(finish_break_stmt): Likewise.
	(begin_switch_stmt): Likewise.
	(finish_case_label): Likewise.
	(genrtl_try_block): Likewise.
	(begin_try_block): Likewise.
	(begin_handler): Likewise.
	(begin_compound_stmt): Likewise.
	(finish_asm_stmt): Likewise.
	(finish_label_stmt): Likewise.
	(add_decl_stmt): Likewise.
	(finish_subobject): Likewise.
	(finish_decl_cleanup): Likewise.
	(finish_named_return_value): Likewise.
	(setup_vtbl_ptr): Likewise.
	(add_scope_stmt): Likewise.
	* decl.c (finish_constructor_body): Likewise.
	(finish_destructor_body): Likewise.
	* optimize.c (copy_body_r): Likewise.
	(initialize_inlined_parameters): Likewise.
	(declare_return_variable): Likewise.
	(expand_call_inline): Likewise.

2000-07-10  Jakub Jelinek  <jakub@redhat.com>

	* semantics.c (expand_body): Sync interface information
	at the end of function body expansion.

2000-07-09  Jason Merrill  <jason@redhat.com>

	* init.c (build_new_1): Bail early if the call to new fails.

	* decl.c (compute_array_index_type): Check specifically for
	an INTEGER_CST, not just TREE_CONSTANT.

	* decl.c (duplicate_decls): Don't call duplicate_decls on
	the DECL_TEMPLATE_RESULT.
	(decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
	codes.

	* error.c (dump_template_bindings): Don't crash if we had an
	invalid argument list.

	* typeck.c (c_expand_start_case): Do narrowing here.
	* semantics.c (finish_switch_cond): Not here.

2000-07-09  Hidvegi Zoli  <hzoli@austin.ibm.com>

	* parse.y (asm_clobbers): Do string concatenation.

2000-07-09  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (pushtag): Don't put local classes in template functions
	on the local_classes list.

2000-07-04  Scott Snyder  <snyder@fnal.gov>

	* decl2.c (get_guard): Add missing return for old ABI local
	variable case.

2000-07-09  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (char_type_p): New function.
	* decl.c (init_decl_processing): Don't initialize
	signed_wchar_type_node or unsigned_wchar_type_node.
	(complete_array_type): Handle brace-enclosed string-constants.
	* rtti.c (emit_support_tinfos): Remove #if 0'd code.
	* tree.c (char_type_p): New function.
	* typeck2.c (digest_init): Use char_type_p.

2000-07-06  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (tsubst): Don't layout type, if it's error_mark.

2000-07-06  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (instantiate_pending_templates): Reset template level.

2000-07-05  Jason Merrill  <jason@redhat.com>

	* call.c (joust): Don't complain about `operator char *()' beating
	`operator const char *() const'.

2000-07-04  scott snyder  <snyder@fnal.gov>
	    Jason Merrill  <jason@redhat.com>

	* repo.c (repo_get_id): Handle the case where a class with virtual
	bases has a null TYPE_BINFO_VTABLE.

2000-07-04  Kevin Buhr  <buhr@stat.wisc.edu>
	    Jason Merrill  <jason@redhat.com>

	* parse.y (member_init): Just pass in the type.
	* init.c (expand_member_init): Handle getting a type.

2000-07-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
	    Jason Merrill  <jason@redhat.com>

	* decl.c (finish_function): Warn if a function has no return
	statement.
	Suggested by Andrew Koenig.
	* typeck.c (check_return_expr): Do set current_function_returns_value
	if we got an error_mark_node.

2000-07-03  Nathan Sidwell  <nathan@codesourcery.com>

	* decl2.c (push_decl_namespace): Push the original namespace.

2000-07-03  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES.
	* semantics.c (begin_class_definition): Clear it.

2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>

	* cp-tree.h (genrtl_goto_stmt): Remove declaration.
	(genrtl_expr_stmt): Likewise.
	(genrtl_decl_stmt): Likewise.
	(genrtl_if_stmt): Likewise.
	(genrtl_while_stmt): Likewise.
	(genrtl_do_stmt): Likewise.
	(genrtl_return_stmt): Likewise.
	(genrtl_for_stmt): Likewise.
	(genrtl_break_stmt): Likewise.
	(genrtl_continue_stmt): Likewise.
	(genrtl_scope_stmt): Likewise.
	(genrtl_switch_stmt): Likewise.
	(genrtl_case_label): Likewise.
	(genrtl_begin_compound_stmt): Likewise.
	(genrtl_finish_compound_stmt): Likewise.
	(genrtl_compound_stmt): Likewise.
	(genrtl_asm_stmt): Likewise.

	* init.c (begin_init_stmts): Remove call to
	genrtl_begin_compound_stmt.
	(finish_init_stmts): Remove call to genrtl_finish_compound_stmt.

	* semantics.c (lang_expand_stmt): Changed call to
	genrtl_compound_stmt to ignore return value.

2000-07-02  Mark Mitchell  <mark@codesourcery.com>

	* mangle.c (canonicalize_for_substitution): Return the canonical
	variant of a type.

	* decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a
	TYPE_DECL.
	* typeck.c (commonparms): Remove obstack manipulations.

2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>

	* Make-lang.in (cc1plus$(exeext)): Added c-semantics.o.

	* Makefile.in (OBJS): Added ../c-semantics.o.
	(OBJDEPS): Likewise.

	* cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to
	../c-common.h.
	(struct stmt_tree): Added comment.
	(current_function_name_declared): Removed.
	(stmts_are_full_exprs_p): Likewise.
	(genrtl_do_pushlevel): Likewise.
	(genrtl_clear_out_block): Likewise.
	(COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h.
	(DECL_ANON_UNION_ELEMS): Likewise.
	(emit_local_var): Likewise.
	(make_rtl_for_local_static): Likewise.
	(do_case): Likewise.
	(expand_stmt): Likewise.
	(genrtl_decl_cleanup): Likewise.
	(c_expand_asm_operands): Likewise.
	(c_expand_return): Likewise.
	(c_expand_start_case): Likewise.

	* decl.c (make_rtl_for_local_static): Moved to c-semantics.c.
	(emit_local_var): Likewise.
	(initialize_local_var): Change reference to
	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
	Change reference to stmts_are_full_exprs_p to
	current_stmt_tree->stmts_are_full_exprs_p.
	(push_cp_function_context): Likewise.

	* expect.c (expand_throw): Change reference to
	stmts_are_full_exprs_p.

	* init.c (build_aggr_init): Change reference to
	stmts_are_full_exprs_p.
	(build_vec_init): Likewise.

	* optimize.c (maybe_clone_body): Change reference to
	current_function_name_declared to
	cp_function_chain->name_declared.

	* pt.c (instantiate_decl): Change reference to
	current_function_name_declared to
	cp_function_chain->name_declared.

	* semantics.c (expand_cond): Moved declaration to c-common.h.
	(genrtl_do_pushlevel): Moved to c-semantics.c.
	(genrtl_clear_out_block): Likewise.
	(genrtl_goto_stmt): Likewise.
	(genrtl_expr_stmt): Likewise.
	(genrtl_decl_stmt): Likewise.
	(gerntl_if_stmt): Likewise.
	(genrtl_while_stmt): Likewise.
	(genrtl_do_stmt): Likewise.
	(genrtl_return_stmt): Likewise.
	(genrtl_for_stmt): Likewise.
	(genrtl_break_stmt): Likewise.
	(genrtl_continue_stmt): Likewise.
	(genrtl_scope_stmt): Likewise.
	(genrtl_switch_stmt): Likewise.
	(genrtl_case_label): Likewise.
	(genrtl_begin_compound_stmt): Likewise.
	(genrtl_finish_compound_stmt): Likewise.
	(genrtl_compound_stmt): Likewise.
	(genrtl_asm_stmt): Likewise.
	(genrtl_decl_cleanup): Likewise.
	(expand_cond): Likewise.
	(expand_stmt): Renamed to ...
	(lang_expand_stmt): ... this.
	(lang_expand_expr_stmt): Initialize.
	(set_current_function_name_declared): Likewise.
	(stmts_are_full_exprs_p): Likewise.
	(current_function_name_declared): Likewise.
	(anon_aggr_type_p): Likewise.
	(do_poplevel): Change reference to
	stmts_are_full_exprs_p to call to stmts_are_full_exprs_p().
	Change reference to stmts_are_full_exprs_p to
	current_stmt_tree->stmts_are_full_exprs_p.
	(add_tree): Likewise.
	(finish_expr_stmt): Likewise.
	(prep_stmt): Likewise.
	(lang_expand_stmt): Likewise.
	(begin_compound_stmt): Change reference to
	current_function_name_declared to
	cp_function_chain->name_declared and call to
	current_function_name_declared().
	(setup_vtbl_ptr): Likewise.
	(genrtl_do_poplevel): Removed.

2000-06-30  Jason Merrill  <jason@redhat.com>

	* init.c (init_init_processing): Go back to aligning like
	double_type_node for old ABI.
	(get_cookie_size): Make cookie larger if we get a type that needs
	more alignment.
	(build_vec_delete): Call it.

	* typeck.c (qualify_type_recursive): New fn.
	(composite_pointer_type): Use it.
	(build_binary_op): Use composite_pointer_type.

2000-06-24  Carlos O'Ryan  <coryan@cs.wustl.edu>
	    Jason Merrill  <jason@redhat.com>

	* typeck.c (check_return_expr): Don't complain about returning
	NULL from operator new if -fcheck-new.
	* cp-tree.h: Declare flag_check_new here.
	* init.c: Not here.

2000-06-28  Alex Samuel  <samuel@codesourcery.com>

	* mangle.c (find_substitution): Use same_type_p.
	(write_encoding): Don't check for substitutions.

2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>

	* parse.y (expr_no_comma_rangle): New non-terminal.
	(template_parm): Use it for default parameter case.
	(template_arg): Use it.
	(expr_no_commas): Remove commented out undefined extensions.
	* Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r.
	* parse.h, parse.c: Rebuilt.

2000-06-30  Mark Mitchell  <mark@codesourcery.com>

	* semantics.c (genrtl_asm_stmt): Don't decay input operands here.
	(finish_asm_stmt): Do it here, instead.

	* cp-tree.h (ridpointers): Don't declare.
	* decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX.
	(record_builtin_java_type): Likewise.
	(init_decl_processing): Likewise.
	* lex.c: Move inclusion of lex.h.
	(ridpointers): Don't define.
	(init_parse): Initialize ripdointers.  Use CP_RID_MAX instead of
	RID_MAX.
	* lex.h (enum rid): Rename to ...
	(enum cp_rid): ... this.
	(ridpointers): Don't declare.
	* parse.y: Move inclusion of lex.h.
	* parse.c: Regenerated.
	* spew.c: Move inclusion of lex.h.

	* cp-tree.h (struct language_function): Remove temp_name_counter.
	(temp_name_counter): Remove.
	(get_temp_name): Change prototype.
	(get_guard): New function.
	(get_guard_cond): Likewise.
	(set_guard): Likewise.
	* cvt.c (build_up_reference): Adjust call to get_temp_name.
	* decl.c (expand_static_init): Use get_guard and friends to
	implement guard variables.
	* decl2.c (get_temp_name): Assume that the variables created are
	always static.
	(get_sentry): Rename to ...
	(get_guard): ... this.  Implement new ABI guard	variables.
	(get_guard_bits): New function.
	(get_guard_cond): Likewise.
	(set_guard): Likewise.
	(start_static_initialization_or_destruction): Use them.
	(do_static_initialization): Replace sentry with guard throughout.
	(do_static_destruction): Likewise.
	* init.c (create_temporary_var): Add comment.

2000-06-28  Alex Samuel  <samuel@codesourcery.com>

	* mangle.c (find_substitution): Use same_type_p.
	(write_encoding): Don't check for substitutions.

2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>

	* parse.y (expr_no_comma_rangle): New non-terminal.
	(template_parm): Use it for default parameter case.
	(template_arg): Use it.
	(expr_no_commas): Remove commented out undefined extensions.
	* Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r.
	* parse.h, parse.c: Rebuilt.

2000-06-29  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (flag_const_strings): Remove.
	(warn_parentheses): Likewise.
	(warn_format): Likewise.
	(common_type): Likewise.
	(default_conversion): Likewise.
	(build_binary_op): Likewise.
	(cp_build_binary_op): New macro.
	* call.c (build_new_op): Use cp_build_binary_op instead of
	build_binary_op.
	* class.c (build_vtable_entry_ref): Likewise.
	* decl.c (expand_static_init): Likewise.
	(compute_array_index_type): Likewise.
	(build_enumerator): Likewise.
	* decl2.c (delete_sanity): Likewise.
	(start_static_initialization_or_destruction): Likewise.
	* error.c (dump_type_suffix): Likewise.
	* init.c (resolve_offset_ref): Likewise.
	(build_new): Likewise.
	(build_new_1): Likewise.
	(build_vec_delete_1): Likewise.
	(build_vec_init): Likewise.
	(build_delete): Likewise.
	* rtti.c (synthesize_tinfo_fn): Likewise.
	(synthesize_tinfo_var): Likewise.
	* search.c (expand_upcast_fixups): Likewise.
	(fixup_all_virtual_upcast_offsets): Likewise.
	* typeck.c (build_array_ref): Likewise.
	(get_member_function_from_ptrfunc): Likewise.
	(build_binary_op): Add parameter.
	(pointer_int_sum): Use cp_build_binary_op.
	(pointer_diff): Likewise.
	(build_modify_expr): Likewise.
	(get_delta_difference): Likewise.
	(build_ptrmemfunc): Likewise.

2000-06-29  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (SET_DECL_ARTIFICIAL): Remove.
	* decl.c (create_implicit_typedef): Adjust.
	* decl2.c (build_artificial_parm): Adjust.
	* method.c (implicitly_declare_fn): Adjust.
	* pt.c (push_inline_template_parms_recursive): Adjust.
	(process_template_parm): Adjust.
	(overloaded_template_name): Adjust.
	* semantics.c (finish_template_template_parm): Adjust.

2000-06-28  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove.
	* class.c (update_vtable_entry_for_fn): Correct logic for deciding
	where to emit thunks.
	(build_vtt): Adjust call to build_vtt_inits.
	(build_vtt_inits): Add parameter to indicate whether or not
	sub-VTTs for virtual bases should be included.  Adjust handling of
	construction vtables.
	(get_matching_base): New function.
	(dfs_build_vtt_inits): Rename to ...
	(dfs_build_secondary_vptr_vtt_inits): Adjust handling of
	construction vtables.
	(dfs_fixup_binfo_vtbls): Likewise.
	(build_ctor_vtbl_groups): Build construction vtables for virtual
	bases, too.
	(accumulate_vtbl_inits): Tweak logic for deciding whether or not
	to build construction vtbls.
	(dfs_accumulate_vtbl_inits): Adjust handling of
	construction vtables.

	* pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified
	types correctly.

2000-06-27  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (grokfndecl): Set DECL_CONTEXT for static functions too.

2000-06-26  Nathan Sidwell  <nathan@codesourcery.com>

	* search.c (hides): Remove.
	(is_subobject_of_p): Add most_derived parameter. Use
	CANONICAL_BINFO.
	(lookup_field_queue_p): Adjust.
	(lookup_field_r): Adjust.

2000-06-26  Nathan Sidwell  <nathan@codesourcery.com>

	* decl2.c (handle_class_head): Bash typedefs to the type's main
	decl.

2000-06-25  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (genrtl_begin_stmt_expr): Rename to ...
	(begin_global_stmt_expr): ... this.
	(genrtl_finish_stmt_expr): Rename to ...
	(finish_global_stmt_expr): ... this.
	* init.c (begin_init_stmts): Adjust calls.
	(finish_init_stmts): Likewise.
	* semantics.c (genrtl_begin_stmt_expr): Rename to ...
	(begin_global_stmt_expr): ... this.
	(genrtl_finish_stmt_expr): Rename to ...
	(finish_global_stmt_expr): ... this.

2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

	* search.c (lookup_member): Fix typo in comment.

2000-06-24  Jason Merrill  <jason@redhat.com>

	* decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace.
	(push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL.

2000-06-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* parse.y (complex_direct_notype_declarator): Support global_scope.
	* Makefile.in: Adjust conflict count.

2000-06-23  Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>

	* parse.y (template_arg): Convert TEMPLATE_DECL
	that is a template template parameter to
	TEMPLATE_TEMPLATE_PARM here.

	* cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment.
	* cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro.
	(copy_template_template_parm): Adjust prototype.
	* decl.c (grokdeclarator): Remove dead code.
	* pt.c (process_template_parm): Tidy.
	(lookup_template_class): Construct nodes in
	copy_template_template_parm.
	(tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to
	lookup_template_class.  Use TYPE_TI_TEMPLATE.
	* tree.c (copy_template_template_parm): Add NEWARGS
	parameter.
	(mapcar): Adjust call to copy_template_template_parm.
	* typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.
	* method.c (build_template_template_parm_names): Change error
	code to avoid compilation warning.

	* gxxint.texi: Document template template parameter
	name mangling.

2000-06-21  Alex Samuel  <samuel@codesourcery.com>

	* Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o.
	(CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c.
	(cp-demangle.o): New rule.
	(dyn-string.o): Likewise.
	* inc/cxxabi.h (__cxa_demangle): New declaration.

2000-06-22  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (BV_USE_VCALL_INDEX_P): New macro.
	(BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise.
	(lang_decl_flags): Add generate_with_vtable_p.  Make vcall_offset
	a tree, not an int.
	(THUNK_GENERATE_WITH_VTABLE_P): New macro.
	(make_thunk): Change prototype.
	(emit_thunk): Rename to use_thunk.
	(mangle_thunk): Change prototype.
	* class.c (get_derived_offset): Simplify.
	(copy_virtuals): Clear BV_USE_VCALL_INDEX_P and
	BV_GENERATE_THUNK_WITH_VTABLE_P.
	(build_primary_vtable): Simplify.
	(add_virtual_function): Use BV_FN, rather than TREE_VALUE.
	(dfs_find_base): Remove.
	(update_vtable_entry_for_fn): Correct bug in finding the base
	where a virtual function was first declared.  Figure out whether
	or not to emit a vcall-thunk with the vtables in which it appears.
	Correct logic for deciding whether to use an ordinary thunk, or a
	vcall thunk.
	(finish_struct_1): Remove unnecssary code.
	(build_vtbl_initializer): Use ssize_int for the running counter of
	negative indices.
	(build_vtbl_initializer): Only use vcall thunks where necessary.
	Mark thunks as needing to be emitted with their vtables, or not.
	(build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in
	indices.  Use size_binop.
	(dfs_build_vcall_offset_vtbl_entries): Don't rely on
	BINFO_PRIMARY_MARKED_P here.  Use BV_FN consistently.  Use
	size_binop.
	(build_rtti_vtbl_entries): Adjust call to build_vtable_entry.
	(build_vtable_entry): Mark thunks as needing to be emitted with
	their vtables, or not.
	* decl.c (lang_mark_tree): Mark the vcall_offset in a thunk.
	* decl2.c (mark_vtable_entries): Use use_thunk instead of
	emit_thunk.
	* dump.c (dequeue_and_dump): Remove dead code.  Dump new thunk
	information.
	* error.c (dump_expr): Use BV_FN.
	* mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree,
	not an int.
	* method.c (make_thunk): Likewise.
	(emit_thunk): Rename to use_thunk.  Allow callers to decide
	whether or not to actually emit the thunk.  Adjust for changes in
	representation of vcall offsets.
	* search.c (dfs_get_pure_virtuals): Use BV_FN.
	* semantics.c (emit_associated_thunks): New function.
	(expand_body): Use it.
	* ir.texi: Adjust descriptions of thunks.

2000-06-22  Jason Merrill  <jason@redhat.com>

	* pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE.
	(tsubst_friend_function): Copy it here.

	* decl.c (grok_op_properties): Fix typo.

	* decl2.c (delete_sanity): Clarify warning, avoid failure on
	deleting void*.

	* pt.c (check_explicit_specialization): Clarify error.

	* decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from
	an old OVERLOAD when we're declaring a non-function.
	(pushdecl, destroy_local_var): Check for error_mark_node.
	(warn_extern_redeclared_static): Also bail early if
	we're a CONST_DECL.
	(push_overloaded_decl): Ignore an old error_mark_node.

2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (build_x_va_arg): Check if in a template decl.
	* pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg.

2000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* class.c (push_lang_context): TYPE_NAME gets you to the Java
	types DECLs.
	* decl.c (check_goto): Computed gotos assumed OK.

2000-06-20  Jason Merrill  <jason@redhat.com>

	* pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs
	for which we don't need to look for instantiations.

2000-06-21  Nathan Sidwell  <nathan@codesourcery.com>

	* parse.y (program): Always call finish_translation_unit.
	* parse.c, parse.h: Rebuilt.

2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>

	* method.c: Don't include hard-reg-set.h.

2000-06-20  Nathan Sidwell  <nathan@codesourcery.com>

	* rtti.c (get_base_offset): Cope when vbase field is in a base.

2000-06-20  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (build_conditional_expr): Use VOID_TYPE_P.
	* cvt.c (cp_convert_to_pointer): Likewise.
	(convert_to_void): Likewise.
	* error.c (dump_expr): Likewise.
	* except.c (complete_ptr_ref_or_void_ptr_p): Likewise.
	* init.c (build_delete): Likewise.
	* method.c (emit_thunk): Likewise.
	* optmize.c (declare_return_variable): Likewise.
	* rtti.c (get_tinfo_decl_dynamic): Likewise.
	(get_typeid): Likewise.
	(build_dynamic_cast_1): Likewise.
	* typeck.c (composite_pointer_type): Likewise.
	(common_type): Likewise.
	(build_indirect_ref): Likewise.
	(build_binary_op): Likewise.
	(build_x_compound_expr): Likewise.
	(check_return_expr): Likewise.
	* typeck2.c (add_exception_specifier): Likewise.

	* mangle.c (write_method_parms): Use direct comparison for end
	of parmlist.

2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>

	* cp-tree.h (genrtl_try_block): Declare function.
	(genrtl_handler): Likewise.
	(genrtl_catch_block): Likewise.
	(genrtl_ctor_stmt): Likewise.
	(genrtl_subobject): Likewise.
	(genrtl_decl_cleanup): Likewise.
	(genrtl_do_poplevel): Likewise.
	(genrtl_do_pushlevel): Likewise.
	(genrtl_clear_out_block): Likewise.
	(genrtl_goto_stmt): Likewise.
	(genrtl_expr_stmt): Likewise.
	(genrtl_decl_stmt): Likewise.
	(genrtl_if_stmt): Likewise.
	(genrtl_while_stmt): Likewise.
	(genrtl_do_stmt): Likewise.
	(genrtl_return_stmt): Likewise.
	(genrtl_for_stmt): Likewise.
	(genrtl_break_stmt): Likewise.
	(genrtl_continue_stmt): Likewise.
	(genrtl_scope_stmt): Likewise.
	(genrtl_switch_stmt): Likewise.
	(genrtl_case_label): Likewise.
	(genrtl_begin_compound_stmt): Likewise.
	(genrtl_finish_compound_stmt): Likewise.
	(genrtl_compound_stmt): Likewise.
	(genrtl_asm_stmt): Likewise.
	(genrtl_named_return_value): Likewise.
	(genrtl_begin_stmt_expr): Likewise.
	(genrtl_finish_stmt_expr): Likewise.
	(finish_for_stmt): Removed first argument.
	(finish_switch_stmt): Likewise.

	* semantics.c (genrtl_try_block): Define function.
	(genrtl_handler): Likewise.
	(genrtl_catch_block): Likewise.
	(genrtl_ctor_stmt): Likewise.
	(genrtl_subobject): Likewise.
	(genrtl_decl_cleanup): Likewise.
	(genrtl_do_poplevel): Likewise.
	(genrtl_do_pushlevel): Likewise.
	(genrtl_clear_out_block): Likewise.
	(genrtl_goto_stmt): Likewise.
	(genrtl_expr_stmt): Likewise.
	(genrtl_decl_stmt): Likewise.
	(genrtl_if_stmt): Likewise.
	(genrtl_while_stmt): Likewise.
	(genrtl_do_stmt): Likewise.
	(genrtl_return_stmt): Likewise.
	(genrtl_for_stmt): Likewise.
	(genrtl_break_stmt): Likewise.
	(genrtl_continue_stmt): Likewise.
	(genrtl_scope_stmt): Likewise.
	(genrtl_switch_stmt): Likewise.
	(genrtl_case_label): Likewise.
	(genrtl_begin_compound_stmt): Likewise.
	(genrtl_finish_compound_stmt): Likewise.
	(genrtl_compound_stmt): Likewise.
	(genrtl_asm_stmt): Likewise.
	(genrtl_named_return_value): Likewise.
	(genrtl_begin_stmt_expr): Likewise.
	(genrtl_finish_stmt_expr): Likewise.
	(finish_for_stmt): Removed first argument and generate rtl
	specific code.
	(finish_switch_stmt): Likewise.
	(do_poplevel): Removed generate rtl specific code.
	(do_pushlevel): Likewise.
	(add_tree): Likewise.
	(finish_goto_stmt): Likewise.
	(finish_expr_stmt): Likewise.
	(begin_if_stmt): Likewise.
	(finish_if_stmt_cond): Likewise.
	(finish_then_clause): Likewise.
	(begin_else_clause): Likewise.
	(finish_else_clause): Likewise.
	(finish_if_stmt): Likewise.
	(clear_out_block): Likewise.
	(begin_while_stmt): Likewise.
	(finish_while_stmt_cond): Likewise.
	(finish_while_stmt): Likewise.
	(begin_do_stmt): Likewise.
	(finish_do_body): Likewise.
	(finish_do_stmt): Likewise.
	(finish_return_stmt): Likewise.
	(begin_for_stmt): Likewise.
	(finish_for_init_stmt): Likewise.
	(finish_for_cond): Likewise.
	(finish_for_expr): Likewise.
	(finish_break_stmt): Likewise.
	(finish_continue_stmt): Likewise.
	(begin_switch_stmt): Likewise.
	(finish_switch_cond): Likewise.
	(finish_case_label): Likewise.
	(begin_try_block): Likewise.
	(begin_function_try_block): Likewise.
	(finish_try_block): Likewise.
	(finish_cleanup_try_block): Likewise.
	(finish_cleanup): Likewise.
	(finish_function_try_block): Likewise.
	(finish_handler_sequence): Likewise.
	(finish_function_handler_sequence): Likewise.
	(begin_handler): Likewise.
	(finish_handler_parms): Likewise.
	(begin_catch_block): Likewise.
	(finish_handler): Likewise.
	(begin_compound_stmt): Likewise.
	(finish_compound_stmt): Likewise.
	(finish_asm_stmt): Likewise.
	(finish_label_stmt): Likewise.
	(finish_label_decl): Likewise.
	(finish_subobject): Likewise.
	(finish_decl_cleanup): Likewise.
	(finish_named_return_value): Likewise.
	(begin_stmt_expr): Likewise.
	(finish_stmt_expr): Likewise.

	* decl.c (initialize_local_var): Changed call to finish_expr_stmt
	to call genrtl_expr_stmt when appropriate.

	* init.c (begin_init_stmts): Changed calls to begin_stmt_expr and
	begin_compound_expr to call genrtl_begin_stmt_expr and
	genrtl_begin_compound_expr when appropriate.
	(finish_init_stmts): Changed calls to finish_compound_expr and
	finish_stmt_expr to call genrtl_finish_compound_expr and
	genrtl_finish_stmt_expr when appropriate.
	(expand_default_init): Changed call to finish_expr_stmt to call
	genrtl_expr_stmt when appropriate.
	(build_vec_init): Likewise.

	* parse.y (simple_stmt): Removed first argument from call to
	finish_for_stmt. Removed first argument from call to
	finish_switch_stmt.

	* parse.c: Regenerated.

	* pt.c (tsubst_expr): Removed first argument from call to
	finish_for_stmt. Removed first argument from call to
	finish_switch_stmt.

2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>

	* cp-tree.h (enum cplus_tree_code): Changed __DUMMY to
	CP_DUMMY_TREE_CODE. Remove #include "c-common.def".

	* lex.c (cplus_tree_code_type[]): Removed #include "c-common.def".
	(cplus_tree_code_length[]): Likewise.
	(cplus_tree_code_name[]): Likewise.
	(init_parse): Added call to add_c_tree_codes. Changed
	LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE.

2000-06-16  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (finish_mem_initializers): Declare.
	(count_trees): Likewise.
	* parse.y (base_init): Use finish_mem_initializers.
	* semantics.c (finish_mem_initializers): New function.

	* tree.c (count_trees_r): Prototype.  Use DATA parameter to store
	the number of trees.
	(n_trees): Remove.
	(count_trees): Don't use it.

2000-06-15  Jason Merrill  <jason@redhat.com>

	* tree.c (count_trees): New debugging function.

	* typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P.
	* init.c (build_member_call): Pull out the name of a DECL.

	* Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H.
	* semantics.c (expand_body): Push to TV_INTEGRATION here.
	* optimize.c (optimize_function): Not here.
	* pt.c (instantiate_decl): Push to TV_PARSE.

2000-06-15  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (struct language_function): Remove x_base_init_list
	and x_member_init_list.
	(current_base_init_list): Remove.
	(current_member_init_list): Likewise.
	(setup_vtbl_ptr): Change prototype.
	(emit_base_init): Likewise.
	(expand_member_init): Likewise.
	(reinit_parse_for_function): Remove.
	* decl.c (save_function_data): Don't clear x_base_init_list and
	x_member_init_list.
	(mark_language_function): Don't mark them.
	* init.c (perform_member_init): Tweak comment.
	(sort_member_init): Take the list of initializers as an argument.
	(sort_base_init): Likewise.
	(emit_base_init): Likewise.
	(expand_member_init): Return the initializer.  Don't use global
	variables.
	* lex.c (reinit_parse_for_function): Remove.
	* method.c (build_template_parm_names): Correct substitution.
	(do_build_copy_constructor): Don't use current_member_init_list
	and current_base_init_list.
	(synthesize_method): Likewise.
	* parse.y (base_init): Split mem-initializers into
	base-initializers and field-initializers.
	(member_init_list): Build up the list here.
	(member_init): Return the initializer.
	(fn.depfn): Don't use reinit_parse_for_function.
	* parse.c: Regenerated.
	* pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the
	ERROR_MARK.
	(tsubst_expr): Don't use current_member_init_list
	and current_base_init_list.
	(tsubst_expr_values): Rename to ...
	(tsubst_initializer_list): ... this.  Use convert_from_reference.
	* semantics.c (setup_vtbl_ptr): Don't use current_member_init_list
	and current_base_init_list.
	(begin_function_definition): Don't call reinit_parse_for_function.

	* dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors.

	* error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE
	correctly.

	* cp-tree.h (DECL_PENDING_INLINE_P): Relax checking.

2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>

	* cp-tree.h (IF_COND): Move to c-common.h.
	(THEN_CLAUSE): Likewise.
	(ELSE_CLAUSE): Likewise.
	(WHILE_COND): Likewise.
	(WHILE_BODY): Likewise.
	(DO_COND): Likewise.
	(DO_BODY): Likewise.
	(RETURN_EXPR): Likewise.
	(EXPR_STMT_EXPR): Likewise.
	(FOR_INIT_STMT): Likewise.
	(FOR_COND): Likewise.
	(FOR_EXPR): Likewise.
	(FOR_BODY): Likewise.
	(SWITCH_COND): Likewise.
	(SWITCH_BODY): Likewise.
	(CASE_LOW): Likewise.
	(CASE_HIGH): Likewise.
	(GOTO_DESTINATION): Likewise.
	(COMPOUND_BODY): Likewise.
	(ASM_CV_QUAL): Likewise.
	(ASM_STRING): Likewise.
	(ASM_OUTPUTS): Likewise.
	(ASM_INPUTS): Likewise.
	(ASM_CLOBBERS): Likewise.
	(DECL_STMT_DECL): Likewise.
	(STMT_EXPR_STMT): Likewise.
	(LABEL_STMT_LABEL): Likewise.
	(SCOPE_BEGIN_P): Likewise.
	(SCOPE_END_P): Likewise.
	(SCOPE_STMT_BLOCK): Likewise.
	(SCOPE_NULLIFIED_P): Likewise.
	(SCOPE_NO_CLEANUPS_P): Likewise.
	(SCOPE_PARTIAL_P): Likewise.
	(ASM_VOLATILE_P): Likewise.
	(STMT_LINENO): Likewise.
	(STMT_LINENO_FOR_FN_P): Likewise.

	* cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
	ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
	FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
	CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
	SCOPE_STMT, CASE_LABEL, STMT_EXPR.

	* Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def.

	* Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def.
	(cc1plus$(exeext)): Added $(srcdir)/c-common.def.

	* lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'.
	(cplus_tree_code_length[]): Added '#include "c-common.def"'.
	(cplus_tree_code_name[]): Added '#include "c-common.def"'.

2000-06-14  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro.
	* class.c (dfs_find_final_overrider): Set it appropriately.
	(dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to
	avoid unneeded secondary vptrs.

2000-06-13  Jakub Jelinek  <jakub@redhat.com>

	* class.c (build_secondary_vtable): Set DECL_USER_ALIGN.
	(check_bitfield_decl, check_field_decl): Likewise.
	(build_vtbl_or_vbase_field, build_base_field): Likewise.
	(layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN.
	* decl.c (record_unknown_type): Set TYPE_USER_ALIGN.
	(xfer_tag, finish_enum): Likewise.
	* decl2.c (finish_builtin_type): Likewise.
	* init.c (init_init_processing): Likewise.
	* pt.c (instantiate_class_template): Likewise.
	* rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN.
	* cp-tree.h (struct lang_type): Add user_align member.
	(CLASSTYPE_USER_ALIGN): Define.

2000-06-13  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* Make-lang.in (c++.install-common): Install g++-cross in
	$(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as
	$(target_alias)-g++ and $(target_alias)-c++.

2000-06-12  Mark Mitchell  <mark@codesourcery.com>

	* class.c (vcall_offset_data_s): Add last_init and fns.
	(overrides): Rename to same_signature_p.
	(dfs_find_final_overrider): Adjust accordingly.
	(mark_overriders): Likewise.
	(warn_hidden): Likewise.
	(build_vtbl_initializer): Reorganize machinery for building things
	at negative offsets.
	(build_vcall_and_vbase_vtbl_entries): Likewise.
	(build_vbase_offset_vtbl_entries): Likewise.
	(dfs_build_vcall_offset_vtbl_entries): Correct order of vcall
	offset entries.  Do not create two entries for functions with the
	same signature.
	(build_vcall_offset_vtbl_entries): Initialize vod->fns.
	(build_rtti_vtbl_entries): Reorganize machinery for building things
	at negative offsets.

	* optimize.c (expand_call_inline): Don't recurse into the code
	used to initialize the parameters more than once.

2000-06-11  Mark Mitchell <mark@codesourcery.com>

	* mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment.
	(is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here.
	(find_substitution): Only use the `Sa' substitution for
	std::allocator, not instantiations of it.
	(write_template_prefix): Move comment.  Only use a TREE_LIST to
	represent substitutions for a member template.
	(write_array_type): Mangle array dimensions correctly.
	* optimize.c (maybe_clone_body): Copy more information from the
	cloned function.
	* pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE
	on the regenerated declaration.

2000-06-11  Chip Salzenberg  <chip@valinux.com>
	    Mark Mitchell <mark@codesourcery.com>

	* class.c (build_vtable): Clarify comment.
	(build_ctor_vtbl_group): Pass the most derived type to
	build_vtable.

2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* decl2.c (compare_options): Don't needlessly cast away const-ness.

2000-06-10  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (add_binding): Handle duplicate declarations of external
	variables.

2000-06-09  Chip Salzenberg  <chip@valinux.com>
	    Mark Mitchell <mark@codesourcery.com>

	* mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an
	argument.
	(write_signed_number): New macro.
	(write_unsigned_number): Likewise.
	(write_source_name): Use them.
	(write_number): Handle signed and unsigned values.
	(write_integer_cst): Use tree_int_cst_sgn, and use
	write_unsigned_number or write_signed_number as appropriate.
	(write_discriminator): Use write_unsigned_number or
	write_signed_number as appropriate.
	(write_template_arg_literal): Likewise.
	(write_array_type): Use tree_low_cst.
	(write_template_parm):  Use write_unsigned_number or
	write_signed_number as appropriate.
	(write_substitution): Adjust call to write_number.
	(write_type): Get the TYPE_MAIN_VARIANT before mangling it.
	(write_expression): Handle non-type template arguments of
	reference type correctly.
	(mangle_thunk): Use write_signed_number.

2000-06-09  Chip Salzenberg  <chip@valinux.com>

	* mangle.c (find_substition): Don't mangle objects with typename
	substitutions (e.g. "cin" as "Si").

2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>

	* call.c (add_candidate): Use ggc_alloc_cleared.
	* decl.c (lookup_label): Likewise.
	* lex.c (retrofit_lang_decl): Likewise.

2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>

	* semantics.c (expand_body): Push to TV_EXPAND.
	* optimize.c (optimize_function): Push to TV_INTEGRATION.
	* decl.c (start_function): Always call announce_function.

	* tinfo2.cc: Just declare abort.

2000-06-09  Gabriel Dos Reis  <gdr@codesourcery.com>

	* lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @'
	whenever @ is a symbolic name.

2000-06-08  Jakub Jelinek  <jakub@redhat.com>

	* method.c (make_thunk): Clear DECL_VTT_PARM in thunk.

2000-06-07  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (pushdecl): Look up functions by DECL_NAME, not
	DECL_ASSEMBLER_NAME.

2000-06-06  Mark Mitchell  <mark@codesourcery.com>

	* decl2.c (c_language): Define.

2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>

	* lex.c (lang_init_options): Tweak.

	* decl2.c: Remove #inclusion of diagnostic.h
	(lang_decode_option): Move diagnostic formatting options to
	toplevel.

	* lang-options.h: Remove documentation for diagnostic options.

	* Makefile.in (lex.o): Depends upon diagnostic.h

2000-06-06  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have
	the same DECL_RESULT, it's not a redefinition.
	* pt.c (tsubst_decl): Remove code to handle illegal
	specializations.

2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>

	* exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c

2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>

	* search.c (maybe_suppress_debug_info): Don't check
	CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set.

	* pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION
	here if extern_p.

	Remember instantiation context in deferred instantiations.
	* cp-tree.h (struct tinst_level): Remove.
	(TINST_DECL, TINST_LINE, TINST_FILE): New macros.
	* pt.c (current_tinst_level): Now a tree.
	(print_template_context, push_tinst_level, pop_tinst_level,
	tinst_for_decl): Adjust.
	(reopen_tinst_level): New fn.
	(init_pt): Register current_tinst_level as a root.
	(add_pending_template): Put current_tinst_level in TREE_PURPOSE
	of the pending templates list.
	(instantiate_pending_templates): Adjust.  Call reopen_tinst_level.
	* lex.c (extract_interface_info): Adjust.
	* decl2.c (warn_if_unknown_interface): Adjust.

2000-06-05  Mark Mitchell  <mark@codesourcery.com>

	* class.c (indirect_primary_base_p): New function.
	(determine_primary_base): Use it.

2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>

	Update new-abi dynamic cast algorithm.
	* tinfo.cc (__class_type_info::__dyncast_result): Add
	whole_details. Adjust constructor.
	(__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags.
	Avoid unnecessary searching.
	(__dynamic_cast): Adjust for __dyncast_result::whole_details.

2000-06-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* decl.c (init_decl_processing): Don't call record_component_aliases.
	* tree.c (build_cplus_array_type_1): Likewise.

2000-06-04  Mark Mitchell  <mark@codesourcery.com>

	* ir.texi: Correct typo.
	* mangle.c (write_expression): Handle non-type template arguments
	with reference type.
	* method.c (build_overload_value): Likewise.
	* pt.c (convert_nontype_argument): Explicitly represent conversion
	to a reference with an ADDR_EXPR.
	(unify): Always unify arguments in left-to-right order.

2000-06-03  Alex Samuel    <samuel@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>

	* Make-lang.in (CXX_SRCS): Add mangle.c.
	* Makefile.in (CXX_OBJS): Add mangle.o.
	(mangle.o): New rule.

	* class.c (local_classes): New variable.
	* class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI.
	(get_vtt_name): Use mangle_vtt_name for new ABI.
	(init_class_processing): Initialize local_classes.
	(build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI.
	* cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER.
	(std_identifier): New macro.
	(DECL_VOLATILE_MEMFUNC_P): New macro.
	(DECL_NAMESPACE_STD_P): Likewise.
	(local_classes): Declare.
	(get_mostly_instantiated_function_type): Declare.
	(init_mangle): Declare.
	(mangle_decl): Likewise.
	(mangle_type_string): Likewise.
	(mangle_type): Likewise.
	(mangle_typeinfo_for_type): Likewise.
	(mangle_typeinfo_string_for_type): Likewise.
	(mangle_vtbl_for_type): Likewise.
	(mangle_vtt_for_type): Likewise.
	(mangle_ctor_vtbl_for_type): Likewise.
	(mangle_thunk): Likewise.
	(mangle_conv_op_name_for_type): Likewise.
	(mangle_guard_variable): Likewise.
	* decl.c (pushtag): Keep track of local classes.
	(initialize_predefined_identifiers): Initialize std_identifier.
	(init_decl_processing): Use std_identifier.
	(start_decl): Don't treat instantiations as specializations.
	(grokdeclarator): Likewise.
	(grokvardecl): Call mangle_decl for new ABI.  Only set mangled
	name for fully-instantiated templates.
	* decl2.c (grokclassfn): Use set_mangled_name_for_decl for
	destructors with the new ABI.
	(finish_static_data_member_decl): Use mangle_decl under the new ABI.
	(grokfield): Use mangle_type for new ABI.
	(grokoptypename): Use mangle_conv_op_for_type for new ABI.
	(get_sentry): Use mangle_guard_variable for new ABI.
	(start_static_initialization_or_destruction): Likewise.
	* expr.c (extract_aggr_init): Remove.
	(extract_scalar_init): Likewise.
	(extract_init): Remove #if 0'd code.
	* mangle.c: New function.
	* method.c (build_mangled_name): Assert not flag_new_abi.
	(build_static_name): Likewise.
	(build_decl_overload_real): Likewise.
	(build_typename_overload): Likewise.
	(build_overload_with_type): Likewise.
	(build_overload_name): Likewise.
	(get_ctor_vtbl_name): Likewise.
	(start_squangling): Likewise.
	(get_id_2): Likewise.
	(set_mangled_name_for_decl): Call mangle_decl for new ABI.
	(init_method): Call init_mangle for new ABI.
	(make_thunk): Call mangle_thunk for new ABI.
	* operators.def: Correct new ABI manglings for the `%' operator.
	Add `::' operator.
	* pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and
	DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL.
	(lookup_template_class): Call mangle_decl for new ABI.
	(get_mostly_instantiated_function_type): New function.
	(set_mangled_name_for_template_decl): Use it.
	(tsubst_decl): Use set_mangled_name_for_decl for destructors with
	the new ABI.  Use mangle_conv_op_name_for_type for instantiated
	conversion op names.
	* rtti.c (tinfo_name): Call mangle_type_string for new ABI.
	(get_tinfo_decl): Call mangle_typeinfo_for_type for new	ABI.
	(tinfo_base_init):  Likewise.  Mangle typeinfo string name with
	mangle_typeinfo_string_for_type.

2000-06-03  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment.
	(INNERMOST_TEMPLATE_ARGS): New macro.
	(innermost_args): Remove.
	(get_innermost_template_args): New function.
	* decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS.
	* error.c (dump_function_decl): Be caution when using
	most_general_template.
	* method.c (build_template_parm_names):  Use
	INNERMOST_TEMPLATE_ARGS.
	* pt.c (add_to_template_args): Tidy comment
	(get_innermost_template_args): New function.
	(check_explicit_specialization): Clear DECL_INITIAL for a new
	specialization.
	(process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS.
	Tidy.
	(push_template_decl): Always register specializations of the most
	general template.
	(convert_template_argument): Use INNERMOST_TEMPLATE_ARGS.
	(coerce_template_parms): Likewise.
	(lookup_template_class): Likewise.
	(innermost_args): Remove.
	(tsubst_decl): Use INNERMOST_TEMPLATE_ARGS.
	(tsubst_decl): Handle tricky specializations.  Use
	get_innermost_template_args.
	(instantiate_template): Simplify handling of partial
	instantiations.
	(get_class_bindings): Use INNERMOST_TEMPLATE_ARGS.
	(most_general_template): Reimplement, in a more straightforward
	manner.
	(regenerate_decl_from_template): Tweak formatting.  Use
	TMPL_ARGS_DEPTH for clarity.
	(set_mangled_name_for_template_decl): Use INNERMOST_ARGS.

	* dump.c (dequeue_and_dump): Dump information about thunks.

2000-06-01  Richard Henderson  <rth@cygnus.com>

	* decl.c (init_decl_processing): Set lang_get_alias_set first thing.

2000-06-01  Richard Henderson  <rth@cygnus.com>

	* decl2.c (unsupported_options): Fix typo, make const.
	(lang_decode_option): Fix bsearch argument order.

2000-06-01  Mark Mitchell  <mark@codesourcery.com>

	* init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE
	on FIELD_DECLs.

2000-05-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* cp-tree.h (c_get_alias_set): Deleted.
	* Makefile.in (decl.o): Include ../expr.h.
	* decl.c (expr.h): Include.
	(init_decl_processing): Call record_component_aliases for arrays.
	(grokdeclarator): Likewise.
	Set TREE_ADDRESSABLE for fields that aren't bitfields.
	* tree.c (build_cplus_array_type_1): Call record_component_aliases.

2000-05-31  Mark Mitchell  <mark@codesourcery.com>

	Remove guiding declaration support.
	* cp/cp-tree.h (flag_dump_translation_unit): Make it const.
	(flag_guiding_decls): Remove.
	* call.c (build_user_type_conversion_1): Remove support for
	guiding decls.
	(build_new_function_call): Likewise.
	(build_new_op): Likewise.
	(build_new_method_call): Likewise.
	* decl.c (start_function): Likewise.
	* friend.c (is_friend): Likewise.
	(do_friend): Likewise.
	* decl2.c ((flag_dump_translation_unit): Make it const.
	(flag_guiding_decls): Remove.
	(unsupported_options): New variable
	(compare_options): New function.
	(lang_decode_option): Use them.

	* decl.c (build_cp_library_fn): Set DECL_CONTEXT.

	* method.c (mangle_expression): Adjust test for legal expression
	operators.

	* pt.c (instantiate_decl): Save and restore the local
	specializations list.

2000-05-30  Jason Merrill  <jason@decepticon.cygnus.com>

	* decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING.

2000-05-30  Mark Mitchell  <mark@codesourcery.com>

	* call.c (add_template_candidate_real): Handle member template
	constructors for classes with virtual bases.
	(build_user_type_conversion_1): Use in_charge_arg_for_name.
	(build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P.

	* ir.texi: Update thunk documentation.

	* call.c (joust): Fix handling of overloaded builtin operators.

2000-05-30  Zack Weinberg  <zack@wolery.cumb.org>

	* cp-tree.h (DECL_ANTICIPATED): New macro.
	Document new use of DECL_LANG_FLAG_7.
	* decl.c (builtin_function): Set DECL_ANTICIPATED on builtins
	in the user namespace.
	* lex.c (do_identifier): If the identifier's declaration has
	DECL_ANTICIPATED on, it has not yet been declared.  But do not
	replace it with an ordinary implicit declaration.

	* tinfo2.cc: Include stdlib.h.

2000-05-29  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro.
	* class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not
	CLASSTYPE_ALIGN.

2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>

	* decl2.c (lang_decode_option): Use skip_leading_substring instead
	of plain strncmp.

2000-05-28  Alexandre Oliva  <aoliva@cygnus.com>

	* operators.def (<?): Duplicated, should have been...
	(>?): this.  Fixed.

2000-05-27  Alex Samuel    <samuel@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (ansi_opname): Make it a macro.
	(ansi_assopname): Likewise.
	(struct lang_decl_flags): Add assignment_operator_p.
	(struct lang_decl): Add operator_code.
	(DECL_VTT_PARM): Adjust.
	(DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an
	overloaded operator.
	(SET_OVERLOADED_OPERATOR_CODE): New macro.
	(DECL_ASSIGNMENT_OPERATOR_P): New macro.
	(DECL_ARRAY_DELETE_OPERATOR_P): Adjust.
	(opname_tab): Remove.
	(assignop_tab): Likewise.
	(operator_name_info_t): New type.
	(operator_name_info): New variable.
	(assignment_operator_name_info): Likewise.
	(build_cp_library_fn): Remove declaration.
	(push_cp_library_fn): Likewise.
	(operator_name_string): Likewise.
	(build_decl_overload): Likewise.
	* call.c (print_z_candidates): Simplify.
	(build_object_call): Adjust usage of ansi_opname.  Use
	DECL_OVERLOADED_OPERATOR_P.
	(op_error): Adjust operator name lookup.
	(build_conditional_expr): Adjust usage of ansi_opname.
	(build_new_op): Likewise.
	(build_op_delete_call): Likewise.
	(build_over_call): Likewise.
	(joust): Use DECL_OVERLOADED_OPERATOR_P.
	* decl.c (duplicate_decls): Copy operator_code.
	(init_decl_processing): Adjust parameters to push_cp_library_fn.
	(builtin_function): Adjust parameters to build_library_fn_1.
	(build_library_fn_1): Accept an overloaded operator code.
	(build_library_fn): Pass ERROR_MARK.
	(build_cp_library_fn): Accept an overloaded operator code.
	(push_cp_library_fn): Likewise.
	(grokfndecl): Tweak.
	(grokdeclarator): Simplify code to compute names of overloaded
	operators.  Adjust use of ansi_opname.
	(ambi_op_p): Work on tree_codes, not identifiers.
	(unary_op_p): Likewise.
	(grok_op_properties): Likewise.
	(start_function): Use DECL_OVERLOADED_OPERATOR_P.
	(lang_mark_tree): Don't try to mark the operator_code.
	* decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P.
	* error.c (dump_decl): Remove special handling for operator
	names.
	(dump_function_name): Likewise.
	(dump_expr): Adjust name lookup of operators.
	(op_to_string): Simplify.
	(assop_to_string): Likewise.
	* init.c (build_new_1): Adjust use of ansi_opname.
	* lex.c (opname_tab): Remove.
	(assignop_tab): Likewise.
	(ansi_opname): Likewise.
	(ansi_assopname): Likewise.
	(operator_name_string): Likewise.
	(reinit_lang_specific): Likewise.
	(operator_name_info): New variable.
	(assignment_operator_name_info): Likewise.
	(init_operators): New function.
	(init_parse): Use it.
	(do_identifier): Adjust use of ansi_opname.
	* method.c (mangle_expression): Don't use ansi_opname for
	mangling.
	(build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P.
	(build_decl_overload): Remove.
	(build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly.
	(do_build_assign_ref): Adjust use of ansi_opname.
	(synthesize_method): Likewise.
	(implicitly_declare_fn): Likewise.
	* operators.def: New file.
	* parse.y (operator): Adjust use of ansi_opname.
	* pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P.
	(set_mangled_name_for_template_decl): Don't play games with
	current_namespace.
	(special_function_p): Adjust use of ansi_opname.
	* typeck.c (check_return_expr): Likewise.
	* Make-lang.in (cc1plus): Depend on operators.def.
	* Makefile.in (lex.o): Likewise.
	(decl.o): Likewise.

2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>

	* Make-lang.in (cplib2.ready): Eradicate.

2000-05-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* method.c (mangle_expression): Use TREE_CODE_LENGTH.
	* tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH.
	(built_min, cp_tree_equal): Likewise.

2000-05-26  Mark Mitchell  <mark@codesourcery.com>

	* class.c (layout_nonempty_base_or_field): Replace
	`record_layout_info' with `record_layout_info_s'.

2000-05-26  Jason Merrill  <jason@casey.soma.redhat.com>

	Fix goto checking.
	* cp-tree.h (struct language_function): x_named_labels is now
	a struct named_label_list*.
	* decl.c (struct named_label_use_list): Renamed from...
	(struct named_label_list): ...this.  New struct.
	(push_binding_level): Don't set eh_region.
	(note_level_for_eh): New fn.
	(pop_label): Take label and old value directly.
	(pop_labels): Adjust for new named_labels format.
	(lookup_label): Likewise.
	(poplevel): Note characteristics of a binding level containing a
	named label.  Mess with named label lists earlier.
	(mark_named_label_lists): New fn.
	(mark_lang_function): Call it.
	(use_label): New fn, split out from...
	(make_label_decl): ...here.  Don't call it.
	(decl_jump_unsafe, check_previous_goto, check_previous_goto_1,
	check_previous_gotos): New fns,	split out from...
	(define_label): ...here.
	(check_switch_goto): New fn.
	(define_case_label): Call it.
	(check_goto): New fn.
	* semantics.c (finish_goto_stmt): Call it and use_label.
	(begin_compound_stmt): If we're a try block, call note_level_for_eh.
	(expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings.

2000-05-26  Mark Mitchell  <mark@codesourcery.com>

	* class.c (build_vtable_entry_ref): Correct usage of
	get_vtbl_decl_for_binfo.

	* decl2.c (grokclassfn): Set DECL_LANGUAGE here.
	* method.c (implicitly_declare_fn): Not here.

2000-05-26  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ...
	(CPTI_PTMD_DESC_TYPE): ... here.
	(ptmd_desc_type_node): Rename to ...
	(ptm_desc_type_node): ... here.
	* decl.c: Likewise.
	* rtti.c (ptmd_initializer): Rename to ...
	(ptm_initializer): ... here.
	(sythesize_tinfo_var): Adjust. Deal with pointer to member
	function.
	(create_tinfo_types): Adjust.

2000-05-25  Mark Mitchell  <mark@codesourcery.com>

	Finish implementation of VTTs.
	* cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and
	CPTI_VTT_PARM_IDENTIFIER.
	(vtt_parm_identifier): New macro.
	(vtt_parm_type): Likewise.
	(BINFO_SUBVTT_INDEX): Likewise.
	(BINFO_VPTR_INDEX): Likewise.
	(struct lang_decl): Add vtt_parm.
	(DECL_VTT_PARM): New macro.
	(DECL_USE_VTT_PARM): Likewise.
	(DECL_NEEDS_VTT_PARM_P): Likewise.
	(get_vtt_name): Declare.
	(build_artificial_parm): Likewise.
	(fixup_all_virtual_upcast_offsets): Likewise.
	(expand_indirect_vtbls_init): Remove.
	* call.c (build_new_method_call): Pass the vtt to subobject
	constructors and destructors.
	* class.c (get_vtt_name): Give it external linkage.
	(build_clone): Handle the magic VTT parameters for clones.
	(clone_function_decl): Fix typo in comment.
	(build_vtt): Keep track of the indices in the VTTs where various
	entities are stored.
	(build_vtt_inits): Likewise.
	(dfs_build_vtt_inits): Likewise.
	(build_ctor_vtbl_group): Tweak type of construction vtables.
	(dfs_accumulate_vtbl_inits): Build vtables for all bases, even
	primary bases, when building construction vtables.
	* decl.c (duplicate_decls): Handle DECL_VTT_PARM.
	(initialize_predefined_identifiers): Add vtt_parm_identifier.
	(init_decl_processing): Initialize vtt_parm_type.
	(grokfndecl): Use DECL_OVERLOADED_OPERATOR_P.
	(lang_mark_tree): Make vtt_parm.
	* decl2.c (build_artificial_parm): New function.
	(maybe_retrofit_in_chrg): Use it.  Add VTT parameters.
	(grokclassfn): Use build_artificial_parm.
	* init.c (initialize_vtbl_ptrs): Call
	fixup_all_virtual_upcast_offsets directly.
	(perform_member_init): Use the complete subobject destructor for
	member cleanups.
	(build_vtbl_address): New function.
	(expand_virtual_init): Handle VTTs.
	* optimize (maybe_clone_body): Likewise.
	* search.c (fixup_all_virtual_upcast_offsets): Give it external
	linkage.
	(expand_indirect_vtbls_init): Remove.
	* semantics.c (setup_vtbl_ptr): Fix typos in comment.
	* tree.c (make_binfo): Make them bigger.

2000-05-25  Nathan Sidwell  <nathan@codesourcery.com>

	* inc/cxxabi.h (__pbase_type_info): Define, based on
	__pointer_type_info.
	(__pointer_type_info): Derive from __pbase_type_info. Adjust.
	(__pointer_to_member_type_info): Likewise.
	* tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement.
	(__pointer_to_member_type_info::__is_pointer_p): Remove.
	(__pointer_type_info::__do_catch): Rename to ...
	(__pbase_type_info::__do_catch): ... here. Adjust.
	(__pbase_type_info::__pointer_catch): Implement.
	(__pointer_type_info::__pointer_catch): Adjust.
	(__pointer_to_member_type_info::__pointer_catch): Adjust.

2000-05-25  Nathan Sidwell  <nathan@codesourcery.com>

	* tinfo.h (__user_type_info::contained_virtual_p): New
	predicate.
	* tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond
	shaped hierarchy.
	(__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to
	diamond shaped hierarchy. Add early out for mixed diamond and
	duplicate shaped hierarchy.

2000-05-24  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (build_delete): Change prototype.
	(build_vec_delete): Likewise.
	* call.c (build_scoped_method_call): Use special_function_kind
	values to indicate the kind of destruction to be done.
	(build_method_call): Likewise.
	* decl.c (finish_destructor_body): Likewise.
	(maybe_build_cleanup_1): Likewise.  Rename to ...
	(maybe_build_cleanup): ... this.
	* decl2.c (delete_sanity): Use special_function_kind
	values to indicate the kind of destruction to be done.
	(build_cleanup): Likewise.
	* init.c (perform_member_init): Likewise.
	(build_vec_delete_1): Likewise.
	(build_dtor_call): Simplify.
	(build_delete): Use special_function_kind
	values to indicate the kind of destruction to be done.
	(build_vbase_delete): Likewise.
	(build_vec_delete): Likewise.

	* init.c (sort_member_init): Fix typo in error message generation
	code.

2000-05-15  Donald Lindsay  <dlindsay@cygnus.com>

	* semantics.c (begin_class_definition): make the packed
	attribute be sensitive to the "-fpack-struct" command line flag

2000-05-24  Nathan Sidwell  <nathan@codesourcery.com>

	Update new-abi upcast algorithm.
	* inc/cxxabi.h (__class_type_info::__do_upcast): Change
	prototype and meaning of return value.
	(__si_class_type_info::__do_upcast): Likewise.
	(__vmi_class_type_info::__do_upcast): Likewise.
	* tinfo.cc (__class_type_info::__upcast_result): Replace
	whole2dst with part2dst. Adjust ctor.
	(__class_type_info::__do_upcast): Adjust call of worker function.
	(__class_type_info::__do_upcast): Adjust.
	(__si_class_type_info::__do_upcast): Adjust. Use parent's
	__do_upcast.
	(__vmi_class_type_info::__do_upcast): Likewise. Fix private
	virtual base in diamond hierarchy bug.

2000-05-23  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable
	and bitfield to tinfo_fn_p.
	(DECL_TINFO_FN_P): Adjust.
	(SET_DECL_TINFO_FN_P): Likewise.
	(DECL_MUTABLE_P): Likewise.
	(DECL_C_BIT_FIELD): Likewise.
	(SET_DECL_C_BIT_FIELD): Likewise.
	(CLEAR_DECL_C_BIT_FIELD): Likewise.
	(DECL_UNINLINABLE): Likewise.
	* class.c (alter_access): Call retrofit_lang_decl if ncessary.
	(handle_using_decl): Remove assertion.
	(build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl,
	to build FIELD_DECLs.
	(build_base_field): Likewise.
	(layout_class_type): Likewise.
	* decl.c (init_decl_processing): Likewise.
	(build_ptrmemfunc_type): Likewise.
	(grokdeclarator): Likewise.
	* decl2.c (grok_x_components): Likewise.
	* except.c (call_eh_info): Likewise.
	* init.c (init_init_processing): Likewise.
	* rtti.c (expand_class_desc): Likewise.
	(create_pseudo_type_info): Likewise.
	(get_vmi_pseudo_type_info): Likewise.
	(create_tinfo_types): Likewise.
	* ptree.c (print_lang_decl): Adjust.
	* typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC
	before checking DECL_MUTABLE_P.

	* decl2.c (maybe_retrofit_in_chrg): Don't create in-charge
	parameters for template functions.
	* pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for
	destructors as well as constructors.

2000-05-22  Mark Mitchell  <mark@codesourcery.com>

	* class.c (build_ctor_vtbl_group): Set inits.
	* optimize.c (maybe_clone_body): Set DECL_INLINE and
	DECL_THIS_INLINE appropriately for clones.

	* cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp.
	(DECL_CONV_FN_P): Simplify.
	(DECL_OPERATOR): Remove.
	(language_to_string): Declare.
	* decl.c (duplicate_decls): Fix typo in comment.
	(grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P.
	(grok_op_properties): Use DECL_CONV_FN_P instead of
	IDENTIFIER_TYPENAME_P.
	* dump.c (dequeue_and_dump): Dump the language linkage of
	declarations.
	* error.c (language_to_string): Give it external linkage.
	* method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P.
	(implicitly_declare_fn): Set DECL_LANGUAGE.
	* pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not
	IDENTIFIER_TYPENAME_P.
	(tsubst_decl): Likewise.
	(tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P.
	* semantics.c (finish_member_declaration): Don't mark members of
	classes declared in an extern "C" region as extern "C".

2000-05-22  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* decl2.c (qualified_lookup_using_namespace): Look through
	namespace aliases.

	* decl.c (push_using_decl): Return the old decl on namespace level.

2000-05-21  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks.
	(VTT_NAME_PREFIX): New macro.
	(CTOR_VTBL_NAME_PREFIX): Likewise.
	(get_ctor_vtbl_name): New function.
	* class.c (get_vtable_name): Simplify.
	(get_vtt_name): New function.
	(get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE.
	(dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list
	when a virtual base becomes primary.
	(finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier.  Build
	VTTs.
	(finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in
	additional parameters.
	(dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED.
	(initialize_array): New function.
	(build_vtt): Likewise.
	(build_vtt_inits): Likewise.
	(dfs_build_vtt_inits): Likewise.
	(dfs_fixup_binfo_vtbls): Likewise.
	(build_ctor_vtbl_group): Likewise.
	(initialize_vtable): Use initialize_array.
	(accumulate_vtbl_inits): Reimplement to handle construction
	vtables.
	(dfs_accumulate_vtbl_inits): Likewise.
	(bulid_vtbl_initializer): Adjust parameter name.
	* method.c (build_typename_overload): Remove #if 0'd code.
	(get_ctor_vtbl_name): New function.
	* search.c (dfs_walk_real): Use BINFO_N_BASETYPES.
	(init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo.

	* cp-tree.h (struct lang_type): Remove search_slot.
	(CLASSTYPE_SEARCH_SLOT): Remove.
	(emit_base_init): Change prototype.
	(initialize_vtbl_ptrs): Likewise.
	(expand_indirect_vtbls_init): Likewise.
	(clear_search_slots): Remove.
	* decl.c (lang_mark_tree): Don't mark search_slot.
	* init.c (initialize_vtbl_ptrs): Simplify.
	(emit_base_init): Likewise.
	* search.c (struct vbase_info): Document decl_ptr.
	(convert_pointer_to_single_level): Remove.
	(dfs_find_vbases): Remove.
	(dfs_init_base_pointers): Simplify.
	(dfs_clear_vbase_slots): Remove.
	(dfs_vtable_path_unmark): New function.
	(init_vbase_pointers): Simplify.
	(expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT.
	(expand_indirect_vtbls_init): Simplify.  Don't call
	mark_all_temps_used.
	* semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and
	initialize_vtbl_ptrs.

2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>

	* except.c: Add static prototypes.

2000-05-20  H.J. Lu  <hjl@gnu.org>

	* Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext).

2000-05-19  Mark Mitchell  <mark@codesourcery.com>

	Don't create a separate copy of virtual bases for the
	CLASSTYPE_VBASECLASSES list.
	* cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation.
	(BINFO_FOR_VBASE): Remove.
	(CANONICAL_BINFO): Adjust.
	(binfo_for_vbase): New function.
	* class.c (build_vbase_pointer_fields): Use binfo_for_vbase
	instead of BINFO_FOR_VBASE.
	(build_vbase_pointer): Likewise.
	(build_secondary_vtable): Likewise.
	(dfs_mark_primary_bases): Likewise.
	(mark_primary_bases): Likewise.
	(layout_nonempty_base_or_field): Likewise.
	(dfs_set_offset_for_shared_vbases): Likewise.
	(dfs_set_offset_for_unshared_vbases): Likewise.
	(layout_virtual_bases): Likewise.  Adjust for changes to the
	CLASSTYPE_VBASECLASSES list.
	(dump_class_hierarchy_r): Use binfo_for_vbase
	instead of BINFO_FOR_VBASE.
	(dump_class_hierarchy): Likewise.
	(finish_vtbls): Likewise.
	(build_vtbl_initializer): Adjust for changes to the
	CLASSTYPE_VBASECLASSES list.
	(build_vbase_offset_vtbl_entries): Use binfo_for_vbase.
	* decl.c (finish_destructor_body): Adjust for changes to the
	CLASSTYPE_VBASECLASSES list.
	* init.c (sort_base_init): Use binfo_for_vbase.
	(construct_virtual_bases): Adjust for changes to the
	CLASSTYPE_VBASECLASSES list.
	(expand_member_init): Use binfo_for_vbase.
	(build_vbase_delete):  Adjust for changes to the
	CLASSTYPE_VBASECLASSES list.
	* method.c (do_build_copy_constructor): Likewise.
	* rtti.c (get_base_offset): Use binfo_for_vbase.
	(expand_class_desc): Remove #if 0'd code.
	* search.c (struct vbase_info): Remove vbase_types.
	(get_base_distance):  Use binfo_for_vbase.
	(lookup_field_queue_p): Use CANONICAL_BINFO.
	(get_shared_vbase_if_not_primary): Use binfo_for_vbase.
	(get_pure_virtuals): Adjust for changes to the
	CLASSTYPE_VBASECLASSES list.
	(dfs_find_vbases): Use binfo_for_vbase.
	(dfs_init_vbase_pointers): Likewise.
	(init_vbase_pointers): Don't initialize vi.vbase_types.
	(virtual_context): Use binfo_for_vbase.
	(fixup_all_virtual_upcast_offsets): Adjust for changes to the
	CLASSTYPE_VBASECLASSES list.
	(expand_indirect_vtbls_init): Simplify.
	(dfs_get_vbase_types): Don't replicate virtual bases.
	(find_vbase_instance): Use binfo_for_vbase.
	(binfo_for_vbase): New function.
	* typeck.c (get_delta_difference): Use binfo_for_vbase.

2000-05-17  Mark Mitchell  <mark@codesourcery.com>

	* decl2.c (finish_anon_union): Generalize error messages to handle
	anonymous structures.
	* init.c (perform_member_init): Remove `name' parameter.
	(build_field_list): New function.
	(sort_member_init): Handle anonymous union initialization order
	correctly.  Check for multiple initializations of the same union.
	(emit_base_init): Don't look up fields by name here.
	(expand_member_init): Record the result of name lookup for future
	reference.
	* typeck.c (build_component_ref): Fix formatting.

2000-05-17  Andrew Cagney  <cagney@b1.cygnus.com>

	* decl.c (pop_label): Replace warn_unused with warn_unused_label.
	* typeck.c (build_x_compound_expr): Replace warn_unused with
	warn_unused_value.

	* decl2.c (lang_decode_option): Update -Wall unused flags by
	calling set_Wunused.

2000-05-16  Mark Mitchell  <mark@codesourcery.com>

	* cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation.
	* init.c (dfs_vtable_path_unmark): Remove.
	* search.c (marked_new_vtable_p): Likewise.
	(unmarked_new_vtable_p): Likewise.
	(dfs_search_slot_nonempty_p): Likewise.
	(dfs_mark): Likewise.
	(dfs_vtable_path_unmark): Likewise.
	(dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED.
	(dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED.
	(dfs_init_vbase_pointers): Remove special-case new ABI code.
	(dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED.
	(init_vbase_pointers): Simplify.
	(expand_indirect_vtbls_init): Likewise.

	* class.c (copy_virtuals): New function.
	(build_primary_table): Use it.
	(build_secondary_vtable): Likewise.
	(modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to
	indicate that no vcall offset is required.
	(add_virtual_function): Likewise.
	(modify_all_vtables): Likewise.
	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
	(dfs_accumulate_vtbl_inits): Likewise.
	(build_vtbl_initializer): Make changes to handle construction
	vtables.
	(dfs_build_vcall_offset_vtbl_entries): Likewise.
	(build_rtti_vtbl_entries): Likewise.
	(build_vtable_entries): Handle a NULL vcall_index.

2000-05-15  Gabriel Dos Reis  <gdr@codesourcery.com>

	* decl2.c (lang_decode_option): Fix thinko.

2000-05-14  Jason Merrill  <jason@casey.cygnus.com>

	* except.c (check_handlers): New fn.
	* cp-tree.h: Declare it.
	* semantics.c (finish_handler_sequence): Call it.
	(finish_function_handler_sequence): Likewise.
	(finish_handler_parms): Set TREE_TYPE on the handler.
	* cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro.
	* search.c (get_base_distance_recursive): If protect>1, ignore
	special access.
	(get_base_distance): Don't reduce watch_access.

2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>

	* lex.c: #include diagnostic.h.
	(lang_init_options): Set default prefixing rules.

	* lang-options.h: Add -fdiagnostics-show-location=.

	* decl2.c: #include diagnostic.h.
	(lang_decode_option): Handle -fdiagnostics-show-location=.

2000-05-12  Nathan Sidwell  <nathan@codesourcery.com>

	* tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes.
	* vec.cc: Revert my 2000-05-07 change.

2000-05-11  Jason Merrill  <jason@casey.cygnus.com>

	* class.c (check_field_decls): Complain about non-static data
	members with same name as class in class with constructor.

2000-05-10  Jason Merrill  <jason@casey.cygnus.com>

	* decl.c (grokdeclarator): Allow non-static data members with
	same name as class.

2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>

	* cp-tree.h: Constify tree_srcloc.filename, tinst_level.file,
	and pending_inline.filename.  Update prototypes.
	* decl.c (define_label): Constify filename parameter.
	* decl2.c (warn_if_unknown_interface): Constify local char *.
	* input.c Constify input_source.filename. Don't declare
	input_filename or lineno.  Constify filename parameter to feed_input.
	* lex.c (init_parse): Constify parameter and return value.
	(cp_pragma_interface, cp_pragma_implementation): Constify
	filename argument.
	(reinit_parse_for_method, reinit_parse_for_block,
	reinit_parse_for_expr, feed_defarg, handle_cp_pragma):
	Constify local char *.
	* pt.c: Don't declare lineno or input_filename.
	(print_template_context, tsubst_friend_function, tsubst_decl,
	tsubst, instantiate_decl): Constify local char *.
	* semantics.c (expand_body): Constify local char *.
	* tree.c (build_srcloc): Constify filename parameter.
	* typeck.c (c_expand_asm_operands): Constify filename
	parameter.

2000-05-08  Nathan Sidwell  <nathan@codesourcery.com>

	* tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix
	offsetof expansion.

2000-05-08  Branko Cibej  <branko.cibej@hermes.si>

	* inc/cxxabi.h:  Fix typos in comment.
	(__base_class_info::__offset): Use a static_cast.

2000-05-07  Nathan Sidwell  <nathan@codesourcery.com>

	* inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place
	of std::size_t and std::ptrdiff_t respectively.
	* tinfo.cc: Likewise.
	* vec.cc: Likewise.

2000-05-06  Richard Henderson  <rth@cygnus.com>

	* typeck.c (build_c_cast): Don't warn integer->pointer size
	mismatch for constants.

2000-05-06  Nathan Sidwell  <nathan@codesourcery.com>

	* rtti.c (ptmd_initializer): Set non-public, if class is
	incomplete.

	* inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++".
	(__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
	__cxa_vec_delete): Likewise.
	* tinfo.cc (__dynamic_cast): Likewise.
	* vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
	__cxa_vec_delete): Likewise.

2000-05-04  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove.
	(SET_FNADDR_FROM_VTABLE_ENTRY): Likewise.
	(lang_decl_flags): Add vcall_offset.
	(THUNK_VCALL_OFFSET): Use it.
	* decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk.
	* method.c (make_thunk): Create the lang_decl here, not in
	emit_thunk.
	(emit_thunk): Make generic thunks into ordinary functions once
	they have been fed to expand_body.
	* semantics.c (expand_body): Set current_function_is_thunk here.

2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* class.c (update_vtable_entry_for_fn): Prototype.

	* pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl'
	and `tmpl'.

	* search.c (dfs_build_inheritance_graph_order): Prototype.

2000-05-04  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (special_function_kind): Add various kinds of
	destructors.
	(special_function_p): New function.
	* class.c (overrides): Don't let one kind of destructor override
	another.
	* decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding
	whether or not to instantiate a template.
	* tree.c (special_function_p): Define.

2000-05-03  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.def (THUNK_DECL): Remove.
	* cp-tree.h (DECL_THUNK_P): New macro.
	(DECL_NON_THUNK_FUNCTION_P): Likewise.
	(DECL_EXTERN_C_FUNCTION_P): Likewise.
	(SET_DECL_THUNK_P): Likewise.
	(DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P.
	(FNADDR_FROM_VTABLE_ENTRY): Likewise.
	(DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P.
	* decl.c (decls_match): Use DECL_EXTERN_C_P.
	(duplicate_decls): Likewise.
	(pushdecl): Likewise.  Adjust thunk handling.
	(grokfndecl): Use DECL_EXTERN_C_P.
	* decl2.c (mark_vtable_entries): Use DECL_THUNK_P.
	* dump.c (dequeue_and_dump): Remove THUNK_DECL handling.
	* except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P.
	* expr.c (cplus_expand_expr): Remove THUNK_DECL handling.
	* method.c (make_thunk): Use SET_DECL_THUNK_P.  Set
	DECL_NO_STATIC_CHAIN.
	(emit_thunk): Don't play games with TREE_CODE on thunks.  Don't
	set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk.
	* search.c (covariant_return_p): Remove THUNK_DECL handling.
	* ir.texi: Update.

2000-05-01  Jason Merrill  <jason@casey.cygnus.com>

	* tree.c (walk_tree): Set lineno.

2000-05-01  Mark Mitchell  <mark@codesourcery.com>

	* exception.cc: Update license notice.
	* new.cc: Likewise.
	* new1.cc: Likewise.
	* new2.cc: Likewise.
	* tinfo.cc: Likewise.
	* tinfo2.cc: Likewise.
	* vec.cc: Likewise.
	* inc/cxxabi.h: Likewise.
	* inc/exception: Likewise.
	* inc/new: Likewise.
	* inc/new.h: Likewise.
	* inc/typeinfo: Likewise.

2000-05-01  Jason Merrill  <jason@casey.cygnus.com>

	* tree.c (build_target_expr_with_type): If we already have a
	TARGET_EXPR, just return it.

	* optimize.c (initialize_inlined_parameters): Don't generate an
	EXPR_STMT if we can just use DECL_INITIAL.
	* decl.c (emit_local_var): Only make the initialization a
	full-expression if stmts_are_full_exprs_p.

2000-05-01  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New
	macro.
	* call.c (standard_conversion): Use it.
	(direct_reference_binding): Likewise.
	(build_over_call): Likewise.
	(is_properly_derived_from): Likewise.
	(compare_ics): Likewise.
	* class.c (resolves_to_fixed_type_p): Likewise.
	* optimize.c (declare_return_variable): Likewise.
	* pt.c (is_specialization_of): Likewise.
	(unify): Likewise.
	* typeck.c (comp_target_parms): Likeiwse.
	(build_static_cast): Likewise.
	(build_reinterpret_cast): Likewise.
	(build_const_cast): Likewise.
	(comp_ptr_ttypes_real): Likewise.
	(comp_ptr_ttypes_const): Likewise.
	* typeck2.c (process_init_constructor): Likewise.

2000-04-30  Scott Snyder <snyder@fnal.gov>

	* decl.c (finish_destructor_body): Use the base destructor when
	destroying virtual bases.

2000-04-30  Mark Mitchell  <mark@codesourcery.com>

	* expr.c (cplus_expand_expr): Preserve temporaries when expanding
	STMT_EXPRs.
	* optimize.c (struct inline_data): Add target_exprs field.
	(declare_return_variable): When a function returns an aggregate,
	use the variable declared in the TARGET_EXPR as the remapped
	DECL_RESULT.
	(expand_call_inline): Update the pending target_exprs stack.
	(optimize_function): Initialize the stack.

	* decl2.c (finish_file): Fix typo in comment.

	* method.c (emit_thunk): Don't try to return a `void' value.

	* optimize.c (initialize_inlined_parameters): If the parameter is
	addressable, we need to make a new VAR_DECL, even if the
	initializer is constant.

2000-04-28  Cosmin Truta  <cosmint@cs.ubbcluj.ro>

	* decl.c (grok_op_properties): Add an extra check of argtypes.

2000-04-27  Mark Mitchell  <mark@codesourcery.com>

	* optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying
	variables.
	(initialize_inlined_parameters): Try to avoid creating new
	VAR_DECLs.

2000-04-27  Alex Samuel  <samuel@codesourcery.com>

	* lex.c (my_get_run_time): Remove.
	(init_filename_times): Use get_run_time instead of my_get_run_time.
	(check_newline): Likewise.
	(dump_time_statistics): Likewise.
	* decl2.c (finish_file): Push and pop timevar TV_VARCONST instead
	of computing elapsed time explicitly.

2000-04-26  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P.
	* init.c (decl_constant_value): Check TREE_READONLY_DECL_P.
	* call.c (convert_like_real): Don't test TREE_READONLY_DECL_P
	before calling decl_constant_value.
	* class.c (check_bitfield_decl): Likewise.
	* cvt.c (ocp_convert): Likewise.
	(convert): Likewise.
	* decl.c (compute_array_index_type): Likewise.
	(build_enumerator): Likewise.
	* decl2.c (check_cp_case_value): Likewise.
	* pt.c (convert_nontype_argument): Likewise.
	(tsubst): Likewise.
	* typeck.c (decay_conversion): Likewise.
	(build_compound_expr): Likewise.
	(build_reinterpret_cast): Likewise.
	(build_c_cast): Likewise.
	(convert_for_assignment): Likewise.

2000-04-26  Jason Merrill  <jason@casey.cygnus.com>

	* decl.c (finish_function): Don't play games with DECL_INLINE.

2000-04-25  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* ir.texi: Correct typo.

2000-04-25  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* decl.c (grokdeclarator): Reject VLAs as members.

2000-04-24  Gabriel Dos Reis  <gdr@codesourcery.com>

	* call.c (standard_conversion): Accept conversion between
	COMPLEX_TYPEs.

	* cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE.

2000-04-24  Zack Weinberg  <zack@wolery.cumb.org>

	* decl2.c (finish_file): Remove double setup for accounting
	compile time.

2000-04-24  Robert Lipe <robertlipe@usa.net>

	* cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD.

2000-04-23  Benjamin Kosnik  <bkoz@cygnus.com>

	* new.cc (set_new_handler): Needs to be in std::.

2000-04-23  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (lang_decl): Remove pretty_function_p.
	(DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the
	language-specific node.
	* decl.c (cp_make_fname_decl): Use build_decl, not
	build_lang_decl, to build the variables.
	(grokvardecl): Don't call build_lang_decl for local variables in
	templates.
	(grokdeclarator): Don't call build_lang_decl for local type
	declarations in templates.
	* lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated
	zero'd memory, rather than calling memset.
	* pt.c: Include hashtab.h.
	(local_specializations): New variable.
	(retrieve_local_specialization): Use it.
	(register_local_specialization): Likewise.
	(tsubst_decl): Don't assume local variables have
	DECL_LANG_SPECIFIC.
	(instantiate_decl): Set up local_specializations.
	* Makefile.in (HTAB_H): New variable.

2000-04-23  Richard Henderson  <rth@cygnus.com>

	* typeck.c (c_expand_asm_operands): Restore the original
	contents of the output list.

2000-04-22  Gabriel Dos Reis <gdr@codesourcery.com>

	* ir.texi:  Document complex number representation.

2000-04-20  Nathan Sidwell  <nathan@codesourcery.com>

	* rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi.
	(target_incomplete_p): New function.
	(tinfo_base_init): Create comdat NTBS name variable.
	(ptr_initializer): Add non_public parameter. Calculate it.
	(ptmd_initializer): Likewise.
	(synthesize_tinfo_var): Adjust. Emit incomplete class tinfo.
	(create_real_tinfo_var): Add non_public parameter. Use it.
	Push proxy into global namespace.
	* inc/cxxabi.h (__pointer_type_info::incomplete_class_mask):
	New enumeration.
	* inc/typeinfo (type_info::before, type_info::operator==):
	Compare __name addresses.

	* tinfo2.cc: Remove new-abi builtins comment.

2000-04-20  Jason Merrill  <jason@casey.cygnus.com>

	* typeck.c (build_x_function_call): Resolve an OFFSET_REF.

	* call.c (joust): Exit early if we get the same function, too.

	* decl2.c (key_method): Return NULL_TREE for template classes.
	(import_export_class): Don't need to check for template classes.

2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>

	* lex.c: Remove references to cccp.c.

2000-04-18  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (lang_decl_flags): Remove const_memfunc and
	volatile_memfunc.  Add destructor_attr.  Adjust dummy.
	(DECL_DESTRUCTOR_P): Use destructor_attr.
	(DECL_CONST_MEMFUNC_P): Reimplement.
	(DECL_VOLATILE_MEMFUNC_P): Remove.
	* class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS.
	(overrides): Use DECL_DESTRUCTOR_P.
	(check_for_override): Likewise.
	* decl.c (start_function): Likewise.
	* decl2.c (grokfclassfn): Likewise.
	(check_classfn): Likewise.
	(grok_function_init): Likewise.

2000-04-17  Mark Mitchell  <mark@codesourcery.com>

	* decl2.c (grokfield): Issue error on illegal data member
	declaration.

2000-04-17  Mark P Mitchell  <mark@codesourcery.com>

	* method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL.

2000-04-16  Mark Mitchell  <mark@codesourcery.com>

	* class.c (build_vtable_entry): Don't build thunks for type-info
	functions.

2000-04-16  Jason Merrill  <jason@casey.cygnus.com>

	* decl.c (decls_match): Allow a redeclaration of a builtin to
	specify args while the builtin did not.

2000-04-15  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.def (THUNK_DECL): Add to documentation.
	* cp-tree.h (flag_huge_objects): Declare.
	* class.c (modify_vtable_entry): Tidy.
	(update_vtable_entry_for_fn): Split out from dfs_modify_vtables.
	Calculate delta appropriately for the new ABI.
	(dfs_modify_vtables): Use it.
	(modify_all_vtables): Fix thinko in code to add overriding copies
	of functions to primary vtables.
	(build_clone): Fix typo in comment.
	(clone_function_decl): Correct order of destructors in vtable.
	(build_vbase_offset_vtbl_entries): Adjust comment.
	(dfs_vcall_offset_queue_p): Remove.
	(dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX.
	(build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases.
	(build_vtable_entry): Correct check for pure virtual functions.
	Don't declare flag_huge_objects.
	* decl.c (flag_huge_objects): Remove declaration.
	* method.c (make_thunk): Tweak mangling for vcall offset thunks.
	Use int_size_in_bytes.
	(emit_thunk): Handle vcall offset thunks.

2000-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* decl2.c (parse_time, varconst_time): Delete declarations.
	(finish_file): Delete LINENO declaration.
	START_TIME and THIS_TIME now long.

2000-04-13  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (build_base_field): Reformat comment.

	* inc/cxxabi.h (stddef.h): Comment inclusion.
	(__base_class_info::__offset): Comment shift.

2000-04-12  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro.
	(cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER.
	(cp_push_exception_identifier): New macro.
	(DECL_COMPLETE_DESTRUCTOR_P): New macro.
	(DECL_BASE_DESTRUCTOR_P): Likewise.
	(DECL_DELETING_DESTRUCTOR_P): Likewise.
	(get_vtbl_decl_for_binfo): Fix formatting.
	(in_charge_arg_for_name): New macro.
	(maybe_build_cleanup_and_delete): Remove declaration.
	* call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P.
	(in_charge_arg_for_name): New function.
	(build_new_method_call): Use it.  Handle cloned destructors.
	(build_clone): Don't make the base constructor virtual.
	Automatically defer generated functions.
	(clone_function_decl): Handle destructors, too.
	(clone_constructors_and_destructors): Likewise.
	(create_vtable_ptr): Don't create a vtable entry for a cloned
	function.
	* decl.c (predefined_identifier): Add ctor_or_dtor_p.
	(initialize_predefined_identifiers): Update appropriately.
	(finish_destructor_body): Simplify.
	(maybe_build_cleanup_and_delete): Remove.
	* except.c (expand_throw): Handle new-ABI destructors.
	* init.c (expand_cleanup_for_base): Use base_dtor_identifier.
	(build_dtor_call): New function.
	(build_delete): Use it.  Simplify.
	* optimize.c (maybe_clone_body): Handle destructors.
	* search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P.

	* exception.cc (cleanup_fn): New typedef.
	(CALL_CLEANUP): New macro.
	(cp_eh_info): Use them.
	(__cp_push_exception): Likewise.
	(__cp_pop_exception): Likewise.

2000-04-11  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER.
	(complete_dtor_identifier): New macro.
	(CLASSTYPE_FIRST_CONVERSION): Remove.
	(CLASSTYPE_CONSTRUCTOR_SLOT): New macro.
	(CLASSTYPE_DESTRUCTOR_SLOT): Likewise.
	(CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise.
	(CLASSTYPE_CONSTRUCTORS): Likewise.
	(CLASSTYPE_DESTRUCTORS): Likewise.
	(lang_decl): Add cloned_function.
	(DECL_COMPLETE_CONSTRUCTOR_P): New macro.
	(DECL_BASE_CONSTRUCTOR_P): Likewise.
	(DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise.
	(DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise.
	(DECL_CLONED_FUNCTION_P): Likewise.
	(DECL_CLONED_FUNCTION): Likewise.
	(clone_function_decl): Declare.
	(maybe_clone_body): Likewise.
	* call.c (build_user_type_conversion_1): Call complete object
	constructors in the new ABI.
	(build_new_method_call): Don't add in-charge parameters under the
	new ABI.
	* class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P,
	DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and
	CLASSTYPE_DESTRUCTOR_SLOT.
	(build_clone): New function.
	(clone_function_decl): Likewise.
	(clone_constructors_and_destructors): Likewise.
	(check_bases_and_members): Use it.
	* decl.c (iniitialize_predefined_identifiers): Initialize
	complete_dtor_identifier.
	(finish_function): Don't add extra code to a clone.
	(lang_mark_tree): Mark cloned_function.
	* decl2.c (mark_used): Don't bother trying to instantiate things
	we synthesized.
	* dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice.
	* method.c (set_mangled_name_for_decl): Don't treat clones as
	constructors.
	(synthesize_method): Sythesize cloned functions, not the clones.
	* optimize.c (inline_data): Update comment on ret_label.
	(remap_block): Don't assume DECL_INITIAL exists.
	(copy_body_r): Allow ret_label to be NULL.
	(maybe_clone_body): Define.
	* pt.c (tsubst_decl): Handle clones.
	(instantiate_clone): New function.
	(instantiate_template): Use it.
	(set_mangled_name_for_template_decl): Don't treat clones as
	constructors.
	* search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT,
	CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT.
	* semantics.c (expand_body): Clone function bodies as necessary.

	* optimize.c (remap_decl): Avoid sharing structure for arrays
	whose size is only known at run-time.
	* tree.c (copy_tree_r): Don't copy PARM_DECLs.

	* cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr
	to has_in_charge_parm_p.
	(DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ...
	(DECL_HAS_IN_CHARGE_PARM_P): ... this.
	(DECL_COPY_CONSTRUCTOR_P): New macro.
	* call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P.
	(build_user_type_conversion_1): Likewise.
	(convert_like_real): Likewise.
	(build_over_call): Likeiwse.  Use DECL_COPY_CONSTRUCTOR_P.
	* decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P.
	(copy_args_p): Likewise.
	(grok_ctor_properties): Likewise.
	(start_function): Likewise.
	* decl2.c (maybe_retrofit_in_charge): Likewise.  Set it.
	* error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P.
	* init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P.
	* method.c (do_build_copy_constructor): Use
	DECL_HAS_IN_CHARGE_PARM_P.
	(synthesize_method): Likewise.
	* pt.c (instantiate_template): Remove goto.
	* tree.c (build_cplus_method_type): Remove mention of obstacks in
	comment.

	* cp-tre.h (finish_function): Change prototype.
	* decl.c (end_cleanup_fn): Adjust caller.
	(finish_function): Take only one parameter.
	* decl2.c (finish_objects): Adjust caller.
	(finish_static_storage_duration_function): Likewise.
	* method.c (emit_thunk): Likewise.
	* parse.y: Likewise.
	* parse.c: Regenerated.
	* pt.c (instantiate_decl): Likewise.
	* rtti.c (synthesize_tinfo_fn): Likewise.
	* semantics.c (expand_body): Likewise.

	* cp-tree.h (copy_decl): New function.
	* class.c (finish_struct_1): Use it.
	* lex.c (copy_decl): Define it.
	* pt.c (tsubst_decl): Likewise.
	* tree.c (copy_template_template_parm): Likewise.

	* cp-tree.h (lang_type): Remove has_nonpublic_ctor and
	has_nonpublic_assign_ref.
	(TYPE_HAS_NONPUBLIC_CTOR): Don't declare.
	(TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise.
	* class.c (finish_struct_methods): Don't set
	TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF.
	(interface_only): Don't declare.
	(interface_unknown): Likewise.

2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* tree.h (HAVE_TEMPLATES): Remove definition.
	* lang-options.h (-fthis-is-variable): Remove documentation.

2000-04-10  Jason Merrill  <jason@casey.cygnus.com>

	* class.c (instantiate_type): Handle object-relative template-id.

	* semantics.c (finish_expr_stmt): Call convert_to_void here.
	* decl.c (cplus_expand_expr_stmt): Not here.

	* rtti.c (build_dynamic_cast_1): Call non_lvalue.
	Initialize exprtype earlier.

	* parse.y (fn.def1): Check for defining types in return types.

	* decl.c (check_tag_decl): Notice extra fundamental types.
	Diagnose empty decls in classes, too.

	* decl.c (grokdeclarator): Don't override an anonymous name if no
	declarator was given.

	* cvt.c (convert_to_void): Call resolve_offset_ref.

	* typeck.c (build_x_function_call): Abort if we get an OFFSET_REF.

	* decl2.c (decl_namespace): Handle getting a type.

	* typeck.c (build_c_cast): Re-enable warning for cast between
	pointer and integer of different size.

2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>

	* inc/cxxabi.h (__pointer_type_info): Add restrict and
	incomplete flags.
	(__pointer_type_info::__pointer_catch): New virtual function.
	(__pointer_to_member_type_info): Derive from
	__pointer_type_info. Adjust.
	(__pointer_to_member_type_info::__do_catch): Remove.
	(__pointer_to_member_type_info::__is_pointer_p): Declare.
	(__pointer_to_member_type_info::__pointer_catch): Declare.
	* rtti.c (qualifier_flags): Add restrict flag.
	(ptmd_initializer): Reorder members.
	(create_tinfo_types): Expand comments. Reorder
	ptmd_desc_type_node members.
	* tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p):
	Implement.
	(__pointer_type_info::__do_catch): Move specific code into
	__pointer_catch. Call it.
	(__pointer_type_info::__pointer_catch): Non-pointer-to-member
	specific catch checking. Fix void conversion check.
	(__pointer_to_member_type_info::__do_catch): Remove.
	(__pointer_to_member_type_info::__pointer_catch): Implement.

2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* lex.c (init_parse): Remove traces of classof and headof.
	* decl2.c (flag_operator_names): Default to 1.
	(lang_decode_option): Do not set it for -ansi.

2000-04-09  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (struct lang_decl): Remove main_decl_variant.
	(DECL_MAIN_VARIANT): Remove.
	* decl.c (duplicate_decls): Don't set it.
	(start_function): Likewise.
	(lang_mark_tree): Don't mark it.
	* decl2.c (defer_fn): Don't use it.
	* lex.c (retrofit_lang_decl): Don't set it.
	* pt.c (tsubst_decl): Likewise.
	* ptree.c (print_lang_decl): Don't print it.
	* typeck.c (mark_addressable): Don't use it.

2000-04-09  Nathan Sidwell  <nathan@codesourcery.com>

	* vec.cc: Include <new> and <exception>.
	(__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup.
	(__cxa_vec_dtor): Catch dtor exceptions, and rethrow or
	terminate.
	(__cxa_vec_delete): Catch dtor exceptions.

2000-04-09  Nathan Sidwell  <nathan@codesourcery.com>

	Prepend __ to implementation defined names.
	* inc/typeinfo (type_info): Rename _name to __name.
	(type_info::type_info): Rename parameter.
	(type_info::operator==, type_info::operator!=,
	type_info::before): Likewise.
	(type_info::is_pointer_p, type_info::is_function_p,
	type_info::do_catch, type_info::do_upcast): Prepend __. Rename
	parameters.
	* inc/cxxabi.h
	(__fundamental_type_info::__fundamental_type_info) Rename parameters.
	(__pointer_type_info::__pointer_type_info): Likewise.
	(__pointer_type_info::is_pointer_p,
	__pointer_type_info::do_catch): Prepend __. Rename parameters.
	(__array_type_info::__array_type_info): Rename parameters.
	(__function_type_info::__function_type_info): Likewise.
	(__function_type_info::is_function_p): Prepend __.
	(__enum_type_info::__enum_type_info): Rename parameters.
	(__pointer_to_member_type_info::__pointer_to_member_type_info):
	Likewise.
	(__pointer_to_member_type_info::do_catch): Prepend __. Rename
	parameters.
	(__base_class_info::is_virtual_p, is_public_p, offset): Prepend	__.
	(__class_type_info::__class_type_info): Rename parameters.
	(__class_type_info::sub_kind): Prepend __. Adjust member names.
	(__class_type_info::upcast_result,
	__class_type_info::dyncast_result): Prepend __. Move definition
	into tinfo.cc.
	(__class_type_info::do_upcast, __class_type_info::do_catch,
	__class_type_info::find_public_src,
	__class_type_info::do_dyncast,
	__class_type_info::do_find_public_src): Prepend __. Rename
	parameters.
	(__si_class_type_info::__si_class_type_info): Rename parameters.
	(__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast,
	__si_class_type_info::do_find_public_src): Prepent __. Rename
	parameters.
	(__vmi_class_type_info::__vmi_class_type_info): Rename parameters.
	(__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast,
	__vmi_class_type_info::do_find_public_src): Prepent __. Rename
	parameters.
	(__dynamic_cast): Rename parameters.
	* tinfo.cc (type_info::is_pointer_p, type_info::is_function_p,
	type_info::do_catch, type_info::do_upcast): Prepend __.
	(contained_p, public_p, virtual_p, contained_public_p,
	contained_nonpublic_p, contained_nonvirtual_p): Adjust.
	(__class_type_info::do_catch,
	__class_type_info::do_upcast): Prepend __. Adjust.
	(__class_type_info::__upcast_result,
	__class_type_info::__dyncast_result): Move from inc/cxxabi.h.
	Adjust.
	(__class_type_info::find_public_src): Prepend __. Adjust.
	(__class_type_info::do_find_public_src,
	__si_class_type_info::do_find_public_src,
	__vmi_class_type_info::do_find_public_src): Likewise.
	(__class_type_info::do_dyncast,
	__si_class_type_info::do_dyncast,
	__vmi_class_type_info::do_dyncast): Likewise.
	(__class_type_info::do_upcast,
	__si_class_type_info::do_upcast,
	__vmi_class_type_info::do_upcast): Likewise.
	(__dynamic_cast): Adjust.
	* tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __.
	(__function_type_info::is_function_p): Likewise.
	(__pointer_type_info::do_catch): Likewise. Adjust.
	(__pointer_to_member_type_info::do_catch): Likewise. Adjust.
	(__throw_type_match_rtti_2): Adjust.
	(__is_pointer): Adjust.

2000-04-08  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER.
	(complete_ctor_identifier): New macro.
	(special_function_kind): Add sfk_copy_constructor and
	sfk_assignment_operator.
	(LOOKUP_HAS_IN_CHARGE): Remove.
	(cons_up_default_function): Rename to ...
	(implicitly_declare_fn): ... this.
	* call.c (build_new_method_call): Add in-charge parameters for
	constructors here.
	* class.c (add_implicitly_declared_members): Change parameter name
	from cant_have_assignment to cant_have_const_assignment.
	Replace calls to cons_up_default_function to implicitly_declare_fn.
	* cvt.c (ocp_convert): Use complete_ctor_identifier.
	* decl.c (initialize_predefined_identifiers): Initialize it.
	(start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of
	complex expression.
	* init.c (expand_default_init): Don't calculate the in-charge
	parameter here.
	(build_new_1): Likewise.
	* lex.c (cons_up_default_function): Move to method.c.
	* method.c (synthesize_method): Use DECL_DESTRUCTOR_P.
	(implicitly_declare_fn): New function.
	* typeck.c (build_static_cast): Use complete_ctor_identifier.
	(build_modify_expr): Likewise.
	* typeck2.c (build_functional_cast): Likewise.

	Under the new ABI, constructors don't return `this'.
	* cp-tree.h (warn_reorder): Declare.
	(special_function_kind): New enum.
	(global_base_init_list): Remove declaration.
	(emit_base_init): Don't return a value.
	(check_base_init): Don't declare.
	(is_aggr_typedef): Likewise.
	* decl.c (check_special_function_return_type): New function.
	(return_types): Remove.
	(grokdeclarator): Use check_special_function_return_type.
	(start_function): Don't initialize ctor_label under the new ABI.
	(finish_construtor_body): Don't create a corresponding LABEL_STMT.
	* init.c (begin_init_stmts): Move to top of file.
	(finish_init_stmts): Likewise.
	(warn_reorder): Don't declare.
	(emit_base_init): Don't create a STMT_EXPR here.  Don't return a
	value.
	(check_base_init): Remove.
	(is_aggr_typedef): Likewise.
	(build_new_1): Don't use the return value of a constructor.
	* semantics.c (setup_vtbl_ptr): Don't use the return value
	of emit_base_init.
	* typeck.c (check_return_expr): Don't magically convert return
	statements into `return this' in constructors under the new ABI.

	* cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER,
	CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER.
	(base_ctor_identifier): New macro.
	(base_dtor_identifier): Likewise.
	(deleting_dtor_identifier): Likewise.
	* decl.c: Don't include obstack.h.
	(obstack_chunk_alloc): Don't define.
	(obstack_chunk_free): Likewise.
	(struct predefined_identifier): New type.
	(initialize_predefined_identifiers): New function.
	(init_decl_processing): Use it.
	(debug_temp_inits): Remove.
	(start_method): Don't call preserve_data.
	(hack_incomplete_structures): Update comment.
	* init.c (init_init_processing): Don't initialize
	nelts_identifier.
	(build_offset_rf): Remove dead code.
	(build_delete): Use CLASSTYPE_N_BASECLASSES.
	* search.c (init_search_processing): Don't initialize
	vptr_identifier.

2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide
	some sign_compare warnings.

2000-04-07  Nathan Sidwell  <nathan@codesourcery.com>

	Rename abi::__vmi_class_type_info members.
	* inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases,
	base_list, detail_masks members to vmi_flags, vmi_base_count,
	vmi_bases and vmi_flags_masks respectively.
	(__vmi_class_type_info::vmi_flags_masks): Rename
	details_unknown_mask to flags_unknown_mask.
	* tinfo.cc (__class_type_info::do_upcast): Adjust.
	(__vmi_class_type_info::do_find_public_src): Adjust.
	(__vmi_class_type_info::do_dyncast): Adjust.
	(__vmi_class_type_info::do_upcast): Adjust.

2000-04-07  Nathan Sidwell  <nathan@codesourcery.com>

	* tinfo.cc (convert_to_base): New function.
	(get_vbase_offset): Remove. Move into convert_to_base.
	(__vmi_class_type_info::do_find_public_src): Adjust.
	(__vmi_class_type_info::do_dyncast): Adjust.
	(__vmi_class_type_info::do_upcast): Adjust.

2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>

	* tinfo.cc (operator=): Use __builtin_strcmp.
	* tinfo2.cc (before): Likewise.

2000-04-06  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (lang_decl_flags): Rename saved_inline to deferred.
	(DECL_SAVED_INLINE): Rename to ...
	(DECL_DEFERRED_FN): ... this.
	(in_function_p): Remove declaration.
	(mark_inline_for_output): Rename to ...
	(defer_fn): ... this.
	* decl.c (finish_function): Adjust call to mark_inline_for_output.
	(in_function_p): Remove definition.
	* decl2.c (saved_inlines): Rename to ...
	(deferred_fns): ... this.
	(saved_inlines_used): Rename to ...
	(deferred_fns_used): ... this.
	(mark_inline_for_output): Rename to ...
	(defer_fn): ... this.
	(finish_file): Adjust accordingly.
	(init_decl2): Likewise.
	* lex.c (cons_up_default_function): Likewise.
	* pt.c (mark_decl_instantiated): Likewise.
	(instantiate_decl): Don't set DECL_DEFER_OUTPUT under any
	circumstances.
	* rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output.
	* semantics.c (expand_body): Defer more functions.

2000-04-06  Nathan Sidwell  <nathan@codesourcery.com>

	* vec.cc: New file.
	* Make-lang.in (CXX_LIB2FUNCS): Add it.
	(vec.o): Build it.
	* inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
	__cxa_vec_delete): Declare.

2000-04-06  Nathan Sidwell  <nathan@codesourcery.com>

	* rtti.c (dfs_class_hint_mark): New static function.
	(dfs_class_hint_unmark): New static function.
	(class_hint_flags): Use them.

2000-04-05  Benjamin Kosnik  <bkoz@cygnus.com>

	* decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE.

2000-04-05  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (instantiate_decl): Change prototype.
	* decl2.c (mark_used): Adjust call.
	* optimize.c (inlinable_function_p): Adjust handling of templates.
	* pt.c (do_decl_instantiation): Adjust call to instantiate_decl.
	(do_type_instantiation): Likewise.
	(instantiate_decl): Defer more templates.
	(instantiate_pending_templates): Adjust logic to handle inline
	friend functions.

	* Makefile.in (GGC_H): New variable.  Use it throughout in place
	of ggc.h.

	* call.c: Don't include obstack.h.  Include ggc.h.
	(obstack_chunk_alloc): Don't define.
	(obstack_chunk_free): Likewise.
	(add_candidate): Allocate the z_candidate with ggc_alloc_obj.
	* decl.c (push_switch): Use xmalloc to allocate the cp_switch.
	(pop_switch): Free it.

	* decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs.

	* dump.c (dequeue_and_dump): Don't try to print the bit_position
	if we don't have a DECL_FIELD_OFFSET.

Wed Apr  5 15:12:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>

	* optimize.c (calls_setjmp_r): Use setjmp_call_p instead of
	special_function_p.

2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cfns.gperf (hash, libc_name_p): Prototype.

	* rtti.c (build_dynamic_cast_1): Constification.

	* search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes.

	* semantics.c (deferred_type_access_control): Prototype.

2000-04-04  Mark Mitchell  <mark@codesourcery.com>

	Correct many new ABI issues regarding vbase and vcall offset
	layout.
	* cp-tree.h (BINFO_VTABLE): Document.
	(struct lang_type): Tweak formatting.
	(BINFO_PRIMARY_BINFO): Add to documentation.
	(CLASSTYPE_VSIZE): Fix typo in comment.
	(CLASSTYPE_VBASECLASSES): Update documentation.
	(BINFO_VBASE_MARKED): Remove.
	(SET_BINFO_VBASE_MARKED): Likewise.
	(CLEAR_BINFO_VBASE_MARKED): Likewise.
	(BINFO_FIELDS_MARKED): Remove.
	(SET_BINFO_FIELDS_MARKED): Likewise.
	(CLEAR_BINFO_FIELDS_MARKED): Likewise.
	(enum access_kind): New enumeration.
	(num_extra_vtbl_entries): Remove declaration.
	(size_extra_vtbl_entries): Likewise.
	(get_vtbl_decl_for_binfo): New function.
	(dfs_vbase_unmark): Remove declaration.
	(mark_primary_bases): Likewise.
	* class.c (SAME_FN): Remove.
	(struct vcall_offset_data_s): Move definition.
	(build_vbase_pointer): Use `build', not `build_binary_op', to
	access the vbase pointer under the new ABI.
	(build_vtable_entry_ref): Use get_vtbl_decl_for_binfo.
	(build_primary_vtable): Likewise.
	(dfs_mark_primary_bases): Move here from search.c.
	(mark_primary_bases): Likewise.
	(determine_primary_bases): Under the new ABI, don't make a base
	class a primary base just because we don't yet have any virtual
	functions.
	(layout_vtable_decl): Use get_vtbl_decl_for_binfo.
	(num_vfun_entries): Remove.
	(dfs_count_virtuals): Likewise.
	(num_extra_vtbl_entries): Likewise.
	(size_extra_vtbl_entries): Likewise.
	(layout_virtual_bases): Iterate in inheritance graph order under
	the new ABI.
	(finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to
	indicate that a vfield is present.
	(init_class_processing): Initialize access_public_node, etc., from
	ak_public, etc.
	(get_vtbl_decl_for_binfo): New function.
	(dump_class_hierarchy_r): Likewise.
	(dump_class_hierarchy): Use it.
	(finish_vtbls): Build the vtbls in inheritance graph order.
	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
	(initialize_vtable): Use get_vtbl_decl_for_binfo.
	(accumulate_vtbl_inits): Add comments explaining why a pre-order
	walk is required.
	(dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location
	where the vptr points, even for primary vtables.
	(build_vtbl_initializer): Adjust handling of vbase and vcall
	offsets.
	(build_vcall_and_vbase_vtable_entries): New function.
	(dfs_build_vbase_offset_vtbl_entries): Remove.
	(build_vbase_offset_vtbl_entries): Reimplement.
	(dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that
	were already handled in a primary base class vtable.
	(build_vcall_offset_vtbl_entries): Adjust.
	(build_rtti_vtbl_entries): Adjust.
	* decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo.
	* init.c (expand_virtual_init): Simplify.
	* repo.c (repo_get_id): Use get_vtbl_decl_for_binfo.
	* rtti.c (create_pseudo_type_info): Adjust calculation of vptr.
	* search.c (BINFO_ACCESS): New macro.
	(SET_BINFO_ACCESS): Likewise.
	(dfs_access_in_type): Manipulate access_kinds, not access nodes.
	(access_in_type): Likewise.
	(dfs_accessible_p): Likewise.
	(protected_accessible_p): Likewise.
	(lookup_fnfields_1): Adjust documentation.
	(dfs_mark_primary_bases): Move to class.c
	(mark_primary_bases): Likewise.
	(dfs_vbase_unmark): Remove.
	(virtual_context): Use BINFO_FOR_VBASE.
	(dfs_get_vbase_types): Simplify.
	(dfs_build_inheritance_graph_order): New function.
	(get_vbase_types): Use it.
	* tree.c (debug_binfo): Use get_vtbl_decl_for_binfo.

	* tinfo.cc (get_vbase_offset): New function.
	(__vmi_class_type_info::do_find_public_src): Use it.
	(__vmi_class_type_info::do_dyncast): Likewise.
	(__vmi_class_type_info::do_upcast): Likewise.

2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>

	* lang-specs.h: Pass -fno-show-column to the preprocessor.

2000-03-30  Nathan Sidwell  <nathan@codesourcery.com>

	* rtti.c (class_hint_flags): Rename flags.
	(class_initializer): Remove flags.
	(synthesize_tinfo_var): Combine offset and flags. Add flags
	for __vmi_class_type_info.
	(create_tinfo_types): Remove flags from __class_type_info and
	__si_class_type_info. Merge flags and offset from
	base_class_type_info.
	* inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags.
	(__base_class_info::is_virtual_p): Adjust.
	(__base_class_info::is_public_p): Adjust.
	(__base_class_info::offset): New accessor.
	(__class_type_info::details): Remove member.
	(__class_type_info::__class_type_info): Lose details.
	(__class_type_info::detail_masks): Remove.
	(__si_class_type_info::__si_class_type_info): Lose details.
	(__vmi_class_type_info::details): New member.
	(__vmi_class_type_info::__vmi_class_type_info): Adjust.
	(__vmi_class_type_info::detail_masks): New member.
	* tinfo.cc (__class_type_info::do_upcast): Initialize result
	with unknown_details_mask.
	(__vmi_class_type_info::do_find_public_src): Adjust
	(__vmi_class_type_info::do_dyncast): Adjust.
	(__vmi_class_type_info::do_upcast): Set result details, if
	needed. Adjust.
	(__dynamic_cast): Temporarily #if out optimization.

2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>

	* rtti.c (get_tinfo_decl): Mark used.
	(emit_tinfo_decl): Don't optimize polymorphic type_info. Only
	mark as dealt with, if we output it.

2000-03-28  Mark Mitchell  <mark@codesourcery.com>

	* class.c: Reorganize to put virtual function table initialization
	machinery at the end of the file.

2000-03-28  Jason Merrill  <jason@casey.cygnus.com>

	* class.c (finish_struct): Use bitsize_zero_node.
	* pt.c (instantiate_class_template): Likewise.

2000-03-28  Mark Mitchell  <mark@codesourcery.com>

	Put RTTI entries at negative offsets in new ABI.
	* class.c (dfs_build_vbase_offset_vtbl_entries): Put the first
	vbase offset at index -3, not -1.
	(build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not
	dfs_vtable_path_unmarked_real_bases_queue_p to walk bases.
	(dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff.
	(build_rtti_vtbl_entries): New function.
	(set_rtti_entry): Remove.
	(build_primary_vtable): Don't use it.
	(build_secondary_vtable): Likewise.
	(start_vtable): Remove.
	(first_vfun_index): New function.
	(set_vindex): Likewise.
	(add_virtual_function): Don't call start_vtable.  Do call
	set_vindex.
	(set_primary_base): Rename parameter.
	(determine_primary_base): Likewise.
	(num_vfun_entries): Don't use skip_rtti_stuff.
	(num_extra_vtbl_entries): Include RTTI information.
	(build_vtbl_initializer): Use build_rtti_vtbl_entries.
	(skip_rtti_stuff): Remove.
	(dfs_modify_vtables): Don't use it.
	(modify_all_vtables): Don't use start_vtable.  Do use set_vindex.
	(layout_nonempty_base_or_field): Update size handling.
	(create_vtable_ptr): Tweak.
	(layout_class_type): Adjust parameter names.
	(finish_struct_1): Simplify.
	* cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation.
	(skip_rtti_stuff): Remove.
	(first_vfun_index): New function.
	(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
	(dfs_vtable_path_marked_real_bases_queue_p): Remove.
	(marked_vtable_pathp): Declare.
	(unmarked_vtable_pathp): Likewise.
	* error.c (dump_expr): Use first_vfun_index to calculate vtable
	offsets.
	* rtti.c (build_headof): Look for RTTI at negative offsets.
	(get_tinfo_decl_dynamic): Likewise.
	(tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL
	here.
	(create_pseudo_type_info): Do it here instead.  Adjust so that
	vptr points at first virtual function.
	* search.c (marked_vtable_pathp): Make it global.
	(unmarked_vtable_pathp): Likewise.
	(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
	(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
	(dfs_get_pure_virtuals): Don't use skip_rtti_stuff.
	(get_pure_virtuals): Likewise.
	(expand_upcast_fixups): Likewise.
	* tree.c (debug_binfo): Likewise.
	* tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate
	negative offset.

2000-03-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* class.c (check_field_decl): Fix typo.
	(build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS.
	(check_methods): Likewise.
	(check_field_decls): Likewise.
	Use DECL_CONTEXT, not DECL_FIELD_CONTEXT.
	* cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT):
	Use DECL_RESULT_FLD, not DECL_RESULT.
	* decl.c (xref_tag): Use DECL_TEMPLATE_RESULT.
	* lex.c (identifier_type): Likewise.
	* pt.c (determine_specialization, lookup_template_class): Likewise.
	(tsubst_friend_function, tsubst_decl, instantiate_template): Likewise.
	(resolve_overloaded_unification, more_specialized): Likewise.
	* semantics.c (finish_member_declaration): Likewise.
	* typeck.c (build_x_function_call): Likewise.

2000-03-26  Mark Mitchell  <mark@codesourcery.com>

	* class.c (layout_empty_base): Handle empty bases with non-byte
	alignment.
	(build_base_field): Likewise.
	(layout_virtual_bases): Likewise.

	* class.c (finish_struct_1): Fix typo in this change:

	Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

2000-03-25  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (grokdeclarator): Count partial specializations when
	keeping track of how many template classes have been seen.

	* dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT.

2000-03-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* class.c (build_vbase_pointer_fields): layout_field now place_field.
	(get_vfield_offset): Use byte_position.
	(set_rtti_entry): Set OFFSET to ssizetype zero.
	(get_binfo_offset_as_int): Deleted.
	(dfs_record_base_offsets): Use tree_low_cst.
	(dfs_search_base_offsets): Likewise.
	(layout_nonempty_base_or_field): Reflect changes in RLI format
	and call byte_position.
	(layout_empty_base): Convert offset to ssizetype.
	(build_base_field): use rli_size_unit_so_far.
	(dfs_propagate_binfo_offsets): Do computation in proper type.
	(layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets.
	(layout_class_type): Reflect changes in RLI names and fields.
	(finish_struct_1): Set DECL_FIELD_OFFSET.
	* dump.c (dequeue_and_dump): Call bit_position.
	* expr.c (cplus_expand_constant): Use byte_position.
	* rtti.c (expand_class_desc): Use bitsize_one_node.
	* typeck.c (build_component_addr): Use byte_position and don't
	special case for zero offset.

2000-03-24  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P.

	* rtti.c (get_tinfo_decl): Set comdat linkage on new-abi
	tinfo object.
	(emit_tinfo_decl): Only emit polymorphic tinfo's when emitting
	vtable.

2000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

	* call.c (check_dtor_name, build_new_method_call): Use TYPE_P and
	DECL_P macros.
	* decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name,
	make_typename_type, check_initializer, cp_finish_decl,
	xref_tag): Likewise.
	* decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree,
	decl_namespace, arg_assoc_template_arg, arg_assoc,
	validate_nonmember_using_decl, do_class_using_decl): Likewise.
	* error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of,
	args_to_string): Likewise.
	* friend.c (is_friend): Likewise.
	* lex.c (note_got_semicolon, note_list_got_semicolon,
	is_global): Likewise.
	* method.c (build_overload_nested_name, build_overload_value,
	build_qualified_name, build_qualified_name, hack_identifier): Likewise.
	* parse.y (typename_sub, typename_sub1): Likewise.
	* pt.c (push_inline_template_parms_recursive, check_template_shadow,
	process_partial_specialization, convert_template_argument,
	template_args_equal, add_pending_template, lookup_template_class,
	for_each_template_parm_r, maybe_fold_nontype_arg,
	tsubst, instantiate_template, type_unification_real, unify,
	instantiate_pending_templates, set_mangled_name_for_template_decl):
	Likewise.
	* repo.c (repo_get_id, repo_template_used): Likewise.
	* search.c (lookup_field_1): Likewise.
	* tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise.
	* xref.c (classname): Likewise.

2000-03-22  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (BINFO_FOR_VBASE): Adjust documentation.
	(CANONICAL_BINFO): New macro.
	(BINFO_NEW_VTABLE_MARKED): Use it.
	(SET_BINFO_NEW_VTABLE_MARKED): Likewise.
	(CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise.
	* class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE,
	not TREE_TYPE.
	(build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED.
	(build_secondary_vtable): Likewise.
	(dfs_finish_vtbls): Likewise.
	(dfs_accumulate_vtbl_inits): Likewise.
	(accumulate_vtbl_inits): New function.
	(finish_vtbls): Make sure that virtual bases come after
	non-virtual bases in the vtable group.
	(record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL.
	(finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED.
	* search.c (struct vbase_info): Move definition.
	(marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED.
	(unmarked_new_vtable_p): Likewise.
	(dfs_mark_vtable_path): Remove.
	(dfs_mark_new_vtable): Remove.
	(dfs_unmark_new_vtable): Likewise.
	(dfs_clear_search_slot): Likewise.
	(dfs_find_vbases):  Adjust usage of BINFO_NEW_VTABLE_MARKED.
	(dfs_clear_vbase_slots): Likewise.
	(init_vbase_pointers): LIkewise.

2000-03-22  Jason Merrill  <jason@casey.cygnus.com>

	* typeck.c (type_after_usual_arithmetic_conversions): Prefer a
	SIZETYPE to a non-SIZETYPE.

2000-03-21  Mark Mitchell  <mark@codesourcery.com>

	* class.c (layout_virtual_bases): Adjust names in conditionally
	compiled code.

	* class.c (record_base_offsets): New function.
	(layout_conflict_p): Likewise.
	(layout_nonempty_base_or_field): Use it.
	(layout_empty_base): New function.
	(build_base_field): Use it.
	(build_base_fields): Update comment.
	(layout_virtual_bases): Fold in a little code form
	layout_basetypes.  Use layout_empty_base.
	(layout_basetypes): Remove.
	(end_of_class): New function.
	(layout_class_type): Use it.  Adjust.

	* cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment.
	(fntype_p): Remove.
	* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in
	comment.
	(dfs_skip_nonprimary_vbases_markedp): Likewise.
	* typeck.c (fntype_p): Remove.

	* cp-tree.h (TI_SPEC_INFO): Remove.
	(CLASSTYPE_TI_SPEC_INFO): Likewise.
	* pt.c (process_partial_specialization): Likewise.

	* class.c (build_base_field): Fix thinko in computation of binfo
	offsets.

	* tree.c (mark_local_for_remap_p): Mark variables declared in
	TARGET_EXPRs as well.

2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>

	* typeck.c (require_complete_type, complete_type,
	complete_type_or_else, c_sizeof, c_sizeof_nowarn,
	build_array_ref, convert_arguments, pointer_diff,
	build_x_unary_op, build_unary_op, build_c_cast,
	build_modify_expr): Use COMPLETE_TYPE_P etc.
	* call.c (is_complete, convert_like_real,
	build_new_method_call): Likewise.
	* class.c (build_vbase_pointer_fields, check_bases,
	build_base_field, finish_struct_1, pushclass): Likewise.
	* cvt.c (cp_convert_to_pointer, convert_to_void): Likewise.
	* decl.c (maybe_process_template_type_declaration, pushtag,
	pushdecl, redeclaration_error_message, start_decl, start_decl_1,
	layout_var_decl, check_initializer, cp_finish_decl,
	grokdeclarator, require_complete_types_for_parms,
	grok_op_properties, xref_tag, xref_basetypes,
	check_function_type): Likewise.
	* decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise.
	* friend.c (do_friend): Likewise.
	* init.c (build_offset_ref): Likewise.
	* parse.y (structsp): Likewise.
	* pt.c (maybe_process_partial_specialization,
	tsubst_friend_function, instantiate_class_template, tsubst,
	do_type_instantiation, instantiate_pending_templates): Likewise.
	* repo.c (repo_get_id): Likewise.
	* rtti.c (build_typeid, get_typeid, build_dynamic_cast_1,
	synthesize_tinfo_var, emit_support_tinfos): Likewise.
	* search.c (lookup_fnfields_1, lookup_conversions): Likewise.
	* semantics.c (begin_class_definition): Likewise.
	* tree.c (build_cplus_method_type): Likewise.
	* typeck2.c (digest_init, build_functional_cast,
	add_exception_specifier): Likewise.
	* parse.h, parse.c: Regenerated.

2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>

	* inc/cxxabi.h: New header file. Define new-abi entry points.
	(__pointer_type_info::target): Rename member to ...
	(__pointer_type_info::type): ... here.
	(__base_class_info::type): Rename member to ...
	(__base_class_info::base): ... here.
	* Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h
	* cp-tree.h (CPTI_ABI): New global tree enumeration.
	(abi_node): New global tree node.
	* decl.c (abi_node): Document.
	(init_decl_processing): Initialize abi_node.
	* rtti.c (build_dynamic_cast_1): Use abi_node for new-abi.
	(get_vmi_pseudo_type_info): Likewise.
	(create_tinfo_types): Likewise.
	(emit_support_tinfos): Likewise.
	* tinfo.h (cxxabi.h): Include for new-abi.
	Move rtti class definitions to new header file.
	* tinfo.cc (abi): Use the namespace.
	(std): Move new abi rtti classes from here ...
	(__cxxabiv1): ... to here.
	* tinfo2.cc (cxxabi.h): Include for new-abi.
	Move rtti class definitions to new header file.
	(std): Move new abi rtti classes from here ...
	(__cxxabiv1): ... to here.
	* inc/typeinfo (__class_type_info): Move into __cxxabiv1
	namespace.

2000-03-20  Jed Wing <jedwin@zloty.ugcs.caltech.edu>
	    Jason Merrill  <jason@casey.cygnus.com>

	* method.c (build_overload_int): Use host_integerp.

2000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

	* init.c (build_offset_ref): Handle the case of a templated member
	function.

2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* except.c (expand_exception_blocks): Clear catch_clauses_last.

2000-03-18  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro.
	* class.c (check_bitfield_decl): Turn illegal bitfields into
	non-bitfields.
	(dfs_propagate_binfo_offsets): Adjust for new size_binop
	semantics.
	(dfs_offset_for_unshared_vbases): Likewise.
	* cvt.c (cp_convert_to_pointer): Convert NULL to a
	pointer-to-member correctly under the new ABI.
	* expr.c (cplus_expand_constant): Don't use cp_convert when
	turning an offset into a pointer-to-member.
	* init.c (resolve_offset_ref): Don't adjust pointers-to-members
	when dereferencing them under the new ABI.
	* typeck.c (get_member_function_from_ptrfunc): Tweak calculation
	of pointers-to-members under the new ABI.

	* class.c (check_bitfield_decl): Remove restriction on really long
	bitfields.
	(layout_class_type): Implement new ABI handling of bitfields
	longer than their types.

2000-03-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* parse.y (extdefs): Call ggc_collect.
	* parse.c: Regenerated.

2000-03-18  Nathan Sidwell  <nathan@codesourcery.com>

	* class.c (build_base_field): Use TYPE_ALIGN to examine a type.
	(note_name_declared_in_class): Use OVL_CURRENT to get at a
	potential overload.

2000-03-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* class.c (build_vbase_path): Use integer_zerop.
	(build_vtable_entry): Use tree_low_cst.
	(get_vfield_offset): Use bit_position.
	(dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT.
	Use tree_low_cst.
	(check_bitfield_decl): Set DECL_SIZE using convert.
	(build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop.
	(layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT.
	Use tree_low_cst.
	(finish_struct_1): Use bit_position.
	(dump_class_hierarchy): Use tree_low_cst.
	* cp-tree.h (min_precision): Add declaration.
	* decl.c (xref_tag, xref_basetypes): Use tree_low_cst.
	* error.c (dump_type_suffix): Use host_integerp and tree_low_cst.
	(dump_expr): Use integer_zerop, host_integerp, and tree_low_cst.
	* expr.c (cplus_expand_constant): Use bit_position.
	* init.c (build_vec_init): Use host_integerp and tree_low_cst.
	* rtti.c (get_base_offset): Use bit_position.
	* typeck.c (build_binary_op): Use integer_zerop, compare_tree_int,
	host_integerp, and tree_low_cst.
	(pointer_int_sum): Use integer_zerop.
	(build_component_addr): Use bit_position.

2000-03-17  Nathan Sidwell  <nathan@codesourcery.com>

	* typeck.c (require_complete_type): Don't assume size_zero_node.
	(complete_type_or_else): Likewise.

2000-03-16  Steven Grady <grady@digitaldeck.com>
	    Jason Merrill  <jason@casey.cygnus.com>

	* rtti.c (build_dynamic_cast_1): Improve diagnostics.

2000-03-16  Nathan Sidwell  <nathan@codesourcery.com>

	* decl2.c (grokfield): Bail out if type is error_mark_node.

2000-03-15  Nathan Sidwell  <nathan@codesourcery.com>

	* tinfo2.cc (__ptr_to_member_data): Rename to ...
	(__pointer_to_member_data): ... here. Adjust.
	* rtti.c (create_tinfo_types): Adjust.

2000-03-15  Nathan Sidwell  <nathan@codesourcery.com>

	* cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove.
	* decl.c (ref_desc_type_node): Undocument.
	* rtti.c (ptr_ref_initializer): Rename to ...
	(ptr_initializer): ... here. Adjust comments.
	(ptmd_initializer): Fix comment thinko.
	(synthesize_tinfo_var): Remove REFERENCE_TYPE case.
	(create_tinfo_types): Remove ref_desc_type_node init.
	* tinfo2.cc (__reference_type_info): Remove.

2000-03-15  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (cp_finish_decl): Remove obsolete comment.

	* typeck.c (build_ptrmemfunc1): Kill uninitialized warning.

2000-03-14  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h: Tweak documentation.
	* class.c (build_vbase_pointer_fields): Layout the fields, too.
	(avoid_overlap): Remove.
	(get_binfo_offset_as_int): New function.
	(dfs_serach_base_offsets): Likewise.
	(layout_nonempty_base_or_field): Likewise.
	(build_base_field): Layout fields here.  Avoid placing two objects
	of the same type at the same address, under the new ABI.
	(build_base_fields): Adjust accordingly.
	(create_vtable_ptr): Return the new field, but don't attach it to
	TYPE_FIELDS.
	(remove_base_field): Remove.
	(remove_base_fields): Remove.
	(layout_basetypes): Adjust accordingly.
	(layout_class_type): Call layout_field for each field, rather than
	just making a wholesale call to layout_type.

2000-03-14  Jeff Sturm  <jsturm@sigma6.com>

	* except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw.

2000-03-13  Jason Merrill  <jason@casey.cygnus.com>

	* decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P.

	* except.c (dtor_nothrow): New fn.
	(do_pop_exception): Use it.  Take type parm.
	(push_eh_cleanup): Take type parm.
	(expand_start_catch_block): Pass it.
	(build_eh_type_type_ref): Accept null type.

2000-03-12  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (revert_static_member_fn): Change prototype.
	* decl.c (grokfndecl): Adjust call to revert_static_member_fn.
	(grok_op_properties): Likewise.
	(start_function): Likewise.
	(revert_static_member_fn): Simplify.
	* pt.c (check_explicit_specialization): Adjust call to
	revert_static_member_fn.

2000-03-11  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (scope_kind): New type.
	(tmpl_spec_kind): Likewise.
	(declare_pseudo_global_level): Remove.
	(pseudo_global_level_p): Rename to template_parm_scope_p.
	(pushlevel): Remove declaration.
	(begin_scope): New function.
	(finish_scope): Likewise.
	(current_tmpl_spec_kind): Likewise.
	* decl.c (struct binding_level): Shorten parm_flag to 2 bits.
	Shorten keep to 2 bits.  Rename pseudo_global to template_parms_p.
	Add template_spec_p.
	(toplevel_bindings_p): Adjust.
	(declare_pseudo_global_level): Remove.
	(pseudo_global_level_p): Rename to template_parm_scope_p.
	(current_tmpl_spec_kind): New function.
	(begin_scope): Likewise.
	(finish_scope): Likewise.
	(maybe_push_to_top_level): Adjust.
	(maybe_process_template_type_declaration): Likewise.
	(pushtag): Likewise.
	(pushdecl_nonclass_level): Likewise.
	(lookup_tag): Likewise.
	(grokfndecl): Handle member template specializations.  Share
	constructor and non-constructor code.
	* decl2.c (check_classfn): Handle member template specializations.
	* pt.c (begin_template_parm_list): Use begin_scope.
	(begin_specialization): Likewise.
	(end_specialization): Likewise.
	(check_explicit_specialization): Use current_tmpl_spec_kind.
	Handle member template specializations.
	(end_template_decl): Use finish_scope.  Remove call to
	get_pending_sizes.
	(push_template_decl_real): Remove bogus error message.
	(tsubst_decl): Fix typo in code contained in comment.
	(instantiate_template): Handle member template specializations.
	(most_general_template): Likewise.

2000-03-11  Gabriel Dos Reis  <gdr@codesourcery.com>

	* lex.c (whitespace_cr): Compress consecutive calls to warning().
	(do_identifier): Ditto for error().

	* pt.c (convert_nontype_argument): Ditto for cp_error().
	(convert_template_argument): Ditto for cp_pedwarn().

2000-03-11  Jason Merrill  <jason@casey.cygnus.com>

	* exception.cc (__check_null_eh_spec): New fn.
	* except.c (expand_end_eh_spec): Call it if the spec is throw().

2000-03-10  Jason Merrill  <jason@casey.cygnus.com>

	* decl.c (push_throw_library_fn): Take the FUNCTION_TYPE.
	* except.c (expand_end_eh_spec): Add the return type.
	* rtti.c (throw_bad_cast): Add the parmtypes.
	(throw_bad_typeid): Likewise.

	* semantics.c (expand_stmt): Only leave out rtl for unused
	artificials, and set DECL_IGNORED_P on them as well.
	* decl.c (wrapup_globals_for_namespace): Likewise.

2000-03-09  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (maybe_commonize_var): Skip all artificial decls.
	* pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN.

2000-03-10  Jason Merrill  <jason@casey.cygnus.com>

	* lang-options.h, decl2.c: Add -fno-enforce-eh-specs.
	* cp-tree.h: Declare flag_enforce_eh_specs.
	* decl.c (store_parm_decls, finish_function): Check it.

	C library functions don't throw.
	* Makefile.in (cfns.h): New target.
	(except.o): Depend on it.
	* Make-lang.in (cc1plus): Depend on cfns.gperf.
	* cfns.gperf: New file.
	* cfns.h: Generated.
	* except.c: Include it.
	(nothrow_libfn_p): New fn.
	* decl.c (grokfndecl): Use it.
	* cp-tree.h: Declare it.

	* decl.c (push_overloaded_decl_1, auto_function,
	define_function): Lose.
	(build_library_fn_1): New static fn.
	(builtin_function): Use it.
	(get_atexit_node): Use build_library_fn_ptr.
	(build_library_fn, build_cp_library_fn, build_library_fn_ptr,
	build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn,
	push_void_library_fn, push_throw_library_fn): New fns.
	* cp-tree.h: Declare them.
	(cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID.
	(throw_bad_cast_node, throw_bad_typeid_node): Lose.
	* except.c (init_exception_processing, call_eh_info, do_pop_exception,
	(expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns.
	* rtti.c (build_runtime_decl): Lose.
	(throw_bad_cast, throw_bad_typeid, get_tinfo_decl,
	build_dynamic_cast_1, expand_si_desc, expand_class_desc,
	expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns.

	* call.c (build_call): Remove result_type parm.
	Call mark_used on unused artificial fns.
	* init.c, method.c, typeck.c, except.c, rtti.c: Adjust.

2000-03-09  Jason Merrill  <jason@casey.cygnus.com>

	* call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as
	appropriate.
	* decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL.
	* except.c (call_eh_info, alloc_eh_object, expand_throw): Set
	TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate.
	* rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1,
	expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc,
	expand_generic_desc): Likewise.

2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>

	* exception.cc (__cp_pop_exception): Cleanup the original object.

2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (grok_op_properties): Merge conversion to void warning
	with other silly op warnings.

2000-03-08  Jason Merrill  <jason@casey.cygnus.com>

	* typeck2.c (process_init_constructor): Set TREE_PURPOSE of
	array CONSTRUCTOR elements.  Don't use expr_tree_cons.

2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (cp_make_fname_decl): New function.
	(wrapup_globals_for_namespace): Don't emit unused static vars.
	(init_decl_processing): Remove comment about use of
	array_domain_type. Set make_fname_decl.
	(cp_finish_decl): Remove __FUNCTION__ nadgering.
	* semantics.c (begin_compound_stmt): Remove
	current_function_name_declared flagging.
	(expand_stmt): Don't emit unused local statics.
	* typeck.c (decay_conversion): Don't treat __FUNCTION__ decls
	specially.

2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>

	* typeck.c (convert_for_assignment): Don't look at array
	initializer.
	* call.c (convert_like_real): Likewise.

2000-03-07  Jason Merrill  <jason@casey.cygnus.com>

	Add initial support for '\uNNNN' specifier.
	* lex.c (read_ucs): New fn.
	(readescape, skip_white_space): Call it.
	(is_extended_char, is_extended_char_1): New fns.
	(utf8_extend_token): New fn, #if 0'd out.
	(real_yylex): Treat extended chars like letters.

	* search.c (note_debug_info_needed): Walk the bases even if we
	weren't deferring the type itself.

2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* decl2.c (finish_objects): Constify a char*.

	* method.c (emit_thunk): Likewise.

2000-03-06  Nathan Sidwell  <nathan@codesourcery.com>

	* typeck.c (dubious_conversion_warnings): Look through
	REFERENCE_TYPE.

2000-03-06  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* class.c (dfs_modify_vtables): I is now unsigned.
	(check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int.
	(build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT.
	* error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned.
	* init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	* method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned.
	* typeck.c (build_binary_op, case TRUNC_DIV_EXPR):
	Call integer_all_onesp.
	* typeck2.c (process_init_constructor): Use compare_tree_int.

	* lang-specs.h (as): Don't call if -syntax-only.

2000-03-06  Mark Mitchell  <mark@codesourcery.com>

	* expr.c (cplus_expand_expr, case STMT_EXPR): Don't set
	RTL_EXPR_HAS_NO_SCOPE after all.

2000-03-05  Mark Mitchell  <mark@codesourcery.com>

	* expr.c (cplus_expand_expr, case STMT_EXPR): Use
	expand_start_stmt_expr and expand_end_stmt_expr directly.  Set
	RTL_EXPR_HAS_NO_SCOPE.

	* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little
	later.

	* dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P.

2000-03-05  Nathan Sidwell  <nathan@codesourcery.com>

	* call.c (convert_like): Macrofy.
	(convert_like_with_context): New macro.
	(convert_like_real): Renamed from convert_like.  Add calling
	context parameters, for diagnostics. Add recursive flag.  Call
	dubious_conversion_warnings for outer conversion.
	(build_user_type_conversion): Use convert_like_with_context.
	(build_over_call): Likewise. Don't warn about dubious
	conversions here. Adjust convert_default_arg calls.
	(convert_default_arg): Add context parameters for diagnostics.
	Pass through to convert_like_with_context.
	* cp-tree.h (convert_default_arg): Add context parameters.
	(dubious_conversion_warnings): Prototype new function.
	* typeck.c (convert_arguments): Adjust convert_default_arg call.
	(dubious_conversion_warnings): New function, broken
	out of convert_for_assignment.
	(convert_for_assignment): Adjust.

2000-03-03  Jason Merrill  <jason@casey.cygnus.com>

	* decl2.c (key_method): Break out from...
	(import_export_vtable, import_export_class): ...here.

	* decl.c (finish_function): Don't mess with flag_keep_inline_functions.
	* decl2.c (finish_vtable_vardecl): Don't check decl_function_context.

	* search.c (note_debug_info_needed, dfs_debug_mark,
	dfs_debug_unmarkedp): Uncomment.  Adjust for new scheme.
	* decl2.c (finish_vtable_vardecl): Call note_debug_info_needed.

2000-03-03  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (cp_finish_decl): Remove obsolete obstack comments, fix
	typos.

2000-03-02  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ...
	(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this.
	(TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro.
	(lang_type): Split gets_new into has_new and has_array_new.
	(TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
	(TYPE_GETS_NEW): Split into ...
	(TYPE_HAS_NEW_OPERATOR): ... this, and ...
	(TYPE_HAS_ARRAY_NEW_OPERATOR): ... this.
	(DECL_ARRAY_DELETE_OPERATOR_P): New macro
	(build_op_new_call): Don't declare.
	(build_new_1): Likewise.
	* call.c (build_op_new_call): Remove.
	* class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR
	instead of TYPE_NEEDS_DESTRUCTOR.
	(finish_struct_bits): Likewise.
	(add_implicitly_declared_members): Likewise.
	(check_field_decl): Likewise.
	(check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it
	correctly under the new ABI.
	* decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR
	instead of TYPE_NEEDS_DESTRUCTOR.
	(initialize_local_var): Likewise.
	(destroy_local_var): Likewise.
	(cp_finish_decl): Likewise.
	(register_dtor_fn): Likewise.
	(grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and
	TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW.  Don't set
	TYPE_VEC_DELETE_TAKES_SIZE here.
	(xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and
	TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW.
	(store_parm_decls):  Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
	(finish_destructor_body): Likewise.
	(maybe_build_cleanup_1): Likewise.
	* decl2.c (do_static_destruction): Likewise.
	* init.c (build_new_1): Make it static.
	(perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
	(expand_cleanup_for_base): Likewise.
	(get_cookie_size): New function.
	(build_new_1): Handle array-new cookies correctly under the new
	ABI.
	(build_vec_delete_1): Likewise.
	(build_vec_init):  Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
	(build_delete): Likewise.
	(build_vec_delete): Handle array-new cookies correctly under the new
	ABI.
	* lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
	* pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and
	TYPE_HAS_ARRAY_NEW_OPERATOR.
	* ptree.c (print_lang_type): Check them.
	* search.c (context_for_name_lookup): Fix typo in comment.
	(tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
	* tree.c (break_out_cleanups): Likewise.
	(build_cplus_array_test_1): Likewise.
	(cp_build_qualified_type_real): Likewise.
	* typeck.c (complete_type): Likewise.

	* g++spec.c (lang_specific_driver): Add -fnew-abi at the start of
	the command-line, not the end.

2000-03-01  Jason Merrill  <jason@casey.cygnus.com>

	* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG.

2000-03-02  Tom Tromey  <tromey@cygnus.com>

	* cp-tree.h (build_java_class_ref): Declare.
	* init.c (build_java_class_ref): No longer static.
	* except.c (expand_throw): Generate a Java-style `throw' if the
	thrown object is a "Java" object.
	(initialize_handler_parm): Generate a Java-style lookup of
	exception info if the caught object is a "Java" object.
	(catch_language, catch_language_init): New globals.
	(decl_is_java_type): New function.
	(expand_start_catch_block): Don't call push_eh_info() or
	push_eh_cleanup() when handling a Java-style "catch".  Pass Java
	class reference to build_catch_block.

2000-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* typeck.c (comptypes): Treat sizetype like its language equivalent.

2000-03-01  Bernd Schmidt  <bernds@cygnus.co.uk>

	* typeck.c (maybe_warn_about_returning_address_of_local): Reorganize
	to merge reference/pointer code and fix incorrect warnings.

2000-02-29  Jason Merrill  <jason@casey.cygnus.com>

	* search.c (protected_accessible_p): Use context_for_name_lookup.

	* init.c (construct_virtual_bases): Fix thinko.
	* typeck.c (expand_ptrmemfunc_cst): Fix thinko.

2000-03-01  Martin von Löwis  <loewis@informatik.hu-berlin.de>

	* decl.c (current_function_decl): Move to toplev.c.

2000-02-29  Nathan Sidwell  <nathan@codesourcery.com>

	* pt.c (fn_type_unification): Unify return type, whenever
	provided.
	(get_bindings_real): Only pass return type when necessary.
	Remove explicit return type check.
	* class.c (resolve_address_of_overloaded_function): Pass desired
	return type to fn_type_unification.

2000-02-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* class.c (build_vtbl_or_vbase_field, check_methods): Don't clear
	DECL_FIELD_SIZE.
	(check_bitfield_decl, check_field_decls): Set DECL_SIZE, not
	DECL_FIELD_SIZE.
	* rtti.c (expand_class_desc): Likewise.
	* cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name.
	(THUNK_VCALL_OFFSET): Likewise.
	(THUNK_DELTA): Reflect changes in ../tree.h.

2000-02-28  Jason Merrill  <jason@casey.cygnus.com>

	* search.c (protected_accessible_p): Also allow the access if
	the member is public in DERIVED.  Lose TYPE parm.
	(friend_accessible_p): Lose TYPE parm.
	(accessible_p): Adjust.

2000-02-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop
	on things that are not sizes; ssize_binop deleted.
	Call size_diffop when appropriate.
	(dfs_build_vcall_offset_vtbl_entries): Likewise.
	(build_primary_vtable, build_secondary_vtable): Likewise.
	(dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise.
	Variable I is HOST_WIDE_INT.
	(get_vfield_offset): Pass proper types to size_binop.
	(size_extra_vtbl_entries, layout_virtual_bases): Likewise.
	(finish_struct_1): Likewise.
	(skip_rtti_stuff): Arg N is now pointer to signed.
	(layout_class_type): Use size_zero_node.
	* cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed.
	* cvt.c (cp_convert_to_pointer): Pass proper types to size_binop.
	* decl.c (complete_arry_type): Pass proper types to size_binop.
	(xref_basetypes): BINFO_OFFSET is sizetype.
	* error.c (dump_expr): Don't use size_binop non-sizes.
	* expr.c (cplus_expand_constant): Pass proper types to size_binop.
	* init.c (construct_virtual_bases): Fix type error.
	(build_vec_delete_1): Pass proper type to size_binop and don't
	fold result.
	* lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype.
	* rtti.c (get_base_offset): Pass proper type to size_binop.
	* search.c (dfs_find_vbases): Fix type error.
	(expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed.
	(dfs_get_vbase_types): BINFO_OFFSET is sizetype.
	* tree.c (debug_binfo): Variable N is signed.
	Use HOST_WIDE_INT_PRINT_DEC.
	* typeck.c (comptypes): sizetype is same as equivalent integer type.
	(c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT,
	size_one_node and size_zero_node.
	(c_alignof): Use size_one_node.
	(build_component_addr): Pass proper types to size_binop.
	(expand_ptrmemfunc_cst): Don't use size_binop on non-sizes.

2000-02-26  Jason Merrill  <jason@casey.cygnus.com>

	Implement class scope using-declarations for functions.
	* class.c (handle_using_decl): Call add_method for used functions.
	Use IDENTIFIER_CLASS_VALUE to check for conflicts.
	(add_method): Used functions are hidden by local functions.
	(check_bases_and_members): Handle using-decls before finalizing
	CLASSTYPE_METHOD_VEC.
	* call.c (add_function_candidate): Add ctype parm; if nonzero,
	override the type of 'this' accordingly.
	(add_template_candidate, add_template_candidate_real): Add ctype parm.
	(convert_class_to_reference, build_user_type_conversion_1,
	build_new_function_call, build_object_call, build_new_op,
	build_new_method_call): Pass ctype parm.

	* search.c (lookup_member): Put rval_binfo, not basetype_path, in
	the baselink.
	* call.c (convert_class_to_reference, build_user_type_conversion_1,
	build_new_function_call, build_object_call, build_new_op,
	build_new_method_call, build_op_delete_call): Don't get basetype_path
	from a baselink.
	* typeck.c (build_component_ref): Likewise.
	* init.c (build_offset_ref): Likewise.
	(resolve_offset_ref): Don't call enforce_access.
	Call build_scoped_ref.
	* typeck2.c (build_scoped_ref): Simplify.  Do nothing if it
	would cause an error or if -pedantic.
	* class.c (alter_access): Lose binfo parm.

2000-02-26  Mark Mitchell  <mark@codesourcery.com>

	* semantics.c (simplify_aggr_init_exprs_p): Don't walk into
	types.

2000-02-25  Alfred Minarik <a8601248@unet.univie.ac.at>

	* rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info
	pseudo_type_info creation into the std namespace

2000-02-26  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF.
	(import_export_class): Remove declaration.
	* decl2.c (import_export_class): Make it static.
	* dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR,
	PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR,
	EXPR_WITH_FILE_LOCATION.
	* lex.c (check_newline): Tweak filename/lineno setting.
	* semantics.c (begin_while_stmt): Fix typo in comment.

2000-02-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* lang-options.h (-fmessage-length=): Add missing option.

	* Make-lang.in (CXX_SRCS): Add .h files and sort list.

2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>

	* Make-lang.in: Delete refs to LIBGCC2_DEPS.

2000-02-25  Jim Wilson  <wilson@cygnus.com>

	* optimize.c (expand_call_inline): Emit the return label before
	evaluating the return value.

2000-02-24  Mark Mitchell  <mark@codesourcery.com>

	* lex.c (check_newline): Use push_srcloc and pop_srcloc, rather
	than duplicating functionality here.
	* optimize.c: Include input.h.
	(expand_call_inline): Use push_srcloc and pop_srcloc.
	* parse.y (maybe_cv_qualifier): Remove calls to emit_line_note.
	* parse.c: Regenerated.
	* Makefile.in (lex.o): Depend on input.h.
	(optimize.o): Likewise.

2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (grokdeclarator): Diagnose qualifiers on non-member
	function type, rather than ICE.

2000-02-23  Jason Merrill  <jason@casey.cygnus.com>

	* decl.c (grokdeclarator): Call decl_type_access_control.
	* parse.y (parse_end_decl): Don't call decl_type_access_control if
	decl is null.

2000-02-23  Nathan Sidwell  <nathan@codesourcery.com>

	* decl.c (decls_match): Remove obsolete static member nadgering.

2000-02-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* decl.c (grokdeclarator): Change ANSI to ISO.
	* lex.c (consume_string, readescape, do_identifier): Likewise.
	(parse_float, real_yylex): Likewise.
	* parse.y (paren_expr_or_null, paren_cond_or_null): Likewise.
	(unary_expr, new_initializer, cast_expr, primary, primary_no_id,
	new_type_id, maybe_label_decls, simple_stmt,
	for.init.statement): Likewise.
	* pt.c (do_decl_instantiation, do_type_instantiation): Likewise.
	* semantics.c (finish_named_return_value): Likewise.
	* parse.c: Regenerate.

2000-02-21  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro.
	(CPTI_CLASS_STAR_TYPE): Remove.
	(vtable_index_type): Likewise.
	(class_star_type_node): Remove.
	(TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI.
	(build_binary_op_nodefault): Remove.
	* call.c (build_new_op): Use build_binary_op instead of
	build_binary_op_nodefault.
	* decl.c (init_decl_processing): Remove class_star_type_node
	initialization.  Make delta_type_node ptrdiff_type_node under the
	new ABI.  Initialize vtable_index_type.
	(build_ptrmemfunc_type): Build different structures for the new
	ABI.
	(build_enumerator): Use build_binary_op instead of
	build_binary_op_nodefault.
	* method.c (build_overload_value): Mangle pointers-to-members
	appropriately under the new ABI.
	* typeck.c (build_array_ref): Use build_binary_op instead of
	build_binary_op_nodefault.
	(get_member_function_from_ptrfunc): Adjust for the new ABI.
	(build_binary_op_nodefault): Rename to ...
	(build_binary_op): ... this.  Remove old version.  Adjust for
	pointer-to-member comparisons under the new ABI.
	(build_ptrmemfunc1): Remove dead code.  Adjust for the new ABI.
	(build_ptrmemfunc): Adjust for the new ABI.
	(expand_ptrmemfunc_cst): Likewise.
	(delta2_from_ptrmemfunc): Assert that we're not using the new ABI.
	(pfn_from_ptrmemfunc): Adjust for the new ABI.

2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>

	* call.c (build_object_call): Compress consecutive calls to
	cp_error.
	(build_conditional_expr): Say 'ISO C++' not 'ANSI C++'.
	(build_op_delete_call): Adjust message formatting.

	* class.c (check_bases): Compress consecutive calls to
	cp_pedwarn.
	(finish_struct_anon): Say 'ISO C++'.

	* decl.c (start_decl): Same here.
	(grok_reference_init): Likewise.
	(grokfndecl): Correct message formatting.
	(grokfndecl): Improve diagnostic.
	(check_static_variable_definition): Likewise. Say 'ISO C++'
	(compute_array_index_type): Say 'ISO C++'
	(create_array_type_for_decl): Compress consecutive calls to
	cp_error.
	(grokdeclarator): Say 'ISO C++'
	(grok_op_properties): Likewise.

	* decl2.c (delete_sanity): Clairify diagnostic.
	(check_member_template): Same here.
	(grok_function_init): Use consistent terminology.

	* expr.c (do_case): Say 'ISO C++'

	* friend.c (do_friend): Compress consecutive calls to warning.

2000-02-20  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (merge_primary_and_secondary_vtables_p): New macro.
	* class.c (build_secondary_vtable): Reorganize.  Don't create a
	new vtable under the new ABI.
	(layout_vtable_decl): Don't add num_extra_vtbl_entries when
	computing the size.
	(build_vtbl_initializer): Don't return a CONSTRUCTOR; just return
	the initializing elements.
	(initialize_vtable): New function.
	(dfs_finish_vtbls): Use it.
	(dfs_accumulate_vtbl_inits): New function.
	(finish_vtbls): Merge primary and secondary vtables under the new
	ABI.
	(finish_struct_1): Remove redundant call to layout_vtable_decl.
	* init.c (expand_virtual_init): Deal with BINFO_VTABLEs that
	aren't VAR_DECLs.

	* class.c (build_vtable): New function, split out from ...
	(get_vtable_decl): ... here, and ...
	(build_secondary_vtable): ... here.

	* pt.c (tsubst_decl): Fix formatting.

2000-02-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* class.c (build_primary_vtable, layout_vtable_decl): Likewise.
	(avoid_overlap, build_base_field): Likewise.
	(build_base_field, build_base_fields, is_empty_class):
	Test DECL_SIZE with integer_zero.
	(layout_class_type): Set CLASSTYPE_SIZE_UNIT.
	* cp-tree.h (struct lang_type): New field size_unit.
	(CLASSTYPE_SIZE_UNIT): New macro.
	* decl.c (init_decl_processing): Set DECL_SIZE_UNIT.
	(cp_finish_decl): Delete -Wlarger-than processing.
	* optimize.c (remap_decl): Walk DECL_SIZE_UNIT.
	* pt.c (tsubst_decl): Set DECL_SIZE_UNIT.
	* tree.c (make_binfo): binfo vector is one entry longer.
	(walk_tree): Walk DECL_SIZE_UNIT.

2000-02-19  Mark Mitchell  <mark@codesourcery.com>

	* class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in
	comment.
	(build_vtable_entry): Don't assume all vtable entries are
	functions.
	(build_vtbl_initializer): Adjust accordingly.
	(get_vtable_decl): Fix formatting.

2000-02-18  Jason Merrill  <jason@casey.cygnus.com>

	* semantics.c (deferred_type_access_control): Walk the entire
	type_lookups list.
	(save_type_access_control): Rename from
	initial_deferred_type_access_control.  Just remember the value.
	(decl_type_access_control): New fn.
	(begin_function_definition): Use deferred_type_access_control, after
	we've started the function.  Set type_lookups to error_mark_node.
	* parse.y (frob_specs, fn.def1): Adjust.
	(parse_decl0, parse_field, parse_field0, parse_bitfield): New fns.
	(parse_end_decl, parse_bitfield0, parse_method): New fns.
	(fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them.
	(after_type_component_declarator0): Likewise.
	(after_type_component_declarator): Likewise.
	(notype_component_declarator): Likewise.
	* cp-tree.h: Adjust.

	* decl.c (redeclaration_error_message): Allow redeclaration of
	namespace-scope decls.

2000-02-18  Martin von Löwis  <loewis@informatik.hu-berlin.de>

	* typeck2.c (my_friendly_abort): Use GCCBUGURL.

2000-02-17  Mark Mitchell  <mark@codesourcery.com>

	* class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT.
	* decl2.c (grokclassfn): Likewise.

	* ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS.

	* decl2.c (lang_decode_option): Don't set default message length
	here.
	* lex.c (lang_init_options): Set it here.

2000-02-16  Mark Mitchell  <mark@codesourcery.com>

	Make DECL_CONTEXT mean the class in which a member function was
	declared, even for a virtual function.
	* cp-tree.h (DECL_CLASS_CONTEXT): Adjust.
	(DECL_FRIEND_CONTEXT): New macro.
	(DECL_REAL_CONTEXT): Remove.
	(SET_DECL_FRIEND_CONTEXT): Likewise.
	(DECL_VIRTUAL_CONTEXT): Adjust.
	(DECL_CLASS_SCOPE_P): Use TYPE_P.
	(add_friends): Remove.
	(hack_decl_function_context): Likewise.
	* call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with
	CP_DECL_CONTEXT.
	(build_over_call): Fix indentation.  Use DECL_CONTEXT
	instead of DECL_CLASS_CONTEXT.
	* class.c (dfs_build_vcall_offset_vtbl_entries): Likewise.
	(add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
	(strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
	(build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT.
	(build_base_field): Likewise.
	(finish_struct_1): Likewise.
	(build_self_reference): Likewise.
	* decl.c (push_class_binding): Use CP_DECL_CONTEXT, not
	DECL_REAL_CONTEXT.
	(pushtag): Use decl_function_context, not
	hack_decl_function_context.
	(decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
	(duplicate_decls): Use DECL_VIRTUAL_CONTEXT.
	(pushdecl): Remove bogus code.
	(start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT.
	(cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
	(grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
	Use decl_function_context, nothack_decl_function_context.
	(grokvardecl): Don't set DECL_CLASS_CONTEXT.
	(grokdeclarator): Likewise.  Use decl_function_context, not
	hack_decl_function_context.
	(copy_args_p): Document.  Don't use DECL_CLASS_CONTEXT.
	(start_function): Use DECL_FRIEND_CONTEXT, not
	DECL_CLASS_CONTEXT.  Use decl_function_context, not
	hack_decl_function_context.
	(finish_function): Use decl_function_context, not
	hack_decl_function_context.
	(maybe_retrofit_in_chrg): Use DECL_CONTEXT, not
	DECL_CLASS_CONTEXT.
	(grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT.
	(finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT.
	(grokfield): Likewise.
	(finish_builtin_type): Likewise.
	(finish_vtable_vardec): Use decl_function_context, not
	hack_decl_function_context.
	(import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
	(start_static_initialization_or_destruction): Likewise.
	(finish_static_initialization_or_destruction): Likewise.
	(mark_used): Adjust logic for deciding when to synthesize methods.
	* dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not
	DECL_REAL_CONTEXT.
	* error.c (dump_function_decl): Use DECL_CONTEXT, not
	DECL_CLASS_CONTEXT.
	* friend.c (is_friend): Likewise.
	(add_friends): Remove.
	(do_friend): Use SET_DECL_FRIEND_CONTEXT.
	* lex.c (begin_definition_of_inclass_inline): Use
	decl_function_context, not hack_decl_function_context.
	(process_next_inline): Likewise.
	(do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT.
	* method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not
	DECL_CLASSS_CONTEXT.
	(hack_identifier): Likewise.
	(synthesize_method):  Use decl_function_context, not
	hack_decl_function_context.
	* pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not
	DECL_REAL_CONTEXT.
	(is_member_template): Use decl_function_context, not
	hack_decl_function_context.  Use DECL_CONTEXT, not
	DECL_CLASS_CONTEXT.
	(build_template_decl): Set DECL_VIRTUAL_CONTEXT, not
	DECL_CLASS_CONTEXT.
	(check_default_tmpl_args): Use CP_DECL_CONTEXT, not
	DECL_REAL_CONTEXT.
	(push_template_decl_real): Likewise.
	(instantiate_class_template): Don't call add_friends.
	(tsubst_default_argument): Use DECL_CONTEXT, not
	DECL_REAL_CONTEXT.
	(tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT.
	Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
	(set_meangled_name_for_template_decl): Use DECL_CONTEXT, not
	DECL_CLASS_CONTEXT.
	* repo.c (repo_inline_used): Likewise.
	* search.c (current_scope): Adjust for new _CONTEXT macros.
	(context_for_name_lookup): Use CP_DECL_CONTEXT, not
	DECL_REAL_CONTEXT.
	(friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT.
	(lookup_fnfields_here):Likewise.
	(check_final_overrider): Likewise.
	(init_vbase_pointers): Likewise.
	(virtual_context): Likewise.
	* semantics.c (finish_member_declaration): Just set DECL_CONTEXT.
	(expand_body): Use decl_function_context, not
	hack_decl_function_context.
	* tree.c (hack_decl_function_context): Remove.
	* typeck.c (build_x_function_call): Use DECL_CONTEXT, not
	DECL_CLASS_CONTEXT.
	* typeck2.c (error_not_base_type): Likewise.

2000-02-15  Jason Merrill  <jason@casey.cygnus.com>

	* decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE.

2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h.

2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec.

2000-01-16  Gabriel Dos Reis  <gdr@codesourcery.com>

	* decl2.c (lang_decode_option): Enable automatic line wrapping.

2000-02-13  Jason Merrill  <jason@casey.cygnus.com>

	* parse.y (frob_specs): Split out...
	(parse_decl): From here.
	(fn.def2): Call initial_deferred_type_access_control.
	(after_type_component_declarator0): Call frob_specs.
	(notype_component_declarator0): Likewise.
	* search.c (friend_accessible_p): Nested classes are friends of their
	enclosing classes.

2000-02-10  Mark Mitchell  <mark@codesourcery.com>

	* ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be
	used to create an implicit temporary.

	* class.c (dfs_modify_vtables): Tweak calculation of functions to
	override.

2000-02-08  Nathan Sidwell  <nathan@acm.org>

	* typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to
	strip array element qualifiers too.

2000-02-07  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (store_parm_decls): Don't build cleanups for parameters
	while processing_template_decl.

2000-02-07  Jason Merrill  <jason@casey.cygnus.com>

	* cp-tree.h (struct saved_scope): Add incomplete field.
	(namespace_scope_incomplete): New macro.
	* decl.c (pushdecl): Use it.
	(hack_incomplete_structures): Use it.  See through artificial
	binding levels.
	(mark_saved_scope): Mark it.

	Implement access control for nested types.
	* search.c (type_access_control): New fn.
	(accessible_p): Now we do perform access control for types.
	* semantics.c (deferred_type_access_control): New fn.
	(initial_deferred_type_access_control): New fn.
	(begin_function_definition): Call it.  Add lookups parm.
	* decl.c (struct binding_level): Add this_class field.
	(pushlevel_class): Set it.
	(mark_binding_level): Mark it.
	(lookup_name_real): Use it.  Call type_access_control.
	(mark_saved_scope): Mark lookups field.
	* cp-tree.h (flagged_type_tree): Add lookups field.
	(struct saved_scope): Add lookups field.
	(type_lookups): New macro.
	* parse.y (declmods): Now <ftype>.
	(parse_decl): Add lookups parm.  Call
	initial_deferred_type_access_control.
	(lang_extdef): Clear type_lookups.
	(typed_declspecs, declmods, typespec): Set lookups field.
	(initdcl): Call deferred_type_access_control.
	(fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0,
	component_decl_1, named_parm): Adjust.
	* friend.c (is_friend): Nested classes are friends of their
	enclosing classes.

	* class.c (currently_open_derived_class): New fn.
	* method.c (hack_identifier): Use it.

	* lex.c (do_identifier): Remove obsolete code.

	* parse.y (typed_typespecs): Propagate new_type_flag properly.

2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>

	* tinfo.h: Remove apostrophes from C++ comment (xgettext
	thinks this file is plain C).

2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (call.o): Depend on $(EXPR_H).

	* call.c: Include "expr.h".

	* class.c (dump_class_hierarchy): Add prototype.

	* search.c (dfs_get_pure_virtuals): Likewise.

2000-02-1  Ulrich Drepper  <drepper@redhat.com>

	* parse.y (simple_stmt): Allow :: token in asm parameter list.
	* parse.c: Rebuilt.

2000-01-31  Jim Wilson  <wilson@cygnus.com>

	* class.c (build_vtbl_or_vbase_field): New parameter fcontext.
	Store it in DECL_FCONTEXT.
	(build_vbase_pointer_fields, create_vtable_ptr): Fix callers.

2000-01-31  Jason Merrill  <jason@casey.cygnus.com>

	* tinfo.h (old abi): #include "tconfig.h".
	* tinfo.cc (convert_to_base): Move into old abi section.

2000-01-31  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (BINFO_VIRTUALS): Tweak documentation.
	(CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO.
	(BINFO_PRIMARY_BINFO): New macro.
	(BF_DELTA): Rename to ...
	(BV_DELTA): ... this.
	(BF_VCALL_INDEX): Rename to ...
	(BV_VCALL_INDEX): ... this.
	(BF_FN): Rename to ...
	(BV_FN): ... this.
	* class.c (build_vbase_path): Adjust for changes to reverse_path.
	(set_rtti_entry): Rename BF_ macros to BV_ variants.
	(modify_vtable_entry): Simplify.
	(add_virtual_function): Rename BF_ macros to BV_ variants.
	(build_vtable_initializer): Likewise.
	(get_class_offset_1): Remove.
	(dfs_get_class_offset): Likewise.
	(get_class_offset): Likewise.
	(dfs_find_final_overrider): New function.
	(find_final_overrider): Likewise.
	(modify_one_vtable): Remove.
	(dfs_find_base): New function.
	(dfs_modify_vtables): Fold modify_one_vtable in here.  Use
	find_final_overrider.
	(modify_all_vtables): Adjust.  Set BV_VCALL_INDEX on new
	virtuals.
	(dfs_fixup_vtable_deltas): Remove.
	(override_one_vtable): Remove.
	(merge_overrides): Likewise.
	(layout_virtual_bases): Make sure BINFO_OFFSET is set right for
	unreal chilren of virtual bases.
	(finish_struct_1): Don't use merge_overrides.  Don't use
	dfs_fixup_vtable_deltas.
	* tree.c (reverse_path): Return a TREE_LIST, not a chain of
	BINFOs.

2000-01-31  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
	    Jason Merrill  <jason@yorick.cygnus.com>

	* tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT.

2000-01-31  Alfred Minarik <a8601248@unet.univie.ac.at>

	* exception.cc (__throw_bad_typeid): Add missing std::.

2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cp-tree.h (make_thunk): PROTO -> PARAMS.

2000-01-31  Nathan Sidwell  <sidwell@codesourcery.com>

	* cp-tree.h (new_abi_rtti_p): Use flag_new_abi.

	Runtime support for new-abi rtti.
	* inc/typeinfo (type_info::operator!=): Define in class.
	(type_info::before, type_info::name, type_info::operator==,
	type_info::operator!=): Define new ABI implementations.
	(type_info::is_pointer_p, type_info::is_function_p): Declare
	new virtual functions.
	(type_info::do_catch, type_info::do_upcast): Likewise.

	* tinfo.h (__base_class_info): Define new class.
	(__class_type_info): Likewise.
	(__si_class_type_info): Likewise.
	(__vmi_class_type_info): Likewise.
	(__dynamic_cast): Prototype.

	* tinfo.cc: Conditionalize old and new rtti mechanisms.
	(type_info::is_pointer_p): Define new function.
	(type_info::is_function_p): Likewise.
	(type_info::do_catch): Likewise.
	(type_info::do_upcast): Likewise.
	(vtable_prefix): New structure for vtable access.
	(adjust_pointer): Define new template function.
	(contained_p, public_p, virtual_p, contained_public_p,
	contained_nonpublic_p, contained_nonvirtual_p): Define new
	functions.
	(nonvirtual_base_type): New local variable.
	(__class_type_info::~__class_type_info): Define.
	(__si_class_type_info::~__si_class_type_info): Likewise.
	(__vmi_class_type_info::~__vmi_class_type_info): Likewise.
	(__class_type_info::do_catch): Define new function.
	(__class_type_info::do_upcast): Likewise.
	(__class_type_info::find_public_src): Likewise.
	(__class_type_info::do_find_public_src): Likewise.
	(__si_class_type_info::do_find_public_src): Likewise.
	(__vmi_class_type_info::do_find_public_src): Likewise.
	(__class_type_info::do_dyncast): Likewise.
	(__si_class_type_info::do_dyncast): Likewise.
	(__vmi_class_type_info::do_dyncast): Likewise.
	(__class_type_info::do_upcast): Likewise.
	(__si_class_type_info::do_upcast): Likewise.
	(__vmi_class_type_info::do_upcast): Likewise.
	(__dynamic_cast): Likewise.

	* tinfo2.cc (__fundamental_type_info): Define new class.
	(__pointer_type_info): Likewise.
	(__reference_type_info): Likewise.
	(__array_type_info): Likewise.
	(__function_type_info): Likewise.
	(__enum_type_info): Likewise.
	(__ptr_to_member_type_info): Likewise.
	(__fundamental_type_info::~__fundamental_type_info): Define.
	(__pointer_type_info::~__pointer_type_info): Likewise.
	(__reference_type_info::~__reference_type_info): Likewise.
	(__array_type_info::~__array_type_info): Likewise.
	(__function_type_info::~__function_type_info): Likewise.
	(__enum_type_info::~__enum_type_info): Likewise.
	(__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise.
	(__pointer_type_info::do_catch): Define new function.
	(__ptr_to_member_type_info::do_catch): Define new function.

	(__throw_type_match_rtti_2): Use new ABI interface, if enabled.
	(__is_pointer): Likewise.

	* exception.cc (__cplus_type_matcher): Deal with new-abi rtti.

2000-01-30  Mark Mitchell  <mark@codesourcery.com>

	* cp/class.c (build_vtable): Rename to build_primary_vtable.
	(prepare_fresh_vtable): Rename to build_secondary_vtable.
	(make_new_vtable): New function.
	(modify_vtable_entry): Handle generation of new vtables correctly.
	(modify_one_vtable): Remove unused parameter.
	(dfs_fixup_vtable_deltas): Likewise.
	(override_one_vtable): Use build_secondary_vtable.
	(finish_struct_1): Use build_primary_vtable and
	build_secondary_vtable.

2000-01-28  Ulrich Drepper  <drepper@redhat.com>

	* cp/decl.c: Adjust variable names, comments, help strings.

2000-01-29  Nathan Sidwell  <nathan@acm.org>

	* new2.cc (operator delete[]): Use operator delete, don't assume
	implementation.

2000-01-29  Nathan Sidwell  <sidwell@codesourcery.com>

	* class.c (build_vtbl_initializer): Add argument to
	build_vtable_entry call.

2000-01-27  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.def (THUNK_DECL): Discuss vcall indices.
	* cp-tree.h (BINFO_VIRTUALS): Update documentation.
	(BF_DELTA): New macro.
	(BF_VCALL_INDEX): Likewise.
	(BF_FN): Likewise.
	(THUNK_VCALL_OFFSET): Likewise.
	(make_thunk): Change prototype.
	* class.c (build_vtable_entry): Integrate
	build_vtable_entry_for_fn.  Handle vcall indices.
	(build_vtable_entry_for_fn): Remove.
	(set_rtti_entry): Handle vcall indices.  Use BF_DELTA,
	BF_VCALL_INDEX, BF_FN.
	(modify_vtable_entry): Integrate common code from
	modify_one_vtable and dfs_fixup_vtable_deltas.
	(add_virtual_function): Set BF_VCALL_INDEX.
	(build_vtbl_initializer): Simplify.  Use BF_DELTA, BF_VCALL_INDEX,
	and BF_FN.
	(modify_one_vtable): Simplify.
	(dfs_fixup_vtable_deltas): Likewise.
	(override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN.
	* method.c (make_thunk): Handle vcall indices.

2000-01-28  Nathan Sidwell  <sidwell@codesourcery.com>

	Compiler side new abi rtti (not enabled).
	* cp-tree.h (new_abi_rtti_p): New macro.
	(emit_support_tinfos): Prototype new function.
	(tinfo_decl_p): Likewise.
	(emit_tinfo_decl): Likwise.
	* rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor
	macros.
	(doing_runtime): New local static.
	(init_rtti_processing): Add new-abi initializer.
	(get_tinfo_decl): Add new-abi logic.
	(tinfo_from_decl): Likewise.
	(build_dynamic_cast_1): Likewise.
	(qualifier_flags): New static function.
	(tinfo_base_init): Likewise.
	(generic_initializer): Likewise.
	(ptr_ref_initializer): Likewise.
	(ptmd_initializer): Likewise.
	(class_hint_flags): Likewise.
	(class_initializer): Likewise.
	(synthesize_tinfo_var): Likewise.
	(create_real_tinfo_var): Likewise.
	(create_pseudo_type_info): Likewise.
	(get_vmi_pseudo_type_info): Likewise.
	(create_tinfo_types): Likewise.
	(emit_support_tinfos): New global function.
	(tinfo_decl_p): New global predicate.
	(emit_tinfo_decl): New global function.
	* class.c (set_rtti_entry): Generalize for old and new rtti.
	(build_vtbl_initializer): Likewise.
	* decl2.c (finish_file): Likewise.

2000-01-27  Jim Wilson  <wilson@cygnus.com>

	* optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t)
	and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))).

2000-01-27  Mike Stump  <mrs@wrs.com>

	* decl.c (pushdecl): Fix up shadow warnings with respect to implicit
	for scopes.

2000-01-26  Jason Merrill  <jason@casey.cygnus.com>

	* pt.c (unify): Use fold, not maybe_fold_nontype_arg.

2000-01-26  J"orn Rennecke <amylaar@cygnus.co.uk>

	* optimize.c (calls_setjmp_r): Supply new argument
	to special_function_p.

2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* call.c: PROTO -> PARAMS.
	* class.c: Likewise.
	* cp-tree.h: Likewise.
	* cvt.c: Likewise.
	* decl.c: Likewise.
	* decl.h: Likewise.
	* decl2.c: Likewise.
	* dump.c: Likewise.
	* errfn.c: Likewise.
	* error.c: Likewise.
	* except.c: Likewise.
	* expr.c: Likewise.
	* init.c: Likewise.
	* input.c: Likewise.
	* lex.c: Likewise.
	* lex.h: Likewise.
	* method.c: Likewise.
	* optimize.c: Likewise.
	* parse.y: Likewise.
	* pt.c: Likewise.
	* repo.c: Likewise.
	* rtti.c: Likewise.
	* search.c: Likewise.
	* semantics.c: Likewise.
	* spew.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.
	* xref.c: Likewise.

2000-01-25  Richard Henderson  <rth@cygnus.com>

	* typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR.

2000-01-25  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (vcall_offset_in_vtable_p): New macro.
	* class.c (build_vbase_offset_vtbl_entries): Fix typo in commment.
	(struct vcall_offset_data_s): New type.
	(dfs_vcall_offset_queue_p): New function.
	(dfs_build_vcall_offset_vtbl_entries): Likewise.
	(build_vcall_offset_vtbl_entries): Likewise.
	(layout_vtable_decl): Likewise.
	(num_vfun_entries): Likewise.
	(num_extra_vtbl_entries): Add the entries for vcall offsets.
	(build_vtbl_initializer): Likewise.
	(dfs_finish_vtabls): Use layout_vtable_decl.
	(modify_one_vtables): Always duplicate vtables under the new ABI.
	(finish_struct_1): Use layout_vtable_decl.

2000-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* decl.c (member_function_or_else): Change third arg from a format
	specifier to an `enum overload_flags'.  Callers changed.

2000-01-25  Gabriel Dos Reis  <gdr@codesourcery.com>

	* typeck.c (composite_pointer_type, c_sizeof, expr_sizeof,
	build_binary_op_nodefault, build_unary_op, build_reinterpret_cast,
	build_const_cast, get_delta_difference, check_return_expr): Avoid
	ANSI string concatenation usage.

2000-01-24  Mark Mitchell  <mark@codesourcery.com>

	* class.c (layout_class_type): Put the fields required to make a
	class non-empty at the end, not the beginning, of the TYPE_FIELDs
	list.

2000-01-24  Jason Merrill  <jason@casey.cygnus.com>

	* pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a
	template.

	* decl2.c (mark_used): Do instantiate inlines that have been
	explicitly instantiated.

2000-01-24  Richard Henderson  <rth@cygnus.com>

	* call.c (build_over_call): Use expand_tree_builtin.
	* typeck.c (build_function_call_real): Likewise.
	(build_binary_op_nodefault): Handle unordered compares.

2000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>

	* cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New
	cp_tree_index values.
	(throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node):
	New global node #defines for them.
	* rtti.c (call_void_fn): Replace with ...
	(build_runtime_decl): ... new static function.
	(throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl.
	(throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl.
	(build_dynamic_cast_1): Always produce correctly typed result.
	Explicitly produce type_info addresses. Use dynamic_cast_node.
	* exception.cc (__throw_bad_cast): Return `void *'.
	(__throw_bad_typeid): Return `const type_info &'.

2000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>

	* cp-tree.h (get_vtable_decl): Prototype new function.
	* class.c (get_vtable_decl): New function. Broken out from ...
	(build_vtable): ... here. Use it.
	* decl2.c (finish_vtable_vardecl): Ignore dummy vtables created
	by get_vtable_decl.

2000-01-24  Nathan Sidwell  <sidwell@codesourcery.com>

	* cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE,
	CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE,
	CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations.
	(CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE,
	CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE,
	CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations.
	(CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ...
	(CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here.
	(CPTI_TINFO_VAR_ID): New enumeration.
	(__tp_desc_type_node, __access_mode_type_node,
	__bltn_desc_type_node, __user_desc_type_node,
	__class_desc_type_node, __ptr_desc_type_node,
	__attr_desc_type_node, __func_desc_type_node,
	__ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines.
	(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
	ref_desc_type_node, ary_desc_type_node, func_desc_type_node,
	enum_desc_type_node, class_desc_type_node,
	si_class_desc_type_node, vmi_class_desc_type_node,
	ptmd_desc_type_node, base_desc_type_node): New #defines.
	(tinfo_fn_id, tinfo_fn_type): Rename to ...
	(tinfo_decl_id, tinfo_decl_type): ... here. Adjust.
	(tinfo_var_id): New enumeration.
	(DECL_TINFO_FN_P): Augment comment.
	* decl.c (cp_global_trees): Adjust documentation.
	* rtti.c (init_rtti_processing): Adjust for tinfo_decl_id,
	tinfo_decl_type and tinfo_var_id.
	(get_tinfo_decl_dynamic): Adjust for tinfo_decl_type.
	(build_typeid): Remove unused variable.
	(get_tinfo_var): Use tinfo_var_id.
	(tinfo_name): New static function.
	(get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type.
	(tinfo_from_decl): Likewise.
	(get_base_offset): New static function, broken out of
	expand_class_desc.
	(expand_si_desc): Use tinfo_name.
	(expand_class_desc): Likewise. Lose local static variable.
	Use base_desc_type_node. Use get_base_offset.
	(expand_ptr_desc): Use tinfo_name.
	(expand_attr_desc): Likewise.
	(expand_generic_desc): Likewise.

	* tinfo.cc (__GXX_ABI_VERSION): Test value and existence.
	* tinfo.h (__GXX_ABI_VERSION): Test value and existence.

2000-01-23  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (__eprintf): Remove declaration.
	* tree.c (__eprintf): Remove definition.

2000-01-23  Zack Weinberg  <zack@rabi.columbia.edu>
	    Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N,
	CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings.

2000-01-23  Brad Lucier  <lucier@math.purdue.edu>

	* class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly.

2000-01-23  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (register_dtor_fn): New function.
	* decl.c (destroy_local_static): Rename to ...
	(register_dtor_fn): ... this.  Give it external linkage.
	(expand_static_init): Use it.
	* decl2.c (do_static_initialization): Likewise, if using
	__cxa_atexit.
	(do_static_destruction): Check that __cxa_atexit is not in use.
	(finish_file): Don't call do_static_destruction if using
	__cxa_atexit.

	* typeck.c (convert_arguments): Restore two-message error
	reporting.

2000-01-20  Nathan Sidwell  <sidwell@codesourcery.com>

	Remap dynamic cast hint values to be consistent across ABIs.
	* search.c (dynamic_cast_base_recurse): Remap generated value.
	(get_dynamic_cast_base_type): Adjust documentation.
	* tinfo.h (__user_type_info::dyncast): Likewise.
	(__user_type_info::find_public_subobj): Remap BOFF meaning.
	* tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning.
	(__class_type_info::do_dyncast): Likewise.
	(__class_type_info::do_find_public_subobj): Likewise.
	* tinfo2.cc (__dynamic_cast): Remap BOFF parameter.

2000-01-19  Gabriel Dos Reis  <gdr@codesourcery.com>

	* typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn.

	* typeck2.c (incomplete_type_error): Restore previous
	cp_error and cp_error_at call sequence.

2000-01-20  Brad Lucier  <lucier@math.purdue.edu>

	* class.c (dump_class_hierarchy): Make format agree with argument;
	cast pointer to unsigned long and print with %lx.

2000-01-19  Gabriel Dos Reis  <gdr@codesourcery.com>

	* decl2.c (lang_decode_option): Set default line-wrap length to 72.

	* typeck.c (composite_pointer_type, common_type,
	comp_target_parms, c_sizeof, expr_sizeof, build_array_ref,
	build_function_call_real, convert_arguments,
	build_binary_op_nodefault, pointer_int_sum, pointer_diff,
	build_unary_op, mark_addressable, build_compound_expr,
	build_static_cast, build_reinterpret_cast, build_const_cast,
	build_c_cast, build_modify_expr, get_delta_difference,
	build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with
	'ISO C++'.  Fusion consecutive calls to diagnostic message routines
	into a single one.
	* typeck2.c (readonly_error, abstract_virtuals_error,
	process_init_constructor, check_for_new_type): Likewise.

2000-01-19  Mark Mitchell  <mark@codesourcery.com>

	* tree.c (bot_manip): Set DECL_CONTEXT for newly created
	VAR_DECLs.

2000-01-18  Nathan Sidwell  <sidwell@codesourcery.com>

	* cp-tree.h (get_tinfo_fn_dynamic): Remove prototype.
	(build_x_typeid): Likewise.
	(get_tinfo_fn): Likewise.
	(get_tinfo_fn_unused): Rename to ...
	(get_tinfo_decl): ... here.
	* rtti.c (build_headof): Replace logic error with assertion.
	(get_tinfo_fn_dynamic): Rename to ...
	(get_tinfo_decl_dynamic): ... here. Make static. Use
	complete_type_or_else.
	(build_x_typeid): Move into ...
	(build_typeid): ... here. Adjust call to
	get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify
	throw_bad_typeid expression.
	(get_tinfo_fn_unused): Rename to ...
	(get_tinfo_decl): ... here. Adjust comment.
	(get_tinfo_fn): Delete.
	(tinfo_from_decl): New static function.
	(get_typeid_1): Call get_tinfo_decl and tinfo_from_decl.
	(get_typeid): Use complete_type_or_else.
	(build_dynamic_cast_1): Adjust calls to
	get_tinfo_decl_dynamic. Simplify throw_bad_cast expression.
	* parse.y (primary): Adjust call to build_typeid.
	* except.c (build_eh_type_type_ref): Adjust call to
	get_tinfo_decl. Mark as used.
	* class.c (set_rtti_entry): Adjust call to get_tinfo_decl.
	* decl2.c (build_expr_from_tree): Adjust call to build_typeid.
	* parse.c: Regenerated.

2000-01-17  Mark Mitchell  <mark@codesourcery.com>

	* class.c (fixed_type_or_null): Don't clear NONNULL.  Document
	calling convention.
	(resolves_to_fixed_type_p): Document calling convention.
	* rtti.c (build_x_typeid): Initialize NONNULL.

	* cp-tree.h (build_shared_int_cst): New function.
	* call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity.
	* class.c (modify_vtable_entry): Likewise.
	(add_virtual_function): Split out code to generated shared
	INTEGER_CSTs to build_share_int_cst.
	(modify_all_vtables): Handle all the overridden functions here.
	Add overridden functions from non-primary virtual bases to the
	primary vtable.
	(finish_struct_1): Adjust call to modify_all_vtables.  Add
	overridden functions from non-primary bases to the vtable.
	* tree.c (build_shared_int_cst): New function.

	* cp-tree.h (scratchalloc): Remove.
	(build_scratch_list): Likewise.
	* call.c (convert_class_to_reference): Replace build_scratch_list
	and build_expr_list with build_tree_list.
	(add_candidate): Replace scratchalloc with expralloc.  Note memory
	leak.
	(build_user_type_conversion_1):  Replace build_scratch_list
	and build_expr_list with build_tree_list.
	(build_new_op): Likewise.
	(build_op_delete_call): Likewise.
	(convert_like): Likewise.
	* cvt.c (ocp_convert): Likewise.
	* decl.c (start_decl): Likewise.
	(start_function): Likewise.
	(finish_destructor_body): Likewise.
	(maybe_build_cleanup_1): Likewise.
	* decl2.c (reparse_decl_as_expr): Likewise.
	* init.c (perform_member_init): Likewise.
	(expand_cleanup_for_base): Likewise.
	(build_builtin_delete_call): Likewise.
	(build_new_1): Likewise.
	(build_delete): Likewise.
	* method.c (do_build_assign_ref): Likewise.
	* parse.y (already_scoped_stmt): Likewise.
	(nontrivial_exprlist): Likewise.
	(net_initializer): Likewise.
	(initlist): Likewise.
	* parse.c: Regenerated.
	* rtti.c (build_x_typeid): Likewise.
	(build_dynamic_cast_1): Likewise.
	* typeck.c (build_x_compound_expr): Likewise.
	(build_static_cast): Likewise.
	(build_modify_expr): Likewise.

	* cp-tree.h (DECL_VINDEX): Add documentation.
	* class.c (build_vtable_entry): Likewise.
	(start_vtable): Add comment.
	(add_virtual_function): Replace pending_hard_virtuals with
	overridden_virtuals and pending_virtuals with new_virtuals.
	Replace redundant assignments with assertions.
	(check_for_override): Add comment.
	(check_bases_and_members): Replace pending_hard_virtuals with
	overridden_virtuals and pending_virtuals with new_virtuals.
	(create_vtbl_ptr): Likewise.
	(layout_class_type): Likewise.
	(finish_struct_1): Likewise.  Add comments.

2000-01-16  Mark Mitchell  <mark@codesourcery.com>

	* class.c (finish_struct_1): Replace redundant code with
	assertions.

	* cp-tree.h (flag_new_abi): Move.
	(flag_use_cxa_atexit): Likewise.
	(flag_honor_std): Likewise.
	(flag_rtti): Likewise.
	(vbase_offsets_in_vtable_p): Define.
	(vptrs_present_everywhere_p): Likewise.
	(TYPE_CONTAINS_VPTR_P): Likewise.
	(dfs_walk_real): Declare.
	* class.c (build_vbase_pointer_fields): Check
	vbase_offsets_in_vtable_p.
	(dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in
	BINFO_VPTR_FIELD.
	(build_vbase_offset_vtbl_entries): Simplify.
	(build_vbase_offset_vtbl_entries): Adjust.
	(build_vbase_pointer): Add ability to look up vbase offsets in
	vtable.
	(start_vtable): New function.
	(add_virtual_function): Use it.
	(determine_primary_base): Use TYPE_CONTAINS_VPTR_P.
	(num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p.
	(build_vtbl_initializer): Take the type of the complete object as
	input.  Use it to correctly calculate vbase offsets.
	(dfs_finish_vtbls): Pass the complete type to
	build_vtbl_initializer.
	(check_bases_and_members): Use TYPE_CONTAINS_VPTR_P.
	(create_vtable_ptr): Create a vtable even if there are no
	new virtual functions, under the new ABI.
	(finish_struct_1): Likewise.
	(get_vfield_name): Use TYPE_CONTAINS_VPTR_P.
	* decl.c (exapnd_static_init): Remove call to
	preserve_initializer.
	* decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in
	vtables.
	* init.c (initialize_vtbl_ptrs): Initialize them in pre-order.
	(expand_virtual_init): Use vbase_offsets_in_vtable_p.
	(construct_virtual_bases): Don't initialize virtual base pointers
	under the new ABI.
	(build_aggr_init): Clean up comment.
	(expand_aggr_init_1): Likewise.
	* rtti.c (expand_class_desc): Store the virtual function table
	index where the vbase offset lives in the offset field.
	* search.c (dfs_walk_real): Make it global.
	(dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P.
	* tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD.

	* tinfo.h (USItype): Make it signed under the new ABI.
	* tinfo.cc (convert_to_base): New function.  Encapsulate base
	conversion logic here.
	(__class_type_info::do_upcast): Use it.
	(__class_type_info::do_dyncast): Likewise.
	(__class_type_info::do_find_public_subobj): Likewise.

	* init.c (construct_virtual_bases): Don't look up the addresses of
	virtual bases at run-time.

	* class.c (build_vbase_pointer): Relocate.
	(build_vbase_pointer_fields): Likewise.
	(dfs_build_vbase_offset_vtbl_entries): Likewise.
	(build_vbase_offset_vtbl_entries): Likewise.

	* decl.c (init_decl_processing): Complain if -fnew-abi
	-fno-vtable-thunks is used.

	* decl2.c (lang_decode_option): Don't couple flag_honor_std to
	flag_new_abi.

2000-01-15  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (num_extra_vtbl_entries): New function.
	(size_extra_vtbl_entries): Likewise.
	(dfs_vtable_path_unmark): Likewise.
	(dfs_vtable_path_unmarked_real_bases_queue_p): Likewise.
	(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
	* class.c (num_extra_vtbl_entries): New function.
	(size_extra_vtbl_entries): Likewise.
	(dfs_build_vbase_offset_vtbl_entries): New function.
	(build_vbase_offset_vtbl_entries): Likewise.
	(build_vtbl_initializer): Use it.
	(finish_struct_1): Adjust vtable sizes (using
	num_extra_vtbl_entries).
	* expr.c (cplus_expand_expr): Assert that the DECL_RTL for a
	THUNK_DECL is non-NULL before expanding it.
	* init.c (expand_virtual_init): Adjust the vtable pointer by
	size_extra_vtbl_entries before storing it.
	* search.c (get_shared_vase_if_not_primary): Adjust prototype.
	Handle TREE_LIST parameters here, not in the dfs_* functions.
	(dfs_unmarked_real_bases_queue_p): Adjust.
	(dfs_marked_real_bases_queue_p): Likewise.
	(dfs_vtable_path_unmarked_real_bases_queue_p): New function.
	(dfs_vtable_path_marked_real_bases_queue_p): New function.
	(dfs_vtable_path_unmark): Likewise.

2000-01-14  Mark Mitchell  <mark@codesourcery.com>

	* optimize.c (copy_body_r): Clear the operand three of a
	TARGET_EXPR when copying it.

2000-01-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* method.c (build_decl_overload_real): Check whether we are in ::
	before returning __builtin_new/delete.

2000-01-13  Mark Mitchell  <mark@codesourcery.com>

	* pt.c (tsubst_friend_function): Improve comment.
	(instantiate_decl): Avoid crashing when a "nested" function is
	instantiated from the top level.

	* dump.c (dqeueue_and_dump): Dump
	DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION.

2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* call.c: If GATHER_STATISTICS, declare `n_build_method_call'.

2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>

	* g++spec.c (lang_specific_driver): Add -fnew-abi if
	ENABLE_NEW_GXX_ABI defined.
	* Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o,
	opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o,
	opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch.

2000-01-12  Mark Mitchell  <mark@codesourcery.com>

	* decl.c (start_cleanup_fn): Call pushdecl.

	* call.c (convert_class_to_reference): Fix typos.
	(build_conditional_expr): Handle errors gracefully.
	* class.c (push_nested_class): Likewise.
	* cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro.
	(DECL_THIS_EXTERN): Use it.
	(DECL_THIS_STATIC): Likewise.
	* cvt.c (convert_to_void): Handle errors gracefully.
	(build_expr_type_conversion): Likewise.
	* decl.c (maybe_push_decl): Likewise.
	(start_decl_1): Likewise.
	(require_complete_types_for_parms): Likewise.
	* parse.y (structsp): Likewise.
	(base_class): Likewise.
	* parse.c: Regenerated.
	* pt.c (finish_member_template_decl): Likewise.
	* typeck.c (decay_conversion): Likewise.

	* cp-tree.h (dfs_skip_vbases): New function.
	(find_vbase_instance): Likewise.
	* class.c (determine_primary_base): Allow a nearly empty base to
	serve as a primary base class under the new ABI.
	(get_class_offset_1): Rename to ...
	(dfs_get_class_offset): ... this.  Simplify.  Don't issue error
	messages here.
	(get_class_offset): Use it.  Issue error messages here.
	(dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to
	find the right copies of virtual bases.
	(fixup_vtable_deltas1): Rename to ...
	(dfs_fixup_vtable_deltas): ... this.  Adjust to handle virtual
	bases as primary bases.
	(fixup_vtable_deltas): Remove.
	(override_one_vtable): Handle virtual bases as primary bases.
	(merge_overrides): Likewise.
	(finish_struct_1): Likewise.
	(dump_class_hierarchy): Dump primary-ness of bases as well.
	* search.c (mark_primary_bases): Use a pre-order traversal to
	handle primary virtual bases.
	(dfs_skip_vbases): New fiunction.
	(expand_upcast_fixups): Adjust to handle primary virtual bases.
	(fixup_virtual_upcast_offsets): Likewise.
	(fixup_all_virtual_upcast_offsets): Likewise.
	(dfs_find_vbase_instances): New function.
	(find_vbase_instance): Likewise.

2000-01-11  Mumit Khan  <khan@xraylith.wisc.edu>

	* lex.c (DIR_SEPARATOR): Delete macro.

2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>

       * decl2.c (lang_decode_option): Handle automatic line wrapping
       option.

2000-01-11  Mark Mitchell  <mark@codesourcery.com>

	* friend.c (do_friend): Don't resolve scopes when processing
	template declarations, even if the qualifying scope doesn't
	involve template parameters.

2000-01-10  Mark Mitchell  <mitchell@dumbledore.codesourcery.com>

	* class.c (dfs_modify_vtables_queue_p): Remove.
	(modify_all_vtables): Use dfs_unmarked_real_bases_queue_p
	and dfs_marked_real_bases_queue_p instead of
	dfs_modify_vtables_queue_p.

	* class.c (build_vbase_path): Simplify.
	(dfs_propagate_binfo_offsets): New function.
	(propagate_binfo_offsets): Use it.
	(remove_base_field): Simplify.
	(dfs_set_offset_for_vbases): Remove.
	(dfs_set_offset_for_shared_vbases): New function.
	(dfs_set_offset_for_unshared_vbases): Likewise.
	(layout_virtual_bases): Use them.
	(layout_basetypes): Don't call propagate_binfo_offsets.
	* search.c (dfs_get_vbase_types): Clone completely fresh binfos
	for the vbases.

	* class.c (build_base_field): New function, split out from ...
	(build_base_fields): ... here.  Use it.  Allocate primary bases
	first, under the new ABI.
	(get_vtable_entry): Remove.
	(remove_base_field): New function, split out from ...
	(remove_base_fields): ... here.  Adjust since primary bases come
	first under the new ABI.

	* cp-tree.h (expand_direct_vtbls_init): Remove declaration.
	(initialize_vtbl_ptrs): New function.
	(expand_indirect_vtbls_init): Change prototype.
	(convert_pointer_to_vbase): Declare.
	* init.c (expand_direct_vtbls_init): Remove.
	(dfs_initialize_vtbl_ptrs): New function.
	(initialize_vtbl_ptrs): Likewise.
	(emit_base_init): Use initialize_vtbl_ptrs.
	* search.c (convert_pointer_to_vbase): Make it global.
	(expand_indirect_vtbls_init): Remove vtable initialization code.
	* semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs.

	* class.c (dfs_finish_vtbls): New function.
	(finish_vtbls): Use it.
	(dump_class_hierarchy): New function.

	* cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition.
	(BINFO_VBASE_PRIMARY_P): New macro.
	(BINFO_VIRTUALS): Add to documentation.
	(SET_BINFO_PRIMARY_MARKED_P): Remove.
	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
	(dfs_mark_primary_bases_queue_p): Likewise.
	(dfs_unmarked_real_bases_queue_p): New function.
	(dfs_marked_real_bases_queue_p): Likewise.
	* search.c (dfs_mark_primary_bases): Adjust.
	(mark_primary_bases): Likewise.
	(get_shared_vbase_if_not_primary): New function.
	(dfs_unmarked_real_bases_queue_p): Likewise.
	(dfs_marked_real_bases_queue_p): Likewise.
	(dfs_get_pure_virtuals): Simplify.
	(get_pure_virtuals): Likewise.

2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* lex.c: Include tm_p.h.

2000-01-07  Nathan Sidwell  <sidwell@codesourcery.com>

	* lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro.

2000-01-06  Jason Merrill  <jason@casey.cygnus.com>

	* decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT.
	* pt.c (instantiate_decl): Defer comdat templates that might not be
	needed.

	* cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT.
	* decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT.
	(finish_file): Likewise.

	* decl2.c (import_export_class): Undo 12/14 change.

	* error.c (dump_decl): operator new, not operatornew.

	* class.c (field_decl_cmp): A nontype is "greater" than a type.
	* search.c (lookup_field_1): Look for the last field with the
	desired name.

2000-01-05  Nathan Sidwell  <nathan@acm.org>

	* decl2.c (lookup_arg_dependent): Deal with FNS not being a
	FUNCTION_DECL.

2000-01-05  Nathan Sidwell  <nathan@acm.org>

	* typeck.c (build_static_cast): Don't strip target qualifiers
	when casting from a class.

2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* class.c (warn_hidden): Initialize variable `fndecl'.

2000-01-03  Ulrich Drepper  <drepper@cygnus.com>

	* decl.c (flag_isoc9x): New variable to be able to use code in
	c-common.c.  For now always zero.

2000-01-03  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation.
	* class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN
	or unshare_base_binfos for virtual bases here.
	* search.c (dfs_get_vbase_types): Do it here.
	(get_vbase_types): Adjust.

2000-01-02  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (CLASSTYPE_VFIELDS): Move definition.
	(BINFO_PRIMARY_MARKED_P): Use flag 5.
	(SET_BINFO_PRIMARY_MARKED_P): Likewise.
	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
	(unmark_primary_bases): Remove declaration.
	(unmarkedp): Declare.
	(dfs_vbase_unmark): Likewise.
	* class.c (determine_primary_base): Return immediately if there
	are no base classes.  Call mark_primary_bases here.
	(modify_all_direct_vtables): Remove.
	(modify_all_indirect_vtables): Remove.
	(dfs_modify_vtables_queue_p): New function.
	(dfs_modify_vtables): New function.
	(modify_all_vtables): Use them.
	(build_base_fields): Build FIELD_DECLs for primary virtual base
	classes.
	(create_vtable_ptr): Don't call determine_primary_base here.
	(dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ...
	(dfs_set_offset_for_vbases): ... this.
	(layout_virtual_bases): Use it.
	(layout_class_type): Call determine_primary_base here.
	* search.c (unmarkedp): Make it global.
	(shared_marked_p): Simplify.
	(shared_unmarked_p): Likewise.
	(dfs_primary_bases_queue_p): Remove.
	(dfs_unmark_primary_bases): Likewise.
	(unmark_primary_bases): Likewise.
	(mark_primary_bases): Simplify.
	(get_pure_virtuals): Don't call mark_primary_bases here.
	(dfs_vbase_unmark): New function.
	(get_vbase_types): Simplify.

	* class.c (struct base_info): Remove.
	(determine_primary_base): Take has_virtual_p rather than a
	base_info as input.  Don't calculate max_has_virtual.
	(finish_struct_bits): Remove max_has_virtual argument.
	(create_vtable_ptr): Remove max_has_virtual_p argument.
	(layout_virtual_bases): Remove max argument.
	(layout_basetypes): Likewise.
	(layout_class_type): Remove max_has_virtual_p argument.
	(finish_struct_1): Remove max_has_virtual.

	* cp-tree.h (dfs_mark_primary_bases_queue_p): New function.
	(layout_basetypes): Remove.
	* class.c (propagate_binfo_offsets): Moved here from tree.c.
	Update to handle primary virtual bases.
	(remove_base_fields): New function, split out from
	layout_basetypes.
	(dfs_mark_primary_bases_and_set_vbase_offsets): New function.
	(layout_virtual_bases): New function, split out from
	layout_basetypes.  Update to handle primary virtual bases.
	(layout_basetypes): Moved here from tree.c.  Use
	remove_base_fields and layout_virtual_bases.
	* search.c (dfs_mark_primary_bases_queue_p): New function.
	(mark_primary_bases): Use it.
	* tree.c (CEIL): Remove.
	(propagate_binfo_offsets): Remove.
	(layout_basetypes): Remove.

2000-01-01  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES.
	(BINFO_PRIMARY_MARKED_P): New macro.
	(SET_BINFO_PRIMARY_MARKED_P): Likewise.
	(CLEAR_BINFO_PRIMARY_MARKED_P): Likewise.
	(mark_primary_bases): New function.
	(unmark_primary_bases): Likewise.
	* search.c (get_abstract_virtuals_1): Remove.
	(dfs_mark_primary_bases): New function.
	(mark_primary_bases): Likewise.
	(dfs_unmark_primary_bases): Likewise.
	(unmark_primary_bases): Likewise.
	(dfs_get_pure_virtuals): Likewise.

2000-01-01  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (skip_rtti_stuff): Adjust prototype.
	* class.c (skip_rtti_stuff): Reorganize parameters and return value.
	(modify_one_vtable): Adjust.
	(fixup_vtable_deltas1): Likewise.
	(override_one_vtable): Likewise.
	* search.c (get_abstract_virtuals_1): Likewise.
	(get_pure_virtuals): Likewise.
	(expand_upcast_fixups): Likewise.
	* tree.c (debug_binfo): Likewise.

	* class.c (build_vtable): Don't return a value.  Don't rebuild
	vtables for bases that have already been handled.
	(prepare_fresh_vtable): Don't rebuild vtables for bases that have
	already been handled.
	(modify_one_vtable): Adjust accordingly.
	(fixup_vtable_deltas1): Likewise.
	(finish_struct_1): Likewise.

2000-01-01  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* call.c (build_new_method_call): Also check destructors.



Copyright (C) 2000 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
