| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-tailr1" } */ |
| |
| typedef long unsigned int size_t; |
| typedef int (*compare_t)(const void *, const void *); |
| |
| int partition (void *base, size_t nmemb, size_t size, compare_t cmp); |
| |
| void |
| my_qsort (void *base, size_t nmemb, size_t size, compare_t cmp) |
| { |
| int pt; |
| if (nmemb > 1) |
| { |
| pt = partition (base, nmemb, size, cmp); |
| my_qsort (base, pt + 1, size, cmp); |
| my_qsort ((void*)((char*) base + (pt + 1) * size), |
| nmemb - pt - 1, size, cmp); |
| } |
| } |
| |
| /* { dg-final { scan-tree-dump-not "cmp\[^\r\n\]*PHI" "tailr1" } } */ |