(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
lto/
20090812_1.c
       1  /* struct X is complete in this TU, this causes us to not merge Y and
       2     thus assign different alias-sets to them.  */
       3  struct X
       4  {
       5    int i;
       6  };
       7  struct Y
       8  {
       9    struct X *p;
      10    int i;
      11  };
      12  extern void abort (void);
      13  extern void foo(struct Y *);
      14  int __attribute__((noinline)) bar(struct Y *p)
      15  {
      16    p->i = 0;
      17    foo (p);
      18    return p->i;
      19  }
      20  int main()
      21  {
      22    struct Y y;
      23    if (bar (&y) != 1)
      24      abort ();
      25    return 0;
      26  }