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;
}

Reply via email to