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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2025-07-25

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.


   D.225026 ={v} {CLOBBER(eos)};
   MEM[(struct Vec *)&a] ={v} {CLOBBER(bob)};
-  MEM[(struct Vec *)&a] ={v} {CLOBBER(bob)};
-  MEM[(struct Vec *)&a] ={v} {CLOBBER(bob)};
-  MEM[(struct Vec *)&a] ={v} {CLOBBER(bob)};
-  MEM[(struct Vec *)&a] ={v} {CLOBBER(bob)};
   _48 = (unsigned char) invA_8;
   MEM[(struct Vec *)&a].val = _48;
   MEM[(struct Vec *)&a + 1B] ={v} {CLOBBER(bob)};
   MEM[(struct Vec *)&a + 1B].val = _48;
   MEM[(struct Vec *)&a + 2B] ={v} {CLOBBER(bob)};
-  MEM[(struct Vec *)&a + 2B] ={v} {CLOBBER(bob)};
   MEM[(struct Vec *)&a + 2B].val = _48;


still happens.
I would assume since (in this case) struct Vec is sizeof(1) and the store
`MEM[(struct Vec *)&a + 2B].val` stores the whole thing, then the clobber could
be removed too.

Reply via email to