/* { dg-do run } */ | |
#define N 9 | |
void __attribute__((noipa)) | |
f (double x, double y, double *res) | |
{ | |
y = -y; | |
for (int i = 0; i < N; ++i) | |
{ | |
double tmp = y; | |
y = x; | |
x = tmp; | |
res[i] = i; | |
} | |
res[N] = y * y; | |
res[N + 1] = x; | |
} | |
int | |
main (void) | |
{ | |
double res[N + 2]; | |
f (10, 20, res); | |
for (int i = 0; i < N; ++i) | |
if (res[i] != i) | |
__builtin_abort (); | |
if (res[N] != 100 || res[N + 1] != -20) | |
__builtin_abort (); | |
return 0; | |
} |