| /* PR tree-optimization/71707 */ | |
| /* { dg-do run } */ | |
| /* { dg-options "-O2 -fdump-tree-strlen" } */ | |
| #include "strlenopt.h" | |
| char a[32]; | |
| size_t b; | |
| __attribute__((noinline, noclone)) char * | |
| foo (void) | |
| { | |
| char *p = memcpy (a, "a", 2) + 1; | |
| memcpy (&a[1], "b", 2); | |
| b = strlen (a) + strlen (&a[1]) + strlen (p); | |
| return p; | |
| } | |
| int | |
| main () | |
| { | |
| if (foo () != &a[1] || b != 4) | |
| abort (); | |
| return 0; | |
| } | |
| /* { dg-final { scan-tree-dump-times "strlen \\(" 0 "strlen1" } } */ |