https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101854
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #5) > __attribute__((access ("^0[2]^1[6]", ))) > struct Weird g (const float * Q, const float[8] * null) > > ss = g (&q, 0B); [return slot optimization] In the 4 case we get: ss = g (&q, 0B); So no RSO. So yes the code looks like it is counting wrong somewhere.