/* { dg-do run } */
/* { dg-options "-O2" } */

/* Test derived from PR 14643.  When a function has no addressable
   variables but 2 or more pointers have conflicting memory tags, they
   were not being processed by the type based alias analyzer,
   resulting in optimizations removing a non-redundant load.  */

extern void abort (void);

struct bar { int count;  int *arr;};

void foo (struct bar *b)
{
  b->count = 0;
  *(b->arr) = 2;
  if (b->count == 0)	/* b->count can't be assumed to be 0 here.  */
    abort ();
}

int
main ()
{
  struct bar x;
  x.arr = &x.count;
  foo (&x);
  return 0;
}
