]> granicus.if.org Git - clang/commitdiff
Minor CFG refinements for typeid and dynamic_cast.
authorMike Stump <mrs@apple.com>
Tue, 17 Nov 2009 00:08:50 +0000 (00:08 +0000)
committerMike Stump <mrs@apple.com>
Tue, 17 Nov 2009 00:08:50 +0000 (00:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89004 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGCXXExpr.cpp

index 15cda8083d79d3daef661096993a5b24a9673617..78734a00fbcca01ca83998350adaadd1607ea886 100644 (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;
   }