From 8202fb8ee3c86797f737413de6030a88c8e0781c Mon Sep 17 00:00:00 2001 From: Chad Rosier Date: Fri, 27 Apr 2012 19:51:11 +0000 Subject: [PATCH] [driver] Don't try to set the deployment target when there is no bound architecture; this was happening for tools such as lipo and dsymutil. Also, if no -arch option has been specified, set the architecture based on the TC default. rdar://11329656 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155730 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Driver/Driver.cpp | 5 ++--- lib/Driver/ToolChains.cpp | 3 ++- test/Driver/altivec.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp index 7874a48cde..44521a1a59 100644 --- a/lib/Driver/Driver.cpp +++ b/lib/Driver/Driver.cpp @@ -763,8 +763,7 @@ static unsigned PrintActions1(const Compilation &C, Action *A, if (InputAction *IA = dyn_cast(A)) { os << "\"" << IA->getInputArg().getValue(C.getArgs()) << "\""; } else if (BindArchAction *BIA = dyn_cast(A)) { - os << '"' << (BIA->getArchName() ? BIA->getArchName() : - C.getDefaultToolChain().getArchName()) << '"' + os << '"' << BIA->getArchName() << '"' << ", {" << PrintActions1(C, *BIA->begin(), Ids) << "}"; } else { os << "{"; @@ -838,7 +837,7 @@ void Driver::BuildUniversalActions(const ToolChain &TC, // When there is no explicit arch for this platform, make sure we still bind // the architecture (to the default) so that -Xarch_ is handled correctly. if (!Archs.size()) - Archs.push_back(0); + Archs.push_back(Args.MakeArgString(TC.getArchName())); // FIXME: We killed off some others but these aren't yet detected in a // functional manner. If we added information to jobs about which "auxiliary" diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index b56add3971..c883e446dd 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -956,7 +956,8 @@ DerivedArgList *Darwin::TranslateArgs(const DerivedArgList &Args, // Add an explicit version min argument for the deployment target. We do this // after argument translation because -Xarch_ arguments may add a version min // argument. - AddDeploymentTarget(*DAL); + if (BoundArch) + AddDeploymentTarget(*DAL); // Validate the C++ standard library choice. CXXStdlibType Type = GetCXXStdlibType(*DAL); diff --git a/test/Driver/altivec.cpp b/test/Driver/altivec.cpp index 6059ad09e7..4c0b3e4e31 100644 --- a/test/Driver/altivec.cpp +++ b/test/Driver/altivec.cpp @@ -1,6 +1,6 @@ // Check that we error when -faltivec is specified on non-ppc platforms. -// RUN: %clang -ccc-clang-archs powerpc -target powerpc-apple-darwin -faltivec -fsyntax-only %s +// RUN: %clang -ccc-clang-archs powerpc -target powerpc-unk-unk -faltivec -fsyntax-only %s // RUN: %clang -ccc-clang-archs powerpc64 -target powerpc64-linux-gnu -faltivec -fsyntax-only %s // RUN: %clang -target i386-pc-win32 -faltivec -fsyntax-only %s 2>&1 | FileCheck %s -- 2.40.0