]> granicus.if.org Git - clang/commitdiff
[driver] If we're only linking, don't warn about unused arguments which are
authorChad Rosier <mcrosier@apple.com>
Sat, 5 Nov 2011 15:56:33 +0000 (15:56 +0000)
committerChad Rosier <mcrosier@apple.com>
Sat, 5 Nov 2011 15:56:33 +0000 (15:56 +0000)
obviously only used during compilation.
rdar://10386708

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143813 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Driver.cpp

index 0a3d69880d71778c900feebc18ef015ba1d5c88a..6873add1982e8351e9b2dad9ff7c05c37e3b82b3 100644 (file)
@@ -1014,11 +1014,12 @@ void Driver::BuildActions(const ToolChain &TC, const DerivedArgList &Args,
 
   // Construct the actions to perform.
   ActionList LinkerInputs;
+  unsigned NumSteps = 0;
   for (unsigned i = 0, e = Inputs.size(); i != e; ++i) {
     types::ID InputType = Inputs[i].first;
     const Arg *InputArg = Inputs[i].second;
 
-    unsigned NumSteps = types::getNumCompilationPhases(InputType);
+    NumSteps = types::getNumCompilationPhases(InputType);
     assert(NumSteps && "Invalid number of steps!");
 
     // If the first step comes after the final phase we are doing as part of
@@ -1086,7 +1087,7 @@ void Driver::BuildActions(const ToolChain &TC, const DerivedArgList &Args,
 
   // If we are linking, claim any options which are obviously only used for
   // compilation.
-  if (FinalPhase == phases::Link)
+  if (FinalPhase == phases::Link && (NumSteps == 1))
     Args.ClaimAllArgs(options::OPT_CompileOnly_Group);
 }