https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119291

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Adjusted testcase so that it doesn't need to use __builtin_exit:

int a;
long c;

__attribute__((noipa)) void
foo (int x)
{
  if (x != 0)
    __builtin_abort ();
  a = 42;
}

int
main ()
{
  int e = 1;
lab:
  if (a < 2)
    {
      int b = e;
      _Bool d = a != 0;
      _Bool f = b != 0;
      unsigned long g = -(d & f);
      unsigned long h = c & g;
      unsigned long i = ~c;
      e = -(i & h);
      c = e != 0;
      a = ~e + b;
      foo (e);
      goto lab;
    }
}

This regressed (with -O2 -Dnoipa=noinline,noclone for older compilers) with
r9-3763-gef976be1a23a5171082cf1a569d00573013a175c

Reply via email to