summaryrefslogtreecommitdiff
path: root/gdb/gnu-v3-abi.c
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2010-05-14 20:17:36 +0000
committerMichael Snyder <msnyder@specifix.com>2010-05-14 20:17:36 +0000
commitf14dc0aa828b0af6b18341cc6b3c031244eac8d3 (patch)
tree9faf3ad3ba995321b029d48937afd54108b8889a /gdb/gnu-v3-abi.c
parente9dff68d27e2246bd292098c52f25e92baecc6a5 (diff)
downloadgdb-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-v3-abi.c')
-rw-r--r--gdb/gnu-v3-abi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c
index b1882a25a5d..571b52a8880 100644
--- a/gdb/gnu-v3-abi.c
+++ b/gdb/gnu-v3-abi.c
@@ -586,6 +586,7 @@ gnuv3_print_method_ptr (const gdb_byte *contents,
{
char *demangled_name = cplus_demangle (physname,
DMGL_ANSI | DMGL_PARAMS);
+
fprintf_filtered (stream, "&virtual ");
if (demangled_name == NULL)
fputs_filtered (physname, stream);
@@ -628,6 +629,7 @@ gnuv3_method_ptr_size (struct type *type)
{
struct type *domain_type = check_typedef (TYPE_DOMAIN_TYPE (type));
struct gdbarch *gdbarch = get_type_arch (domain_type);
+
return 2 * TYPE_LENGTH (builtin_type (gdbarch)->builtin_data_ptr);
}
@@ -710,6 +712,7 @@ gnuv3_method_ptr_to_value (struct value **this_p, struct value *method_ptr)
if (vbit)
{
LONGEST voffset;
+
voffset = ptr_value / TYPE_LENGTH (vtable_ptrdiff_type (gdbarch));
return gnuv3_get_virtual_fn (gdbarch, value_ind (*this_p),
method_type, voffset);