/* { dg-do compile } */ | |
/* { dg-options "-Os -floop-parallelize-all -fno-tree-dce" } */ | |
__attribute__ ((returns_twice)) int | |
bar (void); | |
void | |
quux (void); | |
void | |
empty (void) | |
{ | |
} | |
unsigned int | |
choose (unsigned int x, unsigned int y) | |
{ | |
return y ? x : 0; | |
} | |
int | |
foo (int *p, unsigned int x, int y) | |
{ | |
unsigned int acc = 0; | |
empty (); | |
while (x) | |
{ | |
bar (); | |
++x; | |
} | |
while (y) | |
acc += y; | |
*p = choose (acc, 1); | |
quux (); | |
return x; | |
} |