https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71544

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
             Status|WAITING                     |ASSIGNED
          Component|fortran                     |tree-optimization

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
So it's "easy" to explain.  The initialization gets optimized away because
appearantly points-to analysis concludes that the allocated storage does
not escape:

a_3 = &HEAP(10)
CALLUSED(12) = &STRING
_4 = a_3
D.3422 = a_3
callarg(19) = &D.3422
callarg(19) = *callarg(19) + UNKNOWN
CALLUSED(17) = callarg(19)
derefaddrtmp(20) = &NONLOCAL
*a_3 = derefaddrtmp(20)

-> ESCAPED, points-to non-local, points-to vars: { }

but this should have included HEAP(10).

Let me investigate.  It might be still a FE issue.

Reply via email to