GDB (API)
|
#include "hashtab.h"
#include "gdbsupport/array-view.h"
#include "gdbsupport/gdb-hashtab.h"
#include "gdbsupport/gdb_optional.h"
#include "gdbsupport/offset-type.h"
#include "gdbsupport/enum-flags.h"
#include "gdbsupport/underlying.h"
#include "gdbsupport/print-utils.h"
#include "gdbsupport/function-view.h"
#include "dwarf2.h"
#include "gdbsupport/gdb_obstack.h"
#include "gmp-utils.h"
#include "frame-info.h"
#include "type-codes.def"
Go to the source code of this file.
Classes | |
struct | discriminant_range |
struct | variant |
struct | variant_part |
union | dynamic_prop_data |
struct | dynamic_prop |
struct | dynamic_prop_list |
union | type_owner |
union | field_location |
struct | field |
struct | range_bounds |
union | type_specific |
struct | main_type |
struct | type |
struct | fn_fieldlist |
struct | fn_field |
struct | decl_field |
struct | cplus_struct_type |
struct | rank |
struct | gnat_aux_type |
struct | func_type |
struct | call_site_target |
union | call_site_parameter_u |
struct | call_site_parameter |
struct | call_site |
struct | call_site::target |
struct | fixed_point_type_info |
struct | builtin_type |
struct | objfile_type |
struct | struct_elt |
Macros | |
#define | B_SET(a, x) ((a)[(x)>>3] |= (1 << ((x)&7))) |
#define | B_CLR(a, x) ((a)[(x)>>3] &= ~(1 << ((x)&7))) |
#define | B_TST(a, x) ((a)[(x)>>3] & (1 << ((x)&7))) |
#define | B_TYPE unsigned char |
#define | B_BYTES(x) ( 1 + ((x)>>3) ) |
#define | B_CLRALL(a, x) memset ((a), 0, B_BYTES(x)) |
#define | OP(X) X, |
#define | TYPE_NOTTEXT(t) (((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_NOTTEXT) |
#define | TYPE_CONST(t) ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_CONST) != 0) |
#define | TYPE_VOLATILE(t) ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_VOLATILE) != 0) |
#define | TYPE_RESTRICT(t) ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_RESTRICT) != 0) |
#define | TYPE_ATOMIC(t) ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_ATOMIC) != 0) |
#define | TYPE_IS_REFERENCE(t) ((t)->code () == TYPE_CODE_REF || (t)->code () == TYPE_CODE_RVALUE_REF) |
#define | TYPE_IS_ALLOCATABLE(t) ((t)->dyn_prop (DYN_PROP_ALLOCATED) != NULL) |
#define | TYPE_HAS_VARIANT_PARTS(t) ((t)->dyn_prop (DYN_PROP_VARIANT_PARTS) != nullptr) |
#define | TYPE_HAS_DYNAMIC_LENGTH(t) ((t)->dyn_prop (DYN_PROP_BYTE_SIZE) != nullptr) |
#define | TYPE_CODE_SPACE(t) ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_CODE_SPACE) != 0) |
#define | TYPE_DATA_SPACE(t) ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_DATA_SPACE) != 0) |
#define | TYPE_ADDRESS_CLASS_1(t) |
#define | TYPE_ADDRESS_CLASS_2(t) |
#define | TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL (TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1 | TYPE_INSTANCE_FLAG_ADDRESS_CLASS_2) |
#define | TYPE_ADDRESS_CLASS_ALL(t) |
#define | TYPE_ALIGN_BITS 8 |
#define | VOFFSET_STATIC 1 |
#define | INIT_CPLUS_SPECIFIC(type) |
#define | ALLOCATE_CPLUS_STRUCT_TYPE(type) allocate_cplus_struct_type (type) |
#define | HAVE_CPLUS_STRUCT(type) |
#define | INIT_NONE_SPECIFIC(type) |
#define | INIT_GNAT_SPECIFIC(type) |
#define | ALLOCATE_GNAT_AUX_TYPE(type) allocate_gnat_aux_type (type) |
#define | HAVE_GNAT_AUX_INFO(type) (TYPE_SPECIFIC_FIELD (type) == TYPE_SPECIFIC_GNAT_STUFF) |
#define | ADA_TYPE_P(type) |
#define | INIT_FUNC_SPECIFIC(type) |
#define | INIT_FIXED_POINT_SPECIFIC(type) |
#define | TYPE_MAIN_TYPE(thistype) (thistype)->main_type |
#define | TYPE_POINTER_TYPE(thistype) (thistype)->pointer_type |
#define | TYPE_REFERENCE_TYPE(thistype) (thistype)->reference_type |
#define | TYPE_RVALUE_REFERENCE_TYPE(thistype) (thistype)->rvalue_reference_type |
#define | TYPE_CHAIN(thistype) (thistype)->chain |
#define | TYPE_RAW_ALIGN(thistype) type_raw_align (thistype) |
#define | TYPE_DATA_LOCATION(thistype) ((thistype)->dyn_prop (DYN_PROP_DATA_LOCATION)) |
#define | TYPE_DATA_LOCATION_BATON(thistype) TYPE_DATA_LOCATION (thistype)->data.baton |
#define | TYPE_DATA_LOCATION_ADDR(thistype) (TYPE_DATA_LOCATION (thistype)->const_val ()) |
#define | TYPE_DATA_LOCATION_KIND(thistype) (TYPE_DATA_LOCATION (thistype)->kind ()) |
#define | TYPE_DYNAMIC_LENGTH(thistype) ((thistype)->dyn_prop (DYN_PROP_BYTE_SIZE)) |
#define | TYPE_ALLOCATED_PROP(thistype) ((thistype)->dyn_prop (DYN_PROP_ALLOCATED)) |
#define | TYPE_ASSOCIATED_PROP(thistype) ((thistype)->dyn_prop (DYN_PROP_ASSOCIATED)) |
#define | TYPE_RANK_PROP(thistype) ((thistype)->dyn_prop (DYN_PROP_RANK)) |
#define | TYPE_SELF_TYPE(thistype) internal_type_self_type (thistype) |
#define | TYPE_VPTR_FIELDNO(thistype) internal_type_vptr_fieldno (thistype) |
#define | TYPE_VPTR_BASETYPE(thistype) internal_type_vptr_basetype (thistype) |
#define | TYPE_NFN_FIELDS(thistype) TYPE_CPLUS_SPECIFIC(thistype)->nfn_fields |
#define | TYPE_SPECIFIC_FIELD(thistype) TYPE_MAIN_TYPE(thistype)->type_specific_field |
#define | TYPE_CPLUS_SPECIFIC(thistype) |
#define | TYPE_RAW_CPLUS_SPECIFIC(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.cplus_stuff |
#define | TYPE_CPLUS_CALLING_CONVENTION(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.cplus_stuff->calling_convention |
#define | TYPE_FLOATFORMAT(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.floatformat |
#define | TYPE_GNAT_SPECIFIC(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.gnat_stuff |
#define | TYPE_DESCRIPTIVE_TYPE(thistype) TYPE_GNAT_SPECIFIC(thistype)->descriptive_type |
#define | TYPE_CALLING_CONVENTION(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->calling_convention |
#define | TYPE_NO_RETURN(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->is_noreturn |
#define | TYPE_TAIL_CALL_LIST(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->tail_call_list |
#define | TYPE_BASECLASS(thistype, index) ((thistype)->field (index).type ()) |
#define | TYPE_N_BASECLASSES(thistype) TYPE_CPLUS_SPECIFIC(thistype)->n_baseclasses |
#define | TYPE_BASECLASS_NAME(thistype, index) (thistype->field (index).name ()) |
#define | TYPE_BASECLASS_BITPOS(thistype, index) (thistype->field (index).loc_bitpos ()) |
#define | BASETYPE_VIA_PUBLIC(thistype, index) ((!TYPE_FIELD_PRIVATE(thistype, index)) && (!TYPE_FIELD_PROTECTED(thistype, index))) |
#define | TYPE_CPLUS_DYNAMIC(thistype) TYPE_CPLUS_SPECIFIC (thistype)->is_dynamic |
#define | BASETYPE_VIA_VIRTUAL(thistype, index) |
#define | FIELD_ARTIFICIAL(thisfld) ((thisfld).artificial) |
#define | FIELD_BITSIZE(thisfld) ((thisfld).bitsize) |
#define | TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL((thistype)->field (n)) |
#define | TYPE_FIELD_BITSIZE(thistype, n) FIELD_BITSIZE((thistype)->field (n)) |
#define | TYPE_FIELD_PACKED(thistype, n) (FIELD_BITSIZE((thistype)->field (n))!=0) |
#define | TYPE_FIELD_PRIVATE_BITS(thistype) TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits |
#define | TYPE_FIELD_PROTECTED_BITS(thistype) TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits |
#define | TYPE_FIELD_IGNORE_BITS(thistype) TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits |
#define | TYPE_FIELD_VIRTUAL_BITS(thistype) TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits |
#define | SET_TYPE_FIELD_PRIVATE(thistype, n) B_SET (TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits, (n)) |
#define | SET_TYPE_FIELD_PROTECTED(thistype, n) B_SET (TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits, (n)) |
#define | SET_TYPE_FIELD_IGNORE(thistype, n) B_SET (TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits, (n)) |
#define | SET_TYPE_FIELD_VIRTUAL(thistype, n) B_SET (TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits, (n)) |
#define | TYPE_FIELD_PRIVATE(thistype, n) |
#define | TYPE_FIELD_PROTECTED(thistype, n) |
#define | TYPE_FIELD_IGNORE(thistype, n) |
#define | TYPE_FIELD_VIRTUAL(thistype, n) |
#define | TYPE_FN_FIELDLISTS(thistype) TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists |
#define | TYPE_FN_FIELDLIST(thistype, n) TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n] |
#define | TYPE_FN_FIELDLIST1(thistype, n) TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].fn_fields |
#define | TYPE_FN_FIELDLIST_NAME(thistype, n) TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].name |
#define | TYPE_FN_FIELDLIST_LENGTH(thistype, n) TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].length |
#define | TYPE_N_TEMPLATE_ARGUMENTS(thistype) TYPE_CPLUS_SPECIFIC (thistype)->n_template_arguments |
#define | TYPE_TEMPLATE_ARGUMENTS(thistype) TYPE_CPLUS_SPECIFIC (thistype)->template_arguments |
#define | TYPE_TEMPLATE_ARGUMENT(thistype, n) TYPE_CPLUS_SPECIFIC (thistype)->template_arguments[n] |
#define | TYPE_FN_FIELD(thisfn, n) (thisfn)[n] |
#define | TYPE_FN_FIELD_PHYSNAME(thisfn, n) (thisfn)[n].physname |
#define | TYPE_FN_FIELD_TYPE(thisfn, n) (thisfn)[n].type |
#define | TYPE_FN_FIELD_ARGS(thisfn, n) (((thisfn)[n].type)->fields ()) |
#define | TYPE_FN_FIELD_CONST(thisfn, n) ((thisfn)[n].is_const) |
#define | TYPE_FN_FIELD_VOLATILE(thisfn, n) ((thisfn)[n].is_volatile) |
#define | TYPE_FN_FIELD_PRIVATE(thisfn, n) ((thisfn)[n].is_private) |
#define | TYPE_FN_FIELD_PROTECTED(thisfn, n) ((thisfn)[n].is_protected) |
#define | TYPE_FN_FIELD_ARTIFICIAL(thisfn, n) ((thisfn)[n].is_artificial) |
#define | TYPE_FN_FIELD_STUB(thisfn, n) ((thisfn)[n].is_stub) |
#define | TYPE_FN_FIELD_CONSTRUCTOR(thisfn, n) ((thisfn)[n].is_constructor) |
#define | TYPE_FN_FIELD_FCONTEXT(thisfn, n) ((thisfn)[n].fcontext) |
#define | TYPE_FN_FIELD_VOFFSET(thisfn, n) ((thisfn)[n].voffset-2) |
#define | TYPE_FN_FIELD_VIRTUAL_P(thisfn, n) ((thisfn)[n].voffset > 1) |
#define | TYPE_FN_FIELD_STATIC_P(thisfn, n) ((thisfn)[n].voffset == VOFFSET_STATIC) |
#define | TYPE_FN_FIELD_DEFAULTED(thisfn, n) ((thisfn)[n].defaulted) |
#define | TYPE_FN_FIELD_DELETED(thisfn, n) ((thisfn)[n].is_deleted) |
#define | TYPE_TYPEDEF_FIELD_ARRAY(thistype) TYPE_CPLUS_SPECIFIC (thistype)->typedef_field |
#define | TYPE_TYPEDEF_FIELD(thistype, n) TYPE_CPLUS_SPECIFIC (thistype)->typedef_field[n] |
#define | TYPE_TYPEDEF_FIELD_NAME(thistype, n) TYPE_TYPEDEF_FIELD (thistype, n).name |
#define | TYPE_TYPEDEF_FIELD_TYPE(thistype, n) TYPE_TYPEDEF_FIELD (thistype, n).type |
#define | TYPE_TYPEDEF_FIELD_COUNT(thistype) TYPE_CPLUS_SPECIFIC (thistype)->typedef_field_count |
#define | TYPE_TYPEDEF_FIELD_PROTECTED(thistype, n) TYPE_TYPEDEF_FIELD (thistype, n).is_protected |
#define | TYPE_TYPEDEF_FIELD_PRIVATE(thistype, n) TYPE_TYPEDEF_FIELD (thistype, n).is_private |
#define | TYPE_NESTED_TYPES_ARRAY(thistype) TYPE_CPLUS_SPECIFIC (thistype)->nested_types |
#define | TYPE_NESTED_TYPES_FIELD(thistype, n) TYPE_CPLUS_SPECIFIC (thistype)->nested_types[n] |
#define | TYPE_NESTED_TYPES_FIELD_NAME(thistype, n) TYPE_NESTED_TYPES_FIELD (thistype, n).name |
#define | TYPE_NESTED_TYPES_FIELD_TYPE(thistype, n) TYPE_NESTED_TYPES_FIELD (thistype, n).type |
#define | TYPE_NESTED_TYPES_COUNT(thistype) TYPE_CPLUS_SPECIFIC (thistype)->nested_types_count |
#define | TYPE_NESTED_TYPES_FIELD_PROTECTED(thistype, n) TYPE_NESTED_TYPES_FIELD (thistype, n).is_protected |
#define | TYPE_NESTED_TYPES_FIELD_PRIVATE(thistype, n) TYPE_NESTED_TYPES_FIELD (thistype, n).is_private |
#define | TYPE_IS_OPAQUE(thistype) |
#define | TYPE_SAFE_NAME(type) (type->name () != nullptr ? type->name () : _("<unnamed type>")) |
#define | TYPE_ERROR_NAME(type) (type->name () ? type->name () : _("<error type>")) |
#define | TYPE_ALLOC(t, size) |
#define | TYPE_ZALLOC(t, size) (memset (TYPE_ALLOC (t, size), 0, size)) |
#define | REFERENCE_CONVERSION_RVALUE 1 |
#define | REFERENCE_CONVERSION_CONST_LVALUE 2 |
#define | CV_CONVERSION_CONST 1 |
#define | CV_CONVERSION_VOLATILE 2 |
Typedefs | |
typedef std::vector< rank > | badness_vector |
Functions | |
DEFINE_OFFSET_TYPE (cu_offset, unsigned int) | |
DEFINE_OFFSET_TYPE (sect_offset, uint64_t) | |
DEF_ENUM_FLAGS_TYPE (enum type_instance_flag_value, type_instance_flags) | |
bool | operator== (const dynamic_prop &l, const dynamic_prop &r) |
bool | operator== (const range_bounds &l, const range_bounds &r) |
void | allocate_cplus_struct_type (struct type *) |
void | allocate_gnat_aux_type (struct type *) |
unsigned | type_raw_align (struct type *) |
unsigned | type_align (struct type *) |
bool | set_type_align (struct type *, ULONGEST) |
struct type * | internal_type_self_type (struct type *) |
void | set_type_self_type (struct type *, struct type *) |
int | internal_type_vptr_fieldno (struct type *) |
void | set_type_vptr_fieldno (struct type *, int) |
struct type * | internal_type_vptr_basetype (struct type *) |
void | set_type_vptr_basetype (struct type *, struct type *) |
const struct floatformat * | floatformat_from_type (const struct type *type) |
const struct builtin_type * | builtin_type (struct gdbarch *gdbarch) |
const struct objfile_type * | objfile_type (struct objfile *objfile) |
struct type * | alloc_type (struct objfile *) |
struct type * | alloc_type_arch (struct gdbarch *) |
struct type * | alloc_type_copy (const struct type *) |
struct type * | get_target_type (struct type *type) |
unsigned int | type_length_units (struct type *type) |
struct type * | init_type (struct objfile *, enum type_code, int, const char *) |
struct type * | init_integer_type (struct objfile *, int, int, const char *) |
struct type * | init_character_type (struct objfile *, int, int, const char *) |
struct type * | init_boolean_type (struct objfile *, int, int, const char *) |
struct type * | init_float_type (struct objfile *, int, const char *, const struct floatformat **, enum bfd_endian=BFD_ENDIAN_UNKNOWN) |
struct type * | init_decfloat_type (struct objfile *, int, const char *) |
bool | can_create_complex_type (struct type *) |
struct type * | init_complex_type (const char *, struct type *) |
struct type * | init_pointer_type (struct objfile *, int, const char *, struct type *) |
struct type * | init_fixed_point_type (struct objfile *, int, int, const char *) |
struct type * | arch_type (struct gdbarch *, enum type_code, int, const char *) |
struct type * | arch_integer_type (struct gdbarch *, int, int, const char *) |
struct type * | arch_character_type (struct gdbarch *, int, int, const char *) |
struct type * | arch_boolean_type (struct gdbarch *, int, int, const char *) |
struct type * | arch_float_type (struct gdbarch *, int, const char *, const struct floatformat **) |
struct type * | arch_decfloat_type (struct gdbarch *, int, const char *) |
struct type * | arch_pointer_type (struct gdbarch *, int, const char *, struct type *) |
struct type * | arch_composite_type (struct gdbarch *gdbarch, const char *name, enum type_code code) |
void | append_composite_type_field (struct type *t, const char *name, struct type *field) |
void | append_composite_type_field_aligned (struct type *t, const char *name, struct type *field, int alignment) |
struct field * | append_composite_type_field_raw (struct type *t, const char *name, struct type *field) |
struct type * | arch_flags_type (struct gdbarch *gdbarch, const char *name, int bit) |
void | append_flags_type_field (struct type *type, int start_bitpos, int nr_bits, struct type *field_type, const char *name) |
void | append_flags_type_flag (struct type *type, int bitpos, const char *name) |
void | make_vector_type (struct type *array_type) |
struct type * | init_vector_type (struct type *elt_type, int n) |
struct type * | lookup_reference_type (struct type *, enum type_code) |
struct type * | lookup_lvalue_reference_type (struct type *) |
struct type * | lookup_rvalue_reference_type (struct type *) |
struct type * | make_reference_type (struct type *, struct type **, enum type_code) |
struct type * | make_cv_type (int, int, struct type *, struct type **) |
struct type * | make_restrict_type (struct type *) |
struct type * | make_unqualified_type (struct type *) |
struct type * | make_atomic_type (struct type *) |
void | replace_type (struct type *, struct type *) |
type_instance_flags | address_space_name_to_type_instance_flags (struct gdbarch *, const char *) |
const char * | address_space_type_instance_flags_to_name (struct gdbarch *, type_instance_flags) |
struct type * | make_type_with_address_space (struct type *type, type_instance_flags space_identifier) |
struct type * | lookup_memberptr_type (struct type *, struct type *) |
struct type * | lookup_methodptr_type (struct type *) |
void | smash_to_method_type (struct type *type, struct type *self_type, struct type *to_type, struct field *args, int nargs, int varargs) |
void | smash_to_memberptr_type (struct type *, struct type *, struct type *) |
void | smash_to_methodptr_type (struct type *, struct type *) |
struct type * | allocate_stub_method (struct type *) |
const char * | type_name_or_error (struct type *type) |
struct_elt | lookup_struct_elt (struct type *, const char *, int) |
struct type * | lookup_struct_elt_type (struct type *, const char *, int) |
struct type * | make_pointer_type (struct type *, struct type **) |
struct type * | lookup_pointer_type (struct type *) |
struct type * | make_function_type (struct type *, struct type **) |
struct type * | lookup_function_type (struct type *) |
struct type * | lookup_function_type_with_arguments (struct type *, int, struct type **) |
struct type * | create_static_range_type (struct type *, struct type *, LONGEST, LONGEST) |
struct type * | create_array_type_with_stride (struct type *, struct type *, struct type *, struct dynamic_prop *, unsigned int) |
struct type * | create_range_type (struct type *, struct type *, const struct dynamic_prop *, const struct dynamic_prop *, LONGEST) |
struct type * | create_range_type_with_stride (struct type *result_type, struct type *index_type, const struct dynamic_prop *low_bound, const struct dynamic_prop *high_bound, LONGEST bias, const struct dynamic_prop *stride, bool byte_stride_p) |
struct type * | create_array_type (struct type *, struct type *, struct type *) |
struct type * | lookup_array_range_type (struct type *, LONGEST, LONGEST) |
struct type * | create_string_type (struct type *, struct type *, struct type *) |
struct type * | lookup_string_range_type (struct type *, LONGEST, LONGEST) |
struct type * | create_set_type (struct type *, struct type *) |
struct type * | lookup_unsigned_typename (const struct language_defn *, const char *) |
struct type * | lookup_signed_typename (const struct language_defn *, const char *) |
ULONGEST | get_unsigned_type_max (struct type *) |
void | get_signed_type_minmax (struct type *, LONGEST *, LONGEST *) |
CORE_ADDR | get_pointer_type_max (struct type *) |
struct type * | resolve_dynamic_type (struct type *type, gdb::array_view< const gdb_byte > valaddr, CORE_ADDR addr) |
int | is_dynamic_type (struct type *type) |
struct type * | check_typedef (struct type *) |
void | check_stub_method_group (struct type *, int) |
char * | gdb_mangle_name (struct type *, int, int) |
struct type * | lookup_typename (const struct language_defn *, const char *, const struct block *, int) |
struct type * | lookup_template_type (const char *, struct type *, const struct block *) |
int | get_vptr_fieldno (struct type *, struct type **) |
bool | get_discrete_bounds (struct type *type, LONGEST *lowp, LONGEST *highp) |
gdb::optional< LONGEST > | get_discrete_low_bound (struct type *type) |
gdb::optional< LONGEST > | get_discrete_high_bound (struct type *type) |
bool | get_array_bounds (struct type *type, LONGEST *low_bound, LONGEST *high_bound) |
gdb::optional< LONGEST > | discrete_position (struct type *type, LONGEST val) |
int | class_types_same_p (const struct type *, const struct type *) |
int | is_ancestor (struct type *, struct type *) |
int | is_public_ancestor (struct type *, struct type *) |
int | is_unique_ancestor (struct type *, struct value *) |
struct rank | sum_ranks (struct rank a, struct rank b) |
int | compare_ranks (struct rank a, struct rank b) |
int | compare_badness (const badness_vector &, const badness_vector &) |
badness_vector | rank_function (gdb::array_view< type * > parms, gdb::array_view< value * > args) |
struct rank | rank_one_type (struct type *, struct type *, struct value *) |
void | recursive_dump_type (struct type *, int) |
int | field_is_static (struct field *) |
void | print_scalar_formatted (const gdb_byte *, struct type *, const struct value_print_options *, int, struct ui_file *) |
int | can_dereference (struct type *) |
int | is_integral_type (struct type *) |
int | is_floating_type (struct type *) |
int | is_scalar_type (struct type *type) |
int | is_scalar_type_recursive (struct type *) |
int | class_or_union_p (const struct type *) |
void | maintenance_print_type (const char *, int) |
htab_up | create_copied_types_hash () |
struct type * | copy_type_recursive (struct type *type, htab_t copied_types) |
struct type * | copy_type (const struct type *type) |
bool | types_equal (struct type *, struct type *) |
bool | types_deeply_equal (struct type *, struct type *) |
int | type_not_allocated (const struct type *type) |
int | type_not_associated (const struct type *type) |
bool | is_fixed_point_type (struct type *type) |
void | allocate_fixed_point_type_info (struct type *type) |
enum bfd_endian | type_byte_order (const struct type *type) |
bool | is_nocall_function (const struct type *type) |
Variables | |
const struct cplus_struct_type | cplus_struct_default |
const struct gnat_aux_type | gnat_aux_default |
const struct floatformat * | floatformats_ieee_half [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_ieee_single [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_ieee_double [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_ieee_quad [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_ieee_double_littlebyte_bigword [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_i387_ext [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_m68881_ext [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_arm_ext [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_ia64_spill [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_vax_f [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_vax_d [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_ibm_long_double [BFD_ENDIAN_UNKNOWN] |
const struct floatformat * | floatformats_bfloat16 [BFD_ENDIAN_UNKNOWN] |
const struct rank | LENGTH_MISMATCH_BADNESS |
const struct rank | TOO_FEW_PARAMS_BADNESS |
const struct rank | INCOMPATIBLE_TYPE_BADNESS |
const struct rank | EXACT_MATCH_BADNESS |
const struct rank | INTEGER_PROMOTION_BADNESS |
const struct rank | FLOAT_PROMOTION_BADNESS |
const struct rank | BASE_PTR_CONVERSION_BADNESS |
const struct rank | INTEGER_CONVERSION_BADNESS |
const struct rank | FLOAT_CONVERSION_BADNESS |
const struct rank | INT_FLOAT_CONVERSION_BADNESS |
const struct rank | VOID_PTR_CONVERSION_BADNESS |
const struct rank | BOOL_CONVERSION_BADNESS |
const struct rank | BASE_CONVERSION_BADNESS |
const struct rank | REFERENCE_CONVERSION_BADNESS |
const struct rank | REFERENCE_SEE_THROUGH_BADNESS |
const struct rank | NULL_POINTER_CONVERSION |
const struct rank | CV_CONVERSION_BADNESS |
const struct rank | NS_POINTER_CONVERSION_BADNESS |
const struct rank | NS_INTEGER_POINTER_CONVERSION_BADNESS |
unsigned int | overload_debug |
#define ADA_TYPE_P | ( | type | ) |
True if TYPE is known to be an Ada type of some kind.
Definition at line 2009 of file gdbtypes.h.
#define ALLOCATE_CPLUS_STRUCT_TYPE | ( | type | ) | allocate_cplus_struct_type (type) |
Definition at line 1985 of file gdbtypes.h.
#define ALLOCATE_GNAT_AUX_TYPE | ( | type | ) | allocate_gnat_aux_type (type) |
Definition at line 2002 of file gdbtypes.h.
#define B_BYTES | ( | x | ) | ( 1 + ((x)>>3) ) |
Definition at line 92 of file gdbtypes.h.
#define B_CLR | ( | a, | |
x | |||
) | ((a)[(x)>>3] &= ~(1 << ((x)&7))) |
Definition at line 89 of file gdbtypes.h.
#define B_CLRALL | ( | a, | |
x | |||
) | memset ((a), 0, B_BYTES(x)) |
Definition at line 93 of file gdbtypes.h.
#define B_SET | ( | a, | |
x | |||
) | ((a)[(x)>>3] |= (1 << ((x)&7))) |
Definition at line 88 of file gdbtypes.h.
#define B_TST | ( | a, | |
x | |||
) | ((a)[(x)>>3] & (1 << ((x)&7))) |
Definition at line 90 of file gdbtypes.h.
#define B_TYPE unsigned char |
Definition at line 91 of file gdbtypes.h.
#define BASETYPE_VIA_PUBLIC | ( | thistype, | |
index | |||
) | ((!TYPE_FIELD_PRIVATE(thistype, index)) && (!TYPE_FIELD_PROTECTED(thistype, index))) |
Definition at line 2111 of file gdbtypes.h.
#define BASETYPE_VIA_VIRTUAL | ( | thistype, | |
index | |||
) |
Definition at line 2115 of file gdbtypes.h.
#define CV_CONVERSION_CONST 1 |
Definition at line 2762 of file gdbtypes.h.
#define CV_CONVERSION_VOLATILE 2 |
Definition at line 2763 of file gdbtypes.h.
#define FIELD_ARTIFICIAL | ( | thisfld | ) | ((thisfld).artificial) |
Definition at line 2119 of file gdbtypes.h.
#define FIELD_BITSIZE | ( | thisfld | ) | ((thisfld).bitsize) |
Definition at line 2120 of file gdbtypes.h.
#define HAVE_CPLUS_STRUCT | ( | type | ) |
Definition at line 1987 of file gdbtypes.h.
#define HAVE_GNAT_AUX_INFO | ( | type | ) | (TYPE_SPECIFIC_FIELD (type) == TYPE_SPECIFIC_GNAT_STUFF) |
A macro that returns non-zero if the type-specific data should be read as "gnat-stuff".
Definition at line 2005 of file gdbtypes.h.
#define INIT_CPLUS_SPECIFIC | ( | type | ) |
Definition at line 1980 of file gdbtypes.h.
#define INIT_FIXED_POINT_SPECIFIC | ( | type | ) |
Definition at line 2023 of file gdbtypes.h.
#define INIT_FUNC_SPECIFIC | ( | type | ) |
Definition at line 2014 of file gdbtypes.h.
#define INIT_GNAT_SPECIFIC | ( | type | ) |
Definition at line 1999 of file gdbtypes.h.
#define INIT_NONE_SPECIFIC | ( | type | ) |
Definition at line 1991 of file gdbtypes.h.
#define OP | ( | X | ) | X, |
Definition at line 102 of file gdbtypes.h.
#define REFERENCE_CONVERSION_CONST_LVALUE 2 |
Conversion to const lvalue reference.
Definition at line 2755 of file gdbtypes.h.
#define REFERENCE_CONVERSION_RVALUE 1 |
Conversion to rvalue reference.
Definition at line 2753 of file gdbtypes.h.
#define SET_TYPE_FIELD_IGNORE | ( | thistype, | |
n | |||
) | B_SET (TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits, (n)) |
Definition at line 2138 of file gdbtypes.h.
#define SET_TYPE_FIELD_PRIVATE | ( | thistype, | |
n | |||
) | B_SET (TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits, (n)) |
Definition at line 2134 of file gdbtypes.h.
#define SET_TYPE_FIELD_PROTECTED | ( | thistype, | |
n | |||
) | B_SET (TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits, (n)) |
Definition at line 2136 of file gdbtypes.h.
#define SET_TYPE_FIELD_VIRTUAL | ( | thistype, | |
n | |||
) | B_SET (TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits, (n)) |
Definition at line 2140 of file gdbtypes.h.
#define TYPE_ADDRESS_CLASS_1 | ( | t | ) |
Address class flags. Some environments provide for pointers whose size is different from that of a normal pointer or address types where the bits are interpreted differently than normal addresses. The TYPE_INSTANCE_FLAG_ADDRESS_CLASS_n flags may be used in target specific ways to represent these different types of address classes.
Definition at line 203 of file gdbtypes.h.
#define TYPE_ADDRESS_CLASS_2 | ( | t | ) |
Definition at line 205 of file gdbtypes.h.
#define TYPE_ADDRESS_CLASS_ALL | ( | t | ) |
Definition at line 209 of file gdbtypes.h.
#define TYPE_ALIGN_BITS 8 |
Number of bits allocated for alignment.
Definition at line 916 of file gdbtypes.h.
#define TYPE_ALLOC | ( | t, | |
size | |||
) |
Definition at line 2406 of file gdbtypes.h.
#define TYPE_ALLOCATED_PROP | ( | thistype | ) | ((thistype)->dyn_prop (DYN_PROP_ALLOCATED)) |
Definition at line 2065 of file gdbtypes.h.
#define TYPE_ASSOCIATED_PROP | ( | thistype | ) | ((thistype)->dyn_prop (DYN_PROP_ASSOCIATED)) |
Definition at line 2067 of file gdbtypes.h.
#define TYPE_ATOMIC | ( | t | ) | ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_ATOMIC) != 0) |
Atomic type. If this is set, the corresponding type has an _Atomic modifier.
Definition at line 151 of file gdbtypes.h.
Definition at line 2107 of file gdbtypes.h.
#define TYPE_BASECLASS_BITPOS | ( | thistype, | |
index | |||
) | (thistype->field (index).loc_bitpos ()) |
Definition at line 2110 of file gdbtypes.h.
#define TYPE_BASECLASS_NAME | ( | thistype, | |
index | |||
) | (thistype->field (index).name ()) |
Definition at line 2109 of file gdbtypes.h.
#define TYPE_CALLING_CONVENTION | ( | thistype | ) | TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->calling_convention |
Definition at line 2104 of file gdbtypes.h.
#define TYPE_CHAIN | ( | thistype | ) | (thistype)->chain |
Definition at line 2031 of file gdbtypes.h.
#define TYPE_CODE_SPACE | ( | t | ) | ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_CODE_SPACE) != 0) |
Instruction-space delimited type. This is for Harvard architectures which have separate instruction and data address spaces (and perhaps others).
GDB usually defines a flat address space that is a superset of the architecture's two (or more) address spaces, but this is an extension of the architecture's model.
If TYPE_INSTANCE_FLAG_CODE_SPACE is set, an object of the corresponding type resides in instruction memory, even if its address (in the extended flat address space) does not reflect this.
Similarly, if TYPE_INSTANCE_FLAG_DATA_SPACE is set, then an object of the corresponding type resides in the data memory space, even if this is not indicated by its (flat address space) address.
If neither flag is set, the default space for functions / methods is instruction space, and for data objects is data memory.
Definition at line 190 of file gdbtypes.h.
#define TYPE_CONST | ( | t | ) | ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_CONST) != 0) |
Constant type. If this is set, the corresponding type has a const modifier.
Definition at line 134 of file gdbtypes.h.
#define TYPE_CPLUS_CALLING_CONVENTION | ( | thistype | ) | TYPE_MAIN_TYPE(thistype)->type_specific.cplus_stuff->calling_convention |
Definition at line 2099 of file gdbtypes.h.
#define TYPE_CPLUS_DYNAMIC | ( | thistype | ) | TYPE_CPLUS_SPECIFIC (thistype)->is_dynamic |
Definition at line 2113 of file gdbtypes.h.
#define TYPE_CPLUS_SPECIFIC | ( | thistype | ) |
Definition at line 2094 of file gdbtypes.h.
#define TYPE_DATA_LOCATION | ( | thistype | ) | ((thistype)->dyn_prop (DYN_PROP_DATA_LOCATION)) |
Definition at line 2053 of file gdbtypes.h.
#define TYPE_DATA_LOCATION_ADDR | ( | thistype | ) | (TYPE_DATA_LOCATION (thistype)->const_val ()) |
Definition at line 2057 of file gdbtypes.h.
#define TYPE_DATA_LOCATION_BATON | ( | thistype | ) | TYPE_DATA_LOCATION (thistype)->data.baton |
Definition at line 2055 of file gdbtypes.h.
#define TYPE_DATA_LOCATION_KIND | ( | thistype | ) | (TYPE_DATA_LOCATION (thistype)->kind ()) |
Definition at line 2059 of file gdbtypes.h.
#define TYPE_DATA_SPACE | ( | t | ) | ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_DATA_SPACE) != 0) |
Definition at line 193 of file gdbtypes.h.
#define TYPE_DESCRIPTIVE_TYPE | ( | thistype | ) | TYPE_GNAT_SPECIFIC(thistype)->descriptive_type |
Definition at line 2103 of file gdbtypes.h.
#define TYPE_DYNAMIC_LENGTH | ( | thistype | ) | ((thistype)->dyn_prop (DYN_PROP_BYTE_SIZE)) |
Definition at line 2061 of file gdbtypes.h.
A helper macro that returns the name of an error type. If the type has a name, it is used; otherwise, a default is used.
Definition at line 2234 of file gdbtypes.h.
#define TYPE_FIELD_ARTIFICIAL | ( | thistype, | |
n | |||
) | FIELD_ARTIFICIAL((thistype)->field (n)) |
Definition at line 2122 of file gdbtypes.h.
#define TYPE_FIELD_BITSIZE | ( | thistype, | |
n | |||
) | FIELD_BITSIZE((thistype)->field (n)) |
Definition at line 2123 of file gdbtypes.h.
#define TYPE_FIELD_IGNORE | ( | thistype, | |
n | |||
) |
Definition at line 2148 of file gdbtypes.h.
#define TYPE_FIELD_IGNORE_BITS | ( | thistype | ) | TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits |
Definition at line 2130 of file gdbtypes.h.
#define TYPE_FIELD_PACKED | ( | thistype, | |
n | |||
) | (FIELD_BITSIZE((thistype)->field (n))!=0) |
Definition at line 2124 of file gdbtypes.h.
#define TYPE_FIELD_PRIVATE | ( | thistype, | |
n | |||
) |
Definition at line 2142 of file gdbtypes.h.
#define TYPE_FIELD_PRIVATE_BITS | ( | thistype | ) | TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits |
Definition at line 2126 of file gdbtypes.h.
#define TYPE_FIELD_PROTECTED | ( | thistype, | |
n | |||
) |
Definition at line 2145 of file gdbtypes.h.
#define TYPE_FIELD_PROTECTED_BITS | ( | thistype | ) | TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits |
Definition at line 2128 of file gdbtypes.h.
#define TYPE_FIELD_VIRTUAL | ( | thistype, | |
n | |||
) |
Definition at line 2151 of file gdbtypes.h.
#define TYPE_FIELD_VIRTUAL_BITS | ( | thistype | ) | TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits |
Definition at line 2132 of file gdbtypes.h.
#define TYPE_FLOATFORMAT | ( | thistype | ) | TYPE_MAIN_TYPE(thistype)->type_specific.floatformat |
Definition at line 2101 of file gdbtypes.h.
#define TYPE_FN_FIELD | ( | thisfn, | |
n | |||
) | (thisfn)[n] |
Definition at line 2168 of file gdbtypes.h.
#define TYPE_FN_FIELD_ARGS | ( | thisfn, | |
n | |||
) | (((thisfn)[n].type)->fields ()) |
Definition at line 2171 of file gdbtypes.h.
#define TYPE_FN_FIELD_ARTIFICIAL | ( | thisfn, | |
n | |||
) | ((thisfn)[n].is_artificial) |
Definition at line 2176 of file gdbtypes.h.
#define TYPE_FN_FIELD_CONST | ( | thisfn, | |
n | |||
) | ((thisfn)[n].is_const) |
Definition at line 2172 of file gdbtypes.h.
#define TYPE_FN_FIELD_CONSTRUCTOR | ( | thisfn, | |
n | |||
) | ((thisfn)[n].is_constructor) |
Definition at line 2178 of file gdbtypes.h.
#define TYPE_FN_FIELD_DEFAULTED | ( | thisfn, | |
n | |||
) | ((thisfn)[n].defaulted) |
Definition at line 2183 of file gdbtypes.h.
#define TYPE_FN_FIELD_DELETED | ( | thisfn, | |
n | |||
) | ((thisfn)[n].is_deleted) |
Definition at line 2184 of file gdbtypes.h.
#define TYPE_FN_FIELD_FCONTEXT | ( | thisfn, | |
n | |||
) | ((thisfn)[n].fcontext) |
Definition at line 2179 of file gdbtypes.h.
#define TYPE_FN_FIELD_PHYSNAME | ( | thisfn, | |
n | |||
) | (thisfn)[n].physname |
Definition at line 2169 of file gdbtypes.h.
#define TYPE_FN_FIELD_PRIVATE | ( | thisfn, | |
n | |||
) | ((thisfn)[n].is_private) |
Definition at line 2174 of file gdbtypes.h.
#define TYPE_FN_FIELD_PROTECTED | ( | thisfn, | |
n | |||
) | ((thisfn)[n].is_protected) |
Definition at line 2175 of file gdbtypes.h.
#define TYPE_FN_FIELD_STATIC_P | ( | thisfn, | |
n | |||
) | ((thisfn)[n].voffset == VOFFSET_STATIC) |
Definition at line 2182 of file gdbtypes.h.
#define TYPE_FN_FIELD_STUB | ( | thisfn, | |
n | |||
) | ((thisfn)[n].is_stub) |
Definition at line 2177 of file gdbtypes.h.
#define TYPE_FN_FIELD_TYPE | ( | thisfn, | |
n | |||
) | (thisfn)[n].type |
Definition at line 2170 of file gdbtypes.h.
#define TYPE_FN_FIELD_VIRTUAL_P | ( | thisfn, | |
n | |||
) | ((thisfn)[n].voffset > 1) |
Definition at line 2181 of file gdbtypes.h.
#define TYPE_FN_FIELD_VOFFSET | ( | thisfn, | |
n | |||
) | ((thisfn)[n].voffset-2) |
Definition at line 2180 of file gdbtypes.h.
#define TYPE_FN_FIELD_VOLATILE | ( | thisfn, | |
n | |||
) | ((thisfn)[n].is_volatile) |
Definition at line 2173 of file gdbtypes.h.
#define TYPE_FN_FIELDLIST | ( | thistype, | |
n | |||
) | TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n] |
Definition at line 2156 of file gdbtypes.h.
#define TYPE_FN_FIELDLIST1 | ( | thistype, | |
n | |||
) | TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].fn_fields |
Definition at line 2157 of file gdbtypes.h.
#define TYPE_FN_FIELDLIST_LENGTH | ( | thistype, | |
n | |||
) | TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].length |
Definition at line 2159 of file gdbtypes.h.
#define TYPE_FN_FIELDLIST_NAME | ( | thistype, | |
n | |||
) | TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].name |
Definition at line 2158 of file gdbtypes.h.
#define TYPE_FN_FIELDLISTS | ( | thistype | ) | TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists |
Definition at line 2155 of file gdbtypes.h.
#define TYPE_GNAT_SPECIFIC | ( | thistype | ) | TYPE_MAIN_TYPE(thistype)->type_specific.gnat_stuff |
Definition at line 2102 of file gdbtypes.h.
#define TYPE_HAS_DYNAMIC_LENGTH | ( | t | ) | ((t)->dyn_prop (DYN_PROP_BYTE_SIZE) != nullptr) |
True if this type has a dynamic length.
Definition at line 168 of file gdbtypes.h.
#define TYPE_HAS_VARIANT_PARTS | ( | t | ) | ((t)->dyn_prop (DYN_PROP_VARIANT_PARTS) != nullptr) |
True if this type has variant parts.
Definition at line 164 of file gdbtypes.h.
#define TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL (TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1 | TYPE_INSTANCE_FLAG_ADDRESS_CLASS_2) |
Definition at line 207 of file gdbtypes.h.
#define TYPE_IS_ALLOCATABLE | ( | t | ) | ((t)->dyn_prop (DYN_PROP_ALLOCATED) != NULL) |
True if this type is allocatable.
Definition at line 160 of file gdbtypes.h.
#define TYPE_IS_OPAQUE | ( | thistype | ) |
Definition at line 2217 of file gdbtypes.h.
#define TYPE_IS_REFERENCE | ( | t | ) | ((t)->code () == TYPE_CODE_REF || (t)->code () == TYPE_CODE_RVALUE_REF) |
True if this type represents either an lvalue or lvalue reference type.
Definition at line 156 of file gdbtypes.h.
#define TYPE_MAIN_TYPE | ( | thistype | ) | (thistype)->main_type |
Definition at line 2027 of file gdbtypes.h.
#define TYPE_N_BASECLASSES | ( | thistype | ) | TYPE_CPLUS_SPECIFIC(thistype)->n_baseclasses |
Definition at line 2108 of file gdbtypes.h.
#define TYPE_N_TEMPLATE_ARGUMENTS | ( | thistype | ) | TYPE_CPLUS_SPECIFIC (thistype)->n_template_arguments |
Definition at line 2161 of file gdbtypes.h.
#define TYPE_NESTED_TYPES_ARRAY | ( | thistype | ) | TYPE_CPLUS_SPECIFIC (thistype)->nested_types |
Definition at line 2202 of file gdbtypes.h.
#define TYPE_NESTED_TYPES_COUNT | ( | thistype | ) | TYPE_CPLUS_SPECIFIC (thistype)->nested_types_count |
Definition at line 2210 of file gdbtypes.h.
#define TYPE_NESTED_TYPES_FIELD | ( | thistype, | |
n | |||
) | TYPE_CPLUS_SPECIFIC (thistype)->nested_types[n] |
Definition at line 2204 of file gdbtypes.h.
#define TYPE_NESTED_TYPES_FIELD_NAME | ( | thistype, | |
n | |||
) | TYPE_NESTED_TYPES_FIELD (thistype, n).name |
Definition at line 2206 of file gdbtypes.h.
#define TYPE_NESTED_TYPES_FIELD_PRIVATE | ( | thistype, | |
n | |||
) | TYPE_NESTED_TYPES_FIELD (thistype, n).is_private |
Definition at line 2214 of file gdbtypes.h.
#define TYPE_NESTED_TYPES_FIELD_PROTECTED | ( | thistype, | |
n | |||
) | TYPE_NESTED_TYPES_FIELD (thistype, n).is_protected |
Definition at line 2212 of file gdbtypes.h.
#define TYPE_NESTED_TYPES_FIELD_TYPE | ( | thistype, | |
n | |||
) | TYPE_NESTED_TYPES_FIELD (thistype, n).type |
Definition at line 2208 of file gdbtypes.h.
#define TYPE_NFN_FIELDS | ( | thistype | ) | TYPE_CPLUS_SPECIFIC(thistype)->nfn_fields |
Definition at line 2086 of file gdbtypes.h.
#define TYPE_NO_RETURN | ( | thistype | ) | TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->is_noreturn |
Definition at line 2105 of file gdbtypes.h.
#define TYPE_NOTTEXT | ( | t | ) | (((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_NOTTEXT) |
Not textual. By default, GDB treats all single byte integers as characters (or elements of strings) unless this flag is set.
Definition at line 129 of file gdbtypes.h.
#define TYPE_POINTER_TYPE | ( | thistype | ) | (thistype)->pointer_type |
Definition at line 2028 of file gdbtypes.h.
#define TYPE_RANK_PROP | ( | thistype | ) | ((thistype)->dyn_prop (DYN_PROP_RANK)) |
Definition at line 2069 of file gdbtypes.h.
#define TYPE_RAW_ALIGN | ( | thistype | ) | type_raw_align (thistype) |
Return the alignment of the type in target addressable memory units, or 0 if no alignment was specified.
Definition at line 2035 of file gdbtypes.h.
#define TYPE_RAW_CPLUS_SPECIFIC | ( | thistype | ) | TYPE_MAIN_TYPE(thistype)->type_specific.cplus_stuff |
Definition at line 2098 of file gdbtypes.h.
#define TYPE_REFERENCE_TYPE | ( | thistype | ) | (thistype)->reference_type |
Definition at line 2029 of file gdbtypes.h.
#define TYPE_RESTRICT | ( | t | ) | ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_RESTRICT) != 0) |
Restrict type. If this is set, the corresponding type has a restrict modifier.
Definition at line 145 of file gdbtypes.h.
#define TYPE_RVALUE_REFERENCE_TYPE | ( | thistype | ) | (thistype)->rvalue_reference_type |
Definition at line 2030 of file gdbtypes.h.
A helper macro that returns the name of a type or "unnamed type" if the type has no name.
Definition at line 2228 of file gdbtypes.h.
#define TYPE_SELF_TYPE | ( | thistype | ) | internal_type_self_type (thistype) |
Definition at line 2074 of file gdbtypes.h.
#define TYPE_SPECIFIC_FIELD | ( | thistype | ) | TYPE_MAIN_TYPE(thistype)->type_specific_field |
Definition at line 2087 of file gdbtypes.h.
#define TYPE_TAIL_CALL_LIST | ( | thistype | ) | TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->tail_call_list |
Definition at line 2106 of file gdbtypes.h.
#define TYPE_TEMPLATE_ARGUMENT | ( | thistype, | |
n | |||
) | TYPE_CPLUS_SPECIFIC (thistype)->template_arguments[n] |
Definition at line 2165 of file gdbtypes.h.
#define TYPE_TEMPLATE_ARGUMENTS | ( | thistype | ) | TYPE_CPLUS_SPECIFIC (thistype)->template_arguments |
Definition at line 2163 of file gdbtypes.h.
#define TYPE_TYPEDEF_FIELD | ( | thistype, | |
n | |||
) | TYPE_CPLUS_SPECIFIC (thistype)->typedef_field[n] |
Definition at line 2189 of file gdbtypes.h.
#define TYPE_TYPEDEF_FIELD_ARRAY | ( | thistype | ) | TYPE_CPLUS_SPECIFIC (thistype)->typedef_field |
Definition at line 2187 of file gdbtypes.h.
#define TYPE_TYPEDEF_FIELD_COUNT | ( | thistype | ) | TYPE_CPLUS_SPECIFIC (thistype)->typedef_field_count |
Definition at line 2195 of file gdbtypes.h.
#define TYPE_TYPEDEF_FIELD_NAME | ( | thistype, | |
n | |||
) | TYPE_TYPEDEF_FIELD (thistype, n).name |
Definition at line 2191 of file gdbtypes.h.
#define TYPE_TYPEDEF_FIELD_PRIVATE | ( | thistype, | |
n | |||
) | TYPE_TYPEDEF_FIELD (thistype, n).is_private |
Definition at line 2199 of file gdbtypes.h.
#define TYPE_TYPEDEF_FIELD_PROTECTED | ( | thistype, | |
n | |||
) | TYPE_TYPEDEF_FIELD (thistype, n).is_protected |
Definition at line 2197 of file gdbtypes.h.
#define TYPE_TYPEDEF_FIELD_TYPE | ( | thistype, | |
n | |||
) | TYPE_TYPEDEF_FIELD (thistype, n).type |
Definition at line 2193 of file gdbtypes.h.
#define TYPE_VOLATILE | ( | t | ) | ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_VOLATILE) != 0) |
Volatile type. If this is set, the corresponding type has a volatile modifier.
Definition at line 139 of file gdbtypes.h.
#define TYPE_VPTR_BASETYPE | ( | thistype | ) | internal_type_vptr_basetype (thistype) |
Definition at line 2084 of file gdbtypes.h.
#define TYPE_VPTR_FIELDNO | ( | thistype | ) | internal_type_vptr_fieldno (thistype) |
Definition at line 2083 of file gdbtypes.h.
#define TYPE_ZALLOC | ( | t, | |
size | |||
) | (memset (TYPE_ALLOC (t, size), 0, size)) |
Definition at line 2415 of file gdbtypes.h.
#define VOFFSET_STATIC 1 |
Definition at line 1548 of file gdbtypes.h.
typedef std::vector<rank> badness_vector |
Used for ranking a function for overload resolution.
Definition at line 1710 of file gdbtypes.h.
Definition at line 1756 of file gdbtypes.h.
enum dynamic_prop_kind |
Enumerator | |
---|---|
PROP_UNDEFINED | |
PROP_CONST | |
PROP_ADDR_OFFSET | |
PROP_LOCEXPR | |
PROP_LOCLIST | |
PROP_VARIANT_PARTS | |
PROP_TYPE | |
PROP_VARIABLE_NAME |
Definition at line 290 of file gdbtypes.h.
Define a type's dynamic property node kind.
Enumerator | |
---|---|
DYN_PROP_DATA_LOCATION | |
DYN_PROP_ALLOCATED | |
DYN_PROP_ASSOCIATED | |
DYN_PROP_BYTE_STRIDE | |
DYN_PROP_VARIANT_PARTS | |
DYN_PROP_RANK | |
DYN_PROP_BYTE_SIZE |
Definition at line 447 of file gdbtypes.h.
enum field_loc_kind |
Determine which field of the union main_type.fields[x].loc is used.
Enumerator | |
---|---|
FIELD_LOC_KIND_BITPOS | bitpos |
FIELD_LOC_KIND_ENUMVAL | enumval |
FIELD_LOC_KIND_PHYSADDR | physaddr |
FIELD_LOC_KIND_PHYSNAME | physname |
FIELD_LOC_KIND_DWARF_BLOCK | dwarf_block |
Definition at line 491 of file gdbtypes.h.
enum type_code |
Different kinds of data types are distinguished by the ‘code’ field.
Enumerator | |
---|---|
TYPE_CODE_UNDEF | Not used; catches errors |
Definition at line 98 of file gdbtypes.h.
enum type_instance_flag_value : unsigned |
Some bits for the type's instance_flags word. See the macros below for documentation on each bit.
Definition at line 111 of file gdbtypes.h.
enum type_specific_kind |
A discriminant to determine which field in the main_type.type_specific union is being used, if any.
For types such as TYPE_CODE_FLT, the use of this discriminant is really redundant, as we know from the type code which field is going to be used. As such, it would be possible to reduce the size of this enum in order to save a bit or two for other fields of struct main_type. But, since we still have extra room , and for the sake of clarity and consistency, we treat all fields of the union the same way.
Enumerator | |
---|---|
TYPE_SPECIFIC_NONE | |
TYPE_SPECIFIC_CPLUS_STUFF | |
TYPE_SPECIFIC_GNAT_STUFF | |
TYPE_SPECIFIC_FLOATFORMAT | |
TYPE_SPECIFIC_FUNC | |
TYPE_SPECIFIC_SELF_TYPE | |
TYPE_SPECIFIC_INT | |
TYPE_SPECIFIC_FIXED_POINT |
Definition at line 511 of file gdbtypes.h.
type_instance_flags address_space_name_to_type_instance_flags | ( | struct gdbarch * | , |
const char * | |||
) |
const char * address_space_type_instance_flags_to_name | ( | struct gdbarch * | , |
type_instance_flags | |||
) |
struct type * alloc_type | ( | struct objfile * | ) |
struct type * alloc_type_arch | ( | struct gdbarch * | ) |
void allocate_cplus_struct_type | ( | struct type * | ) |
void allocate_fixed_point_type_info | ( | struct type * | type | ) |
void allocate_gnat_aux_type | ( | struct type * | ) |
void append_composite_type_field_aligned | ( | struct type * | t, |
const char * | name, | ||
struct type * | field, | ||
int | alignment | ||
) |
struct field * append_composite_type_field_raw | ( | struct type * | t, |
const char * | name, | ||
struct type * | field | ||
) |
void append_flags_type_field | ( | struct type * | type, |
int | start_bitpos, | ||
int | nr_bits, | ||
struct type * | field_type, | ||
const char * | name | ||
) |
void append_flags_type_flag | ( | struct type * | type, |
int | bitpos, | ||
const char * | name | ||
) |
struct type * arch_boolean_type | ( | struct gdbarch * | , |
int | , | ||
int | , | ||
const char * | |||
) |
struct type * arch_character_type | ( | struct gdbarch * | , |
int | , | ||
int | , | ||
const char * | |||
) |
struct type * arch_composite_type | ( | struct gdbarch * | gdbarch, |
const char * | name, | ||
enum type_code | code | ||
) |
struct type * arch_decfloat_type | ( | struct gdbarch * | , |
int | , | ||
const char * | |||
) |
struct type * arch_flags_type | ( | struct gdbarch * | gdbarch, |
const char * | name, | ||
int | bit | ||
) |
struct type * arch_float_type | ( | struct gdbarch * | , |
int | , | ||
const char * | , | ||
const struct floatformat ** | |||
) |
struct type * arch_integer_type | ( | struct gdbarch * | , |
int | , | ||
int | , | ||
const char * | |||
) |
struct type * arch_type | ( | struct gdbarch * | , |
enum | type_code, | ||
int | , | ||
const char * | |||
) |
const struct builtin_type * builtin_type | ( | struct gdbarch * | gdbarch | ) |
Return the type table for the specified architecture.
bool can_create_complex_type | ( | struct type * | ) |
int can_dereference | ( | struct type * | ) |
void check_stub_method_group | ( | struct type * | , |
int | |||
) |
int class_or_union_p | ( | const struct type * | ) |
int compare_badness | ( | const badness_vector & | , |
const badness_vector & | |||
) |
struct type * create_array_type_with_stride | ( | struct type * | , |
struct type * | , | ||
struct type * | , | ||
struct dynamic_prop * | , | ||
unsigned int | |||
) |
htab_up create_copied_types_hash | ( | ) |
struct type * create_range_type | ( | struct type * | , |
struct type * | , | ||
const struct dynamic_prop * | , | ||
const struct dynamic_prop * | , | ||
LONGEST | |||
) |
struct type * create_range_type_with_stride | ( | struct type * | result_type, |
struct type * | index_type, | ||
const struct dynamic_prop * | low_bound, | ||
const struct dynamic_prop * | high_bound, | ||
LONGEST | bias, | ||
const struct dynamic_prop * | stride, | ||
bool | byte_stride_p | ||
) |
DEF_ENUM_FLAGS_TYPE | ( | enum | type_instance_flag_value, |
type_instance_flags | |||
) |
DEFINE_OFFSET_TYPE | ( | cu_offset | , |
unsigned int | |||
) |
Offset relative to the start of its containing CU (compilation unit).
DEFINE_OFFSET_TYPE | ( | sect_offset | , |
uint64_t | |||
) |
Offset relative to the start of its .debug_info or .debug_types section.
gdb::optional< LONGEST > discrete_position | ( | struct type * | type, |
LONGEST | val | ||
) |
int field_is_static | ( | struct field * | ) |
const struct floatformat * floatformat_from_type | ( | const struct type * | type | ) |
char * gdb_mangle_name | ( | struct type * | , |
int | , | ||
int | |||
) |
bool get_array_bounds | ( | struct type * | type, |
LONGEST * | low_bound, | ||
LONGEST * | high_bound | ||
) |
bool get_discrete_bounds | ( | struct type * | type, |
LONGEST * | lowp, | ||
LONGEST * | highp | ||
) |
gdb::optional< LONGEST > get_discrete_high_bound | ( | struct type * | type | ) |
gdb::optional< LONGEST > get_discrete_low_bound | ( | struct type * | type | ) |
CORE_ADDR get_pointer_type_max | ( | struct type * | ) |
void get_signed_type_minmax | ( | struct type * | , |
LONGEST * | , | ||
LONGEST * | |||
) |
This returns the target type (or NULL) of TYPE, also skipping past typedefs.
ULONGEST get_unsigned_type_max | ( | struct type * | ) |
struct type * init_boolean_type | ( | struct objfile * | , |
int | , | ||
int | , | ||
const char * | |||
) |
struct type * init_character_type | ( | struct objfile * | , |
int | , | ||
int | , | ||
const char * | |||
) |
struct type * init_decfloat_type | ( | struct objfile * | , |
int | , | ||
const char * | |||
) |
struct type * init_fixed_point_type | ( | struct objfile * | , |
int | , | ||
int | , | ||
const char * | |||
) |
struct type * init_float_type | ( | struct objfile * | , |
int | , | ||
const char * | , | ||
const struct floatformat ** | , | ||
enum | bfd_endian = BFD_ENDIAN_UNKNOWN |
||
) |
struct type * init_integer_type | ( | struct objfile * | , |
int | , | ||
int | , | ||
const char * | |||
) |
struct type * init_type | ( | struct objfile * | , |
enum | type_code, | ||
int | , | ||
const char * | |||
) |
Helper function to construct objfile-owned types.
int internal_type_vptr_fieldno | ( | struct type * | ) |
int is_dynamic_type | ( | struct type * | type | ) |
Predicate if the type has dynamic values, which are not resolved yet. See the caveat in 'resolve_dynamic_type' to understand a scenario where an apparently-resolved type may still be considered "dynamic".
bool is_fixed_point_type | ( | struct type * | type | ) |
int is_floating_type | ( | struct type * | ) |
int is_integral_type | ( | struct type * | ) |
bool is_nocall_function | ( | const struct type * | type | ) |
int is_scalar_type | ( | struct type * | type | ) |
int is_scalar_type_recursive | ( | struct type * | ) |
int is_unique_ancestor | ( | struct type * | , |
struct value * | |||
) |
struct type * lookup_signed_typename | ( | const struct language_defn * | , |
const char * | |||
) |
struct_elt lookup_struct_elt | ( | struct type * | , |
const char * | , | ||
int | |||
) |
struct type * lookup_typename | ( | const struct language_defn * | , |
const char * | , | ||
const struct block * | , | ||
int | |||
) |
struct type * lookup_unsigned_typename | ( | const struct language_defn * | , |
const char * | |||
) |
void maintenance_print_type | ( | const char * | , |
int | |||
) |
struct type * make_type_with_address_space | ( | struct type * | type, |
type_instance_flags | space_identifier | ||
) |
void make_vector_type | ( | struct type * | array_type | ) |
const struct objfile_type * objfile_type | ( | struct objfile * | objfile | ) |
Return the type table for the specified objfile.
bool operator== | ( | const dynamic_prop & | l, |
const dynamic_prop & | r | ||
) |
bool operator== | ( | const range_bounds & | l, |
const range_bounds & | r | ||
) |
void print_scalar_formatted | ( | const gdb_byte * | , |
struct type * | , | ||
const struct value_print_options * | , | ||
int | , | ||
struct ui_file * | |||
) |
badness_vector rank_function | ( | gdb::array_view< type * > | parms, |
gdb::array_view< value * > | args | ||
) |
void recursive_dump_type | ( | struct type * | , |
int | |||
) |
struct type * resolve_dynamic_type | ( | struct type * | type, |
gdb::array_view< const gdb_byte > | valaddr, | ||
CORE_ADDR | addr | ||
) |
Resolve all dynamic values of a type e.g. array bounds to static values. ADDR specifies the location of the variable the type is bound to. If TYPE has no dynamic properties return TYPE; otherwise a new type with static properties is returned.
For an array type, if the element type is dynamic, then that will not be resolved. This is done because each individual element may have a different type when resolved (depending on the contents of memory). In this situation, 'is_dynamic_type' will still return true for the return value of this function.
bool set_type_align | ( | struct type * | , |
ULONGEST | |||
) |
Set the alignment of the type. The alignment must be a power of
void set_type_vptr_fieldno | ( | struct type * | , |
int | |||
) |
void smash_to_method_type | ( | struct type * | type, |
struct type * | self_type, | ||
struct type * | to_type, | ||
struct field * | args, | ||
int | nargs, | ||
int | varargs | ||
) |
unsigned type_align | ( | struct type * | ) |
Return the alignment of the type in target addressable memory units. Return 0 if the alignment cannot be determined; but note that this makes an effort to compute the alignment even it it was not specified in the debug info.
enum bfd_endian type_byte_order | ( | const struct type * | type | ) |
When the type includes explicit byte ordering, return that. Otherwise, the byte ordering from gdbarch_byte_order for the type's arch is returned.
unsigned int type_length_units | ( | struct type * | type | ) |
const char * type_name_or_error | ( | struct type * | type | ) |
int type_not_allocated | ( | const struct type * | type | ) |
int type_not_associated | ( | const struct type * | type | ) |
unsigned type_raw_align | ( | struct type * | ) |
Return the alignment of the type in target addressable memory units, or 0 if no alignment was specified.
|
extern |
Badness of converting derived to base class.
|
extern |
Badness of converting a derived class pointer to a base class pointer.
|
extern |
Badness of conversion to boolean.
|
extern |
The default value of TYPE_CPLUS_SPECIFIC(T) points to this shared static structure.
|
extern |
Badness of cv-conversion. Subrank is a flag describing the conversions being done.
|
extern |
Badness of an exact match.
|
extern |
Badness of floating conversion.
|
extern |
Badness of floating promotion.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
Badness if no conversion among types.
|
extern |
Badness of integer<->floating conversions.
|
extern |
Badness of integral conversion.
|
extern |
Badness of integral promotion.
|
extern |
Badness if parameter list length doesn't match arg list length.
|
extern |
Badness of converting a (non-zero) integer constant to a pointer.
|
extern |
Converting a pointer to an int is usually OK.
|
extern |
Badness of converting integer 0 to NULL pointer.
|
extern |
|
extern |
Badness of converting from non-reference to reference. Subrank is the type of reference conversion being done.
|
extern |
|
extern |
Dummy badness value for nonexistent parameter positions.
|
extern |
Badness of conversion of pointer to void pointer.