GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions | Variables
gdbtypes.h File Reference
#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 "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  fixed_point_type_info
 
struct  builtin_type
 
class  type_allocator
 
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 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< rankbadness_vector
 

Enumerations

enum  type_code { TYPE_CODE_UNDEF = 0 }
 
enum  type_instance_flag_value : unsigned {
  TYPE_INSTANCE_FLAG_CONST = (1 << 0) , TYPE_INSTANCE_FLAG_VOLATILE = (1 << 1) , TYPE_INSTANCE_FLAG_CODE_SPACE = (1 << 2) , TYPE_INSTANCE_FLAG_DATA_SPACE = (1 << 3) ,
  TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1 = (1 << 4) , TYPE_INSTANCE_FLAG_ADDRESS_CLASS_2 = (1 << 5) , TYPE_INSTANCE_FLAG_NOTTEXT = (1 << 6) , TYPE_INSTANCE_FLAG_RESTRICT = (1 << 7) ,
  TYPE_INSTANCE_FLAG_ATOMIC = (1 << 8)
}
 
enum  dynamic_prop_kind {
  PROP_UNDEFINED , PROP_CONST , PROP_ADDR_OFFSET , PROP_LOCEXPR ,
  PROP_LOCLIST , PROP_VARIANT_PARTS , PROP_TYPE , PROP_VARIABLE_NAME
}
 
enum  dynamic_prop_node_kind {
  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
}
 
enum  field_loc_kind {
  FIELD_LOC_KIND_BITPOS , FIELD_LOC_KIND_ENUMVAL , FIELD_LOC_KIND_PHYSADDR , FIELD_LOC_KIND_PHYSNAME ,
  FIELD_LOC_KIND_DWARF_BLOCK
}
 
enum  type_specific_kind {
  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
}
 

Functions

 DEF_ENUM_FLAGS_TYPE (enum type_instance_flag_value, type_instance_flags)
 
bool operator== (const dynamic_prop &l, const dynamic_prop &r)
 
static bool operator!= (const dynamic_prop &l, const dynamic_prop &r)
 
bool operator== (const range_bounds &l, const range_bounds &r)
 
static 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 typeinternal_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 typeinternal_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 builtin_type * builtin_type (struct objfile *objfile)
 
struct typeget_target_type (struct type *type)
 
unsigned int type_length_units (struct type *type)
 
struct typeinit_integer_type (type_allocator &alloc, int bit, int unsigned_p, const char *name)
 
struct typeinit_character_type (type_allocator &alloc, int bit, int unsigned_p, const char *name)
 
struct typeinit_boolean_type (type_allocator &alloc, int bit, int unsigned_p, const char *name)
 
struct typeinit_float_type (type_allocator &alloc, int bit, const char *name, const struct floatformat **floatformats, enum bfd_endian byte_order=BFD_ENDIAN_UNKNOWN)
 
struct typeinit_decfloat_type (type_allocator &alloc, int bit, const char *name)
 
bool can_create_complex_type (struct type *)
 
struct typeinit_complex_type (const char *, struct type *)
 
struct typeinit_pointer_type (type_allocator &alloc, int bit, const char *name, struct type *target_type)
 
struct typeinit_fixed_point_type (type_allocator &, int, int, const char *)
 
struct typearch_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 fieldappend_composite_type_field_raw (struct type *t, const char *name, struct type *field)
 
struct typearch_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 typeinit_vector_type (struct type *elt_type, int n)
 
struct typelookup_reference_type (struct type *, enum type_code)
 
struct typelookup_lvalue_reference_type (struct type *)
 
struct typelookup_rvalue_reference_type (struct type *)
 
struct typemake_reference_type (struct type *, struct type **, enum type_code)
 
struct typemake_cv_type (int, int, struct type *, struct type **)
 
struct typemake_restrict_type (struct type *)
 
struct typemake_unqualified_type (struct type *)
 
struct typemake_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 typemake_type_with_address_space (struct type *type, type_instance_flags space_identifier)
 
struct typelookup_memberptr_type (struct type *, struct type *)
 
struct typelookup_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 *)
 
const char * type_name_or_error (struct type *type)
 
struct_elt lookup_struct_elt (struct type *, const char *, int)
 
struct typelookup_struct_elt_type (struct type *, const char *, int)
 
struct typemake_pointer_type (struct type *, struct type **)
 
struct typelookup_pointer_type (struct type *)
 
struct typemake_function_type (struct type *, struct type **)
 
struct typelookup_function_type (struct type *)
 
struct typelookup_function_type_with_arguments (struct type *, int, struct type **)
 
struct typecreate_static_range_type (type_allocator &alloc, struct type *index_type, LONGEST low_bound, LONGEST high_bound)
 
struct typecreate_array_type_with_stride (type_allocator &alloc, struct type *element_type, struct type *range_type, struct dynamic_prop *byte_stride_prop, unsigned int bit_stride)
 
struct typecreate_range_type (type_allocator &alloc, struct type *index_type, const struct dynamic_prop *low_bound, const struct dynamic_prop *high_bound, LONGEST bias)
 
struct typecreate_range_type_with_stride (type_allocator &alloc, 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 typecreate_array_type (type_allocator &alloc, struct type *element_type, struct type *range_type)
 
struct typelookup_array_range_type (struct type *, LONGEST, LONGEST)
 
struct typecreate_string_type (type_allocator &alloc, struct type *string_char_type, struct type *range_type)
 
struct typelookup_string_range_type (struct type *, LONGEST, LONGEST)
 
struct typecreate_set_type (type_allocator &alloc, struct type *domain_type)
 
struct typelookup_unsigned_typename (const struct language_defn *, const char *)
 
struct typelookup_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 typeresolve_dynamic_type (struct type *type, gdb::array_view< const gdb_byte > valaddr, CORE_ADDR addr, const frame_info_ptr *frame=nullptr)
 
int is_dynamic_type (struct type *type)
 
struct typecheck_typedef (struct type *)
 
void check_stub_method_group (struct type *, int)
 
char * gdb_mangle_name (struct type *, int, int)
 
struct typelookup_typename (const struct language_defn *language, const char *name, const struct block *block, int noerr)
 
struct typelookup_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)
 
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 typecopy_type_recursive (struct type *type, htab_t copied_types)
 
struct typecopy_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
 

Macro Definition Documentation

◆ ADA_TYPE_P

#define ADA_TYPE_P ( type)
Value:
&& (type)->is_fixed_instance ()))
@ TYPE_SPECIFIC_GNAT_STUFF
Definition gdbtypes.h:503
@ TYPE_SPECIFIC_NONE
Definition gdbtypes.h:501
#define TYPE_SPECIFIC_FIELD(thistype)
Definition gdbtypes.h:1926
enum var_types type
Definition scm-param.c:142

True if TYPE is known to be an Ada type of some kind.

Definition at line 1848 of file gdbtypes.h.

Referenced by ada_is_variant_part(), typy_get_name(), and valpy_getitem().

◆ ALLOCATE_CPLUS_STRUCT_TYPE

#define ALLOCATE_CPLUS_STRUCT_TYPE ( type)    allocate_cplus_struct_type (type)

◆ ALLOCATE_GNAT_AUX_TYPE

#define ALLOCATE_GNAT_AUX_TYPE ( type)    allocate_gnat_aux_type (type)

Definition at line 1841 of file gdbtypes.h.

Referenced by set_descriptive_type().

◆ B_BYTES

#define B_BYTES ( x)    ( 1 + ((x)>>3) )

◆ B_CLR

#define B_CLR ( a,
x )   ((a)[(x)>>3] &= ~(1 << ((x)&7)))

Definition at line 72 of file gdbtypes.h.

◆ B_CLRALL

#define B_CLRALL ( a,
x )   memset ((a), 0, B_BYTES(x))

Definition at line 76 of file gdbtypes.h.

◆ B_SET

#define B_SET ( a,
x )   ((a)[(x)>>3] |= (1 << ((x)&7)))

Definition at line 71 of file gdbtypes.h.

◆ B_TST

#define B_TST ( a,
x )   ((a)[(x)>>3] & (1 << ((x)&7)))

Definition at line 73 of file gdbtypes.h.

Referenced by print_bit_vector().

◆ B_TYPE

#define B_TYPE   unsigned char

◆ BASETYPE_VIA_PUBLIC

#define BASETYPE_VIA_PUBLIC ( thistype,
index )    ((!TYPE_FIELD_PRIVATE(thistype, index)) && (!TYPE_FIELD_PROTECTED(thistype, index)))

◆ BASETYPE_VIA_VIRTUAL

#define BASETYPE_VIA_VIRTUAL ( thistype,
index )

◆ CV_CONVERSION_CONST

#define CV_CONVERSION_CONST   1

Definition at line 2739 of file gdbtypes.h.

Referenced by rank_one_type(), and rank_one_type_parm_ptr().

◆ CV_CONVERSION_VOLATILE

#define CV_CONVERSION_VOLATILE   2

Definition at line 2740 of file gdbtypes.h.

Referenced by rank_one_type(), and rank_one_type_parm_ptr().

◆ HAVE_CPLUS_STRUCT

#define HAVE_CPLUS_STRUCT ( type)

◆ HAVE_GNAT_AUX_INFO

#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 1844 of file gdbtypes.h.

Referenced by ada_find_parallel_type_with_name(), ada_to_fixed_type_1(), find_parallel_type_by_descriptive_type(), and set_die_type().

◆ INIT_CPLUS_SPECIFIC

#define INIT_CPLUS_SPECIFIC ( type)

◆ INIT_FIXED_POINT_SPECIFIC

#define INIT_FIXED_POINT_SPECIFIC ( type)
Value:
allocate_fixed_point_type_info (type))
@ TYPE_SPECIFIC_FIXED_POINT
Definition gdbtypes.h:509

Definition at line 1862 of file gdbtypes.h.

Referenced by copy_type_recursive(), and set_type_code().

◆ INIT_FUNC_SPECIFIC

#define INIT_FUNC_SPECIFIC ( type)
Value:
TYPE_MAIN_TYPE (type)->type_specific.func_stuff = (struct func_type *) \
@ TYPE_SPECIFIC_FUNC
Definition gdbtypes.h:506
#define TYPE_ZALLOC(t, size)
Definition gdbtypes.h:2224
#define TYPE_MAIN_TYPE(thistype)
Definition gdbtypes.h:1866
struct func_type * func_stuff
Definition gdbtypes.h:781

Definition at line 1853 of file gdbtypes.h.

Referenced by copy_type_recursive(), make_function_type(), set_type_code(), and set_type_self_type().

◆ INIT_GNAT_SPECIFIC

#define INIT_GNAT_SPECIFIC ( type)
Value:
TYPE_GNAT_SPECIFIC (type) = (struct gnat_aux_type *) &gnat_aux_default)
const struct gnat_aux_type gnat_aux_default
Definition gdbtypes.c:3307

Definition at line 1838 of file gdbtypes.h.

Referenced by ada_type_of_array(), copy_type_recursive(), and set_die_type().

◆ INIT_NONE_SPECIFIC

#define INIT_NONE_SPECIFIC ( type)

◆ OP

#define OP ( X)    X,

Definition at line 85 of file gdbtypes.h.

◆ REFERENCE_CONVERSION_CONST_LVALUE

#define REFERENCE_CONVERSION_CONST_LVALUE   2

Conversion to const lvalue reference.

Definition at line 2732 of file gdbtypes.h.

Referenced by rank_one_type().

◆ REFERENCE_CONVERSION_RVALUE

#define REFERENCE_CONVERSION_RVALUE   1

Conversion to rvalue reference.

Definition at line 2730 of file gdbtypes.h.

Referenced by rank_one_type().

◆ SET_TYPE_FIELD_IGNORE

#define SET_TYPE_FIELD_IGNORE ( thistype,
n )    B_SET (TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits, (n))

Definition at line 1970 of file gdbtypes.h.

Referenced by attach_fields_to_type().

◆ SET_TYPE_FIELD_PRIVATE

#define SET_TYPE_FIELD_PRIVATE ( thistype,
n )    B_SET (TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits, (n))

Definition at line 1966 of file gdbtypes.h.

Referenced by attach_fields_to_type(), and dwarf2_attach_fields_to_type().

◆ SET_TYPE_FIELD_PROTECTED

#define SET_TYPE_FIELD_PROTECTED ( thistype,
n )    B_SET (TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits, (n))

Definition at line 1968 of file gdbtypes.h.

Referenced by attach_fields_to_type(), and dwarf2_attach_fields_to_type().

◆ SET_TYPE_FIELD_VIRTUAL

#define SET_TYPE_FIELD_VIRTUAL ( thistype,
n )    B_SET (TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits, (n))

Definition at line 1972 of file gdbtypes.h.

Referenced by dwarf2_attach_fields_to_type(), and read_baseclasses().

◆ TYPE_ADDRESS_CLASS_1

#define TYPE_ADDRESS_CLASS_1 ( t)
Value:
(((t)->instance_flags ()) \
@ TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1
Definition gdbtypes.h:100

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 186 of file gdbtypes.h.

Referenced by ft32_pointer_to_address(), and recursive_dump_type().

◆ TYPE_ADDRESS_CLASS_2

#define TYPE_ADDRESS_CLASS_2 ( t)
Value:
(((t)->instance_flags ()) \
@ TYPE_INSTANCE_FLAG_ADDRESS_CLASS_2
Definition gdbtypes.h:101

Definition at line 188 of file gdbtypes.h.

Referenced by recursive_dump_type().

◆ TYPE_ADDRESS_CLASS_ALL

#define TYPE_ADDRESS_CLASS_ALL ( t)
Value:
(((t)->instance_flags ()) \
#define TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL
Definition gdbtypes.h:190

Definition at line 192 of file gdbtypes.h.

Referenced by replace_type().

◆ TYPE_ALIGN_BITS

#define TYPE_ALIGN_BITS   8

Number of bits allocated for alignment.

Definition at line 945 of file gdbtypes.h.

Referenced by set_type_align().

◆ TYPE_ALLOC

#define TYPE_ALLOC ( t,
size )
Value:
(obstack_alloc (((t)->is_objfile_owned () \
? &((t)->objfile_owner ()->objfile_obstack) \
: gdbarch_obstack ((t)->arch_owner ())), \
size))
obstack * gdbarch_obstack(gdbarch *arch)
size_t size
Definition go32-nat.c:239

Definition at line 2215 of file gdbtypes.h.

Referenced by type::alloc_fields(), copy_type_recursive(), dwarf2_attach_fn_fields_to_type(), init_complex_type(), and process_structure_scope().

◆ TYPE_ALLOCATED_PROP

#define TYPE_ALLOCATED_PROP ( thistype)     ((thistype)->dyn_prop (DYN_PROP_ALLOCATED))

◆ TYPE_ASSOCIATED_PROP

#define TYPE_ASSOCIATED_PROP ( thistype)     ((thistype)->dyn_prop (DYN_PROP_ASSOCIATED))

◆ TYPE_ATOMIC

#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 134 of file gdbtypes.h.

Referenced by c_type_print_modifier(), cp_type_print_method_args(), and recursive_dump_type().

◆ TYPE_BASECLASS

#define TYPE_BASECLASS ( thistype,
index )   ((thistype)->field (index).type ())

◆ TYPE_BASECLASS_BITPOS

#define TYPE_BASECLASS_BITPOS ( thistype,
index )   (thistype->field (index).loc_bitpos ())

◆ TYPE_BASECLASS_NAME

#define TYPE_BASECLASS_NAME ( thistype,
index )   (thistype->field (index).name ())

◆ TYPE_CALLING_CONVENTION

#define TYPE_CALLING_CONVENTION ( thistype)    TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->calling_convention

◆ TYPE_CHAIN

#define TYPE_CHAIN ( thistype)    (thistype)->chain

◆ TYPE_CODE_SPACE

#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 173 of file gdbtypes.h.

Referenced by avr_pointer_to_address(), iq2000_pointer_to_address(), recursive_dump_type(), and rl78_pointer_to_address().

◆ TYPE_CONST

#define TYPE_CONST ( t)    ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_CONST) != 0)

◆ TYPE_CPLUS_CALLING_CONVENTION

#define TYPE_CPLUS_CALLING_CONVENTION ( thistype)     TYPE_MAIN_TYPE(thistype)->type_specific.cplus_stuff->calling_convention

Definition at line 1938 of file gdbtypes.h.

Referenced by gnuv3_pass_by_reference(), print_cplus_stuff(), and read_structure_type().

◆ TYPE_CPLUS_DYNAMIC

#define TYPE_CPLUS_DYNAMIC ( thistype)    TYPE_CPLUS_SPECIFIC (thistype)->is_dynamic

Definition at line 1952 of file gdbtypes.h.

Referenced by dwarf2_add_member_fn(), and gnuv3_dynamic_class().

◆ TYPE_CPLUS_SPECIFIC

#define TYPE_CPLUS_SPECIFIC ( thistype)
Value:
(!HAVE_CPLUS_STRUCT(thistype) \
#define HAVE_CPLUS_STRUCT(type)
Definition gdbtypes.h:1826

Definition at line 1933 of file gdbtypes.h.

Referenced by recursive_dump_type().

◆ TYPE_DATA_LOCATION

#define TYPE_DATA_LOCATION ( thistype)     ((thistype)->dyn_prop (DYN_PROP_DATA_LOCATION))

◆ TYPE_DATA_LOCATION_ADDR

#define TYPE_DATA_LOCATION_ADDR ( thistype)     (TYPE_DATA_LOCATION (thistype)->const_val ())

Definition at line 1896 of file gdbtypes.h.

Referenced by value::set_component_location(), and value_from_contents_and_address().

◆ TYPE_DATA_LOCATION_BATON

#define TYPE_DATA_LOCATION_BATON ( thistype)     TYPE_DATA_LOCATION (thistype)->data.baton

Definition at line 1894 of file gdbtypes.h.

◆ TYPE_DATA_LOCATION_KIND

#define TYPE_DATA_LOCATION_KIND ( thistype)     (TYPE_DATA_LOCATION (thistype)->kind ())

Definition at line 1898 of file gdbtypes.h.

Referenced by is_dynamic_type_internal().

◆ TYPE_DATA_SPACE

#define TYPE_DATA_SPACE ( t)     ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_DATA_SPACE) != 0)

Definition at line 176 of file gdbtypes.h.

Referenced by avr_integer_to_address(), and recursive_dump_type().

◆ TYPE_DESCRIPTIVE_TYPE

#define TYPE_DESCRIPTIVE_TYPE ( thistype)    TYPE_GNAT_SPECIFIC(thistype)->descriptive_type

◆ TYPE_DYNAMIC_LENGTH

#define TYPE_DYNAMIC_LENGTH ( thistype)     ((thistype)->dyn_prop (DYN_PROP_BYTE_SIZE))

Definition at line 1900 of file gdbtypes.h.

Referenced by resolve_dynamic_type_internal().

◆ TYPE_ERROR_NAME

#define TYPE_ERROR_NAME ( type)     (type->name () ? type->name () : _("<error type>"))

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 2066 of file gdbtypes.h.

Referenced by c_type_print_base_1(), f_language::f_type_print_base(), generic_value_print(), and pascal_language::type_print_base().

◆ TYPE_FIELD_IGNORE

#define TYPE_FIELD_IGNORE ( thistype,
n )
Value:
(TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits == NULL ? 0 \
: B_TST(TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits, (n)))

Definition at line 1980 of file gdbtypes.h.

Referenced by compile_cplus_convert_struct_or_union_members(), cp_print_value_fields(), pascal_object_print_value_fields(), and print_field_values().

◆ TYPE_FIELD_IGNORE_BITS

#define TYPE_FIELD_IGNORE_BITS ( thistype)     TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits

Definition at line 1962 of file gdbtypes.h.

Referenced by attach_fields_to_type(), and dwarf2_attach_fields_to_type().

◆ TYPE_FIELD_PRIVATE

#define TYPE_FIELD_PRIVATE ( thistype,
n )
Value:
(TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits == NULL ? 0 \
: B_TST(TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits, (n)))

Definition at line 1974 of file gdbtypes.h.

Referenced by c_type_print_base_struct_union(), cplus_class_num_children(), get_field_access_flag(), match_accessibility(), need_access_label_p(), and pascal_language::type_print_base().

◆ TYPE_FIELD_PRIVATE_BITS

#define TYPE_FIELD_PRIVATE_BITS ( thistype)     TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits

◆ TYPE_FIELD_PROTECTED

#define TYPE_FIELD_PROTECTED ( thistype,
n )

◆ TYPE_FIELD_PROTECTED_BITS

#define TYPE_FIELD_PROTECTED_BITS ( thistype)     TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits

◆ TYPE_FIELD_VIRTUAL

#define TYPE_FIELD_VIRTUAL ( thistype,
n )
Value:
(TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits == NULL ? 0 \
: B_TST(TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits, (n)))

Definition at line 1983 of file gdbtypes.h.

◆ TYPE_FIELD_VIRTUAL_BITS

#define TYPE_FIELD_VIRTUAL_BITS ( thistype)     TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits

Definition at line 1964 of file gdbtypes.h.

Referenced by dwarf2_attach_fields_to_type(), print_cplus_stuff(), and read_baseclasses().

◆ TYPE_FLOATFORMAT

#define TYPE_FLOATFORMAT ( thistype)    TYPE_MAIN_TYPE(thistype)->type_specific.floatformat

◆ TYPE_FN_FIELD

#define TYPE_FN_FIELD ( thisfn,
n )   (thisfn)[n]

Definition at line 2000 of file gdbtypes.h.

◆ TYPE_FN_FIELD_ARGS

#define TYPE_FN_FIELD_ARGS ( thisfn,
n )   (((thisfn)[n].type)->fields ())

Definition at line 2003 of file gdbtypes.h.

Referenced by dump_fn_fieldlists(), find_oload_champ(), and search_struct_method().

◆ TYPE_FN_FIELD_ARTIFICIAL

#define TYPE_FN_FIELD_ARTIFICIAL ( thisfn,
n )   ((thisfn)[n].is_artificial)

◆ TYPE_FN_FIELD_CONST

#define TYPE_FN_FIELD_CONST ( thisfn,
n )   ((thisfn)[n].is_const)

◆ TYPE_FN_FIELD_CONSTRUCTOR

#define TYPE_FN_FIELD_CONSTRUCTOR ( thisfn,
n )   ((thisfn)[n].is_constructor)

◆ TYPE_FN_FIELD_DEFAULTED

#define TYPE_FN_FIELD_DEFAULTED ( thisfn,
n )   ((thisfn)[n].defaulted)

Definition at line 2015 of file gdbtypes.h.

Referenced by dump_fn_fieldlists(), and get_def_style().

◆ TYPE_FN_FIELD_DELETED

#define TYPE_FN_FIELD_DELETED ( thisfn,
n )   ((thisfn)[n].is_deleted)

Definition at line 2016 of file gdbtypes.h.

Referenced by dump_fn_fieldlists(), and get_def_style().

◆ TYPE_FN_FIELD_FCONTEXT

#define TYPE_FN_FIELD_FCONTEXT ( thisfn,
n )   ((thisfn)[n].fcontext)

Definition at line 2011 of file gdbtypes.h.

Referenced by dump_fn_fieldlists(), and gnuv2_virtual_fn_field().

◆ TYPE_FN_FIELD_PHYSNAME

#define TYPE_FN_FIELD_PHYSNAME ( thisfn,
n )   (thisfn)[n].physname

◆ TYPE_FN_FIELD_PRIVATE

#define TYPE_FN_FIELD_PRIVATE ( thisfn,
n )   ((thisfn)[n].is_private)

◆ TYPE_FN_FIELD_PROTECTED

#define TYPE_FN_FIELD_PROTECTED ( thisfn,
n )   ((thisfn)[n].is_protected)

◆ TYPE_FN_FIELD_STATIC_P

#define TYPE_FN_FIELD_STATIC_P ( thisfn,
n )   ((thisfn)[n].voffset == VOFFSET_STATIC)

◆ TYPE_FN_FIELD_STUB

#define TYPE_FN_FIELD_STUB ( thisfn,
n )   ((thisfn)[n].is_stub)

◆ TYPE_FN_FIELD_TYPE

#define TYPE_FN_FIELD_TYPE ( thisfn,
n )   (thisfn)[n].type

◆ TYPE_FN_FIELD_VIRTUAL_P

#define TYPE_FN_FIELD_VIRTUAL_P ( thisfn,
n )   ((thisfn)[n].voffset > 1)

◆ TYPE_FN_FIELD_VOFFSET

#define TYPE_FN_FIELD_VOFFSET ( thisfn,
n )   ((thisfn)[n].voffset-2)

◆ TYPE_FN_FIELD_VOLATILE

#define TYPE_FN_FIELD_VOLATILE ( thisfn,
n )   ((thisfn)[n].is_volatile)

◆ TYPE_FN_FIELDLIST

#define TYPE_FN_FIELDLIST ( thistype,
n )   TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n]

◆ TYPE_FN_FIELDLIST1

#define TYPE_FN_FIELDLIST1 ( thistype,
n )   TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].fn_fields

◆ TYPE_FN_FIELDLIST_LENGTH

#define TYPE_FN_FIELDLIST_LENGTH ( thistype,
n )   TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].length

◆ TYPE_FN_FIELDLIST_NAME

#define TYPE_FN_FIELDLIST_NAME ( thistype,
n )   TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].name

◆ TYPE_FN_FIELDLISTS

#define TYPE_FN_FIELDLISTS ( thistype)    TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists

◆ TYPE_GNAT_SPECIFIC

#define TYPE_GNAT_SPECIFIC ( thistype)    TYPE_MAIN_TYPE(thistype)->type_specific.gnat_stuff

Definition at line 1941 of file gdbtypes.h.

Referenced by allocate_gnat_aux_type(), and recursive_dump_type().

◆ TYPE_HAS_DYNAMIC_LENGTH

#define TYPE_HAS_DYNAMIC_LENGTH ( t)     ((t)->dyn_prop (DYN_PROP_BYTE_SIZE) != nullptr)

◆ TYPE_HAS_VARIANT_PARTS

#define TYPE_HAS_VARIANT_PARTS ( t)     ((t)->dyn_prop (DYN_PROP_VARIANT_PARTS) != nullptr)

True if this type has variant parts.

Definition at line 147 of file gdbtypes.h.

Referenced by rust_enum_p().

◆ TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL

#define TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL    (TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1 | TYPE_INSTANCE_FLAG_ADDRESS_CLASS_2)

◆ TYPE_IS_ALLOCATABLE

#define TYPE_IS_ALLOCATABLE ( t)     ((t)->dyn_prop (DYN_PROP_ALLOCATED) != NULL)

True if this type is allocatable.

Definition at line 143 of file gdbtypes.h.

Referenced by f_language::f_type_print_base().

◆ TYPE_IS_OPAQUE

#define TYPE_IS_OPAQUE ( thistype)
Value:
((((thistype)->code () == TYPE_CODE_STRUCT) \
|| ((thistype)->code () == TYPE_CODE_UNION)) \
&& ((thistype)->num_fields () == 0) \
&& (!HAVE_CPLUS_STRUCT (thistype) \
|| TYPE_NFN_FIELDS (thistype) == 0) \
&& ((thistype)->is_stub () || !(thistype)->stub_is_supported ()))
int code
Definition ada-lex.l:670
#define TYPE_NFN_FIELDS(thistype)
Definition gdbtypes.h:1925

Definition at line 2049 of file gdbtypes.h.

Referenced by basic_lookup_transparent_type_1(), basic_lookup_transparent_type_quick(), block_find_symbol(), and check_typedef().

◆ TYPE_IS_REFERENCE

#define TYPE_IS_REFERENCE ( t)     ((t)->code () == TYPE_CODE_REF || (t)->code () == TYPE_CODE_RVALUE_REF)

◆ TYPE_MAIN_TYPE

#define TYPE_MAIN_TYPE ( thistype)    (thistype)->main_type

◆ TYPE_N_BASECLASSES

#define TYPE_N_BASECLASSES ( thistype)    TYPE_CPLUS_SPECIFIC(thistype)->n_baseclasses

Definition at line 1947 of file gdbtypes.h.

Referenced by expr::add_struct_fields(), add_symbol_overload_list_adl_namespace(), c_type_print_base_struct_union(), check_field(), compile_cplus_convert_struct_or_union(), compile_cplus_convert_struct_or_union_members(), completion_list_add_fields(), compute_vtable_size(), convert_field(), cp_find_class_member(), cp_find_type_baseclass_by_name(), cp_lookup_nested_symbol_1(), cp_print_value(), cp_print_value_fields(), cp_type_print_derivation_info(), cplus_class_num_children(), cplus_describe_child(), cplus_number_of_children(), define_symbol(), distance_to_ancestor(), dwarf2_attach_fields_to_type(), dynamic_cast_check_1(), dynamic_cast_check_2(), enum_constant_from_type(), f_language::f_type_print_derivation_info(), find_method_list(), find_methods(), find_symbol_in_baseclass(), find_symbol_in_baseclass(), gdbscm_field_baseclass_p(), gen_struct_elt_for_reference(), gen_struct_ref_recursive(), gen_trace_static_fields(), get_baseclass_offset(), get_long_set_bounds(), get_vptr_fieldno(), gnuv2_baseclass_offset(), gnuv2_value_rtti_type(), gnuv3_dynamic_class(), gnuv3_find_method_in(), is_unique_ancestor_worker(), lookup_struct_elt(), m2_is_long_set(), m2_is_long_set_of_type(), m2_long_set(), m2_print_long_set(), m2_record_fields(), need_access_label_p(), pascal_object_print_value(), pascal_object_print_value_fields(), value::primitive_field(), print_cplus_stuff(), process_structure_scope(), read_baseclasses(), read_tilde_fields(), typedef_hash_table::recursively_update(), rust_print_struct_def(), struct_field_searcher::search(), search_struct_method(), pascal_language::type_print_base(), pascal_language::type_print_derivation_info(), value_struct_elt_bitpos(), and value_struct_elt_for_reference().

◆ TYPE_N_TEMPLATE_ARGUMENTS

#define TYPE_N_TEMPLATE_ARGUMENTS ( thistype)     TYPE_CPLUS_SPECIFIC (thistype)->n_template_arguments

◆ TYPE_NESTED_TYPES_ARRAY

#define TYPE_NESTED_TYPES_ARRAY ( thistype)     TYPE_CPLUS_SPECIFIC (thistype)->nested_types

Definition at line 2034 of file gdbtypes.h.

Referenced by process_structure_scope().

◆ TYPE_NESTED_TYPES_COUNT

#define TYPE_NESTED_TYPES_COUNT ( thistype)     TYPE_CPLUS_SPECIFIC (thistype)->nested_types_count

◆ TYPE_NESTED_TYPES_FIELD

#define TYPE_NESTED_TYPES_FIELD ( thistype,
n )    TYPE_CPLUS_SPECIFIC (thistype)->nested_types[n]

Definition at line 2036 of file gdbtypes.h.

Referenced by process_structure_scope().

◆ TYPE_NESTED_TYPES_FIELD_NAME

#define TYPE_NESTED_TYPES_FIELD_NAME ( thistype,
n )    TYPE_NESTED_TYPES_FIELD (thistype, n).name

Definition at line 2038 of file gdbtypes.h.

◆ TYPE_NESTED_TYPES_FIELD_PRIVATE

#define TYPE_NESTED_TYPES_FIELD_PRIVATE ( thistype,
n )    TYPE_NESTED_TYPES_FIELD (thistype, n).is_private

Definition at line 2046 of file gdbtypes.h.

Referenced by compile_cplus_convert_type_defns().

◆ TYPE_NESTED_TYPES_FIELD_PROTECTED

#define TYPE_NESTED_TYPES_FIELD_PROTECTED ( thistype,
n )    TYPE_NESTED_TYPES_FIELD (thistype, n).is_protected

Definition at line 2044 of file gdbtypes.h.

Referenced by compile_cplus_convert_type_defns().

◆ TYPE_NESTED_TYPES_FIELD_TYPE

#define TYPE_NESTED_TYPES_FIELD_TYPE ( thistype,
n )    TYPE_NESTED_TYPES_FIELD (thistype, n).type

◆ TYPE_NFN_FIELDS

#define TYPE_NFN_FIELDS ( thistype)    TYPE_CPLUS_SPECIFIC(thistype)->nfn_fields

◆ TYPE_NO_RETURN

#define TYPE_NO_RETURN ( thistype)    TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->is_noreturn

Definition at line 1944 of file gdbtypes.h.

Referenced by copy_type_recursive(), finish_command(), and read_subroutine_type().

◆ TYPE_NOTTEXT

#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 112 of file gdbtypes.h.

Referenced by c_textual_element_type(), check_types_equal(), and recursive_dump_type().

◆ TYPE_POINTER_TYPE

#define TYPE_POINTER_TYPE ( thistype)    (thistype)->pointer_type

Definition at line 1867 of file gdbtypes.h.

Referenced by make_pointer_type(), make_qualified_type(), recursive_dump_type(), and yyparse().

◆ TYPE_RANK_PROP

#define TYPE_RANK_PROP ( thistype)     ((thistype)->dyn_prop (DYN_PROP_RANK))

Definition at line 1908 of file gdbtypes.h.

Referenced by resolve_dynamic_array_or_string().

◆ TYPE_RAW_ALIGN

#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 1874 of file gdbtypes.h.

Referenced by read_enumeration_type(), and read_tag_pointer_type().

◆ TYPE_RAW_CPLUS_SPECIFIC

#define TYPE_RAW_CPLUS_SPECIFIC ( thistype)    TYPE_MAIN_TYPE(thistype)->type_specific.cplus_stuff

◆ TYPE_REFERENCE_TYPE

#define TYPE_REFERENCE_TYPE ( thistype)    (thistype)->reference_type

Definition at line 1868 of file gdbtypes.h.

Referenced by make_qualified_type(), make_reference_type(), and recursive_dump_type().

◆ TYPE_RESTRICT

#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 128 of file gdbtypes.h.

Referenced by c_type_print_modifier(), compile_cplus_convert_method(), compile_cplus_convert_qualified(), convert_qualified(), cp_type_print_method_args(), and recursive_dump_type().

◆ TYPE_RVALUE_REFERENCE_TYPE

#define TYPE_RVALUE_REFERENCE_TYPE ( thistype)    (thistype)->rvalue_reference_type

Definition at line 1869 of file gdbtypes.h.

Referenced by make_reference_type().

◆ TYPE_SAFE_NAME

#define TYPE_SAFE_NAME ( type)     (type->name () != nullptr ? type->name () : _("<unnamed type>"))

A helper macro that returns the name of a type or "unnamed type" if the type has no name.

Definition at line 2060 of file gdbtypes.h.

Referenced by convert_to_kind_type(), eval_op_f_abs(), eval_op_f_mod(), eval_op_f_modulo(), gnuv3_rtti_type(), hash_typedef_field(), print_one_vtable(), riscv_print_arg_location(), search_struct_field(), struct_field_searcher::update_result(), and yyparse().

◆ TYPE_SELF_TYPE

#define TYPE_SELF_TYPE ( thistype)    internal_type_self_type (thistype)

◆ TYPE_SPECIFIC_FIELD

#define TYPE_SPECIFIC_FIELD ( thistype)     TYPE_MAIN_TYPE(thistype)->type_specific_field

◆ TYPE_TAIL_CALL_LIST

#define TYPE_TAIL_CALL_LIST ( thistype)    TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->tail_call_list

◆ TYPE_TEMPLATE_ARGUMENT

#define TYPE_TEMPLATE_ARGUMENT ( thistype,
n )    TYPE_CPLUS_SPECIFIC (thistype)->template_arguments[n]

◆ TYPE_TEMPLATE_ARGUMENTS

#define TYPE_TEMPLATE_ARGUMENTS ( thistype)     TYPE_CPLUS_SPECIFIC (thistype)->template_arguments

Definition at line 1995 of file gdbtypes.h.

Referenced by cp_lookup_symbol_imports_or_template(), and process_structure_scope().

◆ TYPE_TYPEDEF_FIELD

#define TYPE_TYPEDEF_FIELD ( thistype,
n )    TYPE_CPLUS_SPECIFIC (thistype)->typedef_field[n]

Definition at line 2021 of file gdbtypes.h.

Referenced by process_structure_scope(), and typedef_hash_table::recursively_update().

◆ TYPE_TYPEDEF_FIELD_ARRAY

#define TYPE_TYPEDEF_FIELD_ARRAY ( thistype)     TYPE_CPLUS_SPECIFIC (thistype)->typedef_field

Definition at line 2019 of file gdbtypes.h.

Referenced by process_structure_scope().

◆ TYPE_TYPEDEF_FIELD_COUNT

#define TYPE_TYPEDEF_FIELD_COUNT ( thistype)     TYPE_CPLUS_SPECIFIC (thistype)->typedef_field_count

◆ TYPE_TYPEDEF_FIELD_NAME

#define TYPE_TYPEDEF_FIELD_NAME ( thistype,
n )    TYPE_TYPEDEF_FIELD (thistype, n).name

Definition at line 2023 of file gdbtypes.h.

Referenced by c_type_print_base_struct_union().

◆ TYPE_TYPEDEF_FIELD_PRIVATE

#define TYPE_TYPEDEF_FIELD_PRIVATE ( thistype,
n )    TYPE_TYPEDEF_FIELD (thistype, n).is_private

◆ TYPE_TYPEDEF_FIELD_PROTECTED

#define TYPE_TYPEDEF_FIELD_PROTECTED ( thistype,
n )    TYPE_TYPEDEF_FIELD (thistype, n).is_protected

◆ TYPE_TYPEDEF_FIELD_TYPE

#define TYPE_TYPEDEF_FIELD_TYPE ( thistype,
n )    TYPE_TYPEDEF_FIELD (thistype, n).type

◆ TYPE_VOLATILE

#define TYPE_VOLATILE ( t)     ((((t)->instance_flags ()) & TYPE_INSTANCE_FLAG_VOLATILE) != 0)

◆ TYPE_VPTR_BASETYPE

#define TYPE_VPTR_BASETYPE ( thistype)    internal_type_vptr_basetype (thistype)

Definition at line 1923 of file gdbtypes.h.

Referenced by get_vptr_fieldno(), gnuv2_virtual_fn_field(), and print_cplus_stuff().

◆ TYPE_VPTR_FIELDNO

#define TYPE_VPTR_FIELDNO ( thistype)    internal_type_vptr_fieldno (thistype)

◆ TYPE_ZALLOC

#define TYPE_ZALLOC ( t,
size )   (memset (TYPE_ALLOC (t, size), 0, size))

◆ VOFFSET_STATIC

#define VOFFSET_STATIC   1

Definition at line 1598 of file gdbtypes.h.

Referenced by dwarf2_add_member_fn(), and read_member_functions().

Typedef Documentation

◆ badness_vector

typedef std::vector<rank> badness_vector

Used for ranking a function for overload resolution.

Definition at line 1760 of file gdbtypes.h.

Enumeration Type Documentation

◆ 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 273 of file gdbtypes.h.

◆ dynamic_prop_node_kind

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 435 of file gdbtypes.h.

◆ 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 479 of file gdbtypes.h.

◆ type_code

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 81 of file gdbtypes.h.

◆ type_instance_flag_value

enum type_instance_flag_value : unsigned

Some bits for the type's instance_flags word. See the macros below for documentation on each bit.

Enumerator
TYPE_INSTANCE_FLAG_CONST 
TYPE_INSTANCE_FLAG_VOLATILE 
TYPE_INSTANCE_FLAG_CODE_SPACE 
TYPE_INSTANCE_FLAG_DATA_SPACE 
TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1 
TYPE_INSTANCE_FLAG_ADDRESS_CLASS_2 
TYPE_INSTANCE_FLAG_NOTTEXT 
TYPE_INSTANCE_FLAG_RESTRICT 
TYPE_INSTANCE_FLAG_ATOMIC 

Definition at line 94 of file gdbtypes.h.

◆ 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 499 of file gdbtypes.h.

Function Documentation

◆ address_space_name_to_type_instance_flags()

type_instance_flags address_space_name_to_type_instance_flags ( struct gdbarch * gdbarch,
const char * space_identifier )
extern

◆ address_space_type_instance_flags_to_name()

const char * address_space_type_instance_flags_to_name ( struct gdbarch * gdbarch,
type_instance_flags space_flag )
extern

◆ allocate_cplus_struct_type()

void allocate_cplus_struct_type ( struct type * type)
extern

◆ allocate_fixed_point_type_info()

void allocate_fixed_point_type_info ( struct type * type)
extern

◆ allocate_gnat_aux_type()

void allocate_gnat_aux_type ( struct type * type)
extern

◆ append_composite_type_field()

void append_composite_type_field ( struct type * t,
const char * name,
struct type * field )
extern

◆ append_composite_type_field_aligned()

void append_composite_type_field_aligned ( struct type * t,
const char * name,
struct type * field,
int alignment )
extern

◆ append_composite_type_field_raw()

struct field * append_composite_type_field_raw ( struct type * t,
const char * name,
struct type * field )

◆ append_flags_type_field()

void append_flags_type_field ( struct type * type,
int start_bitpos,
int nr_bits,
struct type * field_type,
const char * name )
extern

◆ append_flags_type_flag()

void append_flags_type_flag ( struct type * type,
int bitpos,
const char * name )
extern

◆ arch_composite_type()

struct type * arch_composite_type ( struct gdbarch * gdbarch,
const char * name,
enum type_code code )
extern

◆ arch_flags_type()

struct type * arch_flags_type ( struct gdbarch * gdbarch,
const char * name,
int bit )
extern

◆ builtin_type() [1/2]

const struct builtin_type * builtin_type ( struct gdbarch * gdbarch)
extern

Return the type table for the specified architecture.

Definition at line 6168 of file gdbtypes.c.

References create_gdbtypes_data(), gdbtypes_data, registry< T >::get(), and registry< T >::set().

Referenced by aarch64_pseudo_register_type(), aarch64_push_dummy_call(), aarch64_stap_parse_special_token(), aarch64_vnb_type(), aarch64_vnd_type(), aarch64_vnh_type(), aarch64_vnq_type(), aarch64_vns_type(), aarch64_vnv_type(), ada_atr_enum_rep(), ada_get_tcb_types_info(), ada_pos_atr(), ada_tasks_inferior_data_sniffer(), ada_unop_atr(), ada_value_print_num(), dwarf2_cu::addr_type(), address_from_register(), alpha_push_dummy_call(), alpha_register_type(), alpha_store_return_value(), amd64_dtrace_parse_probe_argument(), amd64_get_longjmp_target(), amd64_x32_pseudo_register_type(), amd_dbgapi_register_type_to_gdb_type(), archpy_integer_type(), arm_neon_double_type(), arm_neon_quad_type(), arm_register_type(), arm_stap_parse_special_token(), expr::assign_component(), avr_register_type(), basic_type(), bfin_register_type(), binop_promote(), BP_MANIPULATION(), bpf_register_type(), bsd_uthread_read_memory_address(), build_d_types(), build_fortran_types(), build_go_types(), build_std_type_info_type(), builtin_type(), c_language_arch_info(), call_function_by_hand_dummy(), procfs_target::can_use_hw_breakpoint(), compile_cplus_convert_func(), compile_object_load(), compile_probe_arg(), convert_func(), convert_symbol_bmsym(), convert_symbol_bmsym(), convert_type_basic(), create_gdbtypes_data(), cris_register_type(), crisv32_register_type(), csky_register_type(), csky_vector_type(), darwin_current_sos(), darwin_load_image_infos(), darwin_read_exec_load_addr_from_dyld(), darwin_solib_read_all_image_info_addr(), dbx_lookup_type(), decode_base_type(), decode_type(), default_auxv_parse(), define_symbol(), die_type(), do_examine(), expr::internalvar_operation::do_generate_ax(), expr::unop_sizeof_operation::do_generate_ax(), expr::assign_modify_operation::do_generate_ax(), expr::logical_and_operation::do_generate_ax(), expr::logical_or_operation::do_generate_ax(), dtrace_process_dof_probe(), dwarf2_init_complex_target_type(), dwarf2_init_integer_type(), elf_gnu_ifunc_resolve_addr(), elf_gnu_ifunc_resolve_by_got(), elf_gnu_ifunc_resolver_return_stop(), elf_locate_base(), elf_rel_plt_read(), error_type(), eval_op_alignof(), eval_op_objc_msgcall(), eval_op_objc_selector(), eval_op_sub(), expr::objc_msgcall_operation::evaluate(), expr::var_value_operation::evaluate_for_sizeof(), expr::var_msym_value_operation::evaluate_for_sizeof(), expr::subscript_operation::evaluate_for_sizeof(), expr::unop_ind_base_operation::evaluate_for_sizeof(), evaluate_subexp_for_sizeof_base(), fbsd_get_thread_local_address(), dwarf_expr_context::fetch_result(), finalize_symtab(), find_command(), find_minsym_type_and_address(), float_type_from_length(), frv_register_type(), ft32_register_type(), gdb_bfd_scan_elf_dyntag(), gdbscm_arch_builtin_type(), gen_expr_binop_rest(), gen_integral_promotions(), generic_auxv_parse(), dwarf_expr_context::get_base_type(), ravenscar_thread_target::get_fpu_state(), get_gdb_vtable_type(), get_running_thread_id(), get_signed_type(), get_unsigned_type(), gnuv3_baseclass_offset(), gnuv3_decode_method_ptr(), gnuv3_make_method_ptr(), gnuv3_method_ptr_size(), h8300_register_type(), handle_stap_probe(), hppa32_convert_from_func_ptr_addr(), hppa32_register_type(), hppa64_register_type(), hppa_skip_trampoline_code(), i386_bnd_type(), i386_mmx_type(), i386_mpx_get_bt_entry(), i386_mpx_info_bounds(), i386_mpx_set_bounds(), i386_pseudo_register_read_into_value(), i386_pseudo_register_type(), i386_pseudo_register_write(), i386_stap_parse_special_token_three_arg_disp(), i386_stap_parse_special_token_triplet(), i386_ymm_type(), i386_zmm_type(), ia64_register_type(), iq2000_register_type(), call_site_target::iterate_over_addresses(), jit_read_code_entry(), jit_read_descriptor(), ada_language::language_arch_info(), cplus_language::language_arch_info(), pascal_language::language_arch_info(), rust_language::language_arch_info(), ld_so_xfer_auxv(), lm32_register_type(), lm_info_read(), locexpr_get_frame_base(), loclist_get_frame_base(), lookup_array_range_type(), lookup_child_selector(), lookup_objc_class(), m32r_register_type(), m68hc11_register_type(), m68k_register_type(), make_gdb_type(), mep_register_type(), mi_cmd_data_read_memory(), microblaze_register_type(), mips_print_fp_register(), mips_pseudo_register_type(), mips_register_type(), mn10300_register_type(), moxie_register_type(), msp430_register_type(), msp430x_register_type(), nbsd_get_siginfo_type(), nios2_register_type(), open_symbol_file_object(), parse_symbol(), ppscm_print_string_repr(), print_scalar_formatted(), print_string_repr(), printf_floating(), proc_watchpoint_address(), processInt(), procfs_address_to_host_pointer(), read_array_type(), read_range_type(), read_subroutine_type(), read_tag_string_type(), language_defn::read_var_value(), selftests::register_to_value_test(), resolve_msgsend(), resolve_msgsend_stret(), resolve_msgsend_super(), resolve_msgsend_super_stret(), riscv_arg_location(), riscv_fpreg_d_type(), riscv_pseudo_register_type(), riscv_register_type(), rs6000_aix_extract_ld_info(), rs6000_builtin_type(), rs6000_builtin_type_vec128(), rs6000_builtin_type_vec64(), rs6000_pseudo_register_type(), s12z_register_type(), s390_pseudo_register_type(), safe_parse_type(), set_next_address(), sh_default_register_type(), sh_sh2a_register_type(), sh_sh3e_register_type(), sh_sh4_register_type(), shell_internal_fn(), solib_svr4_r_brk(), solib_svr4_r_ldsomap(), solib_svr4_r_map(), solib_svr4_r_next(), sparc32_pseudo_register_type(), sparc32_register_type(), sparc64_pseudo_register_type(), sparc64_register_type(), stap_get_expected_argument_type(), stap_modify_semaphore(), stap_parse_register_operand(), stap_parse_single_operand(), svr4_auxv_parse(), tdesc_register_type(), tic6x_register_type(), tilegx_register_type(), unop_promote(), selftests::unpack::unpack_field_as_long_tests(), upgrade_type(), v850_register_type(), val_print_type_code_flags(), value_arg_coerce(), value_nsstring(), value_of_builtin_frame_fp_reg(), value_of_builtin_frame_pc_reg(), varobj_value_get_print_value(), vax_register_type(), vlscm_convert_bytevector(), vlscm_convert_number(), xstormy16_register_type(), xtensa_push_dummy_call(), xtensa_register_type(), and z80_register_type().

◆ builtin_type() [2/2]

const struct builtin_type * builtin_type ( struct objfile * objfile)
extern

Return the type table for the specified objfile.

Definition at line 6180 of file gdbtypes.c.

References objfile::arch(), and builtin_type().

◆ can_create_complex_type()

bool can_create_complex_type ( struct type * target_type)
extern

Definition at line 3439 of file gdbtypes.c.

References type::code(), and type::target_type().

Referenced by complex_binop(), and init_complex_type().

◆ can_dereference()

int can_dereference ( struct type * t)
extern

Definition at line 3642 of file gdbtypes.c.

References check_typedef(), type::code(), and type::target_type().

Referenced by print_value_flags().

◆ check_stub_method_group()

void check_stub_method_group ( struct type * type,
int method_id )
extern

◆ check_typedef()

struct type * check_typedef ( struct type * type)
extern

Definition at line 2966 of file gdbtypes.c.

References type::arch(), check_typedef(), type::code(), currently_reading_symtab, type::instance_flags(), type::is_stub(), type::length(), lookup_symbol(), lookup_transparent_type(), make_qualified_type(), name, type::name(), type_allocator::new_type(), type::objfile_owner(), opaque_type_resolution, type::set_length(), type::set_target_is_stub(), type::set_target_type(), STRUCT_DOMAIN, stub_noname_complaint(), block_symbol::symbol, type::target_is_stub(), type::target_type(), type, symbol::type(), TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL, TYPE_INSTANCE_FLAG_CODE_SPACE, TYPE_INSTANCE_FLAG_DATA_SPACE, TYPE_IS_OPAQUE, and update_static_array_size().

Referenced by aapcs_is_vfp_call_or_return_candidate_1(), aarch64_push_dummy_call(), aarch64_return_in_memory(), aarch64_type_align(), ada_array_bound(), ada_array_bound_from_type(), ada_array_length(), ada_check_typedef(), ada_get_field_index(), ada_is_redundant_index_type_desc(), ada_tasks_inferior_data_sniffer(), ada_val_print_ref(), ada_value_ptr_subscript(), expr::add_struct_fields(), add_symbol_overload_list_adl_namespace(), adjust_value_for_child_access(), value::allocate_lazy(), alpha_push_dummy_call(), amd64_classify_aggregate(), amd64_classify_aggregate_field(), amd64_has_unaligned_fields(), riscv_struct_info::analyse_inner(), arc_type_align(), arm_push_dummy_call(), arm_return_in_memory(), arm_type_align(), arm_vfp_abi_for_function(), arm_vfp_cprc_sub_candidate(), expr::ada_aggregate_operation::assign_aggregate(), expr::assign_component(), avr_push_dummy_call(), bfin_push_dummy_call(), binop_promote(), binop_types_user_defined_p(), BP_MANIPULATION(), BP_MANIPULATION(), bpfinishpy_init(), c_get_string(), c_is_string_type_p(), c_print_type_1(), c_print_typedef(), c_textual_element_type(), c_type_print_base_1(), c_value_of_variable(), c_value_print(), c_value_print_array(), c_value_print_inner(), c_value_print_ptr(), c_value_print_struct(), calculate_limited_array_length(), call_function_by_hand_dummy(), can_dereference(), can_use_hardware_watchpoint(), ppc_linux_nat_target::check_condition(), check_field(), check_parameter_typelist(), check_typedef(), check_types_equal(), cimag_internal_fn(), classify_inner_name(), classify_inner_name(), classify_type(), coerce_array(), coerce_pieced_ref(), coerce_ref(), coerce_ref_if_computed(), collection_list::collect_symbol(), common_val_print(), compile_cplus_convert_typedef(), compile_object_load(), expr::structop_base_operation::complete(), complex_binop(), compute_struct_member(), compute_vtable_size(), constrained_packed_array_type(), value::contents_eq(), expr::convert_char_literal(), compile_c_instance::convert_type(), cp_find_class_member(), cp_find_type_baseclass_by_name(), cp_lookup_bare_symbol(), cp_lookup_nested_symbol(), cp_lookup_nested_symbol_1(), cp_lookup_rtti_type(), cp_print_static_field(), cp_print_value(), cp_print_value_fields(), creal_internal_fn(), create_range_type(), create_value(), csky_push_dummy_call(), d_lookup_nested_symbol(), d_lookup_symbol(), d_value_print_inner(), decode_constrained_packed_array_type(), fortran_array_printer_impl::dimension_contents_eq(), distance_to_ancestor(), python_xmethod_worker::do_get_result_type(), do_ppc_sysv_return_value(), dwarf2_evaluate_property(), dynamic_array_type(), encode_actions_1(), entry_data_value_coerce_ref(), eval_multi_subscript(), eval_op_f_allocated(), eval_op_f_rank(), eval_op_ind(), eval_op_m2_high(), eval_op_m2_subscript(), eval_op_member(), eval_op_objc_msgcall(), eval_op_repeat(), eval_op_subscript(), expr::ada_concat_operation::evaluate(), expr::c_string_operation::evaluate(), expr::opencl_structop_operation::evaluate(), expr::opencl_logical_binop_operation::evaluate(), expr::opencl_ternop_cond_operation::evaluate(), expr::unop_ind_base_operation::evaluate(), expr::array_operation::evaluate(), expr::fortran_undetermined::evaluate(), expr::fortran_bound_2arg::evaluate(), expr::fortran_bound_3arg::evaluate(), expr::subscript_operation::evaluate_for_sizeof(), expr::unop_ind_base_operation::evaluate_for_sizeof(), expr::structop_member_base::evaluate_funcall(), expr::array_operation::evaluate_struct_tuple(), evaluate_subexp_for_address_base(), evaluate_subexp_for_sizeof_base(), expr::var_value_operation::evaluate_with_coercion(), f77_get_dynamic_length_of_aggregate(), f_language::f_type_print_base(), fake_method::fake_method(), value::fetch_lazy_memory(), value::fetch_lazy_register(), dwarf_expr_context::fetch_result(), find_array_element_type(), find_function_addr(), find_gnu_ifunc_target_type(), find_method(), find_method_list(), find_methods(), find_overload_match(), find_parallel_type_by_descriptive_type(), find_size_for_pointer_math(), find_symbol_in_baseclass(), finish_command(), fixed_point_binop(), type::fixed_point_type_base_type(), fortran_adjust_dynamic_array_base_address_hack(), fortran_array_offset_calculator::fortran_array_offset_calculator(), fortran_array_shape(), fortran_array_size(), fortran_associated(), fortran_bounds_all_dims(), fortran_bounds_for_dimension(), fortran_require_array(), fp_register_arg_p(), frv_push_dummy_call(), gccgo_string_p(), gdbpy_create_lazy_string_object(), gdbscm_type_sizeof(), gdbscm_type_strip_typedefs(), gdbscm_value_call(), gdbscm_value_dynamic_type(), gdbscm_value_referenced_value(), gdbscm_value_subscript(), gdbscm_value_to_bool(), gdbscm_value_to_bytevector(), gdbscm_value_to_integer(), gdbscm_value_to_lazy_string(), gdbscm_value_to_real(), gen_bitfield_ref(), gen_cast(), gen_deref(), gen_expr_binop_rest(), gen_int_literal(), gen_struct_ref(), gen_struct_ref_recursive(), gen_trace_static_fields(), gen_traced_pop(), gen_usual_arithmetic(), gen_var_ref(), expr::operation::generate_ax(), generate_register_struct(), generate_vla_size(), generic_val_print_array(), generic_val_print_ref(), generic_value_print(), generic_value_print_bool(), generic_value_print_char(), generic_value_print_memberptr(), generic_value_print_ptr(), get_baseclass_offset(), get_discrete_high_bound(), get_discrete_low_bound(), get_internalvar_integer(), get_out_value_type(), get_pointer_type_max(), get_regs_type(), get_return_value(), get_signed_type_minmax(), get_symbol_field_type(), get_target_type(), get_type(), get_unsigned_type_max(), get_value_at(), get_vptr_fieldno(), gnuv2_baseclass_offset(), gnuv2_value_rtti_type(), gnuv2_virtual_fn_field(), gnuv3_dynamic_class(), gnuv3_get_typeid(), gnuv3_get_vtable(), gnuv3_method_ptr_to_value(), gnuv3_pass_by_reference(), gnuv3_print_vtable(), gnuv3_rtti_type(), gnuv3_virtual_fn_field(), go_classify_struct_type(), hppa32_push_dummy_call(), i386_16_byte_align_p(), i386_darwin_arg_type_alignment(), i386_reg_struct_return_p(), i386_return_value(), i386_type_align(), i386_windows_push_dummy_call(), ia64_push_dummy_call(), indirect_pieced_value(), info_scope_command(), inspect_type(), internal_type_vptr_basetype(), internal_type_vptr_fieldno(), python_xmethod_worker::invoke(), is_copy_or_move_constructor_type(), is_dynamic_type_internal(), is_fixed_point_type(), is_float_or_hfa_type_recurse(), is_floating_type(), is_floating_value(), is_integral_or_integral_reference(), is_integral_type(), is_scalar_type(), is_scalar_type_recursive(), f_language::is_string_type_p(), go_language::is_string_type_p(), unknown_language::is_string_type_p(), m2_language::is_string_type_p(), rust_language::is_string_type_p(), is_unique_ancestor_worker(), list_arg_or_local(), lookup_function_type_with_arguments(), lookup_struct_elt(), lookup_symbol_aux(), lookup_typename(), loongarch_push_dummy_call(), lsscm_elt_type(), lsscm_safe_lazy_string_to_value(), lval_func_check_synthetic_pointer(), lval_func_read(), lval_func_write(), m2_get_discrete_bounds(), m2_print_array_contents(), m2_print_long_set(), m2_print_type(), m2_print_unbounded_array(), m68k_reg_struct_return_p(), m68k_svr4_return_value(), mi_simple_type_p(), mips_eabi_push_dummy_call(), mips_eabi_return_value(), mips_n32n64_fp_arg_chunk_p(), mips_n32n64_push_dummy_call(), mips_n32n64_return_value(), mips_o32_push_dummy_call(), mips_o64_push_dummy_call(), mn10300_type_align(), mn10300_use_struct_convention(), msp430_push_dummy_call(), nds32_check_calling_use_fpr(), nios2_push_dummy_call(), nios2_type_align(), opencl_component_ref(), opencl_logical_not(), opencl_relop(), opencl_value_cast(), or1k_push_dummy_call(), pack_long(), pack_unsigned_long(), pascal_object_print_static_field(), pascal_object_print_value(), pascal_object_print_value_fields(), pass_in_v_vfp_candidate(), ppc64_aggregate_candidate(), ppc64_sysv_abi_push_dummy_call(), ppc64_sysv_abi_push_param(), ppc64_sysv_abi_return_value(), ppc_sysv_abi_push_dummy_call(), ppc_sysv_use_opencl_abi(), value::primitive_field(), rust_language::print_enum(), print_formatted(), print_one_vtable(), print_return_value(), print_symbol(), go_language::print_type(), opencl_language::print_type(), pascal_language::print_type(), print_type_scalar(), f_language::print_typedef(), m2_language::print_typedef(), pascal_language::print_typedef(), rust_language::print_typedef(), print_unpacked_pointer(), print_variable_at_address(), pascal_language::printstr(), ptrmath_type_p(), py_print_type(), rank_one_type(), read_enumeration_type(), read_frame_register_value(), read_one_struct_field(), read_subrange_type(), read_tag_ptr_to_member_type(), language_defn::read_var_value(), require_rvalue(), resolve_dynamic_array_or_string(), resolve_dynamic_array_or_string_1(), resolve_dynamic_struct(), resolve_dynamic_type(), resolve_dynamic_type_internal(), resolve_dynamic_union(), riscv_push_dummy_call(), riscv_return_value(), riscv_type_align(), rs6000_lynx178_push_dummy_call(), rs6000_push_dummy_call(), rust_get_trait_object_pointer(), rust_internal_print_type(), rust_slice_to_array(), rust_subscript(), rust_val_print_slice(), rx_push_dummy_call(), s390_effective_inner_type(), s390_handle_arg(), s390_push_dummy_call(), s390_return_value(), s390_value_from_register(), scalar_binop(), struct_field_searcher::search(), search_struct_method(), set_internalvar(), set_type_vptr_basetype(), set_type_vptr_fieldno(), setting_cmd(), sh_is_renesas_calling_convention(), shell_internal_fn(), finish_command_fsm::should_stop(), slot_alignment_is_next_even(), sparc32_struct_return_from_sym(), sparc64_16_byte_align_p(), sparc64_extract_floating_fields(), sparc64_store_floating_fields(), sparc_arg_by_memory_p(), sparc_structure_return_p(), store_regs(), stpy_convert_to_value(), stpy_lazy_string_elt_type(), tic6x_arg_type_alignment(), tic6x_push_dummy_call(), tic6x_return_value(), tlb_value_read(), type_align(), type_name_or_error(), pascal_language::type_print_base(), type_to_type_object(), typecmp(), types_equal(), typy_fields_items(), typy_get_composite(), typy_get_sizeof(), typy_is_array_like(), typy_is_string_like(), typy_strip_typedefs(), typy_template_argument(), tyscm_get_composite(), unop_promote(), unop_user_defined_p(), unpack_bits_as_long(), unpack_long(), print_offset_data::update(), update_static_array_size(), update_watchpoint(), v850_eight_byte_align_p(), val_print_packed_array_elements(), val_print_scalar_type_p(), rust_language::val_print_struct(), valprint_check_validity(), valpy_binop_throw(), valpy_call(), valpy_float(), valpy_get_dynamic_type(), valpy_getitem(), valpy_lazy_string(), valpy_long(), valpy_nonzero(), valpy_referenced_value(), valpy_to_array(), value_actual_type(), value_addr(), value_arg_coerce(), value_args_as_target_float(), value_as_mpz(), value_assign(), value_assign_to_component(), value_binop(), value_cast(), value_cast_pointers(), value_cast_structs(), value_coerce_array(), value_coerce_to_target(), value_complement(), value_concat(), value_dynamic_cast(), value_equal(), value_equal_contents(), value_find_oload_method_list(), value_from_contents_and_address(), value_from_mpz(), value_from_pointer(), value_from_register(), value_has_field(), value_imaginary_part(), value_ind(), value_less(), value_logical_not(), value_must_coerce_to_target(), value_neg(), value_of_dwarf_reg_entry(), value_one(), value_pos(), rust_language::value_print(), value_print_array_elements(), f_language::value_print_inner(), go_language::value_print_inner(), m2_language::value_print_inner(), pascal_language::value_print_inner(), rust_language::value_print_inner(), value_print_scalar_formatted(), value_ptradd(), value_ptrdiff(), value_real_part(), value_ref(), value_reinterpret_cast(), value_rtti_indirect_type(), value_rtti_type(), value_slice(), value_struct_element_index(), value_struct_elt(), value_struct_elt_bitpos(), value_struct_elt_for_reference(), expr::fortran_undetermined::value_subarray(), value_subscript(), value_subscripted_rvalue(), value_to_array(), value_to_gdb_mpq(), value_vector_widen(), value_x_binop(), value_x_unop(), varobj_get_value_type(), vector_binop(), vector_relop(), vlscm_binop_gdbthrow(), vlscm_convert_bytevector(), fortran_array_walker< Impl >::walk_1(), language_defn::watch_location_expression(), ada_language::watch_location_expression(), rust_language::watch_location_expression(), whatis_exp(), xtensa_push_dummy_call(), and yyparse().

◆ class_or_union_p()

int class_or_union_p ( const struct type * t)
extern

Definition at line 3747 of file gdbtypes.c.

References type::code().

Referenced by call_function_by_hand_dummy(), and get_call_return_value().

◆ class_types_same_p()

int class_types_same_p ( const struct type * a,
const struct type * b )
extern

◆ compare_badness()

int compare_badness ( const badness_vector & a,
const badness_vector & b )
extern

Definition at line 3976 of file gdbtypes.c.

References compare_ranks(), and INVALID_CONVERSION.

Referenced by find_oload_champ(), and find_overload_match().

◆ compare_ranks()

int compare_ranks ( struct rank a,
struct rank b )
extern

Definition at line 3948 of file gdbtypes.c.

References rank::rank, and rank::subrank.

Referenced by classify_oload_match(), compare_badness(), and compare_parameters().

◆ copy_type()

struct type * copy_type ( const struct type * type)
extern

◆ copy_type_recursive()

struct type * copy_type_recursive ( struct type * type,
htab_t copied_types )
extern

Definition at line 5502 of file gdbtypes.c.

References type::alloc_fields(), type::arch(), type::arch_owner(), field::bitsize(), type::bounds(), type::code(), copy_dynamic_prop_list(), copy_type_recursive(), main_type::dyn_prop_list, type::field(), FIELD_LOC_KIND_BITPOS, FIELD_LOC_KIND_DWARF_BLOCK, FIELD_LOC_KIND_ENUMVAL, FIELD_LOC_KIND_PHYSADDR, FIELD_LOC_KIND_PHYSNAME, type::fixed_point_info(), gdbarch_obstack(), INIT_CPLUS_SPECIFIC, INIT_FIXED_POINT_SPECIFIC, INIT_FUNC_SPECIFIC, INIT_GNAT_SPECIFIC, type::instance_flags(), field::is_artificial(), type::is_objfile_owned(), type::length(), field::loc_bitpos(), field::loc_dwarf_block(), field::loc_enumval(), field::loc_kind(), field::loc_physaddr(), field::loc_physname(), type::main_type, field::name(), type::name(), type_allocator::new_type(), new_type(), nullptr, type::num_fields(), fixed_point_type_info::scaling_factor, field::set_bitsize(), type::set_bounds(), type::set_instance_flags(), field::set_is_artificial(), type::set_length(), field::set_loc_bitpos(), field::set_loc_dwarf_block(), field::set_loc_enumval(), field::set_loc_physaddr(), field::set_loc_physname(), field::set_name(), type::set_name(), type::set_owner(), type::set_target_type(), field::set_type(), set_type_self_type(), type::target_type(), field::type(), type, TYPE_ALLOC, TYPE_CALLING_CONVENTION, TYPE_FLOATFORMAT, TYPE_MAIN_TYPE, TYPE_NO_RETURN, type_pair::type_pair(), TYPE_SELF_TYPE, TYPE_SPECIFIC_CPLUS_STUFF, TYPE_SPECIFIC_FIELD, TYPE_SPECIFIC_FIXED_POINT, TYPE_SPECIFIC_FLOATFORMAT, TYPE_SPECIFIC_FUNC, TYPE_SPECIFIC_GNAT_STUFF, TYPE_SPECIFIC_INT, TYPE_SPECIFIC_NONE, TYPE_SPECIFIC_SELF_TYPE, and TYPE_TAIL_CALL_LIST.

Referenced by copy_type_recursive(), create_copied_type_recursive(), typy_deleter::operator()(), value::preserve(), preserve_one_internalvar(), preserve_one_varobj(), and tyscm_copy_type_recursive().

◆ create_array_type()

struct type * create_array_type ( type_allocator & alloc,
struct type * element_type,
struct type * range_type )
extern

◆ create_array_type_with_stride()

struct type * create_array_type_with_stride ( type_allocator & alloc,
struct type * element_type,
struct type * range_type,
struct dynamic_prop * byte_stride_prop,
unsigned int bit_stride )
extern

◆ create_copied_types_hash()

htab_up create_copied_types_hash ( )
extern

◆ create_range_type()

struct type * create_range_type ( type_allocator & alloc,
struct type * index_type,
const struct dynamic_prop * low_bound,
const struct dynamic_prop * high_bound,
LONGEST bias )
extern

◆ create_range_type_with_stride()

struct type * create_range_type_with_stride ( type_allocator & alloc,
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 )
extern

◆ create_set_type()

struct type * create_set_type ( type_allocator & alloc,
struct type * domain_type )
extern

◆ create_static_range_type()

struct type * create_static_range_type ( type_allocator & alloc,
struct type * index_type,
LONGEST low_bound,
LONGEST high_bound )
extern

◆ create_string_type()

struct type * create_string_type ( type_allocator & alloc,
struct type * string_char_type,
struct type * range_type )
extern

Definition at line 1415 of file gdbtypes.c.

References create_array_type(), and type::set_code().

Referenced by read_tag_string_type().

◆ DEF_ENUM_FLAGS_TYPE()

DEF_ENUM_FLAGS_TYPE ( enum type_instance_flag_value,
type_instance_flags  )

◆ discrete_position()

gdb::optional< LONGEST > discrete_position ( struct type * type,
LONGEST val )
extern

◆ floatformat_from_type()

const struct floatformat * floatformat_from_type ( const struct type * type)

◆ gdb_mangle_name()

char * gdb_mangle_name ( struct type * type,
int method_id,
int signature_id )
extern

◆ get_array_bounds()

bool get_array_bounds ( struct type * type,
LONGEST * low_bound,
LONGEST * high_bound )
extern

◆ get_discrete_bounds()

bool get_discrete_bounds ( struct type * type,
LONGEST * lowp,
LONGEST * highp )
extern

◆ get_discrete_high_bound()

gdb::optional< LONGEST > get_discrete_high_bound ( struct type * type)
extern

◆ get_discrete_low_bound()

gdb::optional< LONGEST > get_discrete_low_bound ( struct type * type)
extern

◆ get_pointer_type_max()

CORE_ADDR get_pointer_type_max ( struct type * type)
extern

Definition at line 1895 of file gdbtypes.c.

References check_typedef(), type::code(), and type::length().

Referenced by vlscm_convert_typed_number().

◆ get_signed_type_minmax()

void get_signed_type_minmax ( struct type * type,
LONGEST * min,
LONGEST * max )
extern

◆ get_target_type()

struct type * get_target_type ( struct type * type)
extern

This returns the target type (or NULL) of TYPE, also skipping past typedefs.

Definition at line 293 of file gdbtypes.c.

References check_typedef(), type::target_type(), and type.

Referenced by adjust_value_for_child_access(), c_describe_child(), c_number_of_children(), and varobj_get_value_type().

◆ get_unsigned_type_max()

ULONGEST get_unsigned_type_max ( struct type * type)
extern

◆ get_vptr_fieldno()

int get_vptr_fieldno ( struct type * type,
struct type ** basetypep )
extern

◆ init_boolean_type()

struct type * init_boolean_type ( type_allocator & alloc,
int bit,
int unsigned_p,
const char * name )
extern

◆ init_character_type()

struct type * init_character_type ( type_allocator & alloc,
int bit,
int unsigned_p,
const char * name )
extern

◆ init_complex_type()

struct type * init_complex_type ( const char * name,
struct type * target_type )
extern

◆ init_decfloat_type()

struct type * init_decfloat_type ( type_allocator & alloc,
int bit,
const char * name )
extern

Definition at line 3431 of file gdbtypes.c.

References bit, name, and type_allocator::new_type().

Referenced by create_gdbtypes_data(), and read_base_type().

◆ init_fixed_point_type()

struct type * init_fixed_point_type ( type_allocator & alloc,
int bit,
int unsigned_p,
const char * name )
extern

Definition at line 3502 of file gdbtypes.c.

References bit, name, type_allocator::new_type(), and type::set_is_unsigned().

Referenced by read_base_type().

◆ init_float_type()

struct type * init_float_type ( type_allocator & alloc,
int bit,
const char * name,
const struct floatformat ** floatformats,
enum bfd_endian byte_order = BFD_ENDIAN_UNKNOWN )
extern

◆ init_integer_type()

struct type * init_integer_type ( type_allocator & alloc,
int bit,
int unsigned_p,
const char * name )
extern

◆ init_pointer_type()

struct type * init_pointer_type ( type_allocator & alloc,
int bit,
const char * name,
struct type * target_type )
extern

◆ init_vector_type()

struct type * init_vector_type ( struct type * elt_type,
int n )
extern

◆ internal_type_self_type()

struct type * internal_type_self_type ( struct type * type)
extern

◆ internal_type_vptr_basetype()

struct type * internal_type_vptr_basetype ( struct type * type)
extern

◆ internal_type_vptr_fieldno()

int internal_type_vptr_fieldno ( struct type * type)
extern

Definition at line 1915 of file gdbtypes.c.

References check_typedef(), type::code(), HAVE_CPLUS_STRUCT, and TYPE_RAW_CPLUS_SPECIFIC.

◆ is_ancestor()

int is_ancestor ( struct type * base,
struct type * dclass )
extern

Definition at line 3818 of file gdbtypes.c.

References distance_to_ancestor().

Referenced by value_dynamic_cast().

◆ is_dynamic_type()

int is_dynamic_type ( struct type * type)
extern

◆ is_fixed_point_type()

bool is_fixed_point_type ( struct type * type)
extern

◆ is_floating_type()

int is_floating_type ( struct type * t)
extern

◆ is_integral_type()

int is_integral_type ( struct type * t)
extern

◆ is_nocall_function()

bool is_nocall_function ( const struct type * type)
extern

Definition at line 3920 of file gdbtypes.c.

References type::code(), and TYPE_CALLING_CONVENTION.

Referenced by call_function_by_hand_dummy(), and get_return_value().

◆ is_public_ancestor()

int is_public_ancestor ( struct type * base,
struct type * dclass )
extern

Definition at line 3827 of file gdbtypes.c.

References distance_to_ancestor().

Referenced by value_dynamic_cast().

◆ is_scalar_type()

int is_scalar_type ( struct type * type)
extern

◆ is_scalar_type_recursive()

int is_scalar_type_recursive ( struct type * t)
extern

◆ is_unique_ancestor()

int is_unique_ancestor ( struct type * base,
struct value * val )
extern

◆ lookup_array_range_type()

struct type * lookup_array_range_type ( struct type * element_type,
LONGEST low_bound,
LONGEST high_bound )
extern

◆ lookup_function_type()

struct type * lookup_function_type ( struct type * type)
extern

◆ lookup_function_type_with_arguments()

struct type * lookup_function_type_with_arguments ( struct type * type,
int nparams,
struct type ** param_types )
extern

◆ lookup_lvalue_reference_type()

struct type * lookup_lvalue_reference_type ( struct type * type)
extern

◆ lookup_memberptr_type()

struct type * lookup_memberptr_type ( struct type * type,
struct type * domain )
extern

◆ lookup_methodptr_type()

struct type * lookup_methodptr_type ( struct type * to_type)
extern

◆ lookup_pointer_type()

struct type * lookup_pointer_type ( struct type * type)
extern

Definition at line 430 of file gdbtypes.c.

References make_pointer_type().

Referenced by aarch64_push_dummy_call(), aarch64_stap_parse_special_token(), ada_get_tsd_from_tag(), ada_tag_value_at_base_address(), ada_type_of_array(), ada_val_print_ref(), ada_value_ptr_subscript(), ada_varobj_ind(), dwarf2_cu::addr_type(), address_of_variable(), alpha_push_dummy_call(), arm_stap_parse_special_token(), call_function_by_hand_dummy(), check_stub_method(), compile_object_run(), create_gdbtypes_data(), decode_type(), define_symbol(), desc_bounds(), python_xmethod_worker::do_get_arg_types(), python_xmethod_worker::do_get_result_type(), do_module_cleanup(), eval_op_member(), eval_op_objc_msgcall(), expr::ada_unop_ind_operation::evaluate(), expr::var_value_operation::evaluate_for_address(), expr::var_msym_value_operation::evaluate_for_address(), expr::unop_memval_operation::evaluate_for_address(), expr::unop_memval_type_operation::evaluate_for_address(), expr::structop_base_operation::evaluate_funcall(), expr::structop_member_base::evaluate_funcall(), evaluate_subexp_for_address_base(), expr::var_value_operation::evaluate_with_coercion(), fbsd_get_siginfo_type(), find_function_in_inferior(), type_stack::follow_types(), gdbscm_type_pointer(), gdbscm_value_dynamic_type(), gen_address_of(), gen_usual_unary(), ravenscar_thread_target::get_fpu_state(), gnuv2_virtual_fn_field(), gnuv3_baseclass_offset(), gnuv3_get_virtual_fn(), gnuv3_get_vtable(), gnuv3_method_ptr_to_value(), i386_stap_parse_special_token_three_arg_disp(), i386_stap_parse_special_token_triplet(), python_xmethod_worker::invoke(), ada_language::language_arch_info(), linux_get_siginfo_type_with_fields(), nbsd_get_siginfo_type(), rust_parser::parse_function_type(), rust_parser::parse_pointer_type(), rust_parser::parse_slice_type(), ppc_sysv_get_return_buf_addr(), quirk_ada_thick_pointer(), quirk_ada_thick_pointer_struct(), read_tag_pointer_type(), language_defn::read_var_value(), resolve_dynamic_struct(), rust_get_trait_object_pointer(), rust_slice_type(), sect_variable_value(), sparc32_store_arguments(), sparc64_store_arguments(), stap_parse_register_operand(), thin_data_pntr(), typy_lookup_type(), typy_pointer(), upgrade_type(), valpy_get_dynamic_type(), valpy_getitem(), value_addr(), value_arg_coerce(), value_coerce_array(), value_coerce_function(), value_fn_field(), value_nsstring(), value_reinterpret_cast(), value_rtti_indirect_type(), value_struct_elt_for_reference(), windows_get_tlb_type(), x_command(), and yyparse().

◆ lookup_reference_type()

struct type * lookup_reference_type ( struct type * type,
enum type_code )
extern

◆ lookup_rvalue_reference_type()

struct type * lookup_rvalue_reference_type ( struct type * type)
extern

Definition at line 526 of file gdbtypes.c.

References lookup_reference_type().

Referenced by type_stack::follow_types(), typy_lookup_type(), and valpy_getitem().

◆ lookup_signed_typename()

struct type * lookup_signed_typename ( const struct language_defn * language,
const char * name )
extern

Definition at line 1685 of file gdbtypes.c.

References lookup_typename(), and name.

Referenced by binop_promote(), and yyparse().

◆ lookup_string_range_type()

struct type * lookup_string_range_type ( struct type * string_char_type,
LONGEST low_bound,
LONGEST high_bound )
extern

Definition at line 1427 of file gdbtypes.c.

References lookup_array_range_type(), and type::set_code().

Referenced by value_string().

◆ lookup_struct_elt()

struct_elt lookup_struct_elt ( struct type * type,
const char * name,
int noerr )
extern

◆ lookup_struct_elt_type()

struct type * lookup_struct_elt_type ( struct type * type,
const char * name,
int noerr )
extern

◆ lookup_template_type()

struct type * lookup_template_type ( const char * name,
struct type * type,
const struct block * block )
extern

Definition at line 1764 of file gdbtypes.c.

References type::code(), lookup_symbol(), name, type::name(), block_symbol::symbol, symbol::type(), and VAR_DOMAIN.

Referenced by yyparse().

◆ lookup_typename()

struct type * lookup_typename ( const struct language_defn * language,
const char * name,
const struct block * block,
int noerr )
extern

◆ lookup_unsigned_typename()

struct type * lookup_unsigned_typename ( const struct language_defn * language,
const char * name )
extern

Definition at line 1673 of file gdbtypes.c.

References lookup_typename(), and name.

Referenced by binop_promote(), and yyparse().

◆ maintenance_print_type()

void maintenance_print_type ( const char * type_name,
int from_tty )
extern

Definition at line 706 of file typeprint.c.

References parse_expression(), recursive_dump_type(), and value::type().

◆ make_atomic_type()

struct type * make_atomic_type ( struct type * type)
extern

◆ make_cv_type()

struct type * make_cv_type ( int cnst,
int voltl,
struct type * type,
struct type ** typeptr )
extern

◆ make_function_type()

struct type * make_function_type ( struct type * type,
struct type ** typeptr )
extern

◆ make_pointer_type()

struct type * make_pointer_type ( struct type * type,
struct type ** typeptr )
extern

◆ make_reference_type()

struct type * make_reference_type ( struct type * type,
struct type ** typeptr,
enum type_code )
extern

◆ make_restrict_type()

struct type * make_restrict_type ( struct type * type)
extern

◆ make_type_with_address_space()

struct type * make_type_with_address_space ( struct type * type,
type_instance_flags space_identifier )
extern

◆ make_unqualified_type()

struct type * make_unqualified_type ( struct type * type)
extern

◆ make_vector_type()

void make_vector_type ( struct type * array_type)
extern

◆ operator!=() [1/2]

static bool operator!= ( const dynamic_prop & l,
const dynamic_prop & r )
inlinestatic

Definition at line 429 of file gdbtypes.h.

◆ operator!=() [2/2]

static bool operator!= ( const range_bounds & l,
const range_bounds & r )
inlinestatic

Definition at line 755 of file gdbtypes.h.

◆ operator==() [1/2]

bool operator== ( const dynamic_prop & l,
const dynamic_prop & r )
extern

◆ operator==() [2/2]

bool operator== ( const range_bounds & l,
const range_bounds & r )
extern

Definition at line 920 of file gdbtypes.c.

References FIELD_EQ.

◆ print_scalar_formatted()

void print_scalar_formatted ( const gdb_byte * valaddr,
struct type * type,
const struct value_print_options * options,
int size,
struct ui_file * stream )
extern

◆ rank_function()

badness_vector rank_function ( gdb::array_view< type * > parms,
gdb::array_view< value * > args )
extern

◆ rank_one_type()

struct rank rank_one_type ( struct type * parm,
struct type * arg,
struct value * value )
extern

◆ recursive_dump_type()

void recursive_dump_type ( struct type * type,
int spaces )
extern

Definition at line 5103 of file gdbtypes.c.

References type::arch_owner(), type::bit_offset(), type::bit_size(), type::bit_size_differs_p(), field::bitsize(), type::bounds(), type::code(), dont_print_type_obstack, dump_dynamic_prop(), type::endianity_is_not_default(), type::field(), type::fields(), gdb_printf(), gdb_puts(), type::has_no_signedness(), type::has_varargs(), HAVE_CPLUS_STRUCT, range_bounds::high, type::instance_flags(), type::is_fixed_instance(), type::is_objfile_owned(), type::is_prototyped(), type::is_stub(), type::is_unsigned(), type::is_vector(), type::length(), field::loc_bitpos(), field::loc_enumval(), range_bounds::low, name, field::name(), type::name(), type::num_fields(), type::objfile_owner(), print_cplus_stuff(), print_fixed_point_type_info(), print_gnat_stuff(), recursive_dump_type(), type::stub_is_supported(), type::target_is_stub(), type::target_type(), field::type(), TYPE_ADDRESS_CLASS_1, TYPE_ADDRESS_CLASS_2, TYPE_ALLOCATED_PROP, TYPE_ASSOCIATED_PROP, TYPE_ATOMIC, TYPE_CALLING_CONVENTION, TYPE_CHAIN, TYPE_CODE_SPACE, TYPE_CODE_UNDEF, TYPE_CONST, TYPE_CPLUS_SPECIFIC, TYPE_DATA_SPACE, TYPE_FLOATFORMAT, TYPE_GNAT_SPECIFIC, TYPE_NFN_FIELDS, TYPE_NOTTEXT, TYPE_POINTER_TYPE, TYPE_REFERENCE_TYPE, TYPE_RESTRICT, TYPE_SELF_TYPE, TYPE_SPECIFIC_CPLUS_STUFF, TYPE_SPECIFIC_FIELD, TYPE_SPECIFIC_FIXED_POINT, TYPE_SPECIFIC_FLOATFORMAT, TYPE_SPECIFIC_FUNC, TYPE_SPECIFIC_GNAT_STUFF, TYPE_SPECIFIC_INT, TYPE_SPECIFIC_SELF_TYPE, and TYPE_VOLATILE.

Referenced by dump_fn_fieldlists(), maintenance_print_type(), print_args(), print_cplus_stuff(), print_gnat_stuff(), and recursive_dump_type().

◆ replace_type()

void replace_type ( struct type * ntype,
struct type * type )
extern

◆ resolve_dynamic_type()

struct type * resolve_dynamic_type ( struct type * type,
gdb::array_view< const gdb_byte > valaddr,
CORE_ADDR addr,
const frame_info_ptr * frame = nullptr )
extern

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.

If FRAME is given, it is used when evaluating dynamic properties. This can be important when a static link is seen. If not given, the selected frame is used.

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.

Definition at line 2857 of file gdbtypes.c.

References property_addr_info::addr, check_typedef(), resolve_dynamic_type_internal(), and property_addr_info::valaddr.

Referenced by ada_discrete_type_high_bound(), ada_discrete_type_low_bound(), ada_value_primitive_packed_val(), ada_value_print_inner(), decode_constrained_packed_array(), expr::fortran_structop_operation::evaluate(), expr::rust_struct_anon::evaluate(), expr::rust_structop::evaluate(), rust_language::print_enum(), language_defn::read_var_value(), readjust_indirect_value_type(), value_from_contents_and_address(), value_subscripted_rvalue(), value_tag_from_contents_and_address(), and fortran_array_walker< Impl >::walk_1().

◆ set_type_align()

bool set_type_align ( struct type * type,
ULONGEST align )
extern

Set the alignment of the type. The alignment must be a power of

  1. Returns false if the given value does not fit in the available space in struct type.

Definition at line 3619 of file gdbtypes.c.

References type::align_log2, and TYPE_ALIGN_BITS.

Referenced by maybe_set_alignment(), read_enumeration_type(), and read_tag_pointer_type().

◆ set_type_self_type()

void set_type_self_type ( struct type * type,
struct type * self_type )
extern

◆ set_type_vptr_basetype()

void set_type_vptr_basetype ( struct type * type,
struct type * basetype )
extern

◆ set_type_vptr_fieldno()

void set_type_vptr_fieldno ( struct type * type,
int fieldno )
extern

◆ smash_to_memberptr_type()

void smash_to_memberptr_type ( struct type * type,
struct type * self_type,
struct type * to_type )
extern

◆ smash_to_method_type()

void smash_to_method_type ( struct type * type,
struct type * self_type,
struct type * to_type,
struct field * args,
int nargs,
int varargs )
extern

◆ smash_to_methodptr_type()

void smash_to_methodptr_type ( struct type * type,
struct type * to_type )
extern

◆ sum_ranks()

struct rank sum_ranks ( struct rank a,
struct rank b )
extern

Definition at line 3934 of file gdbtypes.c.

References rank::rank, and rank::subrank.

Referenced by rank_one_type(), rank_one_type_parm_ptr(), and rank_one_type_parm_struct().

◆ type_align()

unsigned type_align ( struct type * type)
extern

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.

Definition at line 3527 of file gdbtypes.c.

References type::arch(), check_typedef(), type::code(), type::field(), gdbarch_type_align(), field::is_static(), type::num_fields(), type::target_type(), field::type(), type_align(), type_length_units(), and type_raw_align().

Referenced by amd64_has_unaligned_fields(), arm_push_dummy_call(), eval_op_alignof(), jit_read_code_entry(), loongarch_push_dummy_call(), m68k_reg_struct_return_p(), nds32_push_dummy_call(), pass_on_stack(), quirk_ada_thick_pointer(), riscv_arg_location(), rust_composite_type(), set_gdbarch_type_align(), type_align(), and typy_get_alignof().

◆ type_byte_order()

enum bfd_endian type_byte_order ( const struct type * type)
extern

When the type includes explicit byte ordering, return that. Otherwise, the byte ordering from gdbarch_byte_order for the type's arch is returned.

Definition at line 3900 of file gdbtypes.c.

References type::arch(), type::endianity_is_not_default(), and gdbarch_byte_order().

Referenced by ada_val_print_string(), ada_value_assign(), ada_value_primitive_packed_val(), address_to_signed_pointer(), c_get_string(), c_value_print_array(), value::contents_copy_raw_bitwise(), cp_print_class_member(), darwin_current_sos(), decode_constrained_packed_array(), default_print_one_register_info(), default_value_from_register(), fixed_point_binop(), value::from_component_bitsize(), generic_emit_char(), generic_printstr(), generic_val_print_fixed_point(), f_language::get_encoding(), gnuv3_make_method_ptr(), match_endianness(), modify_field(), pack_long(), pack_unsigned_long(), ppc64_sysv_abi_return_value_base(), print_scalar_formatted(), pascal_language::printstr(), printstr(), processInt(), language_defn::read_var_value(), riscv_print_one_register_info(), riscv_return_value(), rw_pieced_value(), scalar_binop(), signed_pointer_to_address(), solib_svr4_r_ldsomap(), solib_svr4_r_next(), stap_modify_semaphore(), target_float_same_format_p(), value::unpack_bitfield(), unpack_bits_as_long(), unpack_long(), unsigned_address_to_pointer(), unsigned_pointer_to_address(), val_print_string(), value_as_mpz(), value_assign_to_component(), value_bit_index(), value_cast(), value_cast_to_fixed_point(), value_from_mpz(), value_pointer(), pascal_language::value_print_inner(), and value_to_gdb_mpq().

◆ type_length_units()

unsigned int type_length_units ( struct type * type)
extern

◆ type_name_or_error()

const char * type_name_or_error ( struct type * type)
extern

◆ type_not_allocated()

int type_not_allocated ( const struct type * type)
extern

◆ type_not_associated()

int type_not_associated ( const struct type * type)
extern

◆ type_raw_align()

unsigned type_raw_align ( struct type * type)
extern

Return the alignment of the type in target addressable memory units, or 0 if no alignment was specified.

Definition at line 3517 of file gdbtypes.c.

References type::align_log2.

Referenced by type_align().

◆ types_deeply_equal()

bool types_deeply_equal ( struct type * type1,
struct type * type2 )
extern

◆ types_equal()

bool types_equal ( struct type * a,
struct type * b )
extern

Variable Documentation

◆ BASE_CONVERSION_BADNESS

const struct rank BASE_CONVERSION_BADNESS
extern

Badness of converting derived to base class.

Definition at line 73 of file gdbtypes.c.

Referenced by rank_one_type_parm_struct().

◆ BASE_PTR_CONVERSION_BADNESS

const struct rank BASE_PTR_CONVERSION_BADNESS
extern

Badness of converting a derived class pointer to a base class pointer.

Definition at line 66 of file gdbtypes.c.

Referenced by rank_one_type_parm_ptr().

◆ BOOL_CONVERSION_BADNESS

const struct rank BOOL_CONVERSION_BADNESS
extern

Badness of conversion to boolean.

Definition at line 72 of file gdbtypes.c.

Referenced by rank_one_type_parm_bool().

◆ cplus_struct_default

const struct cplus_struct_type cplus_struct_default
extern

The default value of TYPE_CPLUS_SPECIFIC(T) points to this shared static structure.

Definition at line 3291 of file gdbtypes.c.

Referenced by allocate_cplus_struct_type().

◆ CV_CONVERSION_BADNESS

const struct rank CV_CONVERSION_BADNESS
extern

Badness of cv-conversion. Subrank is a flag describing the conversions being done.

Definition at line 67 of file gdbtypes.c.

Referenced by rank_one_type(), and rank_one_type_parm_ptr().

◆ EXACT_MATCH_BADNESS

const struct rank EXACT_MATCH_BADNESS
extern

◆ FLOAT_CONVERSION_BADNESS

const struct rank FLOAT_CONVERSION_BADNESS
extern

Badness of floating conversion.

Definition at line 69 of file gdbtypes.c.

Referenced by rank_one_type_parm_float().

◆ FLOAT_PROMOTION_BADNESS

const struct rank FLOAT_PROMOTION_BADNESS
extern

Badness of floating promotion.

Definition at line 65 of file gdbtypes.c.

Referenced by rank_one_type_parm_complex(), and rank_one_type_parm_float().

◆ floatformats_arm_ext

const struct floatformat* floatformats_arm_ext[BFD_ENDIAN_UNKNOWN]
extern

Definition at line 109 of file gdbtypes.c.

Referenced by arm_ext_type(), and make_gdb_type().

◆ floatformats_bfloat16

const struct floatformat* floatformats_bfloat16[BFD_ENDIAN_UNKNOWN]
extern

Definition at line 129 of file gdbtypes.c.

Referenced by i386_gdbarch_init(), and make_gdb_type().

◆ floatformats_i387_ext

const struct floatformat* floatformats_i387_ext[BFD_ENDIAN_UNKNOWN]
extern

Definition at line 101 of file gdbtypes.c.

Referenced by i386_gdbarch_init(), ia64_gdbarch_init(), and make_gdb_type().

◆ floatformats_ia64_spill

const struct floatformat* floatformats_ia64_spill[BFD_ENDIAN_UNKNOWN]
extern

Definition at line 113 of file gdbtypes.c.

◆ floatformats_ibm_long_double

const struct floatformat* floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN]
extern

◆ floatformats_ieee_double

const struct floatformat* floatformats_ieee_double[BFD_ENDIAN_UNKNOWN]
extern

◆ floatformats_ieee_double_littlebyte_bigword

const struct floatformat* floatformats_ieee_double_littlebyte_bigword[BFD_ENDIAN_UNKNOWN]
extern

Definition at line 97 of file gdbtypes.c.

Referenced by arm_gdbarch_init(), and sh_littlebyte_bigword_type().

◆ floatformats_ieee_half

const struct floatformat* floatformats_ieee_half[BFD_ENDIAN_UNKNOWN]
extern

Definition at line 81 of file gdbtypes.c.

Referenced by opencl_language::language_arch_info(), and make_gdb_type().

◆ floatformats_ieee_quad

const struct floatformat* floatformats_ieee_quad[BFD_ENDIAN_UNKNOWN]
extern

◆ floatformats_ieee_single

const struct floatformat* floatformats_ieee_single[BFD_ENDIAN_UNKNOWN]
extern

◆ floatformats_m68881_ext

const struct floatformat* floatformats_m68881_ext[BFD_ENDIAN_UNKNOWN]
extern

Definition at line 105 of file gdbtypes.c.

Referenced by m68881_ext_type(), and m68k_gdbarch_init().

◆ floatformats_vax_d

const struct floatformat* floatformats_vax_d[BFD_ENDIAN_UNKNOWN]
extern

Definition at line 121 of file gdbtypes.c.

Referenced by vax_gdbarch_init().

◆ floatformats_vax_f

const struct floatformat* floatformats_vax_f[BFD_ENDIAN_UNKNOWN]
extern

Definition at line 117 of file gdbtypes.c.

Referenced by vax_gdbarch_init().

◆ gnat_aux_default

const struct gnat_aux_type gnat_aux_default
extern

Definition at line 3307 of file gdbtypes.c.

Referenced by allocate_gnat_aux_type().

◆ INCOMPATIBLE_TYPE_BADNESS

const struct rank INCOMPATIBLE_TYPE_BADNESS
extern

◆ INT_FLOAT_CONVERSION_BADNESS

const struct rank INT_FLOAT_CONVERSION_BADNESS
extern

Badness of integer<->floating conversions.

Definition at line 70 of file gdbtypes.c.

Referenced by rank_one_type_parm_char(), rank_one_type_parm_enum(), rank_one_type_parm_float(), rank_one_type_parm_int(), and rank_one_type_parm_range().

◆ INTEGER_CONVERSION_BADNESS

const struct rank INTEGER_CONVERSION_BADNESS
extern

Badness of integral conversion.

Definition at line 68 of file gdbtypes.c.

Referenced by rank_one_type_parm_char(), rank_one_type_parm_enum(), rank_one_type_parm_int(), and rank_one_type_parm_range().

◆ INTEGER_PROMOTION_BADNESS

const struct rank INTEGER_PROMOTION_BADNESS
extern

Badness of integral promotion.

Definition at line 64 of file gdbtypes.c.

Referenced by rank_one_type_parm_char(), and rank_one_type_parm_int().

◆ LENGTH_MISMATCH_BADNESS

const struct rank LENGTH_MISMATCH_BADNESS
extern

Badness if parameter list length doesn't match arg list length.

Definition at line 57 of file gdbtypes.c.

Referenced by rank_function().

◆ NS_INTEGER_POINTER_CONVERSION_BADNESS

const struct rank NS_INTEGER_POINTER_CONVERSION_BADNESS
extern

Badness of converting a (non-zero) integer constant to a pointer.

Definition at line 78 of file gdbtypes.c.

Referenced by rank_one_type_parm_ptr().

◆ NS_POINTER_CONVERSION_BADNESS

const struct rank NS_POINTER_CONVERSION_BADNESS
extern

Converting a pointer to an int is usually OK.

Definition at line 77 of file gdbtypes.c.

Referenced by classify_oload_match(), and rank_one_type_parm_int().

◆ NULL_POINTER_CONVERSION

const struct rank NULL_POINTER_CONVERSION
extern

Badness of converting integer 0 to NULL pointer.

◆ overload_debug

unsigned int overload_debug
extern

Definition at line 140 of file gdbtypes.c.

Referenced by find_oload_champ(), and rank_one_type().

◆ REFERENCE_CONVERSION_BADNESS

const struct rank REFERENCE_CONVERSION_BADNESS
extern

Badness of converting from non-reference to reference. Subrank is the type of reference conversion being done.

Definition at line 74 of file gdbtypes.c.

Referenced by rank_one_type().

◆ REFERENCE_SEE_THROUGH_BADNESS

const struct rank REFERENCE_SEE_THROUGH_BADNESS
extern

Definition at line 75 of file gdbtypes.c.

Referenced by rank_one_type().

◆ TOO_FEW_PARAMS_BADNESS

const struct rank TOO_FEW_PARAMS_BADNESS
extern

Dummy badness value for nonexistent parameter positions.

Definition at line 59 of file gdbtypes.c.

Referenced by rank_function().

◆ VOID_PTR_CONVERSION_BADNESS

const struct rank VOID_PTR_CONVERSION_BADNESS
extern

Badness of conversion of pointer to void pointer.

Definition at line 71 of file gdbtypes.c.

Referenced by rank_one_type_parm_ptr().