https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110914
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[11/12/13/14 Regression] |[11/12/13/14 Regression] |Optimization eliminating |Optimization eliminating |necessary assignment before |necessary assignment before |0-byte memcpy |0-byte memcpy since | |r10-5451 CC| |jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Started with r10-5451-gef29b12cfbb4979a89b3c C testcase for -O2: __attribute__ ((noipa)) int foo (const char *s, unsigned long l) { unsigned char r = 0; __builtin_memcpy (&r, s, l != 0); return r; } int main () { const char *p = "123456"; int a = foo (p, __builtin_strlen (p) - 5); int b = foo (p, __builtin_strlen (p) - 6); if (a != '1') __builtin_abort (); if (b != 0) __builtin_abort (); }