------- Comment #8 from rguenth at gcc dot gnu dot org 2010-08-07 20:40 ------- On i?86-linux I see
<bb 2>: g (x); D.24518 = 1.0e+0; x = std::operator/<double> (&D.24518, &x); g (x); so no return-slot optimization. So I guess it has something to do with the callee-copy thing of the x argument to this function. Building a cross ... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44632