From 19caff4f9a38c23bffdc8ff801a36026ab61ebd7 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Thu, 25 Jul 2013 23:09:00 +0000 Subject: [PATCH] Options.td: fold the NoForward flag into DriverOption They seemed to have the same implications, and this makes for one less flag to worry about. Differential Revision: http://llvm-reviews.chandlerc.com/D1219 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187168 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Driver/Options.h | 7 +++---- include/clang/Driver/Options.td | 27 +++++++++++++++------------ lib/Driver/Tools.cpp | 1 - 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/include/clang/Driver/Options.h b/include/clang/Driver/Options.h index 1186c8489e..559d7693bb 100644 --- a/include/clang/Driver/Options.h +++ b/include/clang/Driver/Options.h @@ -26,10 +26,9 @@ enum ClangFlags { DriverOption = (1 << 4), LinkerInput = (1 << 5), NoArgumentUnused = (1 << 6), - NoForward = (1 << 7), - Unsupported = (1 << 8), - CC1Option = (1 << 9), - NoDriverOption = (1 << 10) + Unsupported = (1 << 7), + CC1Option = (1 << 8), + NoDriverOption = (1 << 9) }; enum ID { diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index 3d30b25012..a4d9c7f490 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -18,7 +18,7 @@ include "llvm/Option/OptParser.td" // Flags // DriverOption - The option is a "driver" option, and should not be forwarded -// to gcc. +// to other tools. def DriverOption : OptionFlag; // LinkerInput - The option is a linker input. @@ -33,9 +33,6 @@ def NoArgumentUnused : OptionFlag; // lines that use it. def Unsupported : OptionFlag; -// NoForward - The option should not be implicitly forwarded to other tools. -def NoForward : OptionFlag; - // CC1Option - This option should be accepted by clang -cc1. def CC1Option : OptionFlag; @@ -254,7 +251,7 @@ def Xassembler : Separate<["-"], "Xassembler">, HelpText<"Pass to the assembler">, MetaVarName<"">; def Xclang : Separate<["-"], "Xclang">, HelpText<"Pass to the clang compiler">, MetaVarName<"">, - Flags<[NoForward]>; + Flags<[DriverOption]>; def Xlinker : Separate<["-"], "Xlinker">, Flags<[LinkerInput, RenderAsInput]>, HelpText<"Pass to the linker">, MetaVarName<"">; def Xpreprocessor : Separate<["-"], "Xpreprocessor">, @@ -342,7 +339,8 @@ def fast : Flag<["-"], "fast">, Group; def fasynchronous_unwind_tables : Flag<["-"], "fasynchronous-unwind-tables">, Group; def fautolink : Flag <["-"], "fautolink">, Group; -def fno_autolink : Flag <["-"], "fno-autolink">, Group, Flags<[NoForward, CC1Option]>, +def fno_autolink : Flag <["-"], "fno-autolink">, Group, + Flags<[DriverOption, CC1Option]>, HelpText<"Disable generation of linker directives for automatic library linking">; def fblocks : Flag<["-"], "fblocks">, Group, Flags<[CC1Option]>, @@ -380,7 +378,8 @@ def fno_crash_diagnostics : Flag<["-"], "fno-crash-diagnostics">, Group, Group; def fcxx_exceptions: Flag<["-"], "fcxx-exceptions">, Group, HelpText<"Enable C++ exceptions">, Flags<[CC1Option]>; -def fcxx_modules : Flag <["-"], "fcxx-modules">, Group, Flags<[NoForward]>; +def fcxx_modules : Flag <["-"], "fcxx-modules">, Group, + Flags<[DriverOption]>; def fdebug_pass_arguments : Flag<["-"], "fdebug-pass-arguments">, Group; def fdebug_pass_structure : Flag<["-"], "fdebug-pass-structure">, Group; def fdiagnostics_fixit_info : Flag<["-"], "fdiagnostics-fixit-info">, Group; @@ -536,7 +535,7 @@ def fdelayed_template_parsing : Flag<["-"], "fdelayed-template-parsing">, Group< HelpText<"Parse templated function definitions at the end of the " "translation unit ">, Flags<[CC1Option]>; def fmodules_cache_path : Joined<["-"], "fmodules-cache-path=">, Group, - Flags<[NoForward,CC1Option]>, MetaVarName<"">, + Flags<[DriverOption, CC1Option]>, MetaVarName<"">, HelpText<"Specify the module cache path">; def fmodules_prune_interval : Joined<["-"], "fmodules-prune-interval=">, Group, Flags<[CC1Option]>, MetaVarName<"">, @@ -544,7 +543,8 @@ def fmodules_prune_interval : Joined<["-"], "fmodules-prune-interval=">, Group">, HelpText<"Specify the interval (in seconds) after which a module file will be considered unused">; -def fmodules : Flag <["-"], "fmodules">, Group, Flags<[NoForward,CC1Option]>, +def fmodules : Flag <["-"], "fmodules">, Group, + Flags<[DriverOption, CC1Option]>, HelpText<"Enable the 'modules' language feature">; def fmodules_ignore_macro : Joined<["-"], "fmodules-ignore-macro=">, Group, Flags<[CC1Option]>, HelpText<"Ignore the definition of the given macro when building and loading modules">; @@ -580,7 +580,8 @@ def fno_constant_cfstrings : Flag<["-"], "fno-constant-cfstrings">, Group, HelpText<"Disable creation of CodeFoundation-type constant strings">; def fno_cxx_exceptions: Flag<["-"], "fno-cxx-exceptions">, Group; -def fno_cxx_modules : Flag <["-"], "fno-cxx-modules">, Group, Flags<[NoForward]>; +def fno_cxx_modules : Flag <["-"], "fno-cxx-modules">, Group, + Flags<[DriverOption]>; def fno_diagnostics_fixit_info : Flag<["-"], "fno-diagnostics-fixit-info">, Group, Flags<[CC1Option]>, HelpText<"Do not include fixit information in diagnostics">; def fno_diagnostics_show_name : Flag<["-"], "fno-diagnostics-show-name">, Group; @@ -603,7 +604,8 @@ def fno_limit_debug_info : Flag<["-"], "fno-limit-debug-info">, Group, HelpText<"Do not limit debug information produced to reduce size of debug binary">; def fno_merge_all_constants : Flag<["-"], "fno-merge-all-constants">, Group, Flags<[CC1Option]>, HelpText<"Disallow merging of constants">; -def fno_modules : Flag <["-"], "fno-modules">, Group, Flags<[NoForward]>; +def fno_modules : Flag <["-"], "fno-modules">, Group, + Flags<[DriverOption]>; def fno_ms_extensions : Flag<["-"], "fno-ms-extensions">, Group; def fno_ms_compatibility : Flag<["-"], "fno-ms-compatibility">, Group; def fno_delayed_template_parsing : Flag<["-"], "fno-delayed-template-parsing">, Group; @@ -908,7 +910,8 @@ def miphoneos_version_min_EQ : Joined<["-"], "miphoneos-version-min=">, Group, Group; -def mlinker_version_EQ : Joined<["-"], "mlinker-version=">, Flags<[NoForward]>; +def mlinker_version_EQ : Joined<["-"], "mlinker-version=">, + Flags<[DriverOption]>; def mllvm : Separate<["-"], "mllvm">, Flags<[CC1Option]>, HelpText<"Additional arguments to forward to LLVM's option processing">; def mmacosx_version_min_EQ : Joined<["-"], "mmacosx-version-min=">, Group; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index c1b33fd51a..82bd872df8 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -228,7 +228,6 @@ static bool forwardToGCC(const Option &O) { // Don't forward inputs from the original command line. They are added from // InputInfoList. return O.getKind() != Option::InputClass && - !O.hasFlag(options::NoForward) && !O.hasFlag(options::DriverOption) && !O.hasFlag(options::LinkerInput); } -- 2.40.0