aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-08-24 12:24:08 +0000
committerChris Lattner <sabre@nondot.org>2003-08-24 12:24:08 +0000
commit101d40060c6041a84f5460bb16475f9f03fd140d (patch)
tree75748d233534d400ac9c8037b978f386ee9c0c45 /lib
parent6270f367847d2d3e35f60ead8b039c284d31278f (diff)
downloadexternal_llvm-101d40060c6041a84f5460bb16475f9f03fd140d.zip
external_llvm-101d40060c6041a84f5460bb16475f9f03fd140d.tar.gz
external_llvm-101d40060c6041a84f5460bb16475f9f03fd140d.tar.bz2
rethrow is really the language independent primitive here. "throw" can be written
in terms of it and llvm.exc.setcurrent. Rework the intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8110 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/VMCore/Function.cpp6
-rw-r--r--lib/VMCore/Verifier.cpp4
2 files changed, 6 insertions, 4 deletions
diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp
index 4527372..ce190c8 100644
--- a/lib/VMCore/Function.cpp
+++ b/lib/VMCore/Function.cpp
@@ -197,8 +197,7 @@ unsigned Function::getIntrinsicID() const {
break;
case 'e':
if (getName() == "llvm.exc.getcurrent")return LLVMIntrinsic::exc_getcurrent;
- if (getName() == "llvm.exc.rethrow") return LLVMIntrinsic::exc_rethrow;
- if (getName() == "llvm.exc.throw") return LLVMIntrinsic::exc_throw;
+ if (getName() == "llvm.exc.setcurrent")return LLVMIntrinsic::exc_setcurrent;
break;
case 'l':
if (getName() == "llvm.longjmp") return LLVMIntrinsic::longjmp;
@@ -208,6 +207,9 @@ unsigned Function::getIntrinsicID() const {
if (getName() == "llvm.sigsetjmp") return LLVMIntrinsic::sigsetjmp;
if (getName() == "llvm.siglongjmp") return LLVMIntrinsic::siglongjmp;
break;
+ case 'u':
+ if (getName() == "llvm.unwind") return LLVMIntrinsic::unwind;
+ break;
case 'v':
if (getName() == "llvm.va_copy") return LLVMIntrinsic::va_copy;
if (getName() == "llvm.va_end") return LLVMIntrinsic::va_end;
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index eae7d8c..23ad642 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -522,8 +522,8 @@ void Verifier::visitIntrinsicFunctionCall(LLVMIntrinsic::ID ID, CallInst &CI) {
case LLVMIntrinsic::va_end: NumArgs = 1; break;
case LLVMIntrinsic::va_copy: NumArgs = 2; break;
- case LLVMIntrinsic::exc_throw: NumArgs = 1; break;
- case LLVMIntrinsic::exc_rethrow: NumArgs = 0; break;
+ case LLVMIntrinsic::unwind: NumArgs = 0; break;
+ case LLVMIntrinsic::exc_setcurrent: NumArgs = 1; break;
case LLVMIntrinsic::exc_getcurrent: NumArgs = 0; break;
case LLVMIntrinsic::setjmp: NumArgs = 1; break;