https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69889
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- This looks like a C++ FE bug to me, the operator() method is called with TREE_ADDRESSABLE argument by value, rather than by reference. Normally, when the C++ FE goes through build_over_call, convert_for_arg_passing (or earlier code) should change those arguments to reference passing. On this testcase the call is generated from simplify_aggr_init_expr, and is passed by value instead. I don't know the FE enough to know if it should be already aggr_init_expr AGGR_INIT_EXPR_ARGP argument to be actually the reference, or if it is a simplify_aggr_init_expr bug. Jason, can you please have a look?