mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-23 04:01:16 +00:00
[DWARF] Replace assert with diagnostic. PR36868.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328235 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
30a7db5e5f
commit
adec4ee33d
@ -551,8 +551,14 @@ bool DWARFDebugLine::LineTable::parse(DWARFDataExtractor &DebugLineData,
|
||||
// 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);
|
||||
|
38
test/DebugInfo/X86/dwarfdump-line-mismatch.s
Normal file
38
test/DebugInfo/X86/dwarfdump-line-mismatch.s
Normal file
@ -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,"",@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,"",@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,"",@progbits
|
Loading…
x
Reference in New Issue
Block a user