From 5bccb77a773b916d4824688e9138921f93c35039 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 4 Feb 2014 06:40:21 +0100 Subject: ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct lookup via vtable pointer... * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct lookup via vtable pointer; check for type consistency and turn inconsitent facts into UNREACHABLE. * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on type inconsistent querries; return UNREACHABLE instead. * testsuite/g++.dg/ipa/devirt-25.C: New testcase. From-SVN: r207448 --- gcc/ipa-utils.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/ipa-utils.h') diff --git a/gcc/ipa-utils.h b/gcc/ipa-utils.h index 3f9be17..d595e8a 100644 --- a/gcc/ipa-utils.h +++ b/gcc/ipa-utils.h @@ -87,6 +87,8 @@ tree method_class_type (tree); tree get_polymorphic_call_info (tree, tree, tree *, HOST_WIDE_INT *, ipa_polymorphic_call_context *); +bool get_polymorphic_call_info_from_invariant (ipa_polymorphic_call_context *, + tree, tree, HOST_WIDE_INT); tree vtable_pointer_value_to_binfo (tree t); bool vtable_pointer_value_to_vtable (tree, tree *, unsigned HOST_WIDE_INT *); -- cgit v1.1