From 13d72a148e239265338a80acec26874a95a91ab6 Mon Sep 17 00:00:00 2001 From: Adam Nemet Date: Fri, 30 Jan 2009 01:04:47 +0000 Subject: [PATCH] * dwarf2.c (read_rangelist): Use read_address to read low_pc and high_pc in order to properly sign-extend VMAs. --- bfd/ChangeLog | 5 +++++ bfd/dwarf2.c | 19 +++++-------------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index cdf1a5d0bfe..16f061d77eb 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2009-01-29 Adam Nemet + + * dwarf2.c (read_rangelist): Use read_address to read low_pc and + high_pc in order to properly sign-extend VMAs. + 2009-01-29 Daniel Jacobowitz Mark Shinwell Catherine Moore diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index 4f2e38c5284..0c182534050 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -1803,20 +1803,11 @@ read_rangelist (struct comp_unit *unit, struct arange *arange, bfd_uint64_t offs bfd_vma low_pc; bfd_vma high_pc; - if (unit->addr_size == 4) - { - low_pc = read_4_bytes (unit->abfd, ranges_ptr); - ranges_ptr += 4; - high_pc = read_4_bytes (unit->abfd, ranges_ptr); - ranges_ptr += 4; - } - else - { - low_pc = read_8_bytes (unit->abfd, ranges_ptr); - ranges_ptr += 8; - high_pc = read_8_bytes (unit->abfd, ranges_ptr); - ranges_ptr += 8; - } + low_pc = read_address (unit, ranges_ptr); + ranges_ptr += unit->addr_size; + high_pc = read_address (unit, ranges_ptr); + ranges_ptr += unit->addr_size; + if (low_pc == 0 && high_pc == 0) break; if (low_pc == -1UL && high_pc != -1UL) -- 2.30.2