diff options
author | Chad Rosier <mcrosier@apple.com> | 2012-03-26 22:04:46 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2012-03-26 22:04:46 +0000 |
commit | afc4baa37c2f38fadf05b15456b10a0994d51b0b (patch) | |
tree | 8ba564daa91c21a6b824bd300e4193ddff7100ce /lib/Driver/Tools.cpp | |
parent | ec09b3e0c5d96a1b7a3e797cdff2875eca1e9907 (diff) |
[driver] Fix unused argument warnings.
1. Don't short-circuit conditional statements that are checking flags.
Otherwise, the driver emits warnings about unused arguments.
2. -mkernel and -fapple-kext imply no exceptions, so claim exception related
arguments now to avoid warnings about unused arguments.
rdar://11120518
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153478 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/Tools.cpp')
-rw-r--r-- | lib/Driver/Tools.cpp | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 665a3aa24c..52c22b13a4 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1081,8 +1081,17 @@ static void addExceptionArgs(const ArgList &Args, types::ID InputType, bool KernelOrKext, bool IsRewriter, unsigned objcABIVersion, ArgStringList &CmdArgs) { - if (KernelOrKext) + if (KernelOrKext) { + // -mkernel and -fapple-kext imply no exceptions, so claim exception related + // arguments now to avoid warnings about unused arguments. + Args.ClaimAllArgs(options::OPT_fexceptions); + Args.ClaimAllArgs(options::OPT_fno_exceptions); + Args.ClaimAllArgs(options::OPT_fobjc_exceptions); + Args.ClaimAllArgs(options::OPT_fno_objc_exceptions); + Args.ClaimAllArgs(options::OPT_fcxx_exceptions); + Args.ClaimAllArgs(options::OPT_fno_cxx_exceptions); return; + } // Exceptions are enabled by default. bool ExceptionsEnabled = true; @@ -1965,9 +1974,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Args.AddLastArg(CmdArgs, options::OPT_fvisibility_inlines_hidden); // -fhosted is default. - if (KernelOrKext || Args.hasFlag(options::OPT_ffreestanding, - options::OPT_fhosted, - false)) + if (Args.hasFlag(options::OPT_ffreestanding, options::OPT_fhosted, false) || + KernelOrKext) CmdArgs.push_back("-ffreestanding"); // Forward -f (flag) options which we can pass directly. @@ -2123,8 +2131,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-fno-elide-constructors"); // -frtti is default. - if (KernelOrKext || - !Args.hasFlag(options::OPT_frtti, options::OPT_fno_rtti)) + if (!Args.hasFlag(options::OPT_frtti, options::OPT_fno_rtti) || + KernelOrKext) CmdArgs.push_back("-fno-rtti"); // -fshort-enums=0 is default for all architectures except Hexagon. @@ -2145,12 +2153,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-fno-threadsafe-statics"); // -fuse-cxa-atexit is default. - if (KernelOrKext || - !Args.hasFlag(options::OPT_fuse_cxa_atexit, options::OPT_fno_use_cxa_atexit, - getToolChain().getTriple().getOS() != llvm::Triple::Cygwin && + if (!Args.hasFlag(options::OPT_fuse_cxa_atexit, + options::OPT_fno_use_cxa_atexit, + getToolChain().getTriple().getOS() != llvm::Triple::Cygwin && getToolChain().getTriple().getOS() != llvm::Triple::MinGW32 && - getToolChain().getTriple().getArch() != - llvm::Triple::hexagon)) + getToolChain().getTriple().getArch() != llvm::Triple::hexagon) || + KernelOrKext) CmdArgs.push_back("-fno-use-cxa-atexit"); // -fms-extensions=0 is default. |