https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106414
--- Comment #2 from Zhendong Su <zhendong.su at inf dot ethz.ch> --- A couple of related tests that fail at -O0: [587] % gcctk -O0 small.c [588] % ./a.out Aborted [589] % cat small.c int a, b, c, d; unsigned e; int main() { c = e = -((a && 1) ^ ~(b || 0)); if (e < -1) d = c; if (!d) __builtin_abort(); return 0; } ----- [598] % gcctk -O0 small.c [599] % ./a.out Floating point exception [600] % cat small.c int a = 1, b = 1, c, d; int main() { L: c = d / (1 / a); if (b) { a = ~((~(a || 0) ^ (1 && b)) % 3U); b = 0; goto L; } return 0; }