From: Chris Lattner Date: Sun, 24 Aug 2003 12:24:08 +0000 (+0000) Subject: rethrow is really the language independent primitive here. "throw" can be written X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=101d40060c6041a84f5460bb16475f9f03fd140d;p=oota-llvm.git 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 --- diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index 4527372ae75..ce190c80a3f 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 eae7d8c1cfe..23ad6421bb3 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;