2 /* { dg-options "-O2 -ftree-loop-distribution -fdump-tree-ldist-details" } */
3 /* { dg-final { scan-tree-dump-times "generated strlenQI\n" 3 "ldist" } } */
7 typedef __SIZE_TYPE__
size_t;
8 extern void* malloc (size_t);
9 extern void* memset (void*, int, size_t);
11 __attribute__((noinline
))
12 int test_pos (char *s
)
15 for (i
=42; s
[i
]; ++i
);
19 __attribute__((noinline
))
20 int test_neg (char *s
)
23 for (i
=-42; s
[i
]; ++i
);
27 __attribute__((noinline
))
28 int test_including_null_char (char *s
)
31 for (i
=1; s
[i
-1]; ++i
);
37 void *p
= malloc (1024);
39 memset (p
, 0xf, 1024);
40 char *s
= (char *)p
+ 100;
43 assert (test_pos (s
) == 42+13);
47 assert (test_neg (s
) == 13);
51 assert (test_neg (s
) == -13);
55 assert (test_including_null_char (s
) == 13+1);