diff options
author | Mike Stump <mrs@apple.com> | 2009-11-17 00:08:50 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2009-11-17 00:08:50 +0000 |
commit | 8b152b85b7a6cd51a1c4452e7f8425fb8e32b619 (patch) | |
tree | ac9b1be6949a7f79772aaa9fc307376673a2ea7d /lib/CodeGen/CGCXXExpr.cpp | |
parent | 4d26b43f7c6fc9d2974da7e7389337fe32dc29d0 (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.cpp | 5 |
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; } |