Commit Graph

761 Commits

Author SHA1 Message Date
Jason Merrill
efe49da0ba re PR c++/4872 (missed warning (no return) -- regression from 2.95)
PR c++/4872
        * decl.c (finish_function): Warn about a non-void function with
        no return statement and no abnormal exit.
        * cp-tree.h (struct cp_language_function): Add returns_abnormally.
        (current_function_returns_abnormally): New macro.
        * call.c (build_call): Set it.

From-SVN: r49407
2002-02-01 14:32:51 -05:00
Zack Weinberg
c588e52b27 typeck2.c (friendly_abort): Delete definition.
* typeck2.c (friendly_abort): Delete definition.
	* cp-tree.h (friendly_abort): Don't prototype.
	(my_friendly_assert): Use fancy_abort.

From-SVN: r49152
2002-01-23 19:41:15 +00:00
Craig Rodrigues
d55ecaa4f6 cp-tree.h (my_friendly_abort): Remove.
2002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>

        * cp-tree.h (my_friendly_abort): Remove.

From-SVN: r49149
2002-01-23 19:07:26 +00:00
Jakub Jelinek
0a01c261ff spew.c (pending_inlines, [...]): Make static.
* spew.c (pending_inlines, pending_inlines_tail,
	processing_these_inlines): Make static.
	(mark_pending_inlines): Remove static.
	(begin_parsing_inclass_inline): If in function, save pi
	for GC to cp_function_chain->unparsed_inlines instead.
	(process_next_inline): Likewise.
	* cp-tree.h (struct cp_language_function): Add unparsed_inlines.
	(mark_pending_inlines): Add prototype.
	* decl.c (spew_debug): Remove unused extern.
	(mark_lang_function): Call mark_pending_inlines.

	* g++.dg/other/gc1.C: New test.

From-SVN: r49147
2002-01-23 19:52:08 +01:00
Jason Merrill
cdd2559cec decl.c (begin_constructor_body, [...]): New fns.
* decl.c (begin_constructor_body, begin_destructor_body): New fns.
        (begin_function_body): Call them and keep_next_level.
        * init.c (emit_base_init): Call keep_next_level.
        * semantics.c (setup_vtbl_ptr): Lose.
        * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
        (vtbls_set_up_p): Lose.
        * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
        * method.c (do_build_copy_constructor): Likewise.
        (synthesize_method): Call finish_mem_initializers.
        * parse.y (nodecls): Likewise.

From-SVN: r48948
2002-01-17 08:07:27 -05:00
Jason Merrill
ad6b1795b1 error.c (dump_type_suffix): Print the exception specs before recursing.
* error.c (dump_type_suffix): Print the exception specs before
        recursing.
        (dump_function_decl): Here, too.

        * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.

From-SVN: r48947
2002-01-17 07:54:36 -05:00
Ira Ruben
e23bd2185f Added __attribute__((deprecated)) patches.
From-SVN: r48743
2002-01-10 18:51:24 +00:00
Graham Stott
98e40e8363 cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
        (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
        (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
        (RECORD_OR_UNION_TYPE_CHECK): Likewise.
        (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
        (C_IS_RESERVED_WORD): Uppercase macro parameter.
        (C_RID_YYCODE) Likewise.
        (ptrmem_cst): Use rtx.
        (LOCAL_BINDING_P): Add whitespace.
        (INHERITED_VALUE_BINDING_P): Likewise.
        (BINDING_SCOPE): Wrap long line.
        (BINDING_HAS_LEVEL_P): Remove parenthesis.
        (BINDING_VALUE): Wrap long line.
        (BINDING_TYPE): Whitespace.
        (IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
        (SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
        (IDENTIFIER_NAMESPACE_VALUE): Likewise.
        (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
        (same_type_p): Uppercase macro parameters.
        (same_type_ignoring_top_level_qualifiers_p): Likewise.
        (OVL_FUNCTION): Wrap long line.
        (OVL_CHAIN): Whitespace.
        (OVL_CURRENT): Add paranthesis and whitespace.
        (OVL_NEXT): Whitespace.
        (OVL_USED): Likewise.
        (IDENTIFIER_TYPE_VALUE): Likewise.
        (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
        (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
        (LANG_ID_FIELD): Whitespace.
        (SET_LANG_ID(NODE,VALUE,NAME): Likewise.
        (IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
        (SET_IDENTIFIER_LABEL_VALUE): Whitespace.
        (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
        (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
        (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
        (SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
        (IDENTIFIER_VIRTUAL_P): Likewise.
        (IDENTIFIER_OPNAME_P): Likewise.
        (IDENTIFIER_TYPENAME_P): Remove parenthesis.
        (C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
        (C_SET_EXP_ORIGINAL_CODE): Likewise.
        (TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
        (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
        (IS_AGGR_TYPE): Uppercase macro parameter.
        (CLASS_TYPE_P): Likewise.
        (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
        (IS_AGGR_TYPE_2): Whitespace.
        (TAGGED_TYPE_P): Uppercase macro parameter.
        (TYPE_BUILT_IN): Whitespace.
        (TYPE_FOR_JAVA): Likewise.
        (FUNCTION_ARG_CHAIN): Remove parenthesis.
        (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
        (FUNCTION_FIRST_USER_PARAM): Likewise.
        (PROMOTES_TO_AGGR_TYPE): Whitespace.
        (DERIVED_FROM_P): Add parenthesis and wrap.
        (UNIQUELY_DERIVED_FROM_P): Likewise.
        (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
        (PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
        (CLASSTYPE_USE_TEMPLATE): Whitespace.
        (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
        (TYPE_GETS_DELETE): Add parenthesis.
        (TYPE_HAS_CONVERSION): Add parenthesis and wrap.
        (TYPE_HAS_ASSIGN_REF): Likewise,
        (TYPE_HAS_CONST_ASSIGN_REF): Likewise.
        (TYPE_HAS_INIT_REF): Likewise.
        (TYPE_HAS_CONST_INIT_REF): Likewise.
        (TYPE_BEING_DEFINED): Likewise.
        (TYPE_LANG_SPECIFIC): Likewise.
        (CLASSTYPE_RTTI): Likewise.
        (TYPE_OVERLOADS_CALL_EXPR): Likewise.
        (TYPE_OVERLOADS_ARRAY_REF): Likewise.
        (TYPE_OVERLOADS_ARROW): Likewise.
        (TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
        (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
        (CLASSTYPE_METHOD_VEC): Likewise.
        (CLASSTYPE_MARKED_N): Likewise.
        (CLASSTYPE_MARKED): Likewise.
        (CLASSTYPE_MARKED2): Likewise.
        (CLASSTYPE_MARKED3): Likewise.
        (CLASSTYPE_MARKED4): Likewise.
        (CLASSTYPE_MARKED5): Likewise.
        (CLASSTYPE_MARKED6): Likewise.
        (SET_CLASSTYPE_MARKED): Whitespace.
        (CLEAR_CLASSTYPE_MARKED): Likewise.
        (SET_CLASSTYPE_MARKED2): Likewise.
        (CLEAR_CLASSTYPE_MARKED2): Likewise.
        (SET_CLASSTYPE_MARKED3): Likewise.
        (CLEAR_CLASSTYPE_MARKED3): Likewise.
        (SET_CLASSTYPE_MARKED4): Likewise.
        (CLEAR_CLASSTYPE_MARKED4): Likewise.
        (SET_CLASSTYPE_MARKED5): Likewise.
        (CLEAR_CLASSTYPE_MARKED5): Likewise.
        (SET_CLASSTYPE_MARKED6): Likewise.
        (CLEAR_CLASSTYPE_MARKED6): Likewise.
        (CLASSTYPE_TAGS): Likewise.
        (CLASSTYPE_VSIZE): Likewise.
        (CLASSTYPE_VBASECLASSES): Likewise.
        (CANONICAL_BINFO): Add parenthesis.
        (CLASSTYPE_SIZE(NODE): Likewise.
        (CLASSTYPE_SIZE_UNIT): Likewise.
        (CLASSTYPE_ALIGN(NODE): Likewise.
        (CLASSTYPE_USER_ALIGN): Likewise.
        (TYPE_JAVA_INTERFACE): Likewise.
        (CLASSTYPE_PURE_VIRTUALS): Likewise.
        (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
        (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
        (CLASSTYPE_HAS_MUTABLE): Likewise.
        (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
        (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
        (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
        (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
        (CLASSTYPE_INTERFACE_ONLY): Likewise.
        (CLASSTYPE_INTERFACE_KNOWN): Likewise.
        (CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
        (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
        (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
        (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
        (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
        (BINFO_UNSHARED_MARKED): Whitespace.
        (BINFO_MARKED): Whitespace and wrap.
        (SET_BINFO_MARKED): Likewise.
        (CLEAR_BINFO_MARKED): Likewise.
        (BINFO_VTABLE_PATH_MARKED): Likewise.
        (SET_BINFO_VTABLE_PATH_MARKED): Likewise.
        (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
        (BINFO_SUBVTT_INDEX): Remove parenthesis.
        (BINFO_VPTR_INDEX): Likewise.
        (BINFO_PRIMARY_BASE_OF): Likewise,
        (CLASSTYPE_VFIELDS): Whitespace.
        (VF_DERIVED_VALUE): Wrap long line.
        (NAMESPACE_LEVEL): Whitespace.
        (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
        (DEFARG_POINTER): Whitespace.
        (DECL_NEEDED_P): Remove parenthesis.
        (DECL_LANGUAGE): Whitespace.
        (SET_DECL_LANGUAGE): Add parenthesis.
        (DECL_CONSTRUCTOR_P): Whitespace and wrap.
        (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
        (DECL_IN_AGGR_P): Whitespace.
        (DECL_FRIEND_P): Likewise.
        (DECL_BEFRIENDING_CLASSES): Likewise.
        (DECL_STATIC_FUNCTION_P): Whitespace and wrap.
        (DECL_NONCONVERTING_P): Whitespace.
        (DECL_PURE_VIRTUAL_P): Likewise.
        (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
        (DECL_PENDING_INLINE_INFO): Whitespace.
        (DECL_SORTED_FIELDS): Likewise.
        (DECL_DEFERRED_FN): Likewise.
        (DECL_TEMPLATE_INFO): Likewise.
        (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
        (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
        (SET_TYPE_TEMPLATE_INFO): Add parenthesis.
        (TMPL_ARGS_LEVEL): Likewise.
        (SET_TMPL_ARGS_LEVEL): Likewise.
        (INNERMOST_TEMPLATE_PARMS): Whitespace.
        (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
        (INTEGRAL_CODE_P(CODE): Add parenthesis.
        (CP_INTEGRAL_TYPE_P): Remove parenthesis.
        (TYPE_HAS_CONSTRUCTOR): Whitespace.
        (TREE_HAS_CONSTRUCTOR): Likewise.
        (TYPE_HAS_DESTRUCTOR): Likewise.
        (TYPE_HAS_REAL_ASSIGN_REF): Likewise.
        (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
        (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
        (TYPE_HAS_COMPLEX_INIT_REF): Likewise.
        (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
        (TYPE_PTRMEMFUNC_P): Likewise.
        (TYPE_PTRMEMFUNC_FLAG): Likewise.
        (TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
        (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
        (TYPE_PTRMEM_CLASS_TYPE): Remove paranthesis.
        (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
        (DECL_ACCESS): Whitespace.
        (DECL_GLOBAL_CTOR_P): Remove paranthesis.
        (DECL_GLOBAL_DTOR_P): Likewise.
        (GLOBAL_INIT_PRIORITY): Likewise.
        (DECL_TEMPLATE_PARMS): Likewise.
        (DECL_TEMPLATE_RESULT): Likewise.
        (DECL_TEMPLATE_INSTANTIATIONS): Likewise.
        (DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
        (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
        (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
        (PRIMARY_TEMPLATE_P): Add parenthesis.
        (DECL_USE_TEMPLATE): Whitespace.
        (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
        (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
        (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
        (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
        (CALL_DECLARATOR_PARMS): Remove parenthesis.
        (CALL_DECLARATOR_QUALS): Likewise.
        (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
        (TEMP_NAME_P): Wrap.
        (VFIELD_NAME_P): Likewise.
        (B_SET): Uppercase macro parameters and add parenthesis.
        (B_CLR): Likewise.
        (B_TST): Likewise.
        (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
        (LOOKUP_TYPES_ONLY): Uppercase macro parameters.
        (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
        (same_or_base_type_p): Likewise.
        (cp_deprecated): Likewise.

From-SVN: r48573
2002-01-06 05:24:03 +00:00
Nathan Sidwell
833aa4c414 re PR c++/35 (template operator () lookup fails)
cp:
	PR c++/35
	* cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
	(DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
	* pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
	PARM_DECL.
	(tsubst_template_parms): Break up loop statements.
	(tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
	parm PARM_DECLs don't get promoted.
testsuite:
	* g++.dg/template/ntp.C: New test.

From-SVN: r48470
2002-01-02 12:50:11 +00:00
Nathan Sidwell
d46a33b322 re PR c++/775 (2.97 error declaring nested class a friend)
cp:
	PR c++/775
	* cp-tree.h (handle_class_head): Adjust prototype.
	* decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
	parameters. Use for all class heads.
	* parse.y (named_class_head_sans_basetype, named_class_head,
	named_complex_class_head_sans_basetype,
	named_class_head_sans_basetype_defn,
	unnamed_class_head): Remove.
	(class_head, class_head_apparent_template): Recognize class heads
	(class_head_decl, class_head_defn): New reductions. Process class
	heads.
	(structsp): Adjust class definition and class declaration
	reductions.
	(maybe_base_class_list): Give diagnostic on empty list.
testsuite:
	* g++.dg/template/friend2.C: New test.
	* g++.old-deja/g++/brendan/crash8.C: Adjust location of error.

From-SVN: r48466
2002-01-02 11:37:00 +00:00
Zack Weinberg
33bd39a26a cp-tree.h: Delete #defines for cp_error, cp_warning, cp_pedwarn, and cp_compiler_error.
* cp-tree.h: Delete #defines for cp_error, cp_warning,
	cp_pedwarn, and cp_compiler_error.
	* call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
	except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
	rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
	typeck2.c: Change calls to the above macros to use their
	language-independent equivalents: error, warning, pedwarn, and
	internal_error respectively.

From-SVN: r48140
2001-12-18 03:35:42 +00:00
Joseph Myers
aba649ba4d ChangeLog.1, [...]: Fix spelling errors.
* ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
	cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
	pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.

From-SVN: r48072
2001-12-16 16:07:01 +00:00
Jason Merrill
ade3dc07d5 c-common.h (COMPOUND_STMT_BODY_BLOCK): New macro.
* c-common.h (COMPOUND_STMT_BODY_BLOCK): New macro.

        * Make-lang.in (parse.h): Separate rule, just depend on parse.c.

        Use cleanups to run base and member destructors.
        * init.c (push_base_cleanups): New function, split out from...
        (build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
        * decl.c (finish_destructor_body): Move vbase destruction code to
        push_base_cleanups.
        (begin_function_body, finish_function_body): New fns.
        (finish_function): Move [cd]tor handling and call_poplevel to
        finish_function_body.
        (pushdecl): Skip the new level.
        * semantics.c (genrtl_try_block): Don't call end_protect_partials.
        (setup_vtbl_ptr): Call push_base_cleanups.
        * method.c (synthesize_method): Call {begin,end}_function_body.
        * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
        * cp-tree.h: Declare new fns.
        * parse.y (function_body, .begin_function_body): New nonterminals.
        (fndef, pending_inline, function_try_block): Use function_body.
        (ctor_initializer_opt, function_try_block): No longer has a value.
        (base_init): Remove .set_base_init token.
        (.set_base_init, compstmt_or_error): Remove.
        * Make-lang.in (parse.c): Expect two fewer s/r conflicts.

From-SVN: r47987
2001-12-13 22:01:59 -05:00
Jason Merrill
a0de9d2025 decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
* decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
        * semantics.c (genrtl_start_function): Don't pass
        parms_have_cleanups or push an extra binding level.
        (genrtl_finish_function): Lose cleanup_label cruft.

        * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
        (ctor_label): Remove.
        * semantics.c (finish_return_stmt): Lose ctor_label support.
        * decl.c (finish_constructor_body, mark_lang_function): Likewise.
        * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
        dtor_label.

        * call.c (build_new_method_call): Let resolves_to_fixed_type_p
        check for [cd]tors.
        * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.

        * decl.c (finish_function): Check VMS_TARGET, not VMS.

        * decl.c (start_cleanup_fn): Remove redundant pushlevel.
        (end_cleanup_fn): And poplevel.

        * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
        if we're in a template.

From-SVN: r47962
2001-12-12 20:37:52 -05:00
Jakub Jelinek
dc5c569ae3 cp-tree.h (DESTRUCTOR_DECL_PREFIX, [...]): Delete.
* cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
	ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
	THIS_NAME_P): Delete.
	* spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
	THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
	with internal naming scheme.
	* error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.

From-SVN: r47936
2001-12-12 14:34:44 +01:00
Nathan Sidwell
271e6f02a1 re PR c++/87 (member template assignment operator)
cp:
	PR g++/87
	* cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
	(copy_args_p): Rename to ...
	(copy_fn_p): ... here.
	(grok_special_member_properties): New function.
	(grok_op_properties): Lose VIRTUALP parameter.
	(copy_assignment_arg_p): Remove.
	* call.c (build_over_call): Use copy_fn_p.
	* decl.c (grokfndecl): Reformat. Adjust call to
	grok_op_properties.
	(copy_args_p): Rename to ...
	(copy_fn_p): ... here. Reject template functions. Check for pass
	by value.
	(grok_special_member_properties): Remember special functions.
	(grok_ctor_properties): Don't remember them here, just check.
	(grok_op_properties): Likewise.
	(start_method): Call grok_special_member_properties.
	* decl2.c (grokfield): Likewise.
	(copy_assignment_arg_p): Remove.
	(grok_function_init): Don't remember abstract assignment here.
	* pt.c (instantiate_class_template): Call
	grok_special_member_properties.
	(tsubst_decl): Adjust grok_op_properties call.
testsuite:
	* g++.dg/other/copy1.C: New test.

From-SVN: r47813
2001-12-09 16:33:44 +00:00
John David Anglin
46af705afa semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in call to build_aggr_init.
* semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
	call to build_aggr_init.
	* cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.

From-SVN: r47793
2001-12-08 15:44:23 +00:00
Jason Merrill
742a37d529 langhooks.h (struct lang_hooks_for_tree_inlining): Add start_inlining, end_inlining.
* langhooks.h (struct lang_hooks_for_tree_inlining): Add
        start_inlining, end_inlining.
        * tree-inline.c (expand_call_inline): Call them.
        * langhooks-def.h (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
        (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
        (LANG_HOOKS_TREE_INLINING_INITIALIZER): Add them.
        * langhooks.c (lhd_tree_inlining_start_inlining): New fn.
        (lhd_tree_inlining_end_inlining): New fn.

        * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
        (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
        * tree.c (cp_start_inlining, cp_end_inlining): New fns.
        * pt.c (push_tinst_level): No longer static.
        * cp-tree.h: Declare them.

        * init.c (resolve_offset_ref): Don't check access for the base
        conversion to access a FIELD_DECL.

        * cp-tree.h (TYPE_REFFN_P): New macro.
        * decl.c (bad_specifiers): Check it, too.

        * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
        on the __*_type_info type if we haven't seen a definition.

From-SVN: r47703
2001-12-05 18:48:19 -05:00
Mark Mitchell
998979e6dc re PR c++/3048 (Lookup problem (gcc 2.95 regression))
2001-11-29  Mark Mitchell  <mark@codesourcery.com>

	PR c++/3048
	* cp-tree.h (ovl_member): Remove.
	* decl2.c (merge_functions): Handle extern "C" functions
	specially.
	* tree.c (ovl_member): Remove.

From-SVN: r47474
2001-11-30 03:14:56 +00:00
Nathan Sidwell
2db1ab2d04 cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
cp:
	* cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
	(ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
	(PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
	(DERIVED_FROM_P): Likewise.
	(enum base_access): Renumber, add ba_quiet bit mask.
	(get_binfo): Remove.
	(get_base_distance): Remove.
	(binfo_value): Remove.
	(ACCESSIBLY_DERIVED_FROM_P): Remove.
	* call.c (standard_conversion): Use lookup_base.
	* class.c (strictly_overrides): Likewise.
	(layout_virtual_bases): Likewise.
	(warn_about_ambiguous_direct_bases): Likewise.
	(is_base_of_enclosing_class): Likewise.
	(add_vcall_offset_vtbl_entries_1): Likewise.
	* cvt.c (build_up_reference): Adjust comment.
	* init.c (build_member_call): Reformat.
	* search.c (get_binfo): Remove.
	(get_base_distance_recursive): Remove.
	(get_base_distance): Remove.
	(lookup_base_r): Tweak.
	(lookup_base): Add ba_quiet control. Complete the types here.
	(covariant_return_p): Use lookup_base.
	* tree.c (binfo_value): Remove.
	(maybe_dummy_object): Use lookup_base.
	* typeck.c (build_static_cast): Use lookup_base.
	(get_delta_difference): Likewise.
	* typeck2.c (binfo_or_else): Use lookup_base.
	(build_scoped_ref): Add back error_mark_check.
	(build_m_component_ref): Use lookup_base.

From-SVN: r47444
2001-11-29 17:15:56 +00:00
Nathan Sidwell
338d90b89f re PR c++/3145 (virtual inheritance still creates wrong code)
cp:
	PR g++/3145
	* class.c (build_vbase_pointer): Remove.
	(build_vbase_path): Remove.
	(build_base_path): New function.
	* cp-tree.h (base_access, base_kind): New enumerations.
	(build_base_path): Declare.
	(convert_pointer_to_real): Remove.
	(convert_pointer_to): Remove.
	(lookup_base): Declare.
	(convert_pointer_to_vbase): Remove.
	* call.c (build_scoped_method_call): Use lookup_base &
	build_base_path instead of convert_pointer_to_real,
	get_base_distance & get_binfo.
	(build_over_call): Likewise.
	* cvt.c (cp_convert_to_pointer): Likewise.
	(convert_to_pointer_force): Likewise.
	(build_up_reference): Likewise.
	(convert_pointer_to_real): Remove.
	(convert_pointer_to): Remove.
	* init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
	instead of convert_pointer_to_vbase & build_vbase_path.
	(emit_base_init): Use build_base_path instead of
	convert_pointer_to_real.
	(expand_virtual_init): Lose unrequired conversions.
	(resolve_offset_ref): Use lookup_base and build_base_path
	instead of convert_pointer_to.
	* rtti.c (build_dynamic_cast_1): Use lookup_base &
	build_base_path instead of get_base_distance & build_vbase_path.
	* search.c (get_vbase_1): Remove.
	(get_vbase): Remove.
	(convert_pointer_to_vbase): Remove.
	(lookup_base_recursive): New function.
	(lookup_base): New function.
	* typeck.c (require_complete_type): Use lookup_base &
	build_base_path instead of convert_pointer_to.
	(build_component_ref): Likewise.
	(build_x_function_call): Likewise.
	(get_member_function_from_ptrfunc): Likewise.
	(build_component_addr): Likewise.
	* typeck2.c (build_scoped_ref): Likewise.
testsuite:
	* g++.dg/abi/vbase8-4.C: New test.

From-SVN: r47316
2001-11-25 13:21:45 +00:00
Bryce McKinlay
89d684bba3 tree-dump.c: Rename from c-dump.c.
* tree-dump.c: Rename from c-dump.c. Include c-tree.h, not c-common.h.
	(lang_type_quals): Declare.
	(dequeue_and_dump): Use lang_hooks.tree_dump.type_quals function to
	retrieve language-specific qualifiers for a type node, instead of
	C_TYPE_QUALS. Likewise for lang_hooks.tree_dump.dump_tree instead of
	lang_dump_tree.
	* tree-dump.h: Rename from c-dump.h.
	* c-common.h (C_TYPE_QUALS): Removed.
	Move declarations for tree-dump.c interface to...
	* tree.h: ... here. Remove lang_dump_tree.
	* langhooks.h (struct lang_hooks_for_tree_dump): New.
	(struct lang_hooks): Add tree_dump hooks.
	* langhooks.c (lhd_tree_dump_dump_tree): New function.
	(lhd_tree_dump_type_quals): New function.
	* langhooks-def.h (lhd_tree_dump_dump_tree, lhd_tree_dump_type_quals):
	Declare.
	(LANG_HOOKS_INITIALIZER): Add tree_dump hooks.
	* Makefile.in: Move tree-dump.o to language-independent back-end.

cp:
	* cp-tree.h (CP_TYPE_QUALS): Removed.
	* decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
	* cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
	LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
	* dump.c (cp_dump_tree): Use void* dump_info argument to match
	lang-hooks prototype.
	* call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
	rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
	CP_TYPE_QUALS changed to cp_type_quals.
	* Make-lang.in: References to c-dump.h changed to tree-dump.h.
	(CXX_C_OBJS): Remove c-dump.o.

From-SVN: r47257
2001-11-22 02:33:02 +00:00
Neil Booth
08f3a861a0 * cp-tree.h (print_class_statistics): Restore.
From-SVN: r47094
2001-11-16 19:17:32 +00:00
Neil Booth
f5e99456f1 c-common.c: Include c-lex.h.
* c-common.c: Include c-lex.h.
	(c_common_lang_init): Change prototype.  Call init_c_lex and
	init_pragma from here.
	* c-common.h (c_common_lang_init): Change prototype.
	* c-decl.c (init_decl_processing): Rename.  Call c_parse_init.
	* c-lang.c (c_init): Change prototype.  Update.
	(c_init_options): Update.
	* c-lex.c (cpp_filename): Remove.
	(init_c_lex): Update.  Read the main file, and get the original
	file name.
	(yyparse): Finish the command line options.
	* c-parse.in (c_parse_init): Call init_reswords here.
	(init_parse): Remove.
	* c-tree.h (c_init_decl_processing): New.
	* cpphash.c (_cpp_init_hashtable): After initializing the hash
	table, populate it.
	* cppinit.c (read_original_filename, cpp_finish_options): New.
	(cpp_create_reader): New prototype. Defer hash table initialization.
	(cpp_start_read): Rename cpp_read_main_file.  Initialize the
	hash table.  Get the original filename.
	* cpplib.h (cpp_create_reader): Update.
	(cpp_start_read): Remove.
	(cpp_read_main_file, cpp_finish_options): New.
	* cppmain.c (main, do_preprocessing): Update.
	* langhooks.h (struct langhooks): Update init prototype.
	* toplev.c (general_init, parse_options_and_default_flags,
	process_options, lang_indpendent_init, lang_dependent_init,
	init_asm_output): New; perform the bulk of initialization.
	(compile_file): Move most of initialization to above functions.
	(debug_hooks): Initialize statically.
	(set_Wunused): Relocate.
	(toplev_main): Move most of initialization to other init functions.
	Have a clear logic flow.
	* tree.h (init_parse, init_decl_processing): Remove.
ada:
	* misc.c (gnat_init): Change prototype.  Include the
	functionality of the old init_parse and init_decl_processing.
	(gnat_init_decl_processing): New prototype.
	(init_parse): Remove.
	* utils.c (init_decl_processing): Rename gnat_init_decl_processing.
cp:	* cp-tree.h (init_reswords, cxx_init_decl_processing): New.
	(cxx_init): Update prototype.
	* decl.c (init_decl_processing): Rename.  Move null node init
	to its creation time.
	* lex.c (cxx_init_options): Update.
	(cxx_init): Combine with old init_parse; also call
	cxx_init_decl_processing.
f:	* com.c (ffecom_init_decl_processing): Renamed from
	init_decl_processing.
	(init_parse): Move contents to ffe_init.
	(ffe_init): Update prototype.
java:	* decl.c (init_decl_processing): Rename java_init_decl_processing.
	* java-tree.h: New prototype.
	* lang.c (java_init): Update prototype.  Combine with old init_parse.
objc:	* objc-act.c (objc_init): Update prototype, combine with old
	init_parse.
	(objc_init_options): Update.

From-SVN: r47046
2001-11-15 10:01:10 +00:00
Neil Booth
5d69f816bc Makefile.in: Update.
* Makefile.in: Update.
	* c-decl.c (print_lang_decl, print_lang_type): Remove.
	(print_lang_identifier): Rename c_print_identifier.
	* c-lang.c (LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New.
	(print_lang_statistics, lang_print_xnode): Remove.
	* c-parse.in (set_yydebug): Rename c_set_yydebug.
	* c-tree.h (c_set_yydebug, c_print_identifier): New.
	* langhooks-def.h (lhd_print_tree_nothing, lhd_set_yydebug): New.
	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
	LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New members.
	(lang_print_tree_hook): New.
	* langhooks.c (lhd_print_tree_nothing, lhd_set_yydebug): New.
	* print-tree.c: Include langhooks.h.
	(print_node): Update.
	* toplev.c (decode_d_option): Update.
	* tree.c: Include langhooks.h.
	(dump_tree_statistics): Update.
	* tree.h (print_lang_statistics, print_lang_decl, print_lang_type,
	print_lang_identifier, set_yydebug, lang_print_xnode): Remove.
ada:
	* misc.c (gnat_print_decl, gnat_print_type): Renamed.
	(LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
	(print_lang_statistics, lang_print_xnode, print_lang_identifier,
	set_yydebug): Remove.
cp:
	* cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
	LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
	LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
	* cp-tree.h (print_class_statistics): Remove.
	(cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
	cxx_print_identifier, cxx_set_yydebug): New.
	* lex.c (set_yydebug): Rename c_set_yydebug.
	* ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
	lang_print_xnode): Rename.
	* tree.c (print_lang_statistics): Rename.
f:
	* com.c (ffe_print_identifier): Rename.
	(LANG_HOOKS_PRINT_IDENTIFIER): Override.
	(lang_print_xnode, print_lang_decl, print_lang_statistics,
	print_lang_type, set_yydebug): Remove.
java:
	* java-tree.h (java_set_yydebug): New.
	* jcf-parse.c (set_yydebug): Rename java_set_yydebug.
	* lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
	(print_lang_decl, print_lang_type, print_lang_identifier,
	print_lang_statistics, lang_print_xnode): Remove.
objc:
	* objc-act.c (LANG_HOOKS_PRINT_IDENTIFIER,
	LANG_HOOKS_SET_YYDEBUG): Override.
	(lang_print_xnode, print_lang_statistics): Remove.

From-SVN: r46907
2001-11-09 23:30:44 +00:00
Kriang Lerdsuwanakij
b8c6534b88 cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
* cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
	* cp-tree.h (make_unbound_class_template): Prototype new function.
	* decl.c (make_unbound_class_template): New function.
	* decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
	* error.c (dump_type): Likewise.
	* mangle.c (write_type): Likewise.
	* parse.y (template_parm): Likewise.
	(template_argument): Use make_unbound_class_template.
	* pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
	(tsubst): Likewise.
	(tsubst_copy): Likewise.
	(unify): Likewise.
	* tree.c (walk_tree): Likewise.
	* typeck.c (comptypes): Likewise.

From-SVN: r46430
2001-10-23 09:14:15 +00:00
H.J. Lu
b5823a4422 cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined for tree checking disabled.
* cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
        for tree checking disabled.

From-SVN: r46302
2001-10-16 18:00:40 -07:00
Hans-Peter Nilsson
dc8ad2989f cp-tree.h (VFIELD_NAME_FORMAT): Adjust to match VFIELD_NAME.
* cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
	NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.

From-SVN: r46293
2001-10-16 21:19:34 +00:00
Kriang Lerdsuwanakij
11e74ea6c6 cp-tree.h (TYPE_BINFO): Update comment.
* cp-tree.h (TYPE_BINFO): Update comment.
	(BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
	(TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
	(copy_type): Prototype new function.
	* lex.c (copy_lang_decl): Gather tree node statistics.
	(copy_lang_type): New function.
	(copy_type): Likewise.
	(cp_make_lang_type): Create lang_type for
	BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
	and BOUND_TEMPLATE_TEMPLATE_PARM.
	* pt.c (tsubst): Use copy_type instead of copy_node.
	* search.c (lookup_field_1): Ignore TYPENAME_TYPE.

From-SVN: r46244
2001-10-13 13:24:34 +00:00
Jason Merrill
72a08131a5 call.c (standard_conversion): Add bad conversion between integers and pointers.
* call.c (standard_conversion): Add bad conversion between
        integers and pointers.
        (convert_like_real): Don't use convert_for_initialization for bad
        conversions; complain here and use cp_convert.
        (build_over_call): Don't handle bad conversions specially.
        (perform_implicit_conversion): Allow bad conversions.
        (can_convert_arg_bad): New fn.
        * cp-tree.h: Declare it.
        * typeck.c (convert_for_assignment): Use it.
        (ptr_reasonably_similar): Any target type is similar to void.

From-SVN: r46123
2001-10-09 11:42:44 -04:00
Alexandre Oliva
19551f2985 Make-lang.in (CXX_OBJS): Added cp-lang.o.
* Make-lang.in (CXX_OBJS): Added cp-lang.o.
(cp/cp-lang.o): New rule.
* cp-tree.h: Declare hooks.
* tree.c: Make hooks non-static.
(init_tree): Don't initialize hooks here.
* lex.c: Likewise.  Move definition of lang_hooks to...
* cp-lang.c: ... new file.

From-SVN: r46095
2001-10-08 20:53:41 +00:00
Richard Henderson
31ed8fea3d c-common.h (struct c_lang_decl): Add declared_inline.
* c-common.h (struct c_lang_decl): Add declared_inline.
        * c-tree.h (DECL_DECLARED_INLINE_P): New.
        * c-lang.c (c_disregard_inline_limits): Use it.
        * c-decl.c (duplicate_decls): Likewise.
        (pushdecl, redeclaration_error_message): Likewise.
        (pushdecl): Allocate DECL_LANG_SPECIFIC if needed.
        (grokdeclarator): Likewise.  Set DECL_DECLARED_INLINE_P.
        Set DECL_INLINE if -finline-functions.
        (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here.

        * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
        (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.

From-SVN: r46079
2001-10-08 09:37:06 -07:00
Alexandre Oliva
25af851255 Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
* Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
(cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
* cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
(TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
(flag_inline_trees): Moved declaration to ../tree-inline.h.
(walk_tree): Moved declaration to ../tree-inline.h.
(walk_tree_without_duplicates, copy_tree_r): Likewise.
(remap_save_expr): Likewise.
* decl.c: Include tree-inline.h.
(lang_mark_tree): Don't mark inlined_fns.
* decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
* optimize.c: Include tree-inline.h.
(optimize_inline_calls): Move declaration to ../tree.h, as
non-static.
(remap_decl): Use language-independent constructs and hooks.
(remap_block, copy_body_r, declare_return_variable): Likewise.
(inlinable_function_p): Likewise.  Don't test for
DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
no longer language-specific.
(optimize_inline_calls): Likewise.  Make it non-static.  Moved
call of dump_function to...
(optimize_function): Here...
(clone_body): New function, extracted from...
(maybe_clone_body): ... here.  Build decl_map locally and pass
it on to clone_body.
* pt.c, semantics.c: Include tree-inline.h.
* tree.c: Likewise.
(cp_walk_subtrees): New language-specific hook for tree inlining.
(cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
cp_is_overload_p, cp_auto_var_in_fn_p,
cp_copy_res_decl_for_inlining): Likewise.
(walk_tree): Move language-specific constructs into...
(cp_walk_subtrees): this new function.
(copy_tree_r): Use language-independent constructs and hooks.
(init_tree): Initialize tree inlining hooks.
(remap_save_expr): Adjust prototype so that the declaration
does not require the definition of splay_tree.

From-SVN: r46020
2001-10-05 02:48:47 +00:00
Jason Merrill
0caee1c69f spew.c (end_input): No longer static.
* spew.c (end_input): No longer static.
        * cp-tree.h: Declare it.
        * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.

From-SVN: r45962
2001-10-02 11:43:44 -04:00
Zack Weinberg
749ced524c top level:
* errors.h (warning, error, fatal, internal_error): Don't mark
	with ATTRIBUTE_PRINTF_n.
	* toplev.h (internal_error, fatal_io_error, warning, error,
	pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
	error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
	Likewise.
cp:
	* Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
	(cp/errfn.o): Delete rule.
	(cp/error.o): Depend on flags.h.
	* errfn.c: Delete file.
	* cp-tree.h: Declare warn_deprecated.  Remove definitions of
	TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
	and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
	cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
	internal_error respectively.  Make cp_deprecated into a macro.
	Don't define cp_printer typedef or declare cp_printers.
	* error.c: Include flags.h.
	Delete: struct tree_formatting_info, print_function_argument_list,
	print_declaration, print_expression, print_function_declaration,
	print_function_parameter, print_type_id, print_cv_qualifier_seq,
	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, and definition of cp_printers.
	(locate_error): New function.
	(cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
	rewritten in terms of locate_error and diagnostic.c.
	(cp_tree_printer): Rename cp_printer; wire up to *_to_string
	instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
	(init_error): Adjust to match.
po:
	* POTFILES.in: Remove cp/errfn.c.

From-SVN: r45765
2001-09-24 00:27:33 +00:00
Richard Henderson
6723181663 tree.def (FDESC_EXPR): New.
gcc/
        * tree.def (FDESC_EXPR): New.
        * expr.c (expand_expr): Handle it.
        * varasm.c (initializer_constant_valid_p): Likewise.
        (output_constant): Likewise.
        * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
        * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
        (ASM_OUTPUT_FDESC): New.
        * doc/tm.texi: Document the new macros.
gcc/cp/
        * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
        (build_vtbl_initializer): Likewise.
        (build_vfn_ref): New.
        * cp-tree.h: Declare it.
        * call.c (build_over_call): Use it.
        * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
        * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
gcc/java/
        * class.c (get_dispatch_table): Handle function descriptors.
        (build_dtable_decl): Likewise.
        * expr.c (build_invokevirtual): Likewise.
gcc/testsuite/
        * g++.old-deja/g++.abi/ptrmem.C: Update for ia64 c++ abi.
        * g++.old-deja/g++.abi/vtable2.C: Likewise.

From-SVN: r45733
2001-09-21 09:58:22 -07:00
Joseph Myers
91d231cb91 Table-driven attributes.
* c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
	config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
	config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
	config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
	config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
	config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
	doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
	tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
	* tree.h (struct tree_decl): Change machine_attributes to
	attributes.
	* doc/c-tree.texi: Document that all attributes are now attached
	to decls and types.
	* c-common.c (add_attribute, attrtab, attrtab_idx,
	default_valid_lang_attribute, valid_lang_attribute): Remove.
	(attribute_tables, attributes_initialized,
	c_common_attribute_table, default_lang_attribute_table): New
	variables.
	(handle_packed_attribute, handle_nocommon_attribute,
	handle_common_attribute, handle_noreturn_attribute,
	handle_unused_attribute, handle_const_attribute,
	handle_transparent_union_attribute, handle_constructor_attribute,
	handle_destructor_attribute, handle_mode_attribute,
	handle_section_attribute, handle_aligned_attribute,
	handle_weak_attribute, handle_alias_attribute,
	handle_no_instrument_function_attribute,
	handle_no_check_memory_usage_attribute, handle_malloc_attribute,
	handle_no_limit_stack_attribute, handle_pure_attribute): New
	functions.
	(init_attributes, decl_attributes): Rewrite to implement
	table-driven attributes.
	* c-common.h (enum attribute_flags): Move to tree.h.
	* c-format.c (decl_handle_format_attribute,
	decl_handle_format_arg_attribute): Rename to
	handle_format_attribute and handle_format_arg_attribute.  Update
	for table-driven attributes.
	* c-common.h (decl_handle_format_attribute,
	decl_handle_format_arg_attribute): Remove prototypes.
	(handle_format_attribute, handle_format_arg_attribute): Add
	prototypes.
	* c-decl.c (grokdeclarator): Handle attributes nested inside
	declarators.
	* c-parse.in (setattrs, maybe_setattrs): Remove.
	(maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
	Update to handle nested attributes properly.
	(maybe_resetattrs, after_type_declarator,
	parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
	absdcl1_ea, direct_absdcl1): Update to handle nested attributes
	properly.
	(make_pointer_declarator): Update to handle nested attributes
	properly.
	* doc/extend.texi: Update documentation of limits of attributes
	syntax.  Warn about problems with attribute semantics in C++.
	* target.h (struct target): Remove valid_decl_attribute and
	valid_type_attribute.  Add attribute_table and
	function_attribute_inlinable_p.
	* target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
	TARGET_VALID_TYPE_ATTRIBUTE): Remove.
	(TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
	Add.
	(TARGET_INITIALIZER): Update.
	* integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
	definition.
	(function_attribute_inlinable_p): New function.  Check for the
	presence of any machine attributes before using
	targetm.function_attribute_inlinable_p.
	(function_cannot_inline_p): Update.
	* Makefile.in (integrate.o): Update dependencies.
	* doc/tm.texi: Update documentation of target attributes and
	example definition of TARGET_VALID_TYPE_ATTRIBUTE.
	* tree.c (default_valid_attribute_p, valid_machine_attribute):
	Remove.
	(default_target_attribute_table,
	default_function_attribute_inlinable_p): New.
	(lookup_attribute): Update comment to clarify handling of multiple
	attributes with the same name.
	(merge_attributes, attribute_list_contained): Allow multiple
	attributes with the same name but different arguments to appear in
	the same attribute list.
	* tree.h (default_valid_attribute_p): Remove prototype.
	(struct attribute_spec): New.
	(default_target_attribute_table): Declare.
	(enum attribute_flags): Move from c-common.h.  Add
	ATTR_FLAG_TYPE_IN_PLACE.
	(default_function_attribute_inlinable_p): Declare.
	* config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(vms_attribute_table): New.
	* config/arc/arc.c (arc_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(arc_attribute_table, arc_handle_interrupt_attribute): New.
	* config/arm/arm.c (arm_valid_type_attribute_p,
	arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
	Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
	define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(arm_attribute_table, arm_handle_fndecl_attribute,
	arm_handle_isr_attribute): New.
	* config/avr/avr.c (avr_valid_type_attribute,
	avr_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
	define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(avr_attribute_table, avr_handle_progmem_attribute,
	avr_handle_fndecl_attribute): New.
	* config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(c4x_attribute_table, c4x_handle_fntype_attribute): New.
	* config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(h8300_attribute_table, h8300_handle_fndecl_attribute,
	h8300_handle_eightbit_data_attribute,
	h8300_handle_tiny_data_attribute): New.
	* config/i386/i386-protos.h (ix86_valid_type_attribute_p,
	i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
	Remove prototypes.
	(ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
	declarations.
	* config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
	define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(ix86_attribute_table, ix86_handle_cdecl_attribute,
	ix86_handle_regparm_attribute): New.
	* config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
	i386_pe_valid_type_attribute_p): Remove.
	(ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
	* config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(ia64_attribute_table): New.
	* config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
	interrupt_ident2, model_ident1, model_ident2): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(init_idents): Update.
	(m32r_attribute_table, m32r_handle_model_attribute): New.
	* config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
	Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
	* config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(mcore_attribute_table, mcore_handle_naked_attribute): New.
	* config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
	* config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
	* config/sh/sh.c (sh_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(sh_attribute_table, sh_handle_interrupt_handler_attribute,
	sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
	New.
	* config/stormy16/stormy16.c (stormy16_valid_type_attribute):
	Remove.
	(TARGET_VALID_TYPE_ATTRIBUTE): Don't define
	(TARGET_ATTRIBUTE_TABLE): Define.
	(stormy16_attribute_table, stormy16_handle_interrupt_attribute):
	New.
	* config/v850/v850.c (v850_valid_decl_attribute): Remove.
	(TARGET_VALID_DECL_ATTRIBUTE): Don't define.
	(TARGET_ATTRIBUTE_TABLE): Define.
	(v850_attribute_table, v850_handle_interrupt_attribute,
	v850_handle_data_area_attribute): New.
	* config/v850/v850-c.c (mark_current_function_as_interrupt):
	Return void.  Call decl_attributes instead of
	valid_machine_attribute.

cp:
	Table-driven attributes.
	* decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
	* decl2.c (cplus_decl_attributes): Only take one attributes
	parameter.
	* cp-tree.c (cplus_decl_attributes): Update prototype.
	* class.c (finish_struct), decl.c (start_decl, start_function),
	decl2.c (grokfield), friend.c (do_friend), parse.y
	(parse_bitfield): Update calls to cplus_decl_attributes.
	* decl.c (grokdeclarator): Take a pointer to a single ordinary
	attribute list.
	* decl.h (grokdeclarator): Update prototype.
	* decl2.c (grokfield): Take a single ordinary attribute list.
	* friend.c (do_friend): Likewise.
	* decl.c (shadow_tag, groktypename, start_decl,
	start_handler_parms, grokdeclarator, grokparms, start_function,
	start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
	parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
	(process_template_parm, do_decl_instantiation): Pass single
	ordinary attribute lists around.
	* decl.c (grokdeclarator): Correct handling of nested attributes.
	Revert the patch
	1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
		* decl.c (grokdeclarator): Embedded attrs bind to the right,
		not the left.
	.
	* cp-tree.h (cp_valid_lang_attribute): Remove declaration
	(cp_attribute_table): Declare.
	* decl.c (valid_lang_attribute): Don't define.
	(lang_attribute_table): Define.
	(init_decl_processing): Initialize lang_attribute_table instead of
	valid_lang_attribute.
	* tree.c (cp_valid_lang_attribute): Remove.
	(handle_java_interface_attribute, handle_com_interface_attribute,
	handle_init_priority_attribute): New functions.
	(cp_attribute_table): New array.
	* decl2.c (import_export_class): Don't use
	targetm.valid_type_attribute.

testsuite:
	Table-driven attributes.
	* g++.dg/ext/attrib1.C: New test.

From-SVN: r45718
2001-09-21 02:27:06 +01:00
Nathan Sidwell
6d0a3f67bb Remove TYPE_NONCOPIED_PARTS.
* tree.h (TYPE_NONCOPIED_PARTS): Remove.
	(struct tree_type): Remove noncopied_parts.
	* c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
	* expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
	(fixed_type_p): Remove.
	(expand_expr, INIT_EXPR): Don't deal with noncopied parts.
	(expand_expr, MODIFY_EXPR): Likewise.
	* ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
	* doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
cp:
	Remove TYPE_NONCOPIED_PARTS.
	* cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
	CLASSTYPE_PURE_VIRTUALS.
	(TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
	* class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
	(layout_class_type): Don't call fixup_inlin_methods here ...
	(finish_struct_1): ... call it here.

From-SVN: r45434
2001-09-06 08:59:39 +00:00
Jason Merrill
0213a35528 c-common.c (c_alignof, [...]): Move here...
* c-common.c (c_alignof, c_alignof_expr): Move here...
        * c-typeck.c: ...from here.
        * c-tree.h, c-common.h: Adjust.

        * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
        (build_cplus_array_type): Use cp_build_qualified_type, not
        TYPE_MAIN_VARIANT, to get an unqualified version.

        * decl2.c (grok_alignof): Lose.
        (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
        * typeck.c (c_alignof): Lose.
        * semantics.c (finish_sizeof, finish_alignof): New.
        * parse.y: Use them.
        * cp-tree.h: Declare them.

From-SVN: r45145
2001-08-24 08:07:46 -04:00
Richard Henderson
b5d1cbd2fa class.c, cp-tree.h (build_vfn_ref): Remove.
* class.c, cp-tree.h (build_vfn_ref): Remove.
        * call.c, rtti.c: Replace all refernces with build_vtbl_ref.

From-SVN: r44913
2001-08-14 16:51:27 -07:00
Jason Merrill
07b2f2fd6e c-common.h (RETURN_NULLIFIED_P): Lose.
* c-common.h (RETURN_NULLIFIED_P): Lose.
        * c-semantics.c (genrtl_return_stmt): Don't check it.

        Support named return value optimization for inlines, too.
        * decl.c (finish_function): Nullify returns here.
        * semantics.c (genrtl_start_function): Not here.
        (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
        (nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
        Also nullify the CLEANUP_STMT for the nrv.
        * cp-tree.h: Declare it.
        * optimize.c (declare_return_variable): Replace the nrv with the
        return variable.
        * typeck.c (check_return_expr): Be more flexible on alignment check.
        Ignore cv-quals when checking for a matching type.

From-SVN: r44762
2001-08-10 10:01:33 -04:00
Nathan Sidwell
0830ae44cd re PR c++/3820 (GCC 3.0 crashes with empty base class)
cp:
	PR c++/3820
	Stop using TYPE_NONCOPIED_PARTS.
	* call.c (build_over_call): Be careful when copy constructing
	or assigning to an empty class.
	* class.c (check_bases_and_members): It has a
	COMPLEX_ASSIGN_REF if it has a vptr.
	(layout_class_type): Don't add empty class padding to
	TYPE_NONCOPIED_PARTS.
	(finish_struct_1): Don't add the VFIELD either.
	* cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
	initialization.
testsuite:
	* g++.dg/abi/empty4.C: New test.

From-SVN: r44691
2001-08-07 13:57:06 +00:00
Stan Shebs
dff94ad747 cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
* cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
        (fnaddr_from_vtable_entry): Remove decl.
        * method.c (use_thunk): Update comment.

From-SVN: r44587
2001-08-03 00:14:01 +00:00
Nathan Sidwell
1dbb6023c7 Kill -fhonor-std.
.:	Kill -fhonor-std.
	* doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
	interaction.
	* doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
cp:
	Kill -fhonor-std.
	* NEWS: Document.
	* cp-tree.h (flag_honor_std): Remove.
	(CPTI_FAKE_STD): Remove.
	(std_node): Remove comment about it being NULL.
	(fake_std_node): Remove.
	* decl.c (in_fake_std): Remove.
	(walk_namespaces_r): Remove fake_std_node check.
	(push_namespace): Remove in_fake_std code.
	(pop_namespace): Likewise.
	(lookup_name_real): Remove fake_std_node check.
	(init_decl_processing): Always create std_node. Always add
	std:: things there.
	(builtin_function): Always put non '_' fns in std.
	* decl2.c (flag_honor_std): Remove.
	(lang_f_options): Remove honor-std.
	(unsupported_options): Add honor-std.
	(set_decl_namespace): Remove fake_std_node check.
	(validate_nonmember_using_decl): Likewise.
	(do_using_directive): Likewise.
	(handle_class_head): Likewise.
	* dump.c (cp_dump_tree): Likewise.
	* except.c (init_exception_processing): Adjust.
	* init.c (build_member_call): Remove fake_std_node check.
	(build_offset_ref): Likewise.
	* lang-options.h: Remove -fhonor-std, -fno-honor-std.
	* rtti.c (init_rtti_processing): Adjust.
testsuite:
	Kill -fhonor-std.
	* g++.old-deja/g++.ns/ns14.C: Remove special options.
	* g++.old-deja/g++.other/std1.C: Likewise.
	* g++.old-deja/g++.robertl/eb133.C: Likewise. Add using directive.

From-SVN: r44569
2001-08-02 10:51:17 +00:00
Nathan Sidwell
befe7c6146 The 3.0 ABI no longer has vbase pointer fields.
cp:
	The 3.0 ABI no longer has vbase pointer fields.
	* cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
	FORMAT_VBASE_NAME): Remove.
	* method.c (do_build_copy_constructor): Adjust.
	(do_build_assign_ref): Adjust.
	* search.c (lookup_field_r): Adjust.
	* typeck.c (build_component_ref): Adjust.

	The 3.0 ABI always has a vtable pointer at the start of every
	polymorphic class.
	* rtti.c (build_headof_sub): Remove.
	(build_headof): Adjust.
	(get_tinfo_decl_dynamic): No need to check flag_rtti
	here. Adjust.
	(create_real_tinfo_var): Explain why we need a hidden name.

From-SVN: r44515
2001-07-31 16:12:04 +00:00
Jason Merrill
08ac397c04 call.c (joust): Only prefer a non-builtin candidate to a builtin one if...
* call.c (joust): Only prefer a non-builtin candidate to a builtin
        one if they have the same signature.

        * cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
        it rather than toplevel_bindings_p.  Give it a mangled name if static.
        (convert_to_reference): Adjust.
        * decl2.c (get_temp_name): Lose.
        * mangle.c (mangle_ref_init_variable): New fn.
        (mangle_guard_variable): Strip the ref-init header.
        * cp-tree.h: Adjust.
        * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
        initializer.
        (grok_reference_init): Always use DECL_INITIAL.

From-SVN: r44358
2001-07-25 11:04:32 -04:00
Nathan Sidwell
4026042933 re PR c++/3416 (gcc-3.0 Internal compiler error in arg_assoc, at cp/decl2.c:4902)
cp:
	PR c++/3416
	* call.c (build_conditional_expr): Recheck args after
	conversions.
	* cp-tree.h (build_conditional_expr): Move to correct file.
	* typeck.c (decay_conversion): Diagnose any unknown types
	reaching here.
	(build_binary_op): Don't do initial decay or default
	conversions on overloaded functions.
	(build_static_cast): Don't do a decay conversion here.
testsuite:
	* g++.old-deja/g++.other/cond7.C: New test.

From-SVN: r44345
2001-07-25 09:38:26 +00:00
Nathan Sidwell
7f54a8510b Simplify rtti, now we've only one ABI.
* cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
	CPTI_TINFO_VAR_ID.
	(tinfo_decl_id, tinfo_var_id): Remove.
	(get_typeid_1): Remove.
	* rtti.c
	(init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
	(typeid_ok_p): New function.
	(build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
	(get_tinfo_decl): Remove old abi documentation.
	(tinfo_from_decl): Remove.
	(get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
	(get_typeid_1): Remove.
	(get_base_offset): Remove.
	(synthesize_tinfo_var): Absorb get_base_offset.
	(create_real_tinfo_var): Don't use tinfo_decl_id.

From-SVN: r44291
2001-07-24 08:56:12 +00:00
Nathan Sidwell
c4372ef4c6 tm.texi: Remove DEFAULT_VTABLE_THUNKS.
gcc:
	* doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
	* config/freebsd.h: Likewise.
	* config/linux.h: Likewise.
	* config/openbsd.h: Likewise.
	* config/alpha/linux-elf.h: Likewise.
	* config/arm/linux-elf.h: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/fr30/fr30.h: Likewise.
	* config/ia64/aix.h: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/mips/linux.h: Likewise.
	* config/pj/pj.h: Likewise.
	* config/rs6000/linux.h: Likewise.
	* config/sparc/linux.h: Likewise.
	* config/sparc/linux64.h: Likewise.
cp:
	Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
	* cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
	(CPTI_INDEX_IDENTIFIER): Remove.
	(CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
	(delta2_identifier): Remove.
	(index_identifier): Remove.
	(pfn_or_delta2_identifier): Remove.
	(flag_vtable_thunks): Remove.
	(VTABLE_DELTA2_NAME): Remove.
	(VTABLE_INDEX_NAME): Remove.
	(FNADDR_FROM_VTABLE_ENTRY): Adjust.
	(vfunc_ptr_type_node): Adjust.
	(VTABLE_NAME_PREFIX): Adjust.
	(build_vfn_ref): Lose first parameter.
	(fixup_all_virtual_upcast_offsets): Remove.
	* decl.c (initialize_predefined_identifiers): Remove
	delta2_identifier, index_identifier, pfn_or_delta2_identifier.
	(init_decl_processing): Remove no-vtable-thunk code.
	* decl2.c (flag_vtable_thunks): Remove.
	(mark_vtable_entries): Remove no-vtable-thunk code.
	* error.c (dump_decl): Remove no-vtable-thunk code.
	(dump_expr): Adjust ptr to member function code.
	* init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
	code.
	* rtti.c (build_headof): Remove no-vtable-thunk code.
	(get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
	* search.c (get_base_distance): Remove expand_upcast_fixups case.
	(virtual_context) Remove.
	(expand_upcast_fixups): Remove.
	(fixup_virtual_upcast_offsets): Remove.
	(fixup_all_virtual_upcast_offsets): Remove.
	* typeck.c (get_member_function_from_ptrfunc): Remove
	no-vtable-thunk code.
	* call.c (build_over_call): Adjust call to build_vfn_ref.
	* class.c (build_vfn_ref): Lose first parameter. Remove
	no-vtable-thunk code.
	(build_rtti_vtbl_entries): Remove no-vtable-thunk code.
	(build_vtable_entry): Remove no-vtable-thunk code.

From-SVN: r44227
2001-07-21 09:42:21 +00:00
Nathan Sidwell
3461fba7ad Remove old-abi remnants.
Remove old-abi remnants. Remove comments about old abi
	behaviour. Remove refences to 'new-abi' in comments.
	* cp-tree.h: Adjust comments.
	(vbase_offsets_in_vtable_p): Delete.
	(vcall_offsets_in_vtable_p): Delete.
	(vptrs_present_everywhere_p): Delete.
	(all_overridden_vfuns_in_vtables_p): Delete.
	(merge_primary_and_secondary_vtables_p): Delete.
	(TYPE_CONTAINS_VPTR_P): Adjust.
	(VTT_NAME_PREFIX): Remove.
	(CTOR_VTBL_NAME_PREFIX): Remove.
	(init_vbase_pointers): Remove.
	* class.c: Adjust coments.
	(build_vbase_pointer_fields): Delete.
	(build_vbase_pointer): Remove old-abi code.
	(build_secondary_vtable): Likewise.
	(modify_all_vtables): Likewise.
	(create_vtable_ptr): Likewise.
	(layout_class_type): Likewise.
	(finish_struct_1): Likewise.
	(finish_vtbls): Likewise.
	(dfs_finish_vtbls): Delete.
	(build_vbase_offset_vtbl_entries): Remove old-abi code.
	* cvt.c: Adjust comments.
	* decl.c: Adjust comments.
	* decl2.c: Adjust comments.
	* init.c: Adjust comments.
	(construct_virtual_bases): Remove old-abi code.
	* lang-specs.h: Remove -fno-new-abi.
	* mangle.c: Adjust comments.
	* rtti.c: Adjust comments.
	(get_base_offset): Remove old-abi-code.
	* search.c: Adjust comments.
	(dfs_init_vbase_pointers): Remove.
	(dfs_vtable_path_unmark): Remove.
	(init_vbase_pointers): Remove.
	* semantics.c: Adjust comments.
	(emit_associated_thunks): Remove old-abi code.
	* typeck.c: Adjust comments.

From-SVN: r44215
2001-07-21 00:03:21 +00:00