diff options
author | Roland McGrath <roland@redhat.com> | 2006-12-17 23:56:51 +0000 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 2006-12-17 23:56:51 +0000 |
commit | 8190db6a86a37aec86c81626ab1b083c96aff891 (patch) | |
tree | 2b065733f6ee44885a447e9506fae59518076048 /libdw/dwarf_getlocation.c | |
parent | 7c0e79ffc201e4828a050b35f2c9d96e3001cb48 (diff) | |
download | elfutils-8190db6a86a37aec86c81626ab1b083c96aff891.tar.gz |
propagate from branch 'com.redhat.elfutils' (head b4944cf70801d9dac056f4f80ef1334e5acb8bdc)
to branch 'com.redhat.elfutils.roland.pending' (head e7e402c668fb0670fc5f6b6a522853ae88f32f11)
Diffstat (limited to 'libdw/dwarf_getlocation.c')
-rw-r--r-- | libdw/dwarf_getlocation.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c index f513f3ae..cefd052b 100644 --- a/libdw/dwarf_getlocation.c +++ b/libdw/dwarf_getlocation.c @@ -1,5 +1,5 @@ /* Return location expression list. - Copyright (C) 2000, 2001, 2002, 2004, 2005 Red Hat, Inc. + Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2000. @@ -472,8 +472,12 @@ dwarf_getlocation_addr (attr, address, llbufs, listlens, maxlocs) &base) != 0) { if (INTUSE(dwarf_errno) () == 0) - goto invalid; - return -1; + /* The compiler provided no base address when it should + have. Buggy GCC does this when it used absolute + addresses in the location list and no DW_AT_ranges. */ + base = 0; + else + return -1; } } |