don't do ReplaceUses on a result that doesn't exist.
authorChris Lattner <sabre@nondot.org>
Sun, 3 Feb 2008 03:20:59 +0000 (03:20 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 3 Feb 2008 03:20:59 +0000 (03:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46673 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMISelDAGToDAG.cpp

index 56bbce7328bfa19917702cf43b01f91f8eb888e3..6278c4e161733eb54d6930aa200646b5dddacf39 100644 (file)
@@ -732,8 +732,10 @@ SDNode *ARMDAGToDAGISel::Select(SDOperand Op) {
     SDOperand Ops[] = { N1, Tmp2, N3, Chain, InFlag };
     SDNode *ResNode = CurDAG->getTargetNode(Opc, MVT::Other, MVT::Flag, Ops, 5);
     Chain = SDOperand(ResNode, 0);
-    InFlag = SDOperand(ResNode, 1);
-    ReplaceUses(SDOperand(Op.Val, 1), InFlag);
+    if (Op.Val->getNumValues() == 2) {
+      InFlag = SDOperand(ResNode, 1);
+      ReplaceUses(SDOperand(Op.Val, 1), InFlag);
+    }
     ReplaceUses(SDOperand(Op.Val, 0), SDOperand(Chain.Val, Chain.ResNo));
     return NULL;
   }