diff options
author | Kevin Enderby <enderby@apple.com> | 2013-11-18 23:30:29 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2013-11-18 23:30:29 +0000 |
commit | 319baa4ed4c9910fa785b4eb71fbcdc06f0bf920 (patch) | |
tree | d902aaf818008277041f908aa5d30d73fb2ec048 | |
parent | 8b2ad2a962b13e8012a4cac38ba4bb9a94f6b5f9 (diff) | |
download | llvm-319baa4ed4c9910fa785b4eb71fbcdc06f0bf920.tar.gz |
Change the clang driver with the use of -no-integrated-as for darwin to use
the -Q flag to the as(1) assembler driver.
We will soon be switching the darwin as(1) assembler driver to call clang(1)
and use the intergated assembler by default. To do this and still support
clang(1)'s -no-integrated-as flag, when clang(1) runs the as(1) assembler
driver and -no-integrated-as is used it needs to pass the -Q flag to as(1)
so it uses its GNU based assembler, and not turn around and call clag(1)'s
integrated assembler.
rdar://15495921
llvm-svn: 195054
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 5 | ||||
-rw-r--r-- | clang/test/Driver/darwin-as.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 4293a79b69bd..ad03e2ec11c2 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -4604,6 +4604,11 @@ void darwin::Assemble::ConstructJob(Compilation &C, const JobAction &JA, SourceAction = SourceAction->getInputs()[0]; } + // 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"); + // Forward -g, assuming we are dealing with an actual assembly file. if (SourceAction->getType() == types::TY_Asm || SourceAction->getType() == types::TY_PP_Asm) { diff --git a/clang/test/Driver/darwin-as.c b/clang/test/Driver/darwin-as.c index 8b13d77d0149..58c850eb9b45 100644 --- a/clang/test/Driver/darwin-as.c +++ b/clang/test/Driver/darwin-as.c @@ -2,16 +2,16 @@ // 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)?}}" "-arch" "i386" "-force_cpusubtype_ALL" "-static" "-o" +// 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: -no-integrated-as -static 2>%t // RUN: FileCheck -check-prefix=CHECK-STATIC-64 --input-file %t %s // -// CHECK-STATIC-64: as{{(.exe)?}}" "-arch" "x86_64" "-force_cpusubtype_ALL" "-o" +// CHECK-STATIC-64: as{{(.exe)?}}" "-Q" "-arch" "x86_64" "-force_cpusubtype_ALL" "-o" // RUN: %clang -target x86_64-apple-darwin10 -### \ // RUN: -arch armv6 -no-integrated-as -x assembler -c %s 2>%t // RUN: FileCheck -check-prefix=CHECK-ARMV6 --input-file %t %s // -// CHECK-ARMV6: as{{(.exe)?}}" "-arch" "armv6" "-o" +// CHECK-ARMV6: as{{(.exe)?}}" "-Q" "-arch" "armv6" "-o" |