From 0318cca4934fc5d85e83351842985ad2a3475146 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 28 Jan 2021 04:21:15 -0800 Subject: [PATCH] gold: Skip address size and segment selector for DWARF5 The .debug_line secton in DWARF5 has a byte for address size and a byte for segment selector after DWARF version. Skip them for DWARF5. PR gold/27246 * dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog): Skip address size and segment selector for DWARF5. --- gold/ChangeLog | 6 ++++++ gold/dwarf_reader.cc | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/gold/ChangeLog b/gold/ChangeLog index 64f7b78a00..5180c02f26 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2021-01-28 H.J. Lu + + PR gold/27246 + * dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog): + Skip address size and segment selector for DWARF5. + 2021-01-19 Alan Modra PR 27203 diff --git a/gold/dwarf_reader.cc b/gold/dwarf_reader.cc index 487376965d..f0e6b89bde 100644 --- a/gold/dwarf_reader.cc +++ b/gold/dwarf_reader.cc @@ -1658,6 +1658,10 @@ Sized_dwarf_line_info::read_header_prolog( header_.version = elfcpp::Swap_unaligned<16, big_endian>::readval(lineptr); lineptr += 2; + // Skip address size and segment selector for DWARF5. + if (header_.version >= 5) + lineptr += 2; + if (header_.offset_size == 4) header_.prologue_length = elfcpp::Swap_unaligned<32, big_endian>::readval(lineptr); else -- 2.34.1