<div dir="ltr">Ping - Paul, any thoughts on James's comment?</div><br><div class="gmail_quote"><div dir="ltr">On Fri, Mar 23, 2018 at 8:16 AM James Henderson via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hi Paul,<br><br></div>Spotted this whilst rebasing D44560: in the fprintf, the second PRIx32 should be a PRIx8, to match the return type of getAddressSize().<br><br></div></div><div dir="ltr">James<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 22 March 2018 at 19:37, Paul Robinson via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: probinson<br>
Date: Thu Mar 22 12:37:56 2018<br>
New Revision: 328235<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=328235&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=328235&view=rev</a><br>
Log:<br>
[DWARF] Replace assert with diagnostic. PR36868.<br>
<br>
Added:<br>
    llvm/trunk/test/DebugInfo/X86/dwarfdump-line-mismatch.s<br>
Modified:<br>
    llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp<br>
<br>
Modified: llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp?rev=328235&r1=328234&r2=328235&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp?rev=328235&r1=328234&r2=328235&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp (original)<br>
+++ llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp Thu Mar 22 12:37:56 2018<br>
@@ -551,8 +551,14 @@ bool DWARFDebugLine::LineTable::parse(DW<br>
         // from the size of the operand.<br>
         if (DebugLineData.getAddressSize() == 0)<br>
           DebugLineData.setAddressSize(Len - 1);<br>
-        else<br>
-          assert(DebugLineData.getAddressSize() == Len - 1);<br>
+        else if (DebugLineData.getAddressSize() != Len - 1) {<br>
+          fprintf(stderr, "Mismatching address size at offset 0x%8.8" PRIx32<br>
+                  " expected 0x%2.2" PRIx32 " found 0x%2.2" PRIx64 "\n",<br>
+                  ExtOffset, DebugLineData.getAddressSize(), Len - 1);<br>
+          // Skip the rest of the line-number program.<br>
+          *OffsetPtr = EndOffset;<br>
+          return false;<br>
+        }<br>
         State.Row.Address = DebugLineData.getRelocatedAddress(OffsetPtr);<br>
         if (OS)<br>
           *OS << format(" (0x%16.16" PRIx64 ")", State.Row.Address);<br>
<br>
Added: llvm/trunk/test/DebugInfo/X86/dwarfdump-line-mismatch.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarfdump-line-mismatch.s?rev=328235&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarfdump-line-mismatch.s?rev=328235&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/DebugInfo/X86/dwarfdump-line-mismatch.s (added)<br>
+++ llvm/trunk/test/DebugInfo/X86/dwarfdump-line-mismatch.s Thu Mar 22 12:37:56 2018<br>
@@ -0,0 +1,38 @@<br>
+# The .debug_info section says 8-byte addresses, but the assembler<br>
+# will generate a line table with 4-byte addresses (for i686).<br>
+<br>
+# RUN: llvm-mc -filetype=obj -triple i686-linux-gnu %s -o - | \<br>
+# RUN: llvm-dwarfdump -debug-line - 2>&1 | FileCheck %s<br>
+<br>
+# CHECK: Mismatching address size at offset 0x{{[0-9a-f]+}}<br>
+# CHECK-SAME: expected 0x08 found 0x04<br>
+       .text<br>
+       .file   "reduced.c"<br>
+       .globl  main<br>
+main:<br>
+       .file   1 "/tmp" "reduced.c"<br>
+       .loc    1 2 0<br>
+       xorl    %eax, %eax<br>
+       retl<br>
+       .file   2 "/tmp/repeat/repeat/repeat/repeat" "repeat.h"<br>
+<br>
+       .section        .debug_abbrev,"",@progbits<br>
+       .byte   1                       # Abbreviation Code<br>
+       .byte   17                      # DW_TAG_compile_unit<br>
+       .byte   0                       # DW_CHILDREN_no<br>
+       .byte   16                      # DW_AT_stmt_list<br>
+       .byte   23                      # DW_FORM_sec_offset<br>
+       .byte   0                       # EOM(1)<br>
+       .byte   0                       # EOM(2)<br>
+       .byte   0                       # EOM(3)<br>
+<br>
+        .section       .debug_info,"",@progbits<br>
+       .long   .Lend0 - .Lbegin0       # Length of Unit<br>
+.Lbegin0:<br>
+       .short  4                       # DWARF version number<br>
+       .long   .debug_abbrev           # Offset Into Abbrev. Section<br>
+       .byte   8                       # Address Size (in bytes)<br>
+       .byte   1                       # Abbrev [1] 0xb:0x1f DW_TAG_compile_unit<br>
+       .long   .debug_line             # DW_AT_stmt_list<br>
+.Lend0:<br>
+       .section        .debug_line,"",@progbits<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>