diff --git a/llvm/lib/MC/MCDwarf.cpp b/llvm/lib/MC/MCDwarf.cpp --- a/llvm/lib/MC/MCDwarf.cpp +++ b/llvm/lib/MC/MCDwarf.cpp @@ -1860,7 +1860,7 @@ // 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 --- /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