From: Kevin Enderby Date: Mon, 18 Nov 2013 23:30:29 +0000 (+0000) Subject: Change the clang driver with the use of -no-integrated-as for darwin to use X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6efcf6f97a97242a9ca6583375457048277d9018;p=clang 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195054 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 4293a79b69..ad03e2ec11 100644 --- a/lib/Driver/Tools.cpp +++ b/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/test/Driver/darwin-as.c b/test/Driver/darwin-as.c index 8b13d77d01..58c850eb9b 100644 --- a/test/Driver/darwin-as.c +++ b/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"