From 72f1fe8a88c4dc9219c4263eff2bbcf61173e607 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 15 Apr 2013 18:09:02 +0000 Subject: PR c++/15176: * NEWS: Update. * break-catch-throw.c (compute_exception): New function. (exception_funcs): New global. (_initialize_break_catch_throw): Create $_exception. * cp-abi.c (cplus_type_from_type_info): New function. * cp-abi.h (cplus_type_from_type_info): Declare. (struct cp_abi_ops) : New field. * gnu-v3-abi.c (gnuv3_get_typename_from_type_info) (gnuv3_get_type_from_type_info): New functions. (init_gnuv3_ops): Set get_type_from_type_info ABI field. gdb/doc * gdb.texinfo (Set Catchpoints): Document $_exception. (Convenience Vars): Mention $_exception. gdb/testsuite * gdb.base/default.exp: Update for $_exception. * gdb.cp/exceptprint.cc: New file. * gdb.cp/exceptprint.exp: New file. * lib/gdb.exp (skip_libstdcxx_probe_tests): New proc. --- gdb/cp-abi.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'gdb/cp-abi.c') diff --git a/gdb/cp-abi.c b/gdb/cp-abi.c index 7ac2a20..a15e359 100644 --- a/gdb/cp-abi.c +++ b/gdb/cp-abi.c @@ -199,6 +199,16 @@ cplus_typeid_type (struct gdbarch *gdbarch) return (*current_cp_abi.get_typeid_type) (gdbarch); } +/* See cp-abi.h. */ + +struct type * +cplus_type_from_type_info (struct value *value) +{ + if (current_cp_abi.get_type_from_type_info == NULL) + error (_("GDB cannot find the type from a std::type_info on this target")); + return (*current_cp_abi.get_type_from_type_info) (value); +} + int cp_pass_by_reference (struct type *type) { -- cgit v1.1