diff options
author | Alan Modra <amodra@bigpond.net.au> | 2002-06-27 11:51:42 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2002-06-27 11:51:42 +0000 |
commit | 672a634c68559d3c9ceb39c752792d765d3adc8d (patch) | |
tree | df37f1dd9f04dce800a0ee684b15bb25a2eb3863 /bfd/dwarf2.c | |
parent | 3c085ac2ab23f06751aff420ddeb4940f50c1a8a (diff) | |
download | binutils-redhat-672a634c68559d3c9ceb39c752792d765d3adc8d.tar.gz |
2002-06-27 Kevin Buettner <kevinb@redhat.com>
* dwarf2.c (decode_line_info): Handle older, non-standard, 64-bit
DWARF2 formats.
Diffstat (limited to 'bfd/dwarf2.c')
-rw-r--r-- | bfd/dwarf2.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index 008582e1ed..005a21f7d3 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; |