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