diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -473,38 +473,23 @@ changed_by_flag, reset_by_flag, flag_suffix>; } -/// Creates a BoolOption with the changing available on the CC1 command line. -multiclass BoolCC1Option> { - defvar changed_by_cc1 - = ChangedBy; - - defm NAME : BoolOption; -} - -/// Creates a BoolOption where both of the flags are prefixed with "f", are in -/// the Group, and the changing flag is also available on the CC1 -/// command line. +/// Creates a BoolOption where both of the flags are prefixed with "f" and have +/// the Group. multiclass BoolFOption> { - defm NAME : BoolCC1Option<"f", flag_base, kpm, defaults_to, changed_by, - reset_by, both>, + defm NAME : BoolOption<"f", flag_base, kpm, defaults_to, changed_by, reset_by, + both>, Group; } -// Creates a BoolOption where both of the flags are prefixed with "g", are in -// the Group, and the changing flag is also available on the CC1 -// command line. +// Creates a BoolOption where both of the flags are prefixed with "g" and have +// the Group. multiclass BoolGOption> { - defm NAME : BoolCC1Option<"g", flag_base, kpm, defaults_to, changed_by, - reset_by, both>, + defm NAME : BoolOption<"g", flag_base, kpm, defaults_to, changed_by, reset_by, + both>, Group; } @@ -951,7 +936,7 @@ " approximate transcendental functions">; defm gpu_rdc : BoolFOption<"gpu-rdc", LangOpts<"GPURelocatableDeviceCode">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; def : Flag<["-"], "fcuda-rdc">, Alias; def : Flag<["-"], "fno-cuda-rdc">, Alias; @@ -971,17 +956,17 @@ Group, Flags<[NoArgumentUnused, HelpHidden]>; defm hip_new_launch_api : BoolFOption<"hip-new-launch-api", LangOpts<"HIPUseNewLaunchAPI">, DefaultsToFalse, - ChangedBy, ResetBy, + ChangedBy, ResetBy, BothFlags<[], " new kernel launching API for HIP">>; defm gpu_allow_device_init : OptInFFlag<"gpu-allow-device-init", "Allow", "Don't allow", " device side init function in HIP">; defm gpu_defer_diag : BoolFOption<"gpu-defer-diag", LangOpts<"GPUDeferDiag">, DefaultsToFalse, - ChangedBy, ResetBy, + ChangedBy, ResetBy, BothFlags<[], " host/device related diagnostic messages for CUDA/HIP">>; defm gpu_exclude_wrong_side_overloads : BoolFOption<"gpu-exclude-wrong-side-overloads", LangOpts<"GPUExcludeWrongSideOverloads">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy, BothFlags<[HelpHidden], " in overloading resolution for CUDA/HIP">>; def gpu_max_threads_per_block_EQ : Joined<["--"], "gpu-max-threads-per-block=">, @@ -1043,14 +1028,14 @@ def fno_PIE : Flag<["-"], "fno-PIE">, Group; defm access_control : BoolFOption<"access-control", LangOpts<"AccessControl">, DefaultsToTrue, - ChangedBy, + ChangedBy, ResetBy>; def falign_functions : Flag<["-"], "falign-functions">, Group; def falign_functions_EQ : Joined<["-"], "falign-functions=">, Group; def fno_align_functions: Flag<["-"], "fno-align-functions">, Group; defm allow_editor_placeholders : BoolFOption<"allow-editor-placeholders", LangOpts<"AllowEditorPlaceholders">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; def fallow_unsupported : Flag<["-"], "fallow-unsupported">, Group; def fapple_kext : Flag<["-"], "fapple-kext">, Group, Flags<[CC1Option]>, @@ -1058,7 +1043,7 @@ MarshallingInfoFlag>; defm apple_pragma_pack : BoolFOption<"apple-pragma-pack", LangOpts<"ApplePragmaPack">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; def fxl_pragma_pack : Flag<["-"], "fxl-pragma-pack">, Group, Flags<[CC1Option]>, HelpText<"Enable IBM XL #pragma pack handling">; @@ -1106,7 +1091,7 @@ HelpText<"Embed placeholder LLVM IR data as a marker">; defm gnu_inline_asm : BoolFOption<"gnu-inline-asm", LangOpts<"GNUAsm">, DefaultsToTrue, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; def fprofile_sample_use : Flag<["-"], "fprofile-sample-use">, Group, Flags<[CoreOption]>; @@ -1145,7 +1130,7 @@ Alias; defm debug_info_for_profiling : BoolFOption<"debug-info-for-profiling", CodeGenOpts<"DebugInfoForProfiling">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; def fprofile_instr_generate : Flag<["-"], "fprofile-instr-generate">, Group, Flags<[CoreOption]>, @@ -1166,7 +1151,7 @@ Group, Flags<[CoreOption]>, Alias; defm coverage_mapping : BoolFOption<"coverage-mapping", CodeGenOpts<"CoverageMapping">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy, BothFlags<[CoreOption]>>; def fprofile_generate : Flag<["-"], "fprofile-generate">, Group, Flags<[CoreOption]>, @@ -1198,10 +1183,10 @@ Alias; defm profile_arcs : BoolFOption<"profile-arcs", CodeGenOpts<"EmitGcovArcs">, DefaultsToFalse, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; defm test_coverage : BoolFOption<"test-coverage", CodeGenOpts<"EmitGcovNotes">, DefaultsToFalse, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; def fprofile_filter_files_EQ : Joined<["-"], "fprofile-filter-files=">, Group, Flags<[CC1Option, CoreOption]>, HelpText<"Instrument only functions from files where names match any regex separated by a semi-colon">, @@ -1226,20 +1211,20 @@ defm addrsig : BoolFOption<"addrsig", CodeGenOpts<"Addrsig">, DefaultsToFalse, - ChangedBy, ResetBy, + ChangedBy, ResetBy, BothFlags<[CoreOption], " an address-significance table">>; defm blocks : OptInFFlag<"blocks", "Enable the 'blocks' language feature", "", "", [CoreOption]>; def fbootclasspath_EQ : Joined<["-"], "fbootclasspath=">, Group; defm borland_extensions : BoolFOption<"borland-extensions", LangOpts<"Borland">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; def fbuiltin : Flag<["-"], "fbuiltin">, Group, Flags<[CoreOption]>; def fbuiltin_module_map : Flag <["-"], "fbuiltin-module-map">, Group, Flags<[NoXarchOption]>, HelpText<"Load the clang builtins module map file.">; defm caret_diagnostics : BoolFOption<"caret-diagnostics", DiagnosticOpts<"ShowCarets">, DefaultsToTrue, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; def fclang_abi_compat_EQ : Joined<["-"], "fclang-abi-compat=">, Group, Flags<[CC1Option]>, MetaVarName<"">, Values<".,latest">, HelpText<"Attempt to match the ABI of Clang ">; @@ -1280,7 +1265,7 @@ MarshallingInfoString, "ObjectiveC">, AutoNormalizeEnum; defm constant_cfstrings : BoolFOption<"constant-cfstrings", LangOpts<"NoConstantCFStrings">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; def fconstant_string_class_EQ : Joined<["-"], "fconstant-string-class=">, Group; def fconstexpr_depth_EQ : Joined<["-"], "fconstexpr-depth=">, Group; @@ -1296,7 +1281,7 @@ def fcreate_profile : Flag<["-"], "fcreate-profile">, Group; defm cxx_exceptions: BoolFOption<"cxx-exceptions", LangOpts<"CXXExceptions">, DefaultsToFalse, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; def fcxx_modules : Flag <["-"], "fcxx-modules">, Group, Flags<[NoXarchOption]>; def fdebug_pass_arguments : Flag<["-"], "fdebug-pass-arguments">, Group; @@ -1316,7 +1301,7 @@ MarshallingInfoFlag>; defm diagnostics_show_hotness : BoolFOption<"diagnostics-show-hotness", CodeGenOpts<"DiagnosticsWithHotness">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; def fdiagnostics_hotness_threshold_EQ : Joined<["-"], "fdiagnostics-hotness-threshold=">, Group, Flags<[CC1Option]>, MetaVarName<"">, @@ -1324,7 +1309,7 @@ "Use 'auto' to apply the threshold from profile summary">; defm diagnostics_show_option : BoolFOption<"diagnostics-show-option", DiagnosticOpts<"ShowOptionNames">, DefaultsToTrue, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; defm diagnostics_show_note_include_stack : BoolFOption<"diagnostics-show-note-include-stack", DiagnosticOpts<"ShowNoteIncludeStack">, DefaultsToFalse, ChangedBy, @@ -1347,10 +1332,10 @@ def fno_dwarf2_cfi_asm : Flag<["-"], "fno-dwarf2-cfi-asm">, Group; defm dwarf_directory_asm : BoolFOption<"dwarf-directory-asm", CodeGenOpts<"NoDwarfDirectoryAsm">, DefaultsToFalse, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; defm elide_constructors : BoolFOption<"elide-constructors", LangOpts<"ElideConstructors">, DefaultsToTrue, - ChangedBy, + ChangedBy, ResetBy>; def fno_elide_type : Flag<["-"], "fno-elide-type">, Group, Flags<[CC1Option]>, @@ -1364,13 +1349,13 @@ MarshallingInfoFlag>; defm emulated_tls : BoolFOption<"emulated-tls", CodeGenOpts<"EmulatedTLS">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy, BothFlags<[CC1Option]>>; def fencoding_EQ : Joined<["-"], "fencoding=">, Group; def ferror_limit_EQ : Joined<["-"], "ferror-limit=">, Group, Flags<[CoreOption]>; defm exceptions : BoolFOption<"exceptions", LangOpts<"Exceptions">, DefaultsToFalse, - ChangedBy, ResetBy, + ChangedBy, ResetBy, BothFlags<[], " support for exception handling">>; def fdwarf_exceptions : Flag<["-"], "fdwarf-exceptions">, Group, HelpText<"Use DWARF style exceptions">; @@ -1419,17 +1404,17 @@ def fno_signaling_math : Flag<["-"], "fno-signaling-math">, Group; defm jump_tables : BoolFOption<"jump-tables", CodeGenOpts<"NoUseJumpTables">, DefaultsToFalse, - ChangedBy, ResetBy, + ChangedBy, ResetBy, BothFlags<[], " jump tables for lowering switches">>; defm force_enable_int128 : OptInFFlag<"force-enable-int128", "Enable", "Disable", " support for int128_t type", [], TargetOpts<"ForceEnableInt128">>; defm keep_static_consts : BoolFOption<"keep-static-consts", CodeGenOpts<"KeepStaticConsts">, DefaultsToFalse, - ChangedBy, ResetBy, + ChangedBy, ResetBy, BothFlags<[NoXarchOption], " static const variables if unused">>; defm fixed_point : OptInFFlag<"fixed-point", "Enable", "Disable", " fixed point types">; defm cxx_static_destructors : BoolFOption<"c++-static-destructors", LangOpts<"RegisterStaticDestructors">, DefaultsToTrue, - ChangedBy, + ChangedBy, ResetBy>; def fsymbol_partition_EQ : Joined<["-"], "fsymbol-partition=">, Group, Flags<[CC1Option]>, MarshallingInfoString>; @@ -1634,7 +1619,7 @@ LangOpts<"FiniteMathOnly">, [cl_finite_math_only, ffast_math]>; defm signed_zeros : BoolFOption<"signed-zeros", LangOpts<"NoSignedZero">, DefaultsToFalse, - ChangedBy, ResetBy>; def fhonor_nans : Flag<["-"], "fhonor-nans">, Group; @@ -1661,7 +1646,7 @@ defm strict_float_cast_overflow : BoolFOption<"strict-float-cast-overflow", CodeGenOpts<"StrictFloatCastOverflow">, DefaultsToTrue, - ChangedBy, ResetBy>; @@ -1670,14 +1655,14 @@ defm rewrite_imports : BoolFOption<"rewrite-imports", PreprocessorOutputOpts<"RewriteImports">, DefaultsToFalse, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; defm rewrite_includes : BoolFOption<"rewrite-includes", PreprocessorOutputOpts<"RewriteIncludes">, DefaultsToFalse, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; defm delete_null_pointer_checks : BoolFOption<"delete-null-pointer-checks", CodeGenOpts<"NullPointerIsValid">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy, BothFlags<[CoreOption]>>; @@ -1691,7 +1676,7 @@ defm use_line_directives : BoolFOption<"use-line-directives", PreprocessorOutputOpts<"UseLineDirectives">, DefaultsToFalse, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; def ffreestanding : Flag<["-"], "ffreestanding">, Group, Flags<[CC1Option]>, HelpText<"Assert that the compilation takes place in a freestanding environment">, @@ -1863,7 +1848,7 @@ Group, Flags<[NoXarchOption, CoreOption]>; defm merge_all_constants : BoolFOption<"merge-all-constants", CodeGenOpts<"MergeAllConstants">, DefaultsToFalse, - ChangedBy, ResetBy, + ChangedBy, ResetBy, BothFlags<[], " merging of constants">>; def fmessage_length_EQ : Joined<["-"], "fmessage-length=">, Group, Flags<[CC1Option]>, HelpText<"Format message diagnostics so that they fit within N columns">, @@ -1886,7 +1871,7 @@ "(default))">; defm delayed_template_parsing : BoolFOption<"delayed-template-parsing", LangOpts<"DelayedTemplateParsing">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy, BothFlags<[CoreOption]>>; def fms_memptr_rep_EQ : Joined<["-"], "fms-memptr-rep=">, Group, Flags<[CC1Option]>, @@ -2011,7 +1996,7 @@ Flags<[NoXarchOption, CC1Option]>; defm implicit_modules : BoolFOption<"implicit-modules", LangOpts<"ImplicitModules">, DefaultsToTrue, - ChangedBy, ResetBy, BothFlags<[NoXarchOption]>>; + ChangedBy, ResetBy, BothFlags<[NoXarchOption]>>; def fretain_comments_from_system_headers : Flag<["-"], "fretain-comments-from-system-headers">, Group, Flags<[CC1Option]>, MarshallingInfoFlag>; @@ -2099,7 +2084,7 @@ MarshallingInfoNegativeFlag>; defm use_cxa_atexit : BoolFOption<"use-cxa-atexit", CodeGenOpts<"CXAAtExit">, DefaultsToTrue, - ChangedBy, + ChangedBy, ResetBy>; def fno_unit_at_a_time : Flag<["-"], "fno-unit-at-a-time">, Group; def fno_unwind_tables : Flag<["-"], "fno-unwind-tables">, Group; @@ -2112,7 +2097,7 @@ def fno_objc_arc : Flag<["-"], "fno-objc-arc">, Group; defm objc_convert_messages_to_runtime_calls : BoolFOption<"objc-convert-messages-to-runtime-calls", CodeGenOpts<"ObjCConvertMessagesToRuntimeCalls">, DefaultsToTrue, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; defm objc_arc_exceptions : OptInFFlag<"objc-arc-exceptions", "Use EH-safe code when synthesizing retains and releases in -fobjc-arc", "", "", [], CodeGenOpts<"ObjCAutoRefCountExceptions">>; @@ -2120,18 +2105,18 @@ def fobjc_call_cxx_cdtors : Flag<["-"], "fobjc-call-cxx-cdtors">, Group; defm objc_exceptions : BoolFOption<"objc-exceptions", LangOpts<"ObjCExceptions">, DefaultsToFalse, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; defm application_extension : BoolFOption<"application-extension", LangOpts<"AppExt">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; defm relaxed_template_template_args : BoolFOption<"relaxed-template-template-args", LangOpts<"RelaxedTemplateTemplateArgs">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; defm sized_deallocation : BoolFOption<"sized-deallocation", LangOpts<"SizedDeallocation">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; def faligned_allocation : Flag<["-"], "faligned-allocation">, Flags<[CC1Option]>, HelpText<"Enable C++17 aligned allocation functions">, Group; @@ -2150,7 +2135,7 @@ def fobjc_new_property : Flag<["-"], "fobjc-new-property">, Group; defm objc_infer_related_result_type : BoolFOption<"objc-infer-related-result-type", LangOpts<"ObjCInferRelatedResultType">, DefaultsToTrue, - ChangedBy, + ChangedBy, ResetBy>; def fobjc_link_runtime: Flag<["-"], "fobjc-link-runtime">, Group; def fobjc_weak : Flag<["-"], "fobjc-weak">, Group, Flags<[CC1Option]>, @@ -2203,7 +2188,7 @@ Flags<[CC1Option, NoArgumentUnused, HelpHidden]>; defm openmp_optimistic_collapse : BoolFOption<"openmp-optimistic-collapse", LangOpts<"OpenMPOptimisticCollapse">, DefaultsToFalse, - ChangedBy, ResetBy, BothFlags<[NoArgumentUnused, HelpHidden]>>; + ChangedBy, ResetBy, BothFlags<[NoArgumentUnused, HelpHidden]>>; def fopenmp_cuda_parallel_target_regions : Flag<["-"], "fopenmp-cuda-parallel-target-regions">, Group, Flags<[CC1Option, NoArgumentUnused, HelpHidden]>, HelpText<"Support parallel execution of target regions on Cuda-based devices.">; @@ -2216,7 +2201,7 @@ def foptimize_sibling_calls : Flag<["-"], "foptimize-sibling-calls">, Group; defm escaping_block_tail_calls : BoolFOption<"escaping-block-tail-calls", CodeGenOpts<"NoEscapingBlockTailCalls">, DefaultsToFalse, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; def force__cpusubtype__ALL : Flag<["-"], "force_cpusubtype_ALL">; def force__flat__namespace : Flag<["-"], "force_flat_namespace">; def force__load : Separate<["-"], "force_load">; @@ -2233,7 +2218,7 @@ def fno_max_type_align : Flag<["-"], "fno-max-type-align">, Group; defm pascal_strings : BoolFOption<"pascal-strings", LangOpts<"PascalStrings">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; // Note: This flag has different semantics in the driver and in -cc1. The driver accepts -fpatchable-function-entry=M,N // and forwards it to -cc1 as -fpatchable-function-entry=M and -fpatchable-function-entry-offset=N. In -cc1, both flags @@ -2254,15 +2239,15 @@ HelpText<"Use GOT indirection to reference external data symbols">; defm plt : BoolFOption<"plt", CodeGenOpts<"NoPLT">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; defm ropi : BoolFOption<"ropi", LangOpts<"ROPI">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; defm rwpi : BoolFOption<"rwpi", LangOpts<"RWPI">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; def fplugin_EQ : Joined<["-"], "fplugin=">, Group, Flags<[NoXarchOption]>, MetaVarName<"">, HelpText<"Load the named plugin (dynamic shared object)">; @@ -2272,7 +2257,7 @@ MarshallingInfoStringVector>; defm preserve_as_comments : BoolFOption<"preserve-as-comments", CodeGenOpts<"PreserveAsmComments">, DefaultsToTrue, - ChangedBy, + ChangedBy, ResetBy>; def framework : Separate<["-"], "framework">, Flags<[LinkerInput]>; def frandom_seed_EQ : Joined<["-"], "frandom-seed=">, Group; @@ -2283,7 +2268,7 @@ def : Flag<["-"], "fsched-interblock">, Group; defm short_enums : BoolFOption<"short-enums", LangOpts<"ShortEnums">, DefaultsToFalse, - ChangedBy, ResetBy>; def fchar8__t : Flag<["-"], "fchar8_t">, Group, Flags<[CC1Option]>, @@ -2301,15 +2286,15 @@ MarshallingInfoString, "Ovl_All">, AutoNormalizeEnum; defm show_column : BoolFOption<"show-column", DiagnosticOpts<"ShowColumn">, DefaultsToTrue, - ChangedBy, + ChangedBy, ResetBy>; defm show_source_location : BoolFOption<"show-source-location", DiagnosticOpts<"ShowLocation">, DefaultsToTrue, - ChangedBy, + ChangedBy, ResetBy>; defm spell_checking : BoolFOption<"spell-checking", LangOpts<"SpellChecking">, DefaultsToTrue, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; def fspell_checking_limit_EQ : Joined<["-"], "fspell-checking-limit=">, Group; def fsigned_bitfields : Flag<["-"], "fsigned-bitfields">, Group; defm signed_char : OptOutFFlag<"signed-char", "char is signed", "char is unsigned">; @@ -2318,7 +2303,7 @@ HelpText<"Enable stack protectors for all functions">; defm stack_clash_protection : BoolFOption<"stack-clash-protection", CodeGenOpts<"StackClashProtector">, DefaultsToFalse, - ChangedBy, ResetBy, + ChangedBy, ResetBy, BothFlags<[], " stack clash protection">>; def fstack_protector_strong : Flag<["-"], "fstack-protector-strong">, Group, HelpText<"Enable stack protectors for some functions vulnerable to stack smashing. " @@ -2366,7 +2351,7 @@ MarshallingInfoFlag>; defm strict_vtable_pointers : BoolFOption<"strict-vtable-pointers", CodeGenOpts<"StrictVTablePointers">, DefaultsToFalse, - ChangedBy, ResetBy>; def fstrict_overflow : Flag<["-"], "fstrict-overflow">, Group; @@ -2421,7 +2406,7 @@ def : Flag<["-"], "fterminated-vtables">, Alias; defm threadsafe_statics : BoolFOption<"threadsafe-statics", LangOpts<"ThreadsafeStatics">, DefaultsToTrue, - ChangedBy, + ChangedBy, ResetBy>; def ftime_report : Flag<["-"], "ftime-report">, Group, Flags<[CC1Option]>, MarshallingInfoFlag>; @@ -2467,7 +2452,7 @@ HelpText<"Turn off loop unroller">, Flags<[CC1Option]>; defm reroll_loops : BoolFOption<"reroll-loops", CodeGenOpts<"RerollLoops">, DefaultsToFalse, - ChangedBy, ResetBy>; + ChangedBy, ResetBy>; def ftrigraphs : Flag<["-"], "ftrigraphs">, Group, HelpText<"Process trigraph sequences">, Flags<[CC1Option]>; def fno_trigraphs : Flag<["-"], "fno-trigraphs">, Group, @@ -2478,11 +2463,11 @@ def funwind_tables : Flag<["-"], "funwind-tables">, Group; defm register_global_dtors_with_atexit : BoolFOption<"register-global-dtors-with-atexit", CodeGenOpts<"RegisterGlobalDtorsWithAtExit">, DefaultsToFalse, - ChangedBy, ResetBy, + ChangedBy, ResetBy, BothFlags<[], " atexit or __cxa_atexit to register global destructors">>; defm use_init_array : BoolFOption<"use-init-array", CodeGenOpts<"UseInitArray">, DefaultsToTrue, - ChangedBy, + ChangedBy, ResetBy>; def fno_var_tracking : Flag<["-"], "fno-var-tracking">, Group; def fverbose_asm : Flag<["-"], "fverbose-asm">, Group, @@ -2490,7 +2475,7 @@ def dA : Flag<["-"], "dA">, Alias; defm visibility_from_dllstorageclass : BoolFOption<"visibility-from-dllstorageclass", LangOpts<"VisibilityFromDLLStorageClass">, DefaultsToFalse, - ChangedBy, + ChangedBy, ResetBy>; def fvisibility_dllexport_EQ : Joined<["-"], "fvisibility-dllexport=">, Group, Flags<[CC1Option]>, HelpText<"The visibility for dllexport defintions [-fvisibility-from-dllstorageclass]">, @@ -2515,7 +2500,7 @@ Flags<[CC1Option]>, MarshallingInfoFlag>; defm visibility_inlines_hidden_static_local_var : BoolFOption<"visibility-inlines-hidden-static-local-var", LangOpts<"VisibilityInlinesHiddenStaticLocalVar">, DefaultsToFalse, - ChangedBy