Fix ICE in substring-handling building 502.gcc_r (PR 87562)
[official-gcc.git] / gcc / testsuite / gcc.dg / strlenopt-39.c
blobc65b4bfc1a4c87d73cb253e106a1759a2777cdb5
1 /* PR tree-optimization/83444
2 { dg-do compile { target i?86-*-* x86_64-*-* } }
3 { dg-options "-O2 -fdump-tree-optimized" } */
5 #include "strlenopt.h"
7 #define STR "1234567"
9 const char str[] = STR;
11 char dst[10];
13 void copy_from_global_str (void)
15 strcpy (dst, str);
17 if (strlen (dst) != sizeof str - 1)
18 abort ();
21 void copy_from_local_str (void)
23 const char s[] = STR;
25 strcpy (dst, s);
27 if (strlen (dst) != sizeof s - 1)
28 abort ();
31 void copy_from_local_memstr (void)
33 struct {
34 char s[sizeof STR];
35 } x = { STR };
37 strcpy (dst, x.s);
39 if (strlen (dst) != sizeof x.s - 1)
40 abort ();
43 void copy_to_local_str (void)
45 char d[sizeof STR];
47 strcpy (d, str);
49 if (strlen (d) != sizeof str - 1)
50 abort ();
53 void copy_to_local_memstr (void)
55 struct {
56 char d[sizeof STR];
57 } x;
59 strcpy (x.d, str);
61 if (strlen (x.d) != sizeof str- 1)
62 abort ();
65 /* Verify that all calls to strlen have been eliminated.
66 { dg-final { scan-tree-dump-not "(abort|strlen) \\(\\)" "optimized" } } */