From 91a4d5692a308100eef2865c679adbc1600f9649 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 27 Jun 2002 11:51:42 +0000 Subject: [PATCH] 2002-06-27 Kevin Buettner * dwarf2.c (decode_line_info): Handle older, non-standard, 64-bit DWARF2 formats. --- bfd/ChangeLog | 9 +++++++-- bfd/dwarf2.c | 20 ++++++++------------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ff06e421fa8..68f0282370e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2002-06-27 Kevin Buettner + + * dwarf2.c (decode_line_info): Handle older, non-standard, 64-bit + DWARF2 formats. + 2002-06-27 Alan Modra * cpu-powerpc.c: Comment on ordering of arch_info. @@ -20,8 +25,8 @@ * config.bfd (powerpc-*-aix5*): Only create a selvecs for aix5coff64_vec if 64-bit bfd support has been enabled. - (powerpc64-*-aix5*): Only define if 64-bit bfd support has - been enabled. + (powerpc64-*-aix5*): Only define if 64-bit bfd support has + been enabled. * targets.c (_bfd_target_vector[]): Only include aix5coff64_vec if 64-bit bfd support has been enabled. diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index 008582e1ed5..005a21f7d3b 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -981,24 +981,20 @@ decode_line_info (unit, stash) line_ptr = stash->dwarf_line_buffer + unit->line_offset; /* Read in the prologue. */ - if (unit->addr_size == 4) - { - lh.total_length = read_4_bytes (abfd, line_ptr); - line_ptr += 4; - offset_size = 4; - } - else + lh.total_length = read_4_bytes (abfd, line_ptr); + line_ptr += 4; + offset_size = 4; + if (lh.total_length == 0xffffffff) { - BFD_ASSERT (unit->addr_size == 8); lh.total_length = read_8_bytes (abfd, line_ptr); line_ptr += 8; offset_size = 8; } - - if (lh.total_length == 0xffffffff) + else if (lh.total_length == 0 && unit->addr_size == 8) { - lh.total_length = read_8_bytes (abfd, line_ptr); - line_ptr += 8; + /* Handle (non-standard) 64-bit DWARF2 formats. */ + lh.total_length = read_4_bytes (abfd, line_ptr); + line_ptr += 4; offset_size = 8; } line_end = line_ptr + lh.total_length; -- 2.30.2