2011-02-28 Michael Snyder <msnyder@vmware.com>
[deliverable/binutils-gdb.git] / gdb / gnu-v3-abi.c
index 0b80571194ba4fa328ab8b829fabb58b52fb5094..25a437b34978101d6529862b0ae9b733da9d864a 100644 (file)
@@ -411,8 +411,9 @@ gnuv3_virtual_fn_field (struct value **value_p,
    -1 is returned on error.  */
 
 static int
-gnuv3_baseclass_offset (struct type *type, int index, const bfd_byte *valaddr,
-                       CORE_ADDR address)
+gnuv3_baseclass_offset (struct type *type, int index,
+                       const bfd_byte *valaddr, int embedded_offset,
+                       CORE_ADDR address, const struct value *val)
 {
   struct gdbarch *gdbarch;
   struct type *ptr_type;
@@ -443,7 +444,7 @@ gnuv3_baseclass_offset (struct type *type, int index, const bfd_byte *valaddr,
     error (_("Misaligned vbase offset."));
   cur_base_offset = cur_base_offset / ((int) TYPE_LENGTH (ptr_type));
 
-  vtable = gnuv3_get_vtable (gdbarch, type, address);
+  vtable = gnuv3_get_vtable (gdbarch, type, address + embedded_offset);
   gdb_assert (vtable != NULL);
   vbase_array = value_field (vtable, vtable_field_vcall_and_vbase_offsets);
   base_offset = value_as_long (value_subscript (vbase_array, cur_base_offset));
This page took 0.02372 seconds and 4 git commands to generate.