summaryrefslogtreecommitdiff
path: root/gcc/cp/cp-tree.h
Commit message (Collapse)AuthorAgeFilesLines
* 2002-08-24 Matt Austern <austern@apple.com>shebs2002-08-251-0/+1
| | | | | | | | | | | | | | | | | | * tree.c (lvalue_p_1): Add argument for whether casts of lvalues are allowable. (real_lvalue_p): Update caller. (lvalue_p): Ditto. (non_cast_lvalue_or_else): New. * tree.h: Declare it. * typeck.c (build_unary_op): Use non_cast_lvalue_or_else. 2002-08-24 Matt Austern <austern@apple.com> * g++.dg/ext/lvaddr.C: New test. * g++.dg/ext/lvcast.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56560 138bc75d-0d04-0410-961f-82ee72b054a4
* * call.c (standard_conversion): Use build_ptrmem_type.mmitchel2002-08-091-1/+3
| | | | | | | | | | | | | | | | | | | | * cp-tree.h (build_ptrmem_type): New function. (adjust_result_of_qualified_name_lookup): Likewise. * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate static data members. (build_ptrmem_type): New function. (grokdeclarator): Do not use build_offset_type when encountering a qualified name. * parse.y (parse_finish_call_expr): Use adjust_result_of_qualified_name_lookup. * search.c (adjust_result_of_qualified_name_lookup): New function. * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than accessing OFFSET_TYPEs directly. * g++.dg/template/crash1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56169 138bc75d-0d04-0410-961f-82ee72b054a4
* Rework build_component_ref.mmitchel2002-08-081-18/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56117 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (c-opts.o, c-common.o, C_AND_OBJC_OBJS): Update.neil2002-08-071-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c: Don't include tree-inline.h. (c_common_init_options, c_common_post_options): Move to c-opts.c. * c-common.h (c_common_decode_option): New. * c-decl.c (c_decode_option): Remove. * c-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option. * c-opts.c: New file. * c-tree.h (c_decode_option): Remove. * doc/passes.texi: Update. * objc/objc-act.c (objc_decode_option): Remove. * objc/objc-act.h (objc_decode_option): Remove. * objc/ojbc-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option. cp: * Make-lang.in (CXX_C_OBJS): Update. * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option. * cp-tree.h (cxx_decode_option): Remove. * decl2.c (compare_options, lang_f_options, unsupported_options, cxx_decode_option): Remove. testsuite: * objc.dg/const-str-2.m: Update. * gcc.dg/cpp/c++98.c: Change to C extension. * gcc.dg/cpp/c++98-pedantic.c: Similarly. * gcc.dg/cpp/cpp.exp: Process .C extensions too. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56105 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (VF_DERIVED_VALUE): Remove.nathan2002-08-041-4/+1
| | | | | | | * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56023 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c: Define all C/ObjC/C++ warning and flag variables.neil2002-08-011-185/+0
| | | | | | | | | | | | | | | | | | * c-common.h: Declare all C/ObjC/C++ warning and flag variables. * c-decl.c: Move all warning and flag variables to c-common.c. * c-format.c: Move all warning variables to c-common.c. * c-tree.h: Move all warning and flag declarations to c-common.h. * objc/objc-act.c: Move all warning variables to c-common.c. (flag_warn_protocol): Rename warn_protocol. cp: * cp-tree.h: Move all warning and flag declarations to c-common.h. * decl.c: Move all warning and flag variables to c-common.c. * decl2.c: Move all warning and flag variables to c-common.c. * lex.c (flag_digraphs): Remove. (warn_traditional): Now in c-common.c. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55923 138bc75d-0d04-0410-961f-82ee72b054a4
* * call.c (build_field_call): Do not look up the field by name.mmitchel2002-08-011-3/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55920 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion.gdr2002-07-301-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55871 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add morenathan2002-07-301-12/+17
| | | | | | | documentation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55863 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h: Comment typo fix.amodra2002-07-291-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55835 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.c (assign_parms): Handle frontend-directed pass byjason2002-07-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55781 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.h (RID_AND, RID_AND_EQ, RID_NOT, RID_NOT_EQ,neil2002-07-261-4/+0
| | | | | | | | | | | | | | | | | | | RID_OR, RID_OR_EQ, RID_XOR, RID_XOR_EQ, RID_BITAND, RID_BITOR, RID_COMPL): Remove. * c-parse.in (rid_to_yy): Similarly. cp: * cp-tree.h (flag_operator_names): Remove. * decl2.c (flag_operator_names): Remove. (lang_f_options): Remove operator-names. * lex.c (D_OPNAME): Remove. (reswords): Remove operator names. (rid_to_yy): Remove operator names. (init_reswords): No need to handle D_OPNAME. * spew.c (read_process_identifier): There are no operator names. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55777 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c (c_sizeof_or_alignof_type): Take a third argument forgdr2002-07-251-4/+4
| | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55744 138bc75d-0d04-0410-961f-82ee72b054a4
* * dwarf2out.c (SECTION_ASM_OP,neil2002-07-231-1/+0
| | | | | | | | | | | | | | | | | ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove. * system.h (SECTION_ASM_OP): Poison. * tree.c (FILE_FUNCTION_PREFIX_LEN): Remove. * config/alpha/alpha-interix.h, config/mips/linux.h (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove. * config/mmix/mmix-protos.h, config/mmix/mmix.c (mmix_asm_output_define_label_difference_symbol): Remove. * config/mmix/mmix.h (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove. cp: * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55690 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-07-21 Gabriel Dos Reis <gdr@nerim.net>gdr2002-07-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix PR/7363: * c-common.c (c_sizeof_or_alignof_type): New function. (c_alignof): Remove definition. * c-common.h (c_sizeof, c_alignof): Define as macros. (c_sizeof_or_alignof_type): Declare. (my_friendly_assert): Moved from cp/cp-tree.h * c-typeck.c (c_sizeof): Remove definition. cp/ 2002-07-21 Gabriel Dos Reis <gdr@nerim.net> Fix PR/7363: * typeck.c (cxx_sizeof_or_alignof_type): New function. (c_sizeof): Remove definition. (expr_sizeof): Use cxx_sizeof. * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type. * decl.c (finish_destructor_body): Use cxx_sizeof. * semantics.c (finish_alignof): Likewise. (finish_alignof): Use cxx_alignof. * cp-tree.h (cxx_sizeof, cxx_alignof): New macros. (cxx_sizeof_or_alignof_type): Declare. (my_friendly_assert): Move to ../c-common.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55678 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/7347, c++/7348lerdsuwa2002-07-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cp-tree.h (tsubst_flags_t): Add tf_parsing. * decl.c (make_typename_type): Use it. (make_unbound_class_template): Likewise. (lookup_name_real): Don't call type_access_control if scope is template parameter dependent. * parse.y (template_arg): Call make_unbound_class_template with tf_parsing set. (nest_name_specifier): Call make_typename_type with tf_parsing set. (typename_sub0): Likewise. (typename_sub1): Likewise. (instantiate_decl): Push class scope. * pt.c (regenerate_decl_from_template): Call pushclass and popclass for both static variable and member function template. (instantiate_decl) Call pushclass and popclass when tsubst'ing type and arguments. * search.c (type_access_control): Do type access for TEMPLATE_DECL too. * g++.dg/template/access4.C: New test. * g++.dg/template/access5.C: New test. * g++.old-deja/g++.pt/memtemp85.C: Fix access problem. * g++.old-deja/g++.pt/memtemp86.C: Likewise. * g++.old-deja/g++.pt/ttp58.C: Likewise. * g++.old-deja/g++.pt/memtemp89.C: Remove XFAIL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55649 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (unqualified_name_lookup_error): Declare it.mmitchel2002-07-101-1/+2
| | | | | | | | | | | | | | (begin_function_definition): Adjust prototype. * lex.c (unqualified_name_lookup_error): New function, split out from ... (do_identifier): ... here. * parse.y (parse_begin_function_definition): New function. (fn.def1): Use it. * semantics.c (begin_function_definition): Accept decl-specifiers and attributes as separate parameters. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55372 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (constructor_name_p): Declare it.mmitchel2002-07-091-1/+2
| | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55350 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (have_extern_spec): Declare itmmitchel2002-07-081-0/+1
| | | | | | | | | | | | | * decl.c (have_extern_spec): Define it. (start_decl): Eliminate use of used_extern_spec. (start_function): Likewise. * parse.y (have_extern_spec): Remove declaration. (used_extern_spec): Likewise. (frob_specs): Eliminate use of used_extern_spec. (.hush_warning): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55319 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (cp/parse.o): Depend on decl.h.mmitchel2002-07-081-1/+1
| | | | | | | | | | | | * cp-tree.h (do_decl_instantiation): Change prototype. * parse.y: Include decl.h. (parse_decl_instantiation): New function. (explicit_instantiation): Use it. * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR and DECLSPECS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55309 138bc75d-0d04-0410-961f-82ee72b054a4
* Repair damage on weak-impared targets caused by my previous patch.nathan2002-07-051-1/+1
| | | | | | | | | | | * cp-tree.h (import_export_tinfo): Add parameter. * decl2.c (import_export_tinfo): Add parameter, post adjust DECL_COMDAT. * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by import_export_tinfo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55257 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...nathan2002-06-301-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (CPTI_TYPE_INFO_PTR_TYPE): ... this. (tinfo_decl_type): Replace with ... (type_info_ptr_type): ... this. (import_export_tinfo): Declare. (tinfo_decl_p): Rename to ... (unemitted_tinfo_decl_p): ... this. * decl2.c (import_export_decl): Break out tinfo handling into ... (import_export_tinfo): ... here. New function. (finish_file): Adjust. * rtti.c (TINFO_REAL_NAME): New macro. (init_rtti_processing): Create the tinfo types. (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr. (get_tinfo_decl): Adjust. (get_tinfo_ptr): New function. (get_type_id): Use it. (tinfo_base_init): Create vtable decl here, if it doesn't exist. (ptr_initializer): Use get_tinfo_ptr. (ptm_initializer): Likewise. (synthesize_tinfo_var): Break into ... (get_pseudo_ti_init): ... this. Just create the initializer. (get_pseudo_ti_desc): .. and this. (create_real_tinfo_var): Remove. (create_pseudo_type_info): Don't create the vtable decl here. (get_vmi_pseudo_type_info): Remove. (create_tinfo_types): Adjust. (tinfo_decl_p): Rename to ... (unemitted_tinfo_decl_p): ... here. Adjust. (emit_tinfo_decl): Adjust. Create the initializer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55124 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (xref_tag): Change prototype.mmitchel2002-06-261-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | (handle_class_head): Likewise. (build_x_component_ref): Likewise. * decl.c (cxx_init_decl_processing): Adjust call to xref_tag. (xref_tag): Take attributes as a separate parameter. (xref_tag_from_type): Adjust call to xref_tag. * decl2.c (build_expr_from_tree): Adjust call to build_x_component_ref. (handle_class_head): Take attributes as a separate parameter. * parse.y (parse_xref_tag): New function. (parse_handle_class_head): Likewise. (primary): Use parse_xref_tag. (class_head_decl): Use parse_handle_class_head. (class_head_defn): Likewise. * rtti.c (init_rtti_processing): Adjust call to xref_tag. (build_dynamic_cast_1): Likewise. (create_pseudo_type_info): Likewise. (emit_support_tinfos): Likewise. * typeck.c (build_object_ref): Adjust call to build_x_component_ref. (build_x_component_ref): Remove protect parameter. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55013 138bc75d-0d04-0410-961f-82ee72b054a4
* * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.mmitchel2002-06-251-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54989 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (SCALAR_TYPE_P): New macro.mmitchel2002-06-241-0/+14
| | | | | | | | | | | | | | | | | | | (check_for_out_of_scope_variable): New function. (at_class_scope_p): Likewise. (finish_fname): Likewise. * class.c (finish_struct): Use at_function_scope_p. * decl.c (check_for_out_of_scope_variable): New function, split out from do_identifier. (finish_enum): Use at_function_scope_p. * lex.c (do_identifier): Use check_for_out_of_scope_variable. * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname. (primary): Use at_function_scope_p. * search.c (at_class_scope_p): New function. * semantics.c (finish_fname): Likewise. (check_multiple_declarators): Use at_function_scope_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54962 138bc75d-0d04-0410-961f-82ee72b054a4
* * parse.y (parse_scoped_id): New function.mmitchel2002-06-231-1/+1
| | | | | | | | | | | | (primary): Use it. * cp-tree.h (do_scoped_id): Adjust declaration. * lex.c (do_scoped_id): Remove call to yylex. * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id. * typeck2.c (add_exception_specifier): Use tree_cons, rather than expanding it inline. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54930 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c (flag_ms_extensions): Move from c++ front end.rth2002-06-161-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.h (flag_ms_extensions): Declare. * c-decl.c (c_decode_option): Add -fms-extensions. (grokfield): Don't accept anonymous structures in ISO C mode; accept only unnamed anonymous structures in GNU C mode; accept Plan 9 extensions in MS mode. * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers. (extension): Clear flag_iso. * doc/invoke.texi (C Dialect Options): Add -fms-extensions. * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common. * g++.dg/ext/anon-struct1.C: New. * g++.dg/ext/anon-struct2.C: New. * g++.dg/ext/anon-struct3.C: New. * gcc.dg/anon-struct-1.c: New. * gcc.dg/anon-struct-2.c: New. * gcc.dg/anon-struct-3.c: New. * gcc.dg/20011008-1.c: Adjust warning text. * gcc.dg/20020527-1.c: Add -fms-extensions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54670 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (compiler_error): Remove declaration.gdr2002-06-151-2/+0
| | | | | | | * lex.c (compiler_error): Remove definition. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54644 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge from pch-branch up to tag pch-commit-20020603.geoffk2002-06-041-205/+293
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54232 138bc75d-0d04-0410-961f-82ee72b054a4
* PR preprocessor/6517neil2002-05-221-1/+0
| | | | | | | | | | | | | | | | | | | | | | | * Makefile.in: Update. * c-common.c (c_common_post_options): Add preprocessor errors to the error count. * c-lang.c (c_post_options): Kill. (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. * hooks.h: Add header guards. * langhooks-def.h: Include hooks.h. (LANG_HOOKS_POST_OPTIONS): Update. * langhooks.h (struct lang_hooks): Update post_options. * toplev.c (parse_options_and_default_flags): Update. cp: * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. * cp-tree.h (cxx_post_options): Kill. * cp-lex.c (cxx_post_options): Kill. objc: * objc-lang.c (objc_post_options): Kill. (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53724 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (complete_type_or_diagnostic): Changed prototype,aoliva2002-05-191-1/+6
| | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53605 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (struct lang_type): Added non_zero_init.aoliva2002-05-141-2/+12
| | | | | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53461 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in: Update.neil2002-05-091-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c (flag_iso, flag_undef, cb_register_builtins, builtin_define_std): New. (c_common_init): Register CPP builtins callback. * c-common.h (flag_iso, flag_undef): New. * c-decl.c (c_decode_option): Set flag_iso and flag_undef. * c-lex.c: Don't include target.h. (cb_register_builtins): Move to c-common.c. (init_c_lex): Don't register hook here. * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New. (cpp_define, cpp_assert): Remove. * gcc.c (cc1_options): Pass -undef to front end. * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove. (TARGET_INITIALIZER): Update. * target.h (struct cpp_reader): Don't predeclare. (struct gcc_target): Remove cpp builtin hook. * tree.c (default_register_cpp_builtins): Remove. cp: * cp-tree.h (flag_ansi): Remove. * decl2.c (flag_ansi): Remove. (cxx_decode_option): Set flag_iso and flag_undef. doc: * tm.texi: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53349 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c (warn_multichar): New.neil2002-05-061-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | (c_common_init): Set CPP's warn_multichar. * c-common.h (warn_multichar): New. * c-decl.c (warn_multichar): Remove. * c-lex.c (lex_charconst): Update. * c-tree.h (warn_multichar): Remove. * cppexp.c (eval_token): Sign-extend charconst value. * cppinit.c (cpp_create_reader): Set warn_multichar. * cpplex.c (cpp_interpret_charconst): Don't sign-extend each character. Update prototype. Sign-extend the result. * cpplib.h: Fix conditions. (struct cpp_options): Add new warning flag. (cpp_interpret_charconst): Update prototype. cp: * Make-lang.in (decl2.o): Update. * cp-tree.h (warn_multichar): Remove. * decl2.c: Include c-common.h. (warn_multichar): Remove. doc: * cpp.texi: Update documentation. testsuite: * gcc.dg/cpp/charconst-3.c: Correct tests accordingly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53240 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/5607jason2002-04-251-0/+1
| | | | | | | | | * search.c (check_final_overrider): No longer static. * class.c (update_vtable_entry_for_fn): Call it. * cp-tree.h: Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52760 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.h (c_common_parse_file): Update.neil2002-04-251-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. * c-lex.c (YYDEBUG): Get from c-lex.h. (c_common_parse_file): Update. * c-lex.h (YYDEBUG, yydebug): New. * c-parse.in (YYDEBUG): Get from c-lex.h. (c_set_yydebug): Remove. * c-tree.h (c_set_yydebug): Remove. * langhooks-def.h (lhd_do_nothing_i): New. (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove. (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update. * langhooks.c (lhd_do_nothing_i): New. (lhd_set_yydebug): Remove. * langhooks.h (struct lang_hooks): Update. * toplev.c (set_yydebug): New. (compile_file): Update call to parse_file hook. (decode_d_option): Update. ada: * misc.c (gnat_parse_file): Update. cp: * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. * cp-tree.h (cxx_set_yydebug): Die. * lex.c (YYDEBUG): Get from c-lex.h. (cxx_set_yydebug): Remove. * parse.y: Include c-lex.h. (YYDEBUG): Get from c-lex.h. f: * com.h (ffe_parse_file): Update. * lex.c (ffe_parse_file): Update. java: * java-tree.h (java_parse_file): Update. (java_set_yydebug): Remove. * jcf-parse.c (yydebug): Remove. (java_set_yydebug): Die. (java_parse_file): Update. * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. objc: * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52753 138bc75d-0d04-0410-961f-82ee72b054a4
* * attribs.c (c_common_attribute_table): Move table and handlersneil2002-04-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to c-common.c. (format_attribute_table, lang_attribute_table, lang_attribute_common): Remove. (init_attributes): Replace NULL pointers with pointers to the empty table. (handle_packed_attribute, handle_nocommon_attribute, handle_common_attribute, handle_noreturn_attribute, handle_noinline_attribute, handle_always_inline_attribute, handle_used_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_visibility_attribute, handle_no_instrument_function_attribute, handle_malloc_attribute, handle_no_limit_stack_attribute, handle_pure_attribute, handle_deprecated_attribute, handle_vector_size_attribute, vector_size_helper): Move to c-common.c. * c-common.c (c_common_attribute_table, handle_packed_attribute, handle_nocommon_attribute, handle_common_attribute, handle_noreturn_attribute, handle_noinline_attribute, handle_always_inline_attribute, handle_used_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_visibility_attribute, handle_no_instrument_function_attribute, handle_malloc_attribute, handle_no_limit_stack_attribute, handle_pure_attribute, handle_deprecated_attribute, handle_vector_size_attribute, vector_size_helper): Move from attribs.c. * c-common.h (c_common_attribute_table, c_common_format_attribute_table): New. * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine. * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New. (LANG_HOOKS_INITIALIZER): Update. * langhooks.h (struct lang_hooks): 3 new attribute hooks. * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL. * target.h: Update comment. * tree.c (default_target_attribute_table): Remove. * tree.h (default_target_attribute_table, format_attribute_table, lang_attribute_table, lang_attribute_common): Remove. ada: * misc.c (gnat_init): Don't set lang_attribute_common. cp: * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine. * cp-tree.h (cp_attribute_table): Rename. * decl.c (lang_attribute_table): Remove declaration. (cxx_init_decl_processing): Don't set it. * tree.c (cp_attribute_table): Rename. objc: * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52730 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in: Update.neil2002-04-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * decl.c (push_c_function_context, pop_c_function_context, mark_c_function_context): Rename for consistency. * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere. * c-tree.h (push_c_function_context, pop_c_function_context, mark_c_function_context): Rename for consistency. * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED, LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine. * function.c (init_lang_status, save_lang_status, restore_lang_status, mark_lang_status, free_lang_status): Move to langhooks.h. (push_function_context_to, pop_function_context_from, free_after_parsing, prepare_function_start, ggc_mark_struct_function): Update. * function.h (init_lang_status, save_lang_status, restore_lang_status, mark_lang_status, free_lang_status): Move to langhooks.h. * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED, LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK, LANG_HOOKS_FUNCTION_INITIALIZER): New. (LANG_HOOKS_INITIALIZER): Update. (lhd_do_nothing_f): New. * langhooks.h (struct lang_hooks_for_functions): New. (struct lang_hooks): New hooks. * langhooks.c (lhd_do_nothing_f): New. cp: * cp-lang.c (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine. * cp-tree.h (cxx_push_function_context, cxx_pop_function_context, cxx_mark_function_context): New. * decl.c (push_cp_function_context, pop_cp_function_context, mark_cp_function_context): Rename for consistency. (cxx_init_decl_processing): Don't set old hooks. objc: * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED, LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52551 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c: Include langhooks.h.neil2002-04-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (lang_type_promotes_to): Remove. (expand_builtin_va_arg): Use new hook. * c-common.c (c_common_nodes_and_builtins): Don't set hook. (simple_type_promotes_to): Move to c-typeck.c. * c-common.h (simple_type_promotes_to): Remove. * c-decl.c (duplicate_decls, grokdeclarator): Update. * c-format.c: Include langhooks.h. (check_format_types): Update. * c-tree.h (c_type_promotes_to): New. * c-typeck.c (c_type_promotes_to): Move from c-common.c. (type_lists_compatible_p): Update. * langhooks-def.h (lhd_type_promotes_to): New. (LANG_HOOKS_TYPE_PROMOTES_TO): New. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. * langhooks.c (lhd_type_promotes_to): New. * langhooks.h (struct lang_hooks_for_types): New hook. * tree.h (lang_type_promotes_to): Remove. cp: * call.c (convert_type_from_ellipsis): Rename, update. * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine. * cp-tree.h (convert_type_from_ellipsis): Rename. * decl.c (cxx_init_decl_processing): Don't set hook. objc: * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52512 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.neil2002-04-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-tree.h (c_incomplete_type_error): New. * c-typeck.c (require_complete_type, build_component_ref): Update. (incomplete_type_error): Rename. * langhooks-def.h (lhd_incomplete_type_error): New. (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. * langhooks.c (lhd_incomplete_type_error): New. * langhooks.h (struct lang_hooks_for_types): New hook. * tree.c (size_in_bytes): Use new hook. * tree.h (incomplete_type_error): Remove. ada: * gigi.h (incomplete_type_error): Remove. * utils.c (incomplete_type_error): Remove. cp: * call.c (build_new_method_call): Update. * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine. * cp-tree.h (cxx_incomplete_type_error): New. * decl.c (grokdeclarator, grokparms): Update. * decl2.c (check_classfn): Update. * pt.c (tsubst): Update. * typeck.c (complete_type_or_else, expr_sizeof, decay_conversion): Update. * typeck2.c (incomplete_type_error): Rename. (add_exception_specifier): Update. f: * com.c (incomplete_type_error): Remove. java: * typeck.c (incomplete_type_error): Remove. objc: * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52480 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/5571mmitchel2002-04-071-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stor-layout.c (layout_decl): Reset the RTL for the decl. * class.c (layout_class_type): Remember incomplete static variables. (finish_struct_1): Call complete_vars, not hack_incomplete_structures. * cp-tree.h (hack_incomplete_structures): Rename to ... (complete_vars): ... this. (struct saved_scope): Remove incomplete. (namespace_scope_incomplete): Remove. * decl.c (struct binding_level): Remove incomplete. (incomplete_vars): New variable. (mark_binding_level): Don't mark incomplete. (print_binding_level): Don't print it. (mark_saved_scope): Don't mark incomplete. (pushdecl): Use maybe_register_incopmlete_var. (cxx_init_decl_processing): Register incomplete_vars for GC. (start_decl_1): Clarify error message. (hack_incomplete_vars): Remove. (maybe_register_incomplete_var): New function. (complete_vars): Likewise. * g++.dg/opt/static2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51978 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/525jason2002-04-061-1/+1
| | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51956 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/5636jason2002-04-041-10/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51827 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-decl.c (grokdeclarator): Update.neil2002-04-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51705 138bc75d-0d04-0410-961f-82ee72b054a4
* * diagnostic.c (print_error_function): Remove.neil2002-03-311-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (default_print_error_function): Rename. (report_error_function): Update. * diagnostic.h (print_error_function): Remove. (default_print_error_function): Remove. * langhooks-def.h (struct diagnostic_context): Predeclare. (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New. (LANG_HOOKS_INITIALIZER): Update. * langhooks.h (struct diagnostic context): Predeclare. (struct lang_hooks): New hook. cp: * Make-lang.in (error.o): Update. * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine. * cp-tree.h (struct diagnostic_context): Predeclare. (cxx_print_error_function): New. * error.c: Include langhooks-def.h. (lang_print_error_function): Rename. Update. (init_error): Don't set hook. f: * com.c (lang_print_error_function): Rename. (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine. (ffe_init): Don't set hook. java: * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine. (java_dummy_print): Remove. (lang_print_error): Rename. Exit early if inhibiting output. (inhibit_error_printing_function): New. (java_init): Don't set hook. (lang_init_source): Use new boolean. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51672 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (except.o): Update.neil2002-03-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * except.c: Include langhooks.h. (init_eh): Use langhook. * langhooks-def.h (LANG_HOOKS_MAKE_TYPE, LANG_HOOKS_FOR_TYPES_INITIALIZER): New. (LANG_HOOKS_INITIALIZER): Update. * langhooks.h (lang_hooks_for_types): New. (struct lang_hooks): Add it. * tree.c (make_lang_type_fn, make_lang_type): Remove. * tree.h (make_lang_type_fn, make_lang_type): Remove. config: * alpha/alpha.c: Include langhooks.h. (alpha_build_va_list): Use langhook. * d30v/d30v.c: Include langhooks.h. (d30v_build_va_list): Use langhook. * i386/i386.c: Include langhooks.h. (ix86_build_va_list): Use langhook. * rs6000/rs6000.c (rs6000_build_va_list): Use langhook. * s390/s390.c: Include langhooks.h. (s390_build_va_list): Use langhook. * stormy16/stormy16.c: Include langhooks.h. (stormy16_build_va_list): Use langhook. cp: * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine. * cp-tree.h (cp_make_lang_type): Rename. * lex.c (cp_make_lang_type): Rename. (make_aggr_type): Update. * tree.c (init_tree): Don't set make_lang_type_fn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51558 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (attribs.o): Update.neil2002-03-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | * attribs.c: Include langhooks.h. (decl_attributes): Use langhook. * c-decl.c (insert_default_attributes): Rename. * c-tree.h (c_insert_default_attributes): New. * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New. (LANG_HOOKS_INITIALIZER): Update. * langhooks.h (struct lang_hooks): New hook. * tree.h (insert_default_attributes): Remove. ada: * misc.c (insert_default_attributes): Remove. cp: * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine. * cp-tree.h (cxx_insert_default_attributes): New. * decl.c (insert_default_attributes): Rename. objc: * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51488 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c (c_expand_expr): Fix prototype.neil2002-03-271-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.h (c_expand_expr): Always declare, update. * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. * c-objc-common.c (c_objc_common_init): No global hook. * expr.c (expand_expr): Use langhook. * expr.h (enum expand_modifier): Conditionally declare. * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New. (LANG_HOOKS_INITIALIZER): Update. * langhooks.c (lhd_expand_expr): New. * langhooks.h (struct lang_hooks): New hook. * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete. (lang_independent_init): Don't default hook. ada: * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine. (gnat_init): Don't set hook. (gnat_expand_expr): Fix prototype. cp: * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. * cp-tree.h (init_cplus_expand): Remove. (cxx_expand_expr): New. * expr.c (cplus_expand_expr): Rename cxx_expand_expr, fix prototype. (init_cplus_expand): Remove. * lex.c (cxx_init): Don't call init_cplus_expand. java: * expr.c (java_lang_expand_expr): Rename java_expand_expr, fix prototype. * java-tree.h (java_lang_expand_expr): Similarly. * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. (java_init): Don't set hook. objc: * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51462 138bc75d-0d04-0410-961f-82ee72b054a4
* cp:nathan2002-03-261-7/+3
| | | | | | | | | | | | | | | | | PR c++/5682 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better. (dfs_skip_nonprimary_vbases_unmarkedp): Remove. (dfs_skip_nonprimary_vbases_markedp): Remove. * search.c (get_shared_vbase_if_not_primary): Remove. (dfs_skip_nonprimary_vbases_unmarkedp): Remove. (dfs_skip_nonprimary_vbases_markedp): Remove. (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo. (dfs_marked_real_bases_queue_p): Likewise. testsuite: * g++.dg/abi/vbase9.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51392 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (ggc-common.o): Update.neil2002-03-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-decl.c (lang_mark_tree): Rename c_mark_tree. * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine. * c-tree.h (c_mark_tree): New. * ggc-common.c: Include langhooks.h. (gcc_mark_trees): Use new langhook. * ggc-callbacks.c: Delete file. * ggc.h (lang_mark_tree): Remove. * langhooks-def.h (LANG_HOOKS_MARK_TREE): New. (LANG_HOOKS_INITIALIZER): Update. * langhooks.h (struct lang_hooks): New hook. ada: * misc.c (LANG_HOOKS_MARK_TREE): Redefine. (lang_mark_tree): Make static, rename. cp: * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine. * cp-tree.h (cxx_mark_tree): New. * decl.c (lang_mark_tree): Rename cxx_mark_tree. f: * com.c (LANG_HOOKS_MARK_TREE): Redefine. (lang_mark_tree): Rename ffe_mark_tree, make static. java: * decl.c (lang_mark_tree): Rename java_mark_tree. * java-tree.h (java_mark_tree): New. * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine. objc: * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51369 138bc75d-0d04-0410-961f-82ee72b054a4