diff options
author | Charles Davis <cdavis@mines.edu> | 2011-05-22 03:01:05 +0000 |
---|---|---|
committer | Charles Davis <cdavis@mines.edu> | 2011-05-22 03:01:05 +0000 |
commit | 3185f5c35322cbd10040ab20f265042d477efe62 (patch) | |
tree | 1afb0375f0b901c7b3ae2c296cf13e1c35686401 /include | |
parent | c7e38e8f3fe8a291e3c3714e21a51f2ef53f8aed (diff) | |
download | llvm-3185f5c35322cbd10040ab20f265042d477efe62.tar.gz llvm-3185f5c35322cbd10040ab20f265042d477efe62.tar.bz2 llvm-3185f5c35322cbd10040ab20f265042d477efe62.tar.xz |
Make the COFF streamer emit unwind info when processing a .seh_handlerdata
directive.
Implement emission of Win64 EH unwind info.
Pull in <cassert> in MCWin64EH.h so it can use the assert() macro.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131832 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/MC/MCStreamer.h | 2 | ||||
-rw-r--r-- | include/llvm/MC/MCWin64EH.h | 10 |
2 files changed, 8 insertions, 4 deletions
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h index 55f25e44a0..bfcb4609ae 100644 --- a/include/llvm/MC/MCStreamer.h +++ b/include/llvm/MC/MCStreamer.h @@ -80,6 +80,8 @@ namespace llvm { void EmitFrames(bool usingCFI); + MCWin64EHUnwindInfo *getCurrentW64UnwindInfo(){return CurrentW64UnwindInfo;} + public: virtual ~MCStreamer(); diff --git a/include/llvm/MC/MCWin64EH.h b/include/llvm/MC/MCWin64EH.h index a88b5040b8..39f3046546 100644 --- a/include/llvm/MC/MCWin64EH.h +++ b/include/llvm/MC/MCWin64EH.h @@ -16,6 +16,7 @@ #define LLVM_MC_MCWIN64EH_H #include "llvm/Support/Win64EH.h" +#include <cassert> #include <vector> namespace llvm { @@ -59,20 +60,21 @@ namespace llvm { struct MCWin64EHUnwindInfo { MCWin64EHUnwindInfo() : Begin(0), End(0), ExceptionHandler(0), - Function(0), PrologEnd(0), HandlesUnwind(false), - HandlesExceptions(false), LastFrameInst(-1), - ChainedParent(0), Instructions(), Emitted(false) {} + Function(0), PrologEnd(0), Symbol(0), + HandlesUnwind(false), HandlesExceptions(false), + LastFrameInst(-1), ChainedParent(0), + Instructions() {} MCSymbol *Begin; MCSymbol *End; const MCSymbol *ExceptionHandler; const MCSymbol *Function; MCSymbol *PrologEnd; + MCSymbol *Symbol; bool HandlesUnwind; bool HandlesExceptions; int LastFrameInst; MCWin64EHUnwindInfo *ChainedParent; std::vector<MCWin64EHInstruction> Instructions; - bool Emitted; }; class MCWin64EHUnwindEmitter { |