aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/CBackend/CBackend.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-08-18 16:06:09 +0000
committerChris Lattner <sabre@nondot.org>2003-08-18 16:06:09 +0000
commit72af6b8e5d7548a4a6805b156169d240cef7d0db (patch)
tree9366c3dce60cacb7af3a998dc6256cbdf7300b08 /lib/Target/CBackend/CBackend.cpp
parent95881ec1bb6afcbfbb21ec7dfa8956f27052959a (diff)
Add support for the sig(set|long)jmp intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7951 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CBackend/CBackend.cpp')
-rw-r--r--lib/Target/CBackend/CBackend.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp
index 0443c18475..4bc354bdee 100644
--- a/lib/Target/CBackend/CBackend.cpp
+++ b/lib/Target/CBackend/CBackend.cpp
@@ -1139,6 +1139,7 @@ void CWriter::visitCallInst(CallInst &I) {
return;
case LLVMIntrinsic::setjmp:
+ case LLVMIntrinsic::sigsetjmp:
// This instrinsic should never exist in the program, but until we get
// setjmp/longjmp transformations going on, we should codegen it to
// something reasonable. This will allow code that never calls longjmp
@@ -1146,7 +1147,9 @@ void CWriter::visitCallInst(CallInst &I) {
Out << "0";
return;
case LLVMIntrinsic::longjmp:
- // Treat longjmp the same as setjmp
+ case LLVMIntrinsic::siglongjmp:
+ // Longjmp is not implemented, and never will be. It would cause an
+ // exception throw.
Out << "abort()";
return;
}