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

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Slightly cleaned up testcase:
int a, o;
char b, f, i;
long c;
static signed char d;
static char g;
unsigned *h;
signed char *e = &f;
static signed char **j = &e;
static long k[2];
unsigned **l = &h;
short m;
volatile int z;

__attribute__((noipa)) void
foo (char *p)
{
  (void) p;
}

int
main ()
{
  int p = z;
  signed char *n = &d;
  *n = 0;
  while (c)
    for (; i; i--)
      ;
  for (g = 0; g <= 1; g++)
    {
      *n = **j;
      k[g] = 0 != &m;
      *e = l && k[0];
    }
  if (p)
    foo (&b);
  for (; o < 4; o++)
    {
      a = d;
      if (p)
        foo (&b);
    }
  if (a != 1)
    __builtin_abort ();
}

Reply via email to