This removes ENUM_BITFIELD from tree-core.h. GCC has been written in C++ for
years now. So enums can be bitfields. There is no reason for the macro.
This removes the macro usage from tree-core.h. The other uses can be removed
by others.
Note gengtype needed to support for tree_code to remove the extra enum that is
added
for other others.
Bootstrapped and tested on x86_64-linux-gnu.
PR middle-end/125507
gcc/ChangeLog:
* gengtype.cc (main): Add tree_code.
* tree-core.h (struct tree_base): Remove ENUM_BITFIELD.
(struct tree_type_common): Likewise.
(struct tree_decl_common): Likewise.
(struct tree_decl_with_vis): Likewise.
(struct tree_function_decl): Likewise.
Signed-off-by: Andrew Pinski <[email protected]>
---
gcc/gengtype.cc | 1 +
gcc/tree-core.h | 12 ++++++------
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/gcc/gengtype.cc b/gcc/gengtype.cc
index 06116239344..a348106d532 100644
--- a/gcc/gengtype.cc
+++ b/gcc/gengtype.cc
@@ -5257,6 +5257,7 @@ main (int argc, char **argv)
POS_HERE (do_scalar_typedef ("JCF_u2", &pos));
POS_HERE (do_scalar_typedef ("void", &pos));
POS_HERE (do_scalar_typedef ("machine_mode", &pos));
+ POS_HERE (do_scalar_typedef ("tree_code", &pos));
POS_HERE (do_scalar_typedef ("fixed_size_mode", &pos));
POS_HERE (do_scalar_typedef ("CONSTEXPR", &pos));
POS_HERE (do_typedef ("void *",
diff --git a/gcc/tree-core.h b/gcc/tree-core.h
index a70e60e3290..09c07c5c129 100644
--- a/gcc/tree-core.h
+++ b/gcc/tree-core.h
@@ -1136,7 +1136,7 @@ typedef tree (*walk_tree_lh) (tree *, int *, tree (*)
(tree *, int *, void *),
accessor macros. */
struct GTY(()) tree_base {
- ENUM_BITFIELD(tree_code) code : 16;
+ tree_code code : 16;
unsigned side_effects_flag : 1;
unsigned constant_flag : 1;
@@ -1805,7 +1805,7 @@ struct GTY(()) tree_type_common {
tree attributes;
unsigned int uid;
- ENUM_BITFIELD(machine_mode) mode : MACHINE_MODE_BITSIZE;
+ machine_mode mode : MACHINE_MODE_BITSIZE;
unsigned int precision : 16;
unsigned lang_flag_0 : 1;
@@ -1898,7 +1898,7 @@ struct GTY(()) tree_decl_common {
struct tree_decl_minimal common;
tree size;
- ENUM_BITFIELD(machine_mode) mode : MACHINE_MODE_BITSIZE;
+ machine_mode mode : MACHINE_MODE_BITSIZE;
unsigned nonlocal_flag : 1;
unsigned virtual_flag : 1;
@@ -2023,7 +2023,7 @@ struct GTY(()) tree_decl_with_vis {
unsigned seen_in_bind_expr : 1;
unsigned comdat_flag : 1;
/* Used for FUNCTION_DECL, VAR_DECL and in C++ for TYPE_DECL. */
- ENUM_BITFIELD(symbol_visibility) visibility : 2;
+ enum symbol_visibility visibility : 2;
unsigned visibility_specified : 1;
/* Belong to FUNCTION_DECL exclusively. */
@@ -2091,7 +2091,7 @@ struct GTY(()) tree_function_decl {
/* In a FUNCTION_DECL this is DECL_UNCHECKED_FUNCTION_CODE. */
unsigned int function_code;
- ENUM_BITFIELD(built_in_class) built_in_class : 2;
+ enum built_in_class built_in_class : 2;
unsigned static_ctor_flag : 1;
unsigned static_dtor_flag : 1;
unsigned uninlinable : 1;
@@ -2109,7 +2109,7 @@ struct GTY(()) tree_function_decl {
unsigned looping_const_or_pure_flag : 1;
/* Align the bitfield to boundary of a byte. */
- ENUM_BITFIELD(function_decl_type) decl_type: 2;
+ enum function_decl_type decl_type: 2;
unsigned has_debug_args_flag : 1;
unsigned versioned_function : 1;
unsigned replaceable_operator : 1;
--
2.43.0