https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77450
--- Comment #2 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- On Fri, 2 Sep 2016, rguenth at gcc dot gnu.org wrote: > so it looks like COMPOUND_LITERAL_EXPR is an lvalue? Do we need to Yes. Compound literals are lvalues; they represent anonymous variables with a given initializer (and the same lifetime as a named variable declared at that point).