aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Lapshin <a.v.lapshin@mail.ru>2020-02-27 13:21:58 +0300
committerAlexey Lapshin <a.v.lapshin@mail.ru>2020-02-29 00:03:18 +0300
commit0a2d415bd059366dcd43889fae9c239d40a8144d (patch)
tree545ae7f28c6aec47cb4c69e246d6767c0effe10b
parente551b737c3c787f770709b9659c68b029e6b92dc (diff)
downloadllvm-0a2d415bd059366dcd43889fae9c239d40a8144d.zip
llvm-0a2d415bd059366dcd43889fae9c239d40a8144d.tar.gz
llvm-0a2d415bd059366dcd43889fae9c239d40a8144d.tar.bz2
[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
-rw-r--r--lld/ELF/SyntheticSections.cpp4
-rw-r--r--lld/test/ELF/gdb-index-invalid-ranges.s8
-rw-r--r--lld/test/ELF/gdb-index-parse-fail.s4
3 files changed, 8 insertions, 8 deletions
diff --git a/lld/ELF/SyntheticSections.cpp b/lld/ELF/SyntheticSections.cpp
index 8fede22..5de3df8 100644
--- a/lld/ELF/SyntheticSections.cpp
+++ b/lld/ELF/SyntheticSections.cpp
@@ -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 {};
}
diff --git a/lld/test/ELF/gdb-index-invalid-ranges.s b/lld/test/ELF/gdb-index-invalid-ranges.s
index f146171..93e612e 100644
--- a/lld/test/ELF/gdb-index-invalid-ranges.s
+++ b/lld/test/ELF/gdb-index-invalid-ranges.s
@@ -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
diff --git a/lld/test/ELF/gdb-index-parse-fail.s b/lld/test/ELF/gdb-index-parse-fail.s
index 22ac5cc..2e814a4 100644
--- a/lld/test/ELF/gdb-index-parse-fail.s
+++ b/lld/test/ELF/gdb-index-parse-fail.s
@@ -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