GDB (xrefs)

Classes | Macros | Typedefs | Functions | Variables
/tmp/gdb-8.1/gdb/gdbtypes.c File Reference
`#include "defs.h"`
`#include "bfd.h"`
`#include "symtab.h"`
`#include "symfile.h"`
`#include "objfiles.h"`
`#include "gdbtypes.h"`
`#include "expression.h"`
`#include "language.h"`
`#include "target.h"`
`#include "value.h"`
`#include "demangle.h"`
`#include "complaints.h"`
`#include "gdbcmd.h"`
`#include "cp-abi.h"`
`#include "hashtab.h"`
`#include "cp-support.h"`
`#include "bcache.h"`
`#include "dwarf2loc.h"`
`#include "gdbcore.h"`
`#include "floatformat.h"`

Go to the source code of this file.

## Classes
struct | type_equality_entry
struct | type_pair

## Macros
#define | FIELD_EQ(FIELD) (l.FIELD == r.FIELD)

## Typedefs
typedef struct type_equality_entry | type_equality_entry_d

## Functions
static void | show_opaque_type_resolution (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static void | show_overload_debug (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static void | show_strict_type_checking (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
struct type * | alloc_type (struct objfile *objfile)
struct type * | alloc_type_arch (struct gdbarch *gdbarch)
struct type * | alloc_type_copy (const struct type *type)
struct gdbarch * | get_type_arch (const struct type *type)
struct type * | get_target_type (struct type *type)
unsigned int | type_length_units (struct type *type)
static struct type * | alloc_type_instance (struct type *oldtype)
static void | smash_type (struct type *type)
struct type * | make_pointer_type (struct type *type, struct type **typeptr)
struct type * | lookup_pointer_type (struct type *type)
struct type * | make_reference_type (struct type *type, struct type **typeptr, enum type_code refcode)
struct type * | lookup_reference_type (struct type *type, enum type_code refcode)
struct type * | lookup_lvalue_reference_type (struct type *type)
struct type * | lookup_rvalue_reference_type (struct type *type)
struct type * | make_function_type (struct type *type, struct type **typeptr)
struct type * | lookup_function_type (struct type *type)
struct type * | lookup_function_type_with_arguments (struct type *type, int nparams, struct type **param_types)
int | address_space_name_to_int (struct gdbarch *gdbarch, char *space_identifier)
const char * | address_space_int_to_name (struct gdbarch *gdbarch, int space_flag)
static struct type * | make_qualified_type (struct type *type, int new_flags, struct type *storage)
struct type * | make_type_with_address_space (struct type *type, int space_flag)
struct type * | make_cv_type (int cnst, int voltl, struct type *type, struct type **typeptr)
struct type * | make_restrict_type (struct type *type)
struct type * | make_unqualified_type (struct type *type)
struct type * | make_atomic_type (struct type *type)
void | replace_type (struct type *ntype, struct type *type)
struct type * | lookup_memberptr_type (struct type *type, struct type *domain)
struct type * | lookup_methodptr_type (struct type *to_type)
struct type * | allocate_stub_method (struct type *type)
bool | operator== (const dynamic_prop &l, const dynamic_prop &r)
bool | operator== (const range_bounds &l, const range_bounds &r)
struct type * | create_range_type (struct type *result_type, struct type *index_type, const struct dynamic_prop *low_bound, const struct dynamic_prop *high_bound)
struct type * | create_static_range_type (struct type *result_type, struct type *index_type, LONGEST low_bound, LONGEST high_bound)
static int | has_static_range (const struct range_bounds *bounds)
int | get_discrete_bounds (struct type *type, LONGEST *lowp, LONGEST *highp)
int | get_array_bounds (struct type *type, LONGEST *low_bound, LONGEST *high_bound)
int | discrete_position (struct type *type, LONGEST val, LONGEST *pos)
struct type * | create_array_type_with_stride (struct type *result_type, struct type *element_type, struct type *range_type, struct dynamic_prop *byte_stride_prop, unsigned int bit_stride)
struct type * | create_array_type (struct type *result_type, struct type *element_type, struct type *range_type)
struct type * | lookup_array_range_type (struct type *element_type, LONGEST low_bound, LONGEST high_bound)
struct type * | create_string_type (struct type *result_type, struct type *string_char_type, struct type *range_type)
struct type * | lookup_string_range_type (struct type *string_char_type, LONGEST low_bound, LONGEST high_bound)
struct type * | create_set_type (struct type *result_type, struct type *domain_type)
void | make_vector_type (struct type *array_type)
struct type * | init_vector_type (struct type *elt_type, int n)
struct type * | internal_type_self_type (struct type *type)
void | set_type_self_type (struct type *type, struct type *self_type)
void | smash_to_memberptr_type (struct type *type, struct type *self_type, struct type *to_type)
void | smash_to_methodptr_type (struct type *type, struct type *to_type)
void | smash_to_method_type (struct type *type, struct type *self_type, struct type *to_type, struct field *args, int nargs, int varargs)
const char * | type_name_no_tag (const struct type *type)
const char * | type_name_no_tag_or_error (struct type *type)
struct type * | lookup_typename (const struct language_defn *language, struct gdbarch *gdbarch, const char *name, const struct block *block, int noerr)
struct type * | lookup_unsigned_typename (const struct language_defn *language, struct gdbarch *gdbarch, const char *name)
struct type * | lookup_signed_typename (const struct language_defn *language, struct gdbarch *gdbarch, const char *name)
struct type * | lookup_struct (const char *name, const struct block *block)
struct type * | lookup_union (const char *name, const struct block *block)
struct type * | lookup_enum (const char *name, const struct block *block)
struct type * | lookup_template_type (char *name, struct type *type, const struct block *block)
struct type * | lookup_struct_elt_type (struct type *type, const char *name, int noerr)
void | get_unsigned_type_max (struct type *type, ULONGEST *max)
void | get_signed_type_minmax (struct type *type, LONGEST *min, LONGEST *max)
int | internal_type_vptr_fieldno (struct type *type)
void | set_type_vptr_fieldno (struct type *type, int fieldno)
struct type * | internal_type_vptr_basetype (struct type *type)
void | set_type_vptr_basetype (struct type *type, struct type *basetype)
int | get_vptr_fieldno (struct type *type, struct type **basetypep)
static void | stub_noname_complaint (void)
static int | array_type_has_dynamic_stride (struct type *type)
static int | is_dynamic_type_internal (struct type *type, int top_level)
int | is_dynamic_type (struct type *type)
static struct type * | resolve_dynamic_type_internal (struct type *type, struct property_addr_info *addr_stack, int top_level)
static struct type * | resolve_dynamic_range (struct type *dyn_range_type, struct property_addr_info *addr_stack)
static struct type * | resolve_dynamic_array (struct type *type, struct property_addr_info *addr_stack)
static struct type * | resolve_dynamic_union (struct type *type, struct property_addr_info *addr_stack)
static struct type * | resolve_dynamic_struct (struct type *type, struct property_addr_info *addr_stack)
struct type * | resolve_dynamic_type (struct type *type, const gdb_byte *valaddr, CORE_ADDR addr)
struct dynamic_prop * | get_dyn_prop (enum dynamic_prop_node_kind prop_kind, const struct type *type)
void | add_dyn_prop (enum dynamic_prop_node_kind prop_kind, struct dynamic_prop prop, struct type *type, struct objfile *objfile)
void | remove_dyn_prop (enum dynamic_prop_node_kind prop_kind, struct type *type)
struct type * | check_typedef (struct type *type)
static struct type * | safe_parse_type (struct gdbarch *gdbarch, char *p, int length)
static void | check_stub_method (struct type *type, int method_id, int signature_id)
void | check_stub_method_group (struct type *type, int method_id)
void | allocate_cplus_struct_type (struct type *type)
void | allocate_gnat_aux_type (struct type *type)
static void | set_type_code (struct type *type, enum type_code code)
static int | verify_floatformat (int bit, const struct floatformat *floatformat)
const struct floatformat * | floatformat_from_type (const struct type *type)
struct type * | init_type (struct objfile *objfile, enum type_code code, int bit, const char *name)
static struct type * | init_nodebug_var_type (struct objfile *objfile, const char *name)
struct type * | init_integer_type (struct objfile *objfile, int bit, int unsigned_p, const char *name)
struct type * | init_character_type (struct objfile *objfile, int bit, int unsigned_p, const char *name)
struct type * | init_boolean_type (struct objfile *objfile, int bit, int unsigned_p, const char *name)
struct type * | init_float_type (struct objfile *objfile, int bit, const char *name, const struct floatformat **floatformats)
struct type * | init_decfloat_type (struct objfile *objfile, int bit, const char *name)
struct type * | init_complex_type (struct objfile *objfile, const char *name, struct type *target_type)
struct type * | init_pointer_type (struct objfile *objfile, int bit, const char *name, struct type *target_type)
int | can_dereference (struct type *t)
int | is_integral_type (struct type *t)
int | is_floating_type (struct type *t)
int | is_scalar_type (struct type *type)
int | is_scalar_type_recursive (struct type *t)
int | class_or_union_p (const struct type *t)
int | class_types_same_p (const struct type *a, const struct type *b)
static int | distance_to_ancestor (struct type *base, struct type *dclass, int is_public)
int | is_ancestor (struct type *base, struct type *dclass)
int | is_public_ancestor (struct type *base, struct type *dclass)
static int | is_unique_ancestor_worker (struct type *base, struct type *dclass, int *offset, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct value *val)
int | is_unique_ancestor (struct type *base, struct value *val)
struct rank | sum_ranks (struct rank a, struct rank b)
int | compare_ranks (struct rank a, struct rank b)
int | compare_badness (struct badness_vector *a, struct badness_vector *b)
struct badness_vector * | rank_function (struct type **parms, int nparms, struct value **args, int nargs)
static int | integer_types_same_name_p (const char *first, const char *second)
int | types_equal (struct type *a, struct type *b)
| DEF_VEC_O (type_equality_entry_d)
static int | compare_maybe_null_strings (const char *s, const char *t)
static int | check_types_equal (struct type *type1, struct type *type2, VEC(type_equality_entry_d) **worklist)
static int | check_types_worklist (VEC(type_equality_entry_d) **worklist, struct bcache *cache)
int | types_deeply_equal (struct type *type1, struct type *type2)
int | type_not_allocated (const struct type *type)
int | type_not_associated (const struct type *type)
struct rank | rank_one_type (struct type *parm, struct type *arg, struct value *value)
static void | print_bit_vector (B_TYPE *bits, int nbits)
static void | print_args (struct field *args, int nargs, int spaces)
int | field_is_static (struct field *f)
static void | dump_fn_fieldlists (struct type *type, int spaces)
static void | print_cplus_stuff (struct type *type, int spaces)
static void | print_gnat_stuff (struct type *type, int spaces)
void | recursive_dump_type (struct type *type, int spaces)
static hashval_t | type_pair_hash (const void *item)
static int | type_pair_eq (const void *item_lhs, const void *item_rhs)
htab_t | create_copied_types_hash (struct objfile *objfile)
static struct dynamic_prop_list * | copy_dynamic_prop_list (struct obstack *objfile_obstack, struct dynamic_prop_list *list)
struct type * | copy_type_recursive (struct objfile *objfile, struct type *type, htab_t copied_types)
struct type * | copy_type (const struct type *type)
struct type * | arch_type (struct gdbarch *gdbarch, enum type_code code, int bit, const char *name)
struct type * | arch_integer_type (struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
struct type * | arch_character_type (struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
struct type * | arch_boolean_type (struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
struct type * | arch_float_type (struct gdbarch *gdbarch, int bit, const char *name, const struct floatformat **floatformats)
struct type * | arch_decfloat_type (struct gdbarch *gdbarch, int bit, const char *name)
struct type * | arch_complex_type (struct gdbarch *gdbarch, const char *name, struct type *target_type)
struct type * | arch_pointer_type (struct gdbarch *gdbarch, int bit, const char *name, struct type *target_type)
struct type * | arch_flags_type (struct gdbarch *gdbarch, const char *name, int bit)
void | append_flags_type_field (struct type *type, int start_bitpos, int nr_bits, struct type *field_type, const char *name)
void | append_flags_type_flag (struct type *type, int bitpos, const char *name)
struct type * | arch_composite_type (struct gdbarch *gdbarch, const char *name, enum type_code code)
struct field * | append_composite_type_field_raw (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)
void | append_composite_type_field (struct type *t, const char *name, struct type *field)
const struct builtin_type * | builtin_type (struct gdbarch *gdbarch)
static void * | gdbtypes_post_init (struct gdbarch *gdbarch)
const struct objfile_type * | objfile_type (struct objfile *objfile)
void | _initialize_gdbtypes (void)

## Variables
const struct rank | LENGTH_MISMATCH_BADNESS = {100,0}
const struct rank | TOO_FEW_PARAMS_BADNESS = {100,0}
const struct rank | INCOMPATIBLE_TYPE_BADNESS = {100,0}
const struct rank | EXACT_MATCH_BADNESS = {0,0}
const struct rank | INTEGER_PROMOTION_BADNESS = {1,0}
const struct rank | FLOAT_PROMOTION_BADNESS = {1,0}
const struct rank | BASE_PTR_CONVERSION_BADNESS = {1,0}
const struct rank | CV_CONVERSION_BADNESS = {1, 0}
const struct rank | INTEGER_CONVERSION_BADNESS = {2,0}
const struct rank | FLOAT_CONVERSION_BADNESS = {2,0}
const struct rank | INT_FLOAT_CONVERSION_BADNESS = {2,0}
const struct rank | VOID_PTR_CONVERSION_BADNESS = {2,0}
const struct rank | BOOL_CONVERSION_BADNESS = {3,0}
const struct rank | BASE_CONVERSION_BADNESS = {2,0}
const struct rank | REFERENCE_CONVERSION_BADNESS = {2,0}
const struct rank | NULL_POINTER_CONVERSION_BADNESS = {2,0}
const struct rank | NS_POINTER_CONVERSION_BADNESS = {10,0}
const struct rank | NS_INTEGER_POINTER_CONVERSION_BADNESS = {3,0}
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_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_ia64_quad [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]
static int | opaque_type_resolution = 1
unsigned int | overload_debug = 0
static int | strict_type_checking = 1
const struct cplus_struct_type | cplus_struct_default = { }
const struct gnat_aux_type | gnat_aux_default
static struct obstack | dont_print_type_obstack
static struct gdbarch_data * | gdbtypes_data
static const struct objfile_data * | objfile_type_data

## Macro Definition Documentation

## ◆ FIELD_EQ

#define FIELD_EQ | ( |  | FIELD | ) | (l.FIELD == r.FIELD)

Referenced by operator==().

## Typedef Documentation

## ◆ type_equality_entry_d

typedef struct type_equality_entry type_equality_entry_d

## Function Documentation

## ◆ _initialize_gdbtypes()

void _initialize_gdbtypes | ( | void |  | ) |

Definition at line 5481 of file gdbtypes.c.

References _, add_setshow_boolean_cmd(), add_setshow_zuinteger_cmd(), class_support, gdbarch_data_register_post_init(), gdbtypes_data, gdbtypes_post_init(), no_class, objfile_type_data, opaque_type_resolution, overload_debug, setchecklist, setdebuglist, setlist, show_opaque_type_resolution(), show_overload_debug(), show_strict_type_checking(), showchecklist, showdebuglist, showlist, and strict_type_checking.

## ◆ add_dyn_prop()

void add_dyn_prop | ( | enum dynamic_prop_node_kind | kind,
|  | struct dynamic_prop | prop,
|  | struct type * | type,
|  | struct objfile * | objfile
| ) |  |

Given a dynamic property PROP of a given KIND, add this dynamic property to the given TYPE.

This function assumes that TYPE is objfile-owned, and that OBJFILE is the TYPE's objfile.

Definition at line 2345 of file gdbtypes.c.

References gdb_assert, dynamic_prop_list::next, dynamic_prop_list::prop, dynamic_prop_list::prop_kind, TYPE_DYN_PROP_LIST, and TYPE_OBJFILE_OWNED.

Referenced by create_array_type_with_stride(), and set_die_type().

## ◆ address_space_int_to_name()

const char* address_space_int_to_name | ( | struct gdbarch * | gdbarch,
|  | int | space_flag
| ) |  |

Definition at line 590 of file gdbtypes.c.

References gdbarch_address_class_type_flags_to_name(), gdbarch_address_class_type_flags_to_name_p(), TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL, TYPE_INSTANCE_FLAG_CODE_SPACE, and TYPE_INSTANCE_FLAG_DATA_SPACE.

Referenced by c_type_print_modifier().

## ◆ address_space_name_to_int()

int address_space_name_to_int | ( | struct gdbarch * | gdbarch,
|  | char * | space_identifier
| ) |  |

Definition at line 568 of file gdbtypes.c.

References _, error(), gdbarch_address_class_name_to_type_flags(), gdbarch_address_class_name_to_type_flags_p(), TYPE_INSTANCE_FLAG_CODE_SPACE, and TYPE_INSTANCE_FLAG_DATA_SPACE.

Referenced by insert_type_address_space().

## ◆ alloc_type()

struct type* alloc_type | ( | struct objfile * | objfile | ) |

Definition at line 167 of file gdbtypes.c.

References gdb_assert, OBJSTAT, OBSTACK_ZALLOC, type, TYPE_CHAIN, TYPE_CODE, TYPE_CODE_UNDEF, TYPE_MAIN_TYPE, TYPE_OBJFILE_OWNED, and TYPE_OWNER.

Referenced by alloc_type_copy(), coff_alloc_type(), dbx_alloc_type(), dwarf2_add_member_fn(), init_type(), new_type(), quirk_gcc_member_function_pointer(), read_enumeration_type(), read_structure_type(), and read_tag_ptr_to_member_type().

## ◆ alloc_type_arch()

struct type* alloc_type_arch | ( | struct gdbarch * | gdbarch | ) |

Definition at line 195 of file gdbtypes.c.

References gdb_assert, GDBARCH_OBSTACK_ZALLOC, type, TYPE_CHAIN, TYPE_CODE, TYPE_CODE_UNDEF, TYPE_MAIN_TYPE, TYPE_OBJFILE_OWNED, and TYPE_OWNER.

Referenced by alloc_type_copy(), arch_type(), check_typedef(), and copy_type_recursive().

## ◆ alloc_type_copy()

struct type* alloc_type_copy | ( | const struct type * | type | ) |

Definition at line 222 of file gdbtypes.c.

References alloc_type(), alloc_type_arch(), TYPE_OBJFILE_OWNED, and TYPE_OWNER.

Referenced by ada_template_to_fixed_record_type_1(), ada_type_of_array(), allocate_stub_method(), constrained_packed_array_type(), copy_type(), create_array_type_with_stride(), create_range_type(), create_set_type(), empty_record(), lookup_memberptr_type(), lookup_methodptr_type(), make_function_type(), make_pointer_type(), make_reference_type(), rust_composite_type(), template_to_static_fixed_type(), to_fixed_array_type(), to_fixed_range_type(), and to_record_with_fixed_variant_part().

## ◆ alloc_type_instance()

static struct type* alloc_type_instance | ( | struct type * | oldtype | ) |
| static

Definition at line 273 of file gdbtypes.c.

References OBSTACK_ZALLOC, type, TYPE_CHAIN, TYPE_MAIN_TYPE, TYPE_OBJFILE, TYPE_OBJFILE_OWNED, and XCNEW.

Referenced by make_qualified_type().

## ◆ allocate_cplus_struct_type()

void allocate_cplus_struct_type | ( | struct type * | type | ) |

Definition at line 2782 of file gdbtypes.c.

References cplus_struct_default, HAVE_CPLUS_STRUCT, set_type_vptr_fieldno(), TYPE_ALLOC, TYPE_RAW_CPLUS_SPECIFIC, TYPE_SPECIFIC_CPLUS_STUFF, and TYPE_SPECIFIC_FIELD.

## ◆ allocate_gnat_aux_type()

void allocate_gnat_aux_type | ( | struct type * | type | ) |

Definition at line 2803 of file gdbtypes.c.

References gnat_aux_default, TYPE_ALLOC, TYPE_GNAT_SPECIFIC, TYPE_SPECIFIC_FIELD, and TYPE_SPECIFIC_GNAT_STUFF.

## ◆ allocate_stub_method()

struct type* allocate_stub_method | ( | struct type * | type | ) |

Definition at line 848 of file gdbtypes.c.

References alloc_type_copy(), type, TYPE_CODE, TYPE_CODE_METHOD, TYPE_LENGTH, TYPE_STUB, and TYPE_TARGET_TYPE.

Referenced by read_type().

## ◆ append_composite_type_field()

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

Definition at line 5208 of file gdbtypes.c.

References append_composite_type_field_aligned(), and name.

Referenced by aarch64_vnb_type(), aarch64_vnd_type(), aarch64_vnh_type(), aarch64_vnq_type(), aarch64_vns_type(), arm_neon_double_type(), arm_neon_quad_type(), fbsd_get_siginfo_type(), i386_bnd_type(), i386_mmx_type(), i386_ymm_type(), i386_zmm_type(), linux_get_siginfo_type_with_fields(), tdesc_type_with_fields::make_gdb_type_struct(), tdesc_type_with_fields::make_gdb_type_union(), rs6000_builtin_type_vec128(), rs6000_builtin_type_vec64(), spu_builtin_type_vec128(), and windows_get_tlb_type().

## ◆ append_composite_type_field_aligned()

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

Definition at line 5168 of file gdbtypes.c.

References append_composite_type_field_raw(), FIELD_BITPOS, FIELD_TYPE, name, SET_FIELD_BITPOS, TARGET_CHAR_BIT, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, and TYPE_NFIELDS.

Referenced by append_composite_type_field(), and linux_get_siginfo_type_with_fields().

## ◆ append_composite_type_field_raw()

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

Definition at line 5149 of file gdbtypes.c.

References FIELD_NAME, FIELD_TYPE, memset(), name, TYPE_FIELDS, TYPE_NFIELDS, and XRESIZEVEC.

Referenced by append_composite_type_field_aligned(), tdesc_type_with_fields::make_gdb_type_enum(), and tdesc_type_with_fields::make_gdb_type_struct().

## ◆ 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
| ) |  |

Definition at line 5095 of file gdbtypes.c.

References gdb_assert, name, SET_FIELD_BITPOS, TARGET_CHAR_BIT, TYPE_CODE, TYPE_CODE_FLAGS, TYPE_FIELD, TYPE_FIELD_BITSIZE, TYPE_FIELD_NAME, TYPE_FIELD_TYPE, TYPE_LENGTH, and TYPE_NFIELDS.

Referenced by append_flags_type_flag(), and tdesc_type_with_fields::make_gdb_type_flags().

## ◆ append_flags_type_flag()

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

Definition at line 5119 of file gdbtypes.c.

References append_flags_type_field(), get_type_arch(), and name.

Referenced by BP_MANIPULATION(), rl78_psw_type(), rx_fpsw_type(), rx_psw_type(), sparc64_ccr_type(), sparc64_fprs_type(), sparc64_fsr_type(), sparc64_pstate_type(), sparc_fsr_type(), and sparc_psr_type().

## ◆ arch_boolean_type()

struct type* arch_boolean_type | ( | struct gdbarch * | gdbarch,
|  | int | bit,
|  | int | unsigned_p,
|  | const char * | name
| ) |  |

Definition at line 4996 of file gdbtypes.c.

References arch_type(), bit, name, TYPE_CODE_BOOL, and TYPE_UNSIGNED.

Referenced by build_d_types(), build_fortran_types(), build_go_types(), build_m2_types(), build_opencl_types(), and rust_language_arch_info().

## ◆ arch_character_type()

struct type* arch_character_type | ( | struct gdbarch * | gdbarch,
|  | int | bit,
|  | int | unsigned_p,
|  | const char * | name
| ) |  |

Definition at line 4979 of file gdbtypes.c.

References arch_type(), bit, name, TYPE_CODE_CHAR, and TYPE_UNSIGNED.

Referenced by ada_language_arch_info(), build_d_types(), build_go_types(), build_m2_types(), gdbtypes_post_init(), and rust_language_arch_info().

## ◆ arch_complex_type()

struct type* arch_complex_type | ( | struct gdbarch * | gdbarch,
|  | const char * | name,
|  | struct type * | target_type
| ) |  |

Definition at line 5044 of file gdbtypes.c.

References arch_type(), name, TARGET_CHAR_BIT, TYPE_CODE_COMPLEX, TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by build_d_types(), build_fortran_types(), build_go_types(), and gdbtypes_post_init().

## ◆ arch_composite_type()

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

Definition at line 5132 of file gdbtypes.c.

References arch_type(), code, gdb_assert, INIT_CPLUS_SPECIFIC, name, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_TAG_NAME.

Referenced by aarch64_vnb_type(), aarch64_vnd_type(), aarch64_vnh_type(), aarch64_vnq_type(), aarch64_vns_type(), arm_neon_double_type(), arm_neon_quad_type(), fbsd_get_siginfo_type(), i386_bnd_type(), i386_mmx_type(), i386_ymm_type(), i386_zmm_type(), linux_get_siginfo_type_with_fields(), tdesc_type_with_fields::make_gdb_type_struct(), tdesc_type_with_fields::make_gdb_type_union(), rs6000_builtin_type_vec128(), rs6000_builtin_type_vec64(), spu_builtin_type_vec128(), and windows_get_tlb_type().

## ◆ arch_decfloat_type()

struct type* arch_decfloat_type | ( | struct gdbarch * | gdbarch,
|  | int | bit,
|  | const char * | name
| ) |  |

Definition at line 5032 of file gdbtypes.c.

References arch_type(), bit, name, and TYPE_CODE_DECFLOAT.

Referenced by gdbtypes_post_init().

## ◆ arch_flags_type()

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

Definition at line 5076 of file gdbtypes.c.

References arch_type(), bit, name, type, TYPE_CODE_FLAGS, TYPE_FIELDS, TYPE_NFIELDS, TYPE_UNSIGNED, and TYPE_ZALLOC.

Referenced by BP_MANIPULATION(), tdesc_type_with_fields::make_gdb_type_flags(), rl78_psw_type(), rx_fpsw_type(), rx_psw_type(), sparc64_ccr_type(), sparc64_fprs_type(), sparc64_fsr_type(), sparc64_pstate_type(), sparc_fsr_type(), and sparc_psr_type().

## ◆ arch_float_type()

struct type* arch_float_type | ( | struct gdbarch * | gdbarch,
|  | int | bit,
|  | const char * | name,
|  | const struct floatformat ** | floatformats
| ) |  |

Definition at line 5014 of file gdbtypes.c.

References arch_type(), bit, gdbarch_byte_order(), name, TYPE_CODE_FLT, TYPE_FLOATFORMAT, and verify_floatformat().

Referenced by ada_language_arch_info(), arm_ext_type(), build_d_types(), build_fortran_types(), build_go_types(), build_m2_types(), build_opencl_types(), gdbtypes_post_init(), ia64_ext_type(), m68881_ext_type(), tdesc_type_builtin::make_gdb_type(), nds32_pseudo_register_type(), rust_language_arch_info(), sh64_littlebyte_bigword_type(), and sh_littlebyte_bigword_type().

## ◆ arch_integer_type()

struct type* arch_integer_type | ( | struct gdbarch * | gdbarch,
|  | int | bit,
|  | int | unsigned_p,
|  | const char * | name
| ) |  |

Definition at line 4962 of file gdbtypes.c.

References arch_type(), bit, name, TYPE_CODE_INT, and TYPE_UNSIGNED.

Referenced by ada_language_arch_info(), dwarf_expr_context::address_type(), build_d_types(), build_fortran_types(), build_gdb_vtable_type(), build_go_types(), build_m2_types(), build_opencl_types(), fbsd_get_siginfo_type(), gdbtypes_post_init(), linux_get_siginfo_type_with_fields(), linux_make_mappings_corefile_notes(), make_types(), rl78_gdbarch_init(), rust_language_arch_info(), windows_get_tlb_type(), and xtensa_register_type().

## ◆ arch_pointer_type()

struct type* arch_pointer_type | ( | struct gdbarch * | gdbarch,
|  | int | bit,
|  | const char * | name,
|  | struct type * | target_type
| ) |  |

Definition at line 5061 of file gdbtypes.c.

References arch_type(), bit, name, TYPE_CODE_PTR, TYPE_TARGET_TYPE, and TYPE_UNSIGNED.

Referenced by avr_gdbarch_init(), ft32_gdbarch_init(), make_types(), and rl78_gdbarch_init().

## ◆ arch_type()

struct type* arch_type | ( | struct gdbarch * | gdbarch,
|  | enum type_code | code,
|  | int | bit,
|  | const char * | name
| ) |  |

Definition at line 4941 of file gdbtypes.c.

References alloc_type_arch(), bit, code, gdb_assert, gdbarch_obstack_strdup(), name, set_type_code(), TARGET_CHAR_BIT, type, TYPE_LENGTH, and TYPE_NAME.

Referenced by ada_language_arch_info(), arch_boolean_type(), arch_character_type(), arch_complex_type(), arch_composite_type(), arch_decfloat_type(), arch_flags_type(), arch_float_type(), arch_integer_type(), arch_pointer_type(), avr_gdbarch_init(), build_d_types(), build_fortran_types(), build_gdb_vtable_type(), build_go_types(), build_opencl_types(), build_std_type_info_type(), fbsd_get_siginfo_type(), finalize_symtab(), ft32_gdbarch_init(), gdbtypes_post_init(), linux_get_siginfo_type_with_fields(), tdesc_type_with_fields::make_gdb_type_enum(), make_types(), rl78_gdbarch_init(), and windows_get_tlb_type().

## ◆ array_type_has_dynamic_stride()

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

Definition at line 1893 of file gdbtypes.c.

References DYN_PROP_BYTE_STRIDE, get_dyn_prop(), dynamic_prop::kind, and PROP_CONST.

Referenced by is_dynamic_type_internal().

## ◆ builtin_type()

const struct builtin_type* builtin_type | ( | struct gdbarch * | gdbarch | ) |

Return the type table for the specified architecture.

Definition at line 5217 of file gdbtypes.c.

References gdbarch_data(), and gdbtypes_data.

Referenced by aarch64_push_dummy_call(), aarch64_vnb_type(), aarch64_vnd_type(), aarch64_vnh_type(), aarch64_vnq_type(), aarch64_vns_type(), ada_evaluate_subexp(), ada_language_arch_info(), ada_scaling_type(), ada_tasks_inferior_data_sniffer(), ada_val_print_num(), address_from_register(), alpha_push_dummy_call(), alpha_register_type(), alpha_store_return_value(), amd64_x32_pseudo_register_type(), arm_neon_double_type(), arm_neon_quad_type(), arm_register_type(), assign_component(), avr_register_type(), bfin_register_type(), binop_promote(), BP_MANIPULATION(), bsd_uthread_read_memory_address(), build_gdb_vtable_type(), build_std_type_info_type(), c_language_arch_info(), call_function_by_hand_dummy(), call_site_to_target_addr(), compile_object_load(), compile_probe_arg(), convert_func(), convert_type_basic(), cplus_language_arch_info(), cris_register_type(), crisv32_register_type(), darwin_current_sos(), darwin_load_image_infos(), darwin_read_exec_load_addr_from_dyld(), darwin_solib_read_all_image_info_addr(), do_examine(), dtrace_process_dof_probe(), dwarf2_evaluate_loc_desc_full(), elf_gnu_ifunc_resolve_addr(), elf_gnu_ifunc_resolve_by_got(), elf_gnu_ifunc_resolver_return_stop(), elf_locate_base(), elf_rel_plt_read(), evaluate_subexp_for_sizeof(), evaluate_subexp_standard(), find_command(), float_type_from_length(), frv_register_type(), ft32_register_type(), gdbscm_arch_builtin_type(), gdbtypes_post_init(), gen_expr(), gen_expr_binop_rest(), gen_integral_promotions(), dwarf_expr_context::get_base_type(), get_running_thread_id(), get_signed_type(), get_unsigned_type(), gnuv3_baseclass_offset(), gnuv3_decode_method_ptr(), 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_type(), i386_ymm_type(), i386_zmm_type(), ia64_register_type(), iq2000_register_type(), jit_read_code_entry(), jit_read_descriptor(), 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(), m88k_register_type(), tdesc_type_builtin::make_gdb_type(), tdesc_type_with_fields::make_gdb_type_struct(), 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(), mt_copro_register_type(), mt_register_type(), nios2_register_type(), obsd_auxv_parse(), open_symbol_file_object(), pascal_language_arch_info(), ppscm_print_string_repr(), print_scalar_formatted(), print_string_repr(), printf_floating(), proc_watchpoint_address(), procfs_address_to_host_pointer(), procfs_can_use_hw_breakpoint(), read_base_type(), resolve(), resolve_msgsend(), resolve_msgsend_stret(), resolve_msgsend_super(), resolve_msgsend_super_stret(), rs6000_aix_extract_ld_info(), rs6000_builtin_type_vec128(), rs6000_builtin_type_vec64(), rs6000_pseudo_register_type(), rust_language_arch_info(), rx_register_type(), s390_pseudo_register_type(), safe_parse_type(), scan_dyntag(), score_register_type(), set_next_address(), sh64_do_fp_register(), sh64_register_type(), sh_default_register_type(), sh_sh2a_register_type(), sh_sh3e_register_type(), sh_sh4_register_type(), solib_svr4_r_brk(), solib_svr4_r_ldsomap(), solib_svr4_r_map(), sparc32_pseudo_register_type(), sparc32_register_type(), sparc64_pseudo_register_type(), sparc64_register_type(), spu_builtin_type_vec128(), spu_register_type(), stap_get_expected_argument_type(), stap_modify_semaphore(), tdesc_register_type(), tic6x_register_type(), tilegx_register_type(), unknown_language_arch_info(), unop_promote(), 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(), and xtensa_register_type().

## ◆ can_dereference()

int can_dereference | ( | struct type * | t | ) |

Definition at line 3015 of file gdbtypes.c.

References check_typedef(), TYPE_CODE, TYPE_CODE_PTR, TYPE_CODE_VOID, and TYPE_TARGET_TYPE.

Referenced by print_value_flags().

## ◆ check_stub_method()

static void check_stub_method | ( | struct type * | type,
|  | int | method_id,
|  | int | signature_id
| ) |  |
| static

Definition at line 2622 of file gdbtypes.c.

References _, error(), gdb_demangle(), gdb_mangle_name(), get_type_arch(), lookup_pointer_type(), safe_parse_type(), smash_to_method_type(), startswith(), field::type, TYPE_ALLOC, TYPE_FN_FIELD_PHYSNAME, TYPE_FN_FIELD_STATIC_P, TYPE_FN_FIELD_STUB, TYPE_FN_FIELD_TYPE, TYPE_FN_FIELDLIST1, TYPE_STUB, TYPE_TARGET_TYPE, and xfree().

Referenced by check_stub_method_group().

## ◆ check_stub_method_group()

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

Definition at line 2740 of file gdbtypes.c.

References check_stub_method(), startswith(), TYPE_FN_FIELD_PHYSNAME, TYPE_FN_FIELD_STUB, TYPE_FN_FIELDLIST1, TYPE_FN_FIELDLIST_LENGTH, and TYPE_FN_FIELDLIST_NAME.

Referenced by find_method_list(), gnuv3_find_method_in(), search_struct_method(), and value_struct_elt_for_reference().

## ◆ check_typedef()

struct type* check_typedef | ( | struct type * | type | ) |

Definition at line 2421 of file gdbtypes.c.

References alloc_type_arch(), check_typedef(), currently_reading_symtab, gdb_assert, get_type_arch(), type::instance_flags, lookup_symbol(), lookup_transparent_type(), make_qualified_type(), name, opaque_type_resolution, STRUCT_DOMAIN, stub_noname_complaint(), block_symbol::symbol, SYMBOL_TYPE, type, TYPE_CODE, TYPE_CODE_RANGE, TYPE_CODE_TYPEDEF, TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL, TYPE_INSTANCE_FLAG_CODE_SPACE, TYPE_INSTANCE_FLAG_DATA_SPACE, TYPE_INSTANCE_FLAGS, TYPE_IS_OPAQUE, TYPE_LENGTH, type_name_no_tag(), TYPE_OBJFILE, TYPE_STUB, TYPE_TARGET_STUB, and TYPE_TARGET_TYPE.

Referenced by aarch64_push_dummy_call(), aarch64_return_in_memory(), aarch64_store_return_value(), aarch64_type_align(), ada_array_bound(), ada_array_bound_from_type(), ada_array_length(), ada_check_typedef(), ada_evaluate_subexp(), ada_get_field_index(), ada_is_redundant_index_type_desc(), ada_tasks_inferior_data_sniffer(), ada_val_print_ref(), ada_value_ptr_subscript(), add_struct_fields(), adjust_value_for_child_access(), allocate_value_lazy(), alpha_push_dummy_call(), amd64_classify_aggregate(), arm_push_dummy_call(), arm_return_in_memory(), arm_type_align(), arm_vfp_abi_for_function(), arm_vfp_cprc_sub_candidate(), assign_aggregate(), assign_component(), avr_push_dummy_call(), bfin_push_dummy_call(), binop_promote(), binop_types_user_defined_p(), BP_MANIPULATION(), c_get_string(), c_print_type_1(), c_print_type_struct_field_offset(), c_print_type_union_field_offset(), c_print_typedef(), c_textual_element_type(), c_type_print_base_1(), c_val_print(), c_val_print_array(), c_val_print_ptr(), c_value_of_variable(), c_value_print(), c_watch_location_expression(), call_function_by_hand_dummy(), can_dereference(), can_use_hardware_watchpoint(), check_condition(), check_field(), check_parameter_typelist(), check_typedef(), check_types_equal(), classify_inner_name(), classify_type(), coerce_array(), coerce_pieced_ref(), coerce_ref(), coerce_ref_if_computed(), collection_list::collect_symbol(), compile_object_load(), complete_expression(), compute_vtable_size(), constrained_packed_array_type(), convert_char_literal(), 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(), create_array_type_with_stride(), create_range_type(), create_value(), d_lookup_nested_symbol(), d_lookup_symbol(), d_val_print(), decode_constrained_packed_array_type(), default_read_var_value(), distance_to_ancestor(), do_ppc_sysv_return_value(), do_search_struct_field(), dynamic_array_type(), encode_actions_1(), entry_data_value_coerce_ref(), evaluate_funcall(), evaluate_struct_tuple(), evaluate_subexp_c(), evaluate_subexp_for_address(), evaluate_subexp_for_sizeof(), evaluate_subexp_modula2(), evaluate_subexp_opencl(), evaluate_subexp_standard(), evaluate_subexp_with_coercion(), f77_get_dynamic_length_of_aggregate(), f77_print_array_1(), f_type_print_base(), f_val_print(), fake_method::fake_method(), find_function_addr(), 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(), fp_register_arg_p(), frv_push_dummy_call(), gccgo_string_p(), gdbpy_create_lazy_string_object(), gdbpy_get_xmethod_result_type(), gdbpy_invoke_xmethod(), 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(), 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(), generate_register_struct(), generate_vla_size(), generic_val_print(), generic_val_print_array(), generic_val_print_ptr(), generic_val_print_ref(), get_discrete_bounds(), get_internalvar_integer(), get_out_value_type(), 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(), go_print_type(), go_val_print(), hash_typedef_field(), hppa32_push_dummy_call(), i386_16_byte_align_p(), i386_darwin_arg_type_alignment(), i386_reg_struct_return_p(), i386_return_value(), ia64_push_dummy_call(), indirect_pieced_value(), info_scope_command(), inspect_type(), internal_type_vptr_basetype(), internal_type_vptr_fieldno(), is_dynamic_type_internal(), is_float_or_hfa_type_recurse(), is_floating_type(), is_floating_value(), is_hfa_or_hva(), is_integral_type(), is_scalar_type(), is_scalar_type_recursive(), is_unique_ancestor_worker(), list_arg_or_local(), list_args_or_locals(), lookup_function_type_with_arguments(), lookup_struct_elt_type(), lookup_symbol_aux(), 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_typedef(), m2_print_unbounded_array(), m2_val_print(), m68k_svr4_return_value(), m88k_8_byte_align_p(), make_symbol_overload_list_adl_namespace(), mi_print_value_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(), nds32_type_align(), nios2_push_dummy_call(), opencl_component_ref(), opencl_logical_not(), opencl_print_type(), 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(), pascal_print_type(), pascal_print_typedef(), pascal_printstr(), pascal_type_print_base(), pascal_val_print(), 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(), print_formatted(), print_one_vtable(), print_symbol(), print_type_scalar(), print_unpacked_pointer(), print_variable_at_address(), print_variable_or_computed(), ptrmath_type_p(), py_print_type(), py_print_value(), rank_one_type(), read_frame_register_value(), read_one_struct_field(), read_subrange_type(), read_tag_ptr_to_member_type(), require_rvalue(), resolve_dynamic_array(), resolve_dynamic_struct(), resolve_dynamic_type(), resolve_dynamic_type_internal(), resolve_subexp(), return_command(), rs6000_lynx178_push_dummy_call(), rs6000_push_dummy_call(), rust_get_trait_object_pointer(), rust_print_type(), rust_print_typedef(), rust_subscript(), rust_type_alignment(), rust_val_print(), rust_watch_location_expression(), rx_push_dummy_call(), s390_effective_inner_type(), s390_handle_arg(), s390_push_dummy_call(), s390_return_value(), s390_value_from_register(), scalar_binop(), score_push_dummy_call(), search_struct_method(), set_internalvar(), set_type_vptr_basetype(), set_type_vptr_fieldno(), sh_is_renesas_calling_convention(), 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_on_registers_p(), sparc_structure_return_p(), spu_push_dummy_call(), spu_return_value(), 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_name_no_tag_or_error(), typecmp(), types_equal(), typy_fields_items(), typy_get_composite(), typy_get_sizeof(), typy_strip_typedefs(), typy_template_argument(), tyscm_get_composite(), unop_promote(), unop_user_defined_p(), unpack_bits_as_long(), unpack_long(), update_watchpoint(), v850_eight_byte_align_p(), val_print(), val_print_array_elements(), val_print_packed_array_elements(), val_print_scalar_type_p(), 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(), value_actual_type(), value_addr(), value_arg_coerce(), value_args_as_target_float(), value_assign(), 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_f90_subarray(), value_fetch_lazy(), value_find_oload_method_list(), value_from_contents_and_address(), value_from_pointer(), value_from_register(), value_has_field(), value_in(), value_ind(), value_less(), value_logical_not(), value_must_coerce_to_target(), value_neg(), value_of_dwarf_reg_entry(), value_one(), value_pos(), value_primitive_field(), value_ptradd(), value_ptrdiff(), value_ref(), value_reinterpret_cast(), value_rtti_indirect_type(), value_slice(), value_struct_element_index(), value_struct_elt(), value_struct_elt_bitpos(), value_struct_elt_for_reference(), value_subscript(), value_subscripted_rvalue(), value_vector_widen(), value_x_binop(), value_x_unop(), varobj_get_value_type(), vector_binop(), vector_relop(), vlscm_binop(), vlscm_convert_bytevector(), whatis_exp(), xtensa_push_dummy_call(), and yyparse().

## ◆ check_types_equal()

static int check_types_equal | ( | struct type * | type1,
|  | struct type * | type2,
|  | VEC(type_equality_entry_d) ** | worklist
| ) |  |
| static

Definition at line 3525 of file gdbtypes.c.

References _, check_typedef(), compare_maybe_null_strings(), dwarf2_locexpr_baton::data, FIELD_ARTIFICIAL, FIELD_BITPOS, FIELD_BITSIZE, FIELD_DWARF_BLOCK, FIELD_ENUMVAL, FIELD_LOC_KIND, FIELD_LOC_KIND_BITPOS, FIELD_LOC_KIND_DWARF_BLOCK, FIELD_LOC_KIND_ENUMVAL, FIELD_LOC_KIND_PHYSADDR, FIELD_LOC_KIND_PHYSNAME, FIELD_NAME, FIELD_STATIC_PHYSADDR, FIELD_STATIC_PHYSNAME, FIELD_TYPE, internal_error(), dwarf2_locexpr_baton::per_cu, dwarf2_locexpr_baton::size, type_equality_entry::type1, type_equality_entry::type2, TYPE_CODE, TYPE_CODE_RANGE, TYPE_FIELD, TYPE_INSTANCE_FLAGS, TYPE_LENGTH, TYPE_NAME, TYPE_NFIELDS, TYPE_NOSIGN, TYPE_NOTTEXT, TYPE_RANGE_DATA, TYPE_TAG_NAME, TYPE_TARGET_TYPE, TYPE_UNSIGNED, TYPE_VARARGS, TYPE_VECTOR, and VEC_safe_push.

Referenced by check_types_worklist().

## ◆ check_types_worklist()

static int check_types_worklist | ( | VEC(type_equality_entry_d) ** | worklist,
|  | struct bcache * | cache
| ) |  |
| static

Definition at line 3638 of file gdbtypes.c.

References bcache_full(), check_types_equal(), type_equality_entry::type1, type_equality_entry::type2, VEC_empty, VEC_last, and VEC_pop.

Referenced by types_deeply_equal().

## ◆ class_or_union_p()

int class_or_union_p | ( | const struct type * | t | ) |

Definition at line 3114 of file gdbtypes.c.

References TYPE_CODE, TYPE_CODE_STRUCT, and TYPE_CODE_UNION.

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
| ) |  |

Definition at line 3125 of file gdbtypes.c.

References TYPE_MAIN_TYPE, and TYPE_NAME.

Referenced by distance_to_ancestor(), dynamic_cast_check_1(), dynamic_cast_check_2(), gnuv3_pass_by_reference(), is_unique_ancestor_worker(), and value_dynamic_cast().

## ◆ compare_badness()

int compare_badness | ( | struct badness_vector * | a,
|  | struct badness_vector * | b
| ) |  |

Definition at line 3312 of file gdbtypes.c.

References compare_ranks(), badness_vector::length, and badness_vector::rank.

Referenced by find_oload_champ(), and find_overload_match().

## ◆ compare_maybe_null_strings()

static int compare_maybe_null_strings | ( | const char * | s,
|  | const char * | t
| ) |  |
| static

Definition at line 3509 of file gdbtypes.c.

Referenced by check_types_equal().

## ◆ compare_ranks()

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

Definition at line 3284 of file gdbtypes.c.

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

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

## ◆ copy_dynamic_prop_list()

static struct dynamic_prop_list* copy_dynamic_prop_list | ( | struct obstack * | objfile_obstack,
|  | struct dynamic_prop_list * | list
| ) |  |
| static

Definition at line 4735 of file gdbtypes.c.

References dynamic_prop_list::next, and dynamic_prop_list::prop.

Referenced by copy_type(), and copy_type_recursive().

## ◆ copy_type()

struct type* copy_type | ( | const struct type * | type | ) |

Definition at line 4916 of file gdbtypes.c.

References alloc_type_copy(), copy_dynamic_prop_list(), gdb_assert, new_type(), TYPE_DYN_PROP_LIST, TYPE_INSTANCE_FLAGS, TYPE_LENGTH, TYPE_MAIN_TYPE, TYPE_OBJFILE, and TYPE_OBJFILE_OWNED.

Referenced by ada_to_fixed_type_1(), add_array_cv_type(), resolve_dynamic_array(), resolve_dynamic_range(), resolve_dynamic_struct(), resolve_dynamic_type_internal(), and resolve_dynamic_union().

## ◆ copy_type_recursive()

struct type* copy_type_recursive | ( | struct objfile * | objfile,
|  | struct type * | type,
|  | htab_t | copied_types
| ) |  |

Definition at line 4763 of file gdbtypes.c.

References _, alloc_type_arch(), copy_dynamic_prop_list(), copy_type_recursive(), FIELD_LOC_KIND_BITPOS, FIELD_LOC_KIND_ENUMVAL, FIELD_LOC_KIND_PHYSADDR, FIELD_LOC_KIND_PHYSNAME, gdb_assert, gdb_assert_not_reached, get_type_arch(), INIT_CPLUS_SPECIFIC, INIT_FUNC_SPECIFIC, INIT_GNAT_SPECIFIC, internal_error(), new_type(), type_pair::newobj, type_pair::old, SET_FIELD_BITPOS, SET_FIELD_ENUMVAL, SET_FIELD_PHYSADDR, SET_FIELD_PHYSNAME, set_type_self_type(), type, TYPE_CALLING_CONVENTION, TYPE_CODE, TYPE_CODE_RANGE, TYPE_DYN_PROP_LIST, TYPE_FIELD, TYPE_FIELD_ARTIFICIAL, TYPE_FIELD_BITPOS, TYPE_FIELD_BITSIZE, TYPE_FIELD_ENUMVAL, TYPE_FIELD_LOC_KIND, TYPE_FIELD_NAME, TYPE_FIELD_STATIC_PHYSADDR, TYPE_FIELD_STATIC_PHYSNAME, TYPE_FIELD_TYPE, TYPE_FIELDS, TYPE_FLOATFORMAT, TYPE_INSTANCE_FLAGS, TYPE_LENGTH, TYPE_MAIN_TYPE, TYPE_NAME, TYPE_NFIELDS, TYPE_NO_RETURN, TYPE_OBJFILE, TYPE_OBJFILE_OWNED, TYPE_OWNER, TYPE_RANGE_DATA, TYPE_SELF_TYPE, TYPE_SPECIFIC_CPLUS_STUFF, TYPE_SPECIFIC_FIELD, TYPE_SPECIFIC_FLOATFORMAT, TYPE_SPECIFIC_FUNC, TYPE_SPECIFIC_GNAT_STUFF, TYPE_SPECIFIC_NONE, TYPE_SPECIFIC_SELF_TYPE, TYPE_TAG_NAME, TYPE_TAIL_CALL_LIST, TYPE_TARGET_TYPE, XCNEWVEC, and XNEW.

Referenced by compile_object_run(), copy_type_recursive(), preserve_one_internalvar(), preserve_one_value(), save_objfile_types(), and tyscm_copy_type_recursive().

## ◆ create_array_type()

struct type* create_array_type | ( | struct type * | result_type,
|  | struct type * | element_type,
|  | struct type * | range_type
| ) |  |

Definition at line 1223 of file gdbtypes.c.

References create_array_type_with_stride().

Referenced by ada_type_of_array(), constrained_packed_array_type(), create_string_type(), decode_type(), define_symbol(), empty_array(), lookup_array_range_type(), read_array_type(), to_fixed_array_type(), upgrade_type(), value_cast(), value_slice(), and yyparse().

## ◆ create_array_type_with_stride()

struct type* create_array_type_with_stride | ( | struct type * | result_type,
|  | struct type * | element_type,
|  | struct type * | range_type,
|  | struct dynamic_prop * | byte_stride_prop,
|  | unsigned int | bit_stride
| ) |  |

Definition at line 1147 of file gdbtypes.c.

References add_dyn_prop(), alloc_type_copy(), check_typedef(), dynamic_prop_data::const_val, dynamic_prop::data, DYN_PROP_BYTE_STRIDE, get_discrete_bounds(), has_static_range(), dynamic_prop::kind, PROP_CONST, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_FIELD_BITSIZE, TYPE_FIELDS, TYPE_INDEX_TYPE, TYPE_LENGTH, TYPE_NFIELDS, type_not_allocated(), type_not_associated(), TYPE_OBJFILE, TYPE_RANGE_DATA, TYPE_TARGET_STUB, TYPE_TARGET_TYPE, and TYPE_ZALLOC.

Referenced by ada_value_slice(), ada_value_slice_from_ptr(), create_array_type(), read_array_type(), and resolve_dynamic_array().

## ◆ create_copied_types_hash()

htab_t create_copied_types_hash | ( | struct objfile * | objfile | ) |

Definition at line 4724 of file gdbtypes.c.

References dummy_obstack_deallocate(), hashtab_obstack_allocate(), type_pair_eq(), and type_pair_hash().

Referenced by compile_object_run(), preserve_values(), and save_objfile_types().

## ◆ create_range_type()

struct type* create_range_type | ( | struct type * | result_type,
|  | struct type * | index_type,
|  | const struct dynamic_prop * | low_bound,
|  | const struct dynamic_prop * | high_bound
| ) |  |

Definition at line 903 of file gdbtypes.c.

References alloc_type_copy(), check_typedef(), dynamic_prop_data::const_val, dynamic_prop::data, dynamic_prop::kind, PROP_CONST, TYPE_CODE, TYPE_CODE_RANGE, TYPE_LENGTH, TYPE_RANGE_DATA, TYPE_STUB, TYPE_TARGET_STUB, TYPE_TARGET_TYPE, TYPE_UNSIGNED, and TYPE_ZALLOC.

Referenced by create_static_range_type(), read_subrange_type(), and resolve_dynamic_range().

## ◆ create_set_type()

struct type* create_set_type | ( | struct type * | result_type,
|  | struct type * | domain_type
| ) |  |

Definition at line 1280 of file gdbtypes.c.

References alloc_type_copy(), get_discrete_bounds(), TARGET_CHAR_BIT, TYPE_CODE, TYPE_CODE_SET, TYPE_FIELD_TYPE, TYPE_FIELDS, TYPE_LENGTH, TYPE_NFIELDS, TYPE_STUB, TYPE_UNSIGNED, and TYPE_ZALLOC.

Referenced by read_set_type(), and read_type().

## ◆ create_static_range_type()

struct type* create_static_range_type | ( | struct type * | result_type,
|  | struct type * | index_type,
|  | LONGEST | low_bound,
|  | LONGEST | high_bound
| ) |  |

Definition at line 945 of file gdbtypes.c.

References dynamic_prop_data::const_val, create_range_type(), dynamic_prop::data, dynamic_prop::kind, and PROP_CONST.

Referenced by ada_type_of_array(), ada_value_slice(), ada_value_slice_from_ptr(), decode_type(), define_symbol(), empty_array(), lookup_array_range_type(), read_array_type(), read_range_type(), read_tag_string_type(), to_fixed_range_type(), upgrade_type(), value_cast(), value_slice(), and yyparse().

## ◆ create_string_type()

struct type* create_string_type | ( | struct type * | result_type,
|  | struct type * | string_char_type,
|  | struct type * | range_type
| ) |  |

Definition at line 1256 of file gdbtypes.c.

References create_array_type(), TYPE_CODE, and TYPE_CODE_STRING.

Referenced by read_tag_string_type().

## ◆ DEF_VEC_O()

DEF_VEC_O | ( | type_equality_entry_d |  | ) |

## ◆ discrete_position()

int discrete_position | ( | struct type * | type,
|  | LONGEST | val,
|  | LONGEST * | pos
| ) |  |

Definition at line 1100 of file gdbtypes.c.

References TYPE_CODE, TYPE_CODE_ENUM, TYPE_FIELD_ENUMVAL, and TYPE_NFIELDS.

Referenced by ada_value_slice(), ada_value_slice_from_ptr(), pos_atr(), and val_print_array_elements().

## ◆ distance_to_ancestor()

static int distance_to_ancestor | ( | struct type * | base,
|  | struct type * | dclass,
|  | int | is_public
| ) |  |
| static

Definition at line 3154 of file gdbtypes.c.

References BASETYPE_VIA_PUBLIC, check_typedef(), class_types_same_p(), TYPE_BASECLASS, and TYPE_N_BASECLASSES.

Referenced by is_ancestor(), is_public_ancestor(), and rank_one_type().

## ◆ dump_fn_fieldlists()

static void dump_fn_fieldlists | ( | struct type * | type,
|  | int | spaces
| ) |  |
| static

Definition at line 4236 of file gdbtypes.c.

References _, gdb_print_host_address, gdb_stdout, print_args(), printf_filtered(), printfi_filtered(), recursive_dump_type(), TYPE_FN_FIELD_ARGS, TYPE_FN_FIELD_CONST, TYPE_FN_FIELD_FCONTEXT, TYPE_FN_FIELD_PHYSNAME, TYPE_FN_FIELD_PRIVATE, TYPE_FN_FIELD_PROTECTED, TYPE_FN_FIELD_STUB, TYPE_FN_FIELD_TYPE, TYPE_FN_FIELD_VOFFSET, TYPE_FN_FIELD_VOLATILE, TYPE_FN_FIELDLIST1, TYPE_FN_FIELDLIST_LENGTH, TYPE_FN_FIELDLIST_NAME, TYPE_FN_FIELDLISTS, TYPE_NFIELDS, and TYPE_NFN_FIELDS.

Referenced by print_cplus_stuff().

## ◆ field_is_static()

int field_is_static | ( | struct field * | f | ) |

Definition at line 4224 of file gdbtypes.c.

References FIELD_LOC_KIND, FIELD_LOC_KIND_PHYSADDR, and FIELD_LOC_KIND_PHYSNAME.

Referenced by amd64_classify_aggregate(), arm_vfp_cprc_sub_candidate(), c_type_print_base_struct_union(), convert_field(), cp_print_value_fields(), do_search_struct_field(), evaluate_struct_tuple(), gen_struct_elt_for_reference(), gen_struct_ref_recursive(), gen_trace_static_fields(), generate_vla_size(), gnuv3_pass_by_reference(), is_dynamic_type_internal(), mips_n32n64_fp_arg_chunk_p(), pascal_object_print_value_fields(), pascal_type_print_base(), ppc64_aggregate_candidate(), resolve_dynamic_struct(), resolve_dynamic_union(), rust_print_struct_def(), rust_underscore_fields(), val_print_struct(), value_struct_element_index(), value_struct_elt_bitpos(), and value_struct_elt_for_reference().

## ◆ floatformat_from_type()

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

Definition at line 2857 of file gdbtypes.c.

References gdb_assert, TYPE_CODE, TYPE_CODE_FLT, and TYPE_FLOATFORMAT.

Referenced by host_float_ops< T >::from_target(), mpfr_float_ops::from_target(), mpfr_float_ops::gdb_mpfr::gdb_mpfr(), get_target_float_ops_kind(), target_float_format_length(), target_float_is_valid(), target_float_is_zero(), target_float_same_format_p(), target_float_to_string(), host_float_ops< T >::to_string(), mpfr_float_ops::to_string(), host_float_ops< T >::to_target(), and mpfr_float_ops::to_target().

## ◆ gdbtypes_post_init()

static void* gdbtypes_post_init | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 5223 of file gdbtypes.c.

References arch_character_type(), arch_complex_type(), arch_decfloat_type(), arch_float_type(), arch_integer_type(), arch_type(), builtin_type::builtin_bool, builtin_type::builtin_char, builtin_type::builtin_char16, builtin_type::builtin_char32, builtin_type::builtin_complex, builtin_type::builtin_data_ptr, builtin_type::builtin_decdouble, builtin_type::builtin_decfloat, builtin_type::builtin_declong, builtin_type::builtin_double, builtin_type::builtin_double_complex, builtin_type::builtin_float, builtin_type::builtin_func_func, builtin_type::builtin_func_ptr, builtin_type::builtin_int, builtin_type::builtin_int0, builtin_type::builtin_int128, builtin_type::builtin_int16, builtin_type::builtin_int32, builtin_type::builtin_int64, builtin_type::builtin_int8, builtin_type::builtin_long, builtin_type::builtin_long_double, builtin_type::builtin_long_long, builtin_type::builtin_short, builtin_type::builtin_signed_char, builtin_type::builtin_string, builtin_type::builtin_true_char, builtin_type::builtin_true_unsigned_char, builtin_type(), builtin_type::builtin_uint128, builtin_type::builtin_uint16, builtin_type::builtin_uint32, builtin_type::builtin_uint64, builtin_type::builtin_uint8, builtin_type::builtin_unsigned_char, builtin_type::builtin_unsigned_int, builtin_type::builtin_unsigned_long, builtin_type::builtin_unsigned_long_long, builtin_type::builtin_unsigned_short, builtin_type::builtin_void, builtin_type::builtin_wchar, gdbarch_char_signed(), gdbarch_double_bit(), gdbarch_double_format(), gdbarch_float_bit(), gdbarch_float_format(), gdbarch_int_bit(), gdbarch_long_bit(), gdbarch_long_double_bit(), gdbarch_long_double_format(), gdbarch_long_long_bit(), GDBARCH_OBSTACK_ZALLOC, gdbarch_short_bit(), gdbarch_wchar_bit(), gdbarch_wchar_signed(), builtin_type::internal_fn, lookup_function_type(), lookup_pointer_type(), TARGET_CHAR_BIT, TYPE_CODE_BOOL, TYPE_CODE_INTERNAL_FUNCTION, TYPE_CODE_STRING, TYPE_CODE_VOID, TYPE_CODE_XMETHOD, TYPE_INSTANCE_FLAG_NOTTEXT, TYPE_INSTANCE_FLAGS, TYPE_NOSIGN, and builtin_type::xmethod.

Referenced by _initialize_gdbtypes().

## ◆ get_array_bounds()

int get_array_bounds | ( | struct type * | type,
|  | LONGEST * | low_bound,
|  | LONGEST * | high_bound
| ) |  |

Definition at line 1056 of file gdbtypes.c.

References get_discrete_bounds(), TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED, TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED, and TYPE_INDEX_TYPE.

Referenced by ada_promote_array_of_integrals(), ada_same_array_size_p(), ada_varobj_get_array_number_of_children(), c_type_print_varspec_suffix(), c_val_print_array(), convert_array(), evaluate_subexp_opencl(), gdbpy_create_lazy_string_object(), gdbscm_value_to_lazy_string(), generic_val_print_array(), lookup_opencl_vector_type(), lval_func_read(), lval_func_write(), opencl_component_ref(), opencl_logical_not(), pascal_val_print(), ppc64_aggregate_candidate(), print_optional_low_bound(), rust_print_type(), rust_subscript(), rust_val_print(), val_print_array_elements(), valpy_lazy_string(), value_complement(), value_neg(), value_one(), value_vector_widen(), vector_binop(), and vector_relop().

## ◆ get_discrete_bounds()

int get_discrete_bounds | ( | struct type * | type,
|  | LONGEST * | lowp,
|  | LONGEST * | highp
| ) |  |

Definition at line 977 of file gdbtypes.c.

References check_typedef(), TARGET_CHAR_BIT, TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_ENUM, TYPE_CODE_INT, TYPE_CODE_RANGE, TYPE_FIELD_ENUMVAL, TYPE_HIGH_BOUND, TYPE_LENGTH, TYPE_LOW_BOUND, TYPE_NFIELDS, and TYPE_UNSIGNED.

Referenced by ada_value_ptr_subscript(), c_get_string(), constrained_packed_array_type(), create_array_type_with_stride(), create_set_type(), evaluate_subexp_c(), evaluate_subexp_standard(), f77_print_array_1(), get_array_bounds(), is_scalar_type_recursive(), m2_get_discrete_bounds(), m2_print_long_set(), m2_val_print(), pascal_val_print(), val_print_packed_array_elements(), value_bit_index(), value_cast(), value_slice(), value_subscript(), and value_subscript_packed().

## ◆ get_dyn_prop()

struct dynamic_prop* get_dyn_prop | ( | enum dynamic_prop_node_kind | kind,
|  | const struct type * | type
| ) |  |

Return the dynamic property of the requested KIND from TYPE's list of dynamic properties.

Definition at line 2329 of file gdbtypes.c.

References dynamic_prop_list::next, dynamic_prop_list::prop, dynamic_prop_list::prop_kind, and TYPE_DYN_PROP_LIST.

Referenced by ada_value_slice(), ada_value_slice_from_ptr(), array_type_has_dynamic_stride(), and resolve_dynamic_array().

## ◆ get_signed_type_minmax()

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

Definition at line 1757 of file gdbtypes.c.

References check_typedef(), gdb_assert, TARGET_CHAR_BIT, TYPE_CODE, TYPE_CODE_INT, TYPE_LENGTH, and TYPE_UNSIGNED.

Referenced by vlscm_convert_typed_number(), and vlscm_integer_fits_p().

## ◆ get_target_type()

struct type* get_target_type | ( | struct type * | type | ) |

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

Definition at line 245 of file gdbtypes.c.

References check_typedef(), type, and TYPE_TARGET_TYPE.

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

## ◆ get_type_arch()

struct gdbarch* get_type_arch | ( | const struct type * |  | ) |

Return the type's architecture. For types owned by an architecture, that architecture is returned. For types owned by an objfile, that objfile's architecture is returned.

Definition at line 234 of file gdbtypes.c.

References get_objfile_arch(), TYPE_OBJFILE_OWNED, and TYPE_OWNER.

Referenced by ada_scaling_type(), ada_val_print_num(), ada_val_print_string(), ada_value_assign(), ada_value_binop(), ada_value_primitive_packed_val(), append_flags_type_flag(), c_emit_char(), c_get_string(), c_printchar(), c_printstr(), c_type_print_modifier(), c_val_print_array(), c_val_print_int(), c_val_print_ptr(), c_val_print_struct(), check_stub_method(), check_typedef(), copy_type_recursive(), cp_print_class_member(), cp_print_value_fields(), decode_constrained_packed_array(), default_print_one_register_info(), default_read_var_value(), extract_typed_address(), f_get_encoding(), f_val_print(), find_function_addr(), float_type_from_length(), gdbpy_apply_val_pretty_printer(), gdbscm_apply_val_pretty_printer(), gdbscm_value_subscript(), generic_emit_char(), generic_printstr(), generic_val_print_bool(), generic_val_print_char(), generic_val_print_complex(), generic_val_print_enum(), generic_val_print_float(), generic_val_print_func(), generic_val_print_ptr(), get_value_arch(), gnuv3_baseclass_offset(), gnuv3_get_typeid(), gnuv3_get_typename_from_type_info(), gnuv3_make_method_ptr(), gnuv3_method_ptr_size(), gnuv3_method_ptr_to_value(), gnuv3_print_method_ptr(), gnuv3_print_vtable(), gnuv3_rtti_type(), gnuv3_virtual_fn_field(), lookup_array_range_type(), make_pointer_type(), make_reference_type(), match_endianness(), modify_field(), pack_long(), pack_unsigned_long(), pascal_printstr(), pascal_val_print(), print_formatted(), print_go_string(), print_ref_address(), print_scalar_formatted(), print_unpacked_pointer(), print_variable_at_address(), printf_floating(), printf_wide_c_string(), printstr(), rust_emitchar(), rust_val_print(), rw_pieced_value(), scalar_binop(), smash_to_memberptr_type(), store_typed_address(), target_float_same_format_p(), type_length_units(), ui_printf(), unpack_bits_as_long(), unpack_long(), unpack_value_bitfield(), update_watchpoint(), val_print_scalar_formatted(), val_print_string(), val_print_type_code_flags(), value_as_address(), value_assign(), value_assign_to_component(), value_bit_index(), value_cast(), value_pointer(), value_x_unop(), and varobj_value_get_print_value().

## ◆ get_unsigned_type_max()

void get_unsigned_type_max | ( | struct type * | type,
|  | ULONGEST * | max
| ) |  |

Definition at line 1740 of file gdbtypes.c.

References check_typedef(), gdb_assert, TARGET_CHAR_BIT, TYPE_CODE, TYPE_CODE_INT, TYPE_LENGTH, and TYPE_UNSIGNED.

Referenced by vlscm_convert_typed_number(), and vlscm_integer_fits_p().

## ◆ get_vptr_fieldno()

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

Definition at line 1840 of file gdbtypes.c.

References check_typedef(), get_vptr_fieldno(), set_type_vptr_basetype(), set_type_vptr_fieldno(), TYPE_BASECLASS, TYPE_N_BASECLASSES, TYPE_OBJFILE, TYPE_VPTR_BASETYPE, and TYPE_VPTR_FIELDNO.

Referenced by c_type_print_base_struct_union(), cp_print_value_fields(), cplus_class_num_children(), cplus_describe_child(), get_vptr_fieldno(), gnuv2_value_rtti_type(), and gnuv2_virtual_fn_field().

## ◆ has_static_range()

static int has_static_range | ( | const struct range_bounds * | bounds | ) |
| static

Definition at line 965 of file gdbtypes.c.

References range_bounds::high, dynamic_prop::kind, range_bounds::low, and PROP_CONST.

Referenced by create_array_type_with_stride(), and is_dynamic_type_internal().

## ◆ init_boolean_type()

struct type* init_boolean_type | ( | struct objfile * | objfile,
|  | int | bit,
|  | int | unsigned_p,
|  | const char * | name
| ) |  |

Definition at line 2934 of file gdbtypes.c.

References bit, init_type(), name, TYPE_CODE_BOOL, and TYPE_UNSIGNED.

Referenced by read_base_type(), read_sun_builtin_type(), and rs6000_builtin_type().

## ◆ init_character_type()

struct type* init_character_type | ( | struct objfile * | objfile,
|  | int | bit,
|  | int | unsigned_p,
|  | const char * | name
| ) |  |

Definition at line 2917 of file gdbtypes.c.

References bit, init_type(), name, TYPE_CODE_CHAR, and TYPE_UNSIGNED.

Referenced by read_base_type(), and rs6000_builtin_type().

## ◆ init_complex_type()

struct type* init_complex_type | ( | struct objfile * | objfile,
|  | const char * | name,
|  | struct type * | target_type
| ) |  |

Definition at line 2983 of file gdbtypes.c.

References init_type(), name, TARGET_CHAR_BIT, TYPE_CODE_COMPLEX, TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by basic_type(), read_base_type(), read_range_type(), read_sun_floating_type(), and rs6000_builtin_type().

## ◆ init_decfloat_type()

struct type* init_decfloat_type | ( | struct objfile * | objfile,
|  | int | bit,
|  | const char * | name
| ) |  |

Definition at line 2971 of file gdbtypes.c.

References bit, init_type(), name, and TYPE_CODE_DECFLOAT.

Referenced by read_base_type().

## ◆ init_float_type()

struct type* init_float_type | ( | struct objfile * | objfile,
|  | int | bit,
|  | const char * | name,
|  | const struct floatformat ** | floatformats
| ) |  |

Definition at line 2952 of file gdbtypes.c.

References bit, gdbarch_byte_order(), get_objfile_arch(), init_type(), name, TYPE_CODE_FLT, TYPE_FLOATFORMAT, and verify_floatformat().

Referenced by basic_type(), dbx_init_float_type(), dwarf2_init_float_type(), objfile_type(), and rs6000_builtin_type().

## ◆ init_integer_type()

struct type* init_integer_type | ( | struct objfile * | objfile,
|  | int | bit,
|  | int | unsigned_p,
|  | const char * | name
| ) |  |

Definition at line 2900 of file gdbtypes.c.

References bit, init_type(), name, TYPE_CODE_INT, and TYPE_UNSIGNED.

Referenced by basic_type(), objfile_type(), read_base_type(), read_range_type(), read_sun_builtin_type(), and rs6000_builtin_type().

## ◆ init_nodebug_var_type()

static struct type* init_nodebug_var_type | ( | struct objfile * | objfile,
|  | const char * | name
| ) |  |
| static

Definition at line 2890 of file gdbtypes.c.

References init_type(), name, and TYPE_CODE_ERROR.

Referenced by objfile_type().

## ◆ init_pointer_type()

struct type* init_pointer_type | ( | struct objfile * | objfile,
|  | int | bit,
|  | const char * | name,
|  | struct type * | target_type
| ) |  |

Definition at line 3000 of file gdbtypes.c.

References bit, init_type(), name, TYPE_CODE_PTR, TYPE_TARGET_TYPE, and TYPE_UNSIGNED.

Referenced by basic_type(), objfile_type(), and read_base_type().

## ◆ init_type()

struct type* init_type | ( | struct objfile * | ,
|  | enum | type_code,
|  | int | ,
|  | const char * |
| ) |  |

Helper function to construct objfile-owned types.

Definition at line 2871 of file gdbtypes.c.

References alloc_type(), bit, code, gdb_assert, name, set_type_code(), TARGET_CHAR_BIT, type, TYPE_LENGTH, and TYPE_NAME.

Referenced by basic_type(), build_error_marker_type(), cross_ref(), dbx_init_float_type(), dwarf2_init_float_type(), fixup_go_packaging(), init_boolean_type(), init_character_type(), init_complex_type(), init_decfloat_type(), init_float_type(), init_integer_type(), init_nodebug_var_type(), init_pointer_type(), objfile_type(), parse_type(), read_base_type(), read_module_type(), read_namespace_type(), read_range_type(), read_sun_builtin_type(), read_typedef(), read_unspecified_type(), and rs6000_builtin_type().

## ◆ init_vector_type()

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

Definition at line 1334 of file gdbtypes.c.

References lookup_array_range_type(), and make_vector_type().

Referenced by arm_neon_double_type(), arm_neon_quad_type(), create_value(), fbsd_get_siginfo_type(), i386_mmx_type(), i386_ymm_type(), i386_zmm_type(), linux_get_siginfo_type_with_fields(), tdesc_type_vector::make_gdb_type(), rs6000_builtin_type_vec128(), rs6000_builtin_type_vec64(), sdata_make_value(), and spu_builtin_type_vec128().

## ◆ integer_types_same_name_p()

static int integer_types_same_name_p | ( | const char * | first,
|  | const char * | second
| ) |  |
| static

Definition at line 3394 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ internal_type_self_type()

struct type* internal_type_self_type | ( | struct type * | type | ) |

Definition at line 1350 of file gdbtypes.c.

References gdb_assert, gdb_assert_not_reached, TYPE_CODE, TYPE_CODE_MEMBERPTR, TYPE_CODE_METHOD, TYPE_CODE_METHODPTR, TYPE_MAIN_TYPE, TYPE_SPECIFIC_FIELD, TYPE_SPECIFIC_FUNC, TYPE_SPECIFIC_NONE, and TYPE_SPECIFIC_SELF_TYPE.

## ◆ internal_type_vptr_basetype()

struct type* internal_type_vptr_basetype | ( | struct type * | type | ) |

Definition at line 1805 of file gdbtypes.c.

References check_typedef(), gdb_assert, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_RAW_CPLUS_SPECIFIC, TYPE_SPECIFIC_CPLUS_STUFF, and TYPE_SPECIFIC_FIELD.

## ◆ internal_type_vptr_fieldno()

int internal_type_vptr_fieldno | ( | struct type * | type | ) |

Definition at line 1778 of file gdbtypes.c.

References check_typedef(), gdb_assert, HAVE_CPLUS_STRUCT, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_RAW_CPLUS_SPECIFIC.

## ◆ is_ancestor()

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

Definition at line 3185 of file gdbtypes.c.

References distance_to_ancestor().

Referenced by value_dynamic_cast().

## ◆ is_dynamic_type()

int is_dynamic_type | ( | struct type * | type | ) |

Predicate if the type has dynamic values, which are not resolved yet.

Definition at line 1976 of file gdbtypes.c.

References is_dynamic_type_internal().

Referenced by ada_is_redundant_range_encoding(), ada_value_primitive_packed_val(), ada_varobj_get_array_number_of_children(), constrained_packed_array_type(), default_read_var_value(), evaluate_subexp_for_sizeof(), generate_c_for_for_one_variable(), print_array_type(), type_is_full_subrange_of_target_type(), and value_subscripted_rvalue().

## ◆ is_dynamic_type_internal()

static int is_dynamic_type_internal | ( | struct type * | type,
|  | int | top_level
| ) |  |
| static

Definition at line 1903 of file gdbtypes.c.

References array_type_has_dynamic_stride(), check_typedef(), field_is_static(), gdb_assert, has_static_range(), PROP_LOCEXPR, PROP_LOCLIST, TYPE_ALLOCATED_PROP, TYPE_ASSOCIATED_PROP, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_RANGE, TYPE_CODE_REF, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_DATA_LOCATION, TYPE_DATA_LOCATION_KIND, TYPE_FIELD, TYPE_FIELD_TYPE, TYPE_INDEX_TYPE, TYPE_NFIELDS, TYPE_RANGE_DATA, and TYPE_TARGET_TYPE.

Referenced by is_dynamic_type(), and resolve_dynamic_type_internal().

## ◆ is_floating_type()

int is_floating_type | ( | struct type * | t | ) |

Definition at line 3041 of file gdbtypes.c.

References check_typedef(), TYPE_CODE, TYPE_CODE_DECFLOAT, and TYPE_CODE_FLT.

Referenced by is_floating_value(), scalar_binop(), value_args_as_target_float(), value_cast(), value_neg(), and value_one().

## ◆ is_integral_type()

int is_integral_type | ( | struct type * | t | ) |

Definition at line 3027 of file gdbtypes.c.

References check_typedef(), TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_ENUM, TYPE_CODE_FLAGS, TYPE_CODE_INT, and TYPE_CODE_RANGE.

Referenced by ada_evaluate_subexp(), ada_promote_array_of_integrals(), binop_promote(), coerce_for_assign(), evaluate_subexp_standard(), gen_expr_binop_rest(), opencl_relop(), scalar_binop(), unop_promote(), valpy_binop_throw(), valpy_int(), valpy_long(), valpy_nonzero(), value_args_as_target_float(), value_binop(), value_complement(), value_equal(), value_less(), value_neg(), value_one(), value_pos(), vlscm_binop(), vlscm_convert_typed_number(), vlscm_convert_typed_value_from_scheme(), and yyparse().

## ◆ is_public_ancestor()

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

Definition at line 3194 of file gdbtypes.c.

References distance_to_ancestor().

Referenced by value_dynamic_cast().

## ◆ is_scalar_type()

int is_scalar_type | ( | struct type * | type | ) |

Definition at line 3053 of file gdbtypes.c.

References check_typedef(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_SET, TYPE_CODE_STRING, TYPE_CODE_STRUCT, and TYPE_CODE_UNION.

Referenced by ada_value_primitive_packed_val(), and is_scalar_type_recursive().

## ◆ is_scalar_type_recursive()

int is_scalar_type_recursive | ( | struct type * | t | ) |

Definition at line 3075 of file gdbtypes.c.

References check_typedef(), get_discrete_bounds(), is_scalar_type(), is_scalar_type_recursive(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_RANGE, TYPE_CODE_STRING, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_FIELD_TYPE, TYPE_INDEX_TYPE, TYPE_NFIELDS, and TYPE_TARGET_TYPE.

Referenced by can_use_hardware_watchpoint(), and is_scalar_type_recursive().

## ◆ is_unique_ancestor()

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

Definition at line 3254 of file gdbtypes.c.

References is_unique_ancestor_worker(), offset, value_address(), value_contents_for_printing(), value_embedded_offset(), and value_type().

Referenced by value_dynamic_cast().

## ◆ is_unique_ancestor_worker()

static int is_unique_ancestor_worker | ( | struct type * | base,
|  | struct type * | dclass,
|  | int * | offset,
|  | const gdb_byte * | valaddr,
|  | int | embedded_offset,
|  | CORE_ADDR | address,
|  | struct value * | val
| ) |  |
| static

Definition at line 3202 of file gdbtypes.c.

References baseclass_offset(), check_typedef(), class_types_same_p(), offset, TYPE_BASECLASS, and TYPE_N_BASECLASSES.

Referenced by is_unique_ancestor().

## ◆ lookup_array_range_type()

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

Definition at line 1232 of file gdbtypes.c.

References builtin_type::builtin_int, builtin_type(), create_array_type(), create_static_range_type(), and get_type_arch().

Referenced by allocate_repeat_value(), build_gdb_vtable_type(), convert_ast_to_type(), dynamic_array_type(), follow_types(), gdbscm_value_to_lazy_string(), gen_repeat(), init_vector_type(), lookup_string_range_type(), lsscm_safe_lazy_string_to_value(), mt_register_type(), rust_evaluate_subexp(), sh64_build_float_register_type(), sh_sh4_build_float_register_type(), stpy_convert_to_value(), typy_array_1(), tyscm_array_1(), valpy_lazy_string(), value_array(), value_cstring(), and vlscm_convert_bytevector().

## ◆ lookup_enum()

struct type* lookup_enum | ( | const char * | name,
|  | const struct block * | block
| ) |  |

Definition at line 1602 of file gdbtypes.c.

References _, error(), lookup_symbol(), name, STRUCT_DOMAIN, block_symbol::symbol, SYMBOL_TYPE, TYPE_CODE, and TYPE_CODE_ENUM.

Referenced by typy_lookup_typename(), tyscm_lookup_typename(), and yyparse().

## ◆ lookup_function_type()

struct type* lookup_function_type | ( | struct type * | type | ) |

Definition at line 519 of file gdbtypes.c.

References make_function_type().

Referenced by decode_type(), define_symbol(), evaluate_subexp_standard(), finalize_symtab(), find_function_in_inferior(), flush_ea_cache(), follow_types(), gdbtypes_post_init(), make_types(), parse_procedure(), parse_symbol(), patch_block_stabs(), process_coff_symbol(), read_subroutine_type(), upgrade_type(), and yyparse().

## ◆ lookup_function_type_with_arguments()

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

Definition at line 529 of file gdbtypes.c.

References check_typedef(), gdb_assert, make_function_type(), TYPE_CODE, TYPE_CODE_VOID, TYPE_FIELD_TYPE, TYPE_FIELDS, TYPE_NFIELDS, TYPE_PROTOTYPED, TYPE_VARARGS, and TYPE_ZALLOC.

Referenced by convert_ast_to_type(), and follow_types().

## ◆ lookup_lvalue_reference_type()

struct type* lookup_lvalue_reference_type | ( | struct type * | type | ) |

Definition at line 470 of file gdbtypes.c.

References lookup_reference_type(), and TYPE_CODE_REF.

Referenced by evaluate_subexp_standard(), follow_types(), gdbscm_type_reference(), gdbscm_value_dynamic_type(), typy_lookup_type(), typy_reference(), valpy_get_dynamic_type(), valpy_getitem(), and yyparse().

## ◆ lookup_memberptr_type()

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

Definition at line 820 of file gdbtypes.c.

References alloc_type_copy(), and smash_to_memberptr_type().

Referenced by read_tag_ptr_to_member_type(), and value_struct_elt_for_reference().

## ◆ lookup_methodptr_type()

struct type* lookup_methodptr_type | ( | struct type * | to_type | ) |

Definition at line 832 of file gdbtypes.c.

References alloc_type_copy(), and smash_to_methodptr_type().

Referenced by read_tag_ptr_to_member_type(), and value_struct_elt_for_reference().

## ◆ lookup_pointer_type()

struct type* lookup_pointer_type | ( | struct type * | type | ) |

Definition at line 381 of file gdbtypes.c.

References make_pointer_type().

Referenced by aarch64_push_dummy_call(), aarch64_stap_parse_special_token(), ada_evaluate_subexp(), ada_get_tsd_from_tag(), ada_language_arch_info(), ada_tag_value_at_base_address(), ada_type_of_array(), ada_val_print_ref(), ada_value_ptr_subscript(), ada_varobj_ind(), address_of_variable(), alpha_push_dummy_call(), amd64_dtrace_parse_probe_argument(), arm_stap_parse_special_token(), call_function_by_hand_dummy(), check_stub_method(), compile_object_run(), convert_ast_to_type(), decode_type(), default_read_var_value(), define_symbol(), desc_bounds(), do_module_cleanup(), evaluate_funcall(), evaluate_subexp_for_address(), evaluate_subexp_standard(), evaluate_subexp_with_coercion(), fbsd_get_siginfo_type(), find_function_in_inferior(), flush_ea_cache(), follow_types(), gdbpy_get_xmethod_arg_types(), gdbpy_get_xmethod_result_type(), gdbpy_invoke_xmethod(), gdbscm_type_pointer(), gdbscm_value_dynamic_type(), gdbtypes_post_init(), gen_address_of(), gen_usual_unary(), gnuv2_virtual_fn_field(), 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(), linux_get_siginfo_type_with_fields(), read_tag_pointer_type(), rust_get_trait_object_pointer(), rust_slice_type(), 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 | refcode
| ) |  |

Definition at line 462 of file gdbtypes.c.

References make_reference_type().

Referenced by gdbpy_get_xmethod_result_type(), gdbpy_invoke_xmethod(), lookup_lvalue_reference_type(), lookup_rvalue_reference_type(), read_tag_reference_type(), value_ref(), and value_rtti_indirect_type().

## ◆ lookup_rvalue_reference_type()

struct type* lookup_rvalue_reference_type | ( | struct type * | type | ) |

Definition at line 478 of file gdbtypes.c.

References lookup_reference_type(), and TYPE_CODE_RVALUE_REF.

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

## ◆ lookup_signed_typename()

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

Definition at line 1537 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
| ) |  |

Definition at line 1268 of file gdbtypes.c.

References lookup_array_range_type(), TYPE_CODE, and TYPE_CODE_STRING.

Referenced by value_string().

## ◆ lookup_struct()

struct type* lookup_struct | ( | const char * | name,
|  | const struct block * | block
| ) |  |

Definition at line 1556 of file gdbtypes.c.

References _, error(), lookup_symbol(), name, STRUCT_DOMAIN, block_symbol::symbol, SYMBOL_TYPE, TYPE_CODE, and TYPE_CODE_STRUCT.

Referenced by typy_lookup_typename(), tyscm_lookup_typename(), and yyparse().

## ◆ lookup_struct_elt_type()

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

Definition at line 1662 of file gdbtypes.c.

References _, check_typedef(), error(), lookup_struct_elt_type(), name, strcmp_iw(), string, type, TYPE_BASECLASS, TYPE_CODE, TYPE_CODE_PTR, TYPE_CODE_REF, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_FIELD_NAME, TYPE_FIELD_TYPE, TYPE_N_BASECLASSES, type_name_no_tag(), TYPE_NFIELDS, TYPE_TARGET_TYPE, and type_to_string().

Referenced by ada_is_bogus_array_descriptor(), desc_bounds_type(), desc_data_target_type(), desc_index_type(), is_thick_pntr(), lookup_struct_elt_type(), yylex(), and yyparse().

## ◆ lookup_template_type()

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

Definition at line 1623 of file gdbtypes.c.

References _, error(), lookup_symbol(), name, block_symbol::symbol, SYMBOL_TYPE, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_NAME, and VAR_DOMAIN.

Referenced by yyparse().

## ◆ lookup_typename()

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

Definition at line 1509 of file gdbtypes.c.

References _, error(), LOC_TYPEDEF, lookup_symbol_in_language(), name, block_symbol::symbol, SYMBOL_CLASS, SYMBOL_TYPE, and VAR_DOMAIN.

Referenced by cp_lookup_symbol_imports_or_template(), evaluate_subexp_c(), gdbpy_invoke_xmethod(), lookup_signed_typename(), lookup_unsigned_typename(), printf_wide_c_string(), rust_lookup_type(), typy_lookup_typename(), tyscm_lookup_typename(), ui_printf(), yylex(), and yyparse().

## ◆ lookup_union()

struct type* lookup_union | ( | const char * | name,
|  | const struct block * | block
| ) |  |

Definition at line 1578 of file gdbtypes.c.

References _, error(), lookup_symbol(), name, STRUCT_DOMAIN, block_symbol::symbol, SYMBOL_TYPE, TYPE_CODE, and TYPE_CODE_UNION.

Referenced by typy_lookup_typename(), tyscm_lookup_typename(), and yyparse().

## ◆ lookup_unsigned_typename()

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

Definition at line 1526 of file gdbtypes.c.

References lookup_typename(), and name.

Referenced by binop_promote(), and yyparse().

## ◆ make_atomic_type()

struct type* make_atomic_type | ( | struct type * | type | ) |

Definition at line 760 of file gdbtypes.c.

References make_qualified_type(), TYPE_INSTANCE_FLAG_ATOMIC, and TYPE_INSTANCE_FLAGS.

Referenced by read_tag_atomic_type().

## ◆ make_cv_type()

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

Definition at line 691 of file gdbtypes.c.

References gdb_assert, make_qualified_type(), TYPE_INSTANCE_FLAG_CONST, TYPE_INSTANCE_FLAG_VOLATILE, TYPE_INSTANCE_FLAGS, and TYPE_OBJFILE.

Referenced by add_array_cv_type(), build_std_type_info_type(), c_type_print_args(), create_value(), follow_types(), gdbpy_get_xmethod_arg_types(), gdbscm_type_const(), gdbscm_type_unqualified(), gdbscm_type_volatile(), gnuv3_get_typeid(), make_cv_value(), read_subroutine_type(), read_tag_const_type(), read_tag_volatile_type(), read_type(), rust_language_arch_info(), typy_const(), typy_lookup_type(), typy_unqualified(), typy_volatile(), and value_rtti_indirect_type().

## ◆ make_function_type()

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

Definition at line 489 of file gdbtypes.c.

References alloc_type_copy(), INIT_FUNC_SPECIFIC, smash_type(), type, TYPE_CODE, TYPE_CODE_FUNC, TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by avr_gdbarch_init(), ft32_gdbarch_init(), lookup_function_type(), lookup_function_type_with_arguments(), and read_type().

## ◆ make_pointer_type()

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

Definition at line 319 of file gdbtypes.c.

References alloc_type_copy(), type::chain, gdbarch_ptr_bit(), get_type_arch(), smash_type(), TARGET_CHAR_BIT, type, TYPE_CHAIN, TYPE_CODE, TYPE_CODE_PTR, TYPE_LENGTH, TYPE_POINTER_TYPE, TYPE_TARGET_TYPE, and TYPE_UNSIGNED.

Referenced by build_std_type_info_type(), compute_exception(), gnuv3_get_typeid(), lookup_pointer_type(), parse_symbol(), and read_type().

## ◆ make_qualified_type()

static struct type* make_qualified_type | ( | struct type * | type,
|  | int | new_flags,
|  | struct type * | storage
| ) |  |
| static

Definition at line 609 of file gdbtypes.c.

References alloc_type_instance(), gdb_assert, type, TYPE_CHAIN, TYPE_INSTANCE_FLAGS, TYPE_LENGTH, TYPE_MAIN_TYPE, TYPE_OBJFILE, TYPE_POINTER_TYPE, and TYPE_REFERENCE_TYPE.

Referenced by check_typedef(), make_atomic_type(), make_cv_type(), make_restrict_type(), make_type_with_address_space(), make_unqualified_type(), and make_vector_type().

## ◆ make_reference_type()

struct type* make_reference_type | ( | struct type * | type,
|  | struct type ** | typeptr,
|  | enum type_code | refcode
| ) |  |

Definition at line 393 of file gdbtypes.c.

References alloc_type_copy(), type::chain, gdb_assert, gdbarch_ptr_bit(), get_type_arch(), smash_type(), TARGET_CHAR_BIT, type, TYPE_CHAIN, TYPE_CODE, TYPE_CODE_REF, TYPE_CODE_RVALUE_REF, TYPE_LENGTH, TYPE_REFERENCE_TYPE, TYPE_RVALUE_REFERENCE_TYPE, and TYPE_TARGET_TYPE.

Referenced by lookup_reference_type(), and read_type().

## ◆ make_restrict_type()

struct type* make_restrict_type | ( | struct type * | type | ) |

Definition at line 736 of file gdbtypes.c.

References make_qualified_type(), TYPE_INSTANCE_FLAG_RESTRICT, and TYPE_INSTANCE_FLAGS.

Referenced by read_tag_restrict_type().

## ◆ make_type_with_address_space()

struct type* make_type_with_address_space | ( | struct type * | type,
|  | int | space_flag
| ) |  |

Definition at line 667 of file gdbtypes.c.

References make_qualified_type(), TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL, TYPE_INSTANCE_FLAG_CODE_SPACE, TYPE_INSTANCE_FLAG_DATA_SPACE, and TYPE_INSTANCE_FLAGS.

Referenced by build_gdb_vtable_type(), follow_types(), and read_tag_pointer_type().

## ◆ make_unqualified_type()

struct type* make_unqualified_type | ( | struct type * | type | ) |

Definition at line 747 of file gdbtypes.c.

References make_qualified_type(), TYPE_INSTANCE_FLAG_CONST, TYPE_INSTANCE_FLAG_RESTRICT, TYPE_INSTANCE_FLAG_VOLATILE, and TYPE_INSTANCE_FLAGS.

Referenced by convert_qualified().

## ◆ make_vector_type()

void make_vector_type | ( | struct type * | array_type | ) |

Definition at line 1311 of file gdbtypes.c.

References flags, make_qualified_type(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_INT, TYPE_INSTANCE_FLAG_NOTTEXT, TYPE_INSTANCE_FLAGS, TYPE_TARGET_TYPE, and TYPE_VECTOR.

Referenced by init_vector_type(), read_array_type(), read_type(), typy_array_1(), tyscm_array_1(), and vlscm_convert_bytevector().

## ◆ objfile_type()

const struct objfile_type* objfile_type | ( | struct objfile * | objfile | ) |

Return the type table for the specified objfile.

Definition at line 5363 of file gdbtypes.c.

References objfile_type::builtin_char, objfile_type::builtin_core_addr, objfile_type::builtin_double, objfile_type::builtin_error, objfile_type::builtin_float, objfile_type::builtin_int, objfile_type::builtin_long, objfile_type::builtin_long_double, objfile_type::builtin_long_long, objfile_type::builtin_short, objfile_type::builtin_signed_char, objfile_type::builtin_unsigned_char, objfile_type::builtin_unsigned_int, objfile_type::builtin_unsigned_long, objfile_type::builtin_unsigned_long_long, objfile_type::builtin_unsigned_short, objfile_type::builtin_void, gdbarch_addr_bit(), gdbarch_char_signed(), gdbarch_double_bit(), gdbarch_double_format(), gdbarch_float_bit(), gdbarch_float_format(), gdbarch_int_bit(), gdbarch_long_bit(), gdbarch_long_double_bit(), gdbarch_long_double_format(), gdbarch_long_long_bit(), gdbarch_short_bit(), get_objfile_arch(), init_float_type(), init_integer_type(), init_nodebug_var_type(), init_pointer_type(), init_type(), objfile_type::nodebug_data_symbol, objfile_type::nodebug_got_plt_symbol, objfile_type::nodebug_text_gnu_ifunc_symbol, objfile_type::nodebug_text_symbol, objfile_type::nodebug_tls_symbol, objfile_type::nodebug_unknown_symbol, objfile_type(), objfile_type_data, OBSTACK_CALLOC, TARGET_CHAR_BIT, TYPE_CODE_ERROR, TYPE_CODE_FUNC, TYPE_CODE_VOID, TYPE_GNU_IFUNC, TYPE_NOSIGN, and TYPE_TARGET_TYPE.

Referenced by add_data_symbol(), basic_type(), convert_func(), convert_symbol_bmsym(), convert_type_basic(), dbx_lookup_type(), decode_base_type(), decode_type(), define_symbol(), die_type(), error_type(), find_minsym_type_and_address(), flush_ea_cache(), new_symbol_full(), objfile_type(), parse_procedure(), parse_symbol(), process_xcoff_symbol(), psymtab_to_symtab_1(), read_array_type(), read_range_type(), read_subrange_type(), read_subroutine_type(), read_tag_string_type(), rs6000_builtin_type(), and upgrade_type().

## ◆ operator==() [1/2]

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

Definition at line 864 of file gdbtypes.c.

References dynamic_prop_data::baton, dynamic_prop_data::const_val, dynamic_prop::data, gdb_assert_not_reached, dynamic_prop::kind, PROP_ADDR_OFFSET, PROP_CONST, PROP_LOCEXPR, PROP_LOCLIST, and PROP_UNDEFINED.

## ◆ operator==() [2/2]

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

Definition at line 887 of file gdbtypes.c.

References FIELD_EQ.

## ◆ print_args()

static void print_args | ( | struct field * | args,
|  | int | nargs,
|  | int | spaces
| ) |  |
| static

Definition at line 4208 of file gdbtypes.c.

References name, printfi_filtered(), and recursive_dump_type().

Referenced by dump_fn_fieldlists(), print_frame(), print_frame_args(), print_frame_info(), and py_print_frame().

## ◆ print_bit_vector()

static void print_bit_vector | ( | B_TYPE * | bits,
|  | int | nbits
| ) |  |
| static

Definition at line 4186 of file gdbtypes.c.

References B_TST, bits, printf_filtered(), and puts_filtered().

Referenced by print_cplus_stuff().

## ◆ print_cplus_stuff()

static void print_cplus_stuff | ( | struct type * | type,
|  | int | spaces
| ) |  |
| static

Definition at line 4302 of file gdbtypes.c.

References dump_fn_fieldlists(), gdb_print_host_address, gdb_stdout, print_bit_vector(), printf_filtered(), printfi_filtered(), puts_filtered(), recursive_dump_type(), TYPE_FIELD_PRIVATE_BITS, TYPE_FIELD_PROTECTED_BITS, TYPE_FIELD_VIRTUAL_BITS, TYPE_N_BASECLASSES, TYPE_NFIELDS, TYPE_NFN_FIELDS, TYPE_VPTR_BASETYPE, and TYPE_VPTR_FIELDNO.

Referenced by recursive_dump_type().

## ◆ print_gnat_stuff()

static void print_gnat_stuff | ( | struct type * | type,
|  | int | spaces
| ) |  |
| static

Definition at line 4364 of file gdbtypes.c.

References printfi_filtered(), recursive_dump_type(), and TYPE_DESCRIPTIVE_TYPE.

Referenced by recursive_dump_type().

## ◆ rank_function()

struct badness_vector* rank_function | ( | struct type ** | parms,
|  | int | nparms,
|  | struct value ** | args,
|  | int | nargs
| ) |  |

Definition at line 3356 of file gdbtypes.c.

References EXACT_MATCH_BADNESS, badness_vector::length, LENGTH_MATCH, LENGTH_MISMATCH_BADNESS, badness_vector::rank, rank_one_type(), TOO_FEW_PARAMS_BADNESS, value_type(), XNEW, and XNEWVEC.

Referenced by find_oload_champ().

## ◆ rank_one_type()

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

Definition at line 3746 of file gdbtypes.c.

References BASE_CONVERSION_BADNESS, BASE_PTR_CONVERSION_BADNESS, BOOL_CONVERSION_BADNESS, check_typedef(), CV_CONVERSION_BADNESS, CV_CONVERSION_CONST, CV_CONVERSION_VOLATILE, distance_to_ancestor(), EXACT_MATCH_BADNESS, FLOAT_CONVERSION_BADNESS, FLOAT_PROMOTION_BADNESS, fprintf_filtered(), gdb_stderr, if(), INCOMPATIBLE_TYPE_BADNESS, INT_FLOAT_CONVERSION_BADNESS, INTEGER_CONVERSION_BADNESS, INTEGER_PROMOTION_BADNESS, integer_types_same_name_p(), not_lval, NS_INTEGER_POINTER_CONVERSION_BADNESS, NS_POINTER_CONVERSION_BADNESS, NULL_POINTER_CONVERSION_BADNESS, overload_debug, rank_one_type(), REFERENCE_CONVERSION_BADNESS, REFERENCE_CONVERSION_CONST_LVALUE, REFERENCE_CONVERSION_RVALUE, strict_type_checking, rank::subrank, sum_ranks(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_COMPLEX, TYPE_CODE_ENUM, TYPE_CODE_FLAGS, TYPE_CODE_FLT, TYPE_CODE_FUNC, TYPE_CODE_INT, TYPE_CODE_MEMBERPTR, TYPE_CODE_METHOD, TYPE_CODE_PTR, TYPE_CODE_RANGE, TYPE_CODE_REF, TYPE_CODE_RVALUE_REF, TYPE_CODE_SET, TYPE_CODE_STRUCT, TYPE_CODE_TYPEDEF, TYPE_CODE_UNION, TYPE_CODE_VOID, TYPE_CONST, TYPE_DECLARED_CLASS, TYPE_FIELD_TYPE, TYPE_IS_REFERENCE, TYPE_LENGTH, TYPE_NAME, TYPE_NOSIGN, TYPE_TARGET_TYPE, TYPE_UNSIGNED, TYPE_VOLATILE, types_equal(), value_as_long(), VALUE_LVAL, value_type(), and VOID_PTR_CONVERSION_BADNESS.

Referenced by compare_parameters(), rank_function(), and rank_one_type().

## ◆ recursive_dump_type()

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

Definition at line 4380 of file gdbtypes.c.

References _, dont_print_type_obstack, gdb_print_host_address, gdb_stdout, HAVE_CPLUS_STRUCT, name, plongest(), print_cplus_stuff(), print_gnat_stuff(), printf_filtered(), printfi_filtered(), puts_filtered(), recursive_dump_type(), TYPE_ADDRESS_CLASS_1, TYPE_ADDRESS_CLASS_2, TYPE_ATOMIC, TYPE_CALLING_CONVENTION, TYPE_CHAIN, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_COMPLEX, TYPE_CODE_ENUM, TYPE_CODE_ERROR, TYPE_CODE_FLAGS, TYPE_CODE_FLT, TYPE_CODE_FUNC, TYPE_CODE_INT, TYPE_CODE_MEMBERPTR, TYPE_CODE_METHOD, TYPE_CODE_METHODPTR, TYPE_CODE_NAMESPACE, TYPE_CODE_PTR, TYPE_CODE_RANGE, TYPE_CODE_REF, TYPE_CODE_SET, TYPE_CODE_SPACE, TYPE_CODE_STRING, TYPE_CODE_STRUCT, TYPE_CODE_TYPEDEF, TYPE_CODE_UNDEF, TYPE_CODE_UNION, TYPE_CODE_VOID, TYPE_CONST, TYPE_CPLUS_SPECIFIC, TYPE_DATA_SPACE, TYPE_FIELD_BITPOS, TYPE_FIELD_BITSIZE, TYPE_FIELD_ENUMVAL, TYPE_FIELD_NAME, TYPE_FIELD_TYPE, TYPE_FIELDS, TYPE_FIXED_INSTANCE, TYPE_FLOATFORMAT, TYPE_GNAT_SPECIFIC, TYPE_HIGH_BOUND, TYPE_HIGH_BOUND_UNDEFINED, TYPE_INCOMPLETE, TYPE_INSTANCE_FLAGS, TYPE_LENGTH, TYPE_LOW_BOUND, TYPE_LOW_BOUND_UNDEFINED, TYPE_NAME, TYPE_NFIELDS, TYPE_NFN_FIELDS, TYPE_NOSIGN, TYPE_NOTTEXT, TYPE_OBJFILE_OWNED, TYPE_OWNER, TYPE_POINTER_TYPE, TYPE_PROTOTYPED, TYPE_REFERENCE_TYPE, TYPE_RESTRICT, TYPE_SELF_TYPE, TYPE_SPECIFIC_CPLUS_STUFF, TYPE_SPECIFIC_FIELD, TYPE_SPECIFIC_FLOATFORMAT, TYPE_SPECIFIC_FUNC, TYPE_SPECIFIC_GNAT_STUFF, TYPE_SPECIFIC_SELF_TYPE, TYPE_STUB, TYPE_STUB_SUPPORTED, TYPE_TAG_NAME, TYPE_TARGET_STUB, TYPE_TARGET_TYPE, TYPE_UNSIGNED, TYPE_VARARGS, TYPE_VECTOR, and TYPE_VOLATILE.

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

## ◆ remove_dyn_prop()

void remove_dyn_prop | ( | enum dynamic_prop_node_kind | prop_kind,
|  | struct type * | type
| ) |  |

Definition at line 2363 of file gdbtypes.c.

References dynamic_prop_list::next, dynamic_prop_list::prop_kind, and TYPE_DYN_PROP_LIST.

Referenced by resolve_dynamic_array(), and set_internalvar().

## ◆ replace_type()

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

Definition at line 779 of file gdbtypes.c.

References type::chain, gdb_assert, TYPE_ADDRESS_CLASS_ALL, TYPE_CHAIN, TYPE_INSTANCE_FLAGS, TYPE_LENGTH, TYPE_MAIN_TYPE, and TYPE_OBJFILE.

Referenced by cleanup_undefined_types_1(), cleanup_undefined_types_noname(), and read_type().

## ◆ resolve_dynamic_array()

static struct type* resolve_dynamic_array | ( | struct type * | type,
|  | struct property_addr_info * | addr_stack
| ) |  |
| static

Definition at line 2042 of file gdbtypes.c.

References _, check_typedef(), copy_type(), create_array_type_with_stride(), dwarf2_evaluate_property(), DYN_PROP_BYTE_STRIDE, gdb_assert, get_dyn_prop(), PROP_CONST, remove_dyn_prop(), resolve_dynamic_range(), type, TYPE_ALLOCATED_PROP, TYPE_ASSOCIATED_PROP, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_DYN_PROP_ADDR, TYPE_DYN_PROP_KIND, TYPE_FIELD_BITSIZE, TYPE_INDEX_TYPE, TYPE_NAME, TYPE_TARGET_TYPE, and warning().

Referenced by resolve_dynamic_type_internal().

## ◆ resolve_dynamic_range()

static struct type* resolve_dynamic_range | ( | struct type * | dyn_range_type,
|  | struct property_addr_info * | addr_stack
| ) |  |
| static

Definition at line 1989 of file gdbtypes.c.

References dynamic_prop_data::const_val, copy_type(), create_range_type(), dynamic_prop::data, dwarf2_evaluate_property(), gdb_assert, dynamic_prop::kind, PROP_CONST, PROP_UNDEFINED, resolve_dynamic_type_internal(), TYPE_CODE, TYPE_CODE_RANGE, TYPE_RANGE_DATA, and TYPE_TARGET_TYPE.

Referenced by resolve_dynamic_array(), and resolve_dynamic_type_internal().

## ◆ resolve_dynamic_struct()

static struct type* resolve_dynamic_struct | ( | struct type * | type,
|  | struct property_addr_info * | addr_stack
| ) |  |
| static

Definition at line 2154 of file gdbtypes.c.

References _, property_addr_info::addr, check_typedef(), copy_type(), current_language, error(), field_is_static(), FIELD_LOC_KIND_BITPOS, gdb_assert, language_defn::la_language, language_fortran, property_addr_info::next, resolve_dynamic_type_internal(), TARGET_CHAR_BIT, property_addr_info::type, TYPE_ALLOC, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_FIELD, TYPE_FIELD_BITPOS, TYPE_FIELD_BITSIZE, TYPE_FIELD_LOC_KIND, TYPE_FIELD_TYPE, TYPE_FIELDS, TYPE_LENGTH, TYPE_NFIELDS, TYPE_TARGET_TYPE, and property_addr_info::valaddr.

Referenced by resolve_dynamic_type_internal().

## ◆ resolve_dynamic_type()

struct type* resolve_dynamic_type | ( | struct type * | type,
|  | const gdb_byte * | valaddr,
|  | CORE_ADDR | addr
| ) |  |

Resolve all dynamic values of a type e.g. array bounds to static values. ADDR specifies the location of the variable the type is bound to. If TYPE has no dynamic properties return TYPE; otherwise a new type with static properties is returned.

Definition at line 2317 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_val_print_1(), ada_value_primitive_packed_val(), default_read_var_value(), value_from_contents_and_address(), and value_subscripted_rvalue().

## ◆ resolve_dynamic_type_internal()

static struct type * resolve_dynamic_type_internal | ( | struct type * | type,
|  | struct property_addr_info * | addr_stack,
|  | int | top_level
| ) |  |
| static

Definition at line 2239 of file gdbtypes.c.

References property_addr_info::addr, check_typedef(), copy_type(), dwarf2_evaluate_property(), extract_typed_address(), is_dynamic_type_internal(), property_addr_info::next, PROP_CONST, read_memory_typed_address(), resolve_dynamic_array(), resolve_dynamic_range(), resolve_dynamic_struct(), resolve_dynamic_union(), type, property_addr_info::type, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_RANGE, TYPE_CODE_REF, TYPE_CODE_STRUCT, TYPE_CODE_TYPEDEF, TYPE_CODE_UNION, TYPE_DATA_LOCATION, TYPE_DYN_PROP_ADDR, TYPE_DYN_PROP_KIND, TYPE_TARGET_TYPE, and property_addr_info::valaddr.

Referenced by resolve_dynamic_range(), resolve_dynamic_struct(), resolve_dynamic_type(), and resolve_dynamic_union().

## ◆ resolve_dynamic_union()

static struct type* resolve_dynamic_union | ( | struct type * | type,
|  | struct property_addr_info * | addr_stack
| ) |  |
| static

Definition at line 2114 of file gdbtypes.c.

References copy_type(), field_is_static(), gdb_assert, resolve_dynamic_type_internal(), TYPE_ALLOC, TYPE_CODE, TYPE_CODE_UNION, TYPE_FIELD, TYPE_FIELD_TYPE, TYPE_FIELDS, TYPE_LENGTH, and TYPE_NFIELDS.

Referenced by resolve_dynamic_type_internal().

## ◆ safe_parse_type()

static struct type* safe_parse_type | ( | struct gdbarch * | gdbarch,
|  | char * | p,
|  | int | length
| ) |  |
| static

Definition at line 2585 of file gdbtypes.c.

References builtin_type(), builtin_type::builtin_void, CATCH, END_CATCH, gdb_stderr, type::length, null_stream, parse_and_eval_type(), RETURN_MASK_ERROR, TRY, and type.

Referenced by check_stub_method().

## ◆ set_type_code()

static void set_type_code | ( | struct type * | type,
|  | enum type_code | code
| ) |  |
| static

Definition at line 2815 of file gdbtypes.c.

References code, INIT_CPLUS_SPECIFIC, INIT_FUNC_SPECIFIC, TYPE_CODE, TYPE_CODE_FLT, TYPE_CODE_FUNC, TYPE_CODE_NAMESPACE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_SPECIFIC_FIELD, and TYPE_SPECIFIC_FLOATFORMAT.

Referenced by arch_type(), and init_type().

## ◆ set_type_self_type()

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

Definition at line 1376 of file gdbtypes.c.

References gdb_assert, gdb_assert_not_reached, INIT_FUNC_SPECIFIC, TYPE_CODE, TYPE_CODE_MEMBERPTR, TYPE_CODE_METHOD, TYPE_CODE_METHODPTR, TYPE_MAIN_TYPE, TYPE_SPECIFIC_FIELD, TYPE_SPECIFIC_FUNC, TYPE_SPECIFIC_NONE, and TYPE_SPECIFIC_SELF_TYPE.

Referenced by copy_type_recursive(), read_member_functions(), smash_to_memberptr_type(), smash_to_method_type(), and smash_to_methodptr_type().

## ◆ set_type_vptr_basetype()

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

Definition at line 1817 of file gdbtypes.c.

References ALLOCATE_CPLUS_STRUCT_TYPE, check_typedef(), gdb_assert, HAVE_CPLUS_STRUCT, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_RAW_CPLUS_SPECIFIC.

Referenced by get_vptr_fieldno(), process_structure_scope(), and read_tilde_fields().

## ◆ set_type_vptr_fieldno()

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

Definition at line 1791 of file gdbtypes.c.

References ALLOCATE_CPLUS_STRUCT_TYPE, check_typedef(), gdb_assert, HAVE_CPLUS_STRUCT, TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_RAW_CPLUS_SPECIFIC.

Referenced by allocate_cplus_struct_type(), get_vptr_fieldno(), process_structure_scope(), and read_tilde_fields().

## ◆ show_opaque_type_resolution()

static void show_opaque_type_resolution | ( | struct ui_file * | file,
|  | int | from_tty,
|  | struct cmd_list_element * | c,
|  | const char * | value
| ) |  |
| static

Definition at line 133 of file gdbtypes.c.

References _, and fprintf_filtered().

Referenced by _initialize_gdbtypes().

## ◆ show_overload_debug()

static void show_overload_debug | ( | struct ui_file * | file,
|  | int | from_tty,
|  | struct cmd_list_element * | c,
|  | const char * | value
| ) |  |
| static

Definition at line 145 of file gdbtypes.c.

References _, and fprintf_filtered().

Referenced by _initialize_gdbtypes().

## ◆ show_strict_type_checking()

static void show_strict_type_checking | ( | struct ui_file * | file,
|  | int | from_tty,
|  | struct cmd_list_element * | c,
|  | const char * | value
| ) |  |
| static

Definition at line 155 of file gdbtypes.c.

References _, and fprintf_filtered().

Referenced by _initialize_gdbtypes().

## ◆ smash_to_memberptr_type()

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

Definition at line 1410 of file gdbtypes.c.

References gdbarch_ptr_bit(), get_type_arch(), set_type_self_type(), smash_type(), TARGET_CHAR_BIT, TYPE_CODE, TYPE_CODE_MEMBERPTR, TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by lookup_memberptr_type(), and read_type().

## ◆ 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
| ) |  |

Definition at line 1447 of file gdbtypes.c.

References set_type_self_type(), smash_type(), TYPE_CODE, TYPE_CODE_METHOD, TYPE_FIELDS, TYPE_LENGTH, TYPE_NFIELDS, TYPE_TARGET_TYPE, and TYPE_VARARGS.

Referenced by check_stub_method(), dwarf2_add_member_fn(), quirk_gcc_member_function_pointer(), read_tag_ptr_to_member_type(), and read_type().

## ◆ smash_to_methodptr_type()

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

Definition at line 1430 of file gdbtypes.c.

References cplus_method_ptr_size(), set_type_self_type(), smash_type(), TYPE_CODE, TYPE_CODE_METHODPTR, TYPE_LENGTH, TYPE_SELF_TYPE, and TYPE_TARGET_TYPE.

Referenced by lookup_methodptr_type(), and quirk_gcc_member_function_pointer().

## ◆ smash_type()

static void smash_type | ( | struct type * | type | ) |
| static

Definition at line 296 of file gdbtypes.c.

References memset(), type, TYPE_CHAIN, TYPE_MAIN_TYPE, TYPE_OBJFILE_OWNED, and TYPE_OWNER.

Referenced by make_function_type(), make_pointer_type(), make_reference_type(), smash_to_memberptr_type(), smash_to_method_type(), and smash_to_methodptr_type().

## ◆ stub_noname_complaint()

static void stub_noname_complaint | ( | void |  | ) |
| static

Definition at line 1884 of file gdbtypes.c.

References _, complaint, and symfile_complaints.

Referenced by check_typedef().

## ◆ sum_ranks()

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

Definition at line 3270 of file gdbtypes.c.

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

Referenced by rank_one_type().

## ◆ type_length_units()

unsigned int type_length_units | ( | struct type * | type | ) |

Definition at line 260 of file gdbtypes.c.

References gdbarch_addressable_memory_unit_size(), get_type_arch(), and TYPE_LENGTH.

Referenced by find_size_for_pointer_math(), generic_val_print_complex(), read_frame_register_value(), val_print_array_elements(), value_array(), value_assign(), value_fetch_lazy(), value_from_component(), value_primitive_field(), value_ptrdiff(), value_repeat(), value_slice(), and value_subscripted_rvalue().

## ◆ type_name_no_tag()

const char* type_name_no_tag | ( | const struct type * | type | ) |

Definition at line 1466 of file gdbtypes.c.

References TYPE_NAME, and TYPE_TAG_NAME.

Referenced by ada_is_exception_sym(), ada_prefer_type(), add_struct_fields(), c_type_print_base_struct_union(), c_type_print_varspec_prefix(), check_typedef(), cp_is_vtbl_ptr_type(), cp_lookup_nested_symbol(), cp_print_class_member(), cp_print_value_fields(), cp_type_print_derivation_info(), define_symbol(), dwarf2_add_field(), find_methods(), gdb_mangle_name(), lookup_struct_elt_type(), parse_old_style_renaming(), pascal_object_is_vtbl_ptr_type(), pascal_object_print_value(), pascal_object_print_value_fields(), pascal_type_print_derivation_info(), print_subexp_standard(), read_baseclasses(), read_cpp_abbrev(), type_name_no_tag_or_error(), value_cast_structs(), and xget_renaming_scope().

## ◆ type_name_no_tag_or_error()

const char* type_name_no_tag_or_error | ( | struct type * | type | ) |

Definition at line 1485 of file gdbtypes.c.

References _, check_typedef(), error(), name, objfile::objfile(), objfile_name(), type, type_name_no_tag(), and TYPE_OBJFILE.

Referenced by cp_lookup_nested_symbol(), d_lookup_nested_symbol(), and destructor_name_p().

## ◆ type_not_allocated()

int type_not_allocated | ( | const struct type * | type | ) |

Definition at line 3714 of file gdbtypes.c.

References PROP_CONST, TYPE_ALLOCATED_PROP, TYPE_DYN_PROP_ADDR, and TYPE_DYN_PROP_KIND.

Referenced by create_array_type_with_stride(), f_print_type(), f_type_print_varspec_suffix(), valprint_check_validity(), value_check_printable(), and value_subscripted_rvalue().

## ◆ type_not_associated()

int type_not_associated | ( | const struct type * | type | ) |

Definition at line 3726 of file gdbtypes.c.

References PROP_CONST, TYPE_ASSOCIATED_PROP, TYPE_DYN_PROP_ADDR, and TYPE_DYN_PROP_KIND.

Referenced by create_array_type_with_stride(), f_print_type(), f_type_print_varspec_suffix(), valprint_check_validity(), value_check_printable(), and value_subscripted_rvalue().

## ◆ type_pair_eq()

static int type_pair_eq | ( | const void * | item_lhs,
|  | const void * | item_rhs
| ) |  |
| static

Definition at line 4711 of file gdbtypes.c.

References type_pair::old.

Referenced by create_copied_types_hash().

## ◆ type_pair_hash()

static hashval_t type_pair_hash | ( | const void * | item | ) |
| static

Definition at line 4703 of file gdbtypes.c.

References type_pair::old.

Referenced by create_copied_types_hash().

## ◆ types_deeply_equal()

int types_deeply_equal | ( | struct type * | type1,
|  | struct type * | type2
| ) |  |

Definition at line 3666 of file gdbtypes.c.

References bcache_xfree(), bcache_xmalloc(), bcache::cache, CATCH, check_types_worklist(), END_CATCH, exception_none, gdb_assert, gdb_exception::reason, RETURN_MASK_ALL, throw_exception(), TRY, type_equality_entry::type1, type_equality_entry::type2, VEC, VEC_free, and VEC_safe_push.

Referenced by compile_object_load(), get_out_value_type(), typy_richcompare(), and tyscm_equal_p_type_smob().

## ◆ types_equal()

int types_equal | ( | struct type * | a,
|  | struct type * | b
| ) |  |

Definition at line 3431 of file gdbtypes.c.

References check_typedef(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_PTR, TYPE_CODE_REF, TYPE_CODE_TYPEDEF, TYPE_FIELD_TYPE, TYPE_NAME, TYPE_NFIELDS, TYPE_TARGET_TYPE, and types_equal().

Referenced by eq_typedef_field(), gdbpy_get_xmethod_result_type(), gdbpy_invoke_xmethod(), rank_one_type(), rust_range(), types_equal(), value_has_field(), and value_struct_elt_bitpos().

## ◆ verify_floatformat()

static int verify_floatformat | ( | int | bit,
|  | const struct floatformat * | floatformat
| ) |  |
| static

Definition at line 2840 of file gdbtypes.c.

References bit, and gdb_assert.

Referenced by arch_float_type(), and init_float_type().

## Variable Documentation

## ◆ BASE_CONVERSION_BADNESS

const struct rank BASE_CONVERSION_BADNESS = {2,0}

Badness of converting derived to base class.

Definition at line 61 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ BASE_PTR_CONVERSION_BADNESS

const struct rank BASE_PTR_CONVERSION_BADNESS = {1,0}

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

Definition at line 54 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ BOOL_CONVERSION_BADNESS

const struct rank BOOL_CONVERSION_BADNESS = {3,0}

Badness of conversion to boolean.

Definition at line 60 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ cplus_struct_default

const struct cplus_struct_type cplus_struct_default = { }

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

Definition at line 2779 of file gdbtypes.c.

Referenced by allocate_cplus_struct_type().

## ◆ CV_CONVERSION_BADNESS

const struct rank CV_CONVERSION_BADNESS = {1, 0}

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

Definition at line 55 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ dont_print_type_obstack

struct obstack dont_print_type_obstack
| static

Definition at line 4377 of file gdbtypes.c.

Referenced by recursive_dump_type().

## ◆ EXACT_MATCH_BADNESS

const struct rank EXACT_MATCH_BADNESS = {0,0}

Badness of an exact match.

Definition at line 50 of file gdbtypes.c.

Referenced by compare_parameters(), rank_function(), and rank_one_type().

## ◆ FLOAT_CONVERSION_BADNESS

const struct rank FLOAT_CONVERSION_BADNESS = {2,0}

Badness of floating conversion.

Definition at line 57 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ FLOAT_PROMOTION_BADNESS

const struct rank FLOAT_PROMOTION_BADNESS = {1,0}

Badness of floating promotion.

Definition at line 53 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ floatformats_arm_ext

const struct floatformat* floatformats_arm_ext[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_arm_ext_big,
&floatformat_arm_ext_littlebyte_bigword
}

Definition at line 92 of file gdbtypes.c.

Referenced by arm_ext_type(), and tdesc_type_builtin::make_gdb_type().

## ◆ floatformats_i387_ext

const struct floatformat* floatformats_i387_ext[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_i387_ext,
&floatformat_i387_ext
}

Definition at line 84 of file gdbtypes.c.

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

## ◆ floatformats_ia64_quad

const struct floatformat* floatformats_ia64_quad[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_ia64_quad_big,
&floatformat_ia64_quad_little
}

Definition at line 100 of file gdbtypes.c.

Referenced by aarch64_gdbarch_init(), hppa_gdbarch_init(), i386_floatformat_for_type(), ia64_openvms_init_abi(), mips_linux_init_abi(), ppc_floatformat_for_type(), ppc_linux_init_abi(), and s390_gdbarch_init().

## ◆ floatformats_ia64_spill

const struct floatformat* floatformats_ia64_spill[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_ia64_spill_big,
&floatformat_ia64_spill_little
}

Definition at line 96 of file gdbtypes.c.

## ◆ floatformats_ibm_long_double

const struct floatformat* floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_ibm_long_double_big,
&floatformat_ibm_long_double_little
}

Definition at line 112 of file gdbtypes.c.

Referenced by do_ppc_sysv_return_value(), mips_gdbarch_init(), ppc64_sysv_abi_push_freg(), ppc64_sysv_abi_return_value_base(), ppc_floatformat_for_type(), ppc_linux_init_abi(), and ppc_sysv_abi_push_dummy_call().

## ◆ floatformats_ieee_double

const struct floatformat* floatformats_ieee_double[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_ieee_double_big,
&floatformat_ieee_double_little
}

Definition at line 76 of file gdbtypes.c.

Referenced by aarch64_gdbarch_init(), arc_gdbarch_init(), arm_gdbarch_init(), build_go_types(), build_opencl_types(), hppa_linux_init_abi(), hppabsd_init_abi(), iq2000_gdbarch_init(), m68hc11_gdbarch_init(), m68k_gdbarch_init(), m88k_gdbarch_init(), tdesc_type_builtin::make_gdb_type(), msp430_gdbarch_init(), mt_gdbarch_init(), nios2_gdbarch_init(), or1k_gdbarch_init(), ppcfbsd_init_abi(), ppcobsd_init_abi(), rl78_gdbarch_init(), rs6000_builtin_type(), rust_language_arch_info(), rx_gdbarch_init(), sparc32nbsd_init_abi(), spu_gdbarch_init(), tic6x_gdbarch_init(), and verify_gdbarch().

## ◆ floatformats_ieee_double_littlebyte_bigword

const struct floatformat* floatformats_ieee_double_littlebyte_bigword[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_ieee_double_big,
&floatformat_ieee_double_littlebyte_bigword
}

Definition at line 80 of file gdbtypes.c.

Referenced by arm_gdbarch_init(), sh64_littlebyte_bigword_type(), and sh_littlebyte_bigword_type().

## ◆ floatformats_ieee_half

const struct floatformat* floatformats_ieee_half[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_ieee_half_big,
&floatformat_ieee_half_little
}

Definition at line 68 of file gdbtypes.c.

Referenced by build_opencl_types(), and verify_gdbarch().

## ◆ floatformats_ieee_single

const struct floatformat* floatformats_ieee_single[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_ieee_single_big,
&floatformat_ieee_single_little
}

Definition at line 72 of file gdbtypes.c.

Referenced by aarch64_gdbarch_init(), arc_gdbarch_init(), arm_gdbarch_init(), avr_gdbarch_init(), BP_MANIPULATION(), build_go_types(), build_opencl_types(), iq2000_gdbarch_init(), m68hc11_gdbarch_init(), tdesc_type_builtin::make_gdb_type(), msp430_gdbarch_init(), mt_gdbarch_init(), nds32_pseudo_register_type(), nios2_gdbarch_init(), or1k_gdbarch_init(), rl78_gdbarch_init(), rs6000_builtin_type(), rust_language_arch_info(), rx_gdbarch_init(), sh_gdbarch_init(), spu_gdbarch_init(), tic6x_gdbarch_init(), and verify_gdbarch().

## ◆ floatformats_m68881_ext

const struct floatformat* floatformats_m68881_ext[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_m68881_ext,
&floatformat_m68881_ext
}

Definition at line 88 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]

Initial value:
= {
&floatformat_vax_d,
&floatformat_vax_d
}

Definition at line 108 of file gdbtypes.c.

Referenced by vax_gdbarch_init().

## ◆ floatformats_vax_f

const struct floatformat* floatformats_vax_f[BFD_ENDIAN_UNKNOWN]

Initial value:
= {
&floatformat_vax_f,
&floatformat_vax_f
}

Definition at line 104 of file gdbtypes.c.

Referenced by vax_gdbarch_init().

## ◆ gdbtypes_data

struct gdbarch_data* gdbtypes_data
| static

Definition at line 5214 of file gdbtypes.c.

Referenced by _initialize_gdbtypes(), and builtin_type().

## ◆ gnat_aux_default

const struct gnat_aux_type gnat_aux_default

Initial value:
=
{ NULL }

Definition at line 2795 of file gdbtypes.c.

Referenced by allocate_gnat_aux_type().

## ◆ INCOMPATIBLE_TYPE_BADNESS

const struct rank INCOMPATIBLE_TYPE_BADNESS = {100,0}

Badness if no conversion among types.

Definition at line 48 of file gdbtypes.c.

Referenced by classify_oload_match(), and rank_one_type().

## ◆ INT_FLOAT_CONVERSION_BADNESS

const struct rank INT_FLOAT_CONVERSION_BADNESS = {2,0}

Badness of integer<->floating conversions.

Definition at line 58 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ INTEGER_CONVERSION_BADNESS

const struct rank INTEGER_CONVERSION_BADNESS = {2,0}

Badness of integral conversion.

Definition at line 56 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ INTEGER_PROMOTION_BADNESS

const struct rank INTEGER_PROMOTION_BADNESS = {1,0}

Badness of integral promotion.

Definition at line 52 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ LENGTH_MISMATCH_BADNESS

const struct rank LENGTH_MISMATCH_BADNESS = {100,0}

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

Definition at line 45 of file gdbtypes.c.

Referenced by rank_function().

## ◆ NS_INTEGER_POINTER_CONVERSION_BADNESS

const struct rank NS_INTEGER_POINTER_CONVERSION_BADNESS = {3,0}

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

Definition at line 65 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ NS_POINTER_CONVERSION_BADNESS

const struct rank NS_POINTER_CONVERSION_BADNESS = {10,0}

Converting a pointer to an int is usually OK.

Definition at line 64 of file gdbtypes.c.

Referenced by classify_oload_match(), and rank_one_type().

## ◆ NULL_POINTER_CONVERSION_BADNESS

const struct rank NULL_POINTER_CONVERSION_BADNESS = {2,0}

Definition at line 63 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ objfile_type_data

const struct objfile_data* objfile_type_data
| static

Definition at line 5360 of file gdbtypes.c.

Referenced by _initialize_gdbtypes(), and objfile_type().

## ◆ opaque_type_resolution

int opaque_type_resolution = 1
| static

Definition at line 119 of file gdbtypes.c.

Referenced by _initialize_gdbtypes(), and check_typedef().

## ◆ overload_debug

unsigned int overload_debug = 0

Definition at line 124 of file gdbtypes.c.

Referenced by _initialize_gdbtypes(), find_oload_champ(), and rank_one_type().

## ◆ REFERENCE_CONVERSION_BADNESS

const struct rank REFERENCE_CONVERSION_BADNESS = {2,0}

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

Definition at line 62 of file gdbtypes.c.

Referenced by rank_one_type().

## ◆ strict_type_checking

int strict_type_checking = 1
| static

Definition at line 128 of file gdbtypes.c.

Referenced by _initialize_gdbtypes(), and rank_one_type().

## ◆ TOO_FEW_PARAMS_BADNESS

const struct rank TOO_FEW_PARAMS_BADNESS = {100,0}

Dummy badness value for nonexistent parameter positions.

Definition at line 47 of file gdbtypes.c.

Referenced by rank_function().

## ◆ VOID_PTR_CONVERSION_BADNESS

const struct rank VOID_PTR_CONVERSION_BADNESS = {2,0}

Badness of conversion of pointer to void pointer.

Definition at line 59 of file gdbtypes.c.

Referenced by rank_one_type().