<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">We are seeing the same issue internally too at Apple.<div class=""><br class=""></div><div class="">Regards,</div><div class="">Michael<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 25, 2018, at 9:00 AM, Sanjay Patel 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 dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class="">I'm getting a crash with this test file on macOS:</div><div class="">Stack dump:<br class="">0.    Program arguments: /Users/spatel/myllvm/release/bin/llc -filetype=obj -split-dwarf-file debug.dwo -o - /Users/spatel/myllvm/llvm/test/DebugInfo/Generic/debug-label-unreached.ll <br class="">0  llc                      0x00000001088e8268 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40<br class="">1  llc                      0x00000001088e7205 llvm::sys::RunSignalHandlers() + 85<br class="">2  llc                      0x00000001088e8872 SignalHandler(int) + 258<br class="">3  libsystem_platform.dylib 0x00007fff7be8df5a _sigtramp + 26<br class="">4  libsystem_platform.dylib 0x00007ffee8e24840 _sigtramp + 1828284672<br class="">5  llc                      0x0000000107de1abf llvm::DwarfDebug::finalizeModuleInfo() + 479<br class="">6  llc                      0x0000000107de1ed4 llvm::DwarfDebug::endModule() + 68<br class="">7  llc                      0x0000000107db7a06 llvm::AsmPrinter::doFinalization(llvm::Module&) + 1910<br class="">8  llc                      0x00000001082ac146 llvm::FPPassManager::doFinalization(llvm::Module&) + 70<br class="">9  llc                      0x00000001082ac603 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1155<br class="">10 llc                      0x0000000106ddf2c6 compileModule(char**, llvm::LLVMContext&) + 9654<br class="">11 llc                      0x0000000106ddca9c main + 1436<br class="">12 libdyld.dylib            0x00007fff7bb7f015 start + 1<br class="">-: The file was not recognized as a valid object file<br class=""><br class=""></div></div></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Tue, Sep 25, 2018 at 12:11 AM Hsiangkai Wang via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: hsiangkai<br class="">
Date: Mon Sep 24 23:09:50 2018<br class="">
New Revision: 342943<br class="">
<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=342943&view=rev" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=342943&view=rev</a><br class="">
Log:<br class="">
[DebugInfo] Do not generate address info for removed debug labels.<br class="">
<br class="">
In some senario, LLVM will remove llvm.dbg.labels in IR. For example,<br class="">
when the labels are in unreachable blocks, these labels will not<br class="">
be generated in LLVM IR. In the case, these debug labels will have<br class="">
address zero as their address. It is not legal address for debugger to<br class="">
set breakpoints or query sources. So, the patch inhibits the address info<br class="">
(DW_AT_low_pc) of removed labels.<br class="">
<br class="">
Differential Revision: <a href="https://reviews.llvm.org/D51908" rel="noreferrer" target="_blank" class="">https://reviews.llvm.org/D51908</a><br class="">
<br class="">
Added:<br class="">
    llvm/trunk/test/DebugInfo/Generic/debug-label-unreached.ll<br class="">
Modified:<br class="">
    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp<br class="">
<br class="">
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp?rev=342943&r1=342942&r2=342943&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp?rev=342943&r1=342942&r2=342943&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (original)<br class="">
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp Mon Sep 24 23:09:50 2018<br class="">
@@ -865,10 +865,9 @@ void DwarfCompileUnit::finishEntityDefin<br class="">
       llvm_unreachable("DbgEntity must be DbgVariable or DbgLabel.");<br class="">
   }<br class="">
<br class="">
-  if (Label) {<br class="">
-    const MCSymbol *Sym = Label->getSymbol();<br class="">
-    addLabelAddress(*Die, dwarf::DW_AT_low_pc, Sym);<br class="">
-  }<br class="">
+  if (Label)<br class="">
+    if (const auto *Sym = Label->getSymbol())<br class="">
+      addLabelAddress(*Die, dwarf::DW_AT_low_pc, Sym);<br class="">
 }<br class="">
<br class="">
 DbgEntity *DwarfCompileUnit::getExistingAbstractEntity(const DINode *Node) {<br class="">
<br class="">
Added: llvm/trunk/test/DebugInfo/Generic/debug-label-unreached.ll<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Generic/debug-label-unreached.ll?rev=342943&view=auto" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Generic/debug-label-unreached.ll?rev=342943&view=auto</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/test/DebugInfo/Generic/debug-label-unreached.ll (added)<br class="">
+++ llvm/trunk/test/DebugInfo/Generic/debug-label-unreached.ll Mon Sep 24 23:09:50 2018<br class="">
@@ -0,0 +1,39 @@<br class="">
+; Test unreachable llvm.dbg.label<br class="">
+;<br class="">
+; RUN: llc -filetype=obj -split-dwarf-file debug.dwo -o - %s | llvm-dwarfdump -v - | FileCheck %s<br class="">
+;<br class="">
+; CHECK: .debug_info.dwo contents:<br class="">
+; CHECK: DW_TAG_label<br class="">
+; CHECK-NEXT: DW_AT_name {{.*}}"done"<br class="">
+; CHECK-NOT: {{DW_TAG|NULL}}<br class="">
+; CHECK: DW_AT_low_pc<br class="">
+; CHECK: DW_TAG_label<br class="">
+; CHECK-NEXT: DW_AT_name {{.*}}"removed"<br class="">
+; CHECK-NOT: DW_AT_low_pc<br class="">
+source_filename = "debug-label-unreached.c"<br class="">
+<br class="">
+define dso_local i32 @foo(i32 %a, i32 %b) !dbg !8 {<br class="">
+entry:<br class="">
+  %sum = add nsw i32 %a, %b, !dbg !12<br class="">
+  call void @llvm.dbg.label(metadata !11), !dbg !12<br class="">
+  ret i32 %sum, !dbg !13<br class="">
+}<br class="">
+<br class="">
+declare void @llvm.dbg.label(metadata)<br class="">
+<br class="">
+!<a href="http://llvm.dbg.cu/" rel="noreferrer" target="_blank" class="">llvm.dbg.cu</a> = !{!0}<br class="">
+!llvm.module.flags = !{!4}<br class="">
+<br class="">
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: true, emissionKind: FullDebug, enums: !2)<br class="">
+!1 = !DIFile(filename: "debug-label-unreached.c", directory: "./")<br class="">
+!2 = !{}<br class="">
+!4 = !{i32 2, !"Debug Info Version", i32 3}<br class="">
+!5 = !DISubroutineType(types: !6)<br class="">
+!6 = !{!7}<br class="">
+!7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)<br class="">
+!8 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 8, type: !5, isLocal: false, isDefinition: true, scopeLine: 9, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !9)<br class="">
+!9 = !{!10, !11}<br class="">
+!10 = !DILabel(scope: !8, name: "removed", file: !1, line: 11)<br class="">
+!11 = !DILabel(scope: !8, name: "done", file: !1, line: 13)<br class="">
+!12 = !DILocation(line: 13, column: 1, scope: !8)<br class="">
+!13 = !DILocation(line: 14, column: 5, scope: !8)<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a><br class="">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="">
</blockquote></div>
_______________________________________________<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></blockquote></div><br class=""></div></body></html>