Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/gcc.dg/strlenopt-38.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/gcc.dg/strlenopt-38.c Thu Oct 25 07:37:49 2018 +0900 @@ -0,0 +1,49 @@ +/* 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 (); +}