https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94609
--- Comment #3 from Iain Buclaw <ibuclaw at gdcproject dot org> --- And indeed, comparing -mx32 vs -m32, NRVO is not kicking in. test52a () { - struct Scoped result; + struct Scoped result [value-expr: *<retval>]; typedef struct Scoped Scoped; ... struct Scoped a1; - a1 = test52a (); + a1 = test52a () [return slot optimization];