https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88800
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2019-01-11 CC| |msebor at gcc dot gnu.org Ever confirmed|0 |1 Known to fail| |8.2.0, 9.0 --- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> --- Confirmed. The warning is issued by the restrict pass when the memmove call is being folded into MEM_REF, i.e., __builtin_memmove (&b.data, &c, 16); into: _15 = MEM[(char * {ref-all})&c]; MEM[(char * {ref-all})&b] = _15; and before b.size's initial negative value has been constant-propagated. I don't know if teaching the restrict pass about MEM_REF rather than having the folder call into the pass would be viable given the unreliability of the MEM_REF argument.