#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "tree.h"#include "cp-tree.h"#include "flags.h"#include "rtl.h"#include "output.h"#include "toplev.h"#include "target.h"#include "convert.h"#include "cgraph.h"#include "tree-dump.h"#include "gt-cp-class.h"

Go to the source code of this file.
| typedef struct class_stack_node* class_stack_node_t |
| typedef int(* subobject_offset_fn)(tree, tree, splay_tree) |
| typedef struct vtbl_init_data_s vtbl_init_data |
| static void accumulate_vtbl_inits | ( | tree | binfo, | |
| tree | orig_binfo, | |||
| tree | rtti_binfo, | |||
| tree | t, | |||
| tree | inits | |||
| ) | [static] |
Definition at line 7017 of file class.c.
References accumulate_vtbl_inits(), BINFO_BASE_BINFO, BINFO_BASE_ITERATE, BINFO_TYPE, binfo_via_virtual(), BINFO_VIRTUAL_P, chainon(), CLASSTYPE_VBASECLASSES, dfs_accumulate_vtbl_inits(), gcc_assert, i, SAME_BINFO_TYPE_P, TREE_VALUE, and TYPE_CONTAINS_VPTR_P.
| static int add_fields_to_record_type | ( | tree | fields, | |
| struct sorted_fields_type * | field_vec, | |||
| int | idx | |||
| ) | [static] |
Definition at line 2638 of file class.c.
References add_fields_to_record_type(), ANON_AGGR_TYPE_P, TREE_CHAIN, TREE_CODE, TREE_TYPE, TYPE_FIELDS, and x.
| static void add_implicitly_declared_members | ( | tree | t, | |
| int | cant_have_const_cctor, | |||
| int | cant_have_const_assignment | |||
| ) | [static] |
Definition at line 2532 of file class.c.
References BINFO_BASE_ITERATE, BINFO_TYPE, CLASSTYPE_DESTRUCTORS, CLASSTYPE_LAZY_ASSIGNMENT_OP, CLASSTYPE_LAZY_COPY_CTOR, CLASSTYPE_LAZY_DEFAULT_CTOR, CLASSTYPE_LAZY_DESTRUCTOR, DECL_VIRTUAL_P, dtor(), lazily_declare_fn(), sfk_destructor, TYPE_BINFO, TYPE_FOR_JAVA, TYPE_HAS_ASSIGN_REF, TYPE_HAS_CONST_ASSIGN_REF, TYPE_HAS_CONST_INIT_REF, TYPE_HAS_CONSTRUCTOR, TYPE_HAS_DEFAULT_CONSTRUCTOR, TYPE_HAS_INIT_REF, and TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
Definition at line 906 of file class.c.
References build_overload(), CLASSTYPE_CONSTRUCTOR_SLOT, CLASSTYPE_DESTRUCTOR_SLOT, CLASSTYPE_FIRST_CONVERSION_SLOT, CLASSTYPE_METHOD_VEC, comp_template_parms(), COMPLETE_TYPE_P, compparms(), cp_error_at(), DECL_ARTIFICIAL, DECL_CONTEXT, DECL_CONV_FN_P, DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, DECL_NAME, DECL_STATIC_FUNCTION_P, DECL_TEMPLATE_CONV_FN_P, DECL_TEMPLATE_PARMS, error(), error_mark_node, grok_special_member_properties(), NULL_TREE, OVL_CURRENT, OVL_NEXT, processing_template_decl, push_class_level_binding(), same, same_type_p, TREE_CHAIN, TREE_CODE, TREE_TYPE, TREE_VALUE, TYPE_ARG_TYPES, TYPE_FOR_JAVA, TYPE_HAS_CONVERSION, TYPE_HAS_NONTRIVIAL_DESTRUCTOR, TYPE_QUALS, VEC, VEC_alloc, VEC_index, VEC_iterate, VEC_length, VEC_quick_insert, VEC_quick_push, VEC_replace, VEC_reserve, and VEC_reserve_exact.
| static void add_vcall_offset | ( | tree | orig_fn, | |
| tree | binfo, | |||
| vtbl_init_data * | vid | |||
| ) | [static] |
Definition at line 7650 of file class.c.
References base, vtbl_init_data_s::binfo, BINFO_OFFSET, build1, build_tree_list, CLASSTYPE_VCALL_INDICES, DECL_DESTRUCTOR_P, vtbl_init_data_s::derived, error_mark_node, find_final_overrider(), vtbl_init_data_s::fns, fold_build1, vtbl_init_data_s::generate_vcall_entries, vtbl_init_data_s::index, integer_zero_node, vtbl_init_data_s::last_init, NULL, NULL_TREE, vtbl_init_data_s::rtti_binfo, same_signature_p(), size_binop(), size_diffop(), ssize_int, TREE_CHAIN, tree_pair_s, TREE_VALUE, TYPE_BINFO, VEC_iterate, VEC_safe_push, and vtable_entry_type.
| static void add_vcall_offset_vtbl_entries_1 | ( | tree | binfo, | |
| vtbl_init_data * | vid | |||
| ) | [static] |
Definition at line 7565 of file class.c.
References abi_version_at_least, add_vcall_offset(), vtbl_init_data_s::binfo, BINFO_INHERITANCE_CHAIN, BINFO_TYPE, BINFO_VIRTUAL_P, BINFO_VIRTUALS, BV_FN, vtbl_init_data_s::ctor_vtbl_p, DECL_CONTEXT, DECL_VINDEX, gcc_assert, get_primary_binfo(), original_binfo(), vtbl_init_data_s::rtti_binfo, SAME_BINFO_TYPE_P, TREE_CHAIN, TYPE_BINFO, TYPE_METHODS, and vtbl_init_data_s::vbase.
| static void add_vcall_offset_vtbl_entries_r | ( | tree | binfo, | |
| vtbl_init_data * | vid | |||
| ) | [static] |
Definition at line 7535 of file class.c.
References add_vcall_offset_vtbl_entries_1(), add_vcall_offset_vtbl_entries_r(), BINFO_BASE_ITERATE, BINFO_VIRTUAL_P, get_primary_binfo(), and vtbl_init_data_s::vbase.
Definition at line 3944 of file class.c.
References build_cplus_method_type(), build_exception_variant(), build_method_type_directly(), DECL_CLONED_FUNCTION, DECL_HAS_IN_CHARGE_PARM_P, DECL_HAS_VTT_PARM_P, gcc_assert, my_friendly_assert, NULL_TREE, same_type_p, TREE_CHAIN, tree_cons, TREE_PURPOSE, TREE_TYPE, TREE_VALUE, TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, and TYPE_RAISES_EXCEPTIONS.
Definition at line 1123 of file class.c.
References DECL_ACCESS, DECL_DISCRIMINATOR_P, DECL_LANG_SPECIFIC, DECL_NAME, error(), gcc_assert, perform_or_defer_access_check(), purpose_member(), retrofit_lang_decl(), TREE_CODE, tree_cons, TREE_TYPE, TREE_VALUE, and TYPE_BINFO.
Definition at line 1812 of file class.c.
References binfo_for_vbase(), BINFO_INHERITANCE_CHAIN, BINFO_TYPE, BINFO_VIRTUAL_P, and NULL_TREE.
| static tree* build_base_field | ( | record_layout_info | rli, | |
| tree | binfo, | |||
| splay_tree | offsets, | |||
| tree * | next_field | |||
| ) | [static] |
Definition at line 3576 of file class.c.
References abi_version_at_least, BINFO_OFFSET, BINFO_TYPE, BINFO_VIRTUAL_P, build_decl, CLASSTYPE_ALIGN, CLASSTYPE_ALIGN_UNIT, CLASSTYPE_AS_BASE, CLASSTYPE_EMPTY_P, CLASSTYPE_NEARLY_EMPTY_P, CLASSTYPE_SIZE, CLASSTYPE_SIZE_UNIT, CLASSTYPE_USER_ALIGN, COMPLETE_TYPE_P, DECL_ALIGN, DECL_ARTIFICIAL, DECL_FIELD_CONTEXT, DECL_FIELD_IS_BASE, DECL_IGNORED_P, DECL_MODE, DECL_SIZE, DECL_SIZE_UNIT, DECL_USER_ALIGN, empty_base_at_nonzero_offset_p(), is_empty_class(), layout_empty_base(), layout_nonempty_base_or_field(), NULL, NULL_TREE, record_subobject_offsets(), rli_size_unit_so_far(), round_up(), size_zero_node, record_layout_info_s::t, TREE_CHAIN, TYPE_MODE, walk_subobject_offsets(), and warning.
| static void build_base_fields | ( | record_layout_info | rli, | |
| splay_tree | offsets, | |||
| tree * | next_field | |||
| ) | [static] |
Definition at line 3680 of file class.c.
References BINFO_BASE_BINFO, BINFO_N_BASE_BINFOS, BINFO_VIRTUAL_P, build_base_field(), CLASSTYPE_HAS_PRIMARY_BASE_P, CLASSTYPE_PRIMARY_BINFO, i, record_layout_info_s::t, and TYPE_BINFO.
Definition at line 3749 of file class.c.
References at_eof, base_dtor_identifier, build_clone(), build_exception_variant(), build_method_type_directly(), copy_decl(), copy_list(), copy_node, cp_build_type_attribute_variant(), cxx_dup_lang_specific_decl(), DECL_ABSTRACT_ORIGIN, DECL_ARGUMENTS, DECL_CLONED_FUNCTION, DECL_CONTEXT, DECL_DEFERRED_FN, DECL_HAS_IN_CHARGE_PARM_P, DECL_HAS_VTT_PARM_P, DECL_NAME, DECL_NEEDS_VTT_PARM_P, DECL_PENDING_INLINE_INFO, DECL_PENDING_INLINE_P, DECL_TEMPLATE_INFO, DECL_TEMPLATE_RESULT, DECL_TI_TEMPLATE, DECL_VINDEX, DECL_VIRTUAL_P, note_decl_for_pch(), NULL, NULL_RTX, NULL_TREE, pch_file, rest_of_decl_compilation(), result, SET_DECL_ASSEMBLER_NAME, SET_DECL_RTL, TREE_CHAIN, TREE_CODE, TREE_TYPE, TYPE_ARG_TYPES, TYPE_ATTRIBUTES, TYPE_METHOD_BASETYPE, and TYPE_RAISES_EXCEPTIONS.
Definition at line 6955 of file class.c.
References accumulate_vtbl_inits(), b, BINFO_TYPE, BINFO_VIRTUAL_P, build_cplus_array_type(), build_index_type(), build_tree_list, build_vtable(), chainon(), CLASSTYPE_VTABLES, copied_binfo(), DECL_CONSTRUCTION_VTABLE_P, dump_vtable(), gcc_assert, IDENTIFIER_GLOBAL_VALUE, initialize_artificial_var(), list_length(), mangle_ctor_vtbl_for_type(), NULL_TREE, ptr_type_node, SAME_BINFO_TYPE_P, size_int, TREE_CHAIN, TREE_TYPE, TREE_VALUE, TYPE_BINFO, and vtable_entry_type.
Definition at line 770 of file class.c.
References BINFO_NEW_VTABLE_MARKED, BINFO_VIRTUALS, BINFO_VTABLE, copy_list(), DECL_SIZE, DECL_SIZE_UNIT, gcc_assert, get_vtable_decl(), get_vtbl_decl_for_binfo(), list_length(), NULL_TREE, SET_BINFO_NEW_VTABLE_MARKED, TREE_TYPE, TYPE_BINFO, TYPE_SIZE, TYPE_SIZE_UNIT, and vtbl_type_node.
| static void build_rtti_vtbl_entries | ( | tree | binfo, | |
| vtbl_init_data * | vid | |||
| ) | [static] |
Definition at line 7724 of file class.c.
References BINFO_INHERITANCE_CHAIN, BINFO_LOST_PRIMARY_P, BINFO_OFFSET, BINFO_PRIMARY_P, BINFO_TYPE, build_address(), build_nop(), build_tree_list, CLASSTYPE_HAS_PRIMARY_BASE_P, flag_rtti, gcc_assert, get_primary_binfo(), get_tinfo_decl(), integer_zero_node, vtbl_init_data_s::last_init, NULL_TREE, offset, vtbl_init_data_s::rtti_binfo, size_diffop(), TREE_CHAIN, and vfunc_ptr_type_node.
| static int build_secondary_vtable | ( | tree | binfo | ) | [static] |
Definition at line 823 of file class.c.
References BINFO_NEW_VTABLE_MARKED, BINFO_VIRTUALS, BINFO_VTABLE, copy_list(), NULL_TREE, and SET_BINFO_NEW_VTABLE_MARKED.
Definition at line 6222 of file class.c.
References access_public_node, build_lang_decl(), constructor_name(), current_access_specifier, current_class_type, DECL_ARTIFICIAL, DECL_CONTEXT, DECL_NONLOCAL, finish_member_declaration(), processing_template_decl, push_template_decl(), and SET_DECL_SELF_REFERENCE_P.
Definition at line 433 of file class.c.
References BINFO_INHERITANCE_CHAIN, BINFO_TYPE, build3, build_indirect_ref(), build_simple_base_path(), cp_build_qualified_type, cp_type_quals(), DECL_FIELD_IS_BASE, fold_if_not_in_template(), gcc_assert, gcc_unreachable, NULL, NULL_TREE, TREE_CHAIN, TREE_CODE, TREE_READONLY, TREE_THIS_VOLATILE, TREE_TYPE, TYPE_FIELDS, TYPE_MAIN_VARIANT, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE, and unary_complex_lvalue().
| static void build_vbase_offset_vtbl_entries | ( | tree | binfo, | |
| vtbl_init_data * | vid | |||
| ) | [static] |
Definition at line 7403 of file class.c.
References vtbl_init_data_s::binfo, BINFO_INHERITANCE_CHAIN, BINFO_OFFSET, BINFO_TYPE, BINFO_VIRTUAL_P, BINFO_VPTR_FIELD, BINFO_VTABLE_PATH_MARKED, build_tree_list, CLASSTYPE_VBASECLASSES, convert(), copied_binfo(), vtbl_init_data_s::derived, fold_build1, gcc_assert, get_primary_binfo(), vtbl_init_data_s::index, vtbl_init_data_s::last_init, NULL_TREE, vtbl_init_data_s::primary_vtbl_p, size_binop(), size_diffop(), ssize_int, ssizetype, TREE_CHAIN, tree_int_cst_equal(), TYPE_BINFO, TYPE_SIZE_UNIT, and vtable_entry_type.
| static void build_vcall_and_vbase_vtbl_entries | ( | tree | binfo, | |
| vtbl_init_data * | vid | |||
| ) | [static] |
Definition at line 7381 of file class.c.
References build_vbase_offset_vtbl_entries(), build_vcall_and_vbase_vtbl_entries(), build_vcall_offset_vtbl_entries(), and get_primary_binfo().
| static void build_vcall_offset_vtbl_entries | ( | tree | binfo, | |
| vtbl_init_data * | vid | |||
| ) | [static] |
Definition at line 7497 of file class.c.
References add_vcall_offset_vtbl_entries_r(), BINFO_VIRTUAL_P, vtbl_init_data_s::derived, vtbl_init_data_s::generate_vcall_entries, TYPE_BINFO, and vtbl_init_data_s::vbase.
Definition at line 550 of file class.c.
References build(), build3, build_simple_base_path(), CLASSTYPE_PRIMARY_BINFO, convert_from_reference(), convert_to_base(), DECL_CONTEXT, error_mark_node, NULL_TREE, same_type_ignoring_top_level_qualifiers_p, TREE_CODE, TREE_TYPE, TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P, and TYPE_VFIELD.
Definition at line 630 of file class.c.
References build1, build3, build_indirect_ref(), build_unary_op(), build_vtable_entry_ref(), build_vtbl_ref_1(), flag_vtable_gc, TARGET_VTABLE_USES_DESCRIPTORS, and TREE_TYPE.
Definition at line 688 of file class.c.
References build_lang_decl(), DECL_ALIGN, DECL_ARTIFICIAL, DECL_CONTEXT, DECL_EXTERNAL, DECL_IGNORED_P, DECL_NOT_REALLY_EXTERN, DECL_VIRTUAL_P, DECL_VTABLE_OR_VTT_P, double_type_node, MAX, SET_DECL_ASSEMBLER_NAME, set_linkage_according_to_type(), TARGET_VTABLE_ENTRY_ALIGN, TREE_READONLY, TREE_STATIC, and TYPE_ALIGN.
Definition at line 619 of file class.c.
References build_vtable_entry_ref(), build_vtbl_ref_1(), and flag_vtable_gc.
Definition at line 585 of file class.c.
References assemble_external(), ba_quiet, ba_unique, BINFO_VTABLE, build_array_ref(), build_vfield_ref(), fixed_type_or_null(), lookup_base(), non_reference(), NULL, NULL_TREE, TREE_CONSTANT, TREE_INVARIANT, TREE_TYPE, and unshare_expr().
Definition at line 6711 of file class.c.
References build_cplus_array_type(), build_index_type(), build_vtable(), build_vtt_inits(), CLASSTYPE_VTABLES, const_ptr_type_node, dump_vtt(), index(), initialize_artificial_var(), list_length(), mangle_vtt_for_type(), NULL_TREE, size_int, size_zero_node, TREE_CHAIN, and TYPE_BINFO.
Definition at line 6790 of file class.c.
References b, BINFO_BASE_ITERATE, binfo_ctor_vtable(), BINFO_SUBVTT_INDEX, BINFO_TYPE, BINFO_VIRTUAL_P, BINFO_VPTR_INDEX, build_ctor_vtbl_group(), build_tree_list, build_vtt_inits(), CLASSTYPE_VBASECLASSES, dfs_build_secondary_vptr_vtt_inits(), dfs_fixup_binfo_vtbls(), dfs_walk_all(), dfs_walk_once(), gcc_assert, i, secondary_vptr_vtt_init_data_s::index, secondary_vptr_vtt_init_data_s::inits, nreverse(), NULL, NULL_TREE, ptr_type_node, SAME_BINFO_TYPE_P, size_binop(), secondary_vptr_vtt_init_data_s::top_level_p, TREE_CHAIN, secondary_vptr_vtt_init_data_s::type_being_constructed, TYPE_BINFO, and TYPE_SIZE_UNIT.
Definition at line 1231 of file class.c.
References BINFO_BASE_ITERATE, BINFO_VIRTUAL_P, CLASSTYPE_CONTAINS_EMPTY_CLASS_P, CLASSTYPE_NEARLY_EMPTY_P, COMPLETE_TYPE_P, gcc_assert, i, is_empty_class(), TREE_TYPE, TYPE_BINFO, TYPE_HAS_ASSIGN_REF, TYPE_HAS_COMPLEX_ASSIGN_REF, TYPE_HAS_COMPLEX_INIT_REF, TYPE_HAS_CONST_ASSIGN_REF, TYPE_HAS_CONST_INIT_REF, TYPE_HAS_NONTRIVIAL_DESTRUCTOR, TYPE_NEEDS_CONSTRUCTING, TYPE_POLYMORPHIC_P, and warning.
Definition at line 4106 of file class.c.
References add_implicitly_declared_members(), check_bases(), check_field_decls(), check_methods(), CLASSTYPE_NEARLY_EMPTY_P, CLASSTYPE_NON_AGGREGATE, CLASSTYPE_NON_POD_P, clone_constructors_and_destructors(), finish_struct_methods(), handle_using_decl(), TREE_CHAIN, TREE_VALUE, TYPE_CONTAINS_VPTR_P, TYPE_HAS_ASSIGN_REF, TYPE_HAS_COMPLEX_ASSIGN_REF, TYPE_HAS_COMPLEX_INIT_REF, TYPE_HAS_CONSTRUCTOR, TYPE_HAS_INIT_REF, TYPE_HAS_NONTRIVIAL_DESTRUCTOR, TYPE_LANG_SPECIFIC, TYPE_NEEDS_CONSTRUCTING, TYPE_POLYMORPHIC_P, and type_requires_array_cookie().
Definition at line 2656 of file class.c.
References bitsizetype, CLEAR_DECL_C_BIT_FIELD, compare_tree_int(), convert(), DECL_BIT_FIELD, DECL_INITIAL, DECL_NAME, DECL_SIZE, error(), error_mark_node, gcc_assert, integer_zerop(), integral_constant_value(), INTEGRAL_TYPE_P, min_precision(), NULL_TREE, STRIP_NOPS, TREE_CODE, tree_int_cst_sgn(), TREE_TYPE, TYPE_MAX_VALUE, TYPE_MIN_VALUE, TYPE_PRECISION, TYPE_UNSIGNED, and warning.
| static void check_field_decl | ( | tree | field, | |
| tree | t, | |||
| int * | cant_have_const_ctor, | |||
| int * | no_const_asn_ref, | |||
| int * | any_default_members | |||
| ) | [static] |
Definition at line 2732 of file class.c.
References abstract_virtuals_error(), ANON_AGGR_TYPE_P, ANON_UNION_TYPE_P, check_field_decl(), CLASS_TYPE_P, DECL_C_BIT_FIELD, DECL_INITIAL, error(), NULL_TREE, strip_array_types(), TREE_CHAIN, TREE_CODE, TREE_TYPE, TYPE_FIELDS, TYPE_HAS_COMPLEX_ASSIGN_REF, TYPE_HAS_COMPLEX_INIT_REF, TYPE_HAS_CONST_ASSIGN_REF, TYPE_HAS_CONST_INIT_REF, TYPE_HAS_NONTRIVIAL_DESTRUCTOR, and TYPE_NEEDS_CONSTRUCTING.
| static void check_field_decls | ( | tree | t, | |
| tree * | access_decls, | |||
| int * | cant_have_const_ctor_p, | |||
| int * | no_const_asn_ref_p | |||
| ) | [static] |
Definition at line 2825 of file class.c.
References BITS_PER_UNIT, build_pointer_type(), C_TYPE_FIELDS_READONLY, check_bitfield_decl(), check_field_decl(), CLASS_TYPE_P, CLASSTYPE_CONTAINS_EMPTY_CLASS_P, CLASSTYPE_EMPTY_P, CLASSTYPE_HAS_MUTABLE, CLASSTYPE_NEARLY_EMPTY_P, CLASSTYPE_NON_AGGREGATE, CLASSTYPE_NON_POD_P, CLASSTYPE_NON_ZERO_INIT_P, CLASSTYPE_READONLY_FIELDS_NEED_INIT, CLASSTYPE_REF_FIELDS_NEED_INIT, constructor_name_p(), CP_TYPE_CONST_P, DECL_C_BIT_FIELD, DECL_CONTEXT, DECL_INITIAL, DECL_MUTABLE_P, DECL_NAME, DECL_NONLOCAL, DECL_PACKED, error(), error_mark_node, extra_warnings, finish_struct_anon(), integer_zerop(), next, nreverse(), NULL_TREE, pedwarn(), pod_type_p(), SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT, SET_CLASSTYPE_REF_FIELDS_NEED_INIT, strip_array_types(), TREE_CHAIN, TREE_CODE, tree_cons, TREE_PRIVATE, TREE_PROTECTED, TREE_TYPE, TYPE_ALIGN, TYPE_FIELDS, TYPE_HAS_ASSIGN_REF, TYPE_HAS_COMPLEX_ASSIGN_REF, TYPE_HAS_CONSTRUCTOR, TYPE_HAS_INIT_REF, TYPE_HAS_MUTABLE_P, TYPE_HAS_NONTRIVIAL_DESTRUCTOR, TYPE_PACKED, TYPE_PTR_P, TYPE_PTR_TO_MEMBER_P, TYPE_PTRFN_P, warn_ecpp, warning, x, and zero_init_p().
Definition at line 2343 of file class.c.
References DECL_ATTRIBUTES, DECL_CONV_FN_P, DECL_DESTRUCTOR_P, DECL_DLLIMPORT_P, DECL_NAME, DECL_STATIC_FUNCTION_P, DECL_VINDEX, DECL_VIRTUAL_P, error_mark_node, IDENTIFIER_VIRTUAL_P, look_for_overrides(), remove_attribute(), and TREE_CODE.
Definition at line 3721 of file class.c.
References check_for_override(), CLASSTYPE_PURE_VIRTUALS, DECL_DESTRUCTOR_P, DECL_PURE_VIRTUAL_P, DECL_VINDEX, error(), TREE_CHAIN, TYPE_HAS_NONTRIVIAL_DESTRUCTOR, TYPE_METHODS, TYPE_POLYMORPHIC_P, VEC_safe_push, and x.
| static int check_subobject_offset | ( | tree | type, | |
| tree | offset, | |||
| splay_tree | offsets | |||
| ) | [static] |
Definition at line 3118 of file class.c.
References is_empty_class(), n, same_type_p, splay_tree_lookup(), TREE_CHAIN, TREE_VALUE, and splay_tree_node_s::value.
Definition at line 4013 of file class.c.
References CLASSTYPE_CONSTRUCTORS, CLASSTYPE_DESTRUCTORS, CLASSTYPE_METHOD_VEC, clone_function_decl(), OVL_CURRENT, and OVL_NEXT.
Definition at line 3871 of file class.c.
References abort, add_method(), base_ctor_identifier, base_dtor_identifier, build_clone(), complete_ctor_identifier, complete_dtor_identifier, DECL_ABSTRACT, DECL_CLONED_FUNCTION, DECL_COMPLETE_CONSTRUCTOR_P, DECL_CONTEXT, DECL_COPY_CONSTRUCTOR_P, DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, DECL_VIRTUAL_P, deleting_dtor_identifier, gcc_assert, my_friendly_assert, NULL_TREE, TREE_CHAIN, TREE_TYPE, and TYPE_METHOD_BASETYPE.
Definition at line 6269 of file class.c.
References BINFO_BASE_ITERATE, BINFO_TYPE, CLASS_TYPE_P, contains_empty_class_p(), DECL_ARTIFICIAL, i, is_empty_class(), TREE_CHAIN, TREE_CODE, TREE_TYPE, TYPE_BINFO, and TYPE_FIELDS.
Definition at line 499 of file class.c.
References ba_check, ba_unique, build_base_path(), error_mark_node, lookup_base(), NULL, TREE_TYPE, and TYPE_PTR_P.
Definition at line 527 of file class.c.
References BINFO_OFFSET, BINFO_TYPE, build(), build1, build2, build_nop(), build_pointer_type(), build_unary_op(), integer_zerop(), SAME_BINFO_TYPE_P, same_type_p, and TREE_TYPE.
| static int count_fields | ( | tree | fields | ) | [static] |
Definition at line 2620 of file class.c.
References ANON_AGGR_TYPE_P, count_fields(), TREE_CHAIN, TREE_CODE, TREE_TYPE, TYPE_FIELDS, and x.
Definition at line 7775 of file class.c.
References BINFO_VIRTUALS, build_address(), BV_FN, cgraph_node(), DECL_VINDEX, gcc_assert, HOST_WIDE_INT, i, index(), OBJ_TYPE_REF_TOKEN, TARGET_VTABLE_USES_DESCRIPTORS, TREE_CHAIN, tree_int_cst_equal(), tree_low_cst(), and TYPE_BINFO.
Definition at line 4186 of file class.c.
References build_decl, BV_DELTA, BV_FN, BV_VCALL_INDEX, CLASSTYPE_EMPTY_P, DECL_ARTIFICIAL, DECL_FCONTEXT, DECL_FIELD_CONTEXT, DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, DECL_VINDEX, DECL_VIRTUAL_P, get_vfield_name(), integer_zero_node, make_node, NULL_TREE, TREE_CHAIN, TREE_CODE, TYPE_CONTAINS_VPTR_P, TYPE_METHODS, TYPE_VFIELD, and vtbl_ptr_type_node.
| int current_lang_depth | ( | void | ) |
Definition at line 5674 of file class.c.
References current_lang_base, VARRAY_ACTIVE_SIZE, and VEC_length.
Definition at line 5577 of file class.c.
References c, current_class_depth, current_class_type, i, same_type_p, and class_stack_node::type.
Definition at line 5607 of file class.c.
References current_class_depth, current_class_type, dependent_type_p(), DERIVED_FROM_P, i, NULL_TREE, and class_stack_node::type.
Definition at line 4961 of file class.c.
References CLASSTYPE_INTERFACE_KNOWN, CLASSTYPE_KEY_METHOD, CLASSTYPE_TEMPLATE_INSTANTIATION, DECL_DECLARED_INLINE_P, DECL_PURE_VIRTUAL_P, DECL_VINDEX, NULL_TREE, processing_template_decl, TREE_CHAIN, TYPE_FOR_JAVA, and TYPE_METHODS.
Definition at line 1305 of file class.c.
References BINFO_BASE_ITERATE, BINFO_INHERITANCE_CHAIN, BINFO_LOST_PRIMARY_P, BINFO_OFFSET, BINFO_PRIMARY_P, BINFO_TYPE, BINFO_VIRTUAL_P, BINFO_VIRTUALS, BINFO_VTABLE, CLASSTYPE_NEARLY_EMPTY_P, CLASSTYPE_PRIMARY_BINFO, convert(), copied_binfo(), i, NULL_TREE, propagate_binfo_offsets(), SAME_BINFO_TYPE_P, size_diffop(), ssize_int, ssizetype, TREE_CHAIN, TYPE_BINFO, TYPE_CONTAINS_VPTR_P, and TYPE_VFIELD.
| static tree dfs_accumulate_vtbl_inits | ( | tree | binfo, | |
| tree | orig_binfo, | |||
| tree | rtti_binfo, | |||
| tree | t, | |||
| tree | l | |||
| ) | [static] |
Definition at line 7067 of file class.c.
References b, binfo_for_vbase(), BINFO_INHERITANCE_CHAIN, BINFO_NEW_VTABLE_MARKED, BINFO_PRIMARY_P, BINFO_TYPE, BINFO_VIRTUAL_P, BINFO_VTABLE, build2, build_address(), build_vtbl_initializer(), gcc_assert, index(), last, list_length(), NULL_TREE, SAME_BINFO_TYPE_P, size_binop(), size_int, TREE_CODE, tree_cons, TREE_PURPOSE, TREE_TYPE, TREE_VALUE, TYPE_SIZE_UNIT, vtable_entry_type, and vtbl_ptr_type_node.
Definition at line 6873 of file class.c.
References binfo_ctor_vtable(), BINFO_INHERITANCE_CHAIN, BINFO_PRIMARY_P, BINFO_TYPE, binfo_via_virtual(), BINFO_VIRTUAL_P, BINFO_VPTR_INDEX, CLASSTYPE_VBASECLASSES, dfs_skip_bases, gcc_assert, secondary_vptr_vtt_init_data_s::index, secondary_vptr_vtt_init_data_s::inits, NULL_TREE, ptr_type_node, SAME_BINFO_TYPE_P, size_binop(), secondary_vptr_vtt_init_data_s::top_level_p, tree_cons, secondary_vptr_vtt_init_data_s::type_being_constructed, TYPE_SIZE_UNIT, and TYPE_VFIELD.
| static bool dfs_find_final_overrider_1 | ( | tree | binfo, | |
| find_final_overrider_data * | ffod, | |||
| unsigned | depth | |||
| ) | [static] |
Definition at line 1845 of file class.c.
References base_derived_from(), BINFO_TYPE, find_final_overrider_data_s::candidates, dfs_find_final_overrider_1(), find_final_overrider_data_s::fn, look_for_overrides_here(), TREE_CHAIN, tree_cons, TREE_VALUE, and VEC_index.
Definition at line 1891 of file class.c.
References find_final_overrider_data_s::declaring_base, dfs_find_final_overrider_1(), NULL_TREE, VEC_length, and VEC_safe_push.
Definition at line 6929 of file class.c.
References BINFO_TYPE, BINFO_VTABLE, dfs_skip_bases, NULL_TREE, TREE_CHAIN, TREE_CODE, TREE_PURPOSE, and TYPE_CONTAINS_VPTR_P.
Definition at line 2213 of file class.c.
References BINFO_PRIMARY_P, BINFO_TYPE, BINFO_VIRTUAL_P, BINFO_VIRTUALS, BV_FN, CLASSTYPE_HAS_PRIMARY_BASE_P, dfs_skip_bases, make_new_vtable(), NULL_TREE, SAME_BINFO_TYPE_P, TREE_CHAIN, TYPE_BINFO, TYPE_CONTAINS_VPTR_P, and update_vtable_entry_for_fn().
Definition at line 6539 of file class.c.
References BITS_PER_UNIT, CONSTRUCTOR_ELTS, decl_as_string(), DECL_INITIAL, expr_as_string(), FOR_EACH_CONSTRUCTOR_VALUE, fprintf(), HOST_WIDE_INT, size, size_binop(), size_one_node, TFF_PLAIN_IDENTIFIER, tree_low_cst(), TREE_TYPE, TYPE_DOMAIN, TYPE_MAX_VALUE, and TYPE_SIZE.
Definition at line 6526 of file class.c.
References dump_begin(), dump_class_hierarchy_1(), dump_end(), flags, stream, and TDI_class.
Definition at line 6502 of file class.c.
References BITS_PER_UNIT, CLASSTYPE_AS_BASE, dump_class_hierarchy_r(), fprintf(), TFF_PLAIN_IDENTIFIER, tree_low_cst(), TYPE_ALIGN, type_as_string(), TYPE_BINFO, and TYPE_SIZE.
| static tree dump_class_hierarchy_r | ( | FILE * | stream, | |
| int | flags, | |||
| tree | binfo, | |||
| tree | igo, | |||
| int | indent | |||
| ) | [static] |
Definition at line 6408 of file class.c.
References BINFO_BASE_ITERATE, BINFO_INHERITANCE_CHAIN, BINFO_LOST_PRIMARY_P, BINFO_OFFSET, BINFO_PRIMARY_P, BINFO_SUBVTT_INDEX, BINFO_TYPE, BINFO_VIRTUAL_P, BINFO_VPTR_FIELD, BINFO_VPTR_INDEX, BINFO_VTABLE, CLASSTYPE_NEARLY_EMPTY_P, dump_class_hierarchy_r(), expr_as_string(), fprintf(), HOST_WIDE_INT_PRINT_DEC, i, is_empty_class(), maybe_indent_hierarchy(), TDF_SLIM, TFF_PLAIN_IDENTIFIER, TREE_CHAIN, tree_low_cst(), and type_as_string().
Definition at line 6613 of file class.c.
References BINFO_TYPE, BINFO_VPTR_FIELD, DECL_NAME, DECL_THIS_THUNK_P, DECL_THUNK_P, DECL_THUNKS, dump_thunk(), fprintf(), HOST_WIDE_INT, HOST_WIDE_INT_PRINT_DEC, IDENTIFIER_POINTER, spaces(), TFF_SCOPE, THUNK_ALIAS, THUNK_FIXED_OFFSET, THUNK_VIRTUAL_OFFSET, TREE_CHAIN, tree_low_cst(), and type_as_string().
Definition at line 6561 of file class.c.
References BINFO_TYPE, BINFO_VIRTUAL_P, dump_array(), dump_begin(), dump_end(), flags, fprintf(), stream, TDF_SLIM, TDI_class, TFF_PLAIN_IDENTIFIER, type_as_string(), and TYPE_BINFO.
Definition at line 6591 of file class.c.
References dump_array(), dump_begin(), dump_end(), flags, fprintf(), stream, TDF_SLIM, TDI_class, TFF_PLAIN_IDENTIFIER, and type_as_string().
| static int empty_base_at_nonzero_offset_p | ( | tree | type, | |
| tree | offset, | |||
| splay_tree offsets | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 4419 of file class.c.
References BINFO_OFFSET, BINFO_TYPE, CLASSTYPE_SIZE_UNIT, is_empty_class(), size, size_binop(), and TYPE_SIZE_UNIT.
Definition at line 4439 of file class.c.
References abi_version_at_least, BINFO_BASE_ITERATE, BINFO_INHERITANCE_CHAIN, BINFO_PRIMARY_P, BINFO_VIRTUAL_P, CLASSTYPE_VBASECLASSES, end_of_base(), i, INT_CST_LT_UNSIGNED, offset, result, size_zero_node, TYPE_BINFO, VEC, and VEC_iterate.
Definition at line 1917 of file class.c.
References find_final_overrider_data_s::candidates, DECL_THUNK_P, find_final_overrider_data_s::declaring_base, dfs_find_final_overrider_post(), dfs_find_final_overrider_pre(), dfs_walk_all(), error_mark_node, find_final_overrider_data_s::fn, NULL_TREE, THUNK_TARGET, TREE_CHAIN, VEC_alloc, and VEC_free.
Definition at line 5213 of file class.c.
References add_stmt(), at_function_scope_p(), ATTR_FLAG_TYPE_IN_PLACE, bitsize_zero_node, build_min(), CLASSTYPE_PURE_VIRTUALS, complete_vars(), cplus_decl_attributes(), current_class_type, DECL_PURE_VIRTUAL_P, DECL_SOURCE_FILE, DECL_SOURCE_LINE, DECL_SOURCE_LOCATION, error(), finish_struct_1(), finish_struct_methods(), input_filename, input_location, lineno, NULL, popclass(), processing_template_decl, size_zero_node, TREE_CHAIN, TYPE_BEING_DEFINED, TYPE_METHODS, TYPE_NAME, TYPE_SIZE, TYPE_SIZE_UNIT, unreverse_member_declarations(), VEC_safe_push, and x.
Definition at line 4992 of file class.c.
References abort, add_fields_to_record_type(), add_fields_to_vec(), gcc_target::cxx::adjust_class_at_definition, BINFO_NEW_VTABLE_MARKED, BINFO_OFFSET, BINFO_TYPE, BINFO_VIRTUALS, BINFO_VTABLE, build_int_cst(), build_primary_vtable(), build_tree_list, build_vtt(), BV_FN, chainon(), check_bases_and_members(), CLASSTYPE_AS_BASE, CLASSTYPE_CONTAINS_EMPTY_CLASS_P, CLASSTYPE_DESTRUCTORS, CLASSTYPE_EMPTY_P, CLASSTYPE_FRIEND_CLASSES, CLASSTYPE_GOT_SEMICOLON, CLASSTYPE_HAS_PRIMARY_BASE_P, CLASSTYPE_KEY_METHOD, CLASSTYPE_METHOD_VEC, CLASSTYPE_NEARLY_EMPTY_P, CLASSTYPE_PRIMARY_BINFO, CLASSTYPE_VFIELDS, COMPLETE_TYPE_P, complete_vars(), compute_record_mode(), constrain_class_visibility(), copy_decl(), count_fields(), gcc_target::cxx, DECL_FIELD_CONTEXT, DECL_FIELD_OFFSET, DECL_FRIENDLIST, DECL_LANG_SPECIFIC, DECL_MODE, DECL_SORTED_FIELDS, DECL_THUNK_P, DECL_VINDEX, DECL_VIRTUAL_P, determine_key_method(), dtor(), dump_class_hierarchy(), error(), error_mark_node, field_decl_cmp(), finish_struct_bits(), finish_vtbls(), fixup_inline_methods(), gcc_assert, GGC_NEWVAR, integer_zerop(), IS_AGGR_TYPE, key_method(), gcc_target::cxx::key_method_may_be_inline, keyed_classes, layout_class_type(), LOCAL_CLASS_P, make_tree_vec, maybe_suppress_debug_info(), modify_all_vtables(), my_friendly_assert, nreverse(), NULL_TREE, popclass(), qsort(), rest_of_type_compilation(), retrofit_lang_decl(), same_type_p, TARGET_VTABLE_USES_DESCRIPTORS, targetm, TREE_ADDRESSABLE, TREE_CHAIN, TREE_CODE, tree_cons, TREE_PRIVATE, TREE_STATIC, TREE_TYPE, TREE_VEC_ELT, TYPE_BINFO, TYPE_BINFO_VIRTUALS, TYPE_BINFO_VTABLE, TYPE_CONTAINS_VPTR_P, TYPE_FIELDS, TYPE_FOR_JAVA, TYPE_HAS_CONSTRUCTOR, TYPE_HAS_DESTRUCTOR, TYPE_MAIN_DECL, TYPE_MAIN_VARIANT, TYPE_MODE, TYPE_POLYMORPHIC_P, TYPE_SIZE, TYPE_VFIELD, VF_BINFO_VALUE, warn_hidden(), warn_nonvdtor, warn_overloaded_virtual, warning, and x.
Definition at line 2456 of file class.c.
References ANON_AGGR_TYPE_P, DECL_ARTIFICIAL, DECL_IMPLICIT_TYPEDEF_P, DECL_NAME, NULL_TREE, pedwarn(), TREE_CHAIN, TREE_CODE, TREE_PRIVATE, TREE_PROTECTED, TREE_STATIC, TREE_TYPE, TYPE_ANONYMOUS_P, and TYPE_FIELDS.
Definition at line 1431 of file class.c.
References BINFO_N_BASE_BINFOS, DECL_MODE, get_pure_virtuals(), TREE_ADDRESSABLE, TYPE_BINFO, TYPE_FIELDS, TYPE_HAS_CONSTRUCTOR, TYPE_HAS_NONTRIVIAL_DESTRUCTOR, TYPE_HAS_TRIVIAL_INIT_REF, TYPE_MAIN_DECL, TYPE_METHODS, TYPE_MODE, TYPE_NEEDS_CONSTRUCTING, TYPE_NEXT_VARIANT, TYPE_POLYMORPHIC_P, and TYPE_VFIELD.
Definition at line 1716 of file class.c.
References CLASSTYPE_FIRST_CONVERSION_SLOT, CLASSTYPE_METHOD_VEC, DECL_CONV_FN_P, DECL_IN_AGGR_P, len, maybe_warn_about_overly_private_class(), method_name_cmp(), OVL_CURRENT, qsort(), TREE_CHAIN, TYPE_METHODS, VEC, VEC_address, VEC_iterate, and VEC_length.
Definition at line 6660 of file class.c.
References accumulate_vtbl_inits(), BINFO_VIRTUAL_P, BINFO_VTABLE, build_tree_list, initialize_vtable(), NULL_TREE, TREE_CHAIN, TREE_VALUE, and TYPE_BINFO.
Definition at line 5275 of file class.c.
References current_class_ptr, current_function_decl, DECL_CONSTRUCTOR_P, DECL_DESTRUCTOR_P, DECL_FIELD_IS_BASE, DECL_INITIAL, DECL_LANG_SPECIFIC, DECL_P, DECL_VAR_MARKED_P, fixed_type_or_null(), get_base_address(), IS_AGGR_TYPE, NULL_TREE, POINTER_TYPE_P, TREE_CODE, TREE_HAS_CONSTRUCTOR, TREE_OPERAND, and TREE_TYPE.
Definition at line 4270 of file class.c.
References CLASSTYPE_INLINE_FRIENDS, fixup_pending_inline(), NULL, TREE_CHAIN, TREE_CODE, TREE_VEC_ELT, TYPE_METHODS, VEC, and VEC_iterate.
Definition at line 4253 of file class.c.
References args, DECL_ARGUMENTS, DECL_CONTEXT, DECL_PENDING_INLINE_INFO, and TREE_CHAIN.
Definition at line 2304 of file class.c.
References BINFO_BASE_BINFO, BINFO_N_BASE_BINFOS, BINFO_TYPE, chainon(), CLASSTYPE_METHOD_VEC, DECL_VINDEX, get_basefndecls(), i, lookup_fnfields_1(), NULL_TREE, OVL_CURRENT, OVL_NEXT, TREE_CODE, tree_cons, TYPE_BINFO, and VEC_index.
Definition at line 6381 of file class.c.
References BINFO_TYPE, CLASSTYPE_PRIMARY_BINFO, copied_binfo(), and NULL_TREE.
Definition at line 1964 of file class.c.
References CLASSTYPE_VCALL_INDICES, DECL_DESTRUCTOR_P, gcc_unreachable, p, same_signature_p(), tree_pair_s, VEC, and VEC_iterate.
Definition at line 6175 of file class.c.
References alloca, BINFO_BASE_BINFO, BINFO_N_BASE_BINFOS, BINFO_TYPE, BINFO_VIRTUAL_P, buf, constructor_name(), get_identifier(), IDENTIFIER_POINTER, sprintf(), TYPE_BINFO, TYPE_CONTAINS_VPTR_P, TYPE_NAME_LENGTH, and VFIELD_NAME_FORMAT.
Definition at line 744 of file class.c.
References build_vtable(), CLASSTYPE_VTABLES, cp_finish_decl(), DECL_ALIGN, DECL_EXTERNAL, double_type_node, finish_decl(), get_vtable_name(), MAX, NULL_TREE, TYPE_ALIGN, void_type_node, and vtbl_type_node.
Definition at line 6358 of file class.c.
References BINFO_VTABLE, gcc_assert, my_friendly_assert, TREE_CODE, and TREE_OPERAND.
| static GTY | ( | () | ) | [static] |
Definition at line 115 of file class.c.
References BINFO_INHERITANCE_CHAIN, BINFO_OFFSET, BINFO_TYPE, BINFO_VIRTUAL_P, BINFO_VPTR_FIELD, boolean_type_node, build1, build2, build3, build_address(), build_indirect_ref(), build_nop(), build_pointer_type(), build_simple_base_path(), build_unary_op(), build_vfield_ref(), class_type, convert(), convert_to_integer(), cp_build_qualified_type, cp_convert(), cp_type_quals(), current_class_type, current_in_charge_parm, current_vtt_parm, error(), error_mark_node, fold_build1, fold_build2, fold_build3, gcc_assert, in_base_initializer, integer_zero_node, integer_zerop(), is_empty_class(), NULL, NULL_TREE, offset, out, ptrdiff_type_node, resolves_to_fixed_type_p(), SAME_BINFO_TYPE_P, save_expr(), size_diffop(), target_type(), TREE_CODE, TREE_CONSTANT, TREE_INVARIANT, TREE_SIDE_EFFECTS, TREE_TYPE, TYPE_MAIN_VARIANT, TYPE_VFIELD, and zero.
Definition at line 1163 of file class.c.
References access, access_private_node, access_protected_node, access_public_node, add_method(), alter_access(), cp_emit_debug_info_for_using(), DECL_ARTIFICIAL, DECL_CONTEXT, DECL_NAME, DECL_P, error(), gcc_assert, is_overloaded_fn(), lookup_member(), NULL_TREE, OVL_CURRENT, OVL_NEXT, processing_template_decl, TREE_PRIVATE, TREE_PROTECTED, USING_DECL_DECLS, and USING_DECL_SCOPE.
| static void include_empty_classes | ( | record_layout_info | rli | ) | [static] |
Definition at line 4534 of file class.c.
References abi_version_at_least, record_layout_info_s::bitpos, BITS_PER_UNIT, bitsize_int, bitsizetype, CLASSTYPE_AS_BASE, convert(), end_of_class(), gcc_assert, INT_CST_LT_UNSIGNED, normalize_rli(), NULL_TREE, rli_size_unit_so_far(), round_down(), size_binop(), record_layout_info_s::t, TREE_CODE, and tree_int_cst_equal().
Definition at line 5433 of file class.c.
References access_default_node, access_default_virtual_node, access_private_node, access_private_virtual_node, access_protected_node, access_protected_virtual_node, access_public_node, access_public_virtual_node, ak_private, ak_protected, ak_public, build_int_2, current_class_depth, current_class_stack_size, RID_PRIVATE, RID_PROTECTED, RID_PUBLIC, ridpointers, size_zero_node, VARRAY_TREE_INIT, VEC_alloc, xmalloc(), and XNEWVEC.
Definition at line 6687 of file class.c.
References BINFO_TYPE, dump_vtable(), get_vtbl_decl_for_binfo(), initialize_artificial_var(), layout_vtable_decl(), and list_length().
| tree instantiate_type | ( | tree | lhstype, | |
| tree | rhs, | |||
| tsubst_flags_t | flags | |||
| ) |
Definition at line 6028 of file class.c.
References abort, args, BASELINK_ACCESS_BINFO, BASELINK_FUNCTIONS, BASELINK_P, build2, build_pointer_type(), COMPARE_NO_ATTRIBUTES, COMPARE_STRICT, comptypes(), copy_node, error(), error_mark_node, flag_ms_extensions, gcc_assert, gcc_unreachable, instantiate_type(), member(), my_friendly_assert, NULL_TREE, PTRMEM_OK_P, really_overloaded_fn(), resolve_address_of_overloaded_function(), same_type_p, tf_error, tf_no_attributes, tf_ptrmem_ok, TREE_CODE, TREE_OPERAND, TREE_SIDE_EFFECTS, TREE_TYPE, TYPE_PTRMEMFUNC_P, type_unknown_p(), UNKNOWN_TYPE, and unknown_type_node.
Definition at line 5534 of file class.c.
References IDENTIFIER_CLASS_VALUE, NULL, NULL_TREE, previous_class_level, previous_class_type, previous_class_values, record_layout_info_s::t, TREE_CHAIN, and TREE_PURPOSE.
| int is_empty_class | ( | tree | type | ) |
Definition at line 6250 of file class.c.
References abi_version_at_least, CLASSTYPE_EMPTY_P, CLASSTYPE_SIZE, error_mark_node, integer_zerop(), and IS_AGGR_TYPE.
Definition at line 4578 of file class.c.
References abi_version_at_least, record_layout_info_s::bitpos, BITS_PER_UNIT, bitsize_int, bitsize_unit_node, bitsize_zero_node, bitsizetype, build_base_fields(), build_decl, byte_position(), c_build_bitfield_integer_type(), char_type_node, CLASSTYPE_AS_BASE, CLASSTYPE_CONTAINS_EMPTY_CLASS_P, CLASSTYPE_EMPTY_P, CLASSTYPE_NON_POD_P, contains_empty_class_p(), convert(), create_vtable_ptr(), DECL_ALIGN, DECL_ARTIFICIAL, DECL_BIT_FIELD, DECL_C_BIT_FIELD, DECL_CONTEXT, DECL_FIELD_BIT_OFFSET, DECL_FIELD_OFFSET, DECL_IGNORED_P, DECL_MODE, DECL_NAME, DECL_SIZE, DECL_USER_ALIGN, determine_primary_bases(), determine_visibility(), end_of_class(), error_mark_node, finish_record_layout(), HOST_WIDE_INT, include_empty_classes(), INT_CST_LT, integer_types, integer_zerop(), IS_FAKE_BASE_TYPE, itk_char, itk_none, layout_decl(), layout_nonempty_base_or_field(), layout_virtual_bases(), make_anon_name(), make_node, maybe_register_incomplete_var(), normalize_rli(), NULL, NULL_TREE, PCC_BITFIELD_TYPE_MATTERS, place_field(), record_layout_info_s::record_align, record_subobject_offsets(), remove_zero_width_bit_fields(), rli_size_so_far(), rli_size_unit_so_far(), round_up(), size_binop(), size_zero_node, sizetype, splay_tree_compare_integer_csts(), splay_tree_delete(), splay_tree_new(), start_record_layout(), TREE_CHAIN, TREE_CODE, tree_int_cst_equal(), tree_int_cst_lt(), tree_low_cst(), TREE_NO_WARNING, TREE_TYPE, TYPE_ALIGN, TYPE_CONTEXT, TYPE_FIELDS, TYPE_MAIN_DECL, TYPE_MODE, TYPE_PRECISION, TYPE_SIZE, TYPE_SIZE_UNIT, TYPE_UNSIGNED, TYPE_USER_ALIGN, warn_abi, warn_about_ambiguous_bases(), and warning.
| static int layout_conflict_p | ( | tree | type, | |
| tree | offset, | |||
| splay_tree | offsets, | |||
| int | vbases_p | |||
| ) | [static] |
Definition at line 3381 of file class.c.
References check_subobject_offset(), splay_tree_node_s::key, splay_tree_max(), and walk_subobject_offsets().
| static bool layout_empty_base | ( | tree | binfo, | |
| tree | eoc, | |||
| splay_tree | offsets | |||
| ) | [static] |
Definition at line 3517 of file class.c.
References abi_version_at_least, alignment, BINFO_OFFSET, BINFO_TYPE, CLASSTYPE_ALIGN_UNIT, convert(), gcc_assert, integer_zerop(), is_empty_class(), layout_conflict_p(), propagate_binfo_offsets(), size_diffop(), size_zero_node, ssize_int, ssizetype, and warning.
| static void layout_nonempty_base_or_field | ( | record_layout_info | rli, | |
| tree | decl, | |||
| tree | binfo, | |||
| splay_tree | offsets | |||
| ) | [static] |
Definition at line 3408 of file class.c.
References abi_version_at_least, BINFO_OFFSET, BINFO_TYPE, BINFO_VIRTUAL_P, record_layout_info_s::bitpos, bitsize_int, byte_position(), CLASS_TYPE_P, CLASSTYPE_ALIGN, convert(), layout_conflict_p(), normalize_rli(), NULL_TREE, offset, place_field(), propagate_binfo_offsets(), size_binop(), size_diffop(), ssizetype, record_layout_info_s::t, TREE_CODE, TREE_TYPE, and TYPE_ALIGN.
| static void layout_virtual_bases | ( | record_layout_info | rli, | |
| splay_tree | offsets | |||
| ) | [static] |
Definition at line 4342 of file class.c.
References abi_version_at_least, BINFO_N_BASE_BINFOS, BINFO_OFFSET, BINFO_PRIMARY_P, BINFO_VIRTUAL_P, record_layout_info_s::bitpos, bitsize_unit_node, bitsize_zero_node, build_base_field(), CLASSTYPE_ALIGN, CLASSTYPE_SIZE, finish_record_layout(), MAX, record_layout_info_s::offset, record_layout_info_s::record_align, round_up(), size_binop(), STRUCTURE_SIZE_BOUNDARY, record_layout_info_s::t, TREE_CHAIN, tree_int_cst_lt(), TREE_TYPE, TYPE_ALIGN, TYPE_BINFO, TYPE_FIELDS, TYPE_PACKED, TYPE_SIZE_UNIT, warn_abi, and warning.
Definition at line 1754 of file class.c.
References build_cplus_array_type(), build_index_type(), DECL_SIZE, DECL_SIZE_UNIT, get_vtbl_decl_for_binfo(), layout_decl(), layout_type(), NULL_TREE, same_type_p, size_int, TREE_TYPE, and vtable_entry_type.
Definition at line 847 of file class.c.
References build_primary_vtable(), build_secondary_vtable(), and TYPE_BINFO.
Definition at line 2515 of file class.c.
References CLASSTYPE_DECL_LIST, CLASSTYPE_TEMPLATE_INFO, NULL_TREE, and tree_cons.
| static int maybe_indent_hierarchy | ( | FILE * | stream, | |
| int | indent, | |||
| int | indented_p | |||
| ) | [static] |
Definition at line 6299 of file class.c.
References current_class_depth, current_class_type, IDENTIFIER_CLASS_VALUE, innermost_scope_is_class_p(), innermost_scope_kind(), lookup_member(), class_stack_node::names_used, sk_class, splay_tree_compare_pointers(), splay_tree_insert(), splay_tree_new(), and TYPE_BEING_DEFINED.
Definition at line 1492 of file class.c.
References access_private_node, BINFO_BASE_ACCESS, BINFO_N_BASE_BINFOS, CLASSTYPE_CONSTRUCTORS, CLASSTYPE_DESTRUCTORS, CLASSTYPE_FRIEND_CLASSES, CLASSTYPE_LAZY_COPY_CTOR, CLASSTYPE_LAZY_DEFAULT_CTOR, CLASSTYPE_TEMPLATE_INSTANTIATION, ctor(), DECL_ARTIFICIAL, DECL_CONSTRUCTOR_P, DECL_DESTRUCTOR_P, DECL_FRIENDLIST, DECL_STATIC_FUNCTION_P, i, OVL_CURRENT, OVL_NEXT, TREE_CHAIN, TREE_PRIVATE, TYPE_BINFO, TYPE_HAS_CONSTRUCTOR, TYPE_HAS_INIT_REF, TYPE_MAIN_DECL, TYPE_METHODS, warn_ctor_dtor_privacy, and warning.
Definition at line 2265 of file class.c.
References BINFO_VIRTUALS, BV_DELTA, BV_VCALL_INDEX, DECL_VINDEX, dfs_modify_vtables(), dfs_walk_once(), error_mark_node, integer_zero_node, NULL, NULL_TREE, TREE_CHAIN, TREE_VALUE, TYPE_BINFO, and value_member().
| static void modify_vtable_entry | ( | tree | t, | |
| tree | binfo, | |||
| tree | fndecl, | |||
| tree | delta, | |||
| tree * | virtuals | |||
| ) | [static] |
Definition at line 869 of file class.c.
References BINFO_VIRTUALS, BV_DELTA, BV_FN, BV_VCALL_INDEX, make_new_vtable(), NULL_TREE, TREE_CHAIN, and tree_int_cst_equal().
Definition at line 6328 of file class.c.
References cp_error_at(), current_class_depth, DECL_NAME, error(), n, class_stack_node::names_used, OVL_CURRENT, splay_tree_lookup(), and splay_tree_node_s::value.
Definition at line 5567 of file class.c.
References current_class_depth, and class_stack_node::hidden.
Referenced by pop_from_top_level().
Definition at line 5718 of file class.c.
References current_lang_base, current_lang_name, VARRAY_POP, VARRAY_TOP_TREE, and VEC_pop.
Definition at line 5662 of file class.c.
References CLASS_TYPE_P, current_class_type, DECL_CONTEXT, pop_nested_class(), popclass(), and TYPE_MAIN_DECL.
Definition at line 5543 of file class.c.
References class_stack_node::access, current_access_specifier, current_class_depth, current_class_name, current_class_type, class_stack_node::name, pop_class_decls(), poplevel_class(), splay_tree_delete(), and class_stack_node::type.
Definition at line 4303 of file class.c.
References BINFO_BASE_ITERATE, BINFO_INHERITANCE_CHAIN, BINFO_OFFSET, BINFO_VIRTUAL_P, convert(), get_primary_binfo(), i, propagate_binfo_offsets(), size_binop(), sizetype, and ssizetype.
Definition at line 5558 of file class.c.
References current_class_depth, and class_stack_node::hidden.
Referenced by push_to_top_level().
Definition at line 5683 of file class.c.
References current_lang_base, current_lang_name, DECL_IGNORED_P, error(), IDENTIFIER_POINTER, java_boolean_type_node, java_byte_type_node, java_char_type_node, java_double_type_node, java_float_type_node, java_int_type_node, java_long_type_node, java_short_type_node, lang_name_c, lang_name_cplusplus, lang_name_java, TYPE_NAME, VARRAY_PUSH_TREE, and VEC_safe_push.
Definition at line 5639 of file class.c.
References CLASS_TYPE_P, DECL_CONTEXT, error_mark_node, IS_AGGR_TYPE, NULL_TREE, push_nested_class(), pushclass(), TREE_CODE, and TYPE_MAIN_DECL.
Definition at line 5477 of file class.c.
References class_stack_node::access, access_private_node, access_public_node, CLASSTYPE_DECLARED_CLASS, current_access_specifier, current_class_depth, current_class_name, current_class_stack_size, current_class_type, DECL_NAME, class_stack_node::hidden, invalidate_class_lookup_cache(), class_stack_node::name, class_stack_node::names_used, previous_class_level, pushlevel_class(), restore_class_cache(), TREE_CODE, class_stack_node::type, TYPE_MAIN_VARIANT, TYPE_NAME, xrealloc(), and XRESIZEVEC.
| static int record_subobject_offset | ( | tree | type, | |
| tree | offset, | |||
| splay_tree | offsets | |||
| ) | [static] |
Definition at line 3093 of file class.c.
References is_empty_class(), n, NULL_TREE, splay_tree_insert(), splay_tree_lookup(), tree_cons, and splay_tree_node_s::value.
| static void record_subobject_offsets | ( | tree | type, | |
| tree | offset, | |||
| splay_tree | offsets, | |||
| bool | is_data_member | |||
| ) | [static] |
Definition at line 3348 of file class.c.
References BINFO_TYPE, is_empty_class(), NULL_TREE, record_subobject_offset(), and walk_subobject_offsets().
Definition at line 4031 of file class.c.
References DECL_C_BIT_FIELD, DECL_INITIAL, TREE_CHAIN, TREE_CODE, and TYPE_FIELDS.
| static tree resolve_address_of_overloaded_function | ( | tree | target_type, | |
| tree | overload, | |||
| tsubst_flags_t | flags, | |||
| bool | template_only, | |||
| tree | explicit_targs, | |||
| tree | access_path | |||
| ) | [static] |
Definition at line 5736 of file class.c.
References build_pointer_type(), build_ptrmemfunc_type(), build_reference_type(), build_unary_op(), can_convert_arg(), cxx_mark_addressable(), DECL_ANTICIPATED, DECL_FUNCTION_MEMBER_P, DECL_NAME, DECL_NONSTATIC_MEMBER_FUNCTION_P, DECL_NTPARMS, DEDUCE_EXACT, error(), error_mark_node, flag_ms_extensions, fn_type_unification(), gcc_assert, instantiate_template(), is_overloaded_fn(), is_reference(), LOOKUP_NORMAL, make_tree_vec, mark_used(), most_specialized_instantiation(), NULL_TREE, OVL_CURRENT, OVL_FUNCTION, OVL_NEXT, pedwarn(), perform_or_defer_access_check(), print_candidates(), tf_conv, tf_error, tf_ptrmem_ok, TREE_CHAIN, TREE_CODE, tree_cons, TREE_PURPOSE, TREE_TYPE, TREE_VALUE, TYPE_ARG_TYPES, TYPE_PTRFN_P, TYPE_PTRMEMFUNC_FN_TYPE, and TYPE_PTRMEMFUNC_P.
| int resolves_to_fixed_type_p | ( | tree | instance, | |
| int * | nonnull | |||
| ) |
Definition at line 5416 of file class.c.
References fixed, fixed_type_or_null(), NULL_TREE, POINTER_TYPE_P, same_type_ignoring_top_level_qualifiers_p, record_layout_info_s::t, and TREE_TYPE.
Definition at line 1658 of file class.c.
References d1, d2, DECL_NAME, NULL_TREE, OVL_CURRENT, and resort_data.
| void resort_type_method_vec | ( | void * | obj, | |
| void *orig_obj | ATTRIBUTE_UNUSED, | |||
| gt_pointer_operator | new_value, | |||
| void * | cookie | |||
| ) |
Definition at line 1682 of file class.c.
References CLASSTYPE_FIRST_CONVERSION_SLOT, DECL_CONV_FN_P, len, OVL_CURRENT, qsort(), resort_data, resort_method_name_cmp(), VEC, VEC_address, VEC_iterate, and VEC_length.
Definition at line 5450 of file class.c.
References class_binding_level, previous_class_level, push_binding_level(), SET_IDENTIFIER_TYPE_VALUE, TREE_CHAIN, TREE_PURPOSE, and TREE_TYPE.
Definition at line 1777 of file class.c.
References compparms(), DECL_CONV_FN_P, DECL_CONV_FN_TYPE, DECL_DESTRUCTOR_P, DECL_NAME, same_type_p, special_function_p(), TREE_CHAIN, TREE_TYPE, TREE_VALUE, TYPE_ARG_TYPES, TYPE_QUALS, and types.
Definition at line 666 of file class.c.
References DECL_INTERFACE_KNOWN, no_linkage_check(), and TREE_PUBLIC.
| static int splay_tree_compare_integer_csts | ( | splay_tree_key | k1, | |
| splay_tree_key | k2 | |||
| ) | [static] |
Definition at line 4051 of file class.c.
References ansi_opname, BASELINK_FUNCTIONS, CLASS_TYPE_P, error_mark_node, gcc_assert, lookup_fnfields(), OVL_CURRENT, OVL_NEXT, same_type_p, sizetype, TREE_CHAIN, TREE_TYPE, TREE_VALUE, TYPE_ARG_TYPES, TYPE_BINFO, TYPE_HAS_NONTRIVIAL_DESTRUCTOR, and void_list_node.
Definition at line 5182 of file class.c.
References CLASSTYPE_DECL_LIST, next, nreverse(), NULL_TREE, prev, TREE_CHAIN, TREE_CODE, TYPE_FIELDS, TYPE_METHODS, and x.
| static void update_vtable_entry_for_fn | ( | tree | t, | |
| tree | binfo, | |||
| tree | fn, | |||
| tree * | virtuals, | |||
| unsigned | ix | |||
| ) | [static] |
Definition at line 1984 of file class.c.
References b, binfo_for_vbase(), BINFO_INHERITANCE_CHAIN, BINFO_LOST_PRIMARY_P, BINFO_OFFSET, BINFO_OFFSET_ZEROP, BINFO_TYPE, BINFO_VIRTUAL_P, BINFO_VIRTUALS, BV_VCALL_INDEX, CLASS_TYPE_P, convert(), DECL_INVALID_OVERRIDER_P, DECL_RESULT_THUNK_P, DECL_THUNK_P, error(), error_mark_node, find_final_overrider(), gcc_assert, get_primary_binfo(), get_vcall_index(), list_length(), look_for_overrides_here(), make_thunk(), modify_vtable_entry(), NULL_TREE, offset, POINTER_TYPE_P, SAME_BINFO_TYPE_P, same_type_ignoring_top_level_qualifiers_p, size_binop(), size_diffop(), size_zero_node, ssize_int, ssizetype, THUNK_FIXED_OFFSET, THUNK_TARGET, THUNK_VIRTUAL_OFFSET, TREE_CHAIN, TREE_CODE, TREE_PURPOSE, TREE_TYPE, TREE_VALUE, and TYPE_BINFO.
| static int walk_subobject_offsets | ( | tree | type, | |
| subobject_offset_fn | f, | |||
| tree | offset, | |||
| splay_tree | offsets, | |||
| tree | max_offset, | |||
| int | vbases_p | |||
| ) | [static] |
Definition at line 3150 of file class.c.
References abi_version_at_least, BINFO_BASE_BINFO, BINFO_BASE_ITERATE, BINFO_INHERITANCE_CHAIN, BINFO_OFFSET, BINFO_PRIMARY_P, BINFO_TYPE, BINFO_VIRTUAL_P, byte_position(), CLASS_TYPE_P, CLASSTYPE_CONTAINS_EMPTY_CLASS_P, CLASSTYPE_VBASECLASSES, DECL_ARTIFICIAL, DECL_FIELD_OFFSET, error_mark_node, get_primary_binfo(), i, index(), INT_CST_LT, NULL_TREE, r, size_binop(), size_one_node, size_zero_node, strip_array_types(), TREE_CHAIN, TREE_CODE, TREE_TYPE, TYPE_BINFO, TYPE_DOMAIN, TYPE_FIELDS, TYPE_MAX_VALUE, TYPE_P, TYPE_SIZE_UNIT, VEC, VEC_iterate, and walk_subobject_offsets().
Definition at line 4486 of file class.c.
References ba_quiet, ba_unique, BINFO_BASE_ITERATE, BINFO_TYPE, CLASSTYPE_REPEATED_BASE_P, CLASSTYPE_VBASECLASSES, extra_warnings, i, lookup_base(), NULL, TYPE_BINFO, VEC, VEC_iterate, and warning.
Definition at line 2383 of file class.c.
References BINFO_BASE_ITERATE, BINFO_TYPE, chainon(), CLASSTYPE_FIRST_CONVERSION_SLOT, CLASSTYPE_METHOD_VEC, DECL_NAME, DECL_VINDEX, get_basefndecls(), i, NULL_TREE, OVL_CURRENT, OVL_NEXT, prev, same_signature_p(), TREE_CHAIN, TREE_VALUE, TYPE_BINFO, VEC, VEC_iterate, and warning.
class_stack_node_t current_class_stack [static] |
int current_class_stack_size [static] |
struct { ... } resort_data [static] |
1.5.6