Use location entry only of the location described by DBG_VALUE is valid.

llvm-svn: 110255
This commit is contained in:
Devang Patel 2010-08-04 22:07:27 +00:00
parent 5d697f7ae2
commit 4c36d66bde

View File

@ -2315,7 +2315,9 @@ DwarfDebug::collectVariableInfo(const MachineFunction *MF,
const MCSymbol *FLabel = getLabelBeforeInsn(Begin);
const MCSymbol *SLabel = getLabelBeforeInsn(End);
DotDebugLocEntries.push_back(DotDebugLocEntry(FLabel, SLabel, MLoc));
if (MLoc.getReg())
DotDebugLocEntries.push_back(DotDebugLocEntry(FLabel, SLabel, MLoc));
Begin = End;
if (MVI + 1 == MVE) {
// If End is the last instruction then its value is valid
@ -2326,8 +2328,9 @@ DwarfDebug::collectVariableInfo(const MachineFunction *MF,
EMLoc.set(Begin->getOperand(0).getReg(), Begin->getOperand(1).getImm());
} else
EMLoc = Asm->getDebugValueLocation(End);
DotDebugLocEntries.
push_back(DotDebugLocEntry(SLabel, FunctionEndSym, EMLoc));
if (EMLoc.getReg())
DotDebugLocEntries.
push_back(DotDebugLocEntry(SLabel, FunctionEndSym, EMLoc));
}
}
DotDebugLocEntries.push_back(DotDebugLocEntry());