Use type_instance_flags more throughout
A later patch in this series will rewrite enum_flags fixing some API holes. That would cause build failures around code using type_instance_flags. Or rather, that should be using it, but wasn't. This patch fixes it by using type_instance_flags throughout instead of plain integers. Note that we can't make the seemingly obvious change to struct type::instance_flags: - unsigned instance_flags : 9; + ENUM_BITFIELD (type_instance_flag_value) instance_flags : 9; Because G++ complains then that 9 bits isn't sufficient for holding all values of type_instance_flag_value. So the patch adds an type::instance_flags() method, which takes care of casting appropriately, and adds a separate type::set_instance_flags method, following the pattern of the ongoing TYPE_XXX macro elimination. This converts uses of TYPE_INSTANCE_FLAGS to type::instance_flags() in the places where the code was already being touched, but there are still many references to the TYPE_INSTANCE_FLAGS macro left behind. Those could/should be fully replaced at some point. gdb/ChangeLog: * avr-tdep.c (avr_address_class_type_flags): Return type_instance_flags. (avr_address_class_type_flags_to_name): Take a type_instance_flags. (avr_address_class_name_to_type_flags): Return bool and take a type_instance_flags. * d-lang.c (build_d_types): Use type::set_instance_flags. * ft32-tdep.c (ft32_address_class_type_flags): Return type_instance_flags. (ft32_address_class_type_flags_to_name): Take a type_instance_flags. (ft32_address_class_name_to_type_flags): Return bool and take a type_instance_flags. (ft32_gdbarch_init): Use type::set_instance_flags. * eval.c (fake_method::fake_method): Use type::set_instance_flags. * gdbarch.h, gdbarch.c: Regenerate. * gdbarch.sh (address_class_type_flags): Use type_instance_flags. (address_class_name_to_type_flags): Use type_instance_flags and bool. * gdbtypes.c (address_space_name_to_int) (address_space_int_to_name, make_qualified_type): Use type_instance_flags. (make_qualified_type): Use type_instance_flags and type::set_instance_flags. (make_type_with_address_space, make_cv_type, make_vector_type) (check_typedef): Use type_instance_flags. (recursive_dump_type): Cast type_instance_flags to unsigned for printing. (copy_type_recursive): Use type::set_instance_flags. (gdbtypes_post_init): Use type::set_instance_flags. * gdbtypes.h (struct type) <instance_flags>: Rename to ... <m_instance_flags>: ... this. <instance_flags, set_instance_flags>: New methods. (TYPE_INSTANCE_FLAGS): Use the instance_flags method. (SET_TYPE_INSTANCE_FLAGS): New. (address_space_name_to_int, address_space_int_to_name) (make_type_with_address_space): Pass flags using type_instance_flags instead of int. * stabsread.c (cleanup_undefined_types_noname): Use type::set_instance_flags. * s390-tdep.c (s390_address_class_type_flags): Return type_instance_flags. (s390_address_class_type_flags_to_name): Take a type_instance_flags. (s390_address_class_name_to_type_flags): Return bool and take a type_instance_flags. * type-stack.c (type_stack::follow_types): Use type_instance_flags. * dwarf2/read.c (read_tag_pointer_type): Use type_instance_flags.
This commit is contained in:
parent
27087b7f6c
commit
314ad88df6
14 changed files with 168 additions and 85 deletions
|
@ -1,3 +1,56 @@
|
||||||
|
2020-09-14 Pedro Alves <pedro@palves.net>
|
||||||
|
Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
|
* avr-tdep.c (avr_address_class_type_flags): Return
|
||||||
|
type_instance_flags.
|
||||||
|
(avr_address_class_type_flags_to_name): Take a
|
||||||
|
type_instance_flags.
|
||||||
|
(avr_address_class_name_to_type_flags): Return bool and take a
|
||||||
|
type_instance_flags.
|
||||||
|
* d-lang.c (build_d_types): Use type::set_instance_flags.
|
||||||
|
* ft32-tdep.c (ft32_address_class_type_flags): Return
|
||||||
|
type_instance_flags.
|
||||||
|
(ft32_address_class_type_flags_to_name): Take a
|
||||||
|
type_instance_flags.
|
||||||
|
(ft32_address_class_name_to_type_flags): Return bool and take a
|
||||||
|
type_instance_flags.
|
||||||
|
(ft32_gdbarch_init): Use type::set_instance_flags.
|
||||||
|
* eval.c (fake_method::fake_method): Use type::set_instance_flags.
|
||||||
|
* gdbarch.h, gdbarch.c: Regenerate.
|
||||||
|
* gdbarch.sh (address_class_type_flags): Use type_instance_flags.
|
||||||
|
(address_class_name_to_type_flags): Use type_instance_flags and
|
||||||
|
bool.
|
||||||
|
* gdbtypes.c (address_space_name_to_int)
|
||||||
|
(address_space_int_to_name, make_qualified_type): Use
|
||||||
|
type_instance_flags.
|
||||||
|
(make_qualified_type): Use type_instance_flags and
|
||||||
|
type::set_instance_flags.
|
||||||
|
(make_type_with_address_space, make_cv_type, make_vector_type)
|
||||||
|
(check_typedef): Use type_instance_flags.
|
||||||
|
(recursive_dump_type): Cast type_instance_flags to unsigned for
|
||||||
|
printing.
|
||||||
|
(copy_type_recursive): Use type::set_instance_flags.
|
||||||
|
(gdbtypes_post_init): Use type::set_instance_flags.
|
||||||
|
* gdbtypes.h (struct type) <instance_flags>: Rename to ...
|
||||||
|
<m_instance_flags>: ... this.
|
||||||
|
<instance_flags, set_instance_flags>: New methods.
|
||||||
|
(TYPE_INSTANCE_FLAGS): Use the instance_flags method.
|
||||||
|
(SET_TYPE_INSTANCE_FLAGS): New.
|
||||||
|
(address_space_name_to_int, address_space_int_to_name)
|
||||||
|
(make_type_with_address_space): Pass flags using
|
||||||
|
type_instance_flags instead of int.
|
||||||
|
* stabsread.c (cleanup_undefined_types_noname): Use
|
||||||
|
type::set_instance_flags.
|
||||||
|
* s390-tdep.c (s390_address_class_type_flags): Return
|
||||||
|
type_instance_flags.
|
||||||
|
(s390_address_class_type_flags_to_name): Take a
|
||||||
|
type_instance_flags.
|
||||||
|
(s390_address_class_name_to_type_flags): Return bool and take a
|
||||||
|
type_instance_flags.
|
||||||
|
* type-stack.c (type_stack::follow_types): Use
|
||||||
|
type_instance_flags.
|
||||||
|
* dwarf2/read.c (read_tag_pointer_type): Use type_instance_flags.
|
||||||
|
|
||||||
2020-09-14 Tom Tromey <tromey@adacore.com>
|
2020-09-14 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
* x86-tdep.h (x86_in_indirect_branch_thunk): Update.
|
* x86-tdep.h (x86_in_indirect_branch_thunk): Update.
|
||||||
|
|
|
@ -1372,7 +1372,7 @@ avr_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
|
||||||
This method maps DW_AT_address_class attributes to a
|
This method maps DW_AT_address_class attributes to a
|
||||||
type_instance_flag_value. */
|
type_instance_flag_value. */
|
||||||
|
|
||||||
static int
|
static type_instance_flags
|
||||||
avr_address_class_type_flags (int byte_size, int dwarf2_addr_class)
|
avr_address_class_type_flags (int byte_size, int dwarf2_addr_class)
|
||||||
{
|
{
|
||||||
/* The value 1 of the DW_AT_address_class attribute corresponds to the
|
/* The value 1 of the DW_AT_address_class attribute corresponds to the
|
||||||
|
@ -1389,7 +1389,8 @@ avr_address_class_type_flags (int byte_size, int dwarf2_addr_class)
|
||||||
Convert a type_instance_flag_value to an address space qualifier. */
|
Convert a type_instance_flag_value to an address space qualifier. */
|
||||||
|
|
||||||
static const char*
|
static const char*
|
||||||
avr_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
|
avr_address_class_type_flags_to_name (struct gdbarch *gdbarch,
|
||||||
|
type_instance_flags type_flags)
|
||||||
{
|
{
|
||||||
if (type_flags & AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH)
|
if (type_flags & AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH)
|
||||||
return "flash";
|
return "flash";
|
||||||
|
@ -1401,18 +1402,18 @@ avr_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
|
||||||
|
|
||||||
Convert an address space qualifier to a type_instance_flag_value. */
|
Convert an address space qualifier to a type_instance_flag_value. */
|
||||||
|
|
||||||
static int
|
static bool
|
||||||
avr_address_class_name_to_type_flags (struct gdbarch *gdbarch,
|
avr_address_class_name_to_type_flags (struct gdbarch *gdbarch,
|
||||||
const char* name,
|
const char* name,
|
||||||
int *type_flags_ptr)
|
type_instance_flags *type_flags_ptr)
|
||||||
{
|
{
|
||||||
if (strcmp (name, "flash") == 0)
|
if (strcmp (name, "flash") == 0)
|
||||||
{
|
{
|
||||||
*type_flags_ptr = AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH;
|
*type_flags_ptr = AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH;
|
||||||
return 1;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize the gdbarch structure for the AVR's. */
|
/* Initialize the gdbarch structure for the AVR's. */
|
||||||
|
|
11
gdb/d-lang.c
11
gdb/d-lang.c
|
@ -321,10 +321,13 @@ build_d_types (struct gdbarch *gdbarch)
|
||||||
= arch_float_type (gdbarch, gdbarch_long_double_bit (gdbarch),
|
= arch_float_type (gdbarch, gdbarch_long_double_bit (gdbarch),
|
||||||
"real", gdbarch_long_double_format (gdbarch));
|
"real", gdbarch_long_double_format (gdbarch));
|
||||||
|
|
||||||
TYPE_INSTANCE_FLAGS (builtin_d_type->builtin_byte)
|
builtin_d_type->builtin_byte->set_instance_flags
|
||||||
|= TYPE_INSTANCE_FLAG_NOTTEXT;
|
(builtin_d_type->builtin_byte->instance_flags ()
|
||||||
TYPE_INSTANCE_FLAGS (builtin_d_type->builtin_ubyte)
|
| TYPE_INSTANCE_FLAG_NOTTEXT);
|
||||||
|= TYPE_INSTANCE_FLAG_NOTTEXT;
|
|
||||||
|
builtin_d_type->builtin_ubyte->set_instance_flags
|
||||||
|
(builtin_d_type->builtin_ubyte->instance_flags ()
|
||||||
|
| TYPE_INSTANCE_FLAG_NOTTEXT);
|
||||||
|
|
||||||
/* Imaginary and complex types. */
|
/* Imaginary and complex types. */
|
||||||
builtin_d_type->builtin_ifloat
|
builtin_d_type->builtin_ifloat
|
||||||
|
|
|
@ -17296,10 +17296,9 @@ read_tag_pointer_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||||
{
|
{
|
||||||
if (gdbarch_address_class_type_flags_p (gdbarch))
|
if (gdbarch_address_class_type_flags_p (gdbarch))
|
||||||
{
|
{
|
||||||
int type_flags;
|
type_instance_flags type_flags
|
||||||
|
= gdbarch_address_class_type_flags (gdbarch, byte_size,
|
||||||
type_flags = gdbarch_address_class_type_flags
|
addr_class);
|
||||||
(gdbarch, byte_size, addr_class);
|
|
||||||
gdb_assert ((type_flags & ~TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL)
|
gdb_assert ((type_flags & ~TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL)
|
||||||
== 0);
|
== 0);
|
||||||
type = make_type_with_address_space (type, type_flags);
|
type = make_type_with_address_space (type, type_flags);
|
||||||
|
|
|
@ -659,7 +659,7 @@ fake_method::fake_method (type_instance_flags flags,
|
||||||
TYPE_LENGTH (type) = 1;
|
TYPE_LENGTH (type) = 1;
|
||||||
type->set_code (TYPE_CODE_METHOD);
|
type->set_code (TYPE_CODE_METHOD);
|
||||||
TYPE_CHAIN (type) = type;
|
TYPE_CHAIN (type) = type;
|
||||||
TYPE_INSTANCE_FLAGS (type) = flags;
|
type->set_instance_flags (flags);
|
||||||
if (num_types > 0)
|
if (num_types > 0)
|
||||||
{
|
{
|
||||||
if (param_types[num_types - 1] == NULL)
|
if (param_types[num_types - 1] == NULL)
|
||||||
|
|
|
@ -341,7 +341,7 @@ ft32_pointer_to_address (struct gdbarch *gdbarch,
|
||||||
This method maps DW_AT_address_class attributes to a
|
This method maps DW_AT_address_class attributes to a
|
||||||
type_instance_flag_value. */
|
type_instance_flag_value. */
|
||||||
|
|
||||||
static int
|
static type_instance_flags
|
||||||
ft32_address_class_type_flags (int byte_size, int dwarf2_addr_class)
|
ft32_address_class_type_flags (int byte_size, int dwarf2_addr_class)
|
||||||
{
|
{
|
||||||
/* The value 1 of the DW_AT_address_class attribute corresponds to the
|
/* The value 1 of the DW_AT_address_class attribute corresponds to the
|
||||||
|
@ -357,7 +357,8 @@ ft32_address_class_type_flags (int byte_size, int dwarf2_addr_class)
|
||||||
Convert a type_instance_flag_value to an address space qualifier. */
|
Convert a type_instance_flag_value to an address space qualifier. */
|
||||||
|
|
||||||
static const char*
|
static const char*
|
||||||
ft32_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
|
ft32_address_class_type_flags_to_name (struct gdbarch *gdbarch,
|
||||||
|
type_instance_flags type_flags)
|
||||||
{
|
{
|
||||||
if (type_flags & TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1)
|
if (type_flags & TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1)
|
||||||
return "flash";
|
return "flash";
|
||||||
|
@ -369,18 +370,18 @@ ft32_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
|
||||||
|
|
||||||
Convert an address space qualifier to a type_instance_flag_value. */
|
Convert an address space qualifier to a type_instance_flag_value. */
|
||||||
|
|
||||||
static int
|
static bool
|
||||||
ft32_address_class_name_to_type_flags (struct gdbarch *gdbarch,
|
ft32_address_class_name_to_type_flags (struct gdbarch *gdbarch,
|
||||||
const char* name,
|
const char* name,
|
||||||
int *type_flags_ptr)
|
type_instance_flags *type_flags_ptr)
|
||||||
{
|
{
|
||||||
if (strcmp (name, "flash") == 0)
|
if (strcmp (name, "flash") == 0)
|
||||||
{
|
{
|
||||||
*type_flags_ptr = TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1;
|
*type_flags_ptr = TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1;
|
||||||
return 1;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Given a return value in `regbuf' with a type `valtype',
|
/* Given a return value in `regbuf' with a type `valtype',
|
||||||
|
@ -576,7 +577,8 @@ ft32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
func_void_type = make_function_type (void_type, NULL);
|
func_void_type = make_function_type (void_type, NULL);
|
||||||
tdep->pc_type = arch_pointer_type (gdbarch, 4 * TARGET_CHAR_BIT, NULL,
|
tdep->pc_type = arch_pointer_type (gdbarch, 4 * TARGET_CHAR_BIT, NULL,
|
||||||
func_void_type);
|
func_void_type);
|
||||||
TYPE_INSTANCE_FLAGS (tdep->pc_type) |= TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1;
|
tdep->pc_type->set_instance_flags (tdep->pc_type->instance_flags ()
|
||||||
|
| TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1);
|
||||||
|
|
||||||
set_gdbarch_num_regs (gdbarch, FT32_NUM_REGS);
|
set_gdbarch_num_regs (gdbarch, FT32_NUM_REGS);
|
||||||
set_gdbarch_sp_regnum (gdbarch, FT32_SP_REGNUM);
|
set_gdbarch_sp_regnum (gdbarch, FT32_SP_REGNUM);
|
||||||
|
|
|
@ -3546,7 +3546,7 @@ gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch)
|
||||||
return gdbarch->address_class_type_flags != NULL;
|
return gdbarch->address_class_type_flags != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
type_instance_flags
|
||||||
gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class)
|
gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class)
|
||||||
{
|
{
|
||||||
gdb_assert (gdbarch != NULL);
|
gdb_assert (gdbarch != NULL);
|
||||||
|
@ -3571,7 +3571,7 @@ gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch)
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
|
gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, type_instance_flags type_flags)
|
||||||
{
|
{
|
||||||
gdb_assert (gdbarch != NULL);
|
gdb_assert (gdbarch != NULL);
|
||||||
gdb_assert (gdbarch->address_class_type_flags_to_name != NULL);
|
gdb_assert (gdbarch->address_class_type_flags_to_name != NULL);
|
||||||
|
@ -3611,8 +3611,8 @@ gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch)
|
||||||
return gdbarch->address_class_name_to_type_flags != NULL;
|
return gdbarch->address_class_name_to_type_flags != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
bool
|
||||||
gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
|
gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, type_instance_flags *type_flags_ptr)
|
||||||
{
|
{
|
||||||
gdb_assert (gdbarch != NULL);
|
gdb_assert (gdbarch != NULL);
|
||||||
gdb_assert (gdbarch->address_class_name_to_type_flags != NULL);
|
gdb_assert (gdbarch->address_class_name_to_type_flags != NULL);
|
||||||
|
|
|
@ -854,14 +854,14 @@ extern void set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch, i
|
||||||
|
|
||||||
extern int gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch);
|
extern int gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch);
|
||||||
|
|
||||||
typedef int (gdbarch_address_class_type_flags_ftype) (int byte_size, int dwarf2_addr_class);
|
typedef type_instance_flags (gdbarch_address_class_type_flags_ftype) (int byte_size, int dwarf2_addr_class);
|
||||||
extern int gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class);
|
extern type_instance_flags gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class);
|
||||||
extern void set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch, gdbarch_address_class_type_flags_ftype *address_class_type_flags);
|
extern void set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch, gdbarch_address_class_type_flags_ftype *address_class_type_flags);
|
||||||
|
|
||||||
extern int gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch);
|
extern int gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch);
|
||||||
|
|
||||||
typedef const char * (gdbarch_address_class_type_flags_to_name_ftype) (struct gdbarch *gdbarch, int type_flags);
|
typedef const char * (gdbarch_address_class_type_flags_to_name_ftype) (struct gdbarch *gdbarch, type_instance_flags type_flags);
|
||||||
extern const char * gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags);
|
extern const char * gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, type_instance_flags type_flags);
|
||||||
extern void set_gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name);
|
extern void set_gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name);
|
||||||
|
|
||||||
/* Execute vendor-specific DWARF Call Frame Instruction. OP is the instruction.
|
/* Execute vendor-specific DWARF Call Frame Instruction. OP is the instruction.
|
||||||
|
@ -872,13 +872,13 @@ extern bool gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdb_by
|
||||||
extern void set_gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdbarch_execute_dwarf_cfa_vendor_op_ftype *execute_dwarf_cfa_vendor_op);
|
extern void set_gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdbarch_execute_dwarf_cfa_vendor_op_ftype *execute_dwarf_cfa_vendor_op);
|
||||||
|
|
||||||
/* Return the appropriate type_flags for the supplied address class.
|
/* Return the appropriate type_flags for the supplied address class.
|
||||||
This function should return 1 if the address class was recognized and
|
This function should return true if the address class was recognized and
|
||||||
type_flags was set, zero otherwise. */
|
type_flags was set, false otherwise. */
|
||||||
|
|
||||||
extern int gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch);
|
extern int gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch);
|
||||||
|
|
||||||
typedef int (gdbarch_address_class_name_to_type_flags_ftype) (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr);
|
typedef bool (gdbarch_address_class_name_to_type_flags_ftype) (struct gdbarch *gdbarch, const char *name, type_instance_flags *type_flags_ptr);
|
||||||
extern int gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr);
|
extern bool gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, type_instance_flags *type_flags_ptr);
|
||||||
extern void set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags);
|
extern void set_gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags);
|
||||||
|
|
||||||
/* Is a register in a group */
|
/* Is a register in a group */
|
||||||
|
|
|
@ -691,16 +691,16 @@ v;int;cannot_step_breakpoint;;;0;0;;0
|
||||||
# See comment in target.h about continuable, steppable and
|
# See comment in target.h about continuable, steppable and
|
||||||
# non-steppable watchpoints.
|
# non-steppable watchpoints.
|
||||||
v;int;have_nonsteppable_watchpoint;;;0;0;;0
|
v;int;have_nonsteppable_watchpoint;;;0;0;;0
|
||||||
F;int;address_class_type_flags;int byte_size, int dwarf2_addr_class;byte_size, dwarf2_addr_class
|
F;type_instance_flags;address_class_type_flags;int byte_size, int dwarf2_addr_class;byte_size, dwarf2_addr_class
|
||||||
M;const char *;address_class_type_flags_to_name;int type_flags;type_flags
|
M;const char *;address_class_type_flags_to_name;type_instance_flags type_flags;type_flags
|
||||||
# Execute vendor-specific DWARF Call Frame Instruction. OP is the instruction.
|
# Execute vendor-specific DWARF Call Frame Instruction. OP is the instruction.
|
||||||
# FS are passed from the generic execute_cfa_program function.
|
# FS are passed from the generic execute_cfa_program function.
|
||||||
m;bool;execute_dwarf_cfa_vendor_op;gdb_byte op, struct dwarf2_frame_state *fs;op, fs;;default_execute_dwarf_cfa_vendor_op;;0
|
m;bool;execute_dwarf_cfa_vendor_op;gdb_byte op, struct dwarf2_frame_state *fs;op, fs;;default_execute_dwarf_cfa_vendor_op;;0
|
||||||
|
|
||||||
# Return the appropriate type_flags for the supplied address class.
|
# Return the appropriate type_flags for the supplied address class.
|
||||||
# This function should return 1 if the address class was recognized and
|
# This function should return true if the address class was recognized and
|
||||||
# type_flags was set, zero otherwise.
|
# type_flags was set, false otherwise.
|
||||||
M;int;address_class_name_to_type_flags;const char *name, int *type_flags_ptr;name, type_flags_ptr
|
M;bool;address_class_name_to_type_flags;const char *name, type_instance_flags *type_flags_ptr;name, type_flags_ptr
|
||||||
# Is a register in a group
|
# Is a register in a group
|
||||||
m;int;register_reggroup_p;int regnum, struct reggroup *reggroup;regnum, reggroup;;default_register_reggroup_p;;0
|
m;int;register_reggroup_p;int regnum, struct reggroup *reggroup;regnum, reggroup;;default_register_reggroup_p;;0
|
||||||
# Fetch the pointer to the ith function argument.
|
# Fetch the pointer to the ith function argument.
|
||||||
|
|
|
@ -578,11 +578,11 @@ lookup_function_type_with_arguments (struct type *type,
|
||||||
/* Identify address space identifier by name --
|
/* Identify address space identifier by name --
|
||||||
return the integer flag defined in gdbtypes.h. */
|
return the integer flag defined in gdbtypes.h. */
|
||||||
|
|
||||||
int
|
type_instance_flags
|
||||||
address_space_name_to_int (struct gdbarch *gdbarch,
|
address_space_name_to_int (struct gdbarch *gdbarch,
|
||||||
const char *space_identifier)
|
const char *space_identifier)
|
||||||
{
|
{
|
||||||
int type_flags;
|
type_instance_flags type_flags;
|
||||||
|
|
||||||
/* Check for known address space delimiters. */
|
/* Check for known address space delimiters. */
|
||||||
if (!strcmp (space_identifier, "code"))
|
if (!strcmp (space_identifier, "code"))
|
||||||
|
@ -602,7 +602,8 @@ address_space_name_to_int (struct gdbarch *gdbarch,
|
||||||
gdbtypes.h -- return the string version of the adress space name. */
|
gdbtypes.h -- return the string version of the adress space name. */
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
address_space_int_to_name (struct gdbarch *gdbarch, int space_flag)
|
address_space_int_to_name (struct gdbarch *gdbarch,
|
||||||
|
type_instance_flags space_flag)
|
||||||
{
|
{
|
||||||
if (space_flag & TYPE_INSTANCE_FLAG_CODE_SPACE)
|
if (space_flag & TYPE_INSTANCE_FLAG_CODE_SPACE)
|
||||||
return "code";
|
return "code";
|
||||||
|
@ -621,7 +622,7 @@ address_space_int_to_name (struct gdbarch *gdbarch, int space_flag)
|
||||||
STORAGE must be in the same obstack as TYPE. */
|
STORAGE must be in the same obstack as TYPE. */
|
||||||
|
|
||||||
static struct type *
|
static struct type *
|
||||||
make_qualified_type (struct type *type, int new_flags,
|
make_qualified_type (struct type *type, type_instance_flags new_flags,
|
||||||
struct type *storage)
|
struct type *storage)
|
||||||
{
|
{
|
||||||
struct type *ntype;
|
struct type *ntype;
|
||||||
|
@ -661,7 +662,7 @@ make_qualified_type (struct type *type, int new_flags,
|
||||||
TYPE_CHAIN (type) = ntype;
|
TYPE_CHAIN (type) = ntype;
|
||||||
|
|
||||||
/* Now set the instance flags and return the new type. */
|
/* Now set the instance flags and return the new type. */
|
||||||
TYPE_INSTANCE_FLAGS (ntype) = new_flags;
|
ntype->set_instance_flags (new_flags);
|
||||||
|
|
||||||
/* Set length of new type to that of the original type. */
|
/* Set length of new type to that of the original type. */
|
||||||
TYPE_LENGTH (ntype) = TYPE_LENGTH (type);
|
TYPE_LENGTH (ntype) = TYPE_LENGTH (type);
|
||||||
|
@ -679,13 +680,14 @@ make_qualified_type (struct type *type, int new_flags,
|
||||||
representations. */
|
representations. */
|
||||||
|
|
||||||
struct type *
|
struct type *
|
||||||
make_type_with_address_space (struct type *type, int space_flag)
|
make_type_with_address_space (struct type *type,
|
||||||
|
type_instance_flags space_flag)
|
||||||
{
|
{
|
||||||
int new_flags = ((TYPE_INSTANCE_FLAGS (type)
|
type_instance_flags new_flags = ((type->instance_flags ()
|
||||||
& ~(TYPE_INSTANCE_FLAG_CODE_SPACE
|
& ~(TYPE_INSTANCE_FLAG_CODE_SPACE
|
||||||
| TYPE_INSTANCE_FLAG_DATA_SPACE
|
| TYPE_INSTANCE_FLAG_DATA_SPACE
|
||||||
| TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL))
|
| TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL))
|
||||||
| space_flag);
|
| space_flag);
|
||||||
|
|
||||||
return make_qualified_type (type, new_flags, NULL);
|
return make_qualified_type (type, new_flags, NULL);
|
||||||
}
|
}
|
||||||
|
@ -709,9 +711,9 @@ make_cv_type (int cnst, int voltl,
|
||||||
{
|
{
|
||||||
struct type *ntype; /* New type */
|
struct type *ntype; /* New type */
|
||||||
|
|
||||||
int new_flags = (TYPE_INSTANCE_FLAGS (type)
|
type_instance_flags new_flags = (type->instance_flags ()
|
||||||
& ~(TYPE_INSTANCE_FLAG_CONST
|
& ~(TYPE_INSTANCE_FLAG_CONST
|
||||||
| TYPE_INSTANCE_FLAG_VOLATILE));
|
| TYPE_INSTANCE_FLAG_VOLATILE));
|
||||||
|
|
||||||
if (cnst)
|
if (cnst)
|
||||||
new_flags |= TYPE_INSTANCE_FLAG_CONST;
|
new_flags |= TYPE_INSTANCE_FLAG_CONST;
|
||||||
|
@ -1412,7 +1414,6 @@ void
|
||||||
make_vector_type (struct type *array_type)
|
make_vector_type (struct type *array_type)
|
||||||
{
|
{
|
||||||
struct type *inner_array, *elt_type;
|
struct type *inner_array, *elt_type;
|
||||||
int flags;
|
|
||||||
|
|
||||||
/* Find the innermost array type, in case the array is
|
/* Find the innermost array type, in case the array is
|
||||||
multi-dimensional. */
|
multi-dimensional. */
|
||||||
|
@ -1423,7 +1424,8 @@ make_vector_type (struct type *array_type)
|
||||||
elt_type = TYPE_TARGET_TYPE (inner_array);
|
elt_type = TYPE_TARGET_TYPE (inner_array);
|
||||||
if (elt_type->code () == TYPE_CODE_INT)
|
if (elt_type->code () == TYPE_CODE_INT)
|
||||||
{
|
{
|
||||||
flags = TYPE_INSTANCE_FLAGS (elt_type) | TYPE_INSTANCE_FLAG_NOTTEXT;
|
type_instance_flags flags
|
||||||
|
= elt_type->instance_flags () | TYPE_INSTANCE_FLAG_NOTTEXT;
|
||||||
elt_type = make_qualified_type (elt_type, flags, NULL);
|
elt_type = make_qualified_type (elt_type, flags, NULL);
|
||||||
TYPE_TARGET_TYPE (inner_array) = elt_type;
|
TYPE_TARGET_TYPE (inner_array) = elt_type;
|
||||||
}
|
}
|
||||||
|
@ -2734,12 +2736,13 @@ struct type *
|
||||||
check_typedef (struct type *type)
|
check_typedef (struct type *type)
|
||||||
{
|
{
|
||||||
struct type *orig_type = type;
|
struct type *orig_type = type;
|
||||||
/* While we're removing typedefs, we don't want to lose qualifiers.
|
|
||||||
E.g., const/volatile. */
|
|
||||||
int instance_flags = TYPE_INSTANCE_FLAGS (type);
|
|
||||||
|
|
||||||
gdb_assert (type);
|
gdb_assert (type);
|
||||||
|
|
||||||
|
/* While we're removing typedefs, we don't want to lose qualifiers.
|
||||||
|
E.g., const/volatile. */
|
||||||
|
type_instance_flags instance_flags = type->instance_flags ();
|
||||||
|
|
||||||
while (type->code () == TYPE_CODE_TYPEDEF)
|
while (type->code () == TYPE_CODE_TYPEDEF)
|
||||||
{
|
{
|
||||||
if (!TYPE_TARGET_TYPE (type))
|
if (!TYPE_TARGET_TYPE (type))
|
||||||
|
@ -2780,10 +2783,13 @@ check_typedef (struct type *type)
|
||||||
outer cast in a chain of casting win), instead of assuming
|
outer cast in a chain of casting win), instead of assuming
|
||||||
"it can't happen". */
|
"it can't happen". */
|
||||||
{
|
{
|
||||||
const int ALL_SPACES = (TYPE_INSTANCE_FLAG_CODE_SPACE
|
const type_instance_flags ALL_SPACES
|
||||||
| TYPE_INSTANCE_FLAG_DATA_SPACE);
|
= (TYPE_INSTANCE_FLAG_CODE_SPACE
|
||||||
const int ALL_CLASSES = TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL;
|
| TYPE_INSTANCE_FLAG_DATA_SPACE);
|
||||||
int new_instance_flags = TYPE_INSTANCE_FLAGS (type);
|
const type_instance_flags ALL_CLASSES
|
||||||
|
= TYPE_INSTANCE_FLAG_ADDRESS_CLASS_ALL;
|
||||||
|
|
||||||
|
type_instance_flags new_instance_flags = type->instance_flags ();
|
||||||
|
|
||||||
/* Treat code vs data spaces and address classes separately. */
|
/* Treat code vs data spaces and address classes separately. */
|
||||||
if ((instance_flags & ALL_SPACES) != 0)
|
if ((instance_flags & ALL_SPACES) != 0)
|
||||||
|
@ -5028,7 +5034,7 @@ recursive_dump_type (struct type *type, int spaces)
|
||||||
gdb_print_host_address (TYPE_CHAIN (type), gdb_stdout);
|
gdb_print_host_address (TYPE_CHAIN (type), gdb_stdout);
|
||||||
printf_filtered ("\n");
|
printf_filtered ("\n");
|
||||||
printfi_filtered (spaces, "instance_flags 0x%x",
|
printfi_filtered (spaces, "instance_flags 0x%x",
|
||||||
TYPE_INSTANCE_FLAGS (type));
|
(unsigned) type->instance_flags ());
|
||||||
if (TYPE_CONST (type))
|
if (TYPE_CONST (type))
|
||||||
{
|
{
|
||||||
puts_filtered (" TYPE_CONST");
|
puts_filtered (" TYPE_CONST");
|
||||||
|
@ -5302,7 +5308,7 @@ copy_type_recursive (struct objfile *objfile,
|
||||||
if (type->name ())
|
if (type->name ())
|
||||||
new_type->set_name (xstrdup (type->name ()));
|
new_type->set_name (xstrdup (type->name ()));
|
||||||
|
|
||||||
TYPE_INSTANCE_FLAGS (new_type) = TYPE_INSTANCE_FLAGS (type);
|
new_type->set_instance_flags (type->instance_flags ());
|
||||||
TYPE_LENGTH (new_type) = TYPE_LENGTH (type);
|
TYPE_LENGTH (new_type) = TYPE_LENGTH (type);
|
||||||
|
|
||||||
/* Copy the fields. */
|
/* Copy the fields. */
|
||||||
|
@ -5429,7 +5435,7 @@ copy_type (const struct type *type)
|
||||||
gdb_assert (TYPE_OBJFILE_OWNED (type));
|
gdb_assert (TYPE_OBJFILE_OWNED (type));
|
||||||
|
|
||||||
new_type = alloc_type_copy (type);
|
new_type = alloc_type_copy (type);
|
||||||
TYPE_INSTANCE_FLAGS (new_type) = TYPE_INSTANCE_FLAGS (type);
|
new_type->set_instance_flags (type->instance_flags ());
|
||||||
TYPE_LENGTH (new_type) = TYPE_LENGTH (type);
|
TYPE_LENGTH (new_type) = TYPE_LENGTH (type);
|
||||||
memcpy (TYPE_MAIN_TYPE (new_type), TYPE_MAIN_TYPE (type),
|
memcpy (TYPE_MAIN_TYPE (new_type), TYPE_MAIN_TYPE (type),
|
||||||
sizeof (struct main_type));
|
sizeof (struct main_type));
|
||||||
|
@ -5822,10 +5828,14 @@ gdbtypes_post_init (struct gdbarch *gdbarch)
|
||||||
= arch_integer_type (gdbarch, 128, 0, "int128_t");
|
= arch_integer_type (gdbarch, 128, 0, "int128_t");
|
||||||
builtin_type->builtin_uint128
|
builtin_type->builtin_uint128
|
||||||
= arch_integer_type (gdbarch, 128, 1, "uint128_t");
|
= arch_integer_type (gdbarch, 128, 1, "uint128_t");
|
||||||
TYPE_INSTANCE_FLAGS (builtin_type->builtin_int8) |=
|
|
||||||
TYPE_INSTANCE_FLAG_NOTTEXT;
|
builtin_type->builtin_int8->set_instance_flags
|
||||||
TYPE_INSTANCE_FLAGS (builtin_type->builtin_uint8) |=
|
(builtin_type->builtin_int8->instance_flags ()
|
||||||
TYPE_INSTANCE_FLAG_NOTTEXT;
|
| TYPE_INSTANCE_FLAG_NOTTEXT);
|
||||||
|
|
||||||
|
builtin_type->builtin_uint8->set_instance_flags
|
||||||
|
(builtin_type->builtin_uint8->instance_flags ()
|
||||||
|
| TYPE_INSTANCE_FLAG_NOTTEXT);
|
||||||
|
|
||||||
/* Wide character types. */
|
/* Wide character types. */
|
||||||
builtin_type->builtin_char16
|
builtin_type->builtin_char16
|
||||||
|
|
|
@ -963,6 +963,18 @@ struct type
|
||||||
this->field (0).set_type (index_type);
|
this->field (0).set_type (index_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the instance flags converted to the correct type. */
|
||||||
|
const type_instance_flags instance_flags () const
|
||||||
|
{
|
||||||
|
return (enum type_instance_flag_value) this->m_instance_flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the instance flags. */
|
||||||
|
void set_instance_flags (type_instance_flags flags)
|
||||||
|
{
|
||||||
|
this->m_instance_flags = flags;
|
||||||
|
}
|
||||||
|
|
||||||
/* Get the bounds bounds of this type. The type must be a range type. */
|
/* Get the bounds bounds of this type. The type must be a range type. */
|
||||||
range_bounds *bounds () const
|
range_bounds *bounds () const
|
||||||
{
|
{
|
||||||
|
@ -1212,7 +1224,7 @@ struct type
|
||||||
instance flags are completely inherited from the target type. No
|
instance flags are completely inherited from the target type. No
|
||||||
qualifiers can be cleared by the typedef. See also
|
qualifiers can be cleared by the typedef. See also
|
||||||
check_typedef. */
|
check_typedef. */
|
||||||
unsigned instance_flags : 9;
|
unsigned m_instance_flags : 9;
|
||||||
|
|
||||||
/* * Length of storage for a value of this type. The value is the
|
/* * Length of storage for a value of this type. The value is the
|
||||||
expression in host bytes of what sizeof(type) would return. This
|
expression in host bytes of what sizeof(type) would return. This
|
||||||
|
@ -1672,7 +1684,7 @@ extern void allocate_gnat_aux_type (struct type *);
|
||||||
TYPE_ZALLOC (type, \
|
TYPE_ZALLOC (type, \
|
||||||
sizeof (*TYPE_MAIN_TYPE (type)->type_specific.func_stuff)))
|
sizeof (*TYPE_MAIN_TYPE (type)->type_specific.func_stuff)))
|
||||||
|
|
||||||
#define TYPE_INSTANCE_FLAGS(thistype) (thistype)->instance_flags
|
#define TYPE_INSTANCE_FLAGS(thistype) ((thistype)->instance_flags ())
|
||||||
#define TYPE_MAIN_TYPE(thistype) (thistype)->main_type
|
#define TYPE_MAIN_TYPE(thistype) (thistype)->main_type
|
||||||
#define TYPE_TARGET_TYPE(thistype) TYPE_MAIN_TYPE(thistype)->target_type
|
#define TYPE_TARGET_TYPE(thistype) TYPE_MAIN_TYPE(thistype)->target_type
|
||||||
#define TYPE_POINTER_TYPE(thistype) (thistype)->pointer_type
|
#define TYPE_POINTER_TYPE(thistype) (thistype)->pointer_type
|
||||||
|
@ -2205,12 +2217,14 @@ extern struct type *make_atomic_type (struct type *);
|
||||||
|
|
||||||
extern void replace_type (struct type *, struct type *);
|
extern void replace_type (struct type *, struct type *);
|
||||||
|
|
||||||
extern int address_space_name_to_int (struct gdbarch *, const char *);
|
extern type_instance_flags address_space_name_to_int (struct gdbarch *,
|
||||||
|
const char *);
|
||||||
|
|
||||||
extern const char *address_space_int_to_name (struct gdbarch *, int);
|
extern const char *address_space_int_to_name (struct gdbarch *,
|
||||||
|
type_instance_flags);
|
||||||
|
|
||||||
extern struct type *make_type_with_address_space (struct type *type,
|
extern struct type *make_type_with_address_space
|
||||||
int space_identifier);
|
(struct type *type, type_instance_flags space_identifier);
|
||||||
|
|
||||||
extern struct type *lookup_memberptr_type (struct type *, struct type *);
|
extern struct type *lookup_memberptr_type (struct type *, struct type *);
|
||||||
|
|
||||||
|
|
|
@ -1583,7 +1583,7 @@ s390_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
|
||||||
/* Implement addr_class_type_flags gdbarch method.
|
/* Implement addr_class_type_flags gdbarch method.
|
||||||
Only used for ABI_LINUX_ZSERIES. */
|
Only used for ABI_LINUX_ZSERIES. */
|
||||||
|
|
||||||
static int
|
static type_instance_flags
|
||||||
s390_address_class_type_flags (int byte_size, int dwarf2_addr_class)
|
s390_address_class_type_flags (int byte_size, int dwarf2_addr_class)
|
||||||
{
|
{
|
||||||
if (byte_size == 4)
|
if (byte_size == 4)
|
||||||
|
@ -1596,7 +1596,8 @@ s390_address_class_type_flags (int byte_size, int dwarf2_addr_class)
|
||||||
Only used for ABI_LINUX_ZSERIES. */
|
Only used for ABI_LINUX_ZSERIES. */
|
||||||
|
|
||||||
static const char *
|
static const char *
|
||||||
s390_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
|
s390_address_class_type_flags_to_name (struct gdbarch *gdbarch,
|
||||||
|
type_instance_flags type_flags)
|
||||||
{
|
{
|
||||||
if (type_flags & TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1)
|
if (type_flags & TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1)
|
||||||
return "mode32";
|
return "mode32";
|
||||||
|
@ -1607,18 +1608,18 @@ s390_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
|
||||||
/* Implement addr_class_name_to_type_flags gdbarch method.
|
/* Implement addr_class_name_to_type_flags gdbarch method.
|
||||||
Only used for ABI_LINUX_ZSERIES. */
|
Only used for ABI_LINUX_ZSERIES. */
|
||||||
|
|
||||||
static int
|
static bool
|
||||||
s390_address_class_name_to_type_flags (struct gdbarch *gdbarch,
|
s390_address_class_name_to_type_flags (struct gdbarch *gdbarch,
|
||||||
const char *name,
|
const char *name,
|
||||||
int *type_flags_ptr)
|
type_instance_flags *type_flags_ptr)
|
||||||
{
|
{
|
||||||
if (strcmp (name, "mode32") == 0)
|
if (strcmp (name, "mode32") == 0)
|
||||||
{
|
{
|
||||||
*type_flags_ptr = TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1;
|
*type_flags_ptr = TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1;
|
||||||
return 1;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Inferior function calls. */
|
/* Inferior function calls. */
|
||||||
|
|
|
@ -4398,7 +4398,7 @@ cleanup_undefined_types_noname (struct objfile *objfile)
|
||||||
and needs to be copied over from the reference type.
|
and needs to be copied over from the reference type.
|
||||||
Since replace_type expects them to be identical, we need
|
Since replace_type expects them to be identical, we need
|
||||||
to set these flags manually before hand. */
|
to set these flags manually before hand. */
|
||||||
TYPE_INSTANCE_FLAGS (nat.type) = TYPE_INSTANCE_FLAGS (*type);
|
nat.type->set_instance_flags ((*type)->instance_flags ());
|
||||||
replace_type (nat.type, *type);
|
replace_type (nat.type, *type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,7 +109,7 @@ type_stack::follow_types (struct type *follow_type)
|
||||||
int done = 0;
|
int done = 0;
|
||||||
int make_const = 0;
|
int make_const = 0;
|
||||||
int make_volatile = 0;
|
int make_volatile = 0;
|
||||||
int make_addr_space = 0;
|
type_instance_flags make_addr_space = 0;
|
||||||
bool make_restrict = false;
|
bool make_restrict = false;
|
||||||
bool make_atomic = false;
|
bool make_atomic = false;
|
||||||
int array_size;
|
int array_size;
|
||||||
|
@ -128,7 +128,7 @@ type_stack::follow_types (struct type *follow_type)
|
||||||
make_volatile = 1;
|
make_volatile = 1;
|
||||||
break;
|
break;
|
||||||
case tp_space_identifier:
|
case tp_space_identifier:
|
||||||
make_addr_space = pop_int ();
|
make_addr_space = (enum type_instance_flag_value) pop_int ();
|
||||||
break;
|
break;
|
||||||
case tp_atomic:
|
case tp_atomic:
|
||||||
make_atomic = true;
|
make_atomic = true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue