From: Andrew Pinski Date: Tue, 2 Jun 2026 20:05:06 +0000 (-0700) Subject: tree-core: Remove ENUM_BITFIELD from tree-core.h [PR125507] X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8ca8e647caf945dc4694107884cf0f4eba5da2f;p=thirdparty%2Fgcc.git tree-core: Remove ENUM_BITFIELD from tree-core.h [PR125507] 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 --- 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;