We have logic in there to emit a default debugging label at the beginning of a
[oota-llvm.git] / utils / TableGen / AsmWriterEmitter.cpp
index 4f810c1303c37aa7d95fa81f65a2f821e7ec873e..06495d883414e0003f24fb80e723c59cbedbbc9d 100644 (file)
@@ -640,17 +640,17 @@ void AsmWriterEmitter::run(std::ostream &O) {
   }
   O << "\";\n\n";
 
-  O << "  if (TAI->doesSupportDebugInformation()) {\n"
+  O << "  if (TAI->doesSupportDebugInformation() &&\n"
+    << "      DW->ShouldEmitDwarfDebug()) {\n"
     << "    const MachineFunction *MF = MI->getParent()->getParent();\n"
     << "    DebugLoc CurDL = MI->getDebugLoc();\n\n"
     << "    if (!CurDL.isUnknown()) {\n"
     << "      static DebugLocTuple PrevDLT(~0U, ~0U, ~0U);\n"
     << "      DebugLocTuple CurDLT = MF->getDebugLocTuple(CurDL);\n\n"
-    << "      if (PrevDLT != CurDLT) {\n"
+    << "      if (PrevDLT.Src != ~0U && PrevDLT != CurDLT)\n"
     << "        printLabel(DW->RecordSourceLine(CurDLT.Line, CurDLT.Col,\n"
-    << "                                        CurDLT.Src));\n"
-    << "        PrevDLT = CurDLT;\n"
-    << "      }\n"
+    << "                                        CurDLT.Src));\n\n"
+    << "      PrevDLT = CurDLT;\n"
     << "    }\n"
     << "  }\n\n";