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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-04-22
     Ever confirmed|0                           |1
            Version|unknown                     |12.0
          Component|c                           |middle-end

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hmm, on x86-64 I see

  <bb 2> :
  x = {};
  x.s = *s_3(D);
  _6 = foobar (&x);

so I suppose this is DSE mem* trimming not working for the x = {}; variant.
There might be already a bug with respect to that.

Indeed gimplification could be smarter and handle the contiguous zeros case
better.  I also wonder why it chooses to do the zero pre-init for just two
ints, maybe it gives up for arrays.

Reply via email to