From bbe277c4a986f4836fc531c61adf6daa7dfdf1cf Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Wed, 13 Apr 2011 02:35:36 +0000 Subject: Use EmitCallOrInvoke in EmitBadTypeidCall and EmitBadCastCall. llvm-svn: 129424 --- clang/lib/CodeGen/CGExprCXX.cpp | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'clang/lib/CodeGen/CGExprCXX.cpp') diff --git a/clang/lib/CodeGen/CGExprCXX.cpp b/clang/lib/CodeGen/CGExprCXX.cpp index 4d5f8827de2..4caba15cb21 100644 --- a/clang/lib/CodeGen/CGExprCXX.cpp +++ b/clang/lib/CodeGen/CGExprCXX.cpp @@ -17,6 +17,8 @@ #include "CGObjCRuntime.h" #include "CGDebugInfo.h" #include "llvm/Intrinsics.h" +#include "llvm/Support/CallSite.h" + using namespace clang; using namespace CodeGen; @@ -1349,14 +1351,8 @@ static llvm::Constant *getBadTypeidFn(CodeGenFunction &CGF) { } static void EmitBadTypeidCall(CodeGenFunction &CGF) { - llvm::Value *F = getBadTypeidFn(CGF); - if (llvm::BasicBlock *InvokeDest = CGF.getInvokeDest()) { - llvm::BasicBlock *Cont = CGF.createBasicBlock("invoke.cont"); - CGF.Builder.CreateInvoke(F, Cont, InvokeDest)->setDoesNotReturn(); - CGF.EmitBlock(Cont); - } else - CGF.Builder.CreateCall(F)->setDoesNotReturn(); - + llvm::Value *Fn = getBadTypeidFn(CGF); + CGF.EmitCallOrInvoke(Fn, 0, 0).setDoesNotReturn(); CGF.Builder.CreateUnreachable(); } @@ -1437,14 +1433,8 @@ static llvm::Constant *getBadCastFn(CodeGenFunction &CGF) { } static void EmitBadCastCall(CodeGenFunction &CGF) { - llvm::Value *F = getBadCastFn(CGF); - if (llvm::BasicBlock *InvokeDest = CGF.getInvokeDest()) { - llvm::BasicBlock *Cont = CGF.createBasicBlock("invoke.cont"); - CGF.Builder.CreateInvoke(F, Cont, InvokeDest)->setDoesNotReturn(); - CGF.EmitBlock(Cont); - } else - CGF.Builder.CreateCall(F)->setDoesNotReturn(); - + llvm::Value *Fn = getBadCastFn(CGF); + CGF.EmitCallOrInvoke(Fn, 0, 0).setDoesNotReturn(); CGF.Builder.CreateUnreachable(); } -- cgit v1.2.3