summaryrefslogtreecommitdiff
path: root/gdb/cp-valprint.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2012-03-15 15:49:42 +0000
committerTom Tromey <tromey@redhat.com>2012-03-15 15:49:42 +0000
commit410528f093e41d8d8ca5eae37d4bb57c98a3122b (patch)
tree3276d46c33ffc84c9bb1b28c99402a2fc4fbdfe7 /gdb/cp-valprint.c
parentc4aeac856a297bbcf96e565e5bad277bfcff3c1b (diff)
downloadbinutils-gdb-410528f093e41d8d8ca5eae37d4bb57c98a3122b.tar.gz
* cp-valprint.c (cp_print_value_fields): Use
print_function_pointer_address for vtable slot. gdb/testsuite * gdb.cp/virtfunc2.exp: Update expected output. * gdb.cp/pr9631.exp: Update expected output. * gdb.cp/member-ptr.exp: Update expected output. * gdb.cp/inherit.exp (test_print_mvi_classes): Update expected output. * gdb.cp/casts.exp: Update expected output.
Diffstat (limited to 'gdb/cp-valprint.c')
-rw-r--r--gdb/cp-valprint.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c
index 169700660f0..cb85b0b18bc 100644
--- a/gdb/cp-valprint.c
+++ b/gdb/cp-valprint.c
@@ -358,6 +358,17 @@ cp_print_value_fields (struct type *type, struct type *real_type,
v, stream, recurse + 1,
options);
}
+ else if (i == TYPE_VPTR_FIELDNO (type))
+ {
+ CORE_ADDR addr
+ = extract_typed_address (valaddr + offset
+ + TYPE_FIELD_BITSIZE (type, i) / 8,
+ TYPE_FIELD_TYPE (type, i));
+
+ print_function_pointer_address (get_type_arch (type),
+ addr, stream,
+ options->addressprint);
+ }
else
{
struct value_print_options opts = *options;