summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Driver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r--clang/lib/Driver/Driver.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 61e8fbb2c81..8034e472ce5 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -2256,7 +2256,21 @@ InputInfo Driver::BuildJobsForActionNoCache(
TC->getTriple().normalize()),
BaseInput);
+ llvm::Triple EffectiveTriple;
+ const ArgList &Args = C.getArgsForToolChain(TC, BoundArch);
+ if (InputInfos.size() != 1) {
+ EffectiveTriple = llvm::Triple(
+ T->getToolChain().ComputeEffectiveClangTriple(Args));
+ } else {
+ // Pass along the input type if it can be unambiguously determined.
+ EffectiveTriple =
+ llvm::Triple(T->getToolChain().ComputeEffectiveClangTriple(
+ Args, InputInfos[0].getType()));
+ }
+
if (CCCPrintBindings && !CCGenDiagnostics) {
+ // FIXME: We should be able to use the effective triple here, but doing so
+ // breaks some multi-arch tests.
llvm::errs() << "# \"" << T->getToolChain().getTripleString() << '"'
<< " - \"" << T->getName() << "\", inputs: [";
for (unsigned i = 0, e = InputInfos.size(); i != e; ++i) {
@@ -2266,7 +2280,7 @@ InputInfo Driver::BuildJobsForActionNoCache(
}
llvm::errs() << "], output: " << Result.getAsString() << "\n";
} else {
- T->ConstructJob(C, *JA, Result, InputInfos,
+ T->ConstructJob(C, *JA, Result, InputInfos, EffectiveTriple,
C.getArgsForToolChain(TC, BoundArch), LinkingOutput);
}
return Result;
OpenPOWER on IntegriCloud