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 ...

Reply via email to