forked from OSchip/llvm-project
[LLD] Report errors occurred while parsing debug info as warnings.
Summary: Extracted from D74773. Currently, errors happened while parsing debug info are reported as errors. DebugInfoDWARF library treats such errors as "Recoverable errors". This patch makes debug info errors to be reported as warnings, to support DebugInfoDWARF approach. Reviewers: ruiu, grimar, MaskRay, jhenderson, espindola Reviewed By: MaskRay, jhenderson Subscribers: emaste, aprantl, arichardson, arphaman, llvm-commits Tags: #llvm, #debug-info, #lld Differential Revision: https://reviews.llvm.org/D75234
This commit is contained in:
parent
e551b737c3
commit
0a2d415bd0
|
@ -2668,12 +2668,12 @@ readAddressAreas(DWARFContext &dwarf, InputSection *sec) {
|
|||
uint32_t cuIdx = 0;
|
||||
for (std::unique_ptr<DWARFUnit> &cu : dwarf.compile_units()) {
|
||||
if (Error e = cu->tryExtractDIEsIfNeeded(false)) {
|
||||
error(toString(sec) + ": " + toString(std::move(e)));
|
||||
warn(toString(sec) + ": " + toString(std::move(e)));
|
||||
return {};
|
||||
}
|
||||
Expected<DWARFAddressRangesVector> ranges = cu->collectAddressRanges();
|
||||
if (!ranges) {
|
||||
error(toString(sec) + ": " + toString(ranges.takeError()));
|
||||
warn(toString(sec) + ": " + toString(ranges.takeError()));
|
||||
return {};
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
# REQUIRES: x86
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
|
||||
# RUN: not ld.lld --gdb-index -e main %t.o -o /dev/null 2>&1 | FileCheck %s
|
||||
# RUN: ld.lld --gdb-index -e main %t.o -o /dev/null 2>&1 | FileCheck %s
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/gdb-index-invalid-ranges.obj.s -o %t2.o
|
||||
# RUN: llvm-ar rc %t.a %t.o
|
||||
# RUN: not ld.lld --gdb-index -e main %t2.o %t.a -o /dev/null 2>&1 | FileCheck --check-prefix=ARCHIVE %s
|
||||
# RUN: ld.lld --gdb-index -e main %t2.o %t.a -o /dev/null 2>&1 | FileCheck --check-prefix=ARCHIVE %s
|
||||
|
||||
# CHECK: ld.lld: error: {{.*}}gdb-index-invalid-ranges.s.tmp.o:(.debug_info): decoding address ranges: invalid range list entry at offset 0x10
|
||||
# ARCHIVE: ld.lld: error: {{.*}}gdb-index-invalid-ranges.s.tmp.a(gdb-index-invalid-ranges.s.tmp.o):(.debug_info): decoding address ranges: invalid range list entry at offset 0x10
|
||||
# CHECK: ld.lld: warning: {{.*}}gdb-index-invalid-ranges.s.tmp.o:(.debug_info): decoding address ranges: invalid range list entry at offset 0x10
|
||||
# ARCHIVE: ld.lld: warning: {{.*}}gdb-index-invalid-ranges.s.tmp.a(gdb-index-invalid-ranges.s.tmp.o):(.debug_info): decoding address ranges: invalid range list entry at offset 0x10
|
||||
|
||||
.section .text.foo1,"ax",@progbits
|
||||
.globl f1
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# REQUIRES: x86
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t1.o
|
||||
# RUN: not ld.lld --gdb-index %t1.o -o /dev/null 2>&1 | FileCheck %s
|
||||
# RUN: ld.lld --gdb-index %t1.o -o /dev/null 2>&1 | FileCheck %s
|
||||
|
||||
# CHECK: error: {{.*}}:(.debug_info): invalid reference to or invalid content in .debug_str_offsets[.dwo]: insufficient space for 32 bit header prefix
|
||||
# CHECK: warning: {{.*}}:(.debug_info): invalid reference to or invalid content in .debug_str_offsets[.dwo]: insufficient space for 32 bit header prefix
|
||||
|
||||
.section .debug_abbrev,"",@progbits
|
||||
.byte 1 # Abbreviation Code
|
||||
|
|
Loading…
Reference in New Issue