summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGObjCMac.cpp
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2011-11-29 00:10:10 +0000
committerBill Wendling <isanbard@gmail.com>2011-11-29 00:10:10 +0000
commitbcefeae5c1215377130c16e03a247ce84f2eef10 (patch)
tree60bd4e934d12d21fe2b74ad2e76624f2a057b88a /clang/lib/CodeGen/CGObjCMac.cpp
parentd690111dd45d03268b0d501cfc62628ac44305f2 (diff)
downloadbcm5719-llvm-bcefeae5c1215377130c16e03a247ce84f2eef10.tar.gz
bcm5719-llvm-bcefeae5c1215377130c16e03a247ce84f2eef10.zip
The _setjmp builtin library function should have the "returns twice"
attribute. This prevents the stack slot allocator from coming along and using a stack which it thinks is available but isn't. <rdar://problem/10492556> llvm-svn: 145332
Diffstat (limited to 'clang/lib/CodeGen/CGObjCMac.cpp')
-rw-r--r--clang/lib/CodeGen/CGObjCMac.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp
index 1cbcc58ae5f..1db50a8f578 100644
--- a/clang/lib/CodeGen/CGObjCMac.cpp
+++ b/clang/lib/CodeGen/CGObjCMac.cpp
@@ -516,7 +516,8 @@ public:
llvm::Type *params[] = { CGM.Int32Ty->getPointerTo() };
return CGM.CreateRuntimeFunction(llvm::FunctionType::get(CGM.Int32Ty,
params, false),
- "_setjmp");
+ "_setjmp",
+ llvm::Attribute::ReturnsTwice);
}
public:
OpenPOWER on IntegriCloud