From patchwork Fri Oct 8 11:02:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Martin_Li=C5=A1ka?= X-Patchwork-Id: 45995 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D48D43858034 for ; Fri, 8 Oct 2021 11:03:11 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id 9FF3B3857C4A for ; Fri, 8 Oct 2021 11:02:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9FF3B3857C4A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.cz Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id D017D20119 for ; Fri, 8 Oct 2021 11:02:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1633690961; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SzcBaJMljBM0BTkjMc396OmSYvnC/gwn7LHcxpqfVyQ=; b=i9t1k8vvlsOAcF1pkX+pmra7bO+4fOJP1LjFygfxgNo9s6oA9gueJel/v+nlrbU11jvGhh jAkxXI38QCf96Uni6hmPUlf3w5MzGGLlbNZwfFLsIFj5CrJ/lOpGh/sEhF15FCVsWK3MKL sNBXmrxgpT1VtpV7Hb7c7xenIjBakpk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1633690961; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SzcBaJMljBM0BTkjMc396OmSYvnC/gwn7LHcxpqfVyQ=; b=McX5UUdDgZIWCqJbo09DxVusYK6/2ohJQTpfEN81xpXtZaqnJEyHSFE6eDkKQKelFvmn2L 9hlFJmPpwKu47mAA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C10E213E7F for ; Fri, 8 Oct 2021 11:02:41 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id XFCcLlElYGFcLwAAMHmgww (envelope-from ) for ; Fri, 08 Oct 2021 11:02:41 +0000 Message-ID: Date: Fri, 8 Oct 2021 13:02:41 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.2 From: =?utf-8?q?Martin_Li=C5=A1ka?= Subject: [PATCH] Come up with OPTION_SET_P macro. To: gcc-patches@gcc.gnu.org Content-Language: en-US X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hello. It's a refactoring patch introducing a new macro. Patch can bootstrap on x86_64-linux-gnu and survives regression tests. I verified all cross compilers do build. Ready to be installed? Thanks, Martin gcc/ada/ChangeLog: * gcc-interface/misc.c (gnat_post_options): Use new macro OPTION_SET_P. (gnat_init_gcc_eh): Likewise. (gnat_init_gcc_fp): Likewise. gcc/c-family/ChangeLog: * c-opts.c (c_common_post_options): Use new macro OPTION_SET_P. gcc/ChangeLog: * config/alpha/alpha.c (alpha_option_override): Use new macro OPTION_SET_P. * config/arc/arc.c (arc_override_options): Likewise. * config/arm/arm.c (arm_option_override): Likewise. * config/bfin/bfin.c (bfin_load_pic_reg): Likewise. * config/c6x/c6x.c (c6x_option_override): Likewise. * config/csky/csky.c: Likewise. * config/darwin.c (darwin_override_options): Likewise. * config/frv/frv.c (frv_option_override): Likewise. * config/i386/djgpp.h: Likewise. * config/i386/i386.c (ix86_stack_protect_guard): Likewise. (ix86_max_noce_ifcvt_seq_cost): Likewise. * config/ia64/ia64.c (ia64_option_override): Likewise. (ia64_override_options_after_change): Likewise. * config/m32c/m32c.c (m32c_option_override): Likewise. * config/m32r/m32r.c (m32r_init): Likewise. * config/m68k/m68k.c (m68k_option_override): Likewise. * config/microblaze/microblaze.c (microblaze_option_override): Likewise. * config/mips/mips.c (mips_option_override): Likewise. * config/nios2/nios2.c (nios2_option_override): Likewise. * config/nvptx/nvptx.c (nvptx_option_override): Likewise. * config/pa/pa.c (pa_option_override): Likewise. * config/riscv/riscv.c (riscv_option_override): Likewise. * config/rs6000/aix71.h: Likewise. * config/rs6000/aix72.h: Likewise. * config/rs6000/aix73.h: Likewise. * config/rs6000/rs6000.c (darwin_rs6000_override_options): Likewise. (rs6000_override_options_after_change): Likewise. (rs6000_linux64_override_options): Likewise. (glibc_supports_ieee_128bit): Likewise. (rs6000_option_override_internal): Likewise. (rs6000_file_start): Likewise. (rs6000_darwin_file_start): Likewise. * config/rs6000/rtems.h: Likewise. * config/rs6000/sysv4.h: Likewise. * config/rs6000/vxworks.h (SUB3TARGET_OVERRIDE_OPTIONS): Likewise. * config/s390/s390.c (s390_option_override): Likewise. * config/sh/linux.h: Likewise. * config/sh/netbsd-elf.h (while): Likewise. * config/sh/sh.c (sh_option_override): Likewise. * config/sol2.c (solaris_override_options): Likewise. * config/sparc/sparc.c (sparc_option_override): Likewise. * config/tilegx/tilegx.c (tilegx_option_override): Likewise. * config/visium/visium.c (visium_option_override): Likewise. * config/vxworks.c (vxworks_override_options): Likewise. * lto-opts.c (lto_write_options): Likewise. * omp-expand.c (expand_omp_simd): Likewise. * omp-general.c (omp_max_vf): Likewise. * omp-offload.c (oacc_xform_loop): Likewise. * opts.h (OPTION_SET_P): Likewise. * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise. * toplev.c (process_options): Likewise. * tree-predcom.c: Likewise. * tree-sra.c (analyze_all_variable_accesses): Likewise. gcc/cp/ChangeLog: * constexpr.c (maybe_warn_about_constant_value): Use new macro OPTION_SET_P. * decl.c (redeclaration_error_message): Likewise. (cxx_init_decl_processing): Likewise. gcc/d/ChangeLog: * d-lang.cc (d_post_options): Use new macro OPTION_SET_P. gcc/fortran/ChangeLog: * options.c (gfc_post_options): Use new macro OPTION_SET_P. gcc/objc/ChangeLog: * objc-next-runtime-abi-01.c: Use new macro OPTION_SET_P. * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Likewise. --- gcc/ada/gcc-interface/misc.c | 10 ++--- gcc/c-family/c-opts.c | 6 +-- gcc/config/alpha/alpha.c | 2 +- gcc/config/arc/arc.c | 4 +- gcc/config/arm/arm.c | 9 ++-- gcc/config/bfin/bfin.c | 5 ++- gcc/config/c6x/c6x.c | 3 +- gcc/config/csky/csky.c | 7 +-- gcc/config/darwin.c | 31 ++++++------- gcc/config/frv/frv.c | 5 ++- gcc/config/i386/djgpp.h | 2 +- gcc/config/i386/i386.c | 6 +-- gcc/config/ia64/ia64.c | 6 +-- gcc/config/m32c/m32c.c | 3 +- gcc/config/m32r/m32r.c | 3 +- gcc/config/m68k/m68k.c | 6 +-- gcc/config/microblaze/microblaze.c | 3 +- gcc/config/mips/mips.c | 9 ++-- gcc/config/nios2/nios2.c | 3 +- gcc/config/nvptx/nvptx.c | 4 +- gcc/config/pa/pa.c | 4 +- gcc/config/riscv/riscv.c | 11 ++--- gcc/config/rs6000/aix71.h | 6 +-- gcc/config/rs6000/aix72.h | 6 +-- gcc/config/rs6000/aix73.h | 6 +-- gcc/config/rs6000/rs6000.c | 70 ++++++++++++++--------------- gcc/config/rs6000/rtems.h | 4 +- gcc/config/rs6000/sysv4.h | 8 ++-- gcc/config/rs6000/vxworks.h | 2 +- gcc/config/s390/s390.c | 4 +- gcc/config/sh/linux.h | 4 +- gcc/config/sh/netbsd-elf.h | 2 +- gcc/config/sh/sh.c | 12 ++--- gcc/config/sol2.c | 3 +- gcc/config/sparc/sparc.c | 12 ++--- gcc/config/tilegx/tilegx.c | 3 +- gcc/config/visium/visium.c | 2 +- gcc/config/vxworks.c | 5 ++- gcc/cp/constexpr.c | 3 +- gcc/cp/decl.c | 7 +-- gcc/d/d-lang.cc | 10 ++--- gcc/fortran/options.c | 6 +-- gcc/lto-opts.c | 8 ++-- gcc/objc/objc-next-runtime-abi-01.c | 2 +- gcc/objc/objc-next-runtime-abi-02.c | 4 +- gcc/omp-expand.c | 3 +- gcc/omp-general.c | 3 +- gcc/omp-offload.c | 3 +- gcc/opts.h | 4 ++ gcc/targhooks.c | 4 +- gcc/toplev.c | 2 +- gcc/tree-predcom.c | 3 +- gcc/tree-sra.c | 6 +-- 53 files changed, 192 insertions(+), 167 deletions(-) diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c index 96199bd4b63..d0735708670 100644 --- a/gcc/ada/gcc-interface/misc.c +++ b/gcc/ada/gcc-interface/misc.c @@ -271,7 +271,7 @@ gnat_post_options (const char **pfilename ATTRIBUTE_UNUSED) warn_stringop_overflow = 0; /* No caret by default for Ada. */ - if (!global_options_set.x_flag_diagnostics_show_caret) + if (!OPTION_SET_P (flag_diagnostics_show_caret)) global_dc->show_caret = false; /* Warn only if STABS is not the default: we don't want to emit a warning if @@ -422,12 +422,12 @@ gnat_init_gcc_eh (void) flag_delete_dead_exceptions = 1; if (Suppress_Checks) { - if (!global_options_set.x_flag_non_call_exceptions) + if (!OPTION_SET_P (flag_non_call_exceptions)) flag_non_call_exceptions = Machine_Overflows_On_Target && GNAT_Mode; } else { - if (!global_options_set.x_flag_non_call_exceptions) + if (!OPTION_SET_P (flag_non_call_exceptions)) flag_non_call_exceptions = 1; flag_aggressive_loop_optimizations = 0; warn_aggressive_loop_optimizations = 0; @@ -445,14 +445,14 @@ gnat_init_gcc_fp (void) S'Signed_Zeros is true, but don't override the user if not. */ if (Signed_Zeros_On_Target) flag_signed_zeros = 1; - else if (!global_options_set.x_flag_signed_zeros) + else if (!OPTION_SET_P (flag_signed_zeros)) flag_signed_zeros = 0; /* Assume that FP operations can trap if S'Machine_Overflow is true, but don't override the user if not. */ if (Machine_Overflows_On_Target) flag_trapping_math = 1; - else if (!global_options_set.x_flag_trapping_math) + else if (!OPTION_SET_P (flag_trapping_math)) flag_trapping_math = 0; } diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c index 3eaab5e1530..0225cba7a4b 100644 --- a/gcc/c-family/c-opts.c +++ b/gcc/c-family/c-opts.c @@ -831,7 +831,7 @@ c_common_post_options (const char **pfilename) for -ffp-contract=off). */ if (flag_iso && !c_dialect_cxx () - && (global_options_set.x_flag_fp_contract_mode + && (OPTION_SET_P (flag_fp_contract_mode) == (enum fp_contract_mode) 0) && flag_unsafe_math_optimizations == 0) flag_fp_contract_mode = FP_CONTRACT_OFF; @@ -842,7 +842,7 @@ c_common_post_options (const char **pfilename) the set specified in ISO C99/C11. */ if (!flag_iso && !c_dialect_cxx () - && (global_options_set.x_flag_permitted_flt_eval_methods + && (OPTION_SET_P (flag_permitted_flt_eval_methods) == PERMITTED_FLT_EVAL_METHODS_DEFAULT)) flag_permitted_flt_eval_methods = PERMITTED_FLT_EVAL_METHODS_TS_18661; else @@ -1040,7 +1040,7 @@ c_common_post_options (const char **pfilename) /* Unless -f{,no-}ext-numeric-literals has been used explicitly, for -std=c++{11,14,17,20,23} default to -fno-ext-numeric-literals. */ - if (flag_iso && !global_options_set.x_flag_ext_numeric_literals) + if (flag_iso && !OPTION_SET_P (flag_ext_numeric_literals)) cpp_opts->ext_numeric_literals = 0; } else if (warn_narrowing == -1) diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index c702e683c31..fced7ceefe2 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -575,7 +575,7 @@ alpha_option_override (void) } /* Default the definition of "small data" to 8 bytes. */ - if (!global_options_set.x_g_switch_value) + if (!OPTION_SET_P (g_switch_value)) g_switch_value = 8; /* Infer TARGET_SMALL_DATA from -fpic/-fPIC. */ diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index 92797db96b7..8244f37bf03 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -1441,7 +1441,7 @@ arc_override_options (void) target_flags |= MASK_NO_SDATA_SET; /* Check for small data option */ - if (!global_options_set.x_g_switch_value && !TARGET_NO_SDATA_SET) + if (!OPTION_SET_P (g_switch_value) && !TARGET_NO_SDATA_SET) g_switch_value = TARGET_LL64 ? 8 : 4; /* A7 has an issue with delay slots. */ @@ -1455,7 +1455,7 @@ arc_override_options (void) target_flags &= ~MASK_MILLICODE_THUNK_SET; /* Set unaligned to all HS cpus. */ - if (!global_options_set.x_unaligned_access && TARGET_HS) + if (!OPTION_SET_P (unaligned_access) && TARGET_HS) unaligned_access = 1; /* These need to be done at start up. It's convenient to do them here. */ diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 6c6e77fab66..471128fc86a 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -71,6 +71,7 @@ #include "gimple.h" #include "selftest.h" #include "tree-vectorizer.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -3468,7 +3469,7 @@ arm_option_override (void) arm_active_target.isa = sbitmap_alloc (isa_num_bits); - if (!global_options_set.x_arm_fpu_index) + if (!OPTION_SET_P (arm_fpu_index)) { bool ok; int fpu_index; @@ -3528,7 +3529,7 @@ arm_option_override (void) flag_schedule_insns = flag_schedule_insns_after_reload = 0; /* Override the default structure alignment for AAPCS ABI. */ - if (!global_options_set.x_arm_structure_size_boundary) + if (!OPTION_SET_P (arm_structure_size_boundary)) { if (TARGET_AAPCS_BASED) arm_structure_size_boundary = 8; @@ -3553,12 +3554,12 @@ arm_option_override (void) if (TARGET_VXWORKS_RTP) { - if (!global_options_set.x_arm_pic_data_is_text_relative) + if (!OPTION_SET_P (arm_pic_data_is_text_relative)) arm_pic_data_is_text_relative = 0; } else if (flag_pic && !arm_pic_data_is_text_relative - && !(global_options_set.x_target_flags & MASK_SINGLE_PIC_BASE)) + && !(OPTION_SET_P (target_flags) & MASK_SINGLE_PIC_BASE)) /* When text & data segments don't have a fixed displacement, the intended use is with a single, read only, pic base register. Unless the user explicitly requested not to do that, set diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c index 698dd879934..3287e495dd3 100644 --- a/gcc/config/bfin/bfin.c +++ b/gcc/config/bfin/bfin.c @@ -53,6 +53,7 @@ #include "hw-doloop.h" #include "dumpfile.h" #include "builtins.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -1046,7 +1047,7 @@ bfin_load_pic_reg (rtx dest) if (local_info_node && local_info_node->local) return pic_offset_table_rtx; - if (global_options_set.x_bfin_library_id) + if (OPTION_SET_P (bfin_library_id)) addr = plus_constant (Pmode, pic_offset_table_rtx, -4 - bfin_library_id * 4); else @@ -2369,7 +2370,7 @@ bfin_option_override (void) #endif /* Library identification */ - if (global_options_set.x_bfin_library_id && ! TARGET_ID_SHARED_LIBRARY) + if (OPTION_SET_P (bfin_library_id) && ! TARGET_ID_SHARED_LIBRARY) error ("%<-mshared-library-id=%> specified without " "%<-mid-shared-library%>"); diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c index ce4949516cf..4854371ee13 100644 --- a/gcc/config/c6x/c6x.c +++ b/gcc/config/c6x/c6x.c @@ -60,6 +60,7 @@ #include "dumpfile.h" #include "builtins.h" #include "flags.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -221,7 +222,7 @@ c6x_option_override (void) { unsigned i; - if (global_options_set.x_c6x_arch_option) + if (OPTION_SET_P (c6x_arch_option)) { c6x_arch = all_isas[c6x_arch_option].type; c6x_insn_mask &= ~C6X_INSNS_ALL_CPU_BITS; diff --git a/gcc/config/csky/csky.c b/gcc/config/csky/csky.c index e55821fe2ee..487288b3292 100644 --- a/gcc/config/csky/csky.c +++ b/gcc/config/csky/csky.c @@ -67,6 +67,7 @@ #include "pass_manager.h" #include "tree-pass.h" #include "context.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -2757,15 +2758,15 @@ csky_option_override (void) #ifdef ENABLE_TPF_DEBUG /* Don't emit DWARF4 unless specifically selected. The TPF debuggers do not yet support DWARF 3/4. */ - if (!global_options_set.x_dwarf_strict) + if (!OPTION_SET_P (dwarf_strict)) dwarf_strict = 1; - if (!global_options_set.x_dwarf_version) + if (!OPTION_SET_P (dwarf_version)) dwarf_version = 3; #endif /* Don't run the scheduler before reload by default, since it tends to increase register pressure. */ - if (!global_options_set.x_flag_schedule_insns) + if (!OPTION_SET_P (flag_schedule_insns)) flag_schedule_insns = 0; csky_add_gc_roots (); diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index 781742fe46f..28dc55d9b1c 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see #include "intl.h" #include "optabs.h" #include "flags.h" +#include "opts.h" /* Fix and Continue. @@ -3282,7 +3283,7 @@ darwin_override_options (void) } /* Unless set, force ABI=2 for NeXT and m64, 0 otherwise. */ - if (!global_options_set.x_flag_objc_abi) + if (!OPTION_SET_P (flag_objc_abi)) global_options.x_flag_objc_abi = (!flag_next_runtime) ? 0 @@ -3290,7 +3291,7 @@ darwin_override_options (void) : (generating_for_darwin_version >= 9) ? 1 : 0); - if (global_options_set.x_flag_objc_abi && flag_next_runtime) + if (OPTION_SET_P (flag_objc_abi) && flag_next_runtime) { if (TARGET_64BIT && global_options.x_flag_objc_abi != 2) /* The Objective-C family ABI 2 is the only valid version NeXT/m64. */ @@ -3307,23 +3308,23 @@ darwin_override_options (void) /* Don't emit DWARF3/4 unless specifically selected. This is a workaround for tool bugs. */ - if (!global_options_set.x_dwarf_strict) + if (!OPTION_SET_P (dwarf_strict)) dwarf_strict = 1; - if (!global_options_set.x_dwarf_version) + if (!OPTION_SET_P (dwarf_version)) dwarf_version = 2; - if (global_options_set.x_dwarf_split_debug_info) + if (OPTION_SET_P (dwarf_split_debug_info)) { inform (input_location, "%<-gsplit-dwarf%> is not supported on this platform, ignored"); dwarf_split_debug_info = 0; - global_options_set.x_dwarf_split_debug_info = 0; + OPTION_SET_P (dwarf_split_debug_info) = 0; } /* Do not allow unwind tables to be generated by default for m32. fnon-call-exceptions will override this, regardless of what we do. */ if (generating_for_darwin_version < 10 - && !global_options_set.x_flag_asynchronous_unwind_tables + && !OPTION_SET_P (flag_asynchronous_unwind_tables) && !TARGET_64BIT) global_options.x_flag_asynchronous_unwind_tables = 0; @@ -3334,15 +3335,15 @@ darwin_override_options (void) will be generated". If the User specifically sets flags... we assume (s)he knows why... */ if (generating_for_darwin_version < 9 - && global_options_set.x_flag_reorder_blocks_and_partition + && OPTION_SET_P (flag_reorder_blocks_and_partition) && ((global_options.x_flag_exceptions /* User, c++, java */ - && !global_options_set.x_flag_exceptions) /* User specified... */ + && !OPTION_SET_P (flag_exceptions)) /* User specified... */ || (global_options.x_flag_unwind_tables - && !global_options_set.x_flag_unwind_tables) + && !OPTION_SET_P (flag_unwind_tables)) || (global_options.x_flag_non_call_exceptions - && !global_options_set.x_flag_non_call_exceptions) + && !OPTION_SET_P (flag_non_call_exceptions)) || (global_options.x_flag_asynchronous_unwind_tables - && !global_options_set.x_flag_asynchronous_unwind_tables))) + && !OPTION_SET_P (flag_asynchronous_unwind_tables)))) { inform (input_location, "%<-freorder-blocks-and-partition%> does not work with " @@ -3353,12 +3354,12 @@ darwin_override_options (void) /* FIXME: flag_objc_sjlj_exceptions is no longer needed since there is only one valid choice of exception scheme for each runtime. */ - if (!global_options_set.x_flag_objc_sjlj_exceptions) + if (!OPTION_SET_P (flag_objc_sjlj_exceptions)) global_options.x_flag_objc_sjlj_exceptions = flag_next_runtime && !TARGET_64BIT; /* FIXME: and this could be eliminated then too. */ - if (!global_options_set.x_flag_exceptions + if (!OPTION_SET_P (flag_exceptions) && flag_objc_exceptions && TARGET_64BIT) flag_exceptions = 1; @@ -3414,7 +3415,7 @@ darwin_override_options (void) Linkers that don't need stubs, don't need the EH symbol markers either. */ - if (!global_options_set.x_darwin_symbol_stubs) + if (!OPTION_SET_P (darwin_symbol_stubs)) { if (darwin_target_linker) { diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c index a7f7f086d17..02cd07c09bc 100644 --- a/gcc/config/frv/frv.c +++ b/gcc/config/frv/frv.c @@ -50,6 +50,7 @@ along with GCC; see the file COPYING3. If not see #include "ifcvt.h" #include "rtl-iter.h" #include "calls.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -664,7 +665,7 @@ frv_option_override (void) if (!flag_pic) /* -fPIC */ flag_pic = 2; - if (!global_options_set.x_g_switch_value) /* -G0 */ + if (!OPTION_SET_P (g_switch_value)) /* -G0 */ { g_switch_value = 0; } @@ -757,7 +758,7 @@ frv_option_override (void) } /* Check for small data option */ - if (!global_options_set.x_g_switch_value && !TARGET_LIBPIC) + if (!OPTION_SET_P (g_switch_value) && !TARGET_LIBPIC) g_switch_value = SDATA_DEFAULT_SIZE; /* There is no single unaligned SI op for PIC code. Sometimes we diff --git a/gcc/config/i386/djgpp.h b/gcc/config/i386/djgpp.h index 9decff7e56c..f1afad91c99 100644 --- a/gcc/config/i386/djgpp.h +++ b/gcc/config/i386/djgpp.h @@ -147,7 +147,7 @@ along with GCC; see the file COPYING3. If not see \ /* Don't emit DWARF3/4 unless specifically selected. */ \ /* DWARF3/4 currently does not work for DJGPP. */ \ - if (!global_options_set.x_dwarf_version) \ + if (!OPTION_SET_P (dwarf_version)) \ dwarf_version = 2; \ \ } \ diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index a566d84a61e..24c4b50d3db 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -22280,7 +22280,7 @@ ix86_stack_protect_guard (void) tree type = build_qualified_type (type_node, qual); tree t; - if (global_options_set.x_ix86_stack_protector_guard_symbol_str) + if (OPTION_SET_P (ix86_stack_protector_guard_symbol_str)) { t = ix86_tls_stack_chk_guard_decl; @@ -22794,12 +22794,12 @@ ix86_max_noce_ifcvt_seq_cost (edge e) bool predictable_p = predictable_edge_p (e); if (predictable_p) { - if (global_options_set.x_param_max_rtl_if_conversion_predictable_cost) + if (OPTION_SET_P (param_max_rtl_if_conversion_predictable_cost)) return param_max_rtl_if_conversion_predictable_cost; } else { - if (global_options_set.x_param_max_rtl_if_conversion_unpredictable_cost) + if (OPTION_SET_P (param_max_rtl_if_conversion_unpredictable_cost)) return param_max_rtl_if_conversion_unpredictable_cost; } diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 632b9df1761..39a0e0791b7 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -6098,7 +6098,7 @@ ia64_option_override (void) flag_ira_loop_pressure = 1; - ia64_section_threshold = (global_options_set.x_g_switch_value + ia64_section_threshold = (OPTION_SET_P (g_switch_value) ? g_switch_value : IA64_DEFAULT_GVALUE); @@ -6120,8 +6120,8 @@ static void ia64_override_options_after_change (void) { if (optimize >= 3 - && !global_options_set.x_flag_selective_scheduling - && !global_options_set.x_flag_selective_scheduling2) + && !OPTION_SET_P (flag_selective_scheduling) + && !OPTION_SET_P (flag_selective_scheduling2)) { flag_selective_scheduling2 = 1; flag_sel_sched_pipelining = 1; diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c index d22bdd79c71..f99e2b0a485 100644 --- a/gcc/config/m32c/m32c.c +++ b/gcc/config/m32c/m32c.c @@ -48,6 +48,7 @@ #include "expr.h" #include "tm-constrs.h" #include "builtins.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -412,7 +413,7 @@ static void m32c_option_override (void) { /* We limit memregs to 0..16, and provide a default. */ - if (global_options_set.x_target_memregs) + if (OPTION_SET_P (target_memregs)) { if (target_memregs < 0 || target_memregs > 16) error ("invalid target memregs value %<%d%>", target_memregs); diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index 1aaba94bb5c..d644f6bda73 100644 --- a/gcc/config/m32r/m32r.c +++ b/gcc/config/m32r/m32r.c @@ -45,6 +45,7 @@ #include "expr.h" #include "tm-constrs.h" #include "builtins.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -244,7 +245,7 @@ m32r_init (void) m32r_punct_chars['@'] = 1; /* ??? no longer used */ /* Provide default value if not specified. */ - if (!global_options_set.x_g_switch_value) + if (!OPTION_SET_P (g_switch_value)) g_switch_value = SDATA_DEFAULT_SIZE; } diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 0248eb719a8..d1105e7a137 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -500,13 +500,13 @@ m68k_option_override (void) const struct m68k_target_selection *entry; unsigned long target_mask; - if (global_options_set.x_m68k_arch_option) + if (OPTION_SET_P (m68k_arch_option)) m68k_arch_entry = &all_isas[m68k_arch_option]; - if (global_options_set.x_m68k_cpu_option) + if (OPTION_SET_P (m68k_cpu_option)) m68k_cpu_entry = &all_devices[(int) m68k_cpu_option]; - if (global_options_set.x_m68k_tune_option) + if (OPTION_SET_P (m68k_tune_option)) m68k_tune_entry = &all_microarchs[(int) m68k_tune_option]; /* User can choose: diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c index 6e8f367c80a..4813f7a7921 100644 --- a/gcc/config/microblaze/microblaze.c +++ b/gcc/config/microblaze/microblaze.c @@ -51,6 +51,7 @@ #include "cfgloop.h" #include "insn-addr.h" #include "cfgrtl.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -1741,7 +1742,7 @@ microblaze_option_override (void) machine_mode mode; int ver; - microblaze_section_threshold = (global_options_set.x_g_switch_value + microblaze_section_threshold = (OPTION_SET_P (g_switch_value) ? g_switch_value : MICROBLAZE_DEFAULT_GVALUE); diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index ade5d7041f0..807bf1a78d4 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -66,6 +66,7 @@ along with GCC; see the file COPYING3. If not see #include "builtins.h" #include "rtl-iter.h" #include "flags.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -19883,7 +19884,7 @@ mips_option_override (void) { int i, start, regno, mode; - if (global_options_set.x_mips_isa_option) + if (OPTION_SET_P (mips_isa_option)) mips_isa_option_info = &mips_cpu_info_table[mips_isa_option]; #ifdef SUBTARGET_OVERRIDE_OPTIONS @@ -19915,7 +19916,7 @@ mips_option_override (void) TARGET_INTERLINK_COMPRESSED = 1; /* Set the small data limit. */ - mips_small_data_threshold = (global_options_set.x_g_switch_value + mips_small_data_threshold = (OPTION_SET_P (g_switch_value) ? g_switch_value : MIPS_DEFAULT_GVALUE); @@ -19923,7 +19924,7 @@ mips_option_override (void) Similar code was added to GAS 2.14 (see tc-mips.c:md_after_parse_args()). The GAS and GCC code should be kept in sync as much as possible. */ - if (global_options_set.x_mips_arch_option) + if (OPTION_SET_P (mips_arch_option)) mips_set_architecture (mips_cpu_info_from_opt (mips_arch_option)); if (mips_isa_option_info != 0) @@ -19945,7 +19946,7 @@ mips_option_override (void) mips_arch_info->name); /* Optimize for mips_arch, unless -mtune selects a different processor. */ - if (global_options_set.x_mips_tune_option) + if (OPTION_SET_P (mips_tune_option)) mips_set_tune (mips_cpu_info_from_opt (mips_tune_option)); if (mips_tune_info == 0) diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c index 26d43331f33..7a613e4c13e 100644 --- a/gcc/config/nios2/nios2.c +++ b/gcc/config/nios2/nios2.c @@ -52,6 +52,7 @@ #include "builtins.h" #include "tree-pass.h" #include "xregex.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -1363,7 +1364,7 @@ nios2_option_override (void) init_machine_status = &nios2_init_machine_status; nios2_section_threshold - = (global_options_set.x_g_switch_value + = (OPTION_SET_P (g_switch_value) ? g_switch_value : NIOS2_DEFAULT_GVALUE); if (nios2_gpopt_option == gpopt_unspecified) diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index 4e4909e8c5f..951252e598a 100644 --- a/gcc/config/nvptx/nvptx.c +++ b/gcc/config/nvptx/nvptx.c @@ -215,7 +215,7 @@ nvptx_option_override (void) /* Set toplevel_reorder, unless explicitly disabled. We need reordering so that we emit necessary assembler decls of undeclared variables. */ - if (!global_options_set.x_flag_toplevel_reorder) + if (!OPTION_SET_P (flag_toplevel_reorder)) flag_toplevel_reorder = 1; debug_nonbind_markers_p = 0; @@ -223,7 +223,7 @@ nvptx_option_override (void) /* Set flag_no_common, unless explicitly disabled. We fake common using .weak, and that's not entirely accurate, so avoid it unless forced. */ - if (!global_options_set.x_flag_no_common) + if (!OPTION_SET_P (flag_no_common)) flag_no_common = 1; /* The patch area requires nops, which we don't have. */ diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 69ba5bd035c..d13021ad94a 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -545,9 +545,9 @@ pa_option_override (void) { /* DWARF5 is not supported by gdb. Don't emit DWARF5 unless specifically selected. */ - if (!global_options_set.x_dwarf_strict) + if (!OPTION_SET_P (dwarf_strict)) dwarf_strict = 1; - if (!global_options_set.x_dwarf_version) + if (!OPTION_SET_P (dwarf_version)) dwarf_version = 4; } diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c index 576960bb37c..126572c6243 100644 --- a/gcc/config/riscv/riscv.c +++ b/gcc/config/riscv/riscv.c @@ -56,6 +56,7 @@ along with GCC; see the file COPYING3. If not see #include "builtins.h" #include "predict.h" #include "tree-pass.h" +#include "opts.h" /* True if X is an UNSPEC wrapper around a SYMBOL_REF or LABEL_REF. */ #define UNSPEC_ADDRESS_P(X) \ @@ -4839,7 +4840,7 @@ riscv_option_override (void) #endif if (riscv_stack_protector_guard == SSP_GLOBAL - && global_options_set.x_riscv_stack_protector_guard_offset_str) + && OPTION_SET_P (riscv_stack_protector_guard_offset_str)) { error ("incompatible options %<-mstack-protector-guard=global%> and " "%<-mstack-protector-guard-offset=%s%>", @@ -4847,15 +4848,15 @@ riscv_option_override (void) } if (riscv_stack_protector_guard == SSP_TLS - && !(global_options_set.x_riscv_stack_protector_guard_offset_str - && global_options_set.x_riscv_stack_protector_guard_reg_str)) + && !(OPTION_SET_P (riscv_stack_protector_guard_offset_str) + && OPTION_SET_P (riscv_stack_protector_guard_reg_str))) { error ("both %<-mstack-protector-guard-offset%> and " "%<-mstack-protector-guard-reg%> must be used " "with %<-mstack-protector-guard=sysreg%>"); } - if (global_options_set.x_riscv_stack_protector_guard_reg_str) + if (OPTION_SET_P (riscv_stack_protector_guard_reg_str)) { const char *str = riscv_stack_protector_guard_reg_str; int reg = decode_reg_name (str); @@ -4867,7 +4868,7 @@ riscv_option_override (void) riscv_stack_protector_guard_reg = reg; } - if (global_options_set.x_riscv_stack_protector_guard_offset_str) + if (OPTION_SET_P (riscv_stack_protector_guard_offset_str)) { char *end; const char *str = riscv_stack_protector_guard_offset_str; diff --git a/gcc/config/rs6000/aix71.h b/gcc/config/rs6000/aix71.h index 1bc1560c496..ddd204dd862 100644 --- a/gcc/config/rs6000/aix71.h +++ b/gcc/config/rs6000/aix71.h @@ -33,7 +33,7 @@ do { \ if (TARGET_SOFT_FLOAT && TARGET_LONG_DOUBLE_128) \ { \ rs6000_long_double_type_size = 64; \ - if (global_options_set.x_rs6000_long_double_type_size) \ + if (OPTION_SET_P (rs6000_long_double_type_size)) \ warning (0, "soft-float and long-double-128 are incompatible"); \ } \ if (TARGET_POWERPC64 && ! TARGET_64BIT) \ @@ -43,7 +43,7 @@ do { \ if ((rs6000_isa_flags_explicit \ & OPTION_MASK_MINIMAL_TOC) != 0) \ { \ - if (global_options_set.x_rs6000_current_cmodel \ + if (OPTION_SET_P (rs6000_current_cmodel) \ && rs6000_current_cmodel != CMODEL_SMALL) \ error ("%<-mcmodel%> incompatible with other toc options"); \ SET_CMODEL (CMODEL_SMALL); \ @@ -63,7 +63,7 @@ do { \ /* aix/ppc doesn't support -mvsx and -maltivec with Go */ \ rs6000_isa_flags &= ~(OPTION_MASK_VSX | OPTION_MASK_ALTIVEC); \ } \ - if (!global_options_set.x_dwarf_version) \ + if (!OPTION_SET_P (dwarf_version)) \ /* AIX only supports DWARF 4. */ \ dwarf_version = 4; \ } while (0) diff --git a/gcc/config/rs6000/aix72.h b/gcc/config/rs6000/aix72.h index cca64f14f3a..f0e375cb984 100644 --- a/gcc/config/rs6000/aix72.h +++ b/gcc/config/rs6000/aix72.h @@ -33,7 +33,7 @@ do { \ if (TARGET_SOFT_FLOAT && TARGET_LONG_DOUBLE_128) \ { \ rs6000_long_double_type_size = 64; \ - if (global_options_set.x_rs6000_long_double_type_size) \ + if (OPTION_SET_P (rs6000_long_double_type_size)) \ warning (0, "soft-float and long-double-128 are incompatible"); \ } \ if (TARGET_POWERPC64 && ! TARGET_64BIT) \ @@ -43,7 +43,7 @@ do { \ if ((rs6000_isa_flags_explicit \ & OPTION_MASK_MINIMAL_TOC) != 0) \ { \ - if (global_options_set.x_rs6000_current_cmodel \ + if (OPTION_SET_P (rs6000_current_cmodel) \ && rs6000_current_cmodel != CMODEL_SMALL) \ error ("%<-mcmodel%> incompatible with other toc options"); \ SET_CMODEL (CMODEL_SMALL); \ @@ -63,7 +63,7 @@ do { \ /* aix/ppc doesn't support -mvsx and -maltivec with Go */ \ rs6000_isa_flags &= ~(OPTION_MASK_VSX | OPTION_MASK_ALTIVEC); \ } \ - if (!global_options_set.x_dwarf_version) \ + if (!OPTION_SET_P (dwarf_version)) \ /* AIX only supports DWARF 4. */ \ dwarf_version = 4; \ } while (0) diff --git a/gcc/config/rs6000/aix73.h b/gcc/config/rs6000/aix73.h index f0ca1a55e5d..2c92cc3db0d 100644 --- a/gcc/config/rs6000/aix73.h +++ b/gcc/config/rs6000/aix73.h @@ -33,7 +33,7 @@ do { \ if (TARGET_SOFT_FLOAT && TARGET_LONG_DOUBLE_128) \ { \ rs6000_long_double_type_size = 64; \ - if (global_options_set.x_rs6000_long_double_type_size) \ + if (OPTION_SET_P (rs6000_long_double_type_size)) \ warning (0, "soft-float and long-double-128 are incompatible"); \ } \ if (TARGET_POWERPC64 && ! TARGET_64BIT) \ @@ -43,7 +43,7 @@ do { \ if ((rs6000_isa_flags_explicit \ & OPTION_MASK_MINIMAL_TOC) != 0) \ { \ - if (global_options_set.x_rs6000_current_cmodel \ + if (OPTION_SET_P (rs6000_current_cmodel) \ && rs6000_current_cmodel != CMODEL_SMALL) \ error ("%<-mcmodel%> incompatible with other toc options"); \ SET_CMODEL (CMODEL_SMALL); \ @@ -63,7 +63,7 @@ do { \ /* aix/ppc doesn't support -mvsx and -maltivec with Go */ \ rs6000_isa_flags &= ~(OPTION_MASK_VSX | OPTION_MASK_ALTIVEC); \ } \ - if (!global_options_set.x_dwarf_version) \ + if (!OPTION_SET_P (dwarf_version)) \ /* AIX only supports DWARF 4. */ \ dwarf_version = 4; \ } while (0) diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index ad860728169..acba4d9f26c 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -3392,7 +3392,7 @@ darwin_rs6000_override_options (void) && !flag_apple_kext && strverscmp (darwin_macosx_version_min, "10.5") >= 0 && ! (rs6000_isa_flags_explicit & OPTION_MASK_ALTIVEC) - && ! global_options_set.x_rs6000_cpu_index) + && ! OPTION_SET_P (rs6000_cpu_index)) { rs6000_isa_flags |= OPTION_MASK_ALTIVEC; } @@ -3471,18 +3471,18 @@ rs6000_override_options_after_change (void) { /* Explicit -funroll-loops turns -munroll-only-small-loops off, and turns -frename-registers on. */ - if ((global_options_set.x_flag_unroll_loops && flag_unroll_loops) - || (global_options_set.x_flag_unroll_all_loops + if ((OPTION_SET_P (flag_unroll_loops) && flag_unroll_loops) + || (OPTION_SET_P (flag_unroll_all_loops) && flag_unroll_all_loops)) { - if (!global_options_set.x_unroll_only_small_loops) + if (!OPTION_SET_P (unroll_only_small_loops)) unroll_only_small_loops = 0; - if (!global_options_set.x_flag_rename_registers) + if (!OPTION_SET_P (flag_rename_registers)) flag_rename_registers = 1; - if (!global_options_set.x_flag_cunroll_grow_size) + if (!OPTION_SET_P (flag_cunroll_grow_size)) flag_cunroll_grow_size = 1; } - else if (!global_options_set.x_flag_cunroll_grow_size) + else if (!OPTION_SET_P (flag_cunroll_grow_size)) flag_cunroll_grow_size = flag_peel_loops || optimize >= 3; } @@ -3490,7 +3490,7 @@ rs6000_override_options_after_change (void) static void rs6000_linux64_override_options () { - if (!global_options_set.x_rs6000_alignment_flags) + if (!OPTION_SET_P (rs6000_alignment_flags)) rs6000_alignment_flags = MASK_ALIGN_NATURAL; if (rs6000_isa_flags & OPTION_MASK_64BIT) { @@ -3526,11 +3526,11 @@ rs6000_linux64_override_options () rs6000_isa_flags |= OPTION_MASK_POWERPC64; error ("%<-m64%> requires a PowerPC64 cpu"); } - if (!global_options_set.x_rs6000_current_cmodel) + if (!OPTION_SET_P (rs6000_current_cmodel)) SET_CMODEL (CMODEL_MEDIUM); if ((rs6000_isa_flags_explicit & OPTION_MASK_MINIMAL_TOC) != 0) { - if (global_options_set.x_rs6000_current_cmodel + if (OPTION_SET_P (rs6000_current_cmodel) && rs6000_current_cmodel != CMODEL_SMALL) error ("%<-mcmodel incompatible with other toc options%>"); if (TARGET_MINIMAL_TOC) @@ -3545,14 +3545,14 @@ rs6000_linux64_override_options () } if (rs6000_current_cmodel != CMODEL_SMALL) { - if (!global_options_set.x_TARGET_NO_FP_IN_TOC) + if (!OPTION_SET_P (TARGET_NO_FP_IN_TOC)) TARGET_NO_FP_IN_TOC = rs6000_current_cmodel == CMODEL_MEDIUM; - if (!global_options_set.x_TARGET_NO_SUM_IN_TOC) + if (!OPTION_SET_P (TARGET_NO_SUM_IN_TOC)) TARGET_NO_SUM_IN_TOC = 0; } if (TARGET_PLTSEQ && DEFAULT_ABI != ABI_ELFv2) { - if (global_options_set.x_rs6000_pltseq) + if (OPTION_SET_P (rs6000_pltseq)) warning (0, "%qs unsupported for this ABI", "-mpltseq"); rs6000_pltseq = false; @@ -3567,7 +3567,7 @@ rs6000_linux64_override_options () profile_kernel = 0; error (INVALID_32BIT, "profile-kernel"); } - if (global_options_set.x_rs6000_current_cmodel) + if (OPTION_SET_P (rs6000_current_cmodel)) { SET_CMODEL (CMODEL_SMALL); error (INVALID_32BIT, "cmodel"); @@ -3627,7 +3627,7 @@ glibc_supports_ieee_128bit (void) includes OPTION_TARGET_CPU_DEFAULT, representing the name of the default CPU specified at build configure time, TARGET_DEFAULT, representing the default set of option flags for the default - target, and global_options_set.x_rs6000_isa_flags, representing + target, and OPTION_SET_P (rs6000_isa_flags), representing which options were requested on the command line. Upon return from this function: @@ -3676,13 +3676,13 @@ rs6000_option_override_internal (bool global_init_p) /* Remember the explicit arguments. */ if (global_init_p) - rs6000_isa_flags_explicit = global_options_set.x_rs6000_isa_flags; + rs6000_isa_flags_explicit = OPTION_SET_P (rs6000_isa_flags); /* On 64-bit Darwin, power alignment is ABI-incompatible with some C library functions, so warn about it. The flag may be useful for performance studies from time to time though, so don't disable it entirely. */ - if (global_options_set.x_rs6000_alignment_flags + if (OPTION_SET_P (rs6000_alignment_flags) && rs6000_alignment_flags == MASK_ALIGN_POWER && DEFAULT_ABI == ABI_DARWIN && TARGET_64BIT) @@ -3695,20 +3695,20 @@ rs6000_option_override_internal (bool global_init_p) with enough (>= 32) registers. It is an expensive optimization. So it is on only for peak performance. */ if (optimize >= 3 && global_init_p - && !global_options_set.x_flag_ira_loop_pressure) + && !OPTION_SET_P (flag_ira_loop_pressure)) flag_ira_loop_pressure = 1; /* -fsanitize=address needs to turn on -fasynchronous-unwind-tables in order for tracebacks to be complete but not if any -fasynchronous-unwind-tables options were already specified. */ if (flag_sanitize & SANITIZE_USER_ADDRESS - && !global_options_set.x_flag_asynchronous_unwind_tables) + && !OPTION_SET_P (flag_asynchronous_unwind_tables)) flag_asynchronous_unwind_tables = 1; /* -fvariable-expansion-in-unroller is a win for POWER whenever the loop unroller is active. It is only checked during unrolling, so we can just set it on by default. */ - if (!global_options_set.x_flag_variable_expansion_in_unroller) + if (!OPTION_SET_P (flag_variable_expansion_in_unroller)) flag_variable_expansion_in_unroller = 1; /* Set the pointer size. */ @@ -3905,7 +3905,7 @@ rs6000_option_override_internal (bool global_init_p) #ifdef XCOFF_DEBUGGING_INFO /* For AIX default to 64-bit DWARF. */ - if (!global_options_set.x_dwarf_offset_size) + if (!OPTION_SET_P (dwarf_offset_size)) dwarf_offset_size = POINTER_SIZE_UNITS; #endif @@ -4129,7 +4129,7 @@ rs6000_option_override_internal (bool global_init_p) else if (TARGET_ALLOW_MOVMISALIGN && !TARGET_VSX) { if (TARGET_ALLOW_MOVMISALIGN > 0 - && global_options_set.x_TARGET_ALLOW_MOVMISALIGN) + && OPTION_SET_P (TARGET_ALLOW_MOVMISALIGN)) error ("%qs requires %qs", "-mallow-movmisalign", "-mvsx"); TARGET_ALLOW_MOVMISALIGN = 0; @@ -4184,7 +4184,7 @@ rs6000_option_override_internal (bool global_init_p) : FLOAT_PRECISION_TFmode); /* Set long double size before the IEEE 128-bit tests. */ - if (!global_options_set.x_rs6000_long_double_type_size) + if (!OPTION_SET_P (rs6000_long_double_type_size)) { if (main_target_opt != NULL && (main_target_opt->x_rs6000_long_double_type_size @@ -4197,7 +4197,7 @@ rs6000_option_override_internal (bool global_init_p) ; /* The option value can be seen when cl_target_option_restore is called. */ else if (rs6000_long_double_type_size == 128) rs6000_long_double_type_size = FLOAT_PRECISION_TFmode; - else if (global_options_set.x_rs6000_ieeequad) + else if (OPTION_SET_P (rs6000_ieeequad)) { if (global_options.x_rs6000_ieeequad) error ("%qs requires %qs", "-mabi=ieeelongdouble", "-mlong-double-128"); @@ -4210,7 +4210,7 @@ rs6000_option_override_internal (bool global_init_p) explicitly redefine TARGET_IEEEQUAD and TARGET_IEEEQUAD_DEFAULT to 0, so those systems will not pick up this default. Warn if the user changes the default unless -Wno-psabi. */ - if (!global_options_set.x_rs6000_ieeequad) + if (!OPTION_SET_P (rs6000_ieeequad)) rs6000_ieeequad = TARGET_IEEEQUAD_DEFAULT; else @@ -4395,7 +4395,7 @@ rs6000_option_override_internal (bool global_init_p) /* Enable Altivec ABI for AIX -maltivec. */ if (TARGET_XCOFF && (TARGET_ALTIVEC || TARGET_VSX) - && !global_options_set.x_rs6000_altivec_abi) + && !OPTION_SET_P (rs6000_altivec_abi)) { if (main_target_opt != NULL && !main_target_opt->x_rs6000_altivec_abi) error ("target attribute or pragma changes AltiVec ABI"); @@ -4408,7 +4408,7 @@ rs6000_option_override_internal (bool global_init_p) be explicitly overridden in either case. */ if (TARGET_ELF) { - if (!global_options_set.x_rs6000_altivec_abi + if (!OPTION_SET_P (rs6000_altivec_abi) && (TARGET_64BIT || TARGET_ALTIVEC || TARGET_VSX)) { if (main_target_opt != NULL && @@ -4438,7 +4438,7 @@ rs6000_option_override_internal (bool global_init_p) /* Place FP constants in the constant pool instead of TOC if section anchors enabled. */ if (flag_section_anchors - && !global_options_set.x_TARGET_NO_FP_IN_TOC) + && !OPTION_SET_P (TARGET_NO_FP_IN_TOC)) TARGET_NO_FP_IN_TOC = 1; if (TARGET_DEBUG_REG || TARGET_DEBUG_TARGET) @@ -4595,7 +4595,7 @@ rs6000_option_override_internal (bool global_init_p) } /* Handle stack protector */ - if (!global_options_set.x_rs6000_stack_protector_guard) + if (!OPTION_SET_P (rs6000_stack_protector_guard)) #ifdef TARGET_THREAD_SSP_OFFSET rs6000_stack_protector_guard = SSP_TLS; #else @@ -4607,7 +4607,7 @@ rs6000_option_override_internal (bool global_init_p) rs6000_stack_protector_guard_reg = TARGET_64BIT ? 13 : 2; #endif - if (global_options_set.x_rs6000_stack_protector_guard_offset_str) + if (OPTION_SET_P (rs6000_stack_protector_guard_offset_str)) { char *endp; const char *str = rs6000_stack_protector_guard_offset_str; @@ -4626,7 +4626,7 @@ rs6000_option_override_internal (bool global_init_p) rs6000_stack_protector_guard_offset = offset; } - if (global_options_set.x_rs6000_stack_protector_guard_reg_str) + if (OPTION_SET_P (rs6000_stack_protector_guard_reg_str)) { const char *str = rs6000_stack_protector_guard_reg_str; int reg = decode_reg_name (str); @@ -4654,7 +4654,7 @@ rs6000_option_override_internal (bool global_init_p) /* Set aix_struct_return last, after the ABI is determined. If -maix-struct-return or -msvr4-struct-return was explicitly used, don't override with the ABI default. */ - if (!global_options_set.x_aix_struct_return) + if (!OPTION_SET_P (aix_struct_return)) aix_struct_return = (DEFAULT_ABI != ABI_V4 || DRAFT_V4_STRUCT_RET); #if 0 @@ -6272,14 +6272,14 @@ rs6000_file_start (void) start = ""; } - if (global_options_set.x_rs6000_cpu_index) + if (OPTION_SET_P (rs6000_cpu_index)) { fprintf (file, "%s -mcpu=%s", start, processor_target_table[rs6000_cpu_index].name); start = ""; } - if (global_options_set.x_rs6000_tune_index) + if (OPTION_SET_P (rs6000_tune_index)) { fprintf (file, "%s -mtune=%s", start, processor_target_table[rs6000_tune_index].name); @@ -21053,7 +21053,7 @@ rs6000_darwin_file_start (void) if (rs6000_default_cpu != 0 && rs6000_default_cpu[0] != '\0') cpu_id = rs6000_default_cpu; - if (global_options_set.x_rs6000_cpu_index) + if (OPTION_SET_P (rs6000_cpu_index)) cpu_id = processor_target_table[rs6000_cpu_index].name; /* Look through the mapping array. Pick the first name that either diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h index 872cc2849af..6184c5fde45 100644 --- a/gcc/config/rs6000/rtems.h +++ b/gcc/config/rs6000/rtems.h @@ -116,14 +116,14 @@ if ((rs6000_isa_flags_explicit \ & OPTION_MASK_MINIMAL_TOC) != 0) \ { \ - if (global_options_set.x_rs6000_current_cmodel \ + if (OPTION_SET_P (rs6000_current_cmodel) \ && rs6000_current_cmodel != CMODEL_SMALL) \ error ("%<-mcmodel%> incompatible with other toc options"); \ SET_CMODEL (CMODEL_SMALL); \ } \ else \ { \ - if (!global_options_set.x_rs6000_current_cmodel) \ + if (!OPTION_SET_P (rs6000_current_cmodel)) \ SET_CMODEL (CMODEL_MEDIUM); \ if (rs6000_current_cmodel != CMODEL_SMALL) \ { \ diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h index 23ff59403a3..96ee5524224 100644 --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h @@ -70,7 +70,7 @@ #define SUBTARGET_OVERRIDE_OPTIONS \ do { \ - if (!global_options_set.x_g_switch_value) \ + if (!OPTION_SET_P (g_switch_value)) \ g_switch_value = SDATA_DEFAULT_SIZE; \ \ if (rs6000_abi_name == NULL) \ @@ -197,16 +197,16 @@ do { \ } \ \ if (TARGET_PLTSEQ != rs6000_pltseq \ - && global_options_set.x_rs6000_pltseq) \ + && OPTION_SET_P (rs6000_pltseq)) \ { \ error ("%qs not supported by your assembler", "-mpltseq"); \ } \ \ if (DEFAULT_ABI == ABI_V4 && TARGET_PLTSEQ && !TARGET_SECURE_PLT) \ { \ - if (global_options_set.x_rs6000_pltseq) \ + if (OPTION_SET_P (rs6000_pltseq)) \ { \ - if (global_options_set.x_secure_plt) \ + if (OPTION_SET_P (secure_plt)) \ error ("%qs and %qs are incompatible", \ "-mpltseq", "-mbss-plt"); \ else \ diff --git a/gcc/config/rs6000/vxworks.h b/gcc/config/rs6000/vxworks.h index d8ecc0296c8..ca21a3a7bd3 100644 --- a/gcc/config/rs6000/vxworks.h +++ b/gcc/config/rs6000/vxworks.h @@ -155,7 +155,7 @@ along with GCC; see the file COPYING3. If not see #undef SUB3TARGET_OVERRIDE_OPTIONS #define SUB3TARGET_OVERRIDE_OPTIONS \ do { \ - if (!global_options_set.x_g_switch_value) \ + if (!OPTION_SET_P (g_switch_value)) \ g_switch_value = SDATA_DEFAULT_SIZE; \ VXWORKS_OVERRIDE_OPTIONS; \ } while (0) diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index e04385451cf..4f144d1b0eb 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -15746,9 +15746,9 @@ s390_option_override (void) { /* Don't emit DWARF3/4 unless specifically selected. The TPF debuggers do not yet support DWARF 3/4. */ - if (!global_options_set.x_dwarf_strict) + if (!OPTION_SET_P (dwarf_strict)) dwarf_strict = 1; - if (!global_options_set.x_dwarf_version) + if (!OPTION_SET_P (dwarf_version)) dwarf_version = 2; } } diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h index 7558d2f7195..b75a7b8250e 100644 --- a/gcc/config/sh/linux.h +++ b/gcc/config/sh/linux.h @@ -126,7 +126,7 @@ along with GCC; see the file COPYING3. If not see do \ { \ /* Set default atomic model if it hasn't been specified. */ \ - if (global_options_set.x_sh_atomic_model_str == 0) \ + if (OPTION_SET_P (sh_atomic_model_str) == 0) \ { \ if (TARGET_SH3) \ sh_atomic_model_str = "soft-gusa"; \ @@ -134,7 +134,7 @@ along with GCC; see the file COPYING3. If not see sh_atomic_model_str = "soft-imask"; \ } \ /* Set -musermode if it hasn't been specified. */ \ - if (global_options_set.x_TARGET_USERMODE == 0) \ + if (OPTION_SET_P (TARGET_USERMODE) == 0) \ TARGET_USERMODE = true; \ } \ while (0) diff --git a/gcc/config/sh/netbsd-elf.h b/gcc/config/sh/netbsd-elf.h index f0b75419855..39eb773001d 100644 --- a/gcc/config/sh/netbsd-elf.h +++ b/gcc/config/sh/netbsd-elf.h @@ -85,7 +85,7 @@ while (0) do \ { \ /* Set -musermode if it hasn't been specified. */ \ - if (global_options_set.x_TARGET_USERMODE == 0) \ + if (OPTION_SET_P (TARGET_USERMODE) == 0) \ TARGET_USERMODE = true; \ } \ while (0) diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 1564109c942..0628f059ca2 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -893,7 +893,7 @@ sh_option_override (void) } /* Set -mzdcbranch for SH4 / SH4A if not otherwise specified by the user. */ - if (! global_options_set.x_TARGET_ZDCBRANCH && TARGET_HARD_SH4) + if (! OPTION_SET_P (TARGET_ZDCBRANCH) && TARGET_HARD_SH4) TARGET_ZDCBRANCH = 1; /* FDPIC code is a special form of PIC, and the vast majority of code @@ -932,13 +932,13 @@ sh_option_override (void) . */ else if (flag_exceptions) { - if (flag_schedule_insns && global_options_set.x_flag_schedule_insns) + if (flag_schedule_insns && OPTION_SET_P (flag_schedule_insns)) warning (0, "ignoring %<-fschedule-insns%> because of exception " "handling bug"); flag_schedule_insns = 0; } else if (flag_schedule_insns - && !global_options_set.x_flag_schedule_insns) + && !OPTION_SET_P (flag_schedule_insns)) flag_schedule_insns = 0; } @@ -958,12 +958,12 @@ sh_option_override (void) if (flag_unsafe_math_optimizations) { /* Enable fsca insn for SH4A if not otherwise specified by the user. */ - if (global_options_set.x_TARGET_FSCA == 0 + if (OPTION_SET_P (TARGET_FSCA) == 0 && (TARGET_SH4A_FP || TARGET_FPU_SH4_300)) TARGET_FSCA = 1; /* Enable fsrra insn for SH4A if not otherwise specified by the user. */ - if (global_options_set.x_TARGET_FSRRA == 0 + if (OPTION_SET_P (TARGET_FSRRA) == 0 && (TARGET_SH4A_FP || TARGET_FPU_SH4_300)) TARGET_FSRRA = 1; } @@ -976,7 +976,7 @@ sh_option_override (void) /* If the -mieee option was not explicitly set by the user, turn it on unless -ffinite-math-only was specified. See also PR 33135. */ - if (! global_options_set.x_TARGET_IEEE) + if (! OPTION_SET_P (TARGET_IEEE)) TARGET_IEEE = ! flag_finite_math_only; if (sh_fixed_range_str) diff --git a/gcc/config/sol2.c b/gcc/config/sol2.c index 1fbdbf5046c..517816a1fe6 100644 --- a/gcc/config/sol2.c +++ b/gcc/config/sol2.c @@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see #include "diagnostic-core.h" #include "varasm.h" #include "output.h" +#include "opts.h" tree solaris_pending_aligns, solaris_pending_inits, solaris_pending_finis; @@ -296,6 +297,6 @@ solaris_override_options (void) { /* Older versions of Solaris ld cannot handle CIE version 3 in .eh_frame. Don't emit DWARF3/4 unless specifically selected if so. */ - if (!HAVE_LD_EH_FRAME_CIEV3 && !global_options_set.x_dwarf_version) + if (!HAVE_LD_EH_FRAME_CIEV3 && !OPTION_SET_P (dwarf_version)) dwarf_version = 2; } diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 6bc6f0ace6a..ca91be4c8e9 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -1859,7 +1859,7 @@ sparc_option_override (void) } /* Set the default CPU if no -mcpu option was specified. */ - if (!global_options_set.x_sparc_cpu_and_features) + if (!OPTION_SET_P (sparc_cpu_and_features)) { for (def = &cpu_default[0]; def->cpu != -1; ++def) if (def->cpu == TARGET_CPU_DEFAULT) @@ -1869,7 +1869,7 @@ sparc_option_override (void) } /* Set the default CPU if no -mtune option was specified. */ - if (!global_options_set.x_sparc_cpu) + if (!OPTION_SET_P (sparc_cpu)) sparc_cpu = sparc_cpu_and_features; cpu = &cpu_table[(int) sparc_cpu_and_features]; @@ -1975,7 +1975,7 @@ sparc_option_override (void) dump_target_flags ("Final target_flags", target_flags); /* Set the code model if no -mcmodel option was specified. */ - if (global_options_set.x_sparc_code_model) + if (OPTION_SET_P (sparc_code_model)) { if (TARGET_ARCH32) error ("%<-mcmodel=%> is not supported in 32-bit mode"); @@ -1989,7 +1989,7 @@ sparc_option_override (void) } /* Set the memory model if no -mmemory-model option was specified. */ - if (!global_options_set.x_sparc_memory_model) + if (!OPTION_SET_P (sparc_memory_model)) { /* Choose the memory model for the operating system. */ enum sparc_memory_model_type os_default = SUBTARGET_DEFAULT_MEMORY_MODEL; @@ -2177,12 +2177,12 @@ sparc_option_override (void) /* Disable save slot sharing for call-clobbered registers by default. The IRA sharing algorithm works on single registers only and this pessimizes for double floating-point registers. */ - if (!global_options_set.x_flag_ira_share_save_slots) + if (!OPTION_SET_P (flag_ira_share_save_slots)) flag_ira_share_save_slots = 0; /* Only enable REE by default in 64-bit mode where it helps to eliminate redundant 32-to-64-bit extensions. */ - if (!global_options_set.x_flag_ree && TARGET_ARCH32) + if (!OPTION_SET_P (flag_ree) && TARGET_ARCH32) flag_ree = 0; /* Do various machine dependent initializations. */ diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c index 64e28f641d8..08d1126c49e 100644 --- a/gcc/config/tilegx/tilegx.c +++ b/gcc/config/tilegx/tilegx.c @@ -56,6 +56,7 @@ #include "tilegx-builtins.h" #include "tilegx-multiply.h" #include "builtins.h" +#include "opts.h" /* This file should be included last. */ #include "target-def.h" @@ -76,7 +77,7 @@ static bool output_memory_autoinc_first; static void tilegx_option_override (void) { - if (global_options_set.x_tilegx_cmodel) + if (OPTION_SET_P (tilegx_cmodel)) { switch (tilegx_cmodel) { diff --git a/gcc/config/visium/visium.c b/gcc/config/visium/visium.c index 58e5355e712..ffa2243f155 100644 --- a/gcc/config/visium/visium.c +++ b/gcc/config/visium/visium.c @@ -443,7 +443,7 @@ visium_option_override (void) } /* Set -mtune from -mcpu if not specified. */ - if (!global_options_set.x_visium_cpu) + if (!OPTION_SET_P (visium_cpu)) visium_cpu = visium_cpu_and_features; /* Align functions on 256-byte (32-quadword) for GR5 and 64-byte (8-quadword) diff --git a/gcc/config/vxworks.c b/gcc/config/vxworks.c index 51f4675d7c6..29ec0604b62 100644 --- a/gcc/config/vxworks.c +++ b/gcc/config/vxworks.c @@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see #include "rtl.h" #include "memmodel.h" #include "optabs.h" +#include "opts.h" #if !HAVE_INITFINI_ARRAY_SUPPORT /* Like default_named_section_asm_out_constructor, except that even @@ -167,10 +168,10 @@ vxworks_override_options (void) dwarf up to certain version. Default dwarf control to friendly values for these. */ - if (!global_options_set.x_dwarf_strict) + if (!OPTION_SET_P (dwarf_strict)) dwarf_strict = 1; - if (!global_options_set.x_dwarf_version) + if (!OPTION_SET_P (dwarf_version)) dwarf_version = VXWORKS_DWARF_VERSION_DEFAULT; } diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c index 66d5221692a..08f8514d08d 100644 --- a/gcc/cp/constexpr.c +++ b/gcc/cp/constexpr.c @@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see #include "fold-const-call.h" #include "stor-layout.h" #include "cgraph.h" +#include "opts.h" static bool verify_constant (tree, bool, bool *, bool *); #define VERIFY_CONSTANT(X) \ @@ -6107,7 +6108,7 @@ maybe_warn_about_constant_value (location_t loc, tree decl) static bool explained = false; if (cxx_dialect >= cxx17 && warn_interference_size - && !global_options_set.x_param_destruct_interfere_size + && !OPTION_SET_P (param_destruct_interfere_size) && DECL_CONTEXT (decl) == std_node && id_equal (DECL_NAME (decl), "hardware_destructive_interference_size") && (LOCATION_FILE (input_location) != main_input_filename diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 2d30c790b93..561debe6a0e 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -56,6 +56,7 @@ along with GCC; see the file COPYING3. If not see #include "context.h" /* For 'g'. */ #include "omp-general.h" #include "omp-offload.h" /* For offload_vars. */ +#include "opts.h" /* Possible cases of bad specifiers type used by bad_specifiers. */ enum bad_spec_place { @@ -3228,7 +3229,7 @@ redeclaration_error_message (tree newdecl, tree olddecl) { DECL_EXTERNAL (newdecl) = 1; /* For now, only warn with explicit -Wdeprecated. */ - if (global_options_set.x_warn_deprecated) + if (OPTION_SET_P (warn_deprecated)) { auto_diagnostic_group d; if (warning_at (DECL_SOURCE_LOCATION (newdecl), OPT_Wdeprecated, @@ -4756,7 +4757,7 @@ cxx_init_decl_processing (void) /* Check that the hardware interference sizes are at least alignof(max_align_t), as required by the standard. */ const int max_align = max_align_t_align () / BITS_PER_UNIT; - if (global_options_set.x_param_destruct_interfere_size) + if (OPTION_SET_P (param_destruct_interfere_size)) { if (param_destruct_interfere_size < max_align) error ("%<--param destructive-interference-size=%d%> is less than " @@ -4773,7 +4774,7 @@ cxx_init_decl_processing (void) param_destruct_interfere_size = param_l1_cache_line_size; /* else leave it unset. */ - if (global_options_set.x_param_construct_interfere_size) + if (OPTION_SET_P (param_construct_interfere_size)) { if (param_construct_interfere_size < max_align) error ("%<--param constructive-interference-size=%d%> is less than " diff --git a/gcc/d/d-lang.cc b/gcc/d/d-lang.cc index fa29a46ab1e..be6330fbdfb 100644 --- a/gcc/d/d-lang.cc +++ b/gcc/d/d-lang.cc @@ -792,13 +792,13 @@ d_post_options (const char ** fn) if (global.params.betterC) { - if (!global_options_set.x_flag_moduleinfo) + if (!OPTION_SET_P (flag_moduleinfo)) global.params.useModuleInfo = false; - if (!global_options_set.x_flag_rtti) + if (!OPTION_SET_P (flag_rtti)) global.params.useTypeInfo = false; - if (!global_options_set.x_flag_exceptions) + if (!OPTION_SET_P (flag_exceptions)) global.params.useExceptions = false; global.params.checkAction = CHECKACTION_C; @@ -810,7 +810,7 @@ d_post_options (const char ** fn) /* Turn off partitioning unless it was explicitly requested, as it doesn't work with D exception chaining, where EH handler uses LSDA to determine whether two thrown exception are in the same context. */ - if (!global_options_set.x_flag_reorder_blocks_and_partition) + if (!OPTION_SET_P (flag_reorder_blocks_and_partition)) global_options.x_flag_reorder_blocks_and_partition = 0; /* Error about use of deprecated features. */ @@ -819,7 +819,7 @@ d_post_options (const char ** fn) global.params.useDeprecated = DIAGNOSTICerror; /* Make -fmax-errors visible to frontend's diagnostic machinery. */ - if (global_options_set.x_flag_max_errors) + if (OPTION_SET_P (flag_max_errors)) global.params.errorLimit = flag_max_errors; if (flag_excess_precision == EXCESS_PRECISION_DEFAULT) diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index 016b70443ae..3499a1caa6d 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -260,7 +260,7 @@ gfc_post_options (const char **pfilename) If not enabled explicitly by the user, only warn for -I and -J, otherwise warn for all include paths. */ verbose_missing_dir_warn - = (global_options_set.x_cpp_warn_missing_include_dirs + = (OPTION_SET_P (cpp_warn_missing_include_dirs) && global_options.x_cpp_warn_missing_include_dirs); SET_OPTION_IF_UNSET (&global_options, &global_options_set, cpp_warn_missing_include_dirs, 1); @@ -309,7 +309,7 @@ gfc_post_options (const char **pfilename) flag_dump_fortran_original = 0; /* Make -fmax-errors visible to gfortran's diagnostic machinery. */ - if (global_options_set.x_flag_max_errors) + if (OPTION_SET_P (flag_max_errors)) gfc_option.max_errors = flag_max_errors; /* Verify the input file name. */ @@ -388,7 +388,7 @@ gfc_post_options (const char **pfilename) /* Enable -Werror=line-truncation when -Werror and -Wno-error have not been set. */ - if (warn_line_truncation && !global_options_set.x_warnings_are_errors + if (warn_line_truncation && !OPTION_SET_P (warnings_are_errors) && (global_dc->classify_diagnostic[OPT_Wline_truncation] == DK_UNSPECIFIED)) diagnostic_classify_diagnostic (global_dc, OPT_Wline_truncation, diff --git a/gcc/lto-opts.c b/gcc/lto-opts.c index 9496b3c8e0b..7b2ad74e69a 100644 --- a/gcc/lto-opts.c +++ b/gcc/lto-opts.c @@ -70,17 +70,17 @@ lto_write_options (void) obstack_init (&temporary_obstack); - if (!global_options_set.x_flag_openmp + if (!OPTION_SET_P (flag_openmp) && !global_options.x_flag_openmp) append_to_collect_gcc_options (&temporary_obstack, &first_p, "-fno-openmp"); - if (!global_options_set.x_flag_openacc + if (!OPTION_SET_P (flag_openacc) && !global_options.x_flag_openacc) append_to_collect_gcc_options (&temporary_obstack, &first_p, "-fno-openacc"); /* Append PIC/PIE mode because its default depends on target and it is subject of merging in lto-wrapper. */ - if (!global_options_set.x_flag_pic && !global_options_set.x_flag_pie) + if (!OPTION_SET_P (flag_pic) && !OPTION_SET_P (flag_pie)) { append_to_collect_gcc_options (&temporary_obstack, &first_p, global_options.x_flag_pic == 2 @@ -94,7 +94,7 @@ lto_write_options (void) : "-fno-pie"); } - if (!global_options_set.x_flag_cf_protection) + if (!OPTION_SET_P (flag_cf_protection)) { append_to_collect_gcc_options ( &temporary_obstack, &first_p, diff --git a/gcc/objc/objc-next-runtime-abi-01.c b/gcc/objc/objc-next-runtime-abi-01.c index 183fc01abb2..17c86189923 100644 --- a/gcc/objc/objc-next-runtime-abi-01.c +++ b/gcc/objc/objc-next-runtime-abi-01.c @@ -259,7 +259,7 @@ static void next_runtime_01_initialize (void) #ifdef OBJCPLUS /* For all NeXT objc ABIs -fobjc-call-cxx-cdtors is on by default. */ - if (!global_options_set.x_flag_objc_call_cxx_cdtors) + if (!OPTION_SET_P (flag_objc_call_cxx_cdtors)) global_options.x_flag_objc_call_cxx_cdtors = 1; #endif diff --git a/gcc/objc/objc-next-runtime-abi-02.c b/gcc/objc/objc-next-runtime-abi-02.c index 9c35738a95c..677b75f0334 100644 --- a/gcc/objc/objc-next-runtime-abi-02.c +++ b/gcc/objc/objc-next-runtime-abi-02.c @@ -255,7 +255,7 @@ objc_next_runtime_abi_02_init (objc_runtime_hooks *rthooks) } /* NeXT ABI 2 is intended to default to checking for nil receivers. */ - if (! global_options_set.x_flag_objc_nilcheck) + if (! OPTION_SET_P (flag_objc_nilcheck)) flag_objc_nilcheck = 1; rthooks->initialize = next_runtime_02_initialize; @@ -366,7 +366,7 @@ static void next_runtime_02_initialize (void) #ifdef OBJCPLUS /* For all NeXT objc ABIs -fobjc-call-cxx-cdtors is on by default. */ - if (!global_options_set.x_flag_objc_call_cxx_cdtors) + if (!OPTION_SET_P (flag_objc_call_cxx_cdtors)) global_options.x_flag_objc_call_cxx_cdtors = 1; #endif diff --git a/gcc/omp-expand.c b/gcc/omp-expand.c index 496c0e6cdd6..9715ef50e62 100644 --- a/gcc/omp-expand.c +++ b/gcc/omp-expand.c @@ -59,6 +59,7 @@ along with GCC; see the file COPYING3. If not see #include "stringpool.h" #include "attribs.h" #include "tree-eh.h" +#include "opts.h" /* OMP region information. Every parallel and workshare directive is enclosed between two markers, the OMP_* directive @@ -6960,7 +6961,7 @@ expand_omp_simd (struct omp_region *region, struct omp_for_data *fd) /* If not -fno-tree-loop-vectorize, hint that we want to vectorize the loop. */ if ((flag_tree_loop_vectorize - || !global_options_set.x_flag_tree_loop_vectorize) + || !OPTION_SET_P (flag_tree_loop_vectorize)) && flag_tree_loop_optimize && loop->safelen > 1) { diff --git a/gcc/omp-general.c b/gcc/omp-general.c index 1e4c0b25531..3e5ca94c2a7 100644 --- a/gcc/omp-general.c +++ b/gcc/omp-general.c @@ -44,6 +44,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-iterator.h" #include "data-streamer.h" #include "streamer-hooks.h" +#include "opts.h" enum omp_requires omp_requires_mask; @@ -952,7 +953,7 @@ omp_max_vf (void) || optimize_debug || !flag_tree_loop_optimize || (!flag_tree_loop_vectorize - && global_options_set.x_flag_tree_loop_vectorize)) + && OPTION_SET_P (flag_tree_loop_vectorize))) return 1; auto_vector_modes modes; diff --git a/gcc/omp-offload.c b/gcc/omp-offload.c index d881426ae65..833f7ddea58 100644 --- a/gcc/omp-offload.c +++ b/gcc/omp-offload.c @@ -54,6 +54,7 @@ along with GCC; see the file COPYING3. If not see #include "cfgloop.h" #include "context.h" #include "convert.h" +#include "opts.h" /* Describe the OpenACC looping structure of a function. The entire function is held in a 'NULL' loop. */ @@ -633,7 +634,7 @@ oacc_xform_loop (gcall *call) /* If not -fno-tree-loop-vectorize, hint that we want to vectorize the loop. */ && (flag_tree_loop_vectorize - || !global_options_set.x_flag_tree_loop_vectorize)) + || !OPTION_SET_P (flag_tree_loop_vectorize))) { basic_block bb = gsi_bb (gsi); class loop *parent = bb->loop_father; diff --git a/gcc/opts.h b/gcc/opts.h index bafc790112b..f5bc9a3149c 100644 --- a/gcc/opts.h +++ b/gcc/opts.h @@ -500,4 +500,8 @@ extern char *gen_producer_string (const char *language_string, } \ while (false) +/* Return true if OPTION is set by user in global options. */ + +#define OPTION_SET_P(OPTION) global_options_set.x_ ## OPTION + #endif diff --git a/gcc/targhooks.c b/gcc/targhooks.c index c9b5208853d..cbbcedf790f 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -2453,12 +2453,12 @@ default_max_noce_ifcvt_seq_cost (edge e) if (predictable_p) { - if (global_options_set.x_param_max_rtl_if_conversion_predictable_cost) + if (OPTION_SET_P (param_max_rtl_if_conversion_predictable_cost)) return param_max_rtl_if_conversion_predictable_cost; } else { - if (global_options_set.x_param_max_rtl_if_conversion_unpredictable_cost) + if (OPTION_SET_P (param_max_rtl_if_conversion_unpredictable_cost)) return param_max_rtl_if_conversion_unpredictable_cost; } diff --git a/gcc/toplev.c b/gcc/toplev.c index ecb2b694970..e4b381e159b 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1751,7 +1751,7 @@ process_options (bool no_backend) /* Enable -Werror=coverage-mismatch when -Werror and -Wno-error have not been set. */ - if (!global_options_set.x_warnings_are_errors) + if (!OPTION_SET_P (warnings_are_errors)) { if (warn_coverage_mismatch && (global_dc->classify_diagnostic[OPT_Wcoverage_mismatch] == diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c index 6b195d1914f..ce1f08f7d22 100644 --- a/gcc/tree-predcom.c +++ b/gcc/tree-predcom.c @@ -233,6 +233,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-scalar-evolution.h" #include "tree-affine.h" #include "builtins.h" +#include "opts.h" /* The maximum number of iterations between the considered memory references. */ @@ -3492,7 +3493,7 @@ public: only if predictive commoning isn't set explicitly, and it doesn't allow unrolling. */ if (flag_tree_loop_vectorize - && !global_options_set.x_flag_predictive_commoning) + && !OPTION_SET_P (flag_predictive_commoning)) return true; return false; diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index 0363c5efb78..9b786e29e4e 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -99,7 +99,7 @@ along with GCC; see the file COPYING3. If not see #include "dbgcnt.h" #include "builtins.h" #include "tree-sra.h" - +#include "opts.h" /* Enumeration of all aggregate reductions we can do. */ enum sra_mode { SRA_MODE_EARLY_IPA, /* early call regularization */ @@ -3427,12 +3427,12 @@ analyze_all_variable_accesses (void) if (optimize_speed_p) { - if (global_options_set.x_param_sra_max_scalarization_size_speed) + if (OPTION_SET_P (param_sra_max_scalarization_size_speed)) max_scalarization_size = param_sra_max_scalarization_size_speed; } else { - if (global_options_set.x_param_sra_max_scalarization_size_size) + if (OPTION_SET_P (param_sra_max_scalarization_size_size)) max_scalarization_size = param_sra_max_scalarization_size_size; } max_scalarization_size *= BITS_PER_UNIT;