https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70001
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2016-02-28 CC| |trippels at gcc dot gnu.org Summary|Infinity compilation time |[5 regression] Infinity | |compilation time Ever confirmed|0 |1 --- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Confirmed. gcc-5 is spinning in: Overhead Shared Object Symbol 61.76% cc1plus [.] cp_tree_equal 12.72% cc1plus [.] tree_int_cst_equal 9.23% cc1plus [.] cxx_eval_constant_expression 2.72% cc1plus [.] cxx_eval_constant_expression gcc-6 prints two errors at first: fft-old.cpp: In function ‘int rev(int)’: fft-old.cpp:70:21: error: ‘mask’ was not declared in this scope while ((mask & (1 << k)) == 0) ^~~~ fft-old.cpp: In function ‘cd get_w(int)’: fft-old.cpp:88:16: error: ‘i’ was not declared in this scope return res[i]; ^ then consumes 6GB of memory before it continues with: fft-old.cpp: In function ‘void mult()’: fft-old.cpp:114:10: error: ‘i’ was not declared in this scope for (i = 0; i != N; ++i) ^ fft-old.cpp:117:10: error: ‘i’ was not declared in this scope for (i = 0; i < N; ++i) ^ fft-old.cpp:119:20: error: no match for ‘operator+’ (operand types are ‘std::array<std::complex<double>, 131072ul>’ and ‘int’) std::reverse(A + 1, A + N); ~~^~~ In file included from fft-old.cpp:28:0: /usr/lib/gcc/x86_64-pc-linux-gnu/6.0.0/include/g++-v6/complex:445:5: note: candidate: template<class _Tp> std::complex<_Tp> std::operator+(const std::complex<_Tp>&) operator+(const complex<_Tp>& __x) ^~~~~~~~ /usr/lib/gcc/x86_64-pc-linux-gnu/6.0.0/include/g++-v6/complex:445:5: note: template argument deduction/substitution failed: fft-old.cpp:119:22: note: ‘std::array<std::complex<double>, 131072ul>’ is not derived from ‘const std::complex<_Tp>’ std::reverse(A + 1, A + N); ...