diff options
author | Tom Tromey <tromey@adacore.com> | 2023-10-27 10:51:50 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2023-11-21 14:52:05 -0700 |
commit | 5028c9e206efd6b92ecefe1afc9dcf5cd4ebb1a6 (patch) | |
tree | 7225d0eb8412c091c5fea6804061666a6afcbd05 | |
parent | e17fd6c28e787445d496a71c855784010dfd6ab8 (diff) | |
download | gdb-5028c9e206efd6b92ecefe1afc9dcf5cd4ebb1a6.zip gdb-5028c9e206efd6b92ecefe1afc9dcf5cd4ebb1a6.tar.gz gdb-5028c9e206efd6b92ecefe1afc9dcf5cd4ebb1a6.tar.bz2 |
Use enum accessibility in types and member functions
This changes nested types and member functions to use the new
'accessibility' enum, rather than separate private/protected flags.
This is done for consistency, but it also lets us simplify some other
code in the next patch.
Acked-By: Simon Marchi <simon.marchi@efficios.com>
Reviewed-by: Keith Seitz <keiths@redhat.com>
-rw-r--r-- | gdb/dwarf2/read.c | 8 | ||||
-rw-r--r-- | gdb/gdbtypes.h | 27 | ||||
-rw-r--r-- | gdb/stabsread.c | 4 |
3 files changed, 20 insertions, 19 deletions
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 7b6dc48..9f3297a 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -11716,10 +11716,10 @@ dwarf2_add_type_defn (struct field_info *fip, struct die_info *die, /* The assumed value if neither private nor protected. */ break; case DW_ACCESS_private: - fp.is_private = 1; + fp.accessibility = accessibility::PRIVATE; break; case DW_ACCESS_protected: - fp.is_protected = 1; + fp.accessibility = accessibility::PROTECTED; break; } @@ -12078,10 +12078,10 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die, switch (accessibility) { case DW_ACCESS_private: - fnp->is_private = 1; + fnp->accessibility = accessibility::PRIVATE; break; case DW_ACCESS_protected: - fnp->is_protected = 1; + fnp->accessibility = accessibility::PROTECTED; break; } diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index 7d2e3d4..34ca1ac 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -1611,8 +1611,8 @@ struct fn_field unsigned int is_const:1; unsigned int is_volatile:1; - unsigned int is_private:1; - unsigned int is_protected:1; + /* Accessibility of the field. */ + ENUM_BITFIELD (accessibility) accessibility : 2; unsigned int is_artificial:1; /* * A stub method only has some fields valid (but they are enough @@ -1657,11 +1657,8 @@ struct decl_field struct type *type; - /* * True if this field was declared protected, false otherwise. */ - unsigned int is_protected : 1; - - /* * True if this field was declared private, false otherwise. */ - unsigned int is_private : 1; + /* Accessibility of the field. */ + ENUM_BITFIELD (accessibility) accessibility : 2; }; /* * C++ language-specific information for TYPE_CODE_STRUCT and @@ -1984,8 +1981,10 @@ extern void set_type_vptr_basetype (struct type *, struct type *); #define TYPE_FN_FIELD_ARGS(thisfn, n) (((thisfn)[n].type)->fields ()) #define TYPE_FN_FIELD_CONST(thisfn, n) ((thisfn)[n].is_const) #define TYPE_FN_FIELD_VOLATILE(thisfn, n) ((thisfn)[n].is_volatile) -#define TYPE_FN_FIELD_PRIVATE(thisfn, n) ((thisfn)[n].is_private) -#define TYPE_FN_FIELD_PROTECTED(thisfn, n) ((thisfn)[n].is_protected) +#define TYPE_FN_FIELD_PRIVATE(thisfn, n) \ + ((thisfn)[n].accessibility == accessibility::PRIVATE) +#define TYPE_FN_FIELD_PROTECTED(thisfn, n) \ + ((thisfn)[n].accessibility == accessibility::PROTECTED) #define TYPE_FN_FIELD_ARTIFICIAL(thisfn, n) ((thisfn)[n].is_artificial) #define TYPE_FN_FIELD_STUB(thisfn, n) ((thisfn)[n].is_stub) #define TYPE_FN_FIELD_CONSTRUCTOR(thisfn, n) ((thisfn)[n].is_constructor) @@ -2008,9 +2007,9 @@ extern void set_type_vptr_basetype (struct type *, struct type *); #define TYPE_TYPEDEF_FIELD_COUNT(thistype) \ TYPE_CPLUS_SPECIFIC (thistype)->typedef_field_count #define TYPE_TYPEDEF_FIELD_PROTECTED(thistype, n) \ - TYPE_TYPEDEF_FIELD (thistype, n).is_protected + (TYPE_TYPEDEF_FIELD (thistype, n).accessibility == accessibility::PROTECTED) #define TYPE_TYPEDEF_FIELD_PRIVATE(thistype, n) \ - TYPE_TYPEDEF_FIELD (thistype, n).is_private + (TYPE_TYPEDEF_FIELD (thistype, n).accessibility == accessibility::PRIVATE) #define TYPE_NESTED_TYPES_ARRAY(thistype) \ TYPE_CPLUS_SPECIFIC (thistype)->nested_types @@ -2023,9 +2022,11 @@ extern void set_type_vptr_basetype (struct type *, struct type *); #define TYPE_NESTED_TYPES_COUNT(thistype) \ TYPE_CPLUS_SPECIFIC (thistype)->nested_types_count #define TYPE_NESTED_TYPES_FIELD_PROTECTED(thistype, n) \ - TYPE_NESTED_TYPES_FIELD (thistype, n).is_protected + (TYPE_NESTED_TYPES_FIELD (thistype, n).accessibility \ + == accessibility::PROTECTED) #define TYPE_NESTED_TYPES_FIELD_PRIVATE(thistype, n) \ - TYPE_NESTED_TYPES_FIELD (thistype, n).is_private + (TYPE_NESTED_TYPES_FIELD (thistype, n).accessibility \ + == accessibility::PRIVATE) #define TYPE_IS_OPAQUE(thistype) \ ((((thistype)->code () == TYPE_CODE_STRUCT) \ diff --git a/gdb/stabsread.c b/gdb/stabsread.c index 4d5ae10..c81ae42 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -2372,10 +2372,10 @@ read_member_functions (struct stab_field_info *fip, const char **pp, switch (*(*pp)++) { case VISIBILITY_PRIVATE: - new_sublist->fn_field.is_private = 1; + new_sublist->fn_field.accessibility = accessibility::PRIVATE; break; case VISIBILITY_PROTECTED: - new_sublist->fn_field.is_protected = 1; + new_sublist->fn_field.accessibility = accessibility::PROTECTED; break; } |