summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExprCXX.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2011-04-13 02:35:36 +0000
committerAnders Carlsson <andersca@mac.com>2011-04-13 02:35:36 +0000
commitbbe277c4a986f4836fc531c61adf6daa7dfdf1cf (patch)
treeecb36944d0941171c30a695c417e3e9b9f38bce0 /clang/lib/CodeGen/CGExprCXX.cpp
parenta8150b1c90eb3da7511d5dc33b3930357b915e76 (diff)
downloadbcm5719-llvm-bbe277c4a986f4836fc531c61adf6daa7dfdf1cf.tar.gz
bcm5719-llvm-bbe277c4a986f4836fc531c61adf6daa7dfdf1cf.zip
Use EmitCallOrInvoke in EmitBadTypeidCall and EmitBadCastCall.
llvm-svn: 129424
Diffstat (limited to 'clang/lib/CodeGen/CGExprCXX.cpp')
-rw-r--r--clang/lib/CodeGen/CGExprCXX.cpp22
1 files changed, 6 insertions, 16 deletions
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();
}
OpenPOWER on IntegriCloud