diff options
author | Reid Kleckner <reid@kleckner.net> | 2015-06-11 23:37:18 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2015-06-11 23:37:18 +0000 |
commit | 81d1cc00b7d6de7303deb31ab8569ff3fa4abf56 (patch) | |
tree | 22a47dcad0b233cdf40fea05a33a8f8bba27cde5 /llvm/lib/Target/X86/X86WinEHState.cpp | |
parent | b5aee61c3617b726245182b48df8ab573d75d1a9 (diff) | |
download | bcm5719-llvm-81d1cc00b7d6de7303deb31ab8569ff3fa4abf56.tar.gz bcm5719-llvm-81d1cc00b7d6de7303deb31ab8569ff3fa4abf56.zip |
[WinEH] Put finally pointers in the handler scope table field
We were putting them in the filter field, which is correct for 64-bit
but wrong for 32-bit.
Also switch the order of scope table entry emission so outermost entries
are emitted first, and fix an obvious state assignment bug.
llvm-svn: 239574
Diffstat (limited to 'llvm/lib/Target/X86/X86WinEHState.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86WinEHState.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86WinEHState.cpp b/llvm/lib/Target/X86/X86WinEHState.cpp index e037f08790c..356d0a77132 100644 --- a/llvm/lib/Target/X86/X86WinEHState.cpp +++ b/llvm/lib/Target/X86/X86WinEHState.cpp @@ -508,7 +508,7 @@ void WinEHStatePass::addSEHStateStores(Function &F, MachineModuleInfo &MMI) { // Look up the state number of the landingpad this unwinds to. LandingPadInst *LPI = II->getUnwindDest()->getLandingPadInst(); auto InsertionPair = - FuncInfo.LandingPadStateMap.insert(std::make_pair(LPI, 0)); + FuncInfo.LandingPadStateMap.insert(std::make_pair(LPI, CurState)); auto Iter = InsertionPair.first; int &State = Iter->second; bool Inserted = InsertionPair.second; |