https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100260
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW CC| |ebotcazou at gcc dot gnu.org, | |jakub at gcc dot gnu.org Last reconfirmed| |2021-04-26 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. store-merging doesn't seem to consider memset() as candidate to merge with: Processing basic block <2>: Starting active chain number 1 with statement: s_pam.size = 1; The base object is: &s_pam stmt causes chain termination: _1 = use (&s_pam); Terminating chain with 1 stores unsigned int foo () { struct pam s_pam; int _1; unsigned int _6; <bb 2> [local count: 1073741824]: memset (&s_pam, 0, 20); s_pam.size = 1; _1 = use (&s_pam); _6 = (unsigned int) _1; s_pam ={v} {CLOBBER}; return _6; }