Fix some EH failures on NNT I introduced in r98461
authorChris Lattner <sabre@nondot.org>
Sun, 14 Mar 2010 07:02:50 +0000 (07:02 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 14 Mar 2010 07:02:50 +0000 (07:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98471 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfPrinter.cpp

index 000d93ff1b096c40c5d09efa288bac1b69ea62b9..f79b2ab6f9198ce0f31cecbc1ca6f4b9865d3395 100644 (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);