http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59209
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- We simply are not able to optimize x + 1 - x to 1. See also PR58742 for which I think this is a dup. _2 = x_1(D) + 1; src_end.1_8 = (long int) _2; src_start.2_9 = (long int) x_1(D); _10 = src_end.1_8 - src_start.2_9; _11 = (long unsigned int) _10; __builtin_memcpy (&r, x_1(D), _11); later on RTL we optimize the size argument to 1 but that's too late. *** This bug has been marked as a duplicate of bug 58742 ***