summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Driver/ToolChains.cpp3
-rw-r--r--clang/lib/Driver/ToolChains.h27
-rw-r--r--clang/test/Driver/freebsd.c4
-rw-r--r--clang/test/Driver/unknown-gcc-arch.c4
4 files changed, 31 insertions, 7 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index 4d97ab3bf48..99f4c9dfea7 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -2067,11 +2067,8 @@ bool Generic_GCC::IsIntegratedAssemblerDefault() const {
getTriple().getArch() == llvm::Triple::armeb ||
getTriple().getArch() == llvm::Triple::thumb ||
getTriple().getArch() == llvm::Triple::thumbeb ||
- getTriple().getArch() == llvm::Triple::ppc ||
getTriple().getArch() == llvm::Triple::ppc64 ||
getTriple().getArch() == llvm::Triple::ppc64le ||
- getTriple().getArch() == llvm::Triple::sparc ||
- getTriple().getArch() == llvm::Triple::sparcv9 ||
getTriple().getArch() == llvm::Triple::systemz;
}
diff --git a/clang/lib/Driver/ToolChains.h b/clang/lib/Driver/ToolChains.h
index c9658c43a8b..876bb01f33a 100644
--- a/clang/lib/Driver/ToolChains.h
+++ b/clang/lib/Driver/ToolChains.h
@@ -534,6 +534,17 @@ public:
return 2;
}
+ virtual bool IsIntegratedAssemblerDefault() const override {
+ switch (getTriple().getArch()) {
+ case llvm::Triple::ppc:
+ case llvm::Triple::sparc:
+ case llvm::Triple::sparcv9:
+ return true;
+ default:
+ return Generic_ELF::IsIntegratedAssemblerDefault();
+ }
+ }
+
protected:
Tool *buildAssembler() const override;
Tool *buildLinker() const override;
@@ -575,6 +586,14 @@ public:
void
AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,
llvm::opt::ArgStringList &CC1Args) const override;
+ bool IsIntegratedAssemblerDefault() const override {
+ switch (getTriple().getArch()) {
+ case llvm::Triple::ppc:
+ return true;
+ default:
+ return Generic_ELF::IsIntegratedAssemblerDefault();
+ }
+ }
bool UseSjLjExceptions() const override;
bool isPIEDefault() const override;
@@ -599,6 +618,14 @@ public:
bool IsUnwindTablesDefault() const override {
return true;
}
+ bool IsIntegratedAssemblerDefault() const override {
+ switch (getTriple().getArch()) {
+ case llvm::Triple::ppc:
+ return true;
+ default:
+ return Generic_ELF::IsIntegratedAssemblerDefault();
+ }
+ }
protected:
Tool *buildAssembler() const override;
diff --git a/clang/test/Driver/freebsd.c b/clang/test/Driver/freebsd.c
index a7448c11bfe..0c04fd2309c 100644
--- a/clang/test/Driver/freebsd.c
+++ b/clang/test/Driver/freebsd.c
@@ -128,11 +128,11 @@
// RUN: | FileCheck --check-prefix=CHECK-LTO %s
// CHECK-LTO: ld{{.*}}" "-plugin{{.*}}LLVMgold.so
-// RUN: %clang -target sparc-unknown-freebsd8 %s -### -fpic -no-integrated-as 2>&1 \
+// RUN: %clang -target sparc-unknown-freebsd8 %s -### -fpic 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-SPARC-PIE %s
// CHECK-SPARC-PIE: as{{.*}}" "-KPIC
-// RUN: %clang -mcpu=ultrasparc -target sparc64-unknown-freebsd8 %s -### -no-integrated-as 2>&1 \
+// RUN: %clang -mcpu=ultrasparc -target sparc64-unknown-freebsd8 %s -### 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-SPARC-CPU %s
// CHECK-SPARC-CPU: cc1{{.*}}" "-target-cpu" "ultrasparc"
// CHECK-SPARC-CPU: as{{.*}}" "-Av9a
diff --git a/clang/test/Driver/unknown-gcc-arch.c b/clang/test/Driver/unknown-gcc-arch.c
index 2aba50d5320..9e687b76a44 100644
--- a/clang/test/Driver/unknown-gcc-arch.c
+++ b/clang/test/Driver/unknown-gcc-arch.c
@@ -24,11 +24,11 @@
// RUN: %clang -target powerpc64-unknown-unknown -c -x assembler %s -### -m32 \
-// RUN: -no-integrated-as 2>&1 | FileCheck -check-prefix=PPC64-M32 %s
+// RUN: 2>&1 | FileCheck -check-prefix=PPC64-M32 %s
// PPC64-M32: {{.*as.*-a32}}
// RUN: %clang -target powerpc-unknown-unknown -c -x assembler %s -### 2>&1 \
-// RUN: -no-integrated-as | FileCheck -check-prefix=PPC %s
+// RUN: | FileCheck -check-prefix=PPC %s
// PPC: {{.*as.*-a32}}
// RUN: %clang -target sparc64-unknown-unknown -no-integrated-as -c -x assembler %s -### -m32 2>&1 \
OpenPOWER on IntegriCloud