From 28edf3349bd1d595270c17ec73e49999175f1212 Mon Sep 17 00:00:00 2001 From: Shubham Sandeep Rastogi Date: Thu, 8 Dec 2022 10:55:52 -0800 Subject: [PATCH] Emit unwind information in the .debug_frame section when the .cfi_sections .debug_frame directive is used. Differential Revision: https://reviews.llvm.org/D139663 --- llvm/lib/MC/MCDwarf.cpp | 2 +- llvm/test/DebugInfo/debugframeinfo.s | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 llvm/test/DebugInfo/debugframeinfo.s diff --git a/llvm/lib/MC/MCDwarf.cpp b/llvm/lib/MC/MCDwarf.cpp index a3ecebb..7d7e790 100644 --- a/llvm/lib/MC/MCDwarf.cpp +++ b/llvm/lib/MC/MCDwarf.cpp @@ -1860,7 +1860,7 @@ void MCDwarfFrameEmitter::Emit(MCObjectStreamer &Streamer, MCAsmBackend *MAB, // Emit the compact unwind info if available. bool NeedsEHFrameSection = !MOFI->getSupportsCompactUnwindWithoutEHFrame(); - if (IsEH && MOFI->getCompactUnwindSection()) { + if (MOFI->getCompactUnwindSection()) { Streamer.generateCompactUnwindEncodings(MAB); bool SectionEmitted = false; for (const MCDwarfFrameInfo &Frame : FrameArray) { diff --git a/llvm/test/DebugInfo/debugframeinfo.s b/llvm/test/DebugInfo/debugframeinfo.s new file mode 100644 index 0000000..9c39a30 --- /dev/null +++ b/llvm/test/DebugInfo/debugframeinfo.s @@ -0,0 +1,14 @@ +# RUN: llvm-mc -filetype=obj -triple=arm64-apple-darwin22.1.0 %s -o %t.o +# RUN: llvm-dwarfdump -debug-frame %t.o | FileCheck %s + +# CHECK: .debug_frame contents: +# CHECK-EMPTY: +# CHECK-NEXT: 00000000 00000014 ffffffff CIE +# CHECK: .eh_frame contents: +# CHECK-EMPTY: + + .cfi_startproc + .cfi_signal_frame + .cfi_def_cfa x28, 0x340 + .cfi_endproc + .cfi_sections .debug_frame -- 2.7.4