41 #include "floatformat.h" 69 &floatformat_ieee_half_big,
70 &floatformat_ieee_half_little
73 &floatformat_ieee_single_big,
74 &floatformat_ieee_single_little
77 &floatformat_ieee_double_big,
78 &floatformat_ieee_double_little
81 &floatformat_ieee_double_big,
82 &floatformat_ieee_double_littlebyte_bigword
85 &floatformat_i387_ext,
89 &floatformat_m68881_ext,
90 &floatformat_m68881_ext
93 &floatformat_arm_ext_big,
94 &floatformat_arm_ext_littlebyte_bigword
97 &floatformat_ia64_spill_big,
98 &floatformat_ia64_spill_little
101 &floatformat_ia64_quad_big,
102 &floatformat_ia64_quad_little
113 &floatformat_ibm_long_double_big,
114 &floatformat_ibm_long_double_little
138 "(if set before loading symbols) is %s.\n"),
331 else if (*typeptr == 0)
338 if (typeptr == 0 || *typeptr == 0)
368 while (
chain != ntype)
397 struct type **reftype;
410 else if (*typeptr == 0)
417 if (typeptr == 0 || *typeptr == 0)
449 while (
chain != ntype)
493 if (typeptr == 0 || *typeptr == 0)
531 struct type **param_types)
538 if (param_types[nparams - 1] == NULL)
558 for (i = 0; i < nparams; ++i)
573 if (!strcmp (space_identifier,
"code"))
575 else if (!strcmp (space_identifier,
"data"))
583 error (
_(
"Unknown address space specifier: \"%s\""), space_identifier);
610 struct type *storage)
621 while (ntype !=
type);
693 struct type **typeptr)
707 if (typeptr && *typeptr != NULL)
725 typeptr ? *typeptr : NULL);
807 while (ntype !=
chain);
889 #define FIELD_EQ(FIELD) (l.FIELD == r.FIELD) 893 &&
FIELD_EQ (flag_upper_bound_is_count)
894 &&
FIELD_EQ (flag_bound_evaluated));
907 if (result_type == NULL)
1024 *highp = -*lowp - 1;
1034 *highp = (*highp - 1) | *highp;
1148 struct type *element_type,
1151 unsigned int bit_stride)
1153 if (byte_stride_prop != NULL
1161 byte_stride_prop = NULL;
1164 if (result_type == NULL)
1169 if (byte_stride_prop == NULL
1174 LONGEST low_bound, high_bound;
1177 low_bound = high_bound = 0;
1182 if (high_bound < low_bound)
1184 else if (bit_stride > 0)
1186 (bit_stride * (high_bound - low_bound + 1) + 7) / 8;
1189 TYPE_LENGTH (element_type) * (high_bound - low_bound + 1);
1206 if (byte_stride_prop != NULL)
1209 else if (bit_stride > 0)
1224 struct type *element_type,
1257 struct type *string_char_type,
1271 struct type *result_type;
1274 low_bound, high_bound);
1282 if (result_type == NULL)
1292 LONGEST low_bound, high_bound, bit_length;
1295 low_bound = high_bound = 0;
1296 bit_length = high_bound - low_bound + 1;
1313 struct type *inner_array, *elt_type;
1318 inner_array = array_type;
1336 struct type *array_type;
1411 struct type *to_type)
1448 struct type *to_type,
struct field *args,
1449 int nargs,
int varargs)
1499 error (
_(
"Invalid anonymous type %s [in module %s], GCC PR debug/47510 bug?"),
1529 char *uns = (
char *) alloca (strlen (
name) + 10);
1531 strcpy (uns,
"unsigned ");
1532 strcpy (uns + 9,
name);
1541 char *uns = (
char *) alloca (strlen (
name) + 8);
1543 strcpy (uns,
"signed ");
1544 strcpy (uns + 7,
name);
1568 error (
_(
"This context has class, union or enum %s, not a struct."),
1594 error (
_(
"This context has class, struct or enum %s, not a union."),
1613 error (
_(
"This context has class, struct or union %s, not an enum."),
1627 char *nam = (
char *)
1639 error (
_(
"No template type named %s."),
name);
1643 error (
_(
"This context has class, union or enum %s, not a struct."),
1679 error (
_(
"Type %s is not a structure or union type."),
1680 type_name.c_str ());
1692 if (type_name != NULL && strcmp (type_name,
name) == 0)
1705 else if (!t_field_name || *t_field_name ==
'\0')
1707 struct type *subtype
1710 if (subtype != NULL)
1733 error (
_(
"Type %s has no component named %s."), type_name.c_str (),
name);
1750 *max = ((((
ULONGEST) 1 << (n - 1)) - 1) << 1) | 1;
1767 *max = ((
ULONGEST) 1 << (n - 1)) - 1;
1854 struct type *basetype;
1867 *basetypep = basetype;
1988 static struct type *
1993 struct type *static_range_type, *static_target_type;
2032 &low_bound, &high_bound);
2034 return static_range_type;
2041 static struct type *
2046 struct type *elt_type;
2048 struct type *ary_dim;
2050 unsigned int bit_stride = 0;
2091 bit_stride = (
unsigned int) (
value * 8);
2098 warning (
_(
"cannot determine array stride for type %s"),
2113 static struct type *
2117 struct type *resolved_type;
2119 unsigned int max_len = 0;
2127 *
sizeof (
struct field));
2146 return resolved_type;
2153 static struct type *
2157 struct type *resolved_type;
2159 unsigned resolved_type_bit_length = 0;
2168 *
sizeof (
struct field));
2174 unsigned new_bit_length;
2188 error (
_(
"Cannot determine struct field location" 2189 " (invalid location kind)"));
2196 pinfo.
next = addr_stack;
2217 if (new_bit_length > resolved_type_bit_length)
2218 resolved_type_bit_length = new_bit_length;
2233 return resolved_type;
2238 static struct type *
2271 if (addr_stack->
valaddr != NULL)
2275 pinfo.
next = addr_stack;
2311 return resolved_type;
2333 while (node != NULL)
2371 while (NULL != curr_node)
2379 if (NULL == prev_node)
2387 prev_node = curr_node;
2388 curr_node = curr_node->
next;
2478 if ((instance_flags & ALL_SPACES) != 0)
2479 new_instance_flags &= ~ALL_SPACES;
2480 if ((instance_flags & ALL_CLASSES) != 0)
2481 new_instance_flags &= ~ALL_CLASSES;
2483 instance_flags |= new_instance_flags;
2498 struct type *newtype;
2584 static struct type *
2587 struct ui_file *saved_gdb_stderr;
2628 DMGL_PARAMS | DMGL_ANSI);
2629 char *argtypetext, *p;
2630 int depth = 0, argcount = 1;
2631 struct field *argtypes;
2636 p = strchr (demangled_name,
'(');
2640 if (demangled_name == NULL || p == NULL)
2641 error (
_(
"Internal: Cannot demangle mangled name `%s'."),
2649 if (*p ==
'(' || *p ==
'<')
2653 else if (*p ==
')' || *p ==
'>')
2657 else if (*p ==
',' && depth == 0)
2671 argtypes = (
struct field *)
2690 if (depth <= 0 && (*p ==
',' || *p ==
')'))
2694 if (strncmp (argtypetext,
"...", p - argtypetext) != 0
2695 && strncmp (argtypetext,
"void", p - argtypetext) != 0)
2697 argtypes[argcount].
type =
2701 argtypetext = p + 1;
2704 if (*p ==
'(' || *p ==
'<')
2708 else if (*p ==
')' || *p ==
'>')
2724 argtypes, argcount, p[-2] ==
'.');
2728 xfree (demangled_name);
2744 int j, found_stub = 0;
2746 for (j = 0; j < len; j++)
2764 char dem_opname[256];
2768 dem_opname, DMGL_ANSI);
2845 bit = floatformat->totalsize;
2856 const struct floatformat *
2889 static struct type *
2901 int bit,
int unsigned_p,
const char *
name)
2918 int bit,
int unsigned_p,
const char *
name)
2935 int bit,
int unsigned_p,
const char *
name)
2954 const struct floatformat **floatformats)
2984 const char *
name,
struct type *target_type)
3001 int bit,
const char *
name,
struct type *target_type)
3086 LONGEST low_bound, high_bound;
3101 for (i = 0; i < n; i++)
3204 const gdb_byte *valaddr,
int embedded_offset,
3233 else if (this_offset == *
offset)
3243 embedded_offset + this_offset,
3273 c.
rank = a.rank + b.rank;
3274 c.
subrank = a.subrank + b.subrank;
3316 short found_pos = 0;
3317 short found_neg = 0;
3324 for (i = 0; i < a->
length; i++)
3357 struct value **args,
int nargs)
3361 int min_len = nparms < nargs ? nparms : nargs;
3378 for (i = 1; i <= min_len; i++)
3383 for (i = min_len + 1; i <= nargs; i++)
3396 int first_p, second_p;
3400 first_p = (strstr (first,
"short") != NULL);
3401 second_p = (strstr (second,
"short") != NULL);
3402 if (first_p && second_p)
3404 if (first_p || second_p)
3408 first_p = (strstr (first,
"long") != NULL);
3409 second_p = (strstr (second,
"long") != NULL);
3410 if (first_p && second_p)
3412 if (first_p || second_p)
3416 first_p = (strstr (first,
"char") != NULL);
3417 second_p = (strstr (second,
"char") != NULL);
3418 if (first_p && second_p)
3420 if (first_p || second_p)
3511 if (s == NULL && t != NULL)
3513 else if (s != NULL && t == NULL)
3515 else if (s == NULL && t== NULL)
3517 return strcmp (s, t) == 0;
3601 || memcmp (block1->
data, block2->
data, block1->
size) != 0)
3607 "%d by check_types_equal"),
3651 bcache_full (&entry,
sizeof (entry), cache, &added);
3783 struct type *t1 = parm;
3784 struct type *t2 = arg;
3815 "------ Arg is %s [%d], parm is %s [%d]\n",
4190 for (bitno = 0; bitno < nbits; bitno++)
4192 if ((bitno % 8) == 0)
4214 for (i = 0; i < nargs; i++)
4217 args[i].
name != NULL ? args[i].
name :
"<NULL>");
4255 for (overload_idx = 0;
4332 "private_field_bits (%d bits at *",
4344 "protected_field_bits (%d bits at *",
4368 if (descriptive_type == NULL)
4390 struct type **first_dont_print
4393 int i = (
struct type **)
4398 if (
type == first_dont_print[i])
4621 "[%d] enumval %s type ",
4625 "[%d] bitpos %s bitsize %d type ",
4647 ?
" (undefined)" :
"");
4707 return htab_hash_pointer (pair->
old);
4716 return lhs->
old == rhs->
old;
4741 while (*node_ptr != NULL)
4746 obstack_copy (objfile_obstack, *node_ptr,
4748 node_copy->
prop = (*node_ptr)->prop;
4749 *node_ptr = node_copy;
4751 node_ptr = &node_copy->
next;
4765 htab_t copied_types)
4779 slot = htab_find_slot (copied_types, &pair, INSERT);
4781 return ((
struct type_pair *) *slot)->newobj;
4813 for (i = 0; i < nfields; i++)
4846 _(
"Unexpected type field location kind: %d"),
4963 int bit,
int unsigned_p,
const char *
name)
4980 int bit,
int unsigned_p,
const char *
name)
4997 int bit,
int unsigned_p,
const char *
name)
5016 const struct floatformat **floatformats)
5045 const char *
name,
struct type *target_type)
5062 int bit,
const char *
name,
struct type *target_type)
5096 struct type *field_type,
const char *
name)
5103 gdb_assert (start_bitpos >= 0 && start_bitpos < type_bitsize);
5104 gdb_assert (nr_bits >= 1 && nr_bits <= type_bitsize);
5158 memset (f, 0,
sizeof f[0]);
5240 1,
"unsigned char");
5246 1,
"unsigned short");
5258 1,
"unsigned long");
5264 1,
"unsigned long long");
5348 "<internal function>");
5390 1,
"unsigned char");
5396 1,
"unsigned short");
5408 1,
"unsigned long");
5414 1,
"unsigned long long");
5433 "<text variable, no debug info>");
5436 "<text gnu-indirect-function variable, no debug info>");
5440 "__IFUNC_RESOLVER_RET");
5444 "<text from jump slot in .got.plt, no debug info>",
5487 _(
"Set debugging of C++ overloading."),
5488 _(
"Show debugging of C++ overloading."),
5489 _(
"When enabled, ranking of the " 5490 "functions is displayed."),
5498 _(
"Set resolution of opaque struct/class/union" 5499 " types (if set before loading symbols)."),
5500 _(
"Show resolution of opaque struct/class/union" 5501 " types (if set before loading symbols)."),
5509 _(
"Set strict type checking."),
5510 _(
"Show strict type checking."),
const struct rank INCOMPATIBLE_TYPE_BADNESS
void set_type_vptr_basetype(struct type *type, struct type *basetype)
#define TYPE_FIELD_STATIC_PHYSNAME(thistype, n)
const struct floatformat * floatformats_vax_f[BFD_ENDIAN_UNKNOWN]
#define TYPE_GNAT_SPECIFIC(thistype)
int address_space_name_to_int(struct gdbarch *gdbarch, char *space_identifier)
#define TYPE_RANGE_DATA(thistype)
struct type * builtin_declong
struct cmd_list_element * setchecklist
struct type * lookup_string_range_type(struct type *string_char_type, LONGEST low_bound, LONGEST high_bound)
struct type * lookup_array_range_type(struct type *element_type, LONGEST low_bound, LONGEST high_bound)
static struct type * make_qualified_type(struct type *type, int new_flags, struct type *storage)
CORE_ADDR extract_typed_address(const gdb_byte *buf, struct type *type)
#define TYPE_DYN_PROP_LIST(thistype)
static struct obstack dont_print_type_obstack
struct type * arch_type(struct gdbarch *gdbarch, enum type_code code, int bit, const char *name)
int class_or_union_p(const struct type *t)
#define TYPE_OBJFILE_OWNED(t)
const struct floatformat ** gdbarch_double_format(struct gdbarch *gdbarch)
#define OBSTACK_CALLOC(OBSTACK, NUMBER, TYPE)
static struct type * resolve_dynamic_type_internal(struct type *type, struct property_addr_info *addr_stack, int top_level)
struct type * lookup_reference_type(struct type *type, enum type_code refcode)
struct type * copy_type(const struct type *type)
union dynamic_prop_data data
struct type * create_static_range_type(struct type *result_type, struct type *index_type, LONGEST low_bound, LONGEST high_bound)
struct type * builtin_func_ptr
const struct rank NS_POINTER_CONVERSION_BADNESS
struct type * builtin_long_double
struct type * init_type(struct objfile *objfile, enum type_code code, int bit, const char *name)
struct rank sum_ranks(struct rank a, struct rank b)
struct type * builtin_true_unsigned_char
#define TYPE_FIELD_PRIVATE_BITS(thistype)
struct type * builtin_void
struct type * lookup_signed_typename(const struct language_defn *language, struct gdbarch *gdbarch, const char *name)
int get_vptr_fieldno(struct type *type, struct type **basetypep)
#define TYPE_ASSOCIATED_PROP(thistype)
static void print_bit_vector(B_TYPE *bits, int nbits)
void replace_type(struct type *ntype, struct type *type)
struct cmd_list_element * showchecklist
#define TYPE_FIELD_NAME(thistype, n)
int gdbarch_wchar_signed(struct gdbarch *gdbarch)
struct type * builtin_unsigned_int
#define TYPE_N_BASECLASSES(thistype)
static struct gdbarch_data * gdbtypes_data
static struct type * safe_parse_type(struct gdbarch *gdbarch, char *p, int length)
static void * gdbtypes_post_init(struct gdbarch *gdbarch)
void append_flags_type_field(struct type *type, int start_bitpos, int nr_bits, struct type *field_type, const char *name)
static int strict_type_checking
struct type * builtin_double_complex
#define TYPE_DYN_PROP_ADDR(dynprop)
#define TYPE_LOW_BOUND(range_type)
struct type * make_unqualified_type(struct type *type)
const struct floatformat * floatformats_ieee_double[BFD_ENDIAN_UNKNOWN]
int type_not_allocated(const struct type *type)
static struct type * resolve_dynamic_array(struct type *type, struct property_addr_info *addr_stack)
int strcmp_iw(const char *string1, const char *string2)
#define TYPE_NFN_FIELDS(thistype)
void dummy_obstack_deallocate(void *object, void *data)
LONGEST value_as_long(struct value *val)
const struct floatformat * floatformat_from_type(const struct type *type)
const char * type_name_no_tag_or_error(struct type *type)
int gdbarch_int_bit(struct gdbarch *gdbarch)
struct type * builtin_double
void warning(const char *fmt,...)
LONGEST value_embedded_offset(const struct value *value)
struct type * create_array_type(struct type *result_type, struct type *element_type, struct type *range_type)
struct type * internal_type_vptr_basetype(struct type *type)
struct type * builtin_long_double
void set_type_vptr_fieldno(struct type *type, int fieldno)
#define TYPE_NAME(thistype)
#define TYPE_FIELD_ARTIFICIAL(thistype, n)
#define INIT_CPLUS_SPECIFIC(type)
struct type * internal_type_self_type(struct type *type)
int gdbarch_ptr_bit(struct gdbarch *gdbarch)
static int opaque_type_resolution
const struct floatformat ** gdbarch_long_double_format(struct gdbarch *gdbarch)
const struct rank BOOL_CONVERSION_BADNESS
#define TYPE_HIGH_BOUND(range_type)
char * plongest(LONGEST l)
bool operator==(const dynamic_prop &l, const dynamic_prop &r)
void * gdbarch_data(struct gdbarch *gdbarch, struct gdbarch_data *data)
#define FIELD_ARTIFICIAL(thisfld)
const struct gnat_aux_type gnat_aux_default
#define TYPE_FIELD_VIRTUAL_BITS(thistype)
struct type * arch_character_type(struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
#define FIELD_DWARF_BLOCK(thisfld)
const struct builtin_type * builtin_type(struct gdbarch *gdbarch)
#define TYPE_SPECIFIC_FIELD(thistype)
const struct objfile_type * objfile_type(struct objfile *objfile)
int currently_reading_symtab
#define SYMBOL_CLASS(symbol)
void * memset(T *s, int c, size_t n)=delete
void internal_error(const char *file, int line, const char *fmt,...)
#define TYPE_IS_OPAQUE(thistype)
struct type * builtin_func_func
struct type * make_function_type(struct type *type, struct type **typeptr)
void remove_dyn_prop(enum dynamic_prop_node_kind prop_kind, struct type *type)
char * gdb_mangle_name(struct type *, int, int)
#define TYPE_FLOATFORMAT(thistype)
struct type * make_reference_type(struct type *type, struct type **typeptr, enum type_code refcode)
#define TYPE_HIGH_BOUND_UNDEFINED(range_type)
struct type * builtin_uint8
#define TYPE_RVALUE_REFERENCE_TYPE(thistype)
#define TYPE_FIELD_PROTECTED_BITS(thistype)
struct type * builtin_float
unsigned int type_length_units(struct type *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 struct gdb_exception exception_none
static void check_stub_method(struct type *type, int method_id, int signature_id)
struct type * builtin_uint16
const struct floatformat * floatformats_ieee_half[BFD_ENDIAN_UNKNOWN]
static struct type * resolve_dynamic_union(struct type *type, struct property_addr_info *addr_stack)
#define TYPE_FN_FIELD_STATIC_P(thisfn, n)
struct type * make_pointer_type(struct type *type, struct type **typeptr)
int baseclass_offset(struct type *type, int index, const gdb_byte *valaddr, LONGEST embedded_offset, CORE_ADDR address, const struct value *val)
int gdbarch_long_bit(struct gdbarch *gdbarch)
#define TYPE_NO_RETURN(thistype)
int cplus_method_ptr_size(struct type *to_type)
const struct floatformat * floatformats_ia64_quad[BFD_ENDIAN_UNKNOWN]
enum language la_language
#define SET_FIELD_PHYSADDR(thisfld, addr)
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 * nodebug_data_symbol
#define VEC_safe_push(T, V, O)
static void print_cplus_stuff(struct type *type, int spaces)
struct block_symbol lookup_symbol(const char *name, const struct block *block, domain_enum domain, struct field_of_this_result *is_a_field_of_this)
int is_public_ancestor(struct type *base, struct type *dclass)
#define CV_CONVERSION_CONST
const char * gdbarch_address_class_type_flags_to_name(struct gdbarch *gdbarch, int type_flags)
#define TYPE_ALLOCATED_PROP(thistype)
struct type_equality_entry type_equality_entry_d
struct type * builtin_short
struct type * builtin_core_addr
const gdb_byte * value_contents_for_printing(struct value *value)
const void * bcache_full(const void *addr, int length, struct bcache *bcache, int *added)
struct type * builtin_long_long
struct type * builtin_complex
#define FIELD_LOC_KIND(thisfld)
#define SET_FIELD_BITPOS(thisfld, bitpos)
struct type * builtin_long
#define TYPE_FIELD(thistype, n)
#define TYPE_DATA_LOCATION_KIND(thistype)
#define TYPE_FN_FIELD_ARGS(thisfn, n)
#define bits(obj, st, fn)
#define TYPE_PROTOTYPED(t)
struct type * arch_boolean_type(struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
#define TYPE_FIELD_ENUMVAL(thistype, n)
#define TYPE_FIELD_TYPE(thistype, n)
int can_dereference(struct type *t)
#define TYPE_DATA_LOCATION(thistype)
struct type * arch_complex_type(struct gdbarch *gdbarch, const char *name, struct type *target_type)
struct type * builtin_signed_char
struct type * builtin_int32
static int distance_to_ancestor(struct type *base, struct type *dclass, int is_public)
#define TYPE_FN_FIELD_VOLATILE(thisfn, n)
struct type * builtin_short
struct type * init_character_type(struct objfile *objfile, int bit, int unsigned_p, const char *name)
void printf_filtered(const char *format,...)
struct type * builtin_char16
#define GDBARCH_OBSTACK_ZALLOC(GDBARCH, TYPE)
#define TYPE_CODE_SPACE(t)
static struct type * new_type(char *)
const struct rank FLOAT_PROMOTION_BADNESS
struct type * arch_integer_type(struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
#define TYPE_IS_REFERENCE(t)
const struct rank EXACT_MATCH_BADNESS
int internal_type_vptr_fieldno(struct type *type)
struct type * nodebug_text_gnu_ifunc_symbol
int gdbarch_char_signed(struct gdbarch *gdbarch)
static const struct objfile_data * objfile_type_data
char * gdbarch_obstack_strdup(struct gdbarch *arch, const char *string)
int gdbarch_addressable_memory_unit_size(struct gdbarch *gdbarch)
void add_setshow_zuinteger_cmd(const char *name, enum command_class theclass, unsigned int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
mach_port_t kern_return_t mach_port_t msgports mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
int types_deeply_equal(struct type *type1, struct type *type2)
struct type * create_string_type(struct type *result_type, struct type *string_char_type, struct type *range_type)
static struct type * alloc_type_instance(struct type *oldtype)
#define TYPE_VPTR_FIELDNO(thistype)
int discrete_position(struct type *type, LONGEST val, LONGEST *pos)
#define TYPE_INCOMPLETE(t)
struct type * lookup_typename(const struct language_defn *language, struct gdbarch *gdbarch, const char *name, const struct block *block, int noerr)
struct cmd_list_element * setlist
struct type * init_integer_type(struct objfile *objfile, int bit, int unsigned_p, const char *name)
char * gdb_demangle(const char *name, int options)
struct type * builtin_int128
#define TYPE_INSTANCE_FLAGS(thistype)
#define TYPE_FN_FIELD_PHYSNAME(thisfn, n)
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)
void append_composite_type_field(struct type *t, const char *name, struct type *field)
static int integer_types_same_name_p(const char *first, const char *second)
enum dynamic_prop_node_kind prop_kind
struct type * arch_flags_type(struct gdbarch *gdbarch, const char *name, int bit)
struct type * builtin_decdouble
struct type * check_typedef(struct type *type)
#define TYPE_GNU_IFUNC(t)
struct field * append_composite_type_field_raw(struct type *t, const char *name, struct type *field)
struct type * builtin_unsigned_long_long
#define CV_CONVERSION_VOLATILE
#define CATCH(EXCEPTION, MASK)
#define TYPE_FN_FIELD_PRIVATE(thisfn, n)
const struct floatformat * floatformats_m68881_ext[BFD_ENDIAN_UNKNOWN]
struct type * lookup_rvalue_reference_type(struct type *type)
struct type * builtin_unsigned_long
struct type * create_set_type(struct type *result_type, struct type *domain_type)
struct type * builtin_char32
#define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype)
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)
#define TYPE_MAIN_TYPE(thistype)
void allocate_cplus_struct_type(struct type *type)
struct type * make_restrict_type(struct type *type)
const struct rank INTEGER_CONVERSION_BADNESS
struct type * lookup_memberptr_type(struct type *type, struct type *domain)
static void print_gnat_stuff(struct type *type, int spaces)
struct type * lookup_transparent_type(const char *name)
const struct rank BASE_CONVERSION_BADNESS
static int compare_maybe_null_strings(const char *s, const char *t)
int field_is_static(struct field *f)
objfile(bfd *, const char *, objfile_flags)
struct type * alloc_type_copy(const struct type *type)
const struct floatformat * floatformats_vax_d[BFD_ENDIAN_UNKNOWN]
int compare_badness(struct badness_vector *a, struct badness_vector *b)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
static void show_opaque_type_resolution(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
#define TYPE_DATA_SPACE(t)
struct type * lookup_struct(const char *name, const struct block *block)
struct type * init_pointer_type(struct objfile *objfile, int bit, const char *name, struct type *target_type)
int gdbarch_address_class_name_to_type_flags_p(struct gdbarch *gdbarch)
struct type * arch_float_type(struct gdbarch *gdbarch, int bit, const char *name, const struct floatformat **floatformats)
static int check_types_worklist(VEC(type_equality_entry_d) **worklist, struct bcache *cache)
#define TYPE_DYN_PROP_KIND(dynprop)
const struct rank CV_CONVERSION_BADNESS
static void show_overload_debug(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
struct type * builtin_char
int is_ancestor(struct type *base, struct type *dclass)
struct cmd_list_element * showlist
const struct floatformat * floatformats_ieee_double_littlebyte_bigword[BFD_ENDIAN_UNKNOWN]
void puts_filtered(const char *string)
const struct floatformat * floatformats_ia64_spill[BFD_ENDIAN_UNKNOWN]
#define gdb_assert_not_reached(message)
int is_integral_type(struct type *t)
struct type * builtin_int16
#define ALLOCATE_CPLUS_STRUCT_TYPE(type)
struct type * builtin_unsigned_long
struct type * nodebug_tls_symbol
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
struct type * lookup_enum(const char *name, const struct block *block)
struct dwarf2_per_cu_data * per_cu
struct type * copy_type_recursive(struct objfile *objfile, struct type *type, htab_t copied_types)
struct type * arch_pointer_type(struct gdbarch *gdbarch, int bit, const char *name, struct type *target_type)
struct gdbarch * get_objfile_arch(const struct objfile *objfile)
const struct rank NS_INTEGER_POINTER_CONVERSION_BADNESS
struct type * parse_and_eval_type(char *p, int length)
#define REFERENCE_CONVERSION_CONST_LVALUE
struct bcache * bcache_xmalloc(unsigned long(*hash_function)(const void *, int length), int(*compare_function)(const void *, const void *, int length))
struct type * init_vector_type(struct type *elt_type, int n)
#define TYPE_TARGET_STUB(t)
static void show_strict_type_checking(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
struct type * builtin_int0
struct gdbarch * get_type_arch(const struct type *type)
int type_not_associated(const struct type *type)
const struct floatformat * floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN]
struct type * builtin_uint32
struct type * alloc_type(struct objfile *objfile)
#define TYPE_ADDRESS_CLASS_ALL(t)
void get_signed_type_minmax(struct type *type, LONGEST *min, LONGEST *max)
static void smash_type(struct type *type)
const struct rank FLOAT_CONVERSION_BADNESS
int gdbarch_double_bit(struct gdbarch *gdbarch)
struct type * builtin_decfloat
#define complaint(COMPLAINTS, FMT,...)
void append_flags_type_flag(struct type *type, int bitpos, const char *name)
void _initialize_gdbtypes(void)
struct type * nodebug_got_plt_symbol
struct type * builtin_long
static int startswith(const char *string, const char *pattern)
htab_t create_copied_types_hash(struct objfile *objfile)
struct property_addr_info * next
struct type * lookup_union(const char *name, const struct block *block)
void add_dyn_prop(enum dynamic_prop_node_kind prop_kind, struct dynamic_prop prop, struct type *type, struct objfile *objfile)
unsigned int overload_debug
const struct rank LENGTH_MISMATCH_BADNESS
#define SET_FIELD_ENUMVAL(thisfld, enumval)
int gdbarch_addr_bit(struct gdbarch *gdbarch)
struct type * builtin_unsigned_char
#define REFERENCE_CONVERSION_RVALUE
int class_types_same_p(const struct type *a, const struct type *b)
#define TYPE_BASECLASS(thistype, index)
struct cmd_list_element * setdebuglist
static void set_type_code(struct type *type, enum type_code code)
#define TYPE_FIELDS(thistype)
#define TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED(arraytype)
#define TYPE_ADDRESS_CLASS_1(t)
void printfi_filtered(int spaces, const char *format,...)
const struct rank INT_FLOAT_CONVERSION_BADNESS
struct badness_vector * rank_function(struct type **parms, int nparms, struct value **args, int nargs)
const char * objfile_name(const struct objfile *objfile)
#define FIELD_BITSIZE(thisfld)
#define gdb_print_host_address(ADDR, STREAM)
#define XRESIZEVEC(T, P, N)
#define TYPE_TAIL_CALL_LIST(thistype)
struct type * arch_decfloat_type(struct gdbarch *gdbarch, int bit, const char *name)
void get_unsigned_type_max(struct type *type, ULONGEST *max)
#define TYPE_FIELD_BITSIZE(thistype, n)
struct type * builtin_bool
struct type * builtin_uint128
static int has_static_range(const struct range_bounds *bounds)
struct type * builtin_unsigned_long_long
struct type * lookup_struct_elt_type(struct type *type, const char *name, int noerr)
struct type * builtin_signed_char
static int is_dynamic_type_internal(struct type *type, int top_level)
struct type * builtin_unsigned_short
#define TYPE_FIELD_BITPOS(thistype, n)
#define TYPE_STUB_SUPPORTED(t)
void append_composite_type_field_aligned(struct type *t, const char *name, struct type *field, int alignment)
struct type * builtin_string
struct type * builtin_int
int gdbarch_address_class_name_to_type_flags(struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
void smash_to_memberptr_type(struct type *type, struct type *self_type, struct type *to_type)
struct type * builtin_unsigned_short
const struct rank VOID_PTR_CONVERSION_BADNESS
int gdbarch_wchar_bit(struct gdbarch *gdbarch)
#define TYPE_FN_FIELD_VOFFSET(thisfn, n)
struct type * get_target_type(struct type *type)
const struct floatformat * floatformats_ieee_single[BFD_ENDIAN_UNKNOWN]
struct type * alloc_type_arch(struct gdbarch *gdbarch)
void * hashtab_obstack_allocate(void *data, size_t size, size_t count)
struct type * nodebug_unknown_symbol
struct type * builtin_wchar
#define INIT_FUNC_SPECIFIC(type)
static void print_args(struct field *args, int nargs, int spaces)
DEF_VEC_O(type_equality_entry_d)
void throw_exception(struct gdb_exception exception)
int is_floating_type(struct type *t)
#define TYPE_CHAIN(thistype)
int types_equal(struct type *a, struct type *b)
void smash_to_methodptr_type(struct type *type, struct type *to_type)
#define TYPE_FN_FIELD_TYPE(thisfn, n)
void allocate_gnat_aux_type(struct type *type)
const struct floatformat * floatformats_i387_ext[BFD_ENDIAN_UNKNOWN]
struct type * make_cv_type(int cnst, int voltl, struct type *type, struct type **typeptr)
struct type * builtin_char
const struct language_defn * current_language
#define TYPE_TARGET_TYPE(thistype)
static int check_types_equal(struct type *type1, struct type *type2, VEC(type_equality_entry_d) **worklist)
#define TYPE_RAW_CPLUS_SPECIFIC(thistype)
struct type * builtin_double
#define TYPE_FN_FIELD_FCONTEXT(thisfn, n)
struct type * internal_fn
struct type * lookup_template_type(char *name, struct type *type, const struct block *block)
#define TYPE_FN_FIELD_PROTECTED(thisfn, n)
#define TYPE_REFERENCE_TYPE(thistype)
void set_type_self_type(struct type *type, struct type *self_type)
#define TYPE_CODE(thistype)
struct rank rank_one_type(struct type *parm, struct type *arg, struct value *value)
const char * address_space_int_to_name(struct gdbarch *gdbarch, int space_flag)
#define TYPE_INDEX_TYPE(type)
struct type * builtin_true_char
struct type * resolve_dynamic_type(struct type *type, const gdb_byte *valaddr, CORE_ADDR addr)
static int verify_floatformat(int bit, const struct floatformat *floatformat)
#define TYPE_FIXED_INSTANCE(t)
struct type * builtin_data_ptr
#define TYPE_CALLING_CONVENTION(thistype)
struct complaints * symfile_complaints
int is_scalar_type(struct type *type)
int gdbarch_long_long_bit(struct gdbarch *gdbarch)
#define FIELD_ENUMVAL(thisfld)
void recursive_dump_type(struct type *type, int spaces)
#define OBJSTAT(objfile, expr)
void add_setshow_boolean_cmd(const char *name, enum command_class theclass, int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_const_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
#define HAVE_CPLUS_STRUCT(type)
#define INIT_GNAT_SPECIFIC(type)
#define TYPE_VPTR_BASETYPE(thistype)
#define TYPE_NFIELDS(thistype)
int gdbarch_float_bit(struct gdbarch *gdbarch)
struct type * make_type_with_address_space(struct type *type, int space_flag)
struct type * init_complex_type(struct objfile *objfile, const char *name, struct type *target_type)
struct type * lookup_unsigned_typename(const struct language_defn *language, struct gdbarch *gdbarch, const char *name)
#define TYPE_FN_FIELD_CONST(thisfn, n)
static void dump_fn_fieldlists(struct type *type, int spaces)
static struct type * init_nodebug_var_type(struct objfile *objfile, const char *name)
#define TYPE_ADDRESS_CLASS_2(t)
void check_stub_method_group(struct type *type, int method_id)
struct type * nodebug_text_symbol
#define TYPE_TAG_NAME(type)
#define TYPE_LOW_BOUND_UNDEFINED(range_type)
void bcache_xfree(struct bcache *bcache)
static void stub_noname_complaint(void)
#define TYPE_CPLUS_SPECIFIC(thistype)
enum dynamic_prop_kind kind
struct dynamic_prop * get_dyn_prop(enum dynamic_prop_node_kind prop_kind, const struct type *type)
#define FIELD_NAME(thisfld)
unsigned long long ULONGEST
#define BASETYPE_VIA_PUBLIC(thistype, index)
struct type * builtin_long_long
struct type * builtin_unsigned_int
int is_dynamic_type(struct type *type)
struct type * lookup_function_type_with_arguments(struct type *type, int nparams, struct type **param_types)
struct type * value_type(const struct value *value)
static struct type * resolve_dynamic_range(struct type *dyn_range_type, struct property_addr_info *addr_stack)
struct type * builtin_int64
#define TYPE_ALLOC(t, size)
#define SYMBOL_TYPE(symbol)
struct type * allocate_stub_method(struct type *type)
const struct rank INTEGER_PROMOTION_BADNESS
const struct rank TOO_FEW_PARAMS_BADNESS
struct cmd_list_element * showdebuglist
struct type * init_boolean_type(struct objfile *objfile, int bit, int unsigned_p, const char *name)
const struct floatformat ** gdbarch_float_format(struct gdbarch *gdbarch)
int is_unique_ancestor(struct type *base, struct value *val)
int dwarf2_evaluate_property(const struct dynamic_prop *prop, struct frame_info *frame, struct property_addr_info *addr_stack, CORE_ADDR *value)
#define TYPE_FN_FIELDLISTS(thistype)
#define TYPE_FIELD_STATIC_PHYSADDR(thistype, n)
const struct cplus_struct_type cplus_struct_default
struct type * lookup_methodptr_type(struct type *to_type)
#define TYPE_FN_FIELDLIST_NAME(thistype, n)
#define OBSTACK_ZALLOC(OBSTACK, TYPE)
const struct rank REFERENCE_CONVERSION_BADNESS
const char * type_name_no_tag(const struct type *type)
#define TYPE_LENGTH(thistype)
struct type * make_atomic_type(struct type *type)
static int array_type_has_dynamic_stride(struct type *type)
#define TYPE_ZALLOC(t, size)
#define FIELD_STATIC_PHYSADDR(thisfld)
std::string type_to_string(struct type *type)
#define TYPE_POINTER_TYPE(thistype)
#define TYPE_FN_FIELDLIST_LENGTH(thistype, n)
int compare_ranks(struct rank a, struct rank b)
#define FIELD_BITPOS(thisfld)
struct type * builtin_uint64
CORE_ADDR read_memory_typed_address(CORE_ADDR addr, struct type *type)
static struct type * resolve_dynamic_struct(struct type *type, struct property_addr_info *addr_stack)
int gdbarch_long_double_bit(struct gdbarch *gdbarch)
#define TYPE_FIELD_LOC_KIND(thistype, n)
struct type * builtin_int8
const struct floatformat * floatformats_arm_ext[BFD_ENDIAN_UNKNOWN]
#define TYPE_DECLARED_CLASS(t)
CORE_ADDR value_address(const struct value *value)
int gdbarch_short_bit(struct gdbarch *gdbarch)
#define TYPE_DESCRIPTIVE_TYPE(thistype)
#define TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL
int get_array_bounds(struct type *type, LONGEST *low_bound, LONGEST *high_bound)
int gdbarch_address_class_type_flags_to_name_p(struct gdbarch *gdbarch)
struct block_symbol lookup_symbol_in_language(const char *name, const struct block *block, const domain_enum domain, enum language lang, struct field_of_this_result *is_a_field_of_this)
struct type * builtin_void
int is_scalar_type_recursive(struct type *t)
int get_discrete_bounds(struct type *type, LONGEST *lowp, LONGEST *highp)
static hashval_t type_pair_hash(const void *item)
struct type * lookup_lvalue_reference_type(struct type *type)
#define FIELD_STATIC_PHYSNAME(thisfld)
#define TYPE_SELF_TYPE(thistype)
void make_vector_type(struct type *array_type)
void error(const char *fmt,...)
static struct dynamic_prop_list * copy_dynamic_prop_list(struct obstack *objfile_obstack, struct dynamic_prop_list *list)
struct gdbarch_data * gdbarch_data_register_post_init(gdbarch_data_post_init_ftype *post_init)
static int type_pair_eq(const void *item_lhs, const void *item_rhs)
const struct rank NULL_POINTER_CONVERSION_BADNESS
struct type * lookup_pointer_type(struct type *type)
#define TYPE_FN_FIELDLIST1(thistype, n)
struct type * arch_composite_type(struct gdbarch *gdbarch, const char *name, enum type_code code)
struct type * init_decfloat_type(struct objfile *objfile, int bit, const char *name)
struct dynamic_prop_list * next
#define FIELD_TYPE(thisfld)
struct type * builtin_unsigned_char
struct type * builtin_error
struct type * lookup_function_type(struct type *type)
enum return_reason reason
struct type * builtin_float
#define SET_FIELD_PHYSNAME(thisfld, name)
const struct rank BASE_PTR_CONVERSION_BADNESS
struct type * builtin_int
struct type * init_float_type(struct objfile *objfile, int bit, const char *name, const struct floatformat **floatformats)
#define TYPE_FN_FIELD_STUB(thisfn, n)