------- Comment #14 from jakub at gcc dot gnu dot org 2009-06-10 21:27 ------- The gimplifier sees: TARGET_EXPR <D.2252, <<< Unknown tree: aggr_init_expr 3 baz D.2252 >>> >; and: arg 0 <var_decl 0x7ffff2d7f280 D.2252 type <record_type 0x7ffff2d61780 H> addressable ignored BLK file pr40389.C line 67 col 12 size <integer_cst 0x7ffff2e136c0 192> unit size <integer_cst 0x7ffff2e13660 24> align 64 context <function_decl 0x7ffff2d80100 main>> and <record_type 0x7ffff2d61780 H addressable needs-constructing type_1 type_4 type_5 type_6 BLK... (i.e. both are addressable). Yes, as I said earlier, I think we should handle D.2249 = baz (); [return slot optimization] as taking address of D.2249, at least if it has TREE_ADDRESSABLE type.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40389