diff options
-rw-r--r-- | include/llvm/MC/MCWin64EH.h | 6 | ||||
-rw-r--r-- | lib/MC/MCStreamer.cpp | 6 |
2 files changed, 7 insertions, 5 deletions
diff --git a/include/llvm/MC/MCWin64EH.h b/include/llvm/MC/MCWin64EH.h index cc3bc6e1a6..de1e24767a 100644 --- a/include/llvm/MC/MCWin64EH.h +++ b/include/llvm/MC/MCWin64EH.h @@ -59,15 +59,15 @@ namespace llvm { struct MCWin64EHUnwindInfo { MCWin64EHUnwindInfo() : Begin(0), End(0), ExceptionHandler(0), - Function(0), UnwindOnly(false), - PrologSize(0), LastFrameInst(-1), ChainedParent(0), + Function(0), PrologEnd(0), UnwindOnly(false), + LastFrameInst(-1), ChainedParent(0), Instructions() {} MCSymbol *Begin; MCSymbol *End; const MCSymbol *ExceptionHandler; const MCSymbol *Function; + MCSymbol *PrologEnd; bool UnwindOnly; - unsigned PrologSize; int LastFrameInst; MCWin64EHUnwindInfo *ChainedParent; std::vector<MCWin64EHInstruction> Instructions; diff --git a/lib/MC/MCStreamer.cpp b/lib/MC/MCStreamer.cpp index fcc338991f..9c004e277b 100644 --- a/lib/MC/MCStreamer.cpp +++ b/lib/MC/MCStreamer.cpp @@ -425,8 +425,10 @@ void MCStreamer::EmitWin64EHPushFrame(bool Code) { } void MCStreamer::EmitWin64EHEndProlog() { - errs() << "Not implemented yet\n"; - abort(); + EnsureValidW64UnwindInfo(); + MCWin64EHUnwindInfo *CurFrame = CurrentW64UnwindInfo; + CurFrame->PrologEnd = getContext().CreateTempSymbol(); + EmitLabel(CurFrame->PrologEnd); } void MCStreamer::EmitFnStart() { |