r209461 - in /trunk/gcc: ChangeLog ipa-devirt.c...

hubicka@gcc.gnu.org hubicka@gcc.gnu.org
Thu Apr 17 02:43:00 GMT 2014


Author: hubicka
Date: Thu Apr 17 02:43:53 2014
New Revision: 209461

URL: http://gcc.gnu.org/viewcvs?rev=209461&root=gcc&view=rev
Log:

	* ipa-devirt.c (odr_type_d): Add field all_derivations_known.
	(type_all_derivations_known_p): New predicate.
	(type_all_ctors_visible_p): New predicate.
	(type_possibly_instantiated_p): New predicate.
	(get_odr_type): Compute all_derivations_known.
	(dump_odr_type): Dump the flag.
	(maybe_record_type): Cleanup.
	(record_target_from_binfo): Add bases_to_consider array;
	record bases for types w/o instances and skip CXX destructor.
	(possible_polymorphic_call_targets_1): Add bases_to_consider
	and consider_construction parameters; check if type may
	have instance.
	(get_polymorphic_call_info): Set maybe_in_construction to true
	when we know nothing.
	(record_targets_from_bases): Skip CXX destructors; they are
	never called for types in construction.
	(possible_polymorphic_call_targets): Do not record target when
	type may not have instance.

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


Added:
    trunk/gcc/testsuite/g++.dg/ipa/devirt-31.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ipa-devirt.c
    trunk/gcc/testsuite/ChangeLog



More information about the Gcc-cvs mailing list