ipa-devirt.c (odr_type_d): Add field all_derivations_known.
* 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. From-SVN: r209461
Showing
This diff is collapsed.
Click to expand it.
gcc/testsuite/g++.dg/ipa/devirt-31.C
0 → 100644
Please
register
or
sign in
to comment