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:
parent
f5e9b047ed
commit
619427658f
|
@ -222,6 +222,8 @@ public:
|
|||
return DwarfFrameInfos;
|
||||
}
|
||||
|
||||
bool hasUnfinishedDwarfFrameInfo();
|
||||
|
||||
unsigned getNumWinFrameInfos() { return WinFrameInfos.size(); }
|
||||
ArrayRef<WinEH::FrameInfo *> getWinFrameInfos() const {
|
||||
return WinFrameInfos;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue