https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90441
--- Comment #12 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to rguent...@suse.de from comment #11) > On Mon, 13 May 2019, iains at gcc dot gnu.org wrote: > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90441 > > > > --- Comment #10 from Iain Sandoe <iains at gcc dot gnu.org> --- > > (In reply to Iain Sandoe from comment #9) > > > this is on the rev *before* the change, using llvm-dwarfdump from the > > > llvm-7 > > > branch: > > > > > > iains@gcc122:~/gcc-trunk/A$ ../../llvm-710-build/bin/llvm-dwarfdump > > > --verify > > > firmware.elf > > > Verifying firmware.elf: file format ELF64-x86-64 > > > Verifying .debug_abbrev... > > > Verifying .debug_info Unit Header Chain... > > > Verifying .debug_info references... > > > error: invalid DIE reference 0x00000000. Offset is in between DIEs: > > > > so probably a missing pointer? > > It looks like an unresolved relocation - those are to be resolved > from $label + offset where $label is defined in one of the early > debug units. Maybe we miss one early debug file in the link? It doesn't seem so: ../lto-a/bin/g++ -mtune=generic -march=x86-64 -r -nostdlib -o /tmp/ccXK3OSgdebugobj /tmp/ccuTtXKldebugobjtem /tmp/ccjVk9Cqdebugobjtem /tmp/ccodTovvdebugobjtem and they contain debug_info for the three object files.