http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54428
--- Comment #2 from Marek Polacek <polacek at redhat dot com> 2012-08-31 05:46:07 UTC --- Reduced. Note that the typedef is needed to trigger ICE. typedef double _Complex fftw_complex; extern fftw_complex *fftw_alloc_complex (int); int cf (int n) { int K = 75; int nf = 1024; int i; fftw_complex *w = fftw_alloc_complex (nf); fftw_complex *f = fftw_alloc_complex (nf); double S[K * sizeof (double)]; double s_val = S[n]; fftw_complex *b = fftw_alloc_complex (nf); fftw_complex *rt = fftw_alloc_complex (nf); for (i = 0; i < nf; ++i) { rt[i] = f[i] - s_val * __builtin_cpow (w[i], K) * b[i]; } }