23 #if !defined (GDBTYPES_H) 70 #define B_SET(a,x) ((a)[(x)>>3] |= (1 << ((x)&7))) 71 #define B_CLR(a,x) ((a)[(x)>>3] &= ~(1 << ((x)&7))) 72 #define B_TST(a,x) ((a)[(x)>>3] & (1 << ((x)&7))) 73 #define B_TYPE unsigned char 74 #define B_BYTES(x) ( 1 + ((x)>>3) ) 75 #define B_CLRALL(a,x) memset ((a), 0, B_BYTES(x)) 205 #define TYPE_UNSIGNED(t) (TYPE_MAIN_TYPE (t)->flag_unsigned) 211 #define TYPE_NOSIGN(t) (TYPE_MAIN_TYPE (t)->flag_nosign) 217 #define TYPE_STUB(t) (TYPE_MAIN_TYPE (t)->flag_stub) 225 #define TYPE_TARGET_STUB(t) (TYPE_MAIN_TYPE (t)->flag_target_stub) 232 #define TYPE_PROTOTYPED(t) (TYPE_MAIN_TYPE (t)->flag_prototyped) 242 #define TYPE_INCOMPLETE(t) (TYPE_MAIN_TYPE (t)->flag_incomplete) 247 #define TYPE_VARARGS(t) (TYPE_MAIN_TYPE (t)->flag_varargs) 252 #define TYPE_VECTOR(t) (TYPE_MAIN_TYPE (t)->flag_vector) 264 #define TYPE_FIXED_INSTANCE(t) (TYPE_MAIN_TYPE (t)->flag_fixed_instance) 271 #define TYPE_STUB_SUPPORTED(t) (TYPE_MAIN_TYPE (t)->flag_stub_supported) 276 #define TYPE_NOTTEXT(t) (TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_NOTTEXT) 283 #define TYPE_GNU_IFUNC(t) (TYPE_MAIN_TYPE (t)->flag_gnu_ifunc) 289 #define TYPE_OBJFILE_OWNED(t) (TYPE_MAIN_TYPE (t)->flag_objfile_owned) 290 #define TYPE_OWNER(t) TYPE_MAIN_TYPE(t)->owner 291 #define TYPE_OBJFILE(t) (TYPE_OBJFILE_OWNED(t)? TYPE_OWNER(t).objfile : NULL) 299 #define TYPE_DECLARED_CLASS(t) (TYPE_MAIN_TYPE (t)->flag_declared_class) 305 #define TYPE_FLAG_ENUM(t) (TYPE_MAIN_TYPE (t)->flag_flag_enum) 310 #define TYPE_CONST(t) ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_CONST) != 0) 315 #define TYPE_VOLATILE(t) \ 316 ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_VOLATILE) != 0) 321 #define TYPE_RESTRICT(t) \ 322 ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_RESTRICT) != 0) 327 #define TYPE_ATOMIC(t) \ 328 ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_ATOMIC) != 0) 332 #define TYPE_IS_REFERENCE(t) \ 333 (TYPE_CODE (t) == TYPE_CODE_REF || TYPE_CODE (t) == TYPE_CODE_RVALUE_REF) 354 #define TYPE_CODE_SPACE(t) \ 355 ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_CODE_SPACE) != 0) 357 #define TYPE_DATA_SPACE(t) \ 358 ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_DATA_SPACE) != 0) 367 #define TYPE_ADDRESS_CLASS_1(t) (TYPE_INSTANCE_FLAGS(t) \ 368 & TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1) 369 #define TYPE_ADDRESS_CLASS_2(t) (TYPE_INSTANCE_FLAGS(t) \ 370 & TYPE_INSTANCE_FLAG_ADDRESS_CLASS_2) 371 #define TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL \ 372 (TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1 | TYPE_INSTANCE_FLAG_ADDRESS_CLASS_2) 373 #define TYPE_ADDRESS_CLASS_ALL(t) (TYPE_INSTANCE_FLAGS(t) \ 374 & TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL) 810 #define NULL_TYPE ((struct type *) 0) 885 #define VOFFSET_STATIC 1 1192 #define INIT_CPLUS_SPECIFIC(type) \ 1193 (TYPE_SPECIFIC_FIELD (type) = TYPE_SPECIFIC_CPLUS_STUFF, \ 1194 TYPE_RAW_CPLUS_SPECIFIC (type) = (struct cplus_struct_type*) \ 1195 &cplus_struct_default) 1197 #define ALLOCATE_CPLUS_STRUCT_TYPE(type) allocate_cplus_struct_type (type) 1199 #define HAVE_CPLUS_STRUCT(type) \ 1200 (TYPE_SPECIFIC_FIELD (type) == TYPE_SPECIFIC_CPLUS_STUFF \ 1201 && TYPE_RAW_CPLUS_SPECIFIC (type) != &cplus_struct_default) 1207 #define INIT_GNAT_SPECIFIC(type) \ 1208 (TYPE_SPECIFIC_FIELD (type) = TYPE_SPECIFIC_GNAT_STUFF, \ 1209 TYPE_GNAT_SPECIFIC (type) = (struct gnat_aux_type *) &gnat_aux_default) 1210 #define ALLOCATE_GNAT_AUX_TYPE(type) allocate_gnat_aux_type (type) 1213 #define HAVE_GNAT_AUX_INFO(type) \ 1214 (TYPE_SPECIFIC_FIELD (type) == TYPE_SPECIFIC_GNAT_STUFF) 1216 #define INIT_FUNC_SPECIFIC(type) \ 1217 (TYPE_SPECIFIC_FIELD (type) = TYPE_SPECIFIC_FUNC, \ 1218 TYPE_MAIN_TYPE (type)->type_specific.func_stuff = (struct func_type *) \ 1219 TYPE_ZALLOC (type, \ 1220 sizeof (*TYPE_MAIN_TYPE (type)->type_specific.func_stuff))) 1222 #define TYPE_INSTANCE_FLAGS(thistype) (thistype)->instance_flags 1223 #define TYPE_MAIN_TYPE(thistype) (thistype)->main_type 1224 #define TYPE_NAME(thistype) TYPE_MAIN_TYPE(thistype)->name 1225 #define TYPE_TAG_NAME(type) TYPE_MAIN_TYPE(type)->tag_name 1226 #define TYPE_TARGET_TYPE(thistype) TYPE_MAIN_TYPE(thistype)->target_type 1227 #define TYPE_POINTER_TYPE(thistype) (thistype)->pointer_type 1228 #define TYPE_REFERENCE_TYPE(thistype) (thistype)->reference_type 1229 #define TYPE_RVALUE_REFERENCE_TYPE(thistype) (thistype)->rvalue_reference_type 1230 #define TYPE_CHAIN(thistype) (thistype)->chain 1235 #define TYPE_LENGTH(thistype) (thistype)->length 1238 #define TYPE_CODE(thistype) TYPE_MAIN_TYPE(thistype)->code 1239 #define TYPE_NFIELDS(thistype) TYPE_MAIN_TYPE(thistype)->nfields 1240 #define TYPE_FIELDS(thistype) TYPE_MAIN_TYPE(thistype)->flds_bnds.fields 1242 #define TYPE_INDEX_TYPE(type) TYPE_FIELD_TYPE (type, 0) 1243 #define TYPE_RANGE_DATA(thistype) TYPE_MAIN_TYPE(thistype)->flds_bnds.bounds 1244 #define TYPE_LOW_BOUND(range_type) \ 1245 TYPE_RANGE_DATA(range_type)->low.data.const_val 1246 #define TYPE_HIGH_BOUND(range_type) \ 1247 TYPE_RANGE_DATA(range_type)->high.data.const_val 1248 #define TYPE_LOW_BOUND_UNDEFINED(range_type) \ 1249 (TYPE_RANGE_DATA(range_type)->low.kind == PROP_UNDEFINED) 1250 #define TYPE_HIGH_BOUND_UNDEFINED(range_type) \ 1251 (TYPE_RANGE_DATA(range_type)->high.kind == PROP_UNDEFINED) 1252 #define TYPE_HIGH_BOUND_KIND(range_type) \ 1253 TYPE_RANGE_DATA(range_type)->high.kind 1254 #define TYPE_LOW_BOUND_KIND(range_type) \ 1255 TYPE_RANGE_DATA(range_type)->low.kind 1258 #define TYPE_DATA_LOCATION(thistype) \ 1259 get_dyn_prop (DYN_PROP_DATA_LOCATION, thistype) 1260 #define TYPE_DATA_LOCATION_BATON(thistype) \ 1261 TYPE_DATA_LOCATION (thistype)->data.baton 1262 #define TYPE_DATA_LOCATION_ADDR(thistype) \ 1263 TYPE_DATA_LOCATION (thistype)->data.const_val 1264 #define TYPE_DATA_LOCATION_KIND(thistype) \ 1265 TYPE_DATA_LOCATION (thistype)->kind 1268 #define TYPE_ALLOCATED_PROP(thistype) \ 1269 get_dyn_prop (DYN_PROP_ALLOCATED, thistype) 1270 #define TYPE_ASSOCIATED_PROP(thistype) \ 1271 get_dyn_prop (DYN_PROP_ASSOCIATED, thistype) 1274 #define TYPE_DYN_PROP_LIST(thistype) \ 1275 TYPE_MAIN_TYPE(thistype)->dyn_prop_list 1276 #define TYPE_DYN_PROP_BATON(dynprop) \ 1278 #define TYPE_DYN_PROP_ADDR(dynprop) \ 1279 dynprop->data.const_val 1280 #define TYPE_DYN_PROP_KIND(dynprop) \ 1286 #define TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED(arraytype) \ 1287 TYPE_HIGH_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype)) 1288 #define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype) \ 1289 TYPE_LOW_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype)) 1291 #define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \ 1292 (TYPE_HIGH_BOUND(TYPE_INDEX_TYPE((arraytype)))) 1294 #define TYPE_ARRAY_LOWER_BOUND_VALUE(arraytype) \ 1295 (TYPE_LOW_BOUND(TYPE_INDEX_TYPE((arraytype)))) 1299 #define TYPE_SELF_TYPE(thistype) internal_type_self_type (thistype) 1308 #define TYPE_VPTR_FIELDNO(thistype) internal_type_vptr_fieldno (thistype) 1309 #define TYPE_VPTR_BASETYPE(thistype) internal_type_vptr_basetype (thistype) 1311 #define TYPE_NFN_FIELDS(thistype) TYPE_CPLUS_SPECIFIC(thistype)->nfn_fields 1312 #define TYPE_SPECIFIC_FIELD(thistype) \ 1313 TYPE_MAIN_TYPE(thistype)->type_specific_field 1319 #define TYPE_CPLUS_SPECIFIC(thistype) \ 1320 (!HAVE_CPLUS_STRUCT(thistype) \ 1321 ? (struct cplus_struct_type*)&cplus_struct_default \ 1322 : TYPE_RAW_CPLUS_SPECIFIC(thistype)) 1323 #define TYPE_RAW_CPLUS_SPECIFIC(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.cplus_stuff 1324 #define TYPE_FLOATFORMAT(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.floatformat 1325 #define TYPE_GNAT_SPECIFIC(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.gnat_stuff 1326 #define TYPE_DESCRIPTIVE_TYPE(thistype) TYPE_GNAT_SPECIFIC(thistype)->descriptive_type 1327 #define TYPE_CALLING_CONVENTION(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->calling_convention 1328 #define TYPE_NO_RETURN(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->is_noreturn 1329 #define TYPE_TAIL_CALL_LIST(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.func_stuff->tail_call_list 1330 #define TYPE_BASECLASS(thistype,index) TYPE_FIELD_TYPE(thistype, index) 1331 #define TYPE_N_BASECLASSES(thistype) TYPE_CPLUS_SPECIFIC(thistype)->n_baseclasses 1332 #define TYPE_BASECLASS_NAME(thistype,index) TYPE_FIELD_NAME(thistype, index) 1333 #define TYPE_BASECLASS_BITPOS(thistype,index) TYPE_FIELD_BITPOS(thistype,index) 1334 #define BASETYPE_VIA_PUBLIC(thistype, index) \ 1335 ((!TYPE_FIELD_PRIVATE(thistype, index)) && (!TYPE_FIELD_PROTECTED(thistype, index))) 1336 #define TYPE_CPLUS_DYNAMIC(thistype) TYPE_CPLUS_SPECIFIC (thistype)->is_dynamic 1338 #define BASETYPE_VIA_VIRTUAL(thistype, index) \ 1339 (TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits == NULL ? 0 \ 1340 : B_TST(TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits, (index))) 1342 #define FIELD_TYPE(thisfld) ((thisfld).type) 1343 #define FIELD_NAME(thisfld) ((thisfld).name) 1344 #define FIELD_LOC_KIND(thisfld) ((thisfld).loc_kind) 1345 #define FIELD_BITPOS_LVAL(thisfld) ((thisfld).loc.bitpos) 1346 #define FIELD_BITPOS(thisfld) (FIELD_BITPOS_LVAL (thisfld) + 0) 1347 #define FIELD_ENUMVAL_LVAL(thisfld) ((thisfld).loc.enumval) 1348 #define FIELD_ENUMVAL(thisfld) (FIELD_ENUMVAL_LVAL (thisfld) + 0) 1349 #define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname) 1350 #define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr) 1351 #define FIELD_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block) 1352 #define SET_FIELD_BITPOS(thisfld, bitpos) \ 1353 (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_BITPOS, \ 1354 FIELD_BITPOS_LVAL (thisfld) = (bitpos)) 1355 #define SET_FIELD_ENUMVAL(thisfld, enumval) \ 1356 (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_ENUMVAL, \ 1357 FIELD_ENUMVAL_LVAL (thisfld) = (enumval)) 1358 #define SET_FIELD_PHYSNAME(thisfld, name) \ 1359 (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME, \ 1360 FIELD_STATIC_PHYSNAME (thisfld) = (name)) 1361 #define SET_FIELD_PHYSADDR(thisfld, addr) \ 1362 (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \ 1363 FIELD_STATIC_PHYSADDR (thisfld) = (addr)) 1364 #define SET_FIELD_DWARF_BLOCK(thisfld, addr) \ 1365 (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_DWARF_BLOCK, \ 1366 FIELD_DWARF_BLOCK (thisfld) = (addr)) 1367 #define FIELD_ARTIFICIAL(thisfld) ((thisfld).artificial) 1368 #define FIELD_BITSIZE(thisfld) ((thisfld).bitsize) 1370 #define TYPE_FIELD(thistype, n) TYPE_MAIN_TYPE(thistype)->flds_bnds.fields[n] 1371 #define TYPE_FIELD_TYPE(thistype, n) FIELD_TYPE(TYPE_FIELD(thistype, n)) 1372 #define TYPE_FIELD_NAME(thistype, n) FIELD_NAME(TYPE_FIELD(thistype, n)) 1373 #define TYPE_FIELD_LOC_KIND(thistype, n) FIELD_LOC_KIND (TYPE_FIELD (thistype, n)) 1374 #define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n)) 1375 #define TYPE_FIELD_ENUMVAL(thistype, n) FIELD_ENUMVAL (TYPE_FIELD (thistype, n)) 1376 #define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n)) 1377 #define TYPE_FIELD_STATIC_PHYSADDR(thistype, n) FIELD_STATIC_PHYSADDR (TYPE_FIELD (thistype, n)) 1378 #define TYPE_FIELD_DWARF_BLOCK(thistype, n) FIELD_DWARF_BLOCK (TYPE_FIELD (thistype, n)) 1379 #define TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL(TYPE_FIELD(thistype,n)) 1380 #define TYPE_FIELD_BITSIZE(thistype, n) FIELD_BITSIZE(TYPE_FIELD(thistype,n)) 1381 #define TYPE_FIELD_PACKED(thistype, n) (FIELD_BITSIZE(TYPE_FIELD(thistype,n))!=0) 1383 #define TYPE_FIELD_PRIVATE_BITS(thistype) \ 1384 TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits 1385 #define TYPE_FIELD_PROTECTED_BITS(thistype) \ 1386 TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits 1387 #define TYPE_FIELD_IGNORE_BITS(thistype) \ 1388 TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits 1389 #define TYPE_FIELD_VIRTUAL_BITS(thistype) \ 1390 TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits 1391 #define SET_TYPE_FIELD_PRIVATE(thistype, n) \ 1392 B_SET (TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits, (n)) 1393 #define SET_TYPE_FIELD_PROTECTED(thistype, n) \ 1394 B_SET (TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits, (n)) 1395 #define SET_TYPE_FIELD_IGNORE(thistype, n) \ 1396 B_SET (TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits, (n)) 1397 #define SET_TYPE_FIELD_VIRTUAL(thistype, n) \ 1398 B_SET (TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits, (n)) 1399 #define TYPE_FIELD_PRIVATE(thistype, n) \ 1400 (TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits == NULL ? 0 \ 1401 : B_TST(TYPE_CPLUS_SPECIFIC(thistype)->private_field_bits, (n))) 1402 #define TYPE_FIELD_PROTECTED(thistype, n) \ 1403 (TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits == NULL ? 0 \ 1404 : B_TST(TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits, (n))) 1405 #define TYPE_FIELD_IGNORE(thistype, n) \ 1406 (TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits == NULL ? 0 \ 1407 : B_TST(TYPE_CPLUS_SPECIFIC(thistype)->ignore_field_bits, (n))) 1408 #define TYPE_FIELD_VIRTUAL(thistype, n) \ 1409 (TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits == NULL ? 0 \ 1410 : B_TST(TYPE_CPLUS_SPECIFIC(thistype)->virtual_field_bits, (n))) 1412 #define TYPE_FN_FIELDLISTS(thistype) TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists 1413 #define TYPE_FN_FIELDLIST(thistype, n) TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n] 1414 #define TYPE_FN_FIELDLIST1(thistype, n) TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].fn_fields 1415 #define TYPE_FN_FIELDLIST_NAME(thistype, n) TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].name 1416 #define TYPE_FN_FIELDLIST_LENGTH(thistype, n) TYPE_CPLUS_SPECIFIC(thistype)->fn_fieldlists[n].length 1418 #define TYPE_N_TEMPLATE_ARGUMENTS(thistype) \ 1419 TYPE_CPLUS_SPECIFIC (thistype)->n_template_arguments 1420 #define TYPE_TEMPLATE_ARGUMENTS(thistype) \ 1421 TYPE_CPLUS_SPECIFIC (thistype)->template_arguments 1422 #define TYPE_TEMPLATE_ARGUMENT(thistype, n) \ 1423 TYPE_CPLUS_SPECIFIC (thistype)->template_arguments[n] 1425 #define TYPE_FN_FIELD(thisfn, n) (thisfn)[n] 1426 #define TYPE_FN_FIELD_PHYSNAME(thisfn, n) (thisfn)[n].physname 1427 #define TYPE_FN_FIELD_TYPE(thisfn, n) (thisfn)[n].type 1428 #define TYPE_FN_FIELD_ARGS(thisfn, n) TYPE_FIELDS ((thisfn)[n].type) 1429 #define TYPE_FN_FIELD_CONST(thisfn, n) ((thisfn)[n].is_const) 1430 #define TYPE_FN_FIELD_VOLATILE(thisfn, n) ((thisfn)[n].is_volatile) 1431 #define TYPE_FN_FIELD_PRIVATE(thisfn, n) ((thisfn)[n].is_private) 1432 #define TYPE_FN_FIELD_PROTECTED(thisfn, n) ((thisfn)[n].is_protected) 1433 #define TYPE_FN_FIELD_ARTIFICIAL(thisfn, n) ((thisfn)[n].is_artificial) 1434 #define TYPE_FN_FIELD_STUB(thisfn, n) ((thisfn)[n].is_stub) 1435 #define TYPE_FN_FIELD_CONSTRUCTOR(thisfn, n) ((thisfn)[n].is_constructor) 1436 #define TYPE_FN_FIELD_FCONTEXT(thisfn, n) ((thisfn)[n].fcontext) 1437 #define TYPE_FN_FIELD_VOFFSET(thisfn, n) ((thisfn)[n].voffset-2) 1438 #define TYPE_FN_FIELD_VIRTUAL_P(thisfn, n) ((thisfn)[n].voffset > 1) 1439 #define TYPE_FN_FIELD_STATIC_P(thisfn, n) ((thisfn)[n].voffset == VOFFSET_STATIC) 1442 #define TYPE_TYPEDEF_FIELD_ARRAY(thistype) \ 1443 TYPE_CPLUS_SPECIFIC (thistype)->typedef_field 1444 #define TYPE_TYPEDEF_FIELD(thistype, n) \ 1445 TYPE_CPLUS_SPECIFIC (thistype)->typedef_field[n] 1446 #define TYPE_TYPEDEF_FIELD_NAME(thistype, n) \ 1447 TYPE_TYPEDEF_FIELD (thistype, n).name 1448 #define TYPE_TYPEDEF_FIELD_TYPE(thistype, n) \ 1449 TYPE_TYPEDEF_FIELD (thistype, n).type 1450 #define TYPE_TYPEDEF_FIELD_COUNT(thistype) \ 1451 TYPE_CPLUS_SPECIFIC (thistype)->typedef_field_count 1452 #define TYPE_TYPEDEF_FIELD_PROTECTED(thistype, n) \ 1453 TYPE_TYPEDEF_FIELD (thistype, n).is_protected 1454 #define TYPE_TYPEDEF_FIELD_PRIVATE(thistype, n) \ 1455 TYPE_TYPEDEF_FIELD (thistype, n).is_private 1457 #define TYPE_NESTED_TYPES_ARRAY(thistype) \ 1458 TYPE_CPLUS_SPECIFIC (thistype)->nested_types 1459 #define TYPE_NESTED_TYPES_FIELD(thistype, n) \ 1460 TYPE_CPLUS_SPECIFIC (thistype)->nested_types[n] 1461 #define TYPE_NESTED_TYPES_FIELD_NAME(thistype, n) \ 1462 TYPE_NESTED_TYPES_FIELD (thistype, n).name 1463 #define TYPE_NESTED_TYPES_FIELD_TYPE(thistype, n) \ 1464 TYPE_NESTED_TYPES_FIELD (thistype, n).type 1465 #define TYPE_NESTED_TYPES_COUNT(thistype) \ 1466 TYPE_CPLUS_SPECIFIC (thistype)->nested_types_count 1467 #define TYPE_NESTED_TYPES_FIELD_PROTECTED(thistype, n) \ 1468 TYPE_NESTED_TYPES_FIELD (thistype, n).is_protected 1469 #define TYPE_NESTED_TYPES_FIELD_PRIVATE(thistype, n) \ 1470 TYPE_NESTED_TYPES_FIELD (thistype, n).is_private 1472 #define TYPE_IS_OPAQUE(thistype) \ 1473 (((TYPE_CODE (thistype) == TYPE_CODE_STRUCT) \ 1474 || (TYPE_CODE (thistype) == TYPE_CODE_UNION)) \ 1475 && (TYPE_NFIELDS (thistype) == 0) \ 1476 && (!HAVE_CPLUS_STRUCT (thistype) \ 1477 || TYPE_NFN_FIELDS (thistype) == 0) \ 1478 && (TYPE_STUB (thistype) || !TYPE_STUB_SUPPORTED (thistype))) 1483 #define TYPE_SAFE_NAME(type) \ 1484 (TYPE_NAME (type) ? TYPE_NAME (type) : _("<unnamed type>")) 1489 #define TYPE_ERROR_NAME(type) \ 1490 (TYPE_NAME (type) ? TYPE_NAME (type) : _("<error type>")) 1652 #define TYPE_ALLOC(t,size) \ 1653 (TYPE_OBJFILE_OWNED (t) \ 1654 ? obstack_alloc (&TYPE_OBJFILE (t) -> objfile_obstack, size) \ 1657 #define TYPE_ZALLOC(t,size) \ 1658 (TYPE_OBJFILE_OWNED (t) \ 1659 ? memset (obstack_alloc (&TYPE_OBJFILE (t)->objfile_obstack, size), \ 1699 const struct floatformat **);
1716 const struct floatformat **);
1746 int start_bitpos,
int nr_bits,
1747 struct type *field_type,
const char *
name);
1777 int space_identifier);
1784 struct type *to_type,
struct field *args,
1785 int nargs,
int varargs);
1836 struct gdbarch *,
const char *);
1839 struct gdbarch *,
const char *);
1880 struct gdbarch *,
const char *,
1881 const struct block *,
int);
1884 const struct block *);
1905 #define LENGTH_MATCH(bv) ((bv)->rank[0]) 1941 #define REFERENCE_CONVERSION_RVALUE 1 1943 #define REFERENCE_CONVERSION_CONST_LVALUE 2 1950 #define CV_CONVERSION_CONST 1 1951 #define CV_CONVERSION_VOLATILE 2 1968 struct value **,
int);
2001 htab_t copied_types);
const struct floatformat * floatformats_ia64_quad[BFD_ENDIAN_UNKNOWN]
B_TYPE * private_field_bits
const struct floatformat * floatformats_vax_d[BFD_ENDIAN_UNKNOWN]
struct type * arch_composite_type(struct gdbarch *gdbarch, const char *name, enum type_code code)
const struct rank NS_POINTER_CONVERSION_BADNESS
struct rank sum_ranks(struct rank a, struct rank b)
void get_unsigned_type_max(struct type *, ULONGEST *)
struct dwarf2_per_cu_data * per_cu
struct type * builtin_declong
DEF_ENUM_FLAGS_TYPE(enum type_instance_flag_value, type_instance_flags)
const struct objfile_type * objfile_type(struct objfile *objfile)
unsigned int flag_varargs
union dynamic_prop_data data
struct call_site * tail_call_list
struct type * builtin_func_ptr
int is_floating_type(struct type *)
struct type * builtin_long_double
struct type * builtin_true_unsigned_char
__extension__ enum field_loc_kind loc_kind
const struct floatformat * floatformats_ieee_half[BFD_ENDIAN_UNKNOWN]
struct type * builtin_void
int is_public_ancestor(struct type *, struct type *)
struct fn_field * fn_fields
struct type * builtin_unsigned_int
const struct cplus_struct_type cplus_struct_default
struct badness_vector * rank_function(struct type **, int, struct value **, int)
struct type * builtin_double_complex
const struct rank REFERENCE_CONVERSION_BADNESS
struct type * make_cv_type(int, int, struct type *, struct type **)
const struct gnat_aux_type gnat_aux_default
const struct rank BASE_PTR_CONVERSION_BADNESS
const struct builtin_type * builtin_type(struct gdbarch *gdbarch)
struct type * builtin_double
const struct rank INCOMPATIBLE_TYPE_BADNESS
struct type * builtin_long_double
const struct rank LENGTH_MISMATCH_BADNESS
struct type * arch_flags_type(struct gdbarch *gdbarch, const char *name, int bit)
unsigned int flag_fixed_instance
const struct floatformat * floatformats_vax_f[BFD_ENDIAN_UNKNOWN]
unsigned typedef_field_count
struct type * rvalue_reference_type
int class_types_same_p(const struct type *, const struct type *)
const char * type_name_no_tag_or_error(struct type *type)
struct rank rank_one_type(struct type *, struct type *, struct value *)
struct type * init_boolean_type(struct objfile *, int, int, const char *)
struct type * builtin_func_func
int is_scalar_type_recursive(struct type *)
char * gdb_mangle_name(struct type *, int, int)
struct type * builtin_uint8
struct type * builtin_float
struct type * builtin_uint16
struct type * create_array_type(struct type *, struct type *, struct type *)
struct type * arch_pointer_type(struct gdbarch *, int, const char *, struct type *)
int discrete_position(struct type *type, LONGEST val, LONGEST *pos)
struct type * lookup_methodptr_type(struct type *)
struct type * allocate_stub_method(struct type *)
void append_flags_type_field(struct type *type, int start_bitpos, int nr_bits, struct type *field_type, const char *name)
const struct floatformat * floatformats_ieee_double_littlebyte_bigword[BFD_ENDIAN_UNKNOWN]
struct type * nodebug_data_symbol
struct type * arch_integer_type(struct gdbarch *, int, int, const char *)
unsigned int flag_gnu_ifunc
struct field * append_composite_type_field_raw(struct type *t, const char *name, struct type *field)
int type_not_allocated(const struct type *type)
void replace_type(struct type *, struct type *)
struct type * builtin_short
struct type * copy_type_recursive(struct objfile *objfile, struct type *type, htab_t copied_types)
struct type * builtin_core_addr
struct type * builtin_long_long
struct type * pointer_type
struct type * builtin_complex
int compare_badness(struct badness_vector *, struct badness_vector *)
struct type * builtin_long
const struct rank FLOAT_PROMOTION_BADNESS
struct type * init_integer_type(struct objfile *, int, int, const char *)
unsigned int flag_prototyped
struct dwarf2_locexpr_baton * dwarf_block
void set_type_self_type(struct type *, struct type *)
struct type * reference_type
struct type * copy_type(const struct type *type)
struct dynamic_prop_list * dyn_prop_list
struct type * arch_complex_type(struct gdbarch *, const char *, struct type *)
struct type * builtin_signed_char
struct type * internal_type_vptr_basetype(struct type *)
struct type * builtin_int32
struct type * create_set_type(struct type *, struct type *)
struct type * builtin_short
struct type * builtin_char16
unsigned int flag_objfile_owned
unsigned short n_template_arguments
struct type * make_function_type(struct type *, struct type **)
int get_discrete_bounds(struct type *, LONGEST *, LONGEST *)
void append_composite_type_field(struct type *t, const char *name, struct type *field)
int is_scalar_type(struct type *type)
struct type * nodebug_text_gnu_ifunc_symbol
unsigned int flag_stub_supported
struct type * init_type(struct objfile *, enum type_code, int, const char *)
struct type * target_type
struct cplus_struct_type * cplus_stuff
int flag_upper_bound_is_count
struct type * builtin_int128
unsigned calling_convention
const struct rank EXACT_MATCH_BADNESS
enum dynamic_prop_node_kind prop_kind
struct type * builtin_decdouble
struct type * builtin_unsigned_long_long
struct type * builtin_unsigned_long
struct type * make_reference_type(struct type *, struct type **, enum type_code)
struct type * builtin_char32
void recursive_dump_type(struct type *, int)
int can_dereference(struct type *)
void add_dyn_prop(enum dynamic_prop_node_kind kind, struct dynamic_prop prop, struct type *type, struct objfile *objfile)
struct gnat_aux_type * gnat_stuff
unsigned int type_length_units(struct type *type)
struct type * lookup_function_type(struct type *)
const struct rank INTEGER_PROMOTION_BADNESS
struct type * builtin_char
union main_type::@66 flds_bnds
const struct rank BASE_CONVERSION_BADNESS
struct type * builtin_int16
int type_not_associated(const struct type *type)
struct type * builtin_unsigned_long
struct type * nodebug_tls_symbol
struct type * make_type_with_address_space(struct type *type, int space_identifier)
struct type * init_pointer_type(struct objfile *, int, const char *, struct type *)
void append_composite_type_field_aligned(struct type *t, const char *name, struct type *field, int alignment)
htab_t create_copied_types_hash(struct objfile *objfile)
struct type * make_unqualified_type(struct type *)
struct func_type * func_stuff
void smash_to_methodptr_type(struct type *, struct type *)
struct type * resolve_dynamic_type(struct type *type, const gdb_byte *valaddr, CORE_ADDR addr)
struct type * builtin_int0
struct type * create_array_type_with_stride(struct type *, struct type *, struct type *, struct dynamic_prop *, unsigned int)
static bool operator!=(const dynamic_prop &l, const dynamic_prop &r)
__extension__ enum field_loc_kind loc_kind
const struct floatformat * floatformats_ieee_double[BFD_ENDIAN_UNKNOWN]
struct type * builtin_uint32
__extension__ enum type_specific_kind type_specific_field
B_TYPE * ignore_field_bits
struct dynamic_prop * get_dyn_prop(enum dynamic_prop_node_kind kind, const struct type *type)
const struct floatformat * floatformat
struct type * alloc_type_arch(struct gdbarch *)
const struct floatformat * floatformat_from_type(const struct type *type)
struct type * builtin_decfloat
const struct rank NS_INTEGER_POINTER_CONVERSION_BADNESS
struct type * nodebug_got_plt_symbol
struct type * builtin_long
const struct rank BOOL_CONVERSION_BADNESS
struct type * builtin_unsigned_char
struct type * arch_boolean_type(struct gdbarch *, int, int, const char *)
struct type * lookup_rvalue_reference_type(struct type *)
void maintenance_print_type(const char *, int)
const char * type_name_no_tag(const struct type *)
void append_flags_type_flag(struct type *type, int bitpos, const char *name)
const struct rank VOID_PTR_CONVERSION_BADNESS
unsigned int flag_flag_enum
struct type * create_static_range_type(struct type *, struct type *, LONGEST, LONGEST)
const struct floatformat * floatformats_ieee_single[BFD_ENDIAN_UNKNOWN]
struct type * builtin_bool
struct type * builtin_uint128
struct type * builtin_unsigned_long_long
struct type * alloc_type(struct objfile *)
struct type * builtin_signed_char
DEFINE_OFFSET_TYPE(cu_offset, unsigned int)
struct type * builtin_unsigned_short
struct type * create_string_type(struct type *, struct type *, struct type *)
struct type * make_pointer_type(struct type *, struct type **)
int is_ancestor(struct type *, struct type *)
struct type * init_decfloat_type(struct objfile *, int, const char *)
struct type * builtin_string
const struct rank INT_FLOAT_CONVERSION_BADNESS
struct type * builtin_int
struct type * lookup_array_range_type(struct type *, LONGEST, LONGEST)
const struct floatformat * floatformats_i387_ext[BFD_ENDIAN_UNKNOWN]
struct type * builtin_unsigned_short
struct type * init_vector_type(struct type *elt_type, int n)
struct type * lookup_typename(const struct language_defn *, struct gdbarch *, const char *, const struct block *, int)
struct type * init_character_type(struct objfile *, int, int, const char *)
struct type * arch_decfloat_type(struct gdbarch *, int, const char *)
struct type * nodebug_unknown_symbol
struct type * builtin_wchar
int address_space_name_to_int(struct gdbarch *, char *)
const struct rank FLOAT_CONVERSION_BADNESS
unsigned int is_protected
unsigned int is_constructor
struct type * lookup_signed_typename(const struct language_defn *, struct gdbarch *, const char *)
const char * address_space_int_to_name(struct gdbarch *, int)
int get_vptr_fieldno(struct type *, struct type **)
__extension__ enum call_site_parameter_kind kind
struct type * builtin_char
struct type * make_restrict_type(struct type *)
struct type * get_target_type(struct type *type)
const struct floatformat * floatformats_arm_ext[BFD_ENDIAN_UNKNOWN]
const struct floatformat * floatformats_ia64_spill[BFD_ENDIAN_UNKNOWN]
struct type * builtin_double
int is_integral_type(struct type *)
struct type * internal_fn
struct type * lookup_struct_elt_type(struct type *, const char *, int)
struct type * alloc_type_copy(const struct type *)
struct fn_fieldlist * fn_fieldlists
struct type * lookup_string_range_type(struct type *, LONGEST, LONGEST)
void check_stub_method_group(struct type *, int)
struct type * lookup_memberptr_type(struct type *, struct type *)
struct type * make_atomic_type(struct type *)
const struct rank TOO_FEW_PARAMS_BADNESS
struct type * builtin_true_char
struct decl_field * typedef_field
struct type * builtin_data_ptr
struct type * arch_character_type(struct gdbarch *, int, int, const char *)
const gdb_byte * data_value
__extension__ enum type_code code
struct call_site_parameter parameter[1]
struct type * init_complex_type(struct objfile *, const char *, struct type *)
struct gdbarch * get_type_arch(const struct type *)
struct symbol ** template_arguments
int compare_ranks(struct rank a, struct rank b)
void allocate_cplus_struct_type(struct type *)
void smash_to_method_type(struct type *type, struct type *self_type, struct type *to_type, struct field *args, int nargs, int varargs)
const struct floatformat * floatformats_m68881_ext[BFD_ENDIAN_UNKNOWN]
int get_array_bounds(struct type *type, LONGEST *low_bound, LONGEST *high_bound)
void smash_to_memberptr_type(struct type *, struct type *, struct type *)
unsigned int flag_unsigned
void get_signed_type_minmax(struct type *, LONGEST *, LONGEST *)
struct type * nodebug_text_symbol
struct type * init_float_type(struct objfile *, int, const char *, const struct floatformat **)
unsigned int flag_incomplete
struct main_type * main_type
struct type * lookup_unsigned_typename(const struct language_defn *, struct gdbarch *, const char *)
int class_or_union_p(const struct type *)
void set_type_vptr_fieldno(struct type *, int)
enum dynamic_prop_kind kind
void print_scalar_formatted(const gdb_byte *, struct type *, const struct value_print_options *, int, struct ui_file *)
unsigned int flag_declared_class
unsigned long long ULONGEST
struct type * lookup_lvalue_reference_type(struct type *)
B_TYPE * protected_field_bits
struct type * builtin_long_long
struct type * lookup_pointer_type(struct type *)
struct type * builtin_unsigned_int
B_TYPE * virtual_field_bits
struct type * builtin_int64
const struct rank CV_CONVERSION_BADNESS
struct call_site * tail_call_next
struct type * check_typedef(struct type *)
unsigned int flag_target_stub
struct type * arch_float_type(struct gdbarch *, int, const char *, const struct floatformat **)
struct type * descriptive_type
struct type * lookup_template_type(char *, struct type *, const struct block *)
int is_unique_ancestor(struct type *, struct value *)
unsigned int is_artificial
int is_dynamic_type(struct type *type)
int types_equal(struct type *, struct type *)
struct type * arch_type(struct gdbarch *, enum type_code, int, const char *)
struct type * builtin_uint64
struct type * lookup_reference_type(struct type *, enum type_code)
struct type * vptr_basetype
int field_is_static(struct field *)
struct type * builtin_int8
unsigned nested_types_count
unsigned int is_protected
const struct floatformat * floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN]
struct call_site_target target
bool operator==(const dynamic_prop &l, const dynamic_prop &r)
struct type * builtin_void
struct range_bounds * bounds
int types_deeply_equal(struct type *, struct type *)
union call_site_parameter_u u
void remove_dyn_prop(enum dynamic_prop_node_kind prop_kind, struct type *type)
struct decl_field * nested_types
struct type * create_range_type(struct type *, struct type *, const struct dynamic_prop *, const struct dynamic_prop *)
struct dynamic_prop_list * next
struct type * internal_type_self_type(struct type *)
struct type * builtin_unsigned_char
struct type * builtin_error
struct type * builtin_float
const struct rank NULL_POINTER_CONVERSION
void set_type_vptr_basetype(struct type *, struct type *)
struct type * builtin_int
void allocate_gnat_aux_type(struct type *)
const struct rank INTEGER_CONVERSION_BADNESS
struct type * lookup_function_type_with_arguments(struct type *, int, struct type **)
void make_vector_type(struct type *array_type)
int internal_type_vptr_fieldno(struct type *)