https://gcc.gnu.org/bugzilla/show_bug.cgi?id=27896
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- This is now producing int foo () { int D.2772; D.2772 = 1; return D.2772; } the temporary is produced by return gimplification (RETURN_EXPR have an embedded MODIFY_EXPR). I'll call the original issue fixed, the temporary is a design decision.