]> git.ipfire.org Git - thirdparty/gcc.git/commit
ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct lookup via vtable pointer...
authorJan Hubicka <jh@suse.cz>
Tue, 4 Feb 2014 03:42:37 +0000 (04:42 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 4 Feb 2014 03:42:37 +0000 (03:42 +0000)
commit9de2f554ec689296676dee4f4482e059438a5991
tree27d5b0441b9bc4563a35749d28be56e44f3e21ec
parent4b076d8a4d638ded2d71160f88faba811161b378
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.

* g++.dg/ipa/devirt-25.C: New testcase.

From-SVN: r207447
gcc/ChangeLog
gcc/gimple-fold.c
gcc/ipa-cp.c
gcc/ipa-prop.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/devirt-25.C [new file with mode: 0644]