https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91771
Xionghu Luo (luoxhu at gcc dot gnu.org) <yinyuefengyi at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |yinyuefengyi at gmail dot com
--- Comment #4 from Xionghu Luo (luoxhu at gcc dot gnu.org) <yinyuefengyi at
gmail dot com> ---
Just curious about the 021t.ssa dump...
int f (struct Derived & d)
{
struct Base * _1;
int _5;
int _6;
<bb 2> :
_1 = &d_2(D)->D.2395;
_5 = Base::foo (_1, 40);
_6 = _5;
return _6;
}
d_2 is a reference to "struct Derived" type instance, so is it an unnecessary
type promotion of promoting type "_1" to "struct Base *"? Another thing to be
noted is early inline pass inlined Base::foo into f, but it failed to
devirtualize the virtual call in it, is it possible to devirt the call if
"struct Derived * _1" is produced in ssa pass?