http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50622
vincenzo Innocente <vincenzo.innocente at cern dot ch> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |blocker --- Comment #4 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2011-10-09 08:40:07 UTC --- reduced to this (no std) typedef __complex__ double Value; struct LorentzVector { LorentzVector & operator+=(const LorentzVector & a) { theX += a.theX; theY += a.theY; theZ += a.theZ; theT += a.theT; return *this; } Value theX; Value theY; Value theZ; Value theT; }; inline LorentzVector operator+(LorentzVector a, const LorentzVector & b) { return a += b; } Value ex, et; LorentzVector sum() { LorentzVector v1; v1.theX =ex; v1.theY =ex+et; v1.theZ =ex-et; v1.theT =et; return v1+v1; } c++ -O2 -c ice47c.cc ice47c.cc: In function ‘LorentzVector sum()’: ice47c.cc:24:15: error: invalid rhs for gimple memory store a$theX v1$theX # .MEM_53 = VDEF <.MEM_13> a$theX = v1$theX; ice47c.cc:24:15: error: invalid rhs for gimple memory store a$theY v1$theY # .MEM_54 = VDEF <.MEM_53> a$theY = v1$theY; ice47c.cc:24:15: error: invalid rhs for gimple memory store a$theZ v1$theZ # .MEM_55 = VDEF <.MEM_54> a$theZ = v1$theZ; ice47c.cc:24:15: error: invalid rhs for gimple memory store a$theT v1$theT # .MEM_56 = VDEF <.MEM_55> a$theT = v1$theT; ice47c.cc:24:15: 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.