> Hi, > > On 02/04/2014 06:43 AM, Jan Hubicka wrote: > >Hi, > >this patch solves the actual ICE in PR59831 by using ipa-devirt instead of > >gimple_extract_devirt_binfo_from_cst as discussed in the first post. > > > >Honza > > > > PR ipa/59831 > > * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt > > to figure out targets of polymorphic calls with known decl. > > * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. > > * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare. > > * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ... > > (get_polymorphic_call_info): ... here. > > (get_polymorphic_call_info_from_invariant): New function. > > > > * g++.dg/ipa/devirt-22.C: New testcase. > Today I'm seeing regressions in the libstdc++-v3 testsuite in the > form of ICEs exactly in ipa_get_indirect_edge_target_1:
Ah, sorry, I had the can_refer_to_current_unit_p patch in my tree too and at last minute I decided to split those two changes. I will add check to ipa_get_indirect_edge_target_1 to expect target to be NULLnow and als commit the change now approved by Richard. Honza > > FAIL: 27_io/basic_stringbuf/sputbackc/char/9425.cc (test for excess errors) > WARNING: 27_io/basic_stringbuf/sputbackc/char/9425.cc compilation > failed to produce executable > FAIL: 27_io/basic_stringbuf/sputbackc/wchar_t/9425.cc (test for > excess errors) > WARNING: 27_io/basic_stringbuf/sputbackc/wchar_t/9425.cc compilation > failed to produce executable > FAIL: 27_io/basic_stringbuf/str/char/2.cc (test for excess errors) > WARNING: 27_io/basic_stringbuf/str/char/2.cc compilation failed to > produce executable > FAIL: 27_io/basic_stringbuf/str/wchar_t/2.cc (test for excess errors) > WARNING: 27_io/basic_stringbuf/str/wchar_t/2.cc compilation failed > to produce executable > > Can you please have a look? > > Thanks, > Paolo.