> 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