[cfe-commits] r153478 - /cfe/trunk/lib/Driver/Tools.cpp

Chad Rosier michael_rosier at apple.com
Mon Mar 26 15:44:33 PDT 2012


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 <mcrosier at apple.com> 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
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list