summaryrefslogtreecommitdiff
path: root/gcc/cp/init.c
Commit message (Collapse)AuthorAgeFilesLines
* ChangeLog: Follow spelling conventions.Kazu Hirata2002-09-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ChangeLog: Follow spelling conventions. * ChangeLog.2: Likewise. * call.c: Likewise. * class.c: Likewise. * cp-tree.h: Likewise. * cvt.c: Likewise. * decl.c: Likewise. * decl2.c: Likewise. * except.c: Likewise. * friend.c: Likewise. * g++spec.c: Likewise. * init.c: Likewise. * lex.c: Likewise. * mangle.c: Likewise. * method.c: Likewise. * operators.def: Likewise. * optimize.c: Likewise. * pt.c: Likewise. * rtti.c: Likewise. * search.c: Likewise. * semantics.c: Likewise. * spew.c: Likewise. * tree.c: Likewise. * typeck.c: Likewise. From-SVN: r57387
* error.c: Fix comment formatting.Kazu Hirata2002-09-141-3/+3
| | | | | | | | | | | | | | | | | | | | | | | * error.c: Fix comment formatting. * except.c: Likewise. * expr.c: Likewise. * friend.c: Likewise. * g++spec.c: Likewise. * init.c: Likewise. * lex.c: Likewise. * mangle.c: Likewise. * method.c: Likewise. * optimize.c: Likewise. * pt.c: Likewise. * rtti.c: Likewise. * search.c: Likewise. * semantics.c: Likewise. * spew.c: Likewise. * tree.c: Likewise. * typeck.c: Likewise. * typeck2.c: Likewise. From-SVN: r57138
* call.c (add_builtin_candidate): legal -> valid, illegal -> invalid.Mike Stump2002-08-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid. (type_decays_to): Likewise. * class.c (find_final_overrider): Likewise. (maybe_note_name_used_in_class): Likewise. * decl.c (current_tmpl_spec_kind): Likewise. (add_binding): Likewise. (push_class_binding): Likewise. (duplicate_decls): Likewise. (layout_var_decl): Likewise. (grokfndecl): Likewise. (grokdeclarator): Likewise. (check_default_argument): Likewise. * decl2.c (handle_class_head): Likewise. * error.c (dump_template_decl): Likewise. * init.c (build_offset_ref): Likewise. * pt.c (check_specialization_scope): Likewise. (determine_specialization): Likewise. (check_explicit_specialization): Likewise. (maybe_check_template_type): Likewise. (process_partial_specialization): Likewise. (check_default_tmpl_args): Likewise. (push_template_decl_real): Likewise. (convert_template_argument): Likewise. (try_class_unification): Likewise. (get_bindings_real): Likewise. (do_decl_instantiation): Likewise. * semantics.c (begin_function_definition): Likewise. (finish_member_declaration): Likewise. (check_multiple_declarators): Likewise. * typeck.c (comp_array_types): Likewise. (comptypes): Likewise. (expr_sizeof): Likewise. (build_binary_op): Likewise. (dubious_conversion_warnings): Likewise. (check_return_expr): Likewise. From-SVN: r56144
* Rework build_component_ref.Mark Mitchell2002-08-081-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * call.c (build_vfield_ref): Do not go through build_component_ref. (build_field_call): Use build_class_member_access_expr. (build_user_type_conversion_1): Use BASELINK_FUNCTIONS. (build_object_call): Likewise. * class.c (convert_to_base): New function. (type_requires_array_cookie): Use BASELINK_FUNCTIONS. (instantiate_type): Handle BASELINKs. * cp-tree.def (BASELINK): New tree code. * cp-tree.h (BASELINK_P): Reimplement. (SET_BASELINK_P): Remove. (BASELINK_BINFO): Reimplement. (BASELINK_FUNCTIONS): Likewise. (BASELINK_ACCESS_BINFO): Likewise. (BASELINK_OPTYPE): Likewise. (convert_to_base): New function. (name_p): Likewise. (build_object_ref): Remove. (build_component_ref_1): Likewise. (build_component_ref): Likewise. (build_x_component_ref): Likewise. (build_class_member_access_expr): New function. (finish_class_member_access_expr): Likewise. (build_ptrmemfunc_access_expr): Likewise. * decl.c (grokdeclarator): Handle BASELINKs. * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using finish_class_member_access_expr. (arg_assoc): Handle BASELINKs. (do_class_using_decl): Likewise. * error.c (dump_decl): Likewise. (dump_expr): Use build_ptrmemfunc_access_expr. * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find destructors. (build_throw): Use BASELINK_FUNCTIONS. * init.c (perform_member_init): Use build_class_member_access_expr. (build_offset_ref): Handle BASELINKs. Use build_class_member_access_expr. * method.c (hack_identifier): Likewise. * parse.y (do_id): Use BASELINK, not TREE_LIST. (primary): Remove uses of build_object_ref. * pt.c (lookup_template_function): Handle BASELINKs. (resolve_overloaded_unification): Likewise. * search.c (build_baselink): Build a BASELINK, not a TREE_LIST. (lookup_field): Use BASELINK, not TREE_LIST. (lookup_fnfiels): Likewise. (setup_class_bindings): Likewise. * semantics.c (finish_object_call_expr): Do not use build_method_call when we already know what function is being called. * spew.c (identifier_type): Use BASELINK, not TREE_LIST. * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not TREE_CHAIN. (name_p): New function. * typeck.c (build_object_ref): Remove. (build_component_ref_1): Likewise. (build_x_component_ref): Likewise. (build_class_member_access_expr): New function. (finish_class_member_access_expr): Likewise. (build_ptrmemfunc_access_expr): Likewise. (get_member_function_from_ptrfunc): Use build_ptrmemfunc_access_expr. (build_binary_op): Likewise. (build_unary_op): Likewise. (build_ptrmemfunc): Likewise. (pfn_from_ptrmemfunc): Likewise. * typeck2.c (build_m_component_ref): Adjust comment. * g++.dg/abi/offsetof.C: Tweak error messages. * g++.old-deja/g++.mike/p10769a.C: Likewise. From-SVN: r56117
* init.c (build_member_call): Use build_new_method_call, not build_method_call.Mark Mitchell2002-08-021-6/+13
| | | | | | | | * init.c (build_member_call): Use build_new_method_call, not build_method_call. * g++.dg/inherit/access3.C: New test. From-SVN: r56000
* call.c (build_field_call): Do not look up the field by name.Mark Mitchell2002-08-011-23/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * call.c (build_field_call): Do not look up the field by name. (build_method_call): Simplify. (struct z_candidate): Add access_path and conversion_path. Remove basetype_path. (convert_class_to_reference): Adjust use of add_function_candidate. (add_candidate): Add conversion_path argument. (add_function_candidate): Use it. (add_conv_dndidate): Likewise. (build_builtin_candidate): Likewise. (add_template_candidate_real): Add conversion_path argument. (add_template_conv_candidate): Likewise. (add_template_candidate): Likewise. (build_user_type_conversion_1): Use it. (build_new_function_call): Remove name lookup code. Adjust use of add_template_candidate and add_function_candidate. (build_new_op): Likewise. (convert_like_real): Use build_special_member_call. (build_over_call): Use cand->conversion_path. (build_special_member_call): New method. (build_new_method_call): Remove name lookup code. * cp-tree.def (OFFSET_REF): Update documentation. (TEMPLATE_ID_EXPR): Likewise. * cp-tree.h (BASELINK_ACCESS_BINFO): New macro. (BASELINK_OPTYPE): Likewise. (build_new_method_call): Adjust prototype. (build_special_member_call): New method. (build_baselink): New method. (build_offset_ref_call_from_tree): Likewise. (build_call_from_tree): Likewise. (finish_qualified_call_expr): Remove. (finish_call_expr): Adjust prototype. (build_x_function_call): Remove. * cvt.c (ocp_convert): Use build_special_member_call. * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr. (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and CALL_EXPR. (build_offset_ref_call_from_tree): New function. (build_call_from_tree): Likewise. * init.c (expand_cleanup): Use build_special_member_call. (expand_default_init): Likewise. (build_member_call): Use finish_call_expr. (build_new_1): Use build_special_member_call. (push_base_cleanups): Likewise. * method.c (do_build_assign_ref): Likewise. * parse.y (template_id): Do not pass a COMPONENT_REF to lookup_template_function. (primary): Use parse_finish_call_epxr, not finish_call_expr. (parse_finish_call_expr): New function. * pt.c (lookup_template_function): Add assertions. * search.c (lookup_base): Allow T to be a binfo. (build_baselink): New function. (lookup_member): Use it. * semantics.c (finish_call_expr): Do not do name lookup. (finish_object_call_expr): Remove #if 0'd code. (finish_qualified_call_expr): Remove. * typeck.c (build_x_function_call): Remove. (build_static_case): Use build_special_member_call. * typeck2.c (build_functional_cast): Likewise. * g++.dg/inherit/operator1.C: New test. * g++.dg/lookup/disamb1.C: Fix typo in comment. * g++.dg/other/error1.C: Change expected error message. * g++.dg/template/conv4.C: Likewise. From-SVN: r55920
* function.c (assign_parms): Handle frontend-directed pass by invisible reference.Jason Merrill2002-07-261-1/+3
| | | | | | | | | | | | | | | | | | | | | | | * function.c (assign_parms): Handle frontend-directed pass by invisible reference. cp/ * call.c (build_over_call): Likewise. (cp_convert_parm_for_inlining): New fn. (convert_for_arg_passing): New fn. (convert_default_arg, build_over_call): Use it. (type_passed_as): New fn. * pt.c (tsubst_decl): Use it. * decl2.c (cp_build_parm_decl): New fn. (build_artificial_parm): Use it. (start_static_storage_duration_function): Likewise. * decl.c (start_cleanup_fn, grokdeclarater): Likewise. (grokparms): Don't mess with DECL_ARG_TYPE. * typeck.c (convert_arguments): Use convert_for_arg_passing. * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Define. * cp-tree.h: Declare new fns. From-SVN: r55781
* c-common.c (c_sizeof_or_alignof_type): Take a third argument for complaining.Gabriel Dos Reis2002-07-251-3/+3
| | | | | | | | | | | | | | | | | | | | | * c-common.c (c_sizeof_or_alignof_type): Take a third argument for complaining. * c-common.h (c_sizeof): Adjust definition. (c_alignof): Likewise. * c-tree.h (c_sizeof_nowarn): Now macro. * c-typeck.c (c_sizeof_nowarn): Remove definition. cp/ * cp-tree.h (cxx_sizeof_nowarn): Now a macro. (cxx_sizeof_or_alignof_type): Take a third argument. (cxx_sizeof): Adjust definition. (cxx_alignof): Likewise. * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality. * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for complaining. (c_sizeof_nowarn): Remove definition. (build_unary_op): Use cxx_sizeof_nowarn. From-SVN: r55744
* cp-tree.h (constructor_name_p): Declare it.Mark Mitchell2002-07-091-2/+1
| | | | | | | | | | | | | | * cp-tree.h (constructor_name_p): Declare it. (check_template_template_default_arg): Likewise. * class.c (handle_using_decl): Use constructor_name_p. * decl.c (grokdeclarator): Likewise. * decl2.c (constructor_name_p): Define it. * init.c (build_member_call): Use constructor_name_p. * parse.y (template_parm): Use check_template_template_default_arg. * pt.c (check_explicit_specialization): Use constructor_name_p. * semantics.c (check_template_template_default_arg): New function. From-SVN: r55350
* re PR c++/6944 (missing feature on default copy-constructor for class with ↵Kriang Lerdsuwanakij2002-07-031-8/+18
| | | | | | | | | | | | | | | multi-dim arrays) PR c++/6944 * init.c (build_aggr_init): Remove qualifiers of init before calling build_vec_init. (build_vec_init): Flatten multi-dimensional array during cleanup. (build_vec_delete_1): Abort if the type of each element is array. * g++.dg/init/array4.C: New test. * g++.dg/init/array5.C: New test. From-SVN: r55214
* call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.Mark Mitchell2002-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS. * class.c (handle_using_decl): Likewise. (instantiate_type): Likewise. * cp-tree.h (BASELINK_FUNCTIONS): New macro. (xref_basetypes): Change prototype. (begin_mem_initializers): New function. (get_overloaded_fn): Likewise. * decl.c (xref_basetypes): Simplify. * error.c (dump_expr): Use BASELINK_FUNCTIONS. * init.c (build_offset_ref): Likewise. * parse.y (base_init): Use begin_mem_initializers(). (structsp): Adjust call to xref_basetypes. * pt.c (determine_specialization): Use BASELINK_FUNCTIONS. (instantiate_class_template): Adjust call to xref_basetypes. * semantics.c (begin_mem_initializers): New function. * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS. (really_overlaoded_fn): Likewise. (get_overloaded_fn): New function.' (get_first_fn): USe BASELINK_FUNCTIONS. From-SVN: r54989
* init.c (build_vec_init): Test for trivial copy-assignment when ↵Alexandre Oliva2002-05-211-1/+4
| | | | | | | | | copy-assigning arrays. * init.c (build_vec_init): Test for trivial copy-assignment when copy-assigning arrays. From-SVN: r53691
* * init.c (build_default_init): Remove unused variable.Andreas Jaeger2002-05-201-2/+0
| | | | From-SVN: r53660
* cp-tree.h (complete_type_or_diagnostic): Changed prototype, renamed from...Alexandre Oliva2002-05-191-3/+10
| | | | | | | | | | | | | | | | | | | * cp-tree.h (complete_type_or_diagnostic): Changed prototype, renamed from... (complete_type_or_else): ... this. Redefined as macro. (cxx_incomplete_type_diagnostic): Declare. (cxx_incomplete_type_error): Define as macro. * init.c (build_delete): Warn about incomplete types other than void, and use the built-in operator delete for them. * typeck.c (complete_type_or_diagnostic): Renamed from complete_type_or_else. Added warn_only argument, passed to... * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print warnings or errors depending on new warn_only argument. Renamed from... (cxx_incomplete_type_error): ... this. New implementation in terms of cxx_incomplete_type_diagnostic. From-SVN: r53605
* cp-tree.h (struct lang_type): Added non_zero_init.Alexandre Oliva2002-05-141-22/+40
| | | | | | | | | | | | | | | | | | | | | * cp-tree.h (struct lang_type): Added non_zero_init. (CLASS_NON_ZERO_INIT_P): New macro. (zero_init_p, force_store_init_value, build_forced_zero_init): Declare. * class.c (check_field_decls): Test non_zero_init. * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for zero-to-NULL conversions. * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a type that needs zero-initialization without zeros. (check_initializer_decl): Compute zero-initializer for types that require a non-trivial one. * init.c (build_forced_zero_init): New function. (build_default_init): Use it. * tree.c (zero_init_p): New function. * typeck2.c (force_store_init_value): New function. (process_init_constructor): Create non-trivial zero-initializers for array members and class fields. From-SVN: r53461
* c-common.h (STMT_EXPR_NO_SCOPE): New macro.Mark Mitchell2002-04-171-5/+4
| | | | | | | | | | | | | | | | | | | | | | * c-common.h (STMT_EXPR_NO_SCOPE): New macro. * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE. * tree.h (expand_start_stmt_expr): Update prototype. * stmt.c (expand_start_stmt_expr): Add has_scope parameter. * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE on the STMT_EXPR created for the inline function. * trans.c (tree_transform): Add has_scope argument to expand_start_stmt_expr. * com.c (ffecom_expr_power_integer): Add has_scope argument to call to expand_start_stmt_expr. * init.c (begin_init_stmts): Remove commented out code. (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. * semantics.c (begin_gobal_stmt_expr): Adjust call to expand_start_stmt_expr. From-SVN: r52395
* init.c (build_member_call): For now, don't convert to intermediate base if ↵Jason Merrill2002-04-091-1/+5
| | | | | | | | | it would cause an error. * init.c (build_member_call): For now, don't convert to intermediate base if it would cause an error. From-SVN: r52078
* re PR c++/525 (Problem with Multiple Inheritance and -pedantic)Jason Merrill2002-04-061-38/+13
| | | | | | | | | | | | | | | PR c++/525 * init.c (build_member_call): Use build_scoped_ref. (resolve_offset_ref): Likewise. * call.c (build_scoped_method_call): Likewise. * tree.c (maybe_dummy_object): Kludge around current_class_type being wrong. * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm. * cp-tree.h: Adjust. * init.c (push_base_cleanups): Just use build_scoped_method_call. From-SVN: r51956
* c-common.c (truthvalue_conversion): Rename, update.Neil Booth2002-04-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c (truthvalue_conversion): Rename, update. * c-common.h (c_common_truthvalue_conversion): New. * c-convert.c (convert): Update. * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update. * c-typeck.c (build_binary_op, build_unary_op, build_conditional_expr): Update. * fold-const.c (constant_boolean_node, fold): Use langhook. * langhooks-def.h (LANGHOOK_INITIALIZER): Update. * langhooks.h (struct lang_hooks): New hook. * stmt.c (expand_decl_cleanup): Use langhook. * tree.h (truthvalue_conversion): Remove. ada: * gigi.h (truthvalue_conversion): Rename. * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. * trans.c (tree_transform): Update. * utils2.c (truthvalue_conversion): Rename, update. (build_binary_op, build_unary_op): Update. cp: * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. * cvt.c: Update comment. * init.c (expand_cleanup_for_base): Update. * semantics.c (finish_parenthesized_expr): Update. * typeck.c (cp_truthvalue_conversion): Update. f: * com.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. (truthvalue_conversion): Rename. Update. Make static. (ffecom_truth_value): Update. java: * expr.c (truthvalue_conversion): Rename. Update. (expand_compare): Update. * java-tree.h (java_truthvalue_conversion): New. * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. objc: * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. From-SVN: r51880
* re PR c++/5636 (gcc-3.0.3, memory leakage: function that take a string as ↵Jason Merrill2002-04-031-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | parameter will not call local variable destructors if exception is thrown.) PR c++/5636 * tree.h (CLEANUP_EH_ONLY): New macro. * stmt.c (expand_decl_cleanup_eh): New fn. (expand_cleanups): Check CLEANUP_EH_ONLY. * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT. Use expand_decl_cleanup_eh. (expand_stmt): Adjust. * c-common.h: Adjust prototype. * cp/semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on cleanup for nrv. * except.c (struct eh_status): Remove protect_list. (begin_protect_partials, end_protect_partials): Remove. (add_partial_entry): Remove. * except.h: Remove prototypes. * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use expand_decl_cleanup_eh. cp/: * semantics.c (finish_eh_cleanup): New fn. * cp-tree.h: Add prototype. * init.c (perform_member_init, expand_cleanup_for_base): Use finish_eh_cleanup. * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove. * cp-tree.h: Remove references. * decl.c (begin_constructor_body, end_constructor_body): Likewise. * dump.c (cp_dump_tree): Likewise. * pt.c (tsubst_expr): Likewise. * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove. (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT. * tree.c (cp_statement_code_p): Likewise. * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup. From-SVN: r51827
* c-decl.c (grokdeclarator): Update.Neil Booth2002-04-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-decl.c (grokdeclarator): Update. * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. * c-tree.h (c_mark_addressable): New. * c-typeck.c (default_function_array_conversion, build_unary_op, build_array_ref, convert_for_assignment): Update. (mark_addressable): Rename. * calls.c (try_to_integrate, expand_call): Use langhook. * expr.c (expand_expr): Use langhook. * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update. * langhooks.h (struct lang_hooks): New hook. * stmt.c (expand_asm_operands): Use langhook. * tree.h (mark_addressable): Remove. ada: * decl.c (gnat_to_gnu_entity): Update. * gigi.h (mark_addressable): Rename. * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. * trans.c (tree_transform): Update. * utils.c (create_var_decl): Update. * util2.c (build_binary_op, build_unary_op, fill_vms_descriptor): Update. (mark_addressable): Rename, update. cp: * call.c (build_addr_func): Update. * class.c (resolve_address_of_overloaded_function): Update. * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. * cp-tree.h (cxx_mark_addressable): New. * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update. * decl2.c (build_cleanup): Update. * except.c (build_throw): Update. * init.c (resolve_offset_ref): Update. * pt.c (convert_nontype_argument): Update. * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update. * typeck.c (decay_conversion, build_array_ref, build_unary_op, unary_complex_lvalue): Update. (mark_addressable): Rename. f: * com.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. (mark_addressable): Rename. (ffecom_arrayref_, ffecom_1): Update. java: * java-tree.h (java_mark_addressable): New. * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. * typeck.c (mark_addressable): Rename, update. objc: * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. From-SVN: r51705
* re PR c++/4884 (g++ 3.0.2 problem with -fvolatile)Mark Mitchell2002-03-261-13/+12
| | | | | | | | | | PR c++/4884. * init.c (build_new_1): Allow for the fact the result of build_function_call may be a COMPOUND_EXPR. * g++.dg/init/new1.C: New test. From-SVN: r51396
* re PR c++/2136 (g++ seems to disregard '::' in '::delete')Jason Merrill2002-03-201-0/+8
| | | | | | | | PR c++/2136 * init.c (build_delete): Check access for a member op delete here. * decl2.c (delete_sanity): Not here. From-SVN: r51079
* re PR c++/2039 (bad code generated for access to unnamed union in base class)Jason Merrill2002-03-181-25/+8
| | | | | | | PR c++/2039 * init.c (resolve_offset_ref): Hand off to build_component_ref. From-SVN: r50991
* re PR c++/5757 (Throwing exception in constructor, causes segfault during ↵Jason Merrill2002-03-171-2/+11
| | | | | | | | | unwind) PR c++/5757 * init.c (build_new_1): Pass the right pointer to op delete. From-SVN: r50917
* * init.c (build_new_1): Use size_binop instead of cp_build_binary_op.Richard Henderson2002-03-151-1/+1
| | | | From-SVN: r50867
* cp-tree.h (init_init_processing): Remove declaration.Richard Sandiford2002-03-131-20/+0
| | | | | | | | * cp-tree.h (init_init_processing): Remove declaration. * init.c (BI_header_type, init_init_processing): Remove old ABI stuff. * decl.c (cxx_init_decl_processing): Don't call init_init_processing. From-SVN: r50740
* tree.h (TARGET_EXPR_SLOT, [...]): New macros.Jason Merrill2002-02-281-0/+20
| | | | | | | | | | | | | | | | | | * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros. (TARGET_EXPR_CLEANUP): New macro. cp/ * except.c: Don't include decl.h or obstack.h. Do include tree-inline.h. (build_throw): Destroy temporaries from the thrown expression before calling __cxa_throw. Construct a thrown temporary directly into the exception object. (stabilize_throw_expr): New function. (wrap_cleanups_r): New function. * tree.c (stabilize_expr): New function. * init.c (build_init): New function. * Make-lang.in (cp/except.o): Adjust .h deps. From-SVN: r50177
* call.c, [...]: Change my_fancy_abort() to abort().Craig Rodrigues2002-01-231-5/+5
| | | | | | | | | | | 2002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Change my_fancy_abort() to abort(). From-SVN: r49139
* re PR c++/3331 (member pointer inherits const)Jason Merrill2002-01-231-3/+2
| | | | | | | | * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF. PR c++/3331 * cp/init.c (resolve_offset_ref): Use build_indirect_ref. From-SVN: r49132
* parse.y (function_body): Suppress the block for the outermost curly braces.Jason Merrill2002-01-221-8/+0
| | | | | | | | | | * parse.y (function_body): Suppress the block for the outermost curly braces. * decl.c (pushdecl): Don't try to skip it. (begin_function_body): Keep the block we create, not the next one. * init.c (emit_base_init): Don't mess with keep_next_level. From-SVN: r49076
* decl.c (begin_constructor_body, [...]): New fns.Jason Merrill2002-01-171-0/+8
| | | | | | | | | | | | | | | * 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
* re PR c++/335 (gcc accepts assignment in read-only structures)Nathan Sidwell2001-12-291-2/+12
| | | | | | | | | | | | cp: PR c++/335 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer for non-reference fields. * typeck.c (require_complete_type): Use resolve_offset_ref). testsuite: * g++.dg/other/const1.C: New test. From-SVN: r48369
* gcc.pot: Regenerate.Joseph Myers2001-12-181-1/+1
| | | | | | | | | | * po/gcc.pot: Regenerate. cp: * call.c, decl2.c, init.c: Use "built-in" and "bit-field" spellings in messages. From-SVN: r48148
* cp-tree.h: Delete #defines for cp_error, cp_warning, cp_pedwarn, and ↵Zack Weinberg2001-12-181-28/+28
| | | | | | | | | | | | | | | 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
* c-common.h (COMPOUND_STMT_BODY_BLOCK): New macro.Jason Merrill2001-12-131-49/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* langhooks.h (struct lang_hooks_for_tree_inlining): Add start_inlining, ↵Jason Merrill2001-12-051-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* re PR c++/164 (bogus error throwing class with inaccessible base)Nathan Sidwell2001-12-041-1/+2
| | | | | | | | | | | | | cp: PR g++/164 * init.c (sort_base_init): Allow binfos to be directly specified. * method.c (do_build_copy_constructor): Explicitly convert to the base instance. (do_build_assign_ref): Likewise. testsuite: * g++.dg/inherit/base1.C: New test. From-SVN: r47603
* c-decl.c (duplicate_decls, [...]): Remove leading capital from diagnostics.Neil Booth2001-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-decl.c (duplicate_decls, push_parm_decl): Remove leading capital from diagnostics. * c-lex.c (cb_file_change): Similarly. * c-parse.in : Similarly. * cfgrtl.c (verify_flow_info): Similarly. * collect2.c: Similarly. * cppfiles.c (find_include_file): Similarly. * cppinit.c (cpp_handle_option): Similarly. * cpplex.c (cpp_spell_token): Similarly. * cppmain.c (do_preprocessing): Similarly. * gcc.c (translate_options, process_command, do_spec1, main, pfatal_execute): Similarly. * genattr.c (main): Similarly. * genattrtab.c (check_attr_test, operate_exp, simplify_test_exp, write_test_expr, main): Similarly. * gencodes.c (main): Similarly. * genconfig.c (main): Similarly. * genconstants.c (main): Similarly. * genemit.c (main): Similarly. * genextract.c (main): Similarly. * genflags.c (main): Similarly. * genopinit.c (main): Similarly. * genoutput.c (process_template, main): Similarly. * genpeep.c (main): Similarly. * genrecog.c (main): Similarly. * gensupport.c (is_predicable, identify_predicable_attribute, alter_predicate_for_insn, init_md_reader_args, main): Similarly. * ggc-page.c (alloc_anon): Similarly. * mips-tfile.c (add_string, add_procedure, add_file, read_line, parse_begin, parse_bend, parse_def, parse_end, parse_file, parse_stabs_common, parse_stabs, write_varray, write_object, read_seek, copy_object, main, error): Similarly. * profile.c (compute_branch_probabilities): Similarly. * reg-stack.c (check_asm_stack_operands): Similarly. * reload.c (find_reloads): Similarly. * reload1.c (spill_failure, failed_reload): Similarly. * rtl-error.c (_fatal_insn_not_found): Similarly. * toplev.c (read_integral_parameter, crash_signal, decode_f_option, set_target_switch, parse_options_and_default_flags) : Similarly. * tradcif.y (parse_number, yylex): Similarly. * tradcpp.c (main, fancy_abort): Similarly. * tree.c (tree_check_failed): Similarly. * varray.c (varray_check_failed): Similarly. * xcoffout.c (xcoff_output_standard_types): Similarly. cp: * call.c (build_java_interface_fn_ref): Similarly. * except.c (is_admissible_throw_operand): Similarly. * init.c (build_java_class_ref): Similarly. * xref.c (open_xref_file): Similarly. objc: * objc-act.c (get_object_ref, lookup_and_install_protocols, build_objc_string_object, objc_declare_alias, build_ivar_chain, finish_message_expr, build_protocol_expr, is_public, start_class): Similarly. testsuite: * objc.dg/alias.m: Update. * objc.dg/class-1.m: Update. * objc.dg/const-str-1.m: Update. * objc.dg/fwd-proto-1.m: Update. * objc.dg/id-1.m: Update. * objc.dg/super-class-1.m: Update. From-SVN: r47518
* cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.Nathan Sidwell2001-11-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* re PR c++/3145 (virtual inheritance still creates wrong code)Nathan Sidwell2001-11-251-28/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* tree-dump.c: Rename from c-dump.c.Bryce McKinlay2001-11-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* re PR c++/3154 (Tree check: expected class 't', have 'd' (type_decl) in ↵Nathan Sidwell2001-11-151-114/+67
| | | | | | | | | | | | | | is_aggr_type, at cp/init.c:1435) cp: PR g++/3154 * init.c (sort_base_init): Remove unreachable code. (expand_member_init): Adjust comment to reflect reality. Simplify and remove unreachable code. testsuite: * g++.dg/other/init1.C: New test. From-SVN: r47047
* builtins.c (expand_builtin_setjmp_receiver): Const-ify.Kaveh R. Ghazi2001-10-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * builtins.c (expand_builtin_setjmp_receiver): Const-ify. * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length): Likewise. * c-dump.c (dump_option_value_info): Likewise. * c-format.c (format_length_info, format_char_info, format_flag_spec, format_flag_pair, format_kind_info): Likewise. * collect2.c (names): Likewise. * cppdefault.h (default_include): Likewise. * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise. * flow.c (life_analysis): Likewise. * gcc.c (dir_separator_str, modify_target, option_map, target_option_translations, spec_list_1, extra_specs_1, init_spec): Likewise. * gcov.c (gcov_version_string): Likewise. * genattr.c (write_units): Likewise. * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise. * gengenrtl.c (rtx_definition, defs): Likewise. * genrecog.c (pred_table): Likewise. * global.c (global_alloc): Likewise. * lcm.c (optimize_mode_switching): Likewise. * local-alloc.c (find_free_reg): Likewise. * params.h (param_info): Likewise. * predict.c (predictor_info): Likewise. * protoize.c (unexpansion_struct): Likewise. * real.c (bmask): Likewise. * recog.h (insn_operand_data, insn_data): Likewise. * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise. * stmt.c (expand_nl_goto_receiver): Likewise. * toplev.c (da, debug_args, lang_opt, documented_lang_options, target_switches, target_options): Likewise. * tradcif.y (token, tokentab2, yylex): Likewise. * tree.h (attribute_spec): Likewise. * alpha.c (override_options, alpha_lookup_xfloating_lib_func): Likewise. * arc.c (arc_output_function_epilogue): Likewise. * arm.c (processors, all_cores, all_architectures, arm_override_options, isr_attribute_arg, isr_attribute_args, arm_isr_value): Likewise. * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc): Likewise. * c4x.c (c4x_int_reglist): Likewise. * d30v.c (override_options): Likewise. * h8300.c (shift_insn): Likewise. * i386.c (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost, ix86_expand_sse_comi, ix86_expand_sse_compare, override_options, builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg, ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise. * i386.h (processor_costs, ix86_cost): Likewise. * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise. * m68hc11.h (processor_costs, m68hc11_cost): Likewise. * m68k.c (codes_68881, codes_FPA): Likewise. * m88k.c (mode_from_align, max_from_align, all_from_align, best_from_align, m_options): Likewise. * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise. * mcore.c (mode_from_align): Likewise. * mips/elf64.h (UNIQUE_SECTION): Likewise. * mips/iris6gld.h (UNIQUE_SECTION): Likewise. * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise. * mips.h (mips_regno_to_class): Likewise. * ns32k.c (scales): Likewise. * pa.c (import_string, magic_milli): Likewise. * rs6000.c (alt_reg_names, rs6000_override_options): Likewise. * sparc.c (leaf_reg_remap, sparc_override_options, reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders): Likewise. * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise. cp: * class.c (build_vtable_entry_ref): Const-ify. * decl.c (predefined_identifier, initialize_predefined_identifiers): Likewise. * init.c (build_new_1): Likewise. * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): Likewise. f: * bad.c (_ffebad_message_, ffebad_messages_): Const-ify. * bld.c (ffebld_arity_op_): Likewise. * bld.h (ffebld_arity_op_): Likewise. * com.c (ffecom_init_0): Likewise. * intdoc.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_, _ffeintrin_imp_, names, gens, imps, specs, cc_pair, cc_descriptions, cc_summaries): Likewise. * intrin.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_, _ffeintrin_imp_, ffeintrin_names_, ffeintrin_gens_, ffeintrin_imps_, ffeintrin_specs_): Likewise. java: * jcf-io.c (format_uint): Const-ify. * lang.c (java_tree_code_type, java_tree_code_length): Likewise. * lex.c (java_get_line_col): Likewise. * parse.y (build_incdec): Likewise. From-SVN: r46062
* Kill -fhonor-std.Nathan Sidwell2001-08-021-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | .: 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
* tm.texi: Remove DEFAULT_VTABLE_THUNKS.Nathan Sidwell2001-07-211-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove old-abi remnants.Nathan Sidwell2001-07-211-30/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* regmove.c (replace_in_call_usage): Fix warnings.Jan van Male2001-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> * regmove.c (replace_in_call_usage): Fix warnings. * sched-deps.c (add_dependence): Fix warnings. * simplify-rtx.c (simplify_subreg): Likewise. Return NULL_RTX instead of NULL. * reg-stack.c (emit_swap_insn): Eliminate warnings. (subst_asm_stack_regs): Likewise. * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid warnings. * dwarf2out.c (output_call_frame_info): Declare i as int. (build_abbrev_table): Declare n_alloc as int. (dwarf2out_finish): Initialize die. * except.c: Declare sjlj_funcdef_number as unsigned. (connect_post_landing_pads): Declare j as unsigned. (convert_to_eh_region_ranges): Initialize call_site. (output_function_exception_table): Initialize tt_format_size. * expr.c (move_by_pieces_1): Initialize to1. (store_constructor): Initialize minelt and maxelt. * flow.c (mark_regs_live_at_end): Declare i as unsigned. * function.c (instantiate_decls): Avoid signed/unsigned warning. * c-decl.c (combine_parm_decls): Unused, remove. * c-tree.h: Remove prototype for combine_parm_decls. * reload.c (push_reload): Fix warning. (regno_clobbered_p): Likewise. * reload1.c (replace_pseudos_in_call_usage): Likewise. (reload_combine): Likewise. * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings. * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix warnings. * bitmap.c (bitmap_operation): Change user. * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise. For cp/: 2001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> * call.c (build_op_delete_call): Initialize fn. (convert_like_real): Delete conditional. (joust): Initialize *w and *l. * class.c: Add prototype for binfo_ctor_vtable. (get_primary_binfo): Initialize result. * init.c (build_java_class_ref): Initialize name. * typeck.c (unary_complex_lvalue): Do not duplicate the argument to modify, pre-, or post-increment when used as an lvalue and when the argument has side-effects. For ch/: 2001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> * ch-tree.h: Remove prototype for combine_parm_decls, unused function. From-SVN: r43893
* call.c (build_op_delete_call): Ignore exception-specifications when looking ↵Mark Mitchell2001-05-221-3/+24
| | | | | | | | | | | | for matching delete operators. * call.c (build_op_delete_call): Ignore exception-specifications when looking for matching delete operators. * init.c (build_new_1): Compute whether or not the allocation function used is a placement allocation function or not, and communicate this information to build_op_delete_call. From-SVN: r42413
* init.c (member_init_ok_or_else): Take a tree rather than string for name.Nathan Sidwell2001-05-161-5/+5
| | | | | | | | | | | | cp: * init.c (member_init_ok_or_else): Take a tree rather than string for name. (expand_member_init): Adjust. testsuite: * g++.pt/inherit2.C: Remove XFAIL. * g++.pt/crash66.C: New test. From-SVN: r42142