/* PR tree-optimization/86835 */ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -Wuninitialized" } */ __attribute__((noipa)) void foo (int n, double *x, double *y) { /* { dg-bogus "is used uninitialized in this function" "" { target *-*-* } 0 } */ int i; double b = y[4]; for (i = 0; i < n; ++i) y[3] += __builtin_sin (x[i] / b); y[0] /= b; y[1] /= b * b; y[2] /= b; } int main () { double y[] = { 16.0, 64.0, 128.0, 0.0, 2.0 }; foo (0, y, y); if (__builtin_fabs (y[0] - 8.0) > 0.0001 || __builtin_fabs (y[1] - 16.0) > 0.0001 || __builtin_fabs (y[2] - 64.0) > 0.0001 || y[3] != 0.0 || y[4] != 2.0) __builtin_abort (); return 0; }