Check Reg against zero.
authorEvan Cheng <evan.cheng@apple.com>
Thu, 29 Apr 2010 00:59:34 +0000 (00:59 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 29 Apr 2010 00:59:34 +0000 (00:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102573 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

index 43e6b1bc8a463ae40b4e39e3cddd70650cb10e10..254a6543ffd66834405fd21875b295303e6db7c6 100644 (file)
@@ -3699,7 +3699,7 @@ SelectionDAGBuilder::EmitFuncArgumentDbgValue(const DbgValueInst &DI,
   unsigned Reg = 0;
   if (N.getOpcode() == ISD::CopyFromReg) {
     Reg = cast<RegisterSDNode>(N.getOperand(1))->getReg();
-    if (TargetRegisterInfo::isVirtualRegister(Reg)) {
+    if (Reg && TargetRegisterInfo::isVirtualRegister(Reg)) {
       MachineRegisterInfo &RegInfo = MF.getRegInfo();
       unsigned PR = RegInfo.getLiveInPhysReg(Reg);
       if (PR)
index adb321d929cfecf3faedfa64d47677efe74172a7..88245de01304758279a3e8fe7dd70a2951c267e1 100644 (file)
@@ -222,6 +222,8 @@ bool SelectionDAGISel::runOnMachineFunction(MachineFunction &mf) {
   for (unsigned i = 0, e = FuncInfo->ArgDbgValues.size(); i != e; ++i) {
     MachineInstr *MI = FuncInfo->ArgDbgValues[e-i-1];
     unsigned Reg = MI->getOperand(0).getReg();
+    if (!Reg)
+      continue;
     if (TargetRegisterInfo::isPhysicalRegister(Reg))
       EntryMBB->insert(EntryMBB->begin(), MI);
     else {