https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90393
ensadc at mailnesia dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ensadc at mailnesia dot com --- Comment #7 from ensadc at mailnesia dot com --- It seems that r260272 changed `build_conditional_expr_1` to not create lvalue-to-rvalue conversion for such conditional expressions, but failed to change `lvalue_kind` to treat such expressions as glvalue, so GCC still thinks they are prvalue (https://gcc.gnu.org/viewvc/gcc/trunk/gcc/cp/tree.c?view=markup#l303) and applies copy elision (and probably other weird things).