https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111517
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Optimization -O1 removes |[12/13 Regression]
|necessary loop for |Optimization -O1 removes
|initialization |necessary loop for
| |initialization
Known to work|14.0 |
Target Milestone|--- |11.5
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
-fno-ivopts allows the code to pass.
The difference between GCC 13 and the trunk is:
trunk:
_30 = &MEM[(unsigned int *)0B + -320B + ivtmp.27_37 + ivtmp.16_4 * 4];
_1 = *_30;
vs:
GCC 13:
_1 = MEM[(unsigned int *)0B + -320B + ivtmp.27_36 + ivtmp.16_4 * 4];
And the call
TestClass::init (&tmp);
is still there in _GLOBAL__sub_I__ZN9TestClass4initEv ...