[gcc r17-2692] middle-end: Remove most ENUM_BITFIELD uses. [PR125507]

Kael Andrew Franco kael@gcc.gnu.org
Sat Jul 25 00:30:01 GMT 2026


https://gcc.gnu.org/g:b37ace0e98ded690b4392e65487f3a9d2120e76e

commit r17-2692-gb37ace0e98ded690b4392e65487f3a9d2120e76e
Author: Kael Andrew Alonzo Franco <kaelfandrew@gmail.com>
Date:   Fri Jul 24 20:28:25 2026 -0400

    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 <kaelfandrew@gmail.com>

Diff:
---
 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 bf7bc5eda5be..b89a8477e7ce 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 09e1f32ce8b3..c7dda36645e1 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 0b3943e74257..7453909164b4 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 ee3cbb2716d8..0800230873b7 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 de8d97c6141f..855075138ce4 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 a7e6ab70b6be..e4a0a6b1bc78 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 0711db3f9a6d..6ee3c1a07cdf 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 f2e8fd2447f4..d4082a840593 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 c73b42ed44ff..872451844614 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 5c54c9d6052c..a0e7e10795e7 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 f8de6e8d4c20..f573c54744cb 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 6d69be19860c..f11bb95415b8 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 e9504d3a019b..eb56806217ff 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 259b939dce44..35898874c0a6 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 0b7589e656f4..82045c44bbeb 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 bdfdd8d603e1..5903b66bcdaa 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 1d3d3cabc730..20529fcc3bc4 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 898a2d24625a..710801bd65cd 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 1e199302981a..8b50c60c1329 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 81f582788875..fe4152b34809 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 409314543f79..d7c816a6097d 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 fb7c33a76d58..b7bf3e559a01 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 9f009b25fa23..624baa52e228 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 e0311189db46..aa0b4c77a395 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 4ec0098e5db8..4e7553329df9 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 dd128592d3dd..20c98264baa3 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 55756c2d90db..3c0ce1794c2f 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 d175cff7b362..78729fbec646 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 13d097666d6d..e289765cfe01 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 3226e53cb710..5bea3cbc9d4c 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 e54f92478886..8fea25a77bde 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 5b301341cff2..36386b79118f 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


More information about the Gcc-cvs mailing list