summaryrefslogtreecommitdiff
path: root/binutils/dwarf.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2008-01-29 02:55:48 +0000
committerAlan Modra <amodra@gmail.com>2008-01-29 02:55:48 +0000
commitfefffff8d22c26ea6e69d24097913e2b6adae2e3 (patch)
treedc357604d1891c3fa008384ebafef25048a50145 /binutils/dwarf.c
parentccdb9c9f3613bfac4064baa855003cf4c8a57a92 (diff)
downloadbinutils-gdb-fefffff8d22c26ea6e69d24097913e2b6adae2e3.tar.gz
* dwarf.c (display_debug_loc): Correct test for base address
entry when 64-bit host dumping 32-bit object.
Diffstat (limited to 'binutils/dwarf.c')
-rw-r--r--binutils/dwarf.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index d4eb4aa617f..426cf36ec64 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -2618,6 +2618,7 @@ display_debug_loc (struct dwarf_section *section, void *file)
{
unsigned long begin;
unsigned long end;
+ unsigned long minus_one;
unsigned short length;
unsigned long offset;
unsigned int pointer_size;
@@ -2678,7 +2679,10 @@ display_debug_loc (struct dwarf_section *section, void *file)
}
/* Check base address specifiers. */
- if (begin == -1UL && end != -1UL)
+ minus_one = -1;
+ if (pointer_size < sizeof (minus_one))
+ minus_one = (1L << (pointer_size * 8)) - 1;
+ if (begin == minus_one && end != minus_one)
{
base_address = end;
printf (_(" %8.8lx %8.8lx %8.8lx (base address)\n"),