This makes EmitWindowsUnwindTables a virtual function and lowers the
implementation of the function to the X86WinCOFFStreamer. This method is a
target specific operation. This enables making the behaviour target dependent
by isolating it entirely to the target specific streamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214664
91177308-0d34-0410-b5e6-
96231b3b80d8
return CurrentWinFrameInfo;
}
- void EmitWindowsUnwindTables();
+ virtual void EmitWindowsUnwindTables();
virtual void EmitRawTextImpl(StringRef String);
}
void MCStreamer::EmitWindowsUnwindTables() {
- if (!getNumWinFrameInfos())
- return;
-
- MCWin64EHUnwindEmitter::Emit(*this);
}
void MCStreamer::Finish() {
: MCWinCOFFStreamer(C, AB, *CE, OS) { }
void EmitWinEHHandlerData() override;
+ void EmitWindowsUnwindTables() override;
void FinishImpl() override;
};
MCWin64EHUnwindEmitter::EmitUnwindInfo(*this, getCurrentWinFrameInfo());
}
+void X86WinCOFFStreamer::EmitWindowsUnwindTables() {
+ if (!getNumWinFrameInfos())
+ return;
+ MCWin64EHUnwindEmitter::Emit(*this);
+}
+
void X86WinCOFFStreamer::FinishImpl() {
EmitFrames(nullptr);
EmitWindowsUnwindTables();