summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86WinEHState.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2015-06-11 23:37:18 +0000
committerReid Kleckner <reid@kleckner.net>2015-06-11 23:37:18 +0000
commit81d1cc00b7d6de7303deb31ab8569ff3fa4abf56 (patch)
tree22a47dcad0b233cdf40fea05a33a8f8bba27cde5 /llvm/lib/Target/X86/X86WinEHState.cpp
parentb5aee61c3617b726245182b48df8ab573d75d1a9 (diff)
downloadbcm5719-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.cpp2
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;
OpenPOWER on IntegriCloud