forked from OSchip/llvm-project
If -ccc-host-triple i386-pc-win32-macho or -ccc-host-triple
x86_64-pc-win32-macho is used in conjunction with -no-integrated-as go ahead and use the Darwin system assembler. rdar://9785470 llvm-svn: 135604
This commit is contained in:
parent
2ea9f25f5f
commit
5371243dab
|
@ -1752,6 +1752,10 @@ Tool &Windows::SelectTool(const Compilation &C, const JobAction &JA,
|
|||
else
|
||||
Key = JA.getKind();
|
||||
|
||||
bool UseIntegratedAs = C.getArgs().hasFlag(options::OPT_integrated_as,
|
||||
options::OPT_no_integrated_as,
|
||||
IsIntegratedAssemblerDefault());
|
||||
|
||||
Tool *&T = Tools[Key];
|
||||
if (!T) {
|
||||
switch (Key) {
|
||||
|
@ -1766,7 +1770,11 @@ Tool &Windows::SelectTool(const Compilation &C, const JobAction &JA,
|
|||
case Action::CompileJobClass:
|
||||
T = new tools::Clang(*this); break;
|
||||
case Action::AssembleJobClass:
|
||||
T = new tools::ClangAs(*this); break;
|
||||
if (!UseIntegratedAs && getTriple().getEnvironment() == llvm::Triple::MachO)
|
||||
T = new tools::darwin::Assemble(*this);
|
||||
else
|
||||
T = new tools::ClangAs(*this);
|
||||
break;
|
||||
case Action::LinkJobClass:
|
||||
T = new tools::visualstudio::Link(*this); break;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
// Check that -no-integrated-as works when -ccc-host-triple i386-pc-win32-macho or
|
||||
// -ccc-host-triple x86_64-pc-win32-macho is specified.
|
||||
|
||||
// RUN: %clang -### -c -ccc-host-triple i386-pc-win32-macho -no-integrated-as %s 2> %t1
|
||||
// RUN: FileCheck -check-prefix=X86 < %t1 %s
|
||||
// RUN: %clang -### -c -ccc-host-triple x86_64-pc-win32-macho -no-integrated-as %s 2> %t2
|
||||
// RUN: FileCheck -check-prefix=X86_64 < %t2 %s
|
||||
//
|
||||
// X86: "-cc1"
|
||||
// X86-NOT: "-cc1as"
|
||||
// X86: "-arch"
|
||||
// X86: "i386"
|
||||
//
|
||||
// X86_64: "-cc1"
|
||||
// X86_64-NOT: "-cc1as"
|
||||
// X86_64: "-arch"
|
||||
// X86_64: "x86_64"
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue