From: Rafael Espindola Date: Mon, 25 Nov 2013 18:50:53 +0000 (+0000) Subject: Make the integrated assembler the default for cygwin/mingw too. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d677fd5da796d80d2346d04141fe45ec4a5850a5;p=clang Make the integrated assembler the default for cygwin/mingw too. The integrated assembler was already the default for win32. It is now able to handle a clang bootstrap on mingw, so make it the default. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195676 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index d9ad587a0f..09afc1e02e 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -1612,6 +1612,11 @@ bool Generic_GCC::isPICDefaultForced() const { return false; } +bool Generic_GCC::IsIntegratedAssemblerDefault() const { + return getTriple().getArch() == llvm::Triple::x86 || + getTriple().getArch() == llvm::Triple::x86_64; +} + /// Hexagon Toolchain std::string Hexagon_TC::GetGnuDir(const std::string &InstalledDir) { diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index ed5c1ac202..cf7be5436d 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h @@ -164,6 +164,7 @@ public: virtual bool isPICDefault() const; virtual bool isPIEDefault() const; virtual bool isPICDefaultForced() const; + virtual bool IsIntegratedAssemblerDefault() const; protected: virtual Tool *getTool(Action::ActionClass AC) const; @@ -414,10 +415,9 @@ public: : Generic_GCC(D, Triple, Args) {} virtual bool IsIntegratedAssemblerDefault() const { - // Default integrated assembler to on for x86. - return (getTriple().getArch() == llvm::Triple::aarch64 || - getTriple().getArch() == llvm::Triple::x86 || - getTriple().getArch() == llvm::Triple::x86_64); + if (getTriple().getArch() == llvm::Triple::aarch64) + return true; + return Generic_GCC::IsIntegratedAssemblerDefault(); } }; diff --git a/test/Driver/bindings.c b/test/Driver/bindings.c index 174a2650e5..dd8ad14f67 100644 --- a/test/Driver/bindings.c +++ b/test/Driver/bindings.c @@ -1,5 +1,5 @@ // Basic binding. -// RUN: %clang -target i386-unknown-unknown -ccc-print-bindings %s 2>&1 | FileCheck %s --check-prefix=CHECK01 +// RUN: %clang -target i386-unknown-unknown -ccc-print-bindings -no-integrated-as %s 2>&1 | FileCheck %s --check-prefix=CHECK01 // CHECK01: "clang", inputs: ["{{.*}}bindings.c"], output: "{{.*}}.s" // CHECK01: "GNU::Assemble", inputs: ["{{.*}}.s"], output: "{{.*}}.o" // CHECK01: "gcc::Link", inputs: ["{{.*}}.o"], output: "a.out" diff --git a/test/Driver/unknown-gcc-arch.c b/test/Driver/unknown-gcc-arch.c index b03944c6a7..184443b08c 100644 --- a/test/Driver/unknown-gcc-arch.c +++ b/test/Driver/unknown-gcc-arch.c @@ -1,17 +1,17 @@ -// RUN: %clang -target x86_64-unknown-unknown -c -x assembler %s -### 2>&1 \ -// RUN: | FileCheck -check-prefix=X86_64 %s +// RUN: %clang -target x86_64-unknown-unknown -no-integrated-as -c \ +// RUN: -x assembler %s -### 2>&1 | FileCheck -check-prefix=X86_64 %s // X86_64: {{.*as.*--64}} -// RUN: %clang -target x86_64-unknown-unknown -c -x assembler %s -### -m32 2>&1 \ -// RUN: | FileCheck -check-prefix=X86_64-M32 %s +// RUN: %clang -target x86_64-unknown-unknown -c -x assembler %s -### -m32 \ +// RUN -no-integrated-as 2>&1 | FileCheck -check-prefix=X86_64-M32 %s // X86_64-M32: {{.*as.*--32}} -// RUN: %clang -target i386-unknown-unknown -c -x assembler %s -### 2>&1 \ -// RUN: | FileCheck -check-prefix=I386 %s +// RUN: %clang -target i386-unknown-unknown -c -x assembler %s -### \ +// RUN: -no-integrated-as 2>&1| FileCheck -check-prefix=I386 %s // I386: {{.*as.*--32}} -// RUN: %clang -target i386-unknown-unknown -c -x assembler %s -### -m64 2>&1 \ -// RUN: | FileCheck -check-prefix=I386-M64 %s +// RUN: %clang -target i386-unknown-unknown -c -x assembler %s -### -m64 \ +// RUN: -no-integrated-as 2>&1 | FileCheck -check-prefix=I386-M64 %s // I386-M64: {{.*as.*--64}}