(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr64536.c
       1  /* PR rtl-optimization/64536 */
       2  /* { dg-do link } */
       3  /* { dg-options "-O2" } */
       4  /* { dg-additional-options "-fPIC" { target fpic } } */
       5  /* { dg-require-effective-target ptr32plus } */
       6  
       7  struct S { long q; } *h;
       8  long a, b, g, j, k, *c, *d, *e, *f, *i;
       9  long *baz (void)
      10  {
      11    asm volatile ("" : : : "memory");
      12    return e;
      13  }
      14  
      15  void
      16  bar (int x)
      17  {
      18    int y;
      19    for (y = 0; y < x; y++)
      20      {
      21        switch (b)
      22  	{
      23  	case 0:
      24  	case 2:
      25  	  a++;
      26  	  break;
      27  	case 3:
      28  	  a++;
      29  	  break;
      30  	case 1:
      31  	  a++;
      32  	}
      33        if (d)
      34  	{
      35  	  f = baz ();
      36  	  g = k++;
      37  	  if (&h->q)
      38  	    {
      39  	      j = *f;
      40  	      h->q = *f;
      41  	    }
      42  	  else
      43  	    i = (long *) (__INTPTR_TYPE__) (h->q = *f);
      44  	  *c++ = (__INTPTR_TYPE__) f;
      45  	  e += 6;
      46  	}
      47        else
      48  	{
      49  	  f = baz ();
      50  	  g = k++;
      51  	  if (&h->q)
      52  	    {
      53  	      j = *f;
      54  	      h->q = *f;
      55  	    }
      56  	  else
      57  	    i = (long *) (__INTPTR_TYPE__) (h->q = *f);
      58  	  *c++ = (__INTPTR_TYPE__) f;
      59  	  e += 6;
      60  	}
      61      }
      62  }
      63  
      64  int
      65  main ()
      66  {
      67    return 0;
      68  }