Thanks for keeping me honest, David. Committed revision 153481. Chad
On Mar 26, 2012, at 3:25 PM, David Blaikie wrote: > On Mon, Mar 26, 2012 at 3:04 PM, Chad Rosier <[email protected]> wrote: >> Author: mcrosier >> Date: Mon Mar 26 17:04:46 2012 >> New Revision: 153478 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=153478&view=rev >> Log: >> [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. > > Test cases? > >> >> rdar://11120518 >> >> Modified: >> cfe/trunk/lib/Driver/Tools.cpp >> >> Modified: cfe/trunk/lib/Driver/Tools.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=153478&r1=153477&r2=153478&view=diff >> ============================================================================== >> --- cfe/trunk/lib/Driver/Tools.cpp (original) >> +++ cfe/trunk/lib/Driver/Tools.cpp Mon Mar 26 17:04:46 2012 >> @@ -1081,8 +1081,17 @@ >> 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 @@ >> 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 @@ >> 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 @@ >> 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. >> >> >> _______________________________________________ >> cfe-commits mailing list >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
