ipa-prop.c (type_change_info): New fields offset, object, known_current_type and...
authorMartin Jambor <mjambor@suse.cz>
Thu, 3 Nov 2011 13:53:29 +0000 (14:53 +0100)
committerMartin Jambor <jamborm@gcc.gnu.org>
Thu, 3 Nov 2011 13:53:29 +0000 (14:53 +0100)
commit290ebcb77f6fb6033d3aa1ed3c8807cb86a30c6f
treee661722751a83456ce47c31c36a8cf188d06b2aa
parent969d578c2df1fd86ad6a29347ddbaa8ff248df75
ipa-prop.c (type_change_info): New fields offset, object, known_current_type and multiple_types_encountered.

2011-11-03  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.c (type_change_info): New fields offset, object,
known_current_type and multiple_types_encountered.
(extr_type_from_vtbl_ptr_store): New function.
(check_stmt_for_type_change): Use it, set multiple_types_encountered if
        the result is different from the previous one.
(detect_type_change): Renamed to detect_type_change_1. New parameter
comp_type.  Set up new fields in tci, build known type jump
functions if the new type can be identified.
(detect_type_change): New function.
* tree.h (DECL_CONTEXT): Comment new use.

* testsuite/g++.dg/ipa/devirt-c-1.C: Add dump scans.
* testsuite/g++.dg/ipa/devirt-c-2.C: Likewise.
* testsuite/g++.dg/ipa/devirt-c-7.C: New test.
* testsuite/g++.dg/ipa/devirt-c-8.C: Likewise.

From-SVN: r180825
gcc/ChangeLog
gcc/ipa-prop.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/devirt-c-1.C
gcc/testsuite/g++.dg/ipa/devirt-c-2.C
gcc/testsuite/g++.dg/ipa/devirt-c-7.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ipa/devirt-c-8.C [new file with mode: 0644]
gcc/tree.h