GDB (xrefs)

Classes | Macros | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/gnu-v3-abi.c File Reference
`#include "defs.h"`
`#include "value.h"`
`#include "cp-abi.h"`
`#include "cp-support.h"`
`#include "demangle.h"`
`#include "objfiles.h"`
`#include "valprint.h"`
`#include "c-lang.h"`
`#include "typeprint.h"`
`#include <algorithm>`

Go to the source code of this file.

## Classes
struct | value_and_voffset

## Macros
#define | TYPEINFO_PREFIX "typeinfo for "
#define | TYPEINFO_PREFIX_LEN (sizeof (TYPEINFO_PREFIX) - 1)

## Enumerations
enum | { vtable_field_vcall_and_vbase_offsets, vtable_field_offset_to_top, vtable_field_type_info, vtable_field_virtual_functions }

## Functions
static int | gnuv3_is_vtable_name (const char *name)
static int | gnuv3_is_operator_name (const char *name)
static void * | build_gdb_vtable_type (struct gdbarch *arch)
static struct type * | vtable_ptrdiff_type (struct gdbarch *gdbarch)
static int | vtable_address_point_offset (struct gdbarch *gdbarch)
static int | gnuv3_dynamic_class (struct type *type)
static struct value * | gnuv3_get_vtable (struct gdbarch *gdbarch, struct type *container_type, CORE_ADDR container_addr)
static struct type * | gnuv3_rtti_type (struct value *value, int *full_p, LONGEST *top_p, int *using_enc_p)
static struct value * | gnuv3_get_virtual_fn (struct gdbarch *gdbarch, struct value *container, struct type *fntype, int vtable_index)
static struct value * | gnuv3_virtual_fn_field (struct value **value_p, struct fn_field *f, int j, struct type *vfn_base, int offset)
static int | gnuv3_baseclass_offset (struct type *type, int index, const bfd_byte *valaddr, LONGEST embedded_offset, CORE_ADDR address, const struct value *val)
static const char * | gnuv3_find_method_in (struct type *domain, CORE_ADDR voffset, LONGEST adjustment)
static int | gnuv3_decode_method_ptr (struct gdbarch *gdbarch, const gdb_byte *contents, CORE_ADDR *value_p, LONGEST *adjustment_p)
static void | gnuv3_print_method_ptr (const gdb_byte *contents, struct type *type, struct ui_file *stream)
static int | gnuv3_method_ptr_size (struct type *type)
static void | gnuv3_make_method_ptr (struct type *type, gdb_byte *contents, CORE_ADDR value, int is_virtual)
static struct value * | gnuv3_method_ptr_to_value (struct value **this_p, struct value *method_ptr)
static hashval_t | hash_value_and_voffset (const void *p)
static int | eq_value_and_voffset (const void *a, const void *b)
static bool | compare_value_and_voffset (const struct value_and_voffset *va, const struct value_and_voffset *vb)
static void | compute_vtable_size (htab_t offset_hash, std::vector< value_and_voffset *> *offset_vec, struct value *value)
static void | print_one_vtable (struct gdbarch *gdbarch, struct value *value, int max_voffset, struct value_print_options *opts)
static void | gnuv3_print_vtable (struct value *value)
static void * | build_std_type_info_type (struct gdbarch *arch)
static struct type * | gnuv3_get_typeid_type (struct gdbarch *gdbarch)
static struct value * | gnuv3_get_typeid (struct value *value)
static std::string | gnuv3_get_typename_from_type_info (struct value *type_info_ptr)
static struct type * | gnuv3_get_type_from_type_info (struct value *type_info_ptr)
static CORE_ADDR | gnuv3_skip_trampoline (struct frame_info *frame, CORE_ADDR stop_pc)
static int | gnuv3_pass_by_reference (struct type *type)
static void | init_gnuv3_ops (void)
void | _initialize_gnu_v3_abi (void)

## Variables
static struct cp_abi_ops | gnu_v3_abi_ops
static struct gdbarch_data * | std_type_info_gdbarch_data
static struct gdbarch_data * | vtable_type_gdbarch_data

## Macro Definition Documentation

## ◆ TYPEINFO_PREFIX

#define TYPEINFO_PREFIX "typeinfo for "

Referenced by gnuv3_get_typename_from_type_info().

## ◆ TYPEINFO_PREFIX_LEN

#define TYPEINFO_PREFIX_LEN (sizeof (TYPEINFO_PREFIX) - 1)

Referenced by gnuv3_get_typename_from_type_info().

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
vtable_field_vcall_and_vbase_offsets |
vtable_field_offset_to_top |
vtable_field_type_info |
vtable_field_virtual_functions |

Definition at line 94 of file gnu-v3-abi.c.

## Function Documentation

## ◆ _initialize_gnu_v3_abi()

void _initialize_gnu_v3_abi | ( | void |  | ) |

Definition at line 1362 of file gnu-v3-abi.c.

References gnu_v3_abi_ops, init_gnuv3_ops(), register_cp_abi(), set_cp_abi_as_auto_default(), and cp_abi_ops::shortname.

## ◆ build_gdb_vtable_type()

static void* build_gdb_vtable_type | ( | struct gdbarch * | arch | ) |
| static

Definition at line 108 of file gnu-v3-abi.c.

References arch_integer_type(), arch_type(), builtin_type::builtin_data_ptr, builtin_type::builtin_func_ptr, builtin_type(), FIELD_NAME, FIELD_TYPE, gdb_assert, gdbarch_ptr_bit(), INIT_CPLUS_SPECIFIC, lookup_array_range_type(), make_type_with_address_space(), offset, SET_FIELD_BITPOS, TARGET_CHAR_BIT, TYPE_CODE_STRUCT, TYPE_FIELDS, TYPE_INSTANCE_FLAG_CODE_SPACE, TYPE_LENGTH, TYPE_NFIELDS, TYPE_TAG_NAME, and XCNEWVEC.

Referenced by init_gnuv3_ops().

## ◆ build_std_type_info_type()

static void* build_std_type_info_type | ( | struct gdbarch * | arch | ) |
| static

Definition at line 995 of file gnu-v3-abi.c.

References arch_type(), builtin_type::builtin_char, builtin_type::builtin_data_ptr, builtin_type(), FIELD_NAME, FIELD_TYPE, gdb_assert, INIT_CPLUS_SPECIFIC, make_cv_type(), make_pointer_type(), offset, SET_FIELD_BITPOS, TARGET_CHAR_BIT, TYPE_CODE_STRUCT, TYPE_FIELDS, TYPE_LENGTH, TYPE_NFIELDS, TYPE_TAG_NAME, and XCNEWVEC.

Referenced by init_gnuv3_ops().

## ◆ compare_value_and_voffset()

static bool compare_value_and_voffset | ( | const struct value_and_voffset * | va,
|  | const struct value_and_voffset * | vb
| ) |  |
| static

Definition at line 796 of file gnu-v3-abi.c.

References value_and_voffset::value, value_address(), and value_embedded_offset().

Referenced by gnuv3_print_vtable().

## ◆ compute_vtable_size()

static void compute_vtable_size | ( | htab_t | offset_hash,
|  | std::vector< value_and_voffset *> * | offset_vec,
|  | struct value * | value
| ) |  |
| static

Definition at line 814 of file gnu-v3-abi.c.

References check_typedef(), gdb_assert, gnuv3_dynamic_class(), value_and_voffset::max_voffset, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_FN_FIELD_VIRTUAL_P, TYPE_FN_FIELD_VOFFSET, TYPE_FN_FIELDLIST1, TYPE_FN_FIELDLIST_LENGTH, TYPE_N_BASECLASSES, TYPE_NFN_FIELDS, value_and_voffset::value, value_field(), value_type(), fn_field::voffset, and XNEW.

Referenced by gnuv3_print_vtable().

## ◆ eq_value_and_voffset()

static int eq_value_and_voffset | ( | const void * | a,
|  | const void * | b
| ) |  |
| static

Definition at line 784 of file gnu-v3-abi.c.

References value_and_voffset::value, value_address(), and value_embedded_offset().

Referenced by gnuv3_print_vtable().

## ◆ gnuv3_baseclass_offset()

static int gnuv3_baseclass_offset | ( | struct type * | type,
|  | int | index,
|  | const bfd_byte * | valaddr,
|  | LONGEST | embedded_offset,
|  | CORE_ADDR | address,
|  | const struct value * | val
| ) |  |
| static

Definition at line 442 of file gnu-v3-abi.c.

References _, value::address, BASETYPE_VIA_VIRTUAL, builtin_type::builtin_data_ptr, builtin_type(), value::embedded_offset, error(), gdb_assert, get_type_arch(), gnuv3_get_vtable(), TYPE_BASECLASS_BITPOS, TYPE_LENGTH, value_as_long(), value_field(), value_subscript(), vtable_address_point_offset(), and vtable_field_vcall_and_vbase_offsets.

Referenced by init_gnuv3_ops().

## ◆ gnuv3_decode_method_ptr()

static int gnuv3_decode_method_ptr | ( | struct gdbarch * | gdbarch,
|  | const gdb_byte * | contents,
|  | CORE_ADDR * | value_p,
|  | LONGEST * | adjustment_p
| ) |  |
| static

Definition at line 537 of file gnu-v3-abi.c.

References builtin_type::builtin_func_ptr, builtin_type(), extract_signed_integer(), extract_typed_address(), gdbarch_byte_order(), gdbarch_vbit_in_delta(), TYPE_LENGTH, and vtable_ptrdiff_type().

Referenced by gnuv3_method_ptr_to_value(), and gnuv3_print_method_ptr().

## ◆ gnuv3_dynamic_class()

static int gnuv3_dynamic_class | ( | struct type * | type | ) |
| static

Definition at line 203 of file gnu-v3-abi.c.

References ALLOCATE_CPLUS_STRUCT_TYPE, BASETYPE_VIA_VIRTUAL, check_typedef(), gdb_assert, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_CPLUS_DYNAMIC, TYPE_FIELD_TYPE, TYPE_FN_FIELD_VIRTUAL_P, TYPE_FN_FIELDLIST1, TYPE_FN_FIELDLIST_LENGTH, TYPE_N_BASECLASSES, and TYPE_NFN_FIELDS.

Referenced by compute_vtable_size(), gnuv3_get_typeid(), gnuv3_get_vtable(), and gnuv3_pass_by_reference().

## ◆ gnuv3_find_method_in()

static const char* gnuv3_find_method_in | ( | struct type * | domain,
|  | CORE_ADDR | voffset,
|  | LONGEST | adjustment
| ) |  |
| static

Definition at line 487 of file gnu-v3-abi.c.

References BASETYPE_VIA_VIRTUAL, check_stub_method_group(), TYPE_BASECLASS_BITPOS, TYPE_FIELD_TYPE, TYPE_FN_FIELD_PHYSNAME, TYPE_FN_FIELD_VOFFSET, TYPE_FN_FIELDLIST1, TYPE_FN_FIELDLIST_LENGTH, TYPE_LENGTH, TYPE_N_BASECLASSES, TYPE_NFN_FIELDS, and fn_field::voffset.

Referenced by gnuv3_print_method_ptr().

## ◆ gnuv3_get_type_from_type_info()

static struct type* gnuv3_get_type_from_type_info | ( | struct value * | type_info_ptr | ) |
| static

Definition at line 1166 of file gnu-v3-abi.c.

References evaluate_type(), gnuv3_get_typename_from_type_info(), parse_expression(), string, and value_type().

Referenced by init_gnuv3_ops().

## ◆ gnuv3_get_typeid()

static struct value* gnuv3_get_typeid | ( | struct value * | value | ) |
| static

Definition at line 1058 of file gnu-v3-abi.c.

References _, value::address, BMSYMBOL_VALUE_ADDRESS, check_typedef(), coerce_ref(), cp_canonicalize_string(), error(), get_type_arch(), gnuv3_dynamic_class(), gnuv3_get_typeid_type(), gnuv3_get_vtable(), lookup_minimal_symbol(), lval_memory, make_cv_type(), make_pointer_type(), bound_minimal_symbol::minsym, string, type, TYPE_CODE, TYPE_CODE_REF, TYPE_CODE_STRUCT, TYPE_TARGET_TYPE, type_to_string(), value_address(), value_at_lazy(), value_cast(), value_embedded_offset(), value_field(), value_ind(), value_lval_const(), value_type(), and vtable_field_type_info.

Referenced by init_gnuv3_ops().

## ◆ gnuv3_get_typeid_type()

static struct type* gnuv3_get_typeid_type | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 1039 of file gnu-v3-abi.c.

References lookup_symbol(), std_type_info_gdbarch_data, STRUCT_DOMAIN, block_symbol::symbol, and SYMBOL_TYPE.

Referenced by gnuv3_get_typeid(), and init_gnuv3_ops().

## ◆ gnuv3_get_typename_from_type_info()

static std::string gnuv3_get_typename_from_type_info | ( | struct value * | type_info_ptr | ) |
| static

Definition at line 1132 of file gnu-v3-abi.c.

References _, error(), get_type_arch(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, MSYMBOL_DEMANGLED_NAME, MSYMBOL_LINKAGE_NAME, paddress(), string, TYPEINFO_PREFIX, TYPEINFO_PREFIX_LEN, value_as_address(), and value_type().

Referenced by gnuv3_get_type_from_type_info(), and init_gnuv3_ops().

## ◆ gnuv3_get_virtual_fn()

static struct value* gnuv3_get_virtual_fn | ( | struct gdbarch * | gdbarch,
|  | struct value * | container,
|  | struct type * | fntype,
|  | int | vtable_index
| ) |  |
| static

Definition at line 377 of file gnu-v3-abi.c.

References gdb_assert, gdbarch_vtable_function_descriptors(), gnuv3_get_vtable(), lookup_pointer_type(), value_addr(), value_as_address(), value_cast(), value_field(), value_subscript(), value_type(), and vtable_field_virtual_functions.

Referenced by gnuv3_method_ptr_to_value(), and gnuv3_virtual_fn_field().

## ◆ gnuv3_get_vtable()

static struct value* gnuv3_get_vtable | ( | struct gdbarch * | gdbarch,
|  | struct type * | container_type,
|  | CORE_ADDR | container_addr
| ) |  |
| static

Definition at line 249 of file gnu-v3-abi.c.

References check_typedef(), gdb_assert, gnuv3_dynamic_class(), lookup_pointer_type(), TYPE_CODE, TYPE_CODE_STRUCT, value_as_address(), value_at(), value_at_lazy(), vtable_address_point_offset(), and vtable_type_gdbarch_data.

Referenced by gnuv3_baseclass_offset(), gnuv3_get_typeid(), gnuv3_get_virtual_fn(), gnuv3_print_vtable(), gnuv3_rtti_type(), and print_one_vtable().

## ◆ gnuv3_is_operator_name()

static int gnuv3_is_operator_name | ( | const char * | name | ) |
| static

Definition at line 47 of file gnu-v3-abi.c.

References CP_OPERATOR_STR, name, and startswith().

Referenced by init_gnuv3_ops().

## ◆ gnuv3_is_vtable_name()

static int gnuv3_is_vtable_name | ( | const char * | name | ) |
| static

Definition at line 41 of file gnu-v3-abi.c.

References name, and startswith().

Referenced by init_gnuv3_ops().

## ◆ gnuv3_make_method_ptr()

static void gnuv3_make_method_ptr | ( | struct type * | type,
|  | gdb_byte * | contents,
|  | CORE_ADDR | value,
|  | int | is_virtual
| ) |  |
| static

Definition at line 674 of file gnu-v3-abi.c.

References gdbarch::byte_order, gdbarch_byte_order(), gdbarch_vbit_in_delta(), get_type_arch(), size, store_unsigned_integer(), and TYPE_LENGTH.

Referenced by init_gnuv3_ops().

## ◆ gnuv3_method_ptr_size()

static int gnuv3_method_ptr_size | ( | struct type * | type | ) |
| static

Definition at line 664 of file gnu-v3-abi.c.

References get_type_arch(), and TYPE_LENGTH.

Referenced by init_gnuv3_ops().

## ◆ gnuv3_method_ptr_to_value()

static struct value* gnuv3_method_ptr_to_value | ( | struct value ** | this_p,
|  | struct value * | method_ptr
| ) |  |
| static

Definition at line 705 of file gnu-v3-abi.c.

References check_typedef(), get_type_arch(), gnuv3_decode_method_ptr(), gnuv3_get_virtual_fn(), lookup_pointer_type(), TYPE_LENGTH, TYPE_SELF_TYPE, TYPE_TARGET_TYPE, value_cast(), value_contents(), value_from_pointer(), value_ind(), value_ptradd(), value_type(), and vtable_ptrdiff_type().

Referenced by init_gnuv3_ops().

## ◆ gnuv3_pass_by_reference()

static int gnuv3_pass_by_reference | ( | struct type * | type | ) |
| static

Definition at line 1250 of file gnu-v3-abi.c.

References check_typedef(), class_types_same_p(), field_is_static(), gnuv3_dynamic_class(), is_constructor_name(), name, TYPE_CODE, TYPE_CODE_REF, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_FIELD, TYPE_FIELD_TYPE, TYPE_FN_FIELD_ARTIFICIAL, TYPE_FN_FIELD_CONSTRUCTOR, TYPE_FN_FIELD_PHYSNAME, TYPE_FN_FIELD_TYPE, TYPE_FN_FIELDLIST1, TYPE_FN_FIELDLIST_LENGTH, TYPE_FN_FIELDLIST_NAME, TYPE_NFIELDS, TYPE_NFN_FIELDS, and TYPE_TARGET_TYPE.

Referenced by init_gnuv3_ops().

## ◆ gnuv3_print_method_ptr()

static void gnuv3_print_method_ptr | ( | const gdb_byte * | contents,
|  | struct type * | type,
|  | struct ui_file * | stream
| ) |  |
| static

Definition at line 581 of file gnu-v3-abi.c.

References c_print_type(), demangle, fprintf_filtered(), fputs_filtered(), gdb_demangle(), get_type_arch(), get_user_print_options(), gnuv3_decode_method_ptr(), gnuv3_find_method_in(), print_address_demangle(), print_longest(), TYPE_LENGTH, type_print_raw_options, TYPE_SELF_TYPE, vtable_ptrdiff_type(), and xfree().

Referenced by init_gnuv3_ops().

## ◆ gnuv3_print_vtable()

static void gnuv3_print_vtable | ( | struct value * | value | ) |
| static

Definition at line 928 of file gnu-v3-abi.c.

References _, check_typedef(), coerce_ref(), compare_value_and_voffset(), compute_vtable_size(), eq_value_and_voffset(), get_type_arch(), get_user_print_options(), gnuv3_get_vtable(), hash_value_and_voffset(), value_print_options::objectprint, print_one_vtable(), printf_filtered(), type, TYPE_CODE, TYPE_CODE_PTR, TYPE_CODE_STRUCT, value_addr(), value_as_address(), value_full_object(), value_ind(), value_type(), xcalloc(), and xfree().

Referenced by init_gnuv3_ops().

## ◆ gnuv3_rtti_type()

static struct type* gnuv3_rtti_type | ( | struct value * | value,
|  | int * | full_p,
|  | LONGEST * | top_p,
|  | int * | using_enc_p
| ) |  |
| static

Definition at line 289 of file gnu-v3-abi.c.

References _, check_typedef(), cp_lookup_rtti_type(), get_type_arch(), gnuv3_get_vtable(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, MSYMBOL_DEMANGLED_NAME, startswith(), TYPE_CODE, TYPE_CODE_STRUCT, TYPE_LENGTH, TYPE_SAFE_NAME, value_addr(), value_address(), value_as_address(), value_as_long(), value_embedded_offset(), value_enclosing_type(), value_field(), value_type(), vtable_field_offset_to_top, and warning().

Referenced by init_gnuv3_ops().

## ◆ gnuv3_skip_trampoline()

static CORE_ADDR gnuv3_skip_trampoline | ( | struct frame_info * | frame,
|  | CORE_ADDR | stop_pc
| ) |  |
| static

Definition at line 1182 of file gnu-v3-abi.c.

References BMSYMBOL_VALUE_ADDRESS, current_target, find_pc_section(), gdbarch_convert_from_func_ptr_addr(), gdbarch_skip_trampoline_code(), get_frame_arch(), lookup_minimal_symbol(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, MSYMBOL_DEMANGLED_NAME, obj_section::objfile, and stop_pc.

Referenced by init_gnuv3_ops().

## ◆ gnuv3_virtual_fn_field()

static struct value* gnuv3_virtual_fn_field | ( | struct value ** | value_p,
|  | struct fn_field * | f,
|  | int | j,
|  | struct type * | vfn_base,
|  | int | offset
| ) |  |
| static

Definition at line 409 of file gnu-v3-abi.c.

References _, check_typedef(), error(), get_type_arch(), gnuv3_get_virtual_fn(), TYPE_CODE, TYPE_CODE_STRUCT, TYPE_FN_FIELD_TYPE, TYPE_FN_FIELD_VOFFSET, value_cast(), and value_type().

Referenced by init_gnuv3_ops().

## ◆ hash_value_and_voffset()

static hashval_t hash_value_and_voffset | ( | const void * | p | ) |
| static

Definition at line 774 of file gnu-v3-abi.c.

References value_and_voffset::value, value_address(), and value_embedded_offset().

Referenced by gnuv3_print_vtable().

## ◆ init_gnuv3_ops()

static void init_gnuv3_ops | ( | void |  | ) |
| static

Definition at line 1328 of file gnu-v3-abi.c.

References cp_abi_ops::baseclass_offset, build_gdb_vtable_type(), build_std_type_info_type(), cp_abi_ops::doc, gdbarch_data_register_post_init(), cp_abi_ops::get_type_from_type_info, cp_abi_ops::get_typeid, cp_abi_ops::get_typeid_type, cp_abi_ops::get_typename_from_type_info, gnu_v3_abi_ops, gnuv3_baseclass_offset(), gnuv3_get_type_from_type_info(), gnuv3_get_typeid(), gnuv3_get_typeid_type(), gnuv3_get_typename_from_type_info(), gnuv3_is_operator_name(), gnuv3_is_vtable_name(), gnuv3_make_method_ptr(), gnuv3_method_ptr_size(), gnuv3_method_ptr_to_value(), gnuv3_pass_by_reference(), gnuv3_print_method_ptr(), gnuv3_print_vtable(), gnuv3_rtti_type(), gnuv3_skip_trampoline(), gnuv3_virtual_fn_field(), cp_abi_ops::is_constructor_name, cp_abi_ops::is_destructor_name, cp_abi_ops::is_operator_name, cp_abi_ops::is_vtable_name, cp_abi_ops::longname, cp_abi_ops::make_method_ptr, cp_abi_ops::method_ptr_size, cp_abi_ops::method_ptr_to_value, cp_abi_ops::pass_by_reference, cp_abi_ops::print_method_ptr, cp_abi_ops::print_vtable, cp_abi_ops::rtti_type, cp_abi_ops::shortname, cp_abi_ops::skip_trampoline, std_type_info_gdbarch_data, cp_abi_ops::virtual_fn_field, and vtable_type_gdbarch_data.

Referenced by _initialize_gnu_v3_abi().

## ◆ print_one_vtable()

static void print_one_vtable | ( | struct gdbarch * | gdbarch,
|  | struct value * | value,
|  | int | max_voffset,
|  | struct value_print_options * | opts
| ) |  |
| static

Definition at line 871 of file gnu-v3-abi.c.

References _, CATCH, check_typedef(), END_CATCH, gdb_stdout, gdbarch_vtable_function_descriptors(), gnuv3_get_vtable(), paddress(), print_function_pointer_address(), printf_filtered(), RETURN_MASK_ERROR, TRY, TYPE_SAFE_NAME, value_addr(), value_address(), value_as_address(), value_embedded_offset(), value_field(), value_subscript(), value_type(), and vtable_field_virtual_functions.

Referenced by gnuv3_print_vtable().

## ◆ vtable_address_point_offset()

static int vtable_address_point_offset | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 189 of file gnu-v3-abi.c.

References TARGET_CHAR_BIT, TYPE_FIELD_BITPOS, vtable_field_virtual_functions, and vtable_type_gdbarch_data.

Referenced by gnuv3_baseclass_offset(), and gnuv3_get_vtable().

## ◆ vtable_ptrdiff_type()

static struct type* vtable_ptrdiff_type | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 176 of file gnu-v3-abi.c.

References TYPE_FIELD_TYPE, vtable_field_offset_to_top, and vtable_type_gdbarch_data.

Referenced by gnuv3_decode_method_ptr(), gnuv3_method_ptr_to_value(), and gnuv3_print_method_ptr().

## Variable Documentation

## ◆ gnu_v3_abi_ops

struct cp_abi_ops gnu_v3_abi_ops
| static

Definition at line 32 of file gnu-v3-abi.c.

Referenced by _initialize_gnu_v3_abi(), and init_gnuv3_ops().

## ◆ std_type_info_gdbarch_data

struct gdbarch_data* std_type_info_gdbarch_data
| static

Definition at line 37 of file gnu-v3-abi.c.

Referenced by gnuv3_get_typeid_type(), and init_gnuv3_ops().

## ◆ vtable_type_gdbarch_data

struct gdbarch_data* vtable_type_gdbarch_data
| static

Definition at line 90 of file gnu-v3-abi.c.

Referenced by gnuv3_get_vtable(), init_gnuv3_ops(), vtable_address_point_offset(), and vtable_ptrdiff_type().