From b0cca5ecbb2841811a6c6aeaa40a3040289aeba3 Mon Sep 17 00:00:00 2001 From: Caroline Tice Date: Sat, 1 Aug 2015 18:17:39 -0700 Subject: re PR bootstrap/66521 (xgcc: cc1plus segfaults when compiling libstdc++-v3/src/c++11/ostream-inst.cc) Fix PR 66521 libvtv/ChangeLog 2015-08-01 Caroline Tice PR 66521 * Makefile.am: Update to match latest tree. * Makefile.in: Regenerate. * testsuite/lib/libvtv: Brought up to date. * vtv_malloc.cc (VTV_DEBUG): Update function call to match renamed function (old bug!). * vtv_rts.cc (debug_functions, debug_init, debug_verify_vtable): Update initializations to work correctly with VTV_DEBUG defined. gcc/ChangeLog: 2015-08-01 Caroline Tice PR 66521 * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New global variables. (vtbl_find_mangled_name): New function. (vtbl_register_mangled_name): New function. (vtbl_map_get_node): If DECL_ASSEMBLER_NAME is "", look up mangled name in mangled name vectors. (find_or_create_vtbl_map_node): Ditto. (var_is_used_for_virtual_call_p): Add recursion_depth parameter; update recursion_depth on function entry; pass it to every recursive call; automatically exit if depth > 25 (give up looking at that point). (verify_bb_vtables): Initialize recursion_depth and pass it to var_is_used_for_virtual_call_p. * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New global variable decls. (vtbl_register_mangled_name): New extern function decl. gcc/cp/ChangeLog: 2015-08-01 Caroline Tice PR 66521 * mangle.c : Add vtable-verify.h to include files. (get_mangled_vtable_map_var_name): If the DECL_ASSEMBLER_NAME is "" get the real mangled name for the class instead, and also store the real mangled name in a vector for use later. From-SVN: r226471 --- gcc/vtable-verify.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gcc/vtable-verify.h') diff --git a/gcc/vtable-verify.h b/gcc/vtable-verify.h index dda6f06..178ba36 100644 --- a/gcc/vtable-verify.h +++ b/gcc/vtable-verify.h @@ -127,6 +127,11 @@ extern bool vtv_debug; /* The global vector of vtbl_map_nodes. */ extern vec vtbl_map_nodes_vec; +/* The global vectors for mangled class names for anonymous classes. */ +extern GTY(()) vec *vtbl_mangled_name_types; +extern GTY(()) vec *vtbl_mangled_name_ids; + +extern void vtbl_register_mangled_name (tree, tree); extern struct vtbl_map_node *vtbl_map_get_node (tree); extern struct vtbl_map_node *find_or_create_vtbl_map_node (tree); extern void vtbl_map_node_class_insert (struct vtbl_map_node *, unsigned); -- cgit v1.1