https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110938
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- The 4.9.0 regression to return Y in a register seems to have happened with: commit 3b6d16993b9d6812f6212bce4f35547fd9e40457 [r0-126146-g3b6d16993b9d68] Author: Vladimir Makarov Date: Wed Oct 30 14:27:25 2013 regmove.c: Remove. But I don't think that will have affected the __is_trivially_copyable(Y) result.