http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50623
Bug #: 50623 Summary: Template metaprogramming involving 4 std::complex<double> fails without -std=gnu++0x Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: giulio.euli...@cern.ch Created attachment 25422 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25422 reduced test case. The attached test.cc file provokes an ICE (see below) when compiling it with c++ -c -O2 test.cc Notice that changing R to be a double, adding -std=gnu++0x, or making it a 3 vector fixes the problem. This was done with: c++ (GCC) 4.7.0 20111001 (experimental) === test.cc: In function 'R evaluate()': test.cc:28:3: error: invalid rhs for gimple memory store a$_M_value v1$_M_value # .MEM_14 = VDEF <.MEM_12> a$_M_value = v1$_M_value; test.cc:28:3: error: invalid rhs for gimple memory store a$16$_M_value v1$16$_M_value # .MEM_15 = VDEF <.MEM_14> a$16$_M_value = v1$16$_M_value; test.cc:28:3: error: invalid rhs for gimple memory store a$32$_M_value v1$32$_M_value # .MEM_16 = VDEF <.MEM_15> a$32$_M_value = v1$32$_M_value; test.cc:28:3: error: invalid rhs for gimple memory store a$48$_M_value v1$48$_M_value # .MEM_17 = VDEF <.MEM_16> a$48$_M_value = v1$48$_M_value; test.cc:28:3: internal compiler error: verify_gimple failed Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions.