/* PR tree-optimization/83444 */ /* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ /* { dg-final { scan-tree-dump-not "abort \\(\\)" "optimized" } } */ #include "strlenopt.h" void foo (void) { char a[5] = "012"; strcpy (a, ""); if (strlen (a) != 0) abort (); } void bar (void) { char a[5] = "012"; char b[7] = ""; strcpy (a, b); if (strlen (a) != 0) abort (); } struct S { char a[4]; char b[5]; char c[7]; }; void baz (void) { struct S s; strcpy (s.b, "012"); strcpy (s.c, ""); strcpy (s.b, s.c); if (s.b[0] != 0) abort (); } void boo (void) { struct S s; strcpy (s.b, "012"); strcpy (s.c, ""); strcpy (s.b, s.c); if (strlen (s.b) != 0) abort (); }