https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118046
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced down to just: ``` __attribute__((noipa)) int f(int *a,int *d) { signed char b = *a; int c = b; *d = c; // This store is important even if otherwise unused if (c < 0 && (b&1)) return 1; return 0; } int main() { unsigned char t = 0x81; int x = t, y; int tt = f(&x, &y); if (!tt) __builtin_abort(); } ```