aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/SjLjEHPrepare.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-01-21 00:43:30 +0000
committerJim Grosbach <grosbach@apple.com>2010-01-21 00:43:30 +0000
commitd0a0c382ea51d36dc7e5938291763da73b4262dc (patch)
tree7915691c3b9bc343921177c6faac70d7ea9b600e /lib/CodeGen/SjLjEHPrepare.cpp
parentfd0b0288e2ee5ccf3f1d47090542710c67a77cf7 (diff)
downloadexternal_llvm-d0a0c382ea51d36dc7e5938291763da73b4262dc.tar.gz
external_llvm-d0a0c382ea51d36dc7e5938291763da73b4262dc.tar.bz2
external_llvm-d0a0c382ea51d36dc7e5938291763da73b4262dc.zip
Make sure that landing pad entries in the EH call site table are in the proper
order for SjLj style exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94055 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SjLjEHPrepare.cpp')
-rw-r--r--lib/CodeGen/SjLjEHPrepare.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/CodeGen/SjLjEHPrepare.cpp b/lib/CodeGen/SjLjEHPrepare.cpp
index 95589331cf..95b94e6c30 100644
--- a/lib/CodeGen/SjLjEHPrepare.cpp
+++ b/lib/CodeGen/SjLjEHPrepare.cpp
@@ -474,8 +474,10 @@ bool SjLjEHPass::insertSjLjEHSupport(Function &F) {
// At this point, we are all set up, update the invoke instructions
// to mark their call_site values, and fill in the dispatch switch
// accordingly.
- for (unsigned i = 0, e = Invokes.size(); i != e; ++i)
+ for (unsigned i = 0, e = Invokes.size(); i != e; ++i) {
+ F.setCallSiteNumber(Invokes[i], i+1);
markInvokeCallSite(Invokes[i], i+1, CallSite, DispatchSwitch);
+ }
// The front end has likely added calls to _Unwind_Resume. We need
// to find those calls and mark the call_site as -1 immediately prior.