diff options
author | Michael Snyder <msnyder@vmware.com> | 2010-05-14 20:17:37 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@vmware.com> | 2010-05-14 20:17:37 +0000 |
commit | d8734c886e14a4840c59ad815f7b9dc81cc9276c (patch) | |
tree | 395ab2af286b87c99b9180d65d5356c99b8e9666 /gdb/gnu-v2-abi.c | |
parent | bb9bcb69cdddee8069bf24321f9a0e91ffd22f32 (diff) | |
download | gdb-d8734c886e14a4840c59ad815f7b9dc81cc9276c.zip gdb-d8734c886e14a4840c59ad815f7b9dc81cc9276c.tar.gz gdb-d8734c886e14a4840c59ad815f7b9dc81cc9276c.tar.bz2 |
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 3f25e73..67bf097 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; } |