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?