diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2014-04-11 20:31:24 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2014-04-11 20:31:24 +0000 |
commit | 7c40da7688e76d1e653c3d175c641e88876266e3 (patch) | |
tree | e67d59faae99730545855f67058d4f3c8fd2ac16 | |
parent | 1b4f99d67ee79a9afe2ac1007ffa047138e729a0 (diff) | |
download | llvm-7c40da7688e76d1e653c3d175c641e88876266e3.zip llvm-7c40da7688e76d1e653c3d175c641e88876266e3.tar.gz llvm-7c40da7688e76d1e653c3d175c641e88876266e3.tar.bz2 |
Merging r196981:
------------------------------------------------------------------------
r196981 | fang | 2013-12-10 17:51:25 -0500 (Tue, 10 Dec 2013) | 2 lines
darwin asm driver: suppress -Q for -no-integrated-as on darwin<11
------------------------------------------------------------------------
llvm-svn: 206067
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 10 | ||||
-rw-r--r-- | clang/test/Driver/darwin-as.c | 10 |
2 files changed, 16 insertions, 4 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 5093ae1..b013eb5 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -4604,8 +4604,14 @@ void darwin::Assemble::ConstructJob(Compilation &C, const JobAction &JA, // If -no_integrated_as is used add -Q to the darwin assember driver to make // sure it runs its system assembler not clang's integrated assembler. - if (Args.hasArg(options::OPT_no_integrated_as)) - CmdArgs.push_back("-Q"); + // Applicable to darwin11+ and Xcode 4+. darwin<10 lacked integrated-as. + // FIXME: at run-time detect assembler capabilities or rely on version + // information forwarded by -target-assembler-version (future) + if (Args.hasArg(options::OPT_no_integrated_as)) { + const llvm::Triple& t(getToolChain().getTriple()); + if (!(t.isMacOSX() && t.isMacOSXVersionLT(10, 7))) + CmdArgs.push_back("-Q"); + } // Forward -g, assuming we are dealing with an actual assembly file. if (SourceAction->getType() == types::TY_Asm || diff --git a/clang/test/Driver/darwin-as.c b/clang/test/Driver/darwin-as.c index 58c850e..e35391e 100644 --- a/clang/test/Driver/darwin-as.c +++ b/clang/test/Driver/darwin-as.c @@ -1,16 +1,22 @@ // RUN: %clang -target i386-apple-darwin10 -### -x assembler -c %s \ // RUN: -no-integrated-as -static -dynamic 2>%t +// RUN: FileCheck -check-prefix=CHECK-STATIC_AND_DYNAMIC-32-DARWIN10 --input-file %t %s +// +// CHECK-STATIC_AND_DYNAMIC-32-DARWIN10: as{{(.exe)?}}" "-arch" "i386" "-force_cpusubtype_ALL" "-static" "-o" + +// RUN: %clang -target i386-apple-darwin11 -### -x assembler -c %s \ +// RUN: -no-integrated-as -static -dynamic 2>%t // RUN: FileCheck -check-prefix=CHECK-STATIC_AND_DYNAMIC-32 --input-file %t %s // // CHECK-STATIC_AND_DYNAMIC-32: as{{(.exe)?}}" "-Q" "-arch" "i386" "-force_cpusubtype_ALL" "-static" "-o" -// RUN: %clang -target x86_64-apple-darwin10 -### -x assembler -c %s \ +// RUN: %clang -target x86_64-apple-darwin11 -### -x assembler -c %s \ // RUN: -no-integrated-as -static 2>%t // RUN: FileCheck -check-prefix=CHECK-STATIC-64 --input-file %t %s // // CHECK-STATIC-64: as{{(.exe)?}}" "-Q" "-arch" "x86_64" "-force_cpusubtype_ALL" "-o" -// RUN: %clang -target x86_64-apple-darwin10 -### \ +// RUN: %clang -target x86_64-apple-darwin11 -### \ // RUN: -arch armv6 -no-integrated-as -x assembler -c %s 2>%t // RUN: FileCheck -check-prefix=CHECK-ARMV6 --input-file %t %s // |