On Fri, Jun 19, 2026 at 12:41 PM Kevin Stefanov
<[email protected]> wrote:
>
> This change completely removes the BOOL_BITFIELD
> macro from the codebase. All uses have been
> replaced with bool.
>
> gcc/
>         * c/c-decl.cc (c_binding): Replace BOOL_BITFIELD with bool.
>         (c_scope): Likewise.
>         * c/c-parser.cc (c_parser): Likewise.
>         * c/c-tree.h (c_declspecs): Likewise.
>         (c_arg_info): Likewise.
>         (c_declarator): Likewise.
>         * config/i386/i386.h (machine_frame_state): Likewise.
>         (machine_function): Likewise.
>         * cp/call.cc (conversion): Likewise.
>         * cp/cp-tree.h (saved_scope): Likewise.
>         (language_function): Likewise.
>         (cp_decl_specifier_seq): Likewise.
>         (cp_declarator): Likewise.
>         * cp/name-lookup.h (cp_binding_level): Likewise.
>         * ctfc.h (ctf_dtdef): Likewise.
>         * dwarf2out.cc (die_struct): Likewise.
>         * dwarf2out.h (dw_cfa_location): Likewise.
>         * gengtype-lex.l (IWORD): Remove BOOL_BITFIELD.
>         * gimple-walk.h (walk_stmt_info): Replace BOOL_BITFIELD with bool.
>         * objc/objc-act.h (imp_entry): Likewise.
>         * opts.h (cl_option): Likewise.
>         * rust/backend/rust-tree.h (saved_scope): Likewise.
>         (rust_cp_binding_level): Likewise.
>         (language_function): Likewise.
>         * sched-int.h (deps_desc): Likewise.
>         * sel-sched-ir.h (_expr): Likewise.
>         (_fence): Likewise.
>         (transformed_insns): Likewise.
>         (_sel_insn_data): Likewise.
>         * sel-sched.cc (cmpd_local_params): Likewise.
>         * system.h: Remove #define for BOOL_BITFIELD.

Pushed with small change to the changelog format so that each
subdirectory correctly is recorded.
https://gcc.gnu.org/pipermail/gcc-cvs/2026-June/456445.html

>
> Signed-off-by: Kevin Stefanov <[email protected]>
> ---
> I've made this new patch that replaces
> BOOL_BITFIELD with bool, instead of
> with unsigned int.
>
> My remark about the output I got from
> check_GNU_style.py and compare_tests
> remains. Let me know if improvements
> are needed there and whether I should
> run the test suite and bootstrap on more
> architectures on a GNU test machine please.
>
> Bootstrapped and regression tested on
> x86_64-pc-linux-gnu with enable-languages=all.
>
> Bugzilla easyhack page:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125274
>
>
>  gcc/c/c-decl.cc              | 24 ++++++-------
>  gcc/c/c-parser.cc            | 22 ++++++------
>  gcc/c/c-tree.h               | 66 ++++++++++++++++++------------------
>  gcc/config/i386/i386.h       | 50 +++++++++++++--------------
>  gcc/cp/call.cc               | 20 +++++------
>  gcc/cp/cp-tree.h             | 58 +++++++++++++++----------------
>  gcc/cp/name-lookup.h         |  2 +-
>  gcc/ctfc.h                   |  4 +--
>  gcc/dwarf2out.cc             |  8 ++---
>  gcc/dwarf2out.h              |  4 +--
>  gcc/gengtype-lex.l           |  2 +-
>  gcc/gimple-walk.h            | 10 +++---
>  gcc/objc/objc-act.h          |  2 +-
>  gcc/opts.h                   | 22 ++++++------
>  gcc/rust/backend/rust-tree.h | 28 +++++++--------
>  gcc/sched-int.h              |  2 +-
>  gcc/sel-sched-ir.h           | 26 +++++++-------
>  gcc/sel-sched.cc             |  2 +-
>  gcc/system.h                 |  3 --
>  19 files changed, 176 insertions(+), 179 deletions(-)
>
> diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc
> index 1b2f2b4edec..286d29405a3 100644
> --- a/gcc/c/c-decl.cc
> +++ b/gcc/c/c-decl.cc
> @@ -221,10 +221,10 @@ struct GTY((chain_next ("%h.prev"))) c_binding {
>    struct c_binding *prev;      /* the previous decl in this scope */
>    struct c_binding *shadowed;  /* the innermost decl shadowed by this one */
>    unsigned int depth : 28;      /* depth of this scope */
> -  BOOL_BITFIELD invisible : 1;  /* normal lookup should ignore this binding 
> */
> -  BOOL_BITFIELD nested : 1;     /* do not set DECL_CONTEXT when popping */
> -  BOOL_BITFIELD inner_comp : 1; /* incomplete array completed in inner scope 
> */
> -  BOOL_BITFIELD in_struct : 1; /* currently defined as struct field */
> +  bool invisible : 1;  /* normal lookup should ignore this binding */
> +  bool nested : 1;     /* do not set DECL_CONTEXT when popping */
> +  bool inner_comp : 1; /* incomplete array completed in inner scope */
> +  bool in_struct : 1;  /* currently defined as struct field */
>    location_t locus;            /* location for nested bindings */
>  };
>  #define B_IN_SCOPE(b1, b2) ((b1)->depth == (b2)->depth)
> @@ -502,38 +502,38 @@ struct GTY((chain_next ("%h.outer"))) c_scope {
>
>    /* True if we are currently filling this scope with parameter
>       declarations.  */
> -  BOOL_BITFIELD parm_flag : 1;
> +  bool parm_flag : 1;
>
>    /* True if we saw [*] in this scope.  Used to give an error messages
>       if these appears in a function definition.  */
> -  BOOL_BITFIELD had_vla_unspec : 1;
> +  bool had_vla_unspec : 1;
>
>    /* True if we parsed a list of forward parameter decls in this scope.  */
> -  BOOL_BITFIELD had_forward_parm_decls : 1;
> +  bool had_forward_parm_decls : 1;
>
>    /* True if this is the outermost block scope of a function body.
>       This scope contains the parameters, the local variables declared
>       in the outermost block, and all the labels (except those in
>       nested functions, or declared at block scope with __label__).  */
> -  BOOL_BITFIELD function_body : 1;
> +  bool function_body : 1;
>
>    /* True means make a BLOCK for this scope no matter what.  */
> -  BOOL_BITFIELD keep : 1;
> +  bool keep : 1;
>
>    /* True means that an unsuffixed float constant is _Decimal64.  */
> -  BOOL_BITFIELD float_const_decimal64 : 1;
> +  bool float_const_decimal64 : 1;
>
>    /* True if this scope has any label bindings.  This is used to speed
>       up searching for labels when popping scopes, particularly since
>       labels are normally only found at function scope.  */
> -  BOOL_BITFIELD has_label_bindings : 1;
> +  bool has_label_bindings : 1;
>
>    /* True if we should issue a warning if a goto statement crosses any
>       of the bindings.  We still need to check the list of bindings to
>       find the specific ones we need to warn about.  This is true if
>       decl_jump_unsafe would return true for any of the bindings.  This
>       is used to avoid looping over all the bindings unnecessarily.  */
> -  BOOL_BITFIELD has_jump_unsafe_decl : 1;
> +  bool has_jump_unsafe_decl : 1;
>  };
>
>  /* The scope currently in effect.  */
> diff --git a/gcc/c/c-parser.cc b/gcc/c/c-parser.cc
> index cf13bc2d796..643335baf96 100644
> --- a/gcc/c/c-parser.cc
> +++ b/gcc/c/c-parser.cc
> @@ -205,54 +205,54 @@ struct GTY(()) c_parser {
>    /* True if a syntax error is being recovered from; false otherwise.
>       c_parser_error sets this flag.  It should clear this flag when
>       enough tokens have been consumed to recover from the error.  */
> -  BOOL_BITFIELD error : 1;
> +  bool error : 1;
>    /* True if we're processing a pragma, and shouldn't automatically
>       consume CPP_PRAGMA_EOL.  */
> -  BOOL_BITFIELD in_pragma : 1;
> +  bool in_pragma : 1;
>    /* True if we're parsing the outermost block of an if statement.  */
> -  BOOL_BITFIELD in_if_block : 1;
> +  bool in_if_block : 1;
>    /* True if we want to lex a translated, joined string (for an
>       initial #pragma pch_preprocess).  Otherwise the parser is
>       responsible for concatenating strings and translating to the
>       execution character set as needed.  */
> -  BOOL_BITFIELD lex_joined_string : 1;
> +  bool lex_joined_string : 1;
>    /* True if, when the parser is concatenating string literals, it
>       should translate them to the execution character set (false
>       inside attributes).  */
> -  BOOL_BITFIELD translate_strings_p : 1;
> +  bool translate_strings_p : 1;
>
>    /* Objective-C specific parser/lexer information.  */
>
>    /* True if we are in a context where the Objective-C "PQ" keywords
>       are considered keywords.  */
> -  BOOL_BITFIELD objc_pq_context : 1;
> +  bool objc_pq_context : 1;
>    /* True if we are parsing a (potential) Objective-C foreach
>       statement.  This is set to true after we parsed 'for (' and while
>       we wait for 'in' or ';' to decide if it's a standard C for loop or an
>       Objective-C foreach loop.  */
> -  BOOL_BITFIELD objc_could_be_foreach_context : 1;
> +  bool objc_could_be_foreach_context : 1;
>    /* The following flag is needed to contextualize Objective-C lexical
>       analysis.  In some cases (e.g., 'int NSObject;'), it is
>       undesirable to bind an identifier to an Objective-C class, even
>       if a class with that name exists.  */
> -  BOOL_BITFIELD objc_need_raw_identifier : 1;
> +  bool objc_need_raw_identifier : 1;
>    /* Nonzero if we're processing a __transaction statement.  The value
>       is 1 | TM_STMT_ATTR_*.  */
>    unsigned int in_transaction : 4;
>    /* True if we are in a context where the Objective-C "Property attribute"
>       keywords are valid.  */
> -  BOOL_BITFIELD objc_property_attr_context : 1;
> +  bool objc_property_attr_context : 1;
>
>    /* Whether we have just seen/constructed a string-literal.  Set when
>       returning a string-literal from c_parser_string_literal.  Reset
>       in consume_token.  Useful when we get a parse error and see an
>       unknown token, which could have been a string-literal constant
>       macro.  */
> -  BOOL_BITFIELD seen_string_literal : 1;
> +  bool seen_string_literal : 1;
>
>    /* TRUE if omp::directive, omp::decl or omp::sequence attributes may not
>       appear.  */
> -  BOOL_BITFIELD omp_attrs_forbidden_p : 1;
> +  bool omp_attrs_forbidden_p : 1;
>
>    /* Location of the last consumed token.  */
>    location_t last_token_location;
> diff --git a/gcc/c/c-tree.h b/gcc/c/c-tree.h
> index 27784a2ffba..511b155d46d 100644
> --- a/gcc/c/c-tree.h
> +++ b/gcc/c/c-tree.h
> @@ -418,78 +418,78 @@ struct c_declspecs {
>    ENUM_BITFIELD (c_declspec_il) declspec_il : 3;
>    /* Whether any expressions in typeof specifiers may appear in
>       constant expressions.  */
> -  BOOL_BITFIELD expr_const_operands : 1;
> +  bool expr_const_operands : 1;
>    /* Whether any declaration specifiers have been seen at all.  */
> -  BOOL_BITFIELD declspecs_seen_p : 1;
> +  bool declspecs_seen_p : 1;
>    /* Whether any declaration specifiers other than standard attributes
>       have been seen at all.  If only standard attributes have been
>       seen, this is an attribute-declaration.  */
> -  BOOL_BITFIELD non_std_attrs_seen_p : 1;
> +  bool non_std_attrs_seen_p : 1;
>    /* Whether something other than a storage class specifier or
>       attribute has been seen.  This is used to warn for the
>       obsolescent usage of storage class specifiers other than at the
>       start of the list.  (Doing this properly would require function
>       specifiers to be handled separately from storage class
>       specifiers.)  */
> -  BOOL_BITFIELD non_sc_seen_p : 1;
> +  bool non_sc_seen_p : 1;
>    /* Whether the type is specified by a typedef or typeof name.  */
> -  BOOL_BITFIELD typedef_p : 1;
> +  bool typedef_p : 1;
>    /* Whether the type is explicitly "signed" or specified by a typedef
>       whose type is explicitly "signed".  */
> -  BOOL_BITFIELD explicit_signed_p : 1;
> +  bool explicit_signed_p : 1;
>    /* Whether the specifiers include a deprecated typedef.  */
> -  BOOL_BITFIELD deprecated_p : 1;
> +  bool deprecated_p : 1;
>    /* Whether the specifiers include an unavailable typedef.  */
> -  BOOL_BITFIELD unavailable_p : 1;
> +  bool unavailable_p : 1;
>    /* Whether the type defaulted to "int" because there were no type
>       specifiers.  */
> -  BOOL_BITFIELD default_int_p : 1;
> +  bool default_int_p : 1;
>    /* Whether "long" was specified.  */
> -  BOOL_BITFIELD long_p : 1;
> +  bool long_p : 1;
>    /* Whether "long" was specified more than once.  */
> -  BOOL_BITFIELD long_long_p : 1;
> +  bool long_long_p : 1;
>    /* Whether "short" was specified.  */
> -  BOOL_BITFIELD short_p : 1;
> +  bool short_p : 1;
>    /* Whether "signed" was specified.  */
> -  BOOL_BITFIELD signed_p : 1;
> +  bool signed_p : 1;
>    /* Whether "unsigned" was specified.  */
> -  BOOL_BITFIELD unsigned_p : 1;
> +  bool unsigned_p : 1;
>    /* Whether "complex" was specified.  */
> -  BOOL_BITFIELD complex_p : 1;
> +  bool complex_p : 1;
>    /* Whether "inline" was specified.  */
> -  BOOL_BITFIELD inline_p : 1;
> +  bool inline_p : 1;
>    /* Whether "_Noreturn" was specified.  */
> -  BOOL_BITFIELD noreturn_p : 1;
> +  bool noreturn_p : 1;
>    /* Whether "__thread" or "_Thread_local" was specified.  */
> -  BOOL_BITFIELD thread_p : 1;
> +  bool thread_p : 1;
>    /* Whether "__thread" rather than "_Thread_local" was specified.  */
> -  BOOL_BITFIELD thread_gnu_p : 1;
> +  bool thread_gnu_p : 1;
>    /* Whether "const" was specified.  */
> -  BOOL_BITFIELD const_p : 1;
> +  bool const_p : 1;
>    /* Whether "volatile" was specified.  */
> -  BOOL_BITFIELD volatile_p : 1;
> +  bool volatile_p : 1;
>    /* Whether "restrict" was specified.  */
> -  BOOL_BITFIELD restrict_p : 1;
> +  bool restrict_p : 1;
>    /* Whether "_Atomic" was specified.  */
> -  BOOL_BITFIELD atomic_p : 1;
> +  bool atomic_p : 1;
>    /* Whether "_Sat" was specified.  */
> -  BOOL_BITFIELD saturating_p : 1;
> +  bool saturating_p : 1;
>    /* Whether any alignment specifier (even with zero alignment) was
>       specified.  */
> -  BOOL_BITFIELD alignas_p : 1;
> +  bool alignas_p : 1;
>    /* Whether an enum type specifier (": specifier-qualifier-list") was
>       specified other than in a definition of that enum (if so, this is
>       invalid unless it is an empty declaration "enum identifier
>       enum-type-specifier;", but such an empty declaration is valid in
>       C23 when "enum identifier;" would not be).  */
> -  BOOL_BITFIELD enum_type_specifier_ref_p : 1;
> +  bool enum_type_specifier_ref_p : 1;
>    /* Whether "auto" was specified in C23 (or later) mode and means the
>       type is to be deduced from an initializer, or would mean that if
>       no type specifier appears later in these declaration
>       specifiers.  */
> -  BOOL_BITFIELD c23_auto_p : 1;
> +  bool c23_auto_p : 1;
>    /* Whether "constexpr" was specified.  */
> -  BOOL_BITFIELD constexpr_p : 1;
> +  bool constexpr_p : 1;
>    /* The address space that the declaration belongs to.  */
>    addr_space_t address_space;
>  };
> @@ -534,13 +534,13 @@ struct c_arg_info {
>       ignored.  */
>    tree pending_sizes;
>    /* True when these arguments had [*].  */
> -  BOOL_BITFIELD had_vla_unspec : 1;
> +  bool had_vla_unspec : 1;
>    /* True when the arguments are a (...) prototype.  */
> -  BOOL_BITFIELD no_named_args_stdarg_p : 1;
> +  bool no_named_args_stdarg_p : 1;
>    /* True when empty parentheses have been interpreted as (void) in C23 or
>       later.  This is only for use by -Wtraditional and is no longer needed if
>       -Wtraditional is removed.  */
> -  BOOL_BITFIELD c23_empty_parens : 1;
> +  bool c23_empty_parens : 1;
>  };
>
>  /* A declarator.  */
> @@ -571,9 +571,9 @@ struct c_declarator {
>        /* The attributes (currently ignored) inside [].  */
>        tree attrs;
>        /* Whether [static] was used.  */
> -      BOOL_BITFIELD static_p : 1;
> +      bool static_p : 1;
>        /* Whether [*] was used.  */
> -      BOOL_BITFIELD vla_unspec_p : 1;
> +      bool vla_unspec_p : 1;
>      } array;
>      /* For pointers, the qualifiers on the pointer type.  */
>      int pointer_quals;
> diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
> index 375ba82f5ff..5c1ec763416 100644
> --- a/gcc/config/i386/i386.h
> +++ b/gcc/config/i386/i386.h
> @@ -2803,25 +2803,25 @@ struct GTY(()) machine_frame_state
>       value within the frame.  If false then the offset above should be
>       ignored.  Note that DRAP, if valid, *always* points to the CFA and
>       thus has an offset of zero.  */
> -  BOOL_BITFIELD sp_valid : 1;
> -  BOOL_BITFIELD fp_valid : 1;
> -  BOOL_BITFIELD drap_valid : 1;
> +  bool sp_valid : 1;
> +  bool fp_valid : 1;
> +  bool drap_valid : 1;
>
>    /* Indicate whether the local stack frame has been re-aligned.  When
>       set, the SP/FP offsets above are relative to the aligned frame
>       and not the CFA.  */
> -  BOOL_BITFIELD realigned : 1;
> +  bool realigned : 1;
>
>    /* Indicates whether the stack pointer has been re-aligned.  When set,
>       SP/FP continue to be relative to the CFA, but the stack pointer
>       should only be used for offsets > sp_realigned_offset, while
>       the frame pointer should be used for offsets <= sp_realigned_fp_last.
>       The flags realigned and sp_realigned are mutually exclusive.  */
> -  BOOL_BITFIELD sp_realigned : 1;
> +  bool sp_realigned : 1;
>
>    /* When APX_PPX used in prologue, force epilogue to emit
>    popp instead of move and leave.  */
> -  BOOL_BITFIELD apx_ppx_used : 1;
> +  bool apx_ppx_used : 1;
>
>    /* If sp_realigned is set, this is the last valid offset from the CFA
>       that can be used for access with the frame pointer.  */
> @@ -2898,15 +2898,15 @@ struct GTY(()) machine_function {
>    ENUM_BITFIELD(calling_abi) call_abi : 8;
>
>    /* Nonzero if the function accesses a previous frame.  */
> -  BOOL_BITFIELD accesses_prev_frame : 1;
> +  bool accesses_prev_frame : 1;
>
>    /* Set by ix86_compute_frame_layout and used by prologue/epilogue
>       expander to determine the style used.  */
> -  BOOL_BITFIELD use_fast_prologue_epilogue : 1;
> +  bool use_fast_prologue_epilogue : 1;
>
>    /* Nonzero if the current function calls pc thunk and
>       must not use the red zone.  */
> -  BOOL_BITFIELD pc_thunk_call_expanded : 1;
> +  bool pc_thunk_call_expanded : 1;
>
>    /* If true, the current function needs the default PIC register, not
>       an alternate register (on x86) and must not use the red zone (on
> @@ -2917,17 +2917,17 @@ struct GTY(()) machine_function {
>       if all such instructions are optimized away.  Use the
>       ix86_current_function_calls_tls_descriptor macro for a better
>       approximation.  */
> -  BOOL_BITFIELD tls_descriptor_call_expanded_p : 1;
> +  bool tls_descriptor_call_expanded_p : 1;
>
>    /* True if TLS descriptor is called more than once.  */
> -  BOOL_BITFIELD tls_descriptor_call_multiple_p : 1;
> +  bool tls_descriptor_call_multiple_p : 1;
>
>    /* If true, the current function has a STATIC_CHAIN is placed on the
>       stack below the return address.  */
> -  BOOL_BITFIELD static_chain_on_stack : 1;
> +  bool static_chain_on_stack : 1;
>
>    /* If true, it is safe to not save/restore DRAP register.  */
> -  BOOL_BITFIELD no_drap_save_restore : 1;
> +  bool no_drap_save_restore : 1;
>
>    /* Function type.  */
>    ENUM_BITFIELD(function_type) func_type : 2;
> @@ -2937,7 +2937,7 @@ struct GTY(()) machine_function {
>
>    /* If true, the current function has local indirect jumps, like
>       "indirect_jump" or "tablejump".  */
> -  BOOL_BITFIELD has_local_indirect_jump : 1;
> +  bool has_local_indirect_jump : 1;
>
>    /* How to generate function return.  */
>    ENUM_BITFIELD(indirect_branch) function_return_type : 3;
> @@ -2950,15 +2950,15 @@ struct GTY(()) machine_function {
>       if there is scratch register available for indirect sibcall.  In
>       64-bit, rax, r10 and r11 are scratch registers which aren't used to
>       pass arguments and can be used for indirect sibcall.  */
> -  BOOL_BITFIELD arg_reg_available : 1;
> +  bool arg_reg_available : 1;
>
>    /* If true, we're out-of-lining reg save/restore for regs clobbered
>       by 64-bit ms_abi functions calling a sysv_abi function.  */
> -  BOOL_BITFIELD call_ms2sysv : 1;
> +  bool call_ms2sysv : 1;
>
>    /* If true, the incoming 16-byte aligned stack has an offset (of 8) and
>       needs padding prior to out-of-line stub save/restore area.  */
> -  BOOL_BITFIELD call_ms2sysv_pad_in : 1;
> +  bool call_ms2sysv_pad_in : 1;
>
>    /* This is the number of extra registers saved by stub (valid range is
>       0-6). Each additional register is only saved/restored by the stubs
> @@ -2967,32 +2967,32 @@ struct GTY(()) machine_function {
>    unsigned int call_ms2sysv_extra_regs:3;
>
>    /* Nonzero if the function places outgoing arguments on stack.  */
> -  BOOL_BITFIELD outgoing_args_on_stack : 1;
> +  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;
>
>    /* If true, the function label has been emitted.  */
> -  BOOL_BITFIELD function_label_emitted : 1;
> +  bool function_label_emitted : 1;
>
>    /* True if the function needs a stack frame.  */
> -  BOOL_BITFIELD stack_frame_required : 1;
> +  bool stack_frame_required : 1;
>
>    /* True if we should act silently, rather than raise an error for
>       invalid calls.  */
> -  BOOL_BITFIELD silent_p : 1;
> +  bool silent_p : 1;
>
>    /* True if red zone is used.  */
> -  BOOL_BITFIELD red_zone_used : 1;
> +  bool red_zone_used : 1;
>
>    /* True if inline asm with redzone clobber has been seen.  */
> -  BOOL_BITFIELD asm_redzone_clobber_seen : 1;
> +  bool asm_redzone_clobber_seen : 1;
>
>    /* True if this is a recursive function.  */
> -  BOOL_BITFIELD recursive_function : 1;
> +  bool recursive_function : 1;
>
>    /* True if by_pieces op is currently in use.  */
> -  BOOL_BITFIELD by_pieces_in_use : 1;
> +  bool by_pieces_in_use : 1;
>
>    /* The largest alignment, in bytes, of stack slot actually used.  */
>    unsigned int max_used_stack_alignment;
> diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc
> index a071596085a..62f4992903c 100644
> --- a/gcc/cp/call.cc
> +++ b/gcc/cp/call.cc
> @@ -95,36 +95,36 @@ struct conversion {
>    conversion_kind kind;
>    /* The rank of this conversion.  */
>    conversion_rank rank;
> -  BOOL_BITFIELD user_conv_p : 1;
> -  BOOL_BITFIELD ellipsis_p : 1;
> -  BOOL_BITFIELD this_p : 1;
> +  bool user_conv_p : 1;
> +  bool ellipsis_p : 1;
> +  bool this_p : 1;
>    /* True if this conversion would be permitted with a bending of
>       language standards, e.g. disregarding pointer qualifiers or
>       converting integers to pointers.  */
> -  BOOL_BITFIELD bad_p : 1;
> +  bool bad_p : 1;
>    /* If KIND is ck_ref_bind or ck_base, true to indicate that a
>       temporary should be created to hold the result of the
>       conversion.  If KIND is ck_ambig or ck_user, true means force
>       copy-initialization.  */
> -  BOOL_BITFIELD need_temporary_p : 1;
> +  bool need_temporary_p : 1;
>    /* If KIND is ck_ptr or ck_pmem, true to indicate that a conversion
>       from a pointer-to-derived to pointer-to-base is being performed.  */
> -  BOOL_BITFIELD base_p : 1;
> +  bool base_p : 1;
>    /* If KIND is ck_ref_bind, true when either an lvalue reference is
>       being bound to an lvalue expression or an rvalue reference is
>       being bound to an rvalue expression.  If KIND is ck_rvalue or ck_base,
>       true when we are treating an lvalue as an rvalue (12.8p33).  If
>       ck_identity, we will be binding a reference directly or decaying to
>       a pointer.  */
> -  BOOL_BITFIELD rvaluedness_matches_p: 1;
> -  BOOL_BITFIELD check_narrowing: 1;
> +  bool rvaluedness_matches_p: 1;
> +  bool check_narrowing: 1;
>    /* Whether check_narrowing should only check TREE_CONSTANTs; used
>       in build_converted_constant_expr.  */
> -  BOOL_BITFIELD check_narrowing_const_only: 1;
> +  bool check_narrowing_const_only: 1;
>    /* True if this conversion is taking place in a copy-initialization context
>       and we should only consider converting constructors.  Only set in
>       ck_base and ck_rvalue.  */
> -  BOOL_BITFIELD copy_init_p : 1;
> +  bool copy_init_p : 1;
>    /* The type of the expression resulting from the conversion.  */
>    tree type;
>    union {
> diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
> index 6df271d5e35..dd6f36435f4 100644
> --- a/gcc/cp/cp-tree.h
> +++ b/gcc/cp/cp-tree.h
> @@ -2107,20 +2107,20 @@ struct GTY(()) saved_scope {
>    int x_processing_specialization;
>    int x_processing_constraint;
>    int suppress_location_wrappers;
> -  BOOL_BITFIELD x_processing_postcondition : 1;
> -  BOOL_BITFIELD x_processing_explicit_instantiation : 1;
> -  BOOL_BITFIELD need_pop_function_context : 1;
> -  BOOL_BITFIELD x_processing_omp_trait_property_expr : 1;
> +  bool x_processing_postcondition : 1;
> +  bool x_processing_explicit_instantiation : 1;
> +  bool need_pop_function_context : 1;
> +  bool x_processing_omp_trait_property_expr : 1;
>
>    /* Nonzero if we are parsing the discarded statement of a constexpr
>       if-statement.  */
> -  BOOL_BITFIELD discarded_stmt : 1;
> +  bool discarded_stmt : 1;
>    /* Nonzero if we are parsing or instantiating the compound-statement
>       of consteval if statement.  Also set while processing an immediate
>       invocation.  */
> -  BOOL_BITFIELD consteval_if_p : 1;
> +  bool consteval_if_p : 1;
>    /* Nonzero if we are parsing the substatement of expansion-statement.  */
> -  BOOL_BITFIELD expansion_stmt : 1;
> +  bool expansion_stmt : 1;
>
>    int unevaluated_operand;
>    int inhibit_evaluation_warnings;
> @@ -2365,20 +2365,20 @@ struct GTY(()) language_function {
>    tree x_vtt_parm;
>    tree x_return_value;
>
> -  BOOL_BITFIELD returns_value : 1;
> -  BOOL_BITFIELD returns_null : 1;
> -  BOOL_BITFIELD returns_abnormally : 1;
> -  BOOL_BITFIELD infinite_loop: 1;
> -  BOOL_BITFIELD x_in_function_try_handler : 1;
> -  BOOL_BITFIELD x_in_base_initializer : 1;
> +  bool returns_value : 1;
> +  bool returns_null : 1;
> +  bool returns_abnormally : 1;
> +  bool infinite_loop: 1;
> +  bool x_in_function_try_handler : 1;
> +  bool x_in_base_initializer : 1;
>
>    /* True if this function can throw an exception.  */
> -  BOOL_BITFIELD can_throw : 1;
> +  bool can_throw : 1;
>
> -  BOOL_BITFIELD invalid_constexpr : 1;
> -  BOOL_BITFIELD throwing_cleanup : 1;
> +  bool invalid_constexpr : 1;
> +  bool throwing_cleanup : 1;
>    /* True if we gave any errors in this function.  */
> -  BOOL_BITFIELD erroneous : 1;
> +  bool erroneous : 1;
>
>    hash_table<named_label_hash> *x_named_labels;
>
> @@ -7001,31 +7001,31 @@ struct cp_decl_specifier_seq {
>    /* For the __intN declspec, this stores the index into the int_n_* arrays. 
>  */
>    int int_n_idx;
>    /* True iff TYPE_SPEC defines a class or enum.  */
> -  BOOL_BITFIELD type_definition_p : 1;
> +  bool type_definition_p : 1;
>    /* True iff multiple types were (erroneously) specified for this
>       decl-specifier-seq.  */
> -  BOOL_BITFIELD multiple_types_p : 1;
> +  bool multiple_types_p : 1;
>    /* True iff multiple storage classes were (erroneously) specified
>       for this decl-specifier-seq or a combination of a storage class
>       with a typedef specifier.  */
> -  BOOL_BITFIELD conflicting_specifiers_p : 1;
> +  bool conflicting_specifiers_p : 1;
>    /* True iff at least one decl-specifier was found.  */
> -  BOOL_BITFIELD any_specifiers_p : 1;
> +  bool any_specifiers_p : 1;
>    /* True iff at least one type-specifier was found.  */
> -  BOOL_BITFIELD any_type_specifiers_p : 1;
> +  bool any_type_specifiers_p : 1;
>    /* True iff "int" was explicitly provided.  */
> -  BOOL_BITFIELD explicit_int_p : 1;
> +  bool explicit_int_p : 1;
>    /* True iff "__intN" was explicitly provided.  */
> -  BOOL_BITFIELD explicit_intN_p : 1;
> +  bool explicit_intN_p : 1;
>    /* True iff "char" was explicitly provided.  */
> -  BOOL_BITFIELD explicit_char_p : 1;
> +  bool explicit_char_p : 1;
>    /* True iff ds_thread is set for __thread, not thread_local.  */
> -  BOOL_BITFIELD gnu_thread_keyword_p : 1;
> +  bool gnu_thread_keyword_p : 1;
>    /* True iff the type is a decltype.  */
> -  BOOL_BITFIELD decltype_p : 1;
> +  bool decltype_p : 1;
>    /* True iff the alternate "__intN__" form of the __intN type has been
>       used.  */
> -  BOOL_BITFIELD int_n_alt: 1;
> +  bool int_n_alt: 1;
>  };
>
>  /* The various kinds of declarators.  */
> @@ -7069,7 +7069,7 @@ struct cp_declarator {
>    ENUM_BITFIELD (cp_declarator_kind) kind : 4;
>    /* Whether we parsed an ellipsis (`...') just before the declarator,
>       to indicate this is a parameter pack.  */
> -  BOOL_BITFIELD parameter_pack_p : 1;
> +  bool parameter_pack_p : 1;
>    /* If this declarator is parenthesized, this the open-paren.  It is
>       UNKNOWN_LOCATION when not parenthesized.  */
>    location_t parenthesized;
> diff --git a/gcc/cp/name-lookup.h b/gcc/cp/name-lookup.h
> index 2e541f58b9b..5c54c9d6052 100644
> --- a/gcc/cp/name-lookup.h
> +++ b/gcc/cp/name-lookup.h
> @@ -332,7 +332,7 @@ struct GTY(()) cp_binding_level {
>
>    /* True if this scope is an SK_TEMPLATE_SPEC scope.  This field is
>        only valid if KIND == SK_TEMPLATE_PARMS.  */
> -  BOOL_BITFIELD explicit_spec_p : 1;
> +  bool explicit_spec_p : 1;
>
>    /* True means make a BLOCK for this level regardless of all else.  */
>    unsigned keep : 1;
> diff --git a/gcc/ctfc.h b/gcc/ctfc.h
> index 0e2315f5b03..13a087ad17f 100644
> --- a/gcc/ctfc.h
> +++ b/gcc/ctfc.h
> @@ -181,9 +181,9 @@ struct GTY ((for_user)) ctf_dtdef
>    uint32_t linkage;           /* Used in function types.  0=local, 1=global. 
>  */
>
>    /* Whether this type was added from a global function.  */
> -  BOOL_BITFIELD from_global_func : 1;
> +  bool from_global_func : 1;
>    /* Enum signedness.  */
> -  BOOL_BITFIELD dtd_enum_unsigned : 1;
> +  bool dtd_enum_unsigned : 1;
>    /* Lots of spare bits.  */
>
>    union GTY ((desc ("ctf_dtu_d_union_selector (&%1)")))
> diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
> index 32aa3adefd7..7d81e36e93b 100644
> --- a/gcc/dwarf2out.cc
> +++ b/gcc/dwarf2out.cc
> @@ -3161,15 +3161,15 @@ typedef struct GTY((chain_circular ("%h.die_sib"), 
> for_user)) die_struct {
>    unsigned int decl_id;
>    enum dwarf_tag die_tag;
>    /* Die is used and must not be pruned as unused.  */
> -  BOOL_BITFIELD die_perennial_p : 1;
> -  BOOL_BITFIELD comdat_type_p : 1; /* DIE has a type signature */
> +  bool die_perennial_p : 1;
> +  bool comdat_type_p : 1; /* DIE has a type signature */
>    /* For an external ref to die_symbol if die_offset contains an extra
>       offset to that symbol.  */
> -  BOOL_BITFIELD with_offset : 1;
> +  bool with_offset : 1;
>    /* Whether this DIE was removed from the DIE tree, for example via
>       prune_unused_types.  We don't consider those present from the
>       DIE lookup routines.  */
> -  BOOL_BITFIELD removed : 1;
> +  bool removed : 1;
>    /* Lots of spare bits.  */
>  }
>  die_node;
> diff --git a/gcc/dwarf2out.h b/gcc/dwarf2out.h
> index 312dbb38252..259b939dce4 100644
> --- a/gcc/dwarf2out.h
> +++ b/gcc/dwarf2out.h
> @@ -161,8 +161,8 @@ struct GTY(()) dw_cfa_location {
>    poly_int64 base_offset;
>    /* REG is in DWARF_FRAME_REGNUM space, *not* normal REGNO space.  */
>    struct cfa_reg reg;
> -  BOOL_BITFIELD indirect : 1;  /* 1 if CFA is accessed via a dereference.  */
> -  BOOL_BITFIELD in_use : 1;    /* 1 if a saved cfa is stored here.  */
> +  bool indirect : 1;  /* 1 if CFA is accessed via a dereference.  */
> +  bool in_use : 1;    /* 1 if a saved cfa is stored here.  */
>  };
>
>
> diff --git a/gcc/gengtype-lex.l b/gcc/gengtype-lex.l
> index ea8547be3ef..7d7e81072ac 100644
> --- a/gcc/gengtype-lex.l
> +++ b/gcc/gengtype-lex.l
> @@ -42,7 +42,7 @@ update_lineno (const char *l, size_t len)
>  CID    [[:alpha:]_][[:alnum:]_]*
>  WS     [[:space:]]+
>  HWS    [ \t\r\v\f]*
> -IWORD  
> short|long|(un)?signed|char|int|HOST_WIDE_INT|uint64_t|int64_t|bool|size_t|BOOL_BITFIELD|CPPCHAR_SIGNED_T|ino_t|dev_t|HARD_REG_SET
> +IWORD  
> short|long|(un)?signed|char|int|HOST_WIDE_INT|uint64_t|int64_t|bool|size_t|CPPCHAR_SIGNED_T|ino_t|dev_t|HARD_REG_SET
>  ITYPE  {IWORD}({WS}{IWORD})*
>      /* Include '::' in identifiers to capture C++ scope qualifiers.  */
>  ID     {CID}({HWS}::{HWS}{CID})*
> diff --git a/gcc/gimple-walk.h b/gcc/gimple-walk.h
> index 418605455cd..983494fac4a 100644
> --- a/gcc/gimple-walk.h
> +++ b/gcc/gimple-walk.h
> @@ -57,20 +57,20 @@ struct walk_stmt_info
>       statement 'foo (&var)', the flag VAL_ONLY will initially be set
>       to true, however, when walking &var, the operand of that
>       ADDR_EXPR does not need to be a GIMPLE value.  */
> -  BOOL_BITFIELD val_only : 1;
> +  bool val_only : 1;
>
>    /* True if we are currently walking the LHS of an assignment.  */
> -  BOOL_BITFIELD is_lhs : 1;
> +  bool is_lhs : 1;
>
>    /* Optional.  Set to true by the callback functions if they made any
>       changes.  */
> -  BOOL_BITFIELD changed : 1;
> +  bool changed : 1;
>
>    /* True if we're interested in location information.  */
> -  BOOL_BITFIELD want_locations : 1;
> +  bool want_locations : 1;
>
>    /* True if we've removed the statement that was processed.  */
> -  BOOL_BITFIELD removed_stmt : 1;
> +  bool removed_stmt : 1;
>  };
>
>  /* Callback for walk_gimple_stmt.  Called for every statement found
> diff --git a/gcc/objc/objc-act.h b/gcc/objc/objc-act.h
> index 141364d3a83..39cdf6847e1 100644
> --- a/gcc/objc/objc-act.h
> +++ b/gcc/objc/objc-act.h
> @@ -302,7 +302,7 @@ struct GTY(()) imp_entry {
>    tree imp_template;
>    tree class_decl;             /* _OBJC[_v2]_CLASS/CATEGORY_<my_name>; */
>    tree meta_decl;              /* _OBJC[_v2]_METACLASS_<my_name>; */
> -  BOOL_BITFIELD has_cxx_cdtors : 1;
> +  bool has_cxx_cdtors : 1;
>  };
>
>  extern GTY(()) struct imp_entry *imp_list;
> diff --git a/gcc/opts.h b/gcc/opts.h
> index 1934ce4f650..e637963b673 100644
> --- a/gcc/opts.h
> +++ b/gcc/opts.h
> @@ -95,31 +95,31 @@ struct cl_option
>    /* CL_* flags for this option.  */
>    unsigned int flags;
>    /* Disabled in this configuration.  */
> -  BOOL_BITFIELD cl_disabled : 1;
> +  bool cl_disabled : 1;
>    /* Options marked with CL_SEPARATE take a number of separate
>       arguments (1 to 4) that is one more than the number in this
>       bit-field.  */
>    unsigned int cl_separate_nargs : 2;
>    /* Option is an alias when used with separate argument.  */
> -  BOOL_BITFIELD cl_separate_alias : 1;
> +  bool cl_separate_alias : 1;
>    /* Alias to negative form of option.  */
> -  BOOL_BITFIELD cl_negative_alias : 1;
> +  bool cl_negative_alias : 1;
>    /* Option takes no argument in the driver.  */
> -  BOOL_BITFIELD cl_no_driver_arg : 1;
> +  bool cl_no_driver_arg : 1;
>    /* Reject this option in the driver.  */
> -  BOOL_BITFIELD cl_reject_driver : 1;
> +  bool cl_reject_driver : 1;
>    /* Reject no- form.  */
> -  BOOL_BITFIELD cl_reject_negative : 1;
> +  bool cl_reject_negative : 1;
>    /* Missing argument OK (joined).  */
> -  BOOL_BITFIELD cl_missing_ok : 1;
> +  bool cl_missing_ok : 1;
>    /* Argument is an integer >=0.  */
> -  BOOL_BITFIELD cl_uinteger : 1;
> +  bool cl_uinteger : 1;
>    /* Argument is a HOST_WIDE_INT.  */
> -  BOOL_BITFIELD cl_host_wide_int : 1;
> +  bool cl_host_wide_int : 1;
>    /* Argument should be converted to lowercase.  */
> -  BOOL_BITFIELD cl_tolower : 1;
> +  bool cl_tolower : 1;
>    /* Argument is an unsigned integer with an optional byte suffix.  */
> -  BOOL_BITFIELD cl_byte_size: 1;
> +  bool cl_byte_size: 1;
>    /* Offset of field for this option in struct gcc_options, or
>       (unsigned short) -1 if none.  */
>    unsigned short flag_var_offset;
> diff --git a/gcc/rust/backend/rust-tree.h b/gcc/rust/backend/rust-tree.h
> index 4c535911070..b995d0afd8a 100644
> --- a/gcc/rust/backend/rust-tree.h
> +++ b/gcc/rust/backend/rust-tree.h
> @@ -2089,16 +2089,16 @@ struct GTY (()) saved_scope
>    int x_processing_specialization;
>    int x_processing_constraint;
>    int suppress_location_wrappers;
> -  BOOL_BITFIELD x_processing_explicit_instantiation : 1;
> -  BOOL_BITFIELD need_pop_function_context : 1;
> +  bool x_processing_explicit_instantiation : 1;
> +  bool need_pop_function_context : 1;
>
>    /* Nonzero if we are parsing the discarded statement of a constexpr
>       if-statement.  */
> -  BOOL_BITFIELD discarded_stmt : 1;
> +  bool discarded_stmt : 1;
>    /* Nonzero if we are parsing or instantiating the compound-statement
>       of consteval if statement.  Also set while processing an immediate
>       invocation.  */
> -  BOOL_BITFIELD consteval_if_p : 1;
> +  bool consteval_if_p : 1;
>
>    int unevaluated_operand;
>    int inhibit_evaluation_warnings;
> @@ -2193,7 +2193,7 @@ struct GTY (()) rust_cp_binding_level
>
>    /* True if this scope is an SK_TEMPLATE_SPEC scope.  This field is
>        only valid if KIND == SK_TEMPLATE_PARMS.  */
> -  BOOL_BITFIELD explicit_spec_p : 1;
> +  bool explicit_spec_p : 1;
>
>    /* true means make a BLOCK for this level regardless of all else.  */
>    unsigned keep : 1;
> @@ -2292,18 +2292,18 @@ struct GTY (()) language_function
>    tree x_vtt_parm;
>    tree x_return_value;
>
> -  BOOL_BITFIELD returns_value : 1;
> -  BOOL_BITFIELD returns_null : 1;
> -  BOOL_BITFIELD returns_abnormally : 1;
> -  BOOL_BITFIELD infinite_loop : 1;
> -  BOOL_BITFIELD x_in_function_try_handler : 1;
> -  BOOL_BITFIELD x_in_base_initializer : 1;
> +  bool returns_value : 1;
> +  bool returns_null : 1;
> +  bool returns_abnormally : 1;
> +  bool infinite_loop : 1;
> +  bool x_in_function_try_handler : 1;
> +  bool x_in_base_initializer : 1;
>
>    /* True if this function can throw an exception.  */
> -  BOOL_BITFIELD can_throw : 1;
> +  bool can_throw : 1;
>
> -  BOOL_BITFIELD invalid_constexpr : 1;
> -  BOOL_BITFIELD throwing_cleanup : 1;
> +  bool invalid_constexpr : 1;
> +  bool throwing_cleanup : 1;
>
>    hash_table<rust_named_label_hash> *x_named_labels;
>
> diff --git a/gcc/sched-int.h b/gcc/sched-int.h
> index a5a0b1ffdb6..4ec0098e5db 100644
> --- a/gcc/sched-int.h
> +++ b/gcc/sched-int.h
> @@ -572,7 +572,7 @@ public:
>
>    /* True when this context should be treated as a readonly by
>       the analysis.  */
> -  BOOL_BITFIELD readonly : 1;
> +  bool readonly : 1;
>  };
>
>  typedef class deps_desc *deps_t;
> diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h
> index 23ca971b098..07db5503308 100644
> --- a/gcc/sel-sched-ir.h
> +++ b/gcc/sel-sched-ir.h
> @@ -140,17 +140,17 @@ struct _expr
>
>    /* True when this expression needs a speculation check to be scheduled.
>       This is used during find_used_regs.  */
> -  BOOL_BITFIELD needs_spec_check_p : 1;
> +  bool needs_spec_check_p : 1;
>
>    /* True when the expression was substituted.  Used for statistical
>       purposes.  */
> -  BOOL_BITFIELD was_substituted : 1;
> +  bool was_substituted : 1;
>
>    /* True when the expression was renamed.  */
> -  BOOL_BITFIELD was_renamed : 1;
> +  bool was_renamed : 1;
>
>    /* True when expression can't be moved.  */
> -  BOOL_BITFIELD cant_move : 1;
> +  bool cant_move : 1;
>  };
>
>  typedef struct _expr expr_def;
> @@ -286,16 +286,16 @@ struct _fence
>    rtx_insn *sched_next;
>
>    /* True if fill_insns processed this fence.  */
> -  BOOL_BITFIELD processed_p : 1;
> +  bool processed_p : 1;
>
>    /* True if fill_insns actually scheduled something on this fence.  */
> -  BOOL_BITFIELD scheduled_p : 1;
> +  bool scheduled_p : 1;
>
>    /* True when the next insn scheduled here would start a cycle.  */
> -  BOOL_BITFIELD starts_cycle_p : 1;
> +  bool starts_cycle_p : 1;
>
>    /* True when the next insn scheduled here would be scheduled after a 
> stall.  */
> -  BOOL_BITFIELD after_stall_p : 1;
> +  bool after_stall_p : 1;
>  };
>  typedef struct _fence *fence_t;
>
> @@ -702,10 +702,10 @@ struct transformed_insns
>    enum local_trans_type type;
>
>    /* Whether a conflict on the target register happened.  */
> -  BOOL_BITFIELD was_target_conflict : 1;
> +  bool was_target_conflict : 1;
>
>    /* Whether a check was needed.  */
> -  BOOL_BITFIELD needs_check : 1;
> +  bool needs_check : 1;
>  };
>
>  /* Indexed by INSN_LUID, the collection of all data associated with
> @@ -762,14 +762,14 @@ public:
>    ds_t spec_checked_ds;
>
>    /* Whether the live set valid or not.  */
> -  BOOL_BITFIELD live_valid_p : 1;
> +  bool live_valid_p : 1;
>    /* Insn is an ASM.  */
> -  BOOL_BITFIELD asm_p : 1;
> +  bool asm_p : 1;
>
>    /* True when an insn is scheduled after we've determined that a stall is
>       required.
>       This is used when emulating the Haifa scheduler for bundling.  */
> -  BOOL_BITFIELD after_stall_p : 1;
> +  bool after_stall_p : 1;
>  };
>
>  typedef class _sel_insn_data sel_insn_data_def;
> diff --git a/gcc/sel-sched.cc b/gcc/sel-sched.cc
> index ca68068fef0..08ae0ae019a 100644
> --- a/gcc/sel-sched.cc
> +++ b/gcc/sel-sched.cc
> @@ -354,7 +354,7 @@ struct cmpd_local_params
>    /* Local params used in move_op_* functions.  */
>    /* True when we have removed last insn in the block which was
>       also a boundary.  Do not update anything or create bookkeeping copies.  
> */
> -  BOOL_BITFIELD removed_last_insn : 1;
> +  bool removed_last_insn : 1;
>  };
>
>  /* Stores the static parameters for move_op_* calls.  */
> diff --git a/gcc/system.h b/gcc/system.h
> index 9b717080429..c00995ccb17 100644
> --- a/gcc/system.h
> +++ b/gcc/system.h
> @@ -895,9 +895,6 @@ extern void fancy_abort (const char *, int, const char *)
>  # define FALSE false
>  #endif /* !__cplusplus */
>
> -/* Some compilers do not allow the use of unsigned char in bitfields.  */
> -#define BOOL_BITFIELD unsigned int
> -
>  /* As the last action in this file, we poison the identifiers that
>     shouldn't be used.  Note, luckily gcc-3.0's token-based integrated
>     preprocessor won't trip on poisoned identifiers that arrive from
> --
> 2.54.0
>

Reply via email to