<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Sadly, after this commit TestDataFormatterLibcxxList.py started failing with:<div class=""><br class=""></div><div class="">```</div><div class=""><div class="">output: Process 67333 stopped</div><div class="">* thread #1, queue = 'com.apple.main-thread', stop reason = step over</div><div class="">    frame #0: 0x0000000100000eb0 a.out`main at main.cpp:33:16</div><div class="">   30  <span class="Apple-tab-span" style="white-space:pre">       </span>    (text_list.push_back(std::string("smart")));</div><div class="">   31  <span class="Apple-tab-span" style="white-space:pre">        </span>    </div><div class="">   32  <span class="Apple-tab-span" style="white-space:pre">      </span>    printf("// Set second break point at this line.");</div><div class="">-> 33  <span class="Apple-tab-span" style="white-space:pre"> </span>    (text_list.push_back(std::string("!!!"))); </div><div class="">    <span class="Apple-tab-span" style="white-space:pre">    </span>               ^</div><div class="">   34  <span class="Apple-tab-span" style="white-space:pre"> </span>    </div><div class="">   35  <span class="Apple-tab-span" style="white-space:pre">      </span>    std::list<int> countingList = {3141, 3142, 3142,3142,3142, 3142, 3142, 3141};</div><div class="">   36  <span class="Apple-tab-span" style="white-space:pre">   </span>    countingList.sort();</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">runCmd: frame variable text_list[0]</div><div class="">output: (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [0] = "goofy"</div><div class=""><br class=""></div><div class="">Expecting sub string: goofy</div><div class="">Matched</div><div class=""><br class=""></div><div class="">runCmd: frame variable text_list[3]</div><div class="">output: None</div><div class=""><br class=""></div><div class="">Expecting sub string: !!!</div><div>```</div><div><br class=""></div><div>URL: <a href="http://lab.llvm.org:8080/green/view/LLDB/job/lldb-cmake/10854" class="">http://lab.llvm.org:8080/green/view/LLDB/job/lldb-cmake/10854</a></div><div><br class=""></div><div>I confirmed that reverting this fixes the issue.</div><div><br class=""></div><div>I think the problem is that we’re breaking on an instruction that looks like it’s on line 33, but it’s actually “before” the full effect of the push_back() is visible.</div><div><br class=""></div><div>In which case the test is wrong, because it’s setting the breakpoint too early…</div><div><br class=""></div><div>vedant</div><div><br class=""><blockquote type="cite" class=""><div class="">On Oct 5, 2018, at 11:29 AM, Matthias Braun via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Author: matze<br class="">Date: Fri Oct  5 11:29:24 2018<br class="">New Revision: 343874<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=343874&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=343874&view=rev</a><br class="">Log:<br class="">DwarfDebug: Pick next location in case of missing location at block begin<br class=""><br class="">Context: Compiler generated instructions do not have a debug location<br class="">assigned to them. However emitting 0-line records for all of them bloats<br class="">the line tables for very little benefit so we usually avoid doing that.<br class=""><br class="">Not emitting anything will lead to the previous debug location getting<br class="">applied to the locationless instructions. This is not desirable for<br class="">block begin and after labels. Previously we would emit simply emit<br class="">line-0 records in this case, this patch changes the behavior to do a<br class="">forward search for a debug location in these cases before emitting a<br class="">line-0 record to further reduce line table bloat.<br class=""><br class="">Inspired by the discussion in <a href="https://reviews.llvm.org/D52862" class="">https://reviews.llvm.org/D52862</a><br class=""><br class="">Added:<br class="">    llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.mir<br class="">Modified:<br class="">    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp<br class="">    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h<br class="">    llvm/trunk/test/DebugInfo/AArch64/line-header.ll<br class="">    llvm/trunk/test/DebugInfo/ARM/single-constant-use-preserves-dbgloc.ll<br class="">    llvm/trunk/test/DebugInfo/Mips/delay-slot.ll<br class="">    llvm/trunk/test/DebugInfo/NVPTX/debug-info.ll<br class="">    llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.ll<br class=""><br class="">Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=343874&r1=343873&r2=343874&view=diff" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=343874&r1=343873&r2=343874&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)<br class="">+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Fri Oct  5 11:29:24 2018<br class="">@@ -1313,6 +1313,49 @@ void DwarfDebug::collectEntityInfo(Dwarf<br class="">   }<br class=""> }<br class=""><br class="">+static const DebugLoc &<br class="">+findNextDebugLoc(MachineBasicBlock::const_iterator MBBI,<br class="">+                 MachineBasicBlock::const_iterator MBBE) {<br class="">+  static DebugLoc NoLocation;<br class="">+  for ( ; MBBI != MBBE; ++MBBI) {<br class="">+    if (MBBI->isDebugInstr())<br class="">+      continue;<br class="">+    const DebugLoc &DL = MBBI->getDebugLoc();<br class="">+    if (DL)<br class="">+      return DL;<br class="">+  }<br class="">+  return NoLocation;<br class="">+}<br class="">+<br class="">+void DwarfDebug::emitDebugLoc(const DebugLoc &DL) {<br class="">+  unsigned LastAsmLine =<br class="">+      Asm->OutStreamer->getContext().getCurrentDwarfLoc().getLine();<br class="">+<br class="">+  // We have an explicit location, different from the previous location.<br class="">+  // Don't repeat a line-0 record, but otherwise emit the new location.<br class="">+  // (The new location might be an explicit line 0, which we do emit.)<br class="">+  unsigned Line = DL.getLine();<br class="">+  if (PrevInstLoc && Line == 0 && LastAsmLine == 0)<br class="">+    return;<br class="">+  unsigned Flags = 0;<br class="">+  if (DL == PrologEndLoc) {<br class="">+    Flags |= DWARF2_FLAG_PROLOGUE_END | DWARF2_FLAG_IS_STMT;<br class="">+    PrologEndLoc = DebugLoc();<br class="">+  }<br class="">+  // If the line changed, we call that a new statement; unless we went to<br class="">+  // line 0 and came back, in which case it is not a new statement.<br class="">+  unsigned OldLine = PrevInstLoc ? PrevInstLoc.getLine() : LastAsmLine;<br class="">+  if (Line && Line != OldLine)<br class="">+    Flags |= DWARF2_FLAG_IS_STMT;<br class="">+<br class="">+  const MDNode *Scope = DL.getScope();<br class="">+  recordSourceLine(Line, DL.getCol(), Scope, Flags);<br class="">+<br class="">+  // If we're not at line 0, remember this location.<br class="">+  if (Line)<br class="">+    PrevInstLoc = DL;<br class="">+}<br class="">+<br class=""> // Process beginning of an instruction.<br class=""> void DwarfDebug::beginInstruction(const MachineInstr *MI) {<br class="">   DebugHandlerBase::beginInstruction(MI);<br class="">@@ -1352,54 +1395,41 @@ void DwarfDebug::beginInstruction(const<br class="">     // If we have already emitted a line-0 record, don't repeat it.<br class="">     if (LastAsmLine == 0)<br class="">       return;<br class="">+    // By default we emit nothing to avoid line table bloat. However at the<br class="">+    // beginning of a basic block or after a label it is undesirable to let<br class="">+    // the previous location unchanged. In these cases do a forward search for<br class="">+    // the next valid debug location.<br class="">+    if (UnknownLocations == Default) {<br class="">+      const MachineBasicBlock &MBB = *MI->getParent();<br class="">+      if (!PrevLabel && PrevInstBB == &MBB)<br class="">+        return;<br class="">+<br class="">+      const DebugLoc &NextDL = findNextDebugLoc(MI->getIterator(), MBB.end());<br class="">+      if (NextDL) {<br class="">+        emitDebugLoc(NextDL);<br class="">+        return;<br class="">+      }<br class="">+    }<br class="">+<br class="">+    // We should emit a line-0 record.<br class="">     // If user said Don't Do That, don't do that.<br class="">     if (UnknownLocations == Disable)<br class="">       return;<br class="">-    // See if we have a reason to emit a line-0 record now.<br class="">-    // Reasons to emit a line-0 record include:<br class="">-    // - User asked for it (UnknownLocations).<br class="">-    // - Instruction has a label, so it's referenced from somewhere else,<br class="">-    //   possibly debug information; we want it to have a source location.<br class="">-    // - Instruction is at the top of a block; we don't want to inherit the<br class="">-    //   location from the physically previous (maybe unrelated) block.<br class="">-    if (UnknownLocations == Enable || PrevLabel ||<br class="">-        (PrevInstBB && PrevInstBB != MI->getParent())) {<br class="">-      // Preserve the file and column numbers, if we can, to save space in<br class="">-      // the encoded line table.<br class="">-      // Do not update PrevInstLoc, it remembers the last non-0 line.<br class="">-      const MDNode *Scope = nullptr;<br class="">-      unsigned Column = 0;<br class="">-      if (PrevInstLoc) {<br class="">-        Scope = PrevInstLoc.getScope();<br class="">-        Column = PrevInstLoc.getCol();<br class="">-      }<br class="">-      recordSourceLine(/*Line=*/0, Column, Scope, /*Flags=*/0);<br class="">+    // Emit a line-0 record now.<br class="">+    // Preserve the file and column numbers, if we can, to save space in<br class="">+    // the encoded line table.<br class="">+    // Do not update PrevInstLoc, it remembers the last non-0 line.<br class="">+    const MDNode *Scope = nullptr;<br class="">+    unsigned Column = 0;<br class="">+    if (PrevInstLoc) {<br class="">+      Scope = PrevInstLoc.getScope();<br class="">+      Column = PrevInstLoc.getCol();<br class="">     }<br class="">+    recordSourceLine(/*Line=*/0, Column, Scope, /*Flags=*/0);<br class="">     return;<br class="">   }<br class=""><br class="">-  // We have an explicit location, different from the previous location.<br class="">-  // Don't repeat a line-0 record, but otherwise emit the new location.<br class="">-  // (The new location might be an explicit line 0, which we do emit.)<br class="">-  if (PrevInstLoc && DL.getLine() == 0 && LastAsmLine == 0)<br class="">-    return;<br class="">-  unsigned Flags = 0;<br class="">-  if (DL == PrologEndLoc) {<br class="">-    Flags |= DWARF2_FLAG_PROLOGUE_END | DWARF2_FLAG_IS_STMT;<br class="">-    PrologEndLoc = DebugLoc();<br class="">-  }<br class="">-  // If the line changed, we call that a new statement; unless we went to<br class="">-  // line 0 and came back, in which case it is not a new statement.<br class="">-  unsigned OldLine = PrevInstLoc ? PrevInstLoc.getLine() : LastAsmLine;<br class="">-  if (DL.getLine() && DL.getLine() != OldLine)<br class="">-    Flags |= DWARF2_FLAG_IS_STMT;<br class="">-<br class="">-  const MDNode *Scope = DL.getScope();<br class="">-  recordSourceLine(DL.getLine(), DL.getCol(), Scope, Flags);<br class="">-<br class="">-  // If we're not at line 0, remember this location.<br class="">-  if (DL.getLine())<br class="">-    PrevInstLoc = DL;<br class="">+  emitDebugLoc(DL);<br class=""> }<br class=""><br class=""> static DebugLoc findPrologueEndLoc(const MachineFunction *MF) {<br class=""><br class="">Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h?rev=343874&r1=343873&r2=343874&view=diff" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h?rev=343874&r1=343873&r2=343874&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h (original)<br class="">+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h Fri Oct  5 11:29:24 2018<br class="">@@ -719,6 +719,9 @@ public:<br class="">   bool tuneForLLDB() const { return DebuggerTuning == DebuggerKind::LLDB; }<br class="">   bool tuneForSCE() const { return DebuggerTuning == DebuggerKind::SCE; }<br class="">   /// @}<br class="">+<br class="">+private:<br class="">+  void emitDebugLoc(const DebugLoc &DL);<br class=""> };<br class=""><br class=""> } // end namespace llvm<br class=""><br class="">Modified: llvm/trunk/test/DebugInfo/AArch64/line-header.ll<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/AArch64/line-header.ll?rev=343874&r1=343873&r2=343874&view=diff" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/AArch64/line-header.ll?rev=343874&r1=343873&r2=343874&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/DebugInfo/AArch64/line-header.ll (original)<br class="">+++ llvm/trunk/test/DebugInfo/AArch64/line-header.ll Fri Oct  5 11:29:24 2018<br class="">@@ -3,4 +3,4 @@<br class=""><br class=""> ; check line table length is correctly calculated for both big and little endian<br class=""> CHECK-LABEL: .debug_line contents:<br class="">-CHECK: total_length: 0x0000003f<br class="">+CHECK: total_length: 0x0000003c<br class=""><br class="">Modified: llvm/trunk/test/DebugInfo/ARM/single-constant-use-preserves-dbgloc.ll<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/ARM/single-constant-use-preserves-dbgloc.ll?rev=343874&r1=343873&r2=343874&view=diff" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/ARM/single-constant-use-preserves-dbgloc.ll?rev=343874&r1=343873&r2=343874&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/DebugInfo/ARM/single-constant-use-preserves-dbgloc.ll (original)<br class="">+++ llvm/trunk/test/DebugInfo/ARM/single-constant-use-preserves-dbgloc.ll Fri Oct  5 11:29:24 2018<br class="">@@ -31,11 +31,10 @@ if.then:<br class=""><br class=""> if.end:                                           ; preds = %entry<br class=""> ; Materialize the constant.<br class="">-; CHECK:      .loc    1 0<br class="">+; CHECK:      .loc    1 7 5<br class=""> ; CHECK-NEXT: mvn     r0, #0<br class=""><br class=""> ; The backend performs the store to %retval first, for some reason.<br class="">-; CHECK-NEXT: .loc    1 7 5<br class=""> ; CHECK-NEXT: str     r0, [sp, #4]<br class="">   store i32 -1, i32* %x, align 4, !dbg !19<br class=""><br class=""><br class="">Modified: llvm/trunk/test/DebugInfo/Mips/delay-slot.ll<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Mips/delay-slot.ll?rev=343874&r1=343873&r2=343874&view=diff" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Mips/delay-slot.ll?rev=343874&r1=343873&r2=343874&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/DebugInfo/Mips/delay-slot.ll (original)<br class="">+++ llvm/trunk/test/DebugInfo/Mips/delay-slot.ll Fri Oct  5 11:29:24 2018<br class="">@@ -16,7 +16,7 @@<br class=""> ; CHECK: 0x0000000000000004      2      0      1   0             0  is_stmt prologue_end<br class=""> ; CHECK: 0x0000000000000024      3      0      1   0             0  is_stmt<br class=""> ; CHECK: 0x0000000000000034      4      0      1   0             0  is_stmt<br class="">-; CHECK: 0x0000000000000048      5      0      1   0             0  is_stmt<br class="">+; CHECK: 0x0000000000000044      5      0      1   0             0  is_stmt<br class=""> ; CHECK: 0x0000000000000058      5      0      1   0             0  is_stmt end_sequence<br class=""><br class=""><br class=""><br class="">Modified: llvm/trunk/test/DebugInfo/NVPTX/debug-info.ll<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/NVPTX/debug-info.ll?rev=343874&r1=343873&r2=343874&view=diff" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/NVPTX/debug-info.ll?rev=343874&r1=343873&r2=343874&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/DebugInfo/NVPTX/debug-info.ll (original)<br class="">+++ llvm/trunk/test/DebugInfo/NVPTX/debug-info.ll Fri Oct  5 11:29:24 2018<br class="">@@ -36,6 +36,7 @@<br class=""> ; CHECK: setp.ge.s32     %p{{.+}}, %r{{.+}}, %r{{.+}};<br class=""> ; CHECK: .loc [[DEBUG_INFO_CU]] 7 7<br class=""> ; CHECK: @%p{{.+}} bra   [[BB:.+]];<br class="">+; CHECK: .loc [[DEBUG_INFO_CU]] 8 13<br class=""> ; CHECK: ld.param.f32    %f{{.+}}, [{{.+}}];<br class=""> ; CHECK: ld.param.u64    %rd{{.+}}, [{{.+}}];<br class=""> ; CHECK: cvta.to.global.u64      %rd{{.+}}, %rd{{.+}};<br class="">@@ -43,7 +44,6 @@<br class=""> ; CHECK: cvta.to.global.u64      %rd{{.+}}, %rd{{.+}};<br class=""> ; CHECK: mul.wide.u32    %rd{{.+}}, %r{{.+}}, 4;<br class=""> ; CHECK: add.s64         %rd{{.+}}, %rd{{.+}}, %rd{{.+}};<br class="">-; CHECK: .loc [[DEBUG_INFO_CU]] 8 13<br class=""> ; CHECK: ld.global.f32   %f{{.+}}, [%rd{{.+}}];<br class=""> ; CHECK: add.s64         %rd{{.+}}, %rd{{.+}}, %rd{{.+}};<br class=""> ; CHECK: .loc [[DEBUG_INFO_CU]] 8 19<br class=""><br class="">Modified: llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.ll<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.ll?rev=343874&r1=343873&r2=343874&view=diff" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.ll?rev=343874&r1=343873&r2=343874&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.ll (original)<br class="">+++ llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.ll Fri Oct  5 11:29:24 2018<br class="">@@ -40,15 +40,14 @@ if.end:<br class="">   ret void, !dbg !14<br class=""> }<br class=""><br class="">-; CHECK:      .loc 1 7 7<br class="">+; CHECK:      .loc 1 7 7 prologue_end<br class=""> ; CHECK-NOT:  .loc<br class="">-; CHECK:      .loc 1 0 7 is_stmt 0<br class="">+; CHECK:      # %bb.1<br class="">+; CHECK-NEXT: .file 2 "/tests/include.h"<br class="">+; CHECK-NEXT: .loc 2 20 5<br class=""> ; CHECK-NOT:  .loc<br class="">-; CHECK:      .loc 2 20 5 is_stmt 1<br class=""> ; CHECK:      .LBB0_2:<br class="">-; CHECK-NEXT: .loc 2 0 5 is_stmt 0<br class="">-; CHECK-NOT:  .loc<br class="">-; CHECK:      .loc 1 10 3 is_stmt 1<br class="">+; CHECK:      .loc 1 10 3<br class=""> ;<br class=""> ; DISABLE-NOT: .loc 1 0<br class=""><br class=""><br class="">Added: llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.mir<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.mir?rev=343874&view=auto" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.mir?rev=343874&view=auto</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.mir (added)<br class="">+++ llvm/trunk/test/DebugInfo/X86/dwarf-no-source-loc.mir Fri Oct  5 11:29:24 2018<br class="">@@ -0,0 +1,74 @@<br class="">+# RUN: llc -o - %s -start-before=patchable-function -use-unknown-locations=Default | FileCheck %s --check-prefixes=CHECK,DEFAULT<br class="">+# RUN: llc -o - %s -start-before=patchable-function -use-unknown-locations=Enable | FileCheck %s --check-prefixes=CHECK,ENABLE<br class="">+# RUN: llc -o - %s -start-before=patchable-function -use-unknown-locations=Disable | FileCheck %s --check-prefixes=CHECK,DISABLE<br class="">+--- |<br class="">+  target triple = "x86_64--"<br class="">+  <br class="">+  !0 = !DIFile(filename: "dwarf-no-source-loc.mir", directory: "/")<br class="">+  !1 = distinct !DICompileUnit(file: !0, language: DW_LANG_C, emissionKind: LineTablesOnly)<br class="">+  !2 = distinct !DISubprogram(name: "func", unit: !1)<br class="">+  !3 = !DILocation(line: 17, scope: !2)<br class="">+  !4 = !DILocation(line: 42, scope: !2)<br class="">+<br class="">+  !llvm.dbg.cu = !{!1}<br class="">+  !llvm.module.flags = !{!10, !11}<br class="">+  !10 = !{i32 2, !"Dwarf Version", i32 4}<br class="">+  !11 = !{i32 2, !"Debug Info Version", i32 3}<br class="">+  <br class="">+  define void @func() !dbg !2 {<br class="">+    unreachable<br class="">+  }<br class="">+...<br class="">+---<br class="">+name: func<br class="">+body: |<br class="">+  bb.0:<br class="">+    NOOP<br class="">+    NOOP<br class="">+    $eax = MOV32ri 1, debug-location !3<br class="">+    ; CHECK-LABEL: bb.0<br class="">+    ; CHECK: nop<br class="">+    ; CHECK: nop<br class="">+    ; CHECK: .loc 1 17 0 prologue_end<br class="">+    ; CHECK: movl $1, %eax<br class="">+<br class="">+  bb.1:<br class="">+    NOOP<br class="">+    $ebx = MOV32ri 2, debug-location !4<br class="">+    ; CHECK-LABEL: bb.1<br class="">+    ; DEFAULT: .loc 1 42 0<br class="">+    ; ENABLE: .loc 1 0<br class="">+    ; DISABLE-NOT: .loc 1 0<br class="">+    ; CHECK: nop<br class="">+    ; ENABLE: .loc 1 42 0<br class="">+    ; CHECK: movl $2, %ebx<br class="">+<br class="">+  bb.2:<br class="">+    NOOP<br class="">+    ; CHECK-LABEL: bb.2<br class="">+    ; DEFAULT: .loc 1 0 0 is_stmt 0<br class="">+    ; ENABLE: .loc 1 0 0 is_stmt 0<br class="">+    ; DISABLE-NOT: .loc 1 0<br class="">+    ; CHECK: nop<br class="">+<br class="">+  bb.3:<br class="">+    NOOP<br class="">+    $ecx = MOV32ri 3, debug-location !3<br class="">+    ; CHECK-LABEL: bb.3<br class="">+    ; CHECK: nop<br class="">+    ; DEFAULT: .loc 1 17 0 is_stmt 1<br class="">+    ; ENABLE: .loc 1 17 0 is_stmt 1<br class="">+    ; DISABLE-NOT: .loc 1 0<br class="">+    ; CHECK: movl $3, %ecx<br class="">+<br class="">+  bb.4:<br class="">+    NOOP<br class="">+    $edx = MOV32ri 4, debug-location !4<br class="">+    ; CHECK: bb.4<br class="">+    ; DEFAULT: .loc 1 42 0<br class="">+    ; ENABLE: .loc 1 0 0 is_stmt 0<br class="">+    ; DISABLE-NOT: .loc 1 0<br class="">+    ; CHECK: nop<br class="">+    ; ENABLE: .loc 1 42 0 is_stmt 1<br class="">+    ; CHECK: movl $4, %edx<br class="">+...<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits<br class=""></div></div></blockquote></div><br class=""></div></body></html>