diff options
-rw-r--r-- | lib/MC/MCDwarf.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp index 18982e9..7640a63 100644 --- a/lib/MC/MCDwarf.cpp +++ b/lib/MC/MCDwarf.cpp @@ -1480,20 +1480,16 @@ void MCDwarfFrameEmitter::Emit(MCStreamer &Streamer, // Emit the compact unwind info if available. if (IsEH && MOFI->getCompactUnwindSection()) { - unsigned NumFrameInfos = Streamer.getNumFrameInfos(); bool SectionEmitted = false; - - if (NumFrameInfos) { - for (unsigned i = 0; i < NumFrameInfos; ++i) { - const MCDwarfFrameInfo &Frame = Streamer.getFrameInfo(i); - if (Frame.CompactUnwindEncoding == 0) continue; - if (!SectionEmitted) { - Streamer.SwitchSection(MOFI->getCompactUnwindSection()); - Streamer.EmitValueToAlignment(Context.getAsmInfo().getPointerSize()); - SectionEmitted = true; - } - Emitter.EmitCompactUnwind(Streamer, Frame); + for (unsigned i = 0, n = FrameArray.size(); i < n; ++i) { + const MCDwarfFrameInfo &Frame = FrameArray[i]; + if (Frame.CompactUnwindEncoding == 0) continue; + if (!SectionEmitted) { + Streamer.SwitchSection(MOFI->getCompactUnwindSection()); + Streamer.EmitValueToAlignment(Context.getAsmInfo().getPointerSize()); + SectionEmitted = true; } + Emitter.EmitCompactUnwind(Streamer, Frame); } } |