aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/NaCl/LowerEmExceptionsPass.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-01-20 10:11:43 -0800
committerAlon Zakai <alonzakai@gmail.com>2014-01-20 10:11:43 -0800
commit617c45657f6a938b0c65d5107a2d7668e55ff49c (patch)
treed4114d64de9ab8ddca805febfc5d4337536fe6be /lib/Transforms/NaCl/LowerEmExceptionsPass.cpp
parent8f802774d850b5e5c1a48419d0a655471d29018e (diff)
setjmp fixes
Diffstat (limited to 'lib/Transforms/NaCl/LowerEmExceptionsPass.cpp')
-rw-r--r--lib/Transforms/NaCl/LowerEmExceptionsPass.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Transforms/NaCl/LowerEmExceptionsPass.cpp b/lib/Transforms/NaCl/LowerEmExceptionsPass.cpp
index 1669603de7..c35dbba4a9 100644
--- a/lib/Transforms/NaCl/LowerEmExceptionsPass.cpp
+++ b/lib/Transforms/NaCl/LowerEmExceptionsPass.cpp
@@ -112,9 +112,9 @@ bool LowerEmExceptions::runOnModule(Module &M) {
PreInvoke = Function::Create(VoidFunc, GlobalValue::ExternalLinkage, "emscripten_preinvoke", TheModule);
}
- FunctionType *Int1Func = FunctionType::get(i1, false);
+ FunctionType *IntFunc = FunctionType::get(i32, false);
if (!TheModule->getFunction("emscripten_postinvoke")) {
- PostInvoke = Function::Create(Int1Func, GlobalValue::ExternalLinkage, "emscripten_postinvoke", TheModule);
+ PostInvoke = Function::Create(IntFunc, GlobalValue::ExternalLinkage, "emscripten_postinvoke", TheModule);
}
FunctionType *LandingPadFunc = FunctionType::get(i8P, true);
@@ -150,9 +150,10 @@ bool LowerEmExceptions::runOnModule(Module &M) {
ToErase.push_back(II);
CallInst *Post = CallInst::Create(PostInvoke, "", II);
+ Instruction *Post1 = new TruncInst(Post, i1, "", II);
// Insert a branch based on the postInvoke
- BranchInst::Create(II->getUnwindDest(), II->getNormalDest(), Post, II);
+ BranchInst::Create(II->getUnwindDest(), II->getNormalDest(), Post1, II);
LandingPads.insert(II->getLandingPadInst());