https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83041
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=23094 --- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> --- For what it's worth, I first noticed it in the following (arguably more compelling) test case: $ cat c.c && gcc -g -O2 -S -Wall -fdump-tree-strlen=/dev/stdout c.c char a[4]; struct A { char a[4]; }; void f (struct A *p) { __builtin_strcpy (a, p->a); __builtin_strcpy (a, p->a); __builtin_strcpy (a, p->a); } ;; Function f (f, funcdef_no=0, decl_uid=1897, cgraph_uid=0, symbol_order=1) f (struct A * p) { char[4] * _1; <bb 2> [local count: 10000]: _1 = &p_2(D)->a; __builtin_strcpy (&a, _1); __builtin_strcpy (&a, _1); __builtin_strcpy (&a, _1); return; }