/* { dg-do run } */ | |
/* { dg-options "-O2" } */ | |
short aa; | |
void | |
__attribute__ ((noinline, noclone)) | |
recursive (int *a, int *b, int *c, int level) | |
{ | |
if (level && c) | |
{ | |
recursive (b,a,c,0); | |
aa++; | |
} | |
else | |
*a=0; | |
} | |
int | |
main() | |
{ | |
int x = 123, y=124, z=125; | |
recursive (&x,&y,&z,1); | |
if (y) | |
__builtin_abort (); | |
if (!__builtin_constant_p (z)) | |
__builtin_abort (); | |
return 0; | |
} |