GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions | Variables
/tmp/gdb-13.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 "dwarf2/loc.h"
#include "dwarf2/read.h"
#include "gdbcore.h"
#include "floatformat.h"
#include "f-lang.h"
#include <algorithm>
#include "gmp-utils.h"

Go to the source code of this file.

Classes

struct  type_equality_entry
 
struct  type_pair
 

Macros

#define INVALID_CONVERSION   100
 
#define FIELD_EQ(FIELD)   (l.FIELD == r.FIELD)
 

Typedefs

typedef std::vector< std::unique_ptr< fixed_point_type_info > > fixed_point_type_storage
 

Functions

static struct dynamic_prop_listcopy_dynamic_prop_list (struct obstack *, struct dynamic_prop_list *)
 
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 typealloc_type (struct objfile *objfile)
 
struct typealloc_type_arch (struct gdbarch *gdbarch)
 
struct typealloc_type_copy (const struct type *type)
 
struct typeget_target_type (struct type *type)
 
unsigned int type_length_units (struct type *type)
 
static struct typealloc_type_instance (struct type *oldtype)
 
static void smash_type (struct type *type)
 
struct typemake_pointer_type (struct type *type, struct type **typeptr)
 
struct typelookup_pointer_type (struct type *type)
 
struct typemake_reference_type (struct type *type, struct type **typeptr, enum type_code refcode)
 
struct typelookup_reference_type (struct type *type, enum type_code refcode)
 
struct typelookup_lvalue_reference_type (struct type *type)
 
struct typelookup_rvalue_reference_type (struct type *type)
 
struct typemake_function_type (struct type *type, struct type **typeptr)
 
struct typelookup_function_type (struct type *type)
 
struct typelookup_function_type_with_arguments (struct type *type, int nparams, struct type **param_types)
 
type_instance_flags address_space_name_to_type_instance_flags (struct gdbarch *gdbarch, const char *space_identifier)
 
const char * address_space_type_instance_flags_to_name (struct gdbarch *gdbarch, type_instance_flags space_flag)
 
static struct typemake_qualified_type (struct type *type, type_instance_flags new_flags, struct type *storage)
 
struct typemake_type_with_address_space (struct type *type, type_instance_flags space_flag)
 
struct typemake_cv_type (int cnst, int voltl, struct type *type, struct type **typeptr)
 
struct typemake_restrict_type (struct type *type)
 
struct typemake_unqualified_type (struct type *type)
 
struct typemake_atomic_type (struct type *type)
 
void replace_type (struct type *ntype, struct type *type)
 
struct typelookup_memberptr_type (struct type *type, struct type *domain)
 
struct typelookup_methodptr_type (struct type *to_type)
 
struct typeallocate_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 typecreate_range_type (struct type *result_type, struct type *index_type, const struct dynamic_prop *low_bound, const struct dynamic_prop *high_bound, LONGEST bias)
 
struct typecreate_range_type_with_stride (struct type *result_type, struct type *index_type, const struct dynamic_prop *low_bound, const struct dynamic_prop *high_bound, LONGEST bias, const struct dynamic_prop *stride, bool byte_stride_p)
 
struct typecreate_static_range_type (struct type *result_type, struct type *index_type, LONGEST low_bound, LONGEST high_bound)
 
static bool has_static_range (const struct range_bounds *bounds)
 
gdb::optional< LONGEST > get_discrete_low_bound (struct type *type)
 
gdb::optional< LONGEST > get_discrete_high_bound (struct type *type)
 
bool get_discrete_bounds (struct type *type, LONGEST *lowp, LONGEST *highp)
 
bool get_array_bounds (struct type *type, LONGEST *low_bound, LONGEST *high_bound)
 
gdb::optional< LONGEST > discrete_position (struct type *type, LONGEST val)
 
static bool update_static_array_size (struct type *type)
 
struct typecreate_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 typecreate_array_type (struct type *result_type, struct type *element_type, struct type *range_type)
 
struct typelookup_array_range_type (struct type *element_type, LONGEST low_bound, LONGEST high_bound)
 
struct typecreate_string_type (struct type *result_type, struct type *string_char_type, struct type *range_type)
 
struct typelookup_string_range_type (struct type *string_char_type, LONGEST low_bound, LONGEST high_bound)
 
struct typecreate_set_type (struct type *result_type, struct type *domain_type)
 
void make_vector_type (struct type *array_type)
 
struct typeinit_vector_type (struct type *elt_type, int n)
 
struct typeinternal_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_or_error (struct type *type)
 
struct typelookup_typename (const struct language_defn *language, const char *name, const struct block *block, int noerr)
 
struct typelookup_unsigned_typename (const struct language_defn *language, const char *name)
 
struct typelookup_signed_typename (const struct language_defn *language, const char *name)
 
struct typelookup_struct (const char *name, const struct block *block)
 
struct typelookup_union (const char *name, const struct block *block)
 
struct typelookup_enum (const char *name, const struct block *block)
 
struct typelookup_template_type (const char *name, struct type *type, const struct block *block)
 
struct_elt lookup_struct_elt (struct type *type, const char *name, int noerr)
 
struct typelookup_struct_elt_type (struct type *type, const char *name, int noerr)
 
ULONGEST get_unsigned_type_max (struct type *type)
 
void get_signed_type_minmax (struct type *type, LONGEST *min, LONGEST *max)
 
CORE_ADDR get_pointer_type_max (struct type *type)
 
int internal_type_vptr_fieldno (struct type *type)
 
void set_type_vptr_fieldno (struct type *type, int fieldno)
 
struct typeinternal_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 typeresolve_dynamic_type_internal (struct type *type, struct property_addr_info *addr_stack, int top_level)
 
static struct typeresolve_dynamic_range (struct type *dyn_range_type, struct property_addr_info *addr_stack, int rank, bool resolve_p=true)
 
static struct typeresolve_dynamic_array_or_string_1 (struct type *type, struct property_addr_info *addr_stack, int rank, bool resolve_p)
 
static struct typeresolve_dynamic_array_or_string (struct type *type, struct property_addr_info *addr_stack)
 
static struct typeresolve_dynamic_union (struct type *type, struct property_addr_info *addr_stack)
 
static void compute_variant_fields_inner (struct type *type, struct property_addr_info *addr_stack, const variant_part &part, std::vector< bool > &flags)
 
static void compute_variant_fields_recurse (struct type *type, struct property_addr_info *addr_stack, const variant &variant, std::vector< bool > &flags, bool enabled)
 
static void compute_variant_fields (struct type *type, struct type *resolved_type, struct property_addr_info *addr_stack, const gdb::array_view< variant_part > &parts)
 
static struct typeresolve_dynamic_struct (struct type *type, struct property_addr_info *addr_stack)
 
struct typeresolve_dynamic_type (struct type *type, gdb::array_view< const gdb_byte > valaddr, CORE_ADDR addr)
 
struct typecheck_typedef (struct type *type)
 
static struct typesafe_parse_type (struct gdbarch *gdbarch, const 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 typeinit_type (struct objfile *objfile, enum type_code code, int bit, const char *name)
 
static struct typeinit_nodebug_var_type (struct objfile *objfile, const char *name)
 
struct typeinit_integer_type (struct objfile *objfile, int bit, int unsigned_p, const char *name)
 
struct typeinit_character_type (struct objfile *objfile, int bit, int unsigned_p, const char *name)
 
struct typeinit_boolean_type (struct objfile *objfile, int bit, int unsigned_p, const char *name)
 
struct typeinit_float_type (struct objfile *objfile, int bit, const char *name, const struct floatformat **floatformats, enum bfd_endian byte_order)
 
struct typeinit_decfloat_type (struct objfile *objfile, int bit, const char *name)
 
bool can_create_complex_type (struct type *target_type)
 
struct typeinit_complex_type (const char *name, struct type *target_type)
 
struct typeinit_pointer_type (struct objfile *objfile, int bit, const char *name, struct type *target_type)
 
struct typeinit_fixed_point_type (struct objfile *objfile, int bit, int unsigned_p, const char *name)
 
unsigned type_raw_align (struct type *type)
 
unsigned type_align (struct type *type)
 
bool set_type_align (struct type *type, ULONGEST align)
 
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)
 
enum bfd_endian type_byte_order (const struct type *type)
 
bool is_nocall_function (const struct type *type)
 
struct rank sum_ranks (struct rank a, struct rank b)
 
int compare_ranks (struct rank a, struct rank b)
 
int compare_badness (const badness_vector &a, const badness_vector &b)
 
badness_vector rank_function (gdb::array_view< type * > parms, gdb::array_view< value * > args)
 
static int integer_types_same_name_p (const char *first, const char *second)
 
bool types_equal (struct type *a, struct type *b)
 
static bool compare_maybe_null_strings (const char *s, const char *t)
 
static bool check_types_equal (struct type *type1, struct type *type2, std::vector< type_equality_entry > *worklist)
 
static bool check_types_worklist (std::vector< type_equality_entry > *worklist, gdb::bcache *cache)
 
bool 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)
 
static struct rank rank_one_type_parm_ptr (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_array (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_func (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_int (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_enum (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_char (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_range (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_bool (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_float (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_complex (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_struct (struct type *parm, struct type *arg, struct value *value)
 
static struct rank rank_one_type_parm_set (struct type *parm, struct type *arg, struct value *value)
 
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)
 
static void print_fixed_point_type_info (struct type *type, int spaces)
 
static void dump_dynamic_prop (dynamic_prop const &prop)
 
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_up create_copied_types_hash ()
 
struct typecopy_type_recursive (struct type *type, htab_t copied_types)
 
struct typecopy_type (const struct type *type)
 
struct typearch_type (struct gdbarch *gdbarch, enum type_code code, int bit, const char *name)
 
struct typearch_integer_type (struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
 
struct typearch_character_type (struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
 
struct typearch_boolean_type (struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
 
struct typearch_float_type (struct gdbarch *gdbarch, int bit, const char *name, const struct floatformat **floatformats)
 
struct typearch_decfloat_type (struct gdbarch *gdbarch, int bit, const char *name)
 
struct typearch_pointer_type (struct gdbarch *gdbarch, int bit, const char *name, struct type *target_type)
 
struct typearch_flags_type (struct gdbarch *gdbarch, const char *name, int bit)
 
void append_flags_type_field (struct type *type, int start_bitpos, int nr_bits, struct type *field_type, const char *name)
 
void append_flags_type_flag (struct type *type, int bitpos, const char *name)
 
struct typearch_composite_type (struct gdbarch *gdbarch, const char *name, enum type_code code)
 
struct fieldappend_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)
 
void allocate_fixed_point_type_info (struct type *type)
 
bool is_fixed_point_type (struct type *type)
 
static struct builtin_typecreate_gdbtypes_data (struct gdbarch *gdbarch)
 
const struct builtin_typebuiltin_type (struct gdbarch *gdbarch)
 
const struct objfile_typeobjfile_type (struct objfile *objfile)
 
void _initialize_gdbtypes ()
 

Variables

const struct rank LENGTH_MISMATCH_BADNESS = {INVALID_CONVERSION,0}
 
const struct rank TOO_FEW_PARAMS_BADNESS = {INVALID_CONVERSION,0}
 
const struct rank INCOMPATIBLE_TYPE_BADNESS = {INVALID_CONVERSION,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 REFERENCE_SEE_THROUGH_BADNESS = {0,1}
 
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_quad [BFD_ENDIAN_UNKNOWN]
 
const struct floatformat * floatformats_ieee_double_littlebyte_bigword [BFD_ENDIAN_UNKNOWN]
 
const struct floatformat * floatformats_i387_ext [BFD_ENDIAN_UNKNOWN]
 
const struct floatformat * floatformats_m68881_ext [BFD_ENDIAN_UNKNOWN]
 
const struct floatformat * floatformats_arm_ext [BFD_ENDIAN_UNKNOWN]
 
const struct floatformat * floatformats_ia64_spill [BFD_ENDIAN_UNKNOWN]
 
const struct floatformat * floatformats_vax_f [BFD_ENDIAN_UNKNOWN]
 
const struct floatformat * floatformats_vax_d [BFD_ENDIAN_UNKNOWN]
 
const struct floatformat * floatformats_ibm_long_double [BFD_ENDIAN_UNKNOWN]
 
const struct floatformat * floatformats_bfloat16 [BFD_ENDIAN_UNKNOWN]
 
static bool opaque_type_resolution = true
 
unsigned int overload_debug = 0
 
static bool strict_type_checking = true
 
const struct cplus_struct_type cplus_struct_default = { }
 
const struct gnat_aux_type gnat_aux_default
 
static struct obstack dont_print_type_obstack
 
static const struct registry< objfile >::key< fixed_point_type_storagefixed_point_objfile_key
 
static const registry< gdbarch >::key< struct builtin_typegdbtypes_data
 
static const registry< objfile >::key< struct objfile_type, gdb::noop_deleter< struct objfile_type > > objfile_type_data
 

Macro Definition Documentation

◆ FIELD_EQ

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

◆ INVALID_CONVERSION

#define INVALID_CONVERSION   100

Definition at line 48 of file gdbtypes.c.

Typedef Documentation

◆ fixed_point_type_storage

typedef std::vector<std::unique_ptr<fixed_point_type_info> > fixed_point_type_storage

Definition at line 6080 of file gdbtypes.c.

Function Documentation

◆ _initialize_gdbtypes()

void _initialize_gdbtypes ( )

Definition at line 6447 of file gdbtypes.c.

Referenced by initialize_all_files().

◆ address_space_name_to_type_instance_flags()

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

◆ address_space_type_instance_flags_to_name()

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

◆ alloc_type()

struct type * alloc_type ( struct objfile objfile)

◆ alloc_type_arch()

struct type * alloc_type_arch ( struct gdbarch gdbarch)

◆ alloc_type_copy()

struct type * alloc_type_copy ( const struct type type)

◆ alloc_type_instance()

static struct type * alloc_type_instance ( struct type oldtype)
static

◆ allocate_cplus_struct_type()

void allocate_cplus_struct_type ( struct type type)

◆ allocate_fixed_point_type_info()

void allocate_fixed_point_type_info ( struct type type)

◆ allocate_gnat_aux_type()

void allocate_gnat_aux_type ( struct type type)

◆ allocate_stub_method()

struct type * allocate_stub_method ( struct type type)

◆ append_composite_type_field()

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

◆ append_composite_type_field_aligned()

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

◆ append_composite_type_field_raw()

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

◆ append_flags_type_field()

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

◆ append_flags_type_flag()

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

◆ arch_boolean_type()

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

◆ arch_character_type()

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

◆ arch_composite_type()

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

◆ arch_decfloat_type()

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

Definition at line 5906 of file gdbtypes.c.

References arch_type(), bit, and name.

Referenced by create_gdbtypes_data().

◆ arch_flags_type()

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

◆ arch_float_type()

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

◆ arch_integer_type()

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

◆ arch_pointer_type()

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

◆ arch_type()

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

◆ array_type_has_dynamic_stride()

static int array_type_has_dynamic_stride ( struct type type)
static

◆ builtin_type()

const struct builtin_type * builtin_type ( struct gdbarch gdbarch)

Return the type table for the specified architecture.

Definition at line 6301 of file gdbtypes.c.

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

◆ can_create_complex_type()

bool can_create_complex_type ( struct type target_type)

Definition at line 3556 of file gdbtypes.c.

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

Referenced by complex_binop(), and init_complex_type().

◆ can_dereference()

int can_dereference ( struct type t)

Definition at line 3760 of file gdbtypes.c.

References check_typedef(), type::code(), 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

◆ check_stub_method_group()

void check_stub_method_group ( struct type type,
int  method_id 
)

◆ check_typedef()

struct type * check_typedef ( struct type type)

Definition at line 3010 of file gdbtypes.c.

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

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

◆ check_types_equal()

static bool check_types_equal ( struct type type1,
struct type type2,
std::vector< type_equality_entry > *  worklist 
)
static

◆ check_types_worklist()

static bool check_types_worklist ( std::vector< type_equality_entry > *  worklist,
gdb::bcache cache 
)
static

◆ class_or_union_p()

int class_or_union_p ( const struct type t)

Definition at line 3865 of file gdbtypes.c.

References type::code().

Referenced by call_function_by_hand_dummy(), and get_call_return_value().

◆ class_types_same_p()

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

◆ compare_badness()

int compare_badness ( const badness_vector a,
const badness_vector b 
)

Definition at line 4094 of file gdbtypes.c.

References compare_ranks(), and INVALID_CONVERSION.

Referenced by find_oload_champ(), and find_overload_match().

◆ compare_maybe_null_strings()

static bool compare_maybe_null_strings ( const char *  s,
const char *  t 
)
static

Definition at line 4314 of file gdbtypes.c.

Referenced by check_types_equal().

◆ compare_ranks()

int compare_ranks ( struct rank  a,
struct rank  b 
)

Definition at line 4066 of file gdbtypes.c.

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

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

◆ compute_variant_fields()

static void compute_variant_fields ( struct type type,
struct type resolved_type,
struct property_addr_info addr_stack,
const gdb::array_view< variant_part > &  parts 
)
static

◆ compute_variant_fields_inner()

static void compute_variant_fields_inner ( struct type type,
struct property_addr_info addr_stack,
const variant_part part,
std::vector< bool > &  flags 
)
static

◆ compute_variant_fields_recurse()

static void compute_variant_fields_recurse ( struct type type,
struct property_addr_info addr_stack,
const variant variant,
std::vector< bool > &  flags,
bool  enabled 
)
static

◆ copy_dynamic_prop_list()

static struct dynamic_prop_list * copy_dynamic_prop_list ( struct obstack *  storage,
struct dynamic_prop_list list 
)
static

◆ copy_type()

struct type * copy_type ( const struct type type)

◆ copy_type_recursive()

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

Definition at line 5634 of file gdbtypes.c.

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

Referenced by copy_type_recursive(), create_copied_type_recursive(), typy_deleter::operator()(), preserve_one_internalvar(), preserve_one_value(), preserve_one_varobj(), 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 
)

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

◆ create_copied_types_hash()

htab_up create_copied_types_hash ( )

◆ create_gdbtypes_data()

static struct builtin_type * create_gdbtypes_data ( struct gdbarch gdbarch)
static

Definition at line 6155 of file gdbtypes.c.

References arch_boolean_type(), arch_character_type(), arch_decfloat_type(), arch_float_type(), arch_integer_type(), arch_type(), builtin_type::builtin_bfloat16, 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_half, builtin_type::builtin_int, builtin_type::builtin_int0, builtin_type::builtin_int128, builtin_type::builtin_int16, builtin_type::builtin_int24, 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_uint128, builtin_type::builtin_uint16, builtin_type::builtin_uint24, 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_bfloat16_bit(), gdbarch_bfloat16_format(), gdbarch_char_signed(), gdbarch_double_bit(), gdbarch_double_format(), gdbarch_float_bit(), gdbarch_float_format(), gdbarch_half_bit(), gdbarch_half_format(), gdbarch_int_bit(), gdbarch_long_bit(), gdbarch_long_double_bit(), gdbarch_long_double_format(), gdbarch_long_long_bit(), gdbarch_short_bit(), gdbarch_wchar_bit(), gdbarch_wchar_signed(), init_complex_type(), type::instance_flags(), builtin_type::internal_fn, lookup_function_type(), lookup_pointer_type(), type::set_has_no_signedness(), type::set_instance_flags(), TYPE_INSTANCE_FLAG_NOTTEXT, and builtin_type::xmethod.

Referenced by builtin_type().

◆ 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,
LONGEST  bias 
)

◆ create_range_type_with_stride()

struct type * create_range_type_with_stride ( struct type result_type,
struct type index_type,
const struct dynamic_prop low_bound,
const struct dynamic_prop high_bound,
LONGEST  bias,
const struct dynamic_prop stride,
bool  byte_stride_p 
)

◆ create_set_type()

struct type * create_set_type ( struct type result_type,
struct type domain_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 
)

◆ create_string_type()

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

Definition at line 1461 of file gdbtypes.c.

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

Referenced by read_tag_string_type().

◆ discrete_position()

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

◆ distance_to_ancestor()

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

◆ dump_dynamic_prop()

static void dump_dynamic_prop ( dynamic_prop const &  prop)
static

◆ dump_fn_fieldlists()

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

◆ field_is_static()

int field_is_static ( struct field f)

◆ floatformat_from_type()

const struct floatformat * floatformat_from_type ( const struct type type)

◆ get_array_bounds()

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

◆ get_discrete_bounds()

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

◆ get_discrete_high_bound()

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

◆ get_discrete_low_bound()

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

◆ get_pointer_type_max()

CORE_ADDR get_pointer_type_max ( struct type type)

Definition at line 1942 of file gdbtypes.c.

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

Referenced by vlscm_convert_typed_number().

◆ get_signed_type_minmax()

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

◆ 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 265 of file gdbtypes.c.

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

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

◆ get_unsigned_type_max()

ULONGEST get_unsigned_type_max ( struct type type)

◆ get_vptr_fieldno()

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

◆ has_static_range()

static bool has_static_range ( const struct range_bounds bounds)
static

◆ init_boolean_type()

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

◆ init_character_type()

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

Definition at line 3480 of file gdbtypes.c.

References bit, init_type(), name, and type::set_is_unsigned().

Referenced by read_base_type(), and rs6000_builtin_type().

◆ init_complex_type()

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

◆ init_decfloat_type()

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

Definition at line 3545 of file gdbtypes.c.

References bit, init_type(), and name.

Referenced by read_base_type().

◆ init_fixed_point_type()

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

Definition at line 3620 of file gdbtypes.c.

References bit, init_type(), name, and type::set_is_unsigned().

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,
enum bfd_endian  byte_order 
)

◆ init_integer_type()

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

◆ init_nodebug_var_type()

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

Definition at line 3449 of file gdbtypes.c.

References init_type(), and name.

Referenced by objfile_type().

◆ init_pointer_type()

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

◆ init_type()

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

◆ init_vector_type()

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

◆ integer_types_same_name_p()

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

Definition at line 4195 of file gdbtypes.c.

Referenced by rank_one_type_parm_int().

◆ internal_type_self_type()

struct type * internal_type_self_type ( struct type type)

◆ internal_type_vptr_basetype()

struct type * internal_type_vptr_basetype ( struct type type)

◆ internal_type_vptr_fieldno()

int internal_type_vptr_fieldno ( struct type type)

Definition at line 1962 of file gdbtypes.c.

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

◆ is_ancestor()

int is_ancestor ( struct type base,
struct type dclass 
)

Definition at line 3936 of file gdbtypes.c.

References distance_to_ancestor().

Referenced by value_dynamic_cast().

◆ is_dynamic_type()

int is_dynamic_type ( struct type type)

◆ is_dynamic_type_internal()

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

◆ is_fixed_point_type()

bool is_fixed_point_type ( struct type type)

◆ is_floating_type()

int is_floating_type ( struct type t)

◆ is_integral_type()

int is_integral_type ( struct type t)

◆ is_nocall_function()

bool is_nocall_function ( const struct type type)

◆ is_public_ancestor()

int is_public_ancestor ( struct type base,
struct type dclass 
)

Definition at line 3945 of file gdbtypes.c.

References distance_to_ancestor().

Referenced by value_dynamic_cast().

◆ is_scalar_type()

int is_scalar_type ( struct type type)

◆ is_scalar_type_recursive()

int is_scalar_type_recursive ( struct type t)

◆ is_unique_ancestor()

int is_unique_ancestor ( struct type base,
struct value val 
)

◆ 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

◆ lookup_array_range_type()

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

◆ lookup_enum()

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

◆ lookup_function_type()

struct type * lookup_function_type ( struct type type)

◆ lookup_function_type_with_arguments()

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

◆ lookup_lvalue_reference_type()

struct type * lookup_lvalue_reference_type ( struct type type)

◆ lookup_memberptr_type()

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

◆ lookup_methodptr_type()

struct type * lookup_methodptr_type ( struct type to_type)

◆ lookup_pointer_type()

struct type * lookup_pointer_type ( struct type type)

Definition at line 402 of file gdbtypes.c.

References make_pointer_type().

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

◆ lookup_reference_type()

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

◆ lookup_rvalue_reference_type()

struct type * lookup_rvalue_reference_type ( struct type type)

Definition at line 498 of file gdbtypes.c.

References lookup_reference_type().

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

◆ lookup_signed_typename()

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

Definition at line 1730 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 1473 of file gdbtypes.c.

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

Referenced by value_string().

◆ lookup_struct()

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

◆ lookup_struct_elt()

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

◆ lookup_struct_elt_type()

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

◆ lookup_template_type()

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

Definition at line 1809 of file gdbtypes.c.

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

Referenced by yyparse().

◆ lookup_typename()

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

◆ lookup_union()

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

◆ lookup_unsigned_typename()

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

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

◆ make_cv_type()

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

◆ make_function_type()

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

◆ make_pointer_type()

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

◆ make_qualified_type()

static struct type * make_qualified_type ( struct type type,
type_instance_flags  new_flags,
struct type storage 
)
static

◆ make_reference_type()

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

◆ make_restrict_type()

struct type * make_restrict_type ( struct type type)

◆ make_type_with_address_space()

struct type * make_type_with_address_space ( struct type type,
type_instance_flags  space_flag 
)

◆ make_unqualified_type()

struct type * make_unqualified_type ( struct type type)

◆ make_vector_type()

void make_vector_type ( struct type array_type)

◆ objfile_type()

const struct objfile_type * objfile_type ( struct objfile objfile)

◆ operator==() [1/2]

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

◆ operator==() [2/2]

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

Definition at line 914 of file gdbtypes.c.

References FIELD_EQ.

◆ print_args()

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

◆ print_bit_vector()

static void print_bit_vector ( B_TYPE bits,
int  nbits 
)
static

Definition at line 5009 of file gdbtypes.c.

References B_TST, bits, gdb_printf(), and gdb_puts().

Referenced by print_cplus_stuff().

◆ print_cplus_stuff()

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

◆ print_fixed_point_type_info()

static void print_fixed_point_type_info ( struct type type,
int  spaces 
)
static

Definition at line 5203 of file gdbtypes.c.

References type::fixed_point_scaling_factor(), gdb_printf(), and gdb_mpq::str().

Referenced by recursive_dump_type().

◆ print_gnat_stuff()

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

Definition at line 5186 of file gdbtypes.c.

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

Referenced by recursive_dump_type().

◆ rank_function()

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

◆ rank_one_type()

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

◆ rank_one_type_parm_array()

static struct rank rank_one_type_parm_array ( struct type parm,
struct type arg,
struct value value 
)
static

Definition at line 4573 of file gdbtypes.c.

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

Referenced by rank_one_type().

◆ rank_one_type_parm_bool()

static struct rank rank_one_type_parm_bool ( struct type parm,
struct type arg,
struct value value 
)
static

◆ rank_one_type_parm_char()

static struct rank rank_one_type_parm_char ( struct type parm,
struct type arg,
struct value value 
)
static

◆ rank_one_type_parm_complex()

static struct rank rank_one_type_parm_complex ( struct type parm,
struct type arg,
struct value value 
)
static

◆ rank_one_type_parm_enum()

static struct rank rank_one_type_parm_enum ( struct type parm,
struct type arg,
struct value value 
)
static

◆ rank_one_type_parm_float()

static struct rank rank_one_type_parm_float ( struct type parm,
struct type arg,
struct value value 
)
static

◆ rank_one_type_parm_func()

static struct rank rank_one_type_parm_func ( struct type parm,
struct type arg,
struct value value 
)
static

Definition at line 4589 of file gdbtypes.c.

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

Referenced by rank_one_type().

◆ rank_one_type_parm_int()

static struct rank rank_one_type_parm_int ( struct type parm,
struct type arg,
struct value value 
)
static

◆ rank_one_type_parm_ptr()

static struct rank rank_one_type_parm_ptr ( struct type parm,
struct type arg,
struct value value 
)
static

◆ rank_one_type_parm_range()

static struct rank rank_one_type_parm_range ( struct type parm,
struct type arg,
struct value value 
)
static

◆ rank_one_type_parm_set()

static struct rank rank_one_type_parm_set ( struct type parm,
struct type arg,
struct value value 
)
static

Definition at line 4873 of file gdbtypes.c.

References type::code(), type::field(), INCOMPATIBLE_TYPE_BADNESS, rank_one_type(), and field::type().

Referenced by rank_one_type().

◆ rank_one_type_parm_struct()

static struct rank rank_one_type_parm_struct ( struct type parm,
struct type arg,
struct value value 
)
static

◆ recursive_dump_type()

void recursive_dump_type ( struct type type,
int  spaces 
)

Definition at line 5235 of file gdbtypes.c.

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

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

◆ replace_type()

void replace_type ( struct type ntype,
struct type type 
)

◆ resolve_dynamic_array_or_string()

static struct type * resolve_dynamic_array_or_string ( struct type type,
struct property_addr_info addr_stack 
)
static

◆ resolve_dynamic_array_or_string_1()

static struct type * resolve_dynamic_array_or_string_1 ( struct type type,
struct property_addr_info addr_stack,
int  rank,
bool  resolve_p 
)
static

◆ resolve_dynamic_range()

static struct type * resolve_dynamic_range ( struct type dyn_range_type,
struct property_addr_info addr_stack,
int  rank,
bool  resolve_p = true 
)
static

◆ resolve_dynamic_struct()

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

◆ resolve_dynamic_type()

struct type * resolve_dynamic_type ( struct type type,
gdb::array_view< const gdb_byte >  valaddr,
CORE_ADDR  addr 
)

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

For an array type, if the element type is dynamic, then that will not be resolved. This is done because each individual element may have a different type when resolved (depending on the contents of memory). In this situation, 'is_dynamic_type' will still return true for the return value of this function.

Definition at line 2906 of file gdbtypes.c.

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

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

◆ resolve_dynamic_type_internal()

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

◆ resolve_dynamic_union()

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

◆ safe_parse_type()

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

◆ set_type_align()

bool set_type_align ( struct type type,
ULONGEST  align 
)

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

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

Definition at line 3737 of file gdbtypes.c.

References type::align_log2, and TYPE_ALIGN_BITS.

Referenced by maybe_set_alignment(), read_array_type(), read_enum_type(), read_enumeration_type(), read_func_kind_type(), read_pointer_type(), read_structure_type(), and read_tag_pointer_type().

◆ set_type_code()

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

◆ set_type_self_type()

void set_type_self_type ( struct type type,
struct type self_type 
)

◆ set_type_vptr_basetype()

void set_type_vptr_basetype ( struct type type,
struct type basetype 
)

◆ set_type_vptr_fieldno()

void set_type_vptr_fieldno ( struct type type,
int  fieldno 
)

◆ 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 147 of file gdbtypes.c.

References gdb_printf().

◆ 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 159 of file gdbtypes.c.

References gdb_printf().

◆ 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 169 of file gdbtypes.c.

References gdb_printf().

◆ smash_to_memberptr_type()

void smash_to_memberptr_type ( struct type type,
struct type self_type,
struct type to_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 
)

◆ smash_to_methodptr_type()

void smash_to_methodptr_type ( struct type type,
struct type to_type 
)

◆ smash_type()

static void smash_type ( struct type type)
static

◆ stub_noname_complaint()

static void stub_noname_complaint ( void  )
static

Definition at line 2068 of file gdbtypes.c.

References complaint.

Referenced by check_typedef().

◆ sum_ranks()

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

Definition at line 4052 of file gdbtypes.c.

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

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

◆ type_align()

unsigned type_align ( struct type type)

Return the alignment of the type in target addressable memory units. Return 0 if the alignment cannot be determined; but note that this makes an effort to compute the alignment even it it was not specified in the debug info.

Definition at line 3645 of file gdbtypes.c.

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

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

◆ type_byte_order()

enum bfd_endian type_byte_order ( const struct type type)

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

Definition at line 4018 of file gdbtypes.c.

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

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

◆ type_length_units()

unsigned int type_length_units ( struct type type)

◆ type_name_or_error()

const char * type_name_or_error ( struct type type)

◆ type_not_allocated()

int type_not_allocated ( const struct type type)

◆ type_not_associated()

int type_not_associated ( const struct type type)

◆ type_pair_eq()

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

Definition at line 5584 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 5576 of file gdbtypes.c.

References type_pair::old.

Referenced by create_copied_types_hash().

◆ type_raw_align()

unsigned type_raw_align ( struct type type)

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

Definition at line 3635 of file gdbtypes.c.

References type::align_log2.

Referenced by type_align().

◆ types_deeply_equal()

bool types_deeply_equal ( struct type type1,
struct type type2 
)

◆ types_equal()

bool types_equal ( struct type a,
struct type b 
)

◆ update_static_array_size()

static bool update_static_array_size ( struct type type)
static

◆ verify_floatformat()

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

Definition at line 3399 of file gdbtypes.c.

References bit.

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 71 of file gdbtypes.c.

Referenced by rank_one_type_parm_struct().

◆ 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 64 of file gdbtypes.c.

Referenced by rank_one_type_parm_ptr().

◆ BOOL_CONVERSION_BADNESS

const struct rank BOOL_CONVERSION_BADNESS = {3,0}

Badness of conversion to boolean.

Definition at line 70 of file gdbtypes.c.

Referenced by rank_one_type_parm_bool().

◆ 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 3335 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 65 of file gdbtypes.c.

Referenced by rank_one_type(), and rank_one_type_parm_ptr().

◆ dont_print_type_obstack

struct obstack dont_print_type_obstack
static

Definition at line 5209 of file gdbtypes.c.

Referenced by recursive_dump_type().

◆ EXACT_MATCH_BADNESS

const struct rank EXACT_MATCH_BADNESS = {0,0}

◆ fixed_point_objfile_key

const struct registry< objfile >::key<fixed_point_type_storage> fixed_point_objfile_key
static

Definition at line 6084 of file gdbtypes.c.

Referenced by allocate_fixed_point_type_info().

◆ FLOAT_CONVERSION_BADNESS

const struct rank FLOAT_CONVERSION_BADNESS = {2,0}

Badness of floating conversion.

Definition at line 67 of file gdbtypes.c.

Referenced by rank_one_type_parm_float().

◆ FLOAT_PROMOTION_BADNESS

const struct rank FLOAT_PROMOTION_BADNESS = {1,0}

Badness of floating promotion.

Definition at line 63 of file gdbtypes.c.

Referenced by rank_one_type_parm_complex(), and rank_one_type_parm_float().

◆ floatformats_arm_ext

const struct floatformat* floatformats_arm_ext[BFD_ENDIAN_UNKNOWN]
Initial value:
= {
&floatformat_arm_ext_big,
&floatformat_arm_ext_littlebyte_bigword
}

Definition at line 107 of file gdbtypes.c.

Referenced by arm_ext_type(), and make_gdb_type().

◆ floatformats_bfloat16

const struct floatformat* floatformats_bfloat16[BFD_ENDIAN_UNKNOWN]
Initial value:
= {
&floatformat_bfloat16_big,
&floatformat_bfloat16_little
}

Definition at line 127 of file gdbtypes.c.

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

◆ floatformats_i387_ext

const struct floatformat* floatformats_i387_ext[BFD_ENDIAN_UNKNOWN]
Initial value:
= {
&floatformat_i387_ext,
&floatformat_i387_ext
}

Definition at line 99 of file gdbtypes.c.

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

◆ floatformats_ia64_spill

const struct floatformat* floatformats_ia64_spill[BFD_ENDIAN_UNKNOWN]
Initial value:
= {
&floatformat_ia64_spill_big,
&floatformat_ia64_spill_little
}

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

◆ 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 95 of file gdbtypes.c.

Referenced by arm_gdbarch_init(), and sh_littlebyte_bigword_type().

◆ floatformats_ieee_half

const struct floatformat* floatformats_ieee_half[BFD_ENDIAN_UNKNOWN]
Initial value:
= {
&floatformat_ieee_half_big,
&floatformat_ieee_half_little
}

Definition at line 79 of file gdbtypes.c.

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

◆ floatformats_ieee_quad

const struct floatformat* floatformats_ieee_quad[BFD_ENDIAN_UNKNOWN]

◆ floatformats_ieee_single

const struct floatformat* floatformats_ieee_single[BFD_ENDIAN_UNKNOWN]

◆ floatformats_m68881_ext

const struct floatformat* floatformats_m68881_ext[BFD_ENDIAN_UNKNOWN]
Initial value:
= {
&floatformat_m68881_ext,
&floatformat_m68881_ext
}

Definition at line 103 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 119 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 115 of file gdbtypes.c.

Referenced by vax_gdbarch_init().

◆ gdbtypes_data

const registry<gdbarch>::key<struct builtin_type> gdbtypes_data
static

Definition at line 6152 of file gdbtypes.c.

Referenced by builtin_type().

◆ gnat_aux_default

const struct gnat_aux_type gnat_aux_default
Initial value:
=
{ NULL }

Definition at line 3351 of file gdbtypes.c.

Referenced by allocate_gnat_aux_type().

◆ INCOMPATIBLE_TYPE_BADNESS

const struct rank INCOMPATIBLE_TYPE_BADNESS = {INVALID_CONVERSION,0}

◆ INT_FLOAT_CONVERSION_BADNESS

const struct rank INT_FLOAT_CONVERSION_BADNESS = {2,0}

Badness of integer<->floating conversions.

Definition at line 68 of file gdbtypes.c.

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

◆ INTEGER_CONVERSION_BADNESS

const struct rank INTEGER_CONVERSION_BADNESS = {2,0}

Badness of integral conversion.

Definition at line 66 of file gdbtypes.c.

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

◆ INTEGER_PROMOTION_BADNESS

const struct rank INTEGER_PROMOTION_BADNESS = {1,0}

Badness of integral promotion.

Definition at line 62 of file gdbtypes.c.

Referenced by rank_one_type_parm_char(), and rank_one_type_parm_int().

◆ LENGTH_MISMATCH_BADNESS

const struct rank LENGTH_MISMATCH_BADNESS = {INVALID_CONVERSION,0}

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

Definition at line 55 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 76 of file gdbtypes.c.

Referenced by rank_one_type_parm_ptr().

◆ 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 75 of file gdbtypes.c.

Referenced by classify_oload_match(), and rank_one_type_parm_int().

◆ NULL_POINTER_CONVERSION_BADNESS

const struct rank NULL_POINTER_CONVERSION_BADNESS = {2,0}

Definition at line 74 of file gdbtypes.c.

Referenced by rank_one_type_parm_ptr().

◆ objfile_type_data

const registry<objfile>::key<struct objfile_type, gdb::noop_deleter<struct objfile_type> > objfile_type_data
static

Definition at line 6317 of file gdbtypes.c.

Referenced by objfile_type().

◆ opaque_type_resolution

bool opaque_type_resolution = true
static

Definition at line 134 of file gdbtypes.c.

Referenced by check_typedef().

◆ overload_debug

unsigned int overload_debug = 0

Definition at line 138 of file gdbtypes.c.

Referenced by 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 72 of file gdbtypes.c.

Referenced by rank_one_type().

◆ REFERENCE_SEE_THROUGH_BADNESS

const struct rank REFERENCE_SEE_THROUGH_BADNESS = {0,1}

Definition at line 73 of file gdbtypes.c.

Referenced by rank_one_type().

◆ strict_type_checking

bool strict_type_checking = true
static

Definition at line 142 of file gdbtypes.c.

Referenced by rank_one_type_parm_ptr().

◆ TOO_FEW_PARAMS_BADNESS

const struct rank TOO_FEW_PARAMS_BADNESS = {INVALID_CONVERSION,0}

Dummy badness value for nonexistent parameter positions.

Definition at line 57 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 69 of file gdbtypes.c.

Referenced by rank_one_type_parm_ptr().