aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Driver/Driver.cpp3
-rw-r--r--lib/Driver/Tools.cpp7
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index c330707d34..8a7f2463eb 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -328,6 +328,7 @@ void Driver::BuildUniversalActions(const ArgList &Args,
// FIXME: We need to handle canonicalization of the specified
// arch?
+ A->claim();
if (ArchNames.insert(Name))
Archs.push_back(Name);
}
@@ -374,7 +375,7 @@ void Driver::BuildUniversalActions(const ArgList &Args,
<< types::getTypeName(Act->getType());
ActionList Inputs;
- for (unsigned i = 0, e = Archs.size(); i != e; ++i )
+ for (unsigned i = 0, e = Archs.size(); i != e; ++i)
Inputs.push_back(new BindArchAction(Act, Archs[i]));
// Lipo if necessary, We do it this way because we need to set the
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 5cba626195..7000590654 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -354,8 +354,13 @@ void gcc::Common::ConstructJob(Compilation &C, const JobAction &JA,
for (ArgList::const_iterator
it = Args.begin(), ie = Args.end(); it != ie; ++it) {
Arg *A = *it;
- if (A->getOption().hasForwardToGCC())
+ if (A->getOption().hasForwardToGCC()) {
+ // It is unfortunate that we have to claim here, as this means
+ // we will basically never report anything interesting for
+ // platforms using a generic gcc.
+ A->claim();
A->render(Args, CmdArgs);
+ }
}
RenderExtraToolArgs(CmdArgs);