https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65284
Aldy Hernandez <aldyh at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #34959|0 |1 is obsolete| | --- Comment #7 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- Created attachment 34977 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34977&action=edit smaller and simpler testcase In cp_simplify_init_expr(), we are lowering part of the return statement for the lambda function from this: *NON_LVALUE_EXPR <this> = TARGET_EXPR <D.2173, <<< Unknown tree: aggr_init_expr 4 __comp_ctor D.2173 NON_LVALUE_EXPR <this> >>>>; into: <<< Unknown tree: aggr_init_expr 4 __comp_ctor *NON_LVALUE_EXPR <this> <-- notice we've dropped D.2173 NON_LVALUE_EXPR <this> >>>; This last blob cannot be stored into retval because the value of the aggr_init_expr is a read from the constructor which has a void return type.