> The problem with devirt-10 and devirt-15 is the excellent kludge for
> aliases on AIX can produce multiple symbols.
> 
> ipa-prop: Discovered a virtual call to a known target (void
> wxBufferedDC::InitCommon(wxDCBase*)/3 -> virtual void
> wxDCBase::_ZN8wxDCBase18SetLayoutDirectionEi.localalias.6(int)/36),
> for stmt OBJ_TYPE_REF(_6;_7->1) (_7, _11);
> Speculative call turned into direct call.
> ipa-prop: Discovered a virtual call to a known target (void
> wxBufferedDC::InitCommon(wxDCBase*)/3 -> virtual int
> wxDCBase::_ZNK8wxDCBase18GetLayoutDirectionEv.localalias.5()
> const/35), for stmt _11 = OBJ_TYPE_REF(_9;dc_2(D)->0) (dc_2(D));
> 
> 
> The testcase expects exactly 1 occurrence, but the new code produces 2 for 
> AIX.
> 
> What is the best way to adjust the testcases?

I guess it actually difference in inlining - those aliases are not of same
symbols so we devirtualize more than the testcase's template expect.  It may
just go away with enabling COMDAT but I need to look into making those two
testcases more robust.

Definitely not a wrong code issue though, just fragile testcase.
Honza
> 
> Thanks, David

Reply via email to