From 653223d3561b5976d12ade101113af9d08348b8c Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Mon, 14 Sep 2020 11:07:56 -0400 Subject: 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) : New methods. (TYPE_UNSIGNED): Use type::is_unsigned. Change all write call sites to use type::set_is_unsigned. Change-Id: Ib09ddce84eda160a801a8f288cccf61c8ef136bc --- gdb/dwarf2/read.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'gdb/dwarf2') 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)); -- cgit v1.1