------- Comment #5 from rguenth at gcc dot gnu dot org 2009-06-09 21:27 ------- I don't see why this is an issue at all - in fact the address does not escape(?) but instead the assignment is inside the callee. So
<bb 2>: D.2275 = baz (); [return slot optimization] SR.101_9 = D.2275.a; SR.102_11 = D.2275.p; SR.103_3 = D.2275.n; as it looks like on trunk is still correct, no? Which means, I still don't see where it goes wrong ... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40389