OSDN Git Service

Fix a typo: use of cast where dyn_cast was intended
authorPhilip Reames <listmail@philipreames.com>
Thu, 4 Dec 2014 17:27:58 +0000 (17:27 +0000)
committerPhilip Reames <listmail@philipreames.com>
Thu, 4 Dec 2014 17:27:58 +0000 (17:27 +0000)
This bug has the effect of converting a test of isGCRelocate(InvokeInst*) from a false return to a crash.

This may be the root cause of the crash Joerg reported against r223137, but I'm still waiting for a clean build of clang to complete to be able to confirm.  Once I've confirmed the issue, I'll submit a test case separately.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223370 91177308-0d34-0410-b5e6-96231b3b80d8

lib/IR/Statepoint.cpp

index 8096913..a04f673 100644 (file)
@@ -51,7 +51,7 @@ bool llvm::isGCResult(const ImmutableCallSite &CS) {
   return isGCResult(CS.getInstruction());
 }
 bool llvm::isGCResult(const Instruction *inst) {
-  if (const CallInst *call = cast<CallInst>(inst)) {
+  if (const CallInst *call = dyn_cast<CallInst>(inst)) {
     if (Function *F = call->getCalledFunction()) {
       return (F->getIntrinsicID() == Intrinsic::experimental_gc_result_int ||
               F->getIntrinsicID() == Intrinsic::experimental_gc_result_float ||