summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2011-08-24 00:00:23 +0000
committerBill Wendling <isanbard@gmail.com>2011-08-24 00:00:23 +0000
commitf4ee0c0db2530ad6122c0424a4d20cb5bc7f0726 (patch)
treef1bb86a52c55e5078e6cf110030a9821540c1ca5
parentf9e9c4e9bcdf6cb7e3c67c934d59b07054bedc6a (diff)
downloadbcm5719-llvm-f4ee0c0db2530ad6122c0424a4d20cb5bc7f0726.tar.gz
bcm5719-llvm-f4ee0c0db2530ad6122c0424a4d20cb5bc7f0726.zip
Add the sentinal "no handle" value to the ResumeInst.
A value of -1 at a call site tells the personality function that this call isn't handled by the current function. Since the ResumeInsts are converted to calls to _Unwind_SjLj_Resume, add a (volatile) store of -1 to its 'call site'. llvm-svn: 138416
-rw-r--r--llvm/lib/CodeGen/SjLjEHPrepare.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SjLjEHPrepare.cpp b/llvm/lib/CodeGen/SjLjEHPrepare.cpp
index be491b13834..ebed3d2b882 100644
--- a/llvm/lib/CodeGen/SjLjEHPrepare.cpp
+++ b/llvm/lib/CodeGen/SjLjEHPrepare.cpp
@@ -631,6 +631,8 @@ bool SjLjEHPass::insertSjLjEHSupport(Function &F) {
if (Callee != SelectorFn && Callee != ExceptionFn
&& !CI->doesNotThrow())
insertCallSiteStore(CI, -1, CallSite);
+ } else if (ResumeInst *RI = dyn_cast<ResumeInst>(I)) {
+ insertCallSiteStore(RI, -1, CallSite);
}
}
OpenPOWER on IntegriCloud