Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/strlenopt-39.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line source
/* PR tree-optimization/83444 { dg-do compile { target i?86-*-* x86_64-*-* } } { dg-options "-O2 -fdump-tree-optimized" } */ #include "strlenopt.h" #define STR "1234567" const char str[] = STR; char dst[10]; void copy_from_global_str (void) { strcpy (dst, str); if (strlen (dst) != sizeof str - 1) abort (); } void copy_from_local_str (void) { const char s[] = STR; strcpy (dst, s); if (strlen (dst) != sizeof s - 1) abort (); } void copy_from_local_memstr (void) { struct { char s[sizeof STR]; } x = { STR }; strcpy (dst, x.s); if (strlen (dst) != sizeof x.s - 1) abort (); } void copy_to_local_str (void) { char d[sizeof STR]; strcpy (d, str); if (strlen (d) != sizeof str - 1) abort (); } void copy_to_local_memstr (void) { struct { char d[sizeof STR]; } x; strcpy (x.d, str); if (strlen (x.d) != sizeof str- 1) abort (); } /* Verify that all calls to strlen have been eliminated. { dg-final { scan-tree-dump-not "(abort|strlen) \\(\\)" "optimized" } } */