diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2020-09-14 11:07:56 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2020-09-14 11:07:56 -0400 |
commit | 653223d3561b5976d12ade101113af9d08348b8c (patch) | |
tree | d91acbd802d4b2500c76e83ac6306471367154d2 /gdb/dwarf2 | |
parent | 55ea94da360700cd3d96cacb7957904692913c45 (diff) | |
download | gdb-653223d3561b5976d12ade101113af9d08348b8c.zip gdb-653223d3561b5976d12ade101113af9d08348b8c.tar.gz gdb-653223d3561b5976d12ade101113af9d08348b8c.tar.bz2 |
gdb: add type::is_unsigned / type::set_is_unsigned
Add the `is_unsigned` and `set_is_unsigned` methods on `struct type`, in
order to remove the `TYPE_UNSIGNED` macro. In this patch, the
`TYPE_UNSIGNED` macro is changed to use `type::is_unsigned`, so all the
call sites that are used to set this property on a type are changed to
use the new method. The next patch will remove the macro completely.
gdb/ChangeLog:
* gdbtypes.h (struct type) <is_unsigned, set_is_unsigned>: New
methods.
(TYPE_UNSIGNED): Use type::is_unsigned. Change all write call
sites to use type::set_is_unsigned.
Change-Id: Ib09ddce84eda160a801a8f288cccf61c8ef136bc
Diffstat (limited to 'gdb/dwarf2')
-rw-r--r-- | gdb/dwarf2/read.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 865f9e2..1219bb9 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -16568,7 +16568,8 @@ update_enumeration_type_from_children (struct die_info *die, } if (unsigned_enum) - TYPE_UNSIGNED (type) = 1; + type->set_is_unsigned (true); + if (flag_enum) TYPE_FLAG_ENUM (type) = 1; } @@ -16643,9 +16644,12 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu) { struct type *underlying_type = TYPE_TARGET_TYPE (type); underlying_type = check_typedef (underlying_type); - TYPE_UNSIGNED (type) = TYPE_UNSIGNED (underlying_type); + + type->set_is_unsigned (underlying_type->is_unsigned ()); + if (TYPE_LENGTH (type) == 0) TYPE_LENGTH (type) = TYPE_LENGTH (underlying_type); + if (TYPE_RAW_ALIGN (type) == 0 && TYPE_RAW_ALIGN (underlying_type) != 0) set_type_align (type, TYPE_RAW_ALIGN (underlying_type)); |