https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117239
--- Comment #2 from Alexander Monakov <amonakov at gcc dot gnu.org> --- Amazing bug. Note that it depends on high-order bits of return address overwriting o.i, so may need -no-pie -fno-pie to reproduce. Alternatively, changing 'if (o.i)' to 'if (o.i != 1)' allows to reproduce with PIE as well. postreload-cse incorrectly eliminates the store that prepares the second argument of 'm' on the stack (the same store was previously done when preparing the argument for 'r'), disregarding that the stack pointer moved back-and-forth in between.