Add capability to push/pop DFI in MCStreamer. NFC

Summary: This is extracted from D17555

Reviewers: davidxl, reames, sanjoy, MatzeB, pete

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D17579

llvm-svn: 261796
This commit is contained in:
Amaury Sechet 2016-02-24 22:25:18 +00:00
parent f5e9b047ed
commit 619427658f
2 changed files with 8 additions and 2 deletions

View File

@ -222,6 +222,8 @@ public:
return DwarfFrameInfos;
}
bool hasUnfinishedDwarfFrameInfo();
unsigned getNumWinFrameInfos() { return WinFrameInfos.size(); }
ArrayRef<WinEH::FrameInfo *> getWinFrameInfos() const {
return WinFrameInfos;

View File

@ -174,6 +174,11 @@ MCDwarfFrameInfo *MCStreamer::getCurrentDwarfFrameInfo() {
return &DwarfFrameInfos.back();
}
bool MCStreamer::hasUnfinishedDwarfFrameInfo() {
MCDwarfFrameInfo *CurFrame = getCurrentDwarfFrameInfo();
return CurFrame && !CurFrame->End;
}
void MCStreamer::EnsureValidDwarfFrame() {
MCDwarfFrameInfo *CurFrame = getCurrentDwarfFrameInfo();
if (!CurFrame || CurFrame->End)
@ -238,8 +243,7 @@ void MCStreamer::EmitCFISections(bool EH, bool Debug) {
}
void MCStreamer::EmitCFIStartProc(bool IsSimple) {
MCDwarfFrameInfo *CurFrame = getCurrentDwarfFrameInfo();
if (CurFrame && !CurFrame->End)
if (hasUnfinishedDwarfFrameInfo())
report_fatal_error("Starting a frame before finishing the previous one!");
MCDwarfFrameInfo Frame;