Minor CFG refinements for typeid and dynamic_cast.

llvm-svn: 89004
This commit is contained in:
Mike Stump 2009-11-17 00:08:50 +00:00
parent 4781c3caf8
commit e8cdcc9ab0
1 changed files with 1 additions and 4 deletions

View File

@ -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;
}