diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp --- a/clang/lib/Driver/ToolChains/Gnu.cpp +++ b/clang/lib/Driver/ToolChains/Gnu.cpp @@ -2674,6 +2674,9 @@ bool Generic_GCC::IsUnwindTablesDefault(const ArgList &Args) const { switch (getArch()) { case llvm::Triple::aarch64: + case llvm::Triple::ppc: + case llvm::Triple::ppc64: + case llvm::Triple::ppc64le: case llvm::Triple::x86_64: return true; default: diff --git a/clang/test/Driver/ppc-features.cpp b/clang/test/Driver/ppc-features.cpp --- a/clang/test/Driver/ppc-features.cpp +++ b/clang/test/Driver/ppc-features.cpp @@ -1,6 +1,7 @@ /// Check default CC1 and linker options for ppc32. // RUN: %clang -### -target powerpc-unknown-linux-gnu %s 2>&1 | FileCheck --check-prefix=PPC32 %s -// PPC32: "-mfloat-abi" "hard" +// PPC32: "-munwind-tables" +// PPC32-SAME: "-mfloat-abi" "hard" // PPC32: "-m" "elf32ppclinux" @@ -40,7 +41,8 @@ /// Check default CC1 and linker options for ppc64. // RUN: %clang -### -target powerpc64le-unknown-linux-gnu %s 2>&1 | FileCheck --check-prefix=PPC64 %s // RUN: %clang -### -target powerpc64-unknown-linux-gnu %s 2>&1 | FileCheck -check-prefix=PPC64BE %s -// PPC64: "-mfloat-abi" "hard" +// PPC64: "-munwind-tables" +// PPC64-SAME: "-mfloat-abi" "hard" // PPC64: "-m" "elf64lppc" // PPC64BE: "-m" "elf64ppc"