Fix some EH failures on NNT I introduced in r98461

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98471 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-03-14 07:02:50 +00:00
parent 21f9c8de53
commit f14645cc64

View File

@ -247,17 +247,19 @@ void DwarfPrinter::EmitFrameMoves(MCSymbol *BaseLabel,
for (unsigned i = 0, N = Moves.size(); i < N; ++i) {
const MachineMove &Move = Moves[i];
MCSymbol *Label = 0;
unsigned LabelID = Move.getLabelID();
// Throw out move if the label is invalid.
if (LabelID == 0) continue;
MCSymbol *Label = getDWLabel("label", LabelID);
if (!Label->isDefined()) continue; // Not emitted, in dead code.
if (LabelID) {
Label = getDWLabel("label", LabelID);
if (!Label->isDefined()) continue; // Not emitted, in dead code.
}
const MachineLocation &Dst = Move.getDestination();
const MachineLocation &Src = Move.getSource();
// Advance row if new location.
if (BaseLabel) {
if (BaseLabel && Label) {
MCSymbol *ThisSym = Label;
if (ThisSym != BaseLabel) {
EmitCFAByte(dwarf::DW_CFA_advance_loc4);