diff options
author | Michael Snyder <msnyder@specifix.com> | 2010-05-14 20:17:36 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@specifix.com> | 2010-05-14 20:17:36 +0000 |
commit | f14dc0aa828b0af6b18341cc6b3c031244eac8d3 (patch) | |
tree | 9faf3ad3ba995321b029d48937afd54108b8889a /gdb/gnu-v2-abi.c | |
parent | e9dff68d27e2246bd292098c52f25e92baecc6a5 (diff) | |
download | gdb-f14dc0aa828b0af6b18341cc6b3c031244eac8d3.tar.gz |
2010-05-14 Michael Snyder <msnyder@vmware.com>
* gcore.c: White space.
* gdb.c: White space.
* gdbtypes.c: White space.
* gnu-nat.c: White space.
* gnu-v2-abi.c: White space.
* gnu-v3-abi.c: White space.
Diffstat (limited to 'gdb/gnu-v2-abi.c')
-rw-r--r-- | gdb/gnu-v2-abi.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gdb/gnu-v2-abi.c b/gdb/gnu-v2-abi.c index 3f25e7335cb..67bf097569f 100644 --- a/gdb/gnu-v2-abi.c +++ b/gdb/gnu-v2-abi.c @@ -113,6 +113,7 @@ gnuv2_virtual_fn_field (struct value **arg1p, struct fn_field * f, int j, if (TYPE_TARGET_TYPE (context) != type1) { struct value *tmp = value_cast (context, value_addr (arg1)); + arg1 = value_ind (tmp); type1 = check_typedef (value_type (arg1)); } @@ -359,8 +360,8 @@ gnuv2_baseclass_offset (struct type *type, int index, if (vb_match (type, i, basetype)) { CORE_ADDR addr - = unpack_pointer (TYPE_FIELD_TYPE (type, i), - valaddr + (TYPE_FIELD_BITPOS (type, i) / 8)); + = unpack_pointer (TYPE_FIELD_TYPE (type, i), + valaddr + (TYPE_FIELD_BITPOS (type, i) / 8)); return addr - (LONGEST) address; } @@ -369,7 +370,8 @@ gnuv2_baseclass_offset (struct type *type, int index, for (i = index + 1; i < n_baseclasses; i++) { int boffset = - baseclass_offset (type, i, valaddr, address); + baseclass_offset (type, i, valaddr, address); + if (boffset) return boffset; } |