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.

llvm-svn: 195676
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index d9ad587..09afc1e 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -1612,6 +1612,11 @@
   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/clang/lib/Driver/ToolChains.h b/clang/lib/Driver/ToolChains.h
index ed5c1ac..cf7be54 100644
--- a/clang/lib/Driver/ToolChains.h
+++ b/clang/lib/Driver/ToolChains.h
@@ -164,6 +164,7 @@
   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 @@
       : 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/clang/test/Driver/bindings.c b/clang/test/Driver/bindings.c
index 174a265..dd8ad14 100644
--- a/clang/test/Driver/bindings.c
+++ b/clang/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/clang/test/Driver/unknown-gcc-arch.c b/clang/test/Driver/unknown-gcc-arch.c
index b03944c..184443b 100644
--- a/clang/test/Driver/unknown-gcc-arch.c
+++ b/clang/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}}