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;
|
return DwarfFrameInfos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool hasUnfinishedDwarfFrameInfo();
|
||||||
|
|
||||||
unsigned getNumWinFrameInfos() { return WinFrameInfos.size(); }
|
unsigned getNumWinFrameInfos() { return WinFrameInfos.size(); }
|
||||||
ArrayRef<WinEH::FrameInfo *> getWinFrameInfos() const {
|
ArrayRef<WinEH::FrameInfo *> getWinFrameInfos() const {
|
||||||
return WinFrameInfos;
|
return WinFrameInfos;
|
||||||
|
|
|
@ -174,6 +174,11 @@ MCDwarfFrameInfo *MCStreamer::getCurrentDwarfFrameInfo() {
|
||||||
return &DwarfFrameInfos.back();
|
return &DwarfFrameInfos.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool MCStreamer::hasUnfinishedDwarfFrameInfo() {
|
||||||
|
MCDwarfFrameInfo *CurFrame = getCurrentDwarfFrameInfo();
|
||||||
|
return CurFrame && !CurFrame->End;
|
||||||
|
}
|
||||||
|
|
||||||
void MCStreamer::EnsureValidDwarfFrame() {
|
void MCStreamer::EnsureValidDwarfFrame() {
|
||||||
MCDwarfFrameInfo *CurFrame = getCurrentDwarfFrameInfo();
|
MCDwarfFrameInfo *CurFrame = getCurrentDwarfFrameInfo();
|
||||||
if (!CurFrame || CurFrame->End)
|
if (!CurFrame || CurFrame->End)
|
||||||
|
@ -238,8 +243,7 @@ void MCStreamer::EmitCFISections(bool EH, bool Debug) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MCStreamer::EmitCFIStartProc(bool IsSimple) {
|
void MCStreamer::EmitCFIStartProc(bool IsSimple) {
|
||||||
MCDwarfFrameInfo *CurFrame = getCurrentDwarfFrameInfo();
|
if (hasUnfinishedDwarfFrameInfo())
|
||||||
if (CurFrame && !CurFrame->End)
|
|
||||||
report_fatal_error("Starting a frame before finishing the previous one!");
|
report_fatal_error("Starting a frame before finishing the previous one!");
|
||||||
|
|
||||||
MCDwarfFrameInfo Frame;
|
MCDwarfFrameInfo Frame;
|
||||||
|
|
Loading…
Reference in New Issue