aboutsummaryrefslogtreecommitdiff
path: root/gdb/gnu-v2-abi.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/gnu-v2-abi.c')
-rw-r--r--gdb/gnu-v2-abi.c8
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;
}