https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109945
--- Comment #24 from Jakub Jelinek <jakub at gcc dot gnu.org> --- On the #c23 testcase, actually even on i686-linux where it is passed in memory we optimize main at -O2 -m32 -fno-strict-aliasing -fno-tree-pta (i.e. when the code mentioned in #c12 is never called) to return 1; - it is SRA which optimizes that because w isn't TREE_ADDRESSABLE on the caller side. So we'd also need to treat such return values as TREE_ADDRESSABLE.