>From 71c41b76ca8449586138ed40295b15fce6e21897 Mon Sep 17 00:00:00 2001
From: Kael Andrew Alonzo Franco <[email protected]>
Date: Tue, 21 Jul 2026 16:45:05 -0400
Subject: [PATCH] middle-end: Remove most ENUM_BITFIELD uses. [PR125507]

GCC requires C++14 and C++ supports enum bitfield so ENUM_BITFIELD is
deprecated macro.

Bootstrapped and regtested on x86_64-pc-linux-gnu.

        PR middle-end/125507

gcc/c-family/ChangeLog:

        * c-common.h (struct c_common_resword): Remove ENUM_BITFIELD.
        * c-indentation.h (struct token_indent_info): Ditto.

gcc/c/ChangeLog:

        * c-parser.h (struct c_token): Remove ENUM_BITFIELD.
        * c-tree.h (struct c_declspecs): Ditto.

gcc/cp/ChangeLog:

        * cp-tree.h (struct lang_decl_base): Remove ENUM_BITFIELD.
        (struct lang_decl_fn): Ditto.
        (struct cp_declarator): Ditto.
        * name-lookup.h (struct cp_binding_level): Ditto.

gcc/ChangeLog:

        * cfgloop.h (class loop): Remove ENUM_BITFIELD.
        * cgraph.h (struct toplevel_node): Ditto.
        (struct symtab_node): Ditto.
        (struct cgraph_node): Ditto.
        * combine.cc (struct reg_stat_type): Ditto.
        * config/i386/i386.h (struct machine_function): Ditto.
        * cse.cc (struct qty_table_elem): Ditto.
        (struct table_elt): Ditto.
        (struct set): Ditto.
        * df.h (struct df_mw_hardreg): Ditto.
        (struct df_base_ref): Ditto.
        * domwalk.h (class dom_walker): Ditto.
        * dwarf2out.h (struct dw_val_node): Ditto.
        * gimple.h (struct gimple): Ditto.
        * ipa-predicate.h (struct expr_eval_op): Ditto.
        (struct condition): Ditto.
        * ipa-ref.h (struct ipa_ref): Ditto.
        * ira-int.h (struct ira_dependent_filter): Ditto.
        (struct ira_allocno): Ditto.
        * lra-int.h (struct lra_operand_data): Ditto.
        (struct lra_insn_reg): Ditto.
        * optabs.h (class expand_operand): Ditto.
        * recog.h (struct operand_alternative): Ditto.
        (struct insn_operand_data): Ditto.
        * ree.cc (struct ext_modified): Ditto.
        * regrename.h (struct du_chain): Ditto.
        * rtl.h (struct rtx_def): Ditto.
        * sched-int.h (struct _dep): Ditto.
        * tree-into-ssa.cc (struct common_info): Ditto.
        * tree-ssa-loop-ivopts.cc (struct iv_cand): Ditto.
        * tree-ssa-sccvn.h (struct vn_nary_op_s): Ditto.
        (struct vn_reference_op_struct): Ditto.
        * value-range-storage.h (class vrange_storage): Ditto.
        * value-range.h (class vrange): Ditto.
        * var-tracking.cc (struct variable): Ditto.
        * vmsdbg.h (struct _DST_HEADER): Ditto.

Signed-off-by: Kael Andrew Franco <[email protected]>
---
 gcc/c-family/c-common.h      |  2 +-
 gcc/c-family/c-indentation.h |  4 ++--
 gcc/c/c-parser.h             |  8 ++++----
 gcc/c/c-tree.h               |  6 +++---
 gcc/cfgloop.h                |  2 +-
 gcc/cgraph.h                 |  8 ++++----
 gcc/combine.cc               |  4 ++--
 gcc/config/i386/i386.h       | 12 ++++++------
 gcc/cp/cp-tree.h             |  8 ++++----
 gcc/cp/name-lookup.h         |  2 +-
 gcc/cse.cc                   |  8 ++++----
 gcc/df.h                     |  6 +++---
 gcc/domwalk.h                |  4 ++--
 gcc/dwarf2out.h              |  2 +-
 gcc/gimple.h                 |  2 +-
 gcc/ipa-predicate.h          |  4 ++--
 gcc/ipa-ref.h                |  2 +-
 gcc/ira-int.h                | 10 +++++-----
 gcc/lra-int.h                |  8 ++++----
 gcc/optabs.h                 |  4 ++--
 gcc/recog.h                  |  4 ++--
 gcc/ree.cc                   |  4 ++--
 gcc/regrename.h              |  2 +-
 gcc/rtl.h                    |  4 ++--
 gcc/sched-int.h              |  2 +-
 gcc/tree-into-ssa.cc         |  2 +-
 gcc/tree-ssa-loop-ivopts.cc  |  2 +-
 gcc/tree-ssa-sccvn.h         |  4 ++--
 gcc/value-range-storage.h    |  2 +-
 gcc/value-range.h            |  4 ++--
 gcc/var-tracking.cc          |  2 +-
 gcc/vmsdbg.h                 |  4 ++--
 32 files changed, 71 insertions(+), 71 deletions(-)

diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h
index bf7bc5eda5b..b89a8477e7c 100644
--- a/gcc/c-family/c-common.h
+++ b/gcc/c-family/c-common.h
@@ -400,7 +400,7 @@ struct GTY(()) c_common_identifier {
 struct c_common_resword
 {
   const char *const word;
-  ENUM_BITFIELD(rid) const rid : 16;
+  enum rid const rid : 16;
   const unsigned int disable   : 32;
 };

diff --git a/gcc/c-family/c-indentation.h b/gcc/c-family/c-indentation.h
index 09e1f32ce8b..c7dda36645e 100644
--- a/gcc/c-family/c-indentation.h
+++ b/gcc/c-family/c-indentation.h
@@ -25,8 +25,8 @@ along with GCC; see the file COPYING3.  If not see
 struct token_indent_info
 {
   location_t location;
-  ENUM_BITFIELD (cpp_ttype) type : 8;
-  ENUM_BITFIELD (rid) keyword : 8;
+  enum cpp_ttype type : 8;
+  enum rid keyword : 8;
 };

 /* Extract token information from TOKEN, which ought to either be a
diff --git a/gcc/c/c-parser.h b/gcc/c/c-parser.h
index 0b3943e7425..7453909164b 100644
--- a/gcc/c/c-parser.h
+++ b/gcc/c/c-parser.h
@@ -52,16 +52,16 @@ enum c_id_kind {
    of preprocessing tokens to tokens.  */
 struct GTY (()) c_token {
   /* The kind of token.  */
-  ENUM_BITFIELD (cpp_ttype) type : 8;
+  enum cpp_ttype type : 8;
   /* If this token is a CPP_NAME, this value indicates whether also
      declared as some kind of type.  Otherwise, it is C_ID_NONE.  */
-  ENUM_BITFIELD (c_id_kind) id_kind : 8;
+  enum c_id_kind id_kind : 8;
   /* If this token is a keyword, this value indicates which keyword.
      Otherwise, this value is RID_MAX.  */
-  ENUM_BITFIELD (rid) keyword : 8;
+  enum rid keyword : 8;
   /* If this token is a CPP_PRAGMA, this indicates the pragma that
      was seen.  Otherwise it is PRAGMA_NONE.  */
-  ENUM_BITFIELD (pragma_kind) pragma_kind : 8;
+  enum pragma_kind pragma_kind : 8;
   /* The location at which this token was found.  */
   location_t location;
   /* The value associated with this token, if any.  */
diff --git a/gcc/c/c-tree.h b/gcc/c/c-tree.h
index ee3cbb2716d..0800230873b 100644
--- a/gcc/c/c-tree.h
+++ b/gcc/c/c-tree.h
@@ -411,11 +411,11 @@ struct c_declspecs {
   enum c_storage_class storage_class;
   /* Any type specifier keyword used such as "int", not reflecting
      modifiers such as "short", or cts_none if none.  */
-  ENUM_BITFIELD (c_typespec_keyword) typespec_word : 8;
+  enum c_typespec_keyword typespec_word : 8;
   /* The kind of type specifier if one has been seen, ctsk_none
      otherwise.  */
-  ENUM_BITFIELD (c_typespec_kind) typespec_kind : 4;
-  ENUM_BITFIELD (c_declspec_il) declspec_il : 3;
+  enum c_typespec_kind typespec_kind : 4;
+  enum c_declspec_il declspec_il : 3;
   /* Whether any expressions in typeof specifiers may appear in
      constant expressions.  */
   bool expr_const_operands : 1;
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index de8d97c6141..855075138ce 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -207,7 +207,7 @@ public:

   /* An integer estimation of the number of iterations.  Estimate_state
      describes what is the state of the estimation.  */
-  ENUM_BITFIELD(loop_estimation) estimate_state : 8;
+  enum loop_estimation estimate_state : 8;

   unsigned any_upper_bound : 1;
   unsigned any_estimate : 1;
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index a7e6ab70b6b..e4a0a6b1bc7 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -126,7 +126,7 @@ struct GTY ((desc ("%h.type"), tag ("TOPLEVEL_BASE"),
   int order;

   /* Type of the node.  */
-  ENUM_BITFIELD (toplevel_type) type : 8;
+  enum toplevel_type type : 8;
 };

 /* Base of all entries in the symbol table.
@@ -530,7 +530,7 @@ public:
   }

   /* The symbols resolution.  */
-  ENUM_BITFIELD (ld_plugin_symbol_resolution) resolution : 8;
+  enum ld_plugin_symbol_resolution resolution : 8;

   /*** Flags representing the symbol type.  ***/

@@ -1513,7 +1513,7 @@ struct GTY((tag ("SYMTAB_FUNCTION")))
cgraph_node : public symtab_node
   unsigned process : 1;
   /* How commonly executed the node is.  Initialized during branch
      probabilities pass.  */
-  ENUM_BITFIELD (node_frequency) frequency : 2;
+  enum node_frequency frequency : 2;
   /* True when function can only be called at startup (from static ctor).  */
   unsigned only_called_at_startup : 1;
   /* True when function can only be called at startup (from static dtor).  */
@@ -2355,7 +2355,7 @@ struct GTY((tag ("SYMTAB_VARIABLE")))
varpool_node : public symtab_node
      function local statics.   */
   unsigned dynamically_initialized : 1;

-  ENUM_BITFIELD(tls_model) tls_model : 3;
+  enum tls_model tls_model : 3;

   /* Set if the variable is known to be used by single function only.
      This is computed by ipa_single_use pass and used by late optimizations
diff --git a/gcc/combine.cc b/gcc/combine.cc
index 53ea168a44b..cf31f8e0bcd 100644
--- a/gcc/combine.cc
+++ b/gcc/combine.cc
@@ -196,7 +196,7 @@ struct reg_stat_type {

   unsigned HOST_WIDE_INT       last_set_nonzero_bits;
   unsigned short               last_set_sign_bit_copies;
-  ENUM_BITFIELD(machine_mode)  last_set_mode : MACHINE_MODE_BITSIZE;
+  machine_mode                 last_set_mode : MACHINE_MODE_BITSIZE;

   /* Set to true if references to register n in expressions should not be
      used.  last_set_invalid is set nonzero when this register is being
@@ -231,7 +231,7 @@ struct reg_stat_type {
      truncation if we know that value already contains a truncated
      value.  */

-  ENUM_BITFIELD(machine_mode)  truncated_to_mode : MACHINE_MODE_BITSIZE;
+  machine_mode                 truncated_to_mode : MACHINE_MODE_BITSIZE;
 };


diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index f2e8fd2447f..d4082a84059 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -2894,7 +2894,7 @@ struct GTY(()) machine_function {

   /* This value is used for amd64 targets and specifies the current abi
      to be used. MS_ABI means ms abi. Otherwise SYSV_ABI means sysv abi.  */
-  ENUM_BITFIELD(calling_abi) call_abi : 8;
+  enum calling_abi call_abi : 8;

   /* Nonzero if the function accesses a previous frame.  */
   bool accesses_prev_frame : 1;
@@ -2929,20 +2929,20 @@ struct GTY(()) machine_function {
   bool no_drap_save_restore : 1;

   /* Function type.  */
-  ENUM_BITFIELD(function_type) func_type : 2;
+  enum function_type func_type : 2;

   /* How to generate indirec branch.  */
-  ENUM_BITFIELD(indirect_branch) indirect_branch_type : 3;
+  enum indirect_branch indirect_branch_type : 3;

   /* If true, the current function has local indirect jumps, like
      "indirect_jump" or "tablejump".  */
   bool has_local_indirect_jump : 1;

   /* How to generate function return.  */
-  ENUM_BITFIELD(indirect_branch) function_return_type : 3;
+  enum indirect_branch function_return_type : 3;

   /* Call saved registers type.  */
-  ENUM_BITFIELD(call_saved_registers_type) call_saved_registers : 3;
+  enum call_saved_registers_type call_saved_registers : 3;

   /* If true, there is register available for argument passing.  This
      is used only in ix86_function_ok_for_sibcall by 32-bit to determine
@@ -2969,7 +2969,7 @@ struct GTY(()) machine_function {
   bool outgoing_args_on_stack : 1;

   /* If true, ENDBR or patchable area is queued at function entrance.  */
-  ENUM_BITFIELD(queued_insn_type) insn_queued_at_entrance : 2;
+  enum queued_insn_type insn_queued_at_entrance : 2;

   /* If true, the function label has been emitted.  */
   bool function_label_emitted : 1;
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index c73b42ed44f..87245184461 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -3193,8 +3193,8 @@ enum lang_decl_selector
    not make this struct larger than 32 bits.  */

 struct GTY(()) lang_decl_base {
-  ENUM_BITFIELD(lang_decl_selector) selector : 3;
-  ENUM_BITFIELD(languages) language : 1;
+  enum lang_decl_selector selector : 3;
+  enum languages language : 1;
   unsigned use_template : 2;
   unsigned not_really_extern : 1;         /* var or fn */
   unsigned initialized_in_class : 1;      /* var or fn */
@@ -3296,7 +3296,7 @@ struct GTY(()) lang_decl_fn {

   unsigned xobj_func : 1;
   unsigned contract_wrapper : 1;
-  ENUM_BITFIELD(lang_contract_helper) contract_helper : 2;
+  enum lang_contract_helper contract_helper : 2;

   unsigned spare : 4;

@@ -7081,7 +7081,7 @@ struct cp_parameter_declarator {
 /* A declarator.  */
 struct cp_declarator {
   /* The kind of declarator.  */
-  ENUM_BITFIELD (cp_declarator_kind) kind : 4;
+  enum cp_declarator_kind kind : 4;
   /* Whether we parsed an ellipsis (`...') just before the declarator,
      to indicate this is a parameter pack.  */
   bool parameter_pack_p : 1;
diff --git a/gcc/cp/name-lookup.h b/gcc/cp/name-lookup.h
index 5c54c9d6052..a0e7e10795e 100644
--- a/gcc/cp/name-lookup.h
+++ b/gcc/cp/name-lookup.h
@@ -328,7 +328,7 @@ struct GTY(()) cp_binding_level {
   /* The kind of scope that this object represents.  However, a
       SK_TEMPLATE_SPEC scope is represented with KIND set to
       SK_TEMPLATE_PARMS and EXPLICIT_SPEC_P set to true.  */
-  ENUM_BITFIELD (scope_kind) kind : 5;
+  enum scope_kind kind : 5;

   /* True if this scope is an SK_TEMPLATE_SPEC scope.  This field is
       only valid if KIND == SK_TEMPLATE_PARMS.  */
diff --git a/gcc/cse.cc b/gcc/cse.cc
index f8de6e8d4c2..f573c54744c 100644
--- a/gcc/cse.cc
+++ b/gcc/cse.cc
@@ -249,8 +249,8 @@ struct qty_table_elem
   rtx comparison_const;
   int comparison_qty;
   unsigned int first_reg, last_reg;
-  ENUM_BITFIELD(machine_mode) mode : MACHINE_MODE_BITSIZE;
-  ENUM_BITFIELD(rtx_code) comparison_code : RTX_CODE_BITSIZE;
+  machine_mode mode : MACHINE_MODE_BITSIZE;
+  enum rtx_code comparison_code : RTX_CODE_BITSIZE;
 };

 /* The table of all qtys, indexed by qty number.  */
@@ -403,7 +403,7 @@ struct table_elt
   struct table_elt *related_value;
   int cost;
   int regcost;
-  ENUM_BITFIELD(machine_mode) mode : MACHINE_MODE_BITSIZE;
+  machine_mode mode : MACHINE_MODE_BITSIZE;
   char in_memory;
   char is_const;
   char flag;
@@ -4192,7 +4192,7 @@ struct set
   /* The SET_DEST, with SUBREG, etc., stripped.  */
   rtx inner_dest;
   /* Original machine mode, in case it becomes a CONST_INT.  */
-  ENUM_BITFIELD(machine_mode) mode : MACHINE_MODE_BITSIZE;
+  machine_mode mode : MACHINE_MODE_BITSIZE;
   /* Nonzero if the SET_SRC is in memory.  */
   unsigned int src_in_memory : 1;
   /* Nonzero if the SET_SRC contains something
diff --git a/gcc/df.h b/gcc/df.h
index 6d69be19860..f11bb95415b 100644
--- a/gcc/df.h
+++ b/gcc/df.h
@@ -345,7 +345,7 @@ struct df_mw_hardreg
   rtx mw_reg;                   /* The multiword hardreg.  */
   /* These two bitfields are intentionally oversized, in the hope that
      accesses to 16-bit fields will usually be quicker.  */
-  ENUM_BITFIELD(df_ref_type) type : 16;
+  enum df_ref_type type : 16;
                                /* Used to see if the ref is read or write.  */
   int flags : 16;              /* Various df_ref_flags.  */
   unsigned int start_regno;     /* First word of the multi word subreg.  */
@@ -361,9 +361,9 @@ struct df_base_ref
 {
   /* These three bitfields are intentionally oversized, in the hope that
      accesses to 8 and 16-bit fields will usually be quicker.  */
-  ENUM_BITFIELD(df_ref_class) cl : 8;
+  enum df_ref_class cl : 8;

-  ENUM_BITFIELD(df_ref_type) type : 8;
+  enum df_ref_type type : 8;
                                /* Type of ref.  */
   int flags : 16;              /* Various df_ref_flags.  */
   unsigned int regno;          /* The register number referenced.  */
diff --git a/gcc/domwalk.h b/gcc/domwalk.h
index e9504d3a019..eb56806217f 100644
--- a/gcc/domwalk.h
+++ b/gcc/domwalk.h
@@ -93,8 +93,8 @@ private:
      if it is set to CDI_DOMINATORS, then we walk the dominator tree,
      if it is set to CDI_POST_DOMINATORS, then we walk the post
      dominator tree.  */
-  const ENUM_BITFIELD (cdi_direction) m_dom_direction : 2;
-  const ENUM_BITFIELD (reachability) m_reachability : 2;
+  const enum cdi_direction m_dom_direction : 2;
+  const enum reachability m_reachability : 2;
   bool m_user_bb_to_rpo;
   basic_block m_unreachable_dom;
   int *m_bb_to_rpo;
diff --git a/gcc/dwarf2out.h b/gcc/dwarf2out.h
index 259b939dce4..35898874c0a 100644
--- a/gcc/dwarf2out.h
+++ b/gcc/dwarf2out.h
@@ -283,7 +283,7 @@ struct GTY(()) dw_val_node {
     {
       struct dw_val_loc_descr_node
        {
-         ENUM_BITFIELD (dwarf_location_atom) dw_loc_opc_v : 8;
+         enum dwarf_location_atom dw_loc_opc_v : 8;
          /* Used to distinguish DW_OP_addr with a direct symbol relocation
             from DW_OP_addr with a dtp-relative symbol relocation.  */
          unsigned int dw_loc_dtprel_v : 1;
diff --git a/gcc/gimple.h b/gcc/gimple.h
index 0b7589e656f..82045c44bbe 100644
--- a/gcc/gimple.h
+++ b/gcc/gimple.h
@@ -226,7 +226,7 @@ struct GTY((desc ("gimple_statement_structure
(&%h)"), tag ("GSS_BASE"),
 {
   /* [ WORD 1 ]
      Main identifying code for a tuple.  */
-  ENUM_BITFIELD(gimple_code) code : 8;
+  enum gimple_code code : 8;

   /* Nonzero if a warning should not be emitted on this tuple.  */
   unsigned int no_warning      : 1;
diff --git a/gcc/ipa-predicate.h b/gcc/ipa-predicate.h
index bdfdd8d603e..5903b66bcda 100644
--- a/gcc/ipa-predicate.h
+++ b/gcc/ipa-predicate.h
@@ -40,7 +40,7 @@ struct GTY(()) expr_eval_op
   /* Index of parameter operand in expression.  */
   unsigned index : 2;
   /* Operation code of expression.  */
-  ENUM_BITFIELD(tree_code) code : 16;
+  tree_code code : 16;
 };

 typedef vec<expr_eval_op, va_gc> *expr_eval_ops;
@@ -54,7 +54,7 @@ struct GTY(()) condition
   tree type;
   tree val;
   int operand_num;
-  ENUM_BITFIELD(tree_code) code : 16;
+  tree_code code : 16;
   /* Set if the used data were loaded from an aggregate parameter or from
      data received by reference.  */
   unsigned agg_contents : 1;
diff --git a/gcc/ipa-ref.h b/gcc/ipa-ref.h
index 1d3d3cabc73..20529fcc3bc 100644
--- a/gcc/ipa-ref.h
+++ b/gcc/ipa-ref.h
@@ -63,7 +63,7 @@ public:
   /* speculative id is used to link direct calls with their corresponding
      IPA_REF_ADDR references when representing speculative calls.  */
   unsigned int speculative_id : 16;
-  ENUM_BITFIELD (ipa_ref_use) use:3;
+  enum ipa_ref_use use:3;
   unsigned int speculative:1;
 };

diff --git a/gcc/ira-int.h b/gcc/ira-int.h
index 898a2d24625..710801bd65c 100644
--- a/gcc/ira-int.h
+++ b/gcc/ira-int.h
@@ -271,12 +271,12 @@ struct ira_dependent_filter
 {
   /* Filter ID and MODE of this (dependent) op.  */
   int id;
-  ENUM_BITFIELD (machine_mode) mode : MACHINE_MODE_BITSIZE;
+  machine_mode mode : MACHINE_MODE_BITSIZE;

   /* Allocno, hard regno and mode of the referenced op.  */
   ira_allocno_t ref_allocno;
   unsigned int ref_hard_regno;
-  ENUM_BITFIELD (machine_mode) ref_mode : MACHINE_MODE_BITSIZE;
+  machine_mode ref_mode : MACHINE_MODE_BITSIZE;

   struct ira_dependent_filter *next;
 };
@@ -298,13 +298,13 @@ struct ira_allocno
   int regno;
   /* Mode of the allocno which is the mode of the corresponding
      pseudo-register.  */
-  ENUM_BITFIELD (machine_mode) mode : MACHINE_MODE_BITSIZE;
+  machine_mode mode : MACHINE_MODE_BITSIZE;
   /* Widest mode of the allocno which in at least one case could be
      for paradoxical subregs where wmode > mode.  */
-  ENUM_BITFIELD (machine_mode) wmode : MACHINE_MODE_BITSIZE;
+  machine_mode wmode : MACHINE_MODE_BITSIZE;
   /* Register class which should be used for allocation for given
      allocno.  NO_REGS means that we should use memory.  */
-  ENUM_BITFIELD (reg_class) aclass : 16;
+  enum reg_class aclass : 16;
   /* Hard register assigned to given allocno.  Negative value means
      that memory was allocated to the allocno.  During the reload,
      spilled allocno has value equal to the corresponding stack slot
diff --git a/gcc/lra-int.h b/gcc/lra-int.h
index 1e199302981..8b50c60c132 100644
--- a/gcc/lra-int.h
+++ b/gcc/lra-int.h
@@ -154,9 +154,9 @@ struct lra_operand_data
   alternative_mask early_clobber_alts;
   /* It is taken only from machine description (which is different
      from recog_data.operand_mode) and can be of VOIDmode.  */
-  ENUM_BITFIELD(machine_mode) mode : 16;
+  machine_mode mode : 16;
   /* The type of the operand (in/out/inout).  */
-  ENUM_BITFIELD (op_type) type : 8;
+  enum op_type type : 8;
   /* Through if accessed through STRICT_LOW.  */
   unsigned int strict_low : 1;
   /* True if the operand is an operator.  */
@@ -173,9 +173,9 @@ struct lra_insn_reg
   /* The biggest mode through which the insn refers to the register
      occurrence (remember the register can be accessed through a
      subreg in the insn).  */
-  ENUM_BITFIELD(machine_mode) biggest_mode : 16;
+  machine_mode biggest_mode : 16;
   /* The type of the corresponding operand which is the register.  */
-  ENUM_BITFIELD (op_type) type : 8;
+  enum op_type type : 8;
   /* True if the reg is accessed through a subreg and the subreg is
      just a part of the register.  */
   unsigned int subreg_p : 1;
diff --git a/gcc/optabs.h b/gcc/optabs.h
index 81f58278887..fe4152b3480 100644
--- a/gcc/optabs.h
+++ b/gcc/optabs.h
@@ -45,7 +45,7 @@ enum expand_operand_type {
 class expand_operand {
 public:
   /* The type of operand.  */
-  ENUM_BITFIELD (expand_operand_type) type : 8;
+  enum expand_operand_type type : 8;

   /* True if any conversion should treat VALUE as being unsigned
      rather than signed.  Only meaningful for certain types.  */
@@ -59,7 +59,7 @@ public:

   /* The mode passed to the convert_*_operand function.  It has a
      type-dependent meaning.  */
-  ENUM_BITFIELD (machine_mode) mode : 16;
+  machine_mode mode : 16;

   /* The value of the operand.  */
   rtx value;
diff --git a/gcc/recog.h b/gcc/recog.h
index 409314543f7..d7c816a6097 100644
--- a/gcc/recog.h
+++ b/gcc/recog.h
@@ -50,7 +50,7 @@ struct operand_alternative
   const char *constraint;

   /* The register class valid for this alternative (possibly NO_REGS).  */
-  ENUM_BITFIELD (reg_class) cl : 16;
+  enum reg_class cl : 16;

   /* "Badness" of this alternative, computed from number of '?' and '!'
      characters in the constraint string.  */
@@ -505,7 +505,7 @@ struct insn_operand_data

   const char *const constraint;

-  ENUM_BITFIELD(machine_mode) const mode : 16;
+  machine_mode const mode : 16;

   const char strict_low;

diff --git a/gcc/ree.cc b/gcc/ree.cc
index fb7c33a76d5..b7bf3e559a0 100644
--- a/gcc/ree.cc
+++ b/gcc/ree.cc
@@ -567,10 +567,10 @@ enum ext_modified_kind
 struct ext_modified
 {
   /* Mode from which ree has zero or sign extended the destination.  */
-  ENUM_BITFIELD(machine_mode) mode : MACHINE_MODE_BITSIZE;
+  machine_mode mode : MACHINE_MODE_BITSIZE;

   /* Kind of modification of the insn.  */
-  ENUM_BITFIELD(ext_modified_kind) kind : 2;
+  enum ext_modified_kind kind : 2;

   unsigned int do_not_reextend : 1;

diff --git a/gcc/regrename.h b/gcc/regrename.h
index 9f009b25fa2..624baa52e22 100644
--- a/gcc/regrename.h
+++ b/gcc/regrename.h
@@ -72,7 +72,7 @@ struct du_chain
   /* The location inside the insn.  */
   rtx *loc;
   /* The register class required by the insn at this location.  */
-  ENUM_BITFIELD(reg_class) cl : 16;
+  enum reg_class cl : 16;
 };

 /* This struct describes data gathered during regrename_analyze about
diff --git a/gcc/rtl.h b/gcc/rtl.h
index e0311189db4..aa0b4c77a39 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -313,10 +313,10 @@ struct GTY((desc("0"), tag("0"),
            chain_next ("RTX_NEXT (&%h)"),
            chain_prev ("RTX_PREV (&%h)"))) rtx_def {
   /* The kind of value the expression has.  */
-  ENUM_BITFIELD(machine_mode) mode : MACHINE_MODE_BITSIZE;
+  machine_mode mode : MACHINE_MODE_BITSIZE;

   /* The kind of expression this is.  */
-  ENUM_BITFIELD(rtx_code) code: RTX_CODE_BITSIZE;
+  enum rtx_code code: RTX_CODE_BITSIZE;

   /* 1 in a MEM if we should keep the alias set for this mem unchanged
      when we access a component.
diff --git a/gcc/sched-int.h b/gcc/sched-int.h
index 4ec0098e5db..4e7553329df 100644
--- a/gcc/sched-int.h
+++ b/gcc/sched-int.h
@@ -230,7 +230,7 @@ struct _dep

   /* Dependency major type.  This field is superseded by STATUS above.
      Though, it is still in place because some targets use it.  */
-  ENUM_BITFIELD(reg_note) type:6;
+  enum reg_note type:6;

   unsigned nonreg:1;
   unsigned multiple:1;
diff --git a/gcc/tree-into-ssa.cc b/gcc/tree-into-ssa.cc
index dd128592d3d..20c98264baa 100644
--- a/gcc/tree-into-ssa.cc
+++ b/gcc/tree-into-ssa.cc
@@ -154,7 +154,7 @@ struct common_info
   /* This field indicates whether or not the variable may need PHI nodes.
      See the enum's definition for more detailed information about the
      states.  */
-  ENUM_BITFIELD (need_phi_state) need_phi_state : 2;
+  enum need_phi_state need_phi_state : 2;

   /* The current reaching definition replacing this var.  */
   tree current_def;
diff --git a/gcc/tree-ssa-loop-ivopts.cc b/gcc/tree-ssa-loop-ivopts.cc
index 55756c2d90d..3c0ce1794c2 100644
--- a/gcc/tree-ssa-loop-ivopts.cc
+++ b/gcc/tree-ssa-loop-ivopts.cc
@@ -455,7 +455,7 @@ struct iv_cand
   bool important;      /* Whether this is an "important" candidate, i.e. such
                           that it should be considered by all uses.  */
   bool involves_undefs; /* Whether the IV involves undefined values.  */
-  ENUM_BITFIELD(iv_position) pos : 8;  /* Where it is computed.  */
+  enum iv_position pos : 8;/* Where it is computed.  */
   gimple *incremented_at;/* For original biv, the statement where it is
                           incremented.  */
   tree var_before;     /* The variable used for it before increment.  */
diff --git a/gcc/tree-ssa-sccvn.h b/gcc/tree-ssa-sccvn.h
index d175cff7b36..78729fbec64 100644
--- a/gcc/tree-ssa-sccvn.h
+++ b/gcc/tree-ssa-sccvn.h
@@ -51,7 +51,7 @@ typedef struct vn_nary_op_s
   vn_nary_op_s *unwind_to;
   /* Unique identify that all expressions with the same value have. */
   unsigned int value_id;
-  ENUM_BITFIELD(tree_code) opcode : 16;
+  tree_code opcode : 16;
   unsigned length : 16;
   hashval_t hashcode;
   unsigned predicated_values : 1;
@@ -105,7 +105,7 @@ typedef const struct vn_phi_s *const_vn_phi_t;

 typedef struct vn_reference_op_struct
 {
-  ENUM_BITFIELD(tree_code) opcode : 16;
+  tree_code opcode : 16;
   /* Dependence info, used for [TARGET_]MEM_REF only.  For internal
      function calls clique is also used for the internal function code.  */
   unsigned short clique;
diff --git a/gcc/value-range-storage.h b/gcc/value-range-storage.h
index 13d097666d6..e289765cfe0 100644
--- a/gcc/value-range-storage.h
+++ b/gcc/value-range-storage.h
@@ -58,7 +58,7 @@ public:

   // Stack initialization disallowed.
   vrange_storage (enum value_range_discriminator d) : m_discriminator (d) { }
-  const ENUM_BITFIELD(value_range_discriminator) m_discriminator : 4;
+  const enum value_range_discriminator m_discriminator : 4;
 };

 // Efficient memory storage for an irange.
diff --git a/gcc/value-range.h b/gcc/value-range.h
index 307779b37ef..50c045db155 100644
--- a/gcc/value-range.h
+++ b/gcc/value-range.h
@@ -124,8 +124,8 @@ public:
   virtual void verify_range () const { }
 protected:
   vrange (enum value_range_discriminator d) : m_discriminator (d) { }
-  ENUM_BITFIELD(value_range_kind) m_kind : 8;
-  const ENUM_BITFIELD(value_range_discriminator) m_discriminator : 4;
+  enum value_range_kind m_kind : 8;
+  const enum value_range_discriminator m_discriminator : 4;
 };

 namespace inchash
diff --git a/gcc/var-tracking.cc b/gcc/var-tracking.cc
index e54f9247888..8fea25a77bd 100644
--- a/gcc/var-tracking.cc
+++ b/gcc/var-tracking.cc
@@ -376,7 +376,7 @@ struct variable
   char n_var_parts;

   /* What type of DV this is, according to enum onepart_enum.  */
-  ENUM_BITFIELD (onepart_enum) onepart : CHAR_BIT;
+  enum onepart_enum onepart : CHAR_BIT;

   /* True if this variable_def struct is currently in the
      changed_variables hash table.  */
diff --git a/gcc/vmsdbg.h b/gcc/vmsdbg.h
index 5b301341cff..36386b79118 100644
--- a/gcc/vmsdbg.h
+++ b/gcc/vmsdbg.h
@@ -46,8 +46,8 @@ typedef struct _DST_HEADER
     } dst__header_length;
   union
     {
-      ENUM_BITFIELD (_DST_TYPE) dst_w_type : 16;
-      ENUM_BITFIELD (_DST_TYPE) dst_x_type : 16;
+      enum _DST_TYPE dst_w_type : 16;
+      enum _DST_TYPE dst_x_type : 16;
     } dst__header_type;
 } DST_HEADER;
 #define DST_K_DST_HEADER_SIZE sizeof 4
-- 
2.55.0

Reply via email to