aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGCXXExpr.cpp
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2009-11-17 00:08:50 +0000
committerMike Stump <mrs@apple.com>2009-11-17 00:08:50 +0000
commit8b152b85b7a6cd51a1c4452e7f8425fb8e32b619 (patch)
treeac9b1be6949a7f79772aaa9fc307376673a2ea7d /lib/CodeGen/CGCXXExpr.cpp
parent4d26b43f7c6fc9d2974da7e7389337fe32dc29d0 (diff)
Minor CFG refinements for typeid and dynamic_cast.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89004 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGCXXExpr.cpp')
-rw-r--r--lib/CodeGen/CGCXXExpr.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/lib/CodeGen/CGCXXExpr.cpp b/lib/CodeGen/CGCXXExpr.cpp
index 15cda8083d..78734a00fb 100644
--- a/lib/CodeGen/CGCXXExpr.cpp
+++ b/lib/CodeGen/CGCXXExpr.cpp
@@ -389,7 +389,6 @@ llvm::Value * CodeGenFunction::EmitCXXTypeidExpr(const CXXTypeidExpr *E) {
FTy = llvm::FunctionType::get(ResultType, false);
llvm::Value *F = CGM.CreateRuntimeFunction(FTy, "__cxa_bad_typeid");
Builder.CreateCall(F)->setDoesNotReturn();
- // FIXME: Should we have the below?
Builder.CreateUnreachable();
EmitBlock(NonZeroBlock);
}
@@ -501,7 +500,7 @@ llvm::Value *CodeGenFunction::EmitDynamicCast(llvm::Value *V,
FTy = llvm::FunctionType::get(ResultType, false);
llvm::Value *F = CGM.CreateRuntimeFunction(FBadTy, "__cxa_bad_cast");
Builder.CreateCall(F)->setDoesNotReturn();
- // Builder.CreateUnreachable();
+ Builder.CreateUnreachable();
}
}
@@ -516,8 +515,6 @@ llvm::Value *CodeGenFunction::EmitDynamicCast(llvm::Value *V,
PHI->reserveOperandSpace(3);
PHI->addIncoming(V, NonZeroBlock);
PHI->addIncoming(llvm::Constant::getNullValue(LTy), NullBlock);
- if (ThrowOnBad)
- PHI->addIncoming(llvm::Constant::getNullValue(LTy), BadCastBlock);
V = PHI;
}