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
