http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52967
--- Comment #2 from Dmitry Gerasimov <karlicoss at gmail dot com> 2012-04-13 08:26:08 UTC --- (In reply to comment #1) > I don't know if this is not undefined code. > > v[0].a = run(); > > Is this: > double &a = v[0].a; > a = run(); > Or: > double tmp = run(); > v[0].a = tmp; > > I think both are correct because of the way the C++ standard defines =. Hm, > double &a = v[0].a; > a = run(); does result in segfault. Should it?