summaryrefslogtreecommitdiff
path: root/gdb/cp-abi.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@debian.org>2007-05-07 11:49:05 +0000
committerDaniel Jacobowitz <dan@debian.org>2007-05-07 11:49:05 +0000
commit47e2ac0d3a70a7426118678fdf3d12a3377ce9e1 (patch)
tree15d158e00db4ac2d1ce6cbdf702338383eb4e470 /gdb/cp-abi.c
parentfc743d79f8859b1d4810d132329fccaad6371a10 (diff)
downloadgdb-47e2ac0d3a70a7426118678fdf3d12a3377ce9e1.tar.gz
* Makefile.in (c-lang.o, gnu-v3-abi.o): Update.
* NEWS: Mention improved C++ thunk support. * c-lang.c (cplus_language_defn): Mention cplus_skip_trampoline. * cp-abi.c (cplus_skip_trampoline): New. * cp-abi.h (cplus_skip_trampoline): New prototype. (struct cp_abi_ops): Add skip_trampoline member. * gnu-v3-abi.c (gnuv3_skip_trampoline): New. (init_gnuv3_ops): Set skip_trampoline. * gdb.cp/virtfunc.exp (proc do_tests): Test stepping through a thunk.
Diffstat (limited to 'gdb/cp-abi.c')
-rw-r--r--gdb/cp-abi.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/cp-abi.c b/gdb/cp-abi.c
index 23b5f9a20e1..7bc15525977 100644
--- a/gdb/cp-abi.c
+++ b/gdb/cp-abi.c
@@ -121,6 +121,14 @@ cplus_make_method_ptr (gdb_byte *contents, CORE_ADDR value, int is_virtual)
(*current_cp_abi.make_method_ptr) (contents, value, is_virtual);
}
+CORE_ADDR
+cplus_skip_trampoline (CORE_ADDR stop_pc)
+{
+ if (current_cp_abi.skip_trampoline == NULL)
+ return 0;
+ return (*current_cp_abi.skip_trampoline) (stop_pc);
+}
+
struct value *
cplus_method_ptr_to_value (struct value **this_p, struct value *method_ptr)
{