From: Eli Friedman Date: Wed, 31 Oct 2018 21:39:41 +0000 (+0000) Subject: [AArch64] [Windows] Emit unwind tables by default. X-Git-Tag: llvmorg-8.0.0-rc1~5305 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e5f13519d4a6e196d5b714b6233b9fc875cbee9b;p=platform%2Fupstream%2Fllvm.git [AArch64] [Windows] Emit unwind tables by default. Unwind tables are necessary even in code that doesn't support exceptions. The tables are used for setjmp(), and by debuggers. Differential Revision: https://reviews.llvm.org/D53618 llvm-svn: 345781 --- diff --git a/clang/lib/Driver/ToolChains/MSVC.cpp b/clang/lib/Driver/ToolChains/MSVC.cpp index f60f39563fd5..839f31362309 100644 --- a/clang/lib/Driver/ToolChains/MSVC.cpp +++ b/clang/lib/Driver/ToolChains/MSVC.cpp @@ -722,15 +722,15 @@ bool MSVCToolChain::IsIntegratedAssemblerDefault() const { } bool MSVCToolChain::IsUnwindTablesDefault(const ArgList &Args) const { - // Emit unwind tables by default on Win64. All non-x86_32 Windows platforms - // such as ARM and PPC actually require unwind tables, but LLVM doesn't know - // how to generate them yet. - // Don't emit unwind tables by default for MachO targets. if (getTriple().isOSBinFormatMachO()) return false; - return getArch() == llvm::Triple::x86_64; + // All non-x86_32 Windows targets require unwind tables. However, LLVM + // doesn't know how to generate them for all targets, so only enable + // the ones that are actually implemented. + return getArch() == llvm::Triple::x86_64 || + getArch() == llvm::Triple::aarch64; } bool MSVCToolChain::isPICDefault() const {