quick fix for PR13006, will check in testcase later.
authorChris Lattner <sabre@nondot.org>
Fri, 1 Jun 2012 15:02:52 +0000 (15:02 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 1 Jun 2012 15:02:52 +0000 (15:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157813 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/Analysis.cpp

index 1a8968dd28442be81408c5d4c73abd337cbd4ad2..447f3981b5211fc535e8bcbf4416734ba94f244c 100644 (file)
@@ -332,7 +332,9 @@ bool llvm::isInTailCallPosition(ImmutableCallSite CS, Attributes CalleeRetAttr,
   // see if each is transparent.
   for (unsigned i = 0, e =cast<StructType>(RetVal->getType())->getNumElements();
        i != e; ++i) {
-    const Value *InScalar = getNoopInput(FindInsertedValue(RetVal, i), TLI);
+    const Value *InScalar = FindInsertedValue(RetVal, i);
+    if (InScalar == 0) return false;
+    InScalar = getNoopInput(InScalar, TLI);
     
     // If the scalar value being inserted is an extractvalue of the right index
     // from the call, then everything is good.