1  /* { dg-do compile } */
       2  /* { dg-skip-if "" { powerpc*-*-aix* } } */
       3  /* { dg-options "-w -O2 -mpowerpc64" } */
       4  
       5  /*
       6   * (below is minimized test case)
       7   */
       8  
       9  extern double pow(double x, double y);
      10  extern long func ();
      11  short global0, global1;
      12  static int i0, i1, i2, i3, i4, i5;
      13  double dbl, *array0, *array1;
      14  
      15  void
      16  pr64505 (short *arg0, double *arg1)
      17  {
      18    int error = 0;
      19    short num = func (&global1 + 15, &error);
      20    for (int j = 0; j < array0[0]; j++)
      21      {
      22        if (j == 0)
      23  	{
      24  	  func (arg0, &global1 + 20, &error);
      25  	  array0[0] = num;
      26  	}
      27        else
      28  	{
      29  	  double cr = (&dbl)[1];
      30  	  if (func (&i4))
      31  	    func (0, &(&array0)[j]);
      32  	  if (func (&i5))
      33  	    {
      34  	      if ((&global1)[12])
      35  		cr = array1[j];
      36  	    }
      37  	  if (func (&i2)
      38  	      && (&global1)[12])
      39  	    {
      40  	      if (func (&i1))
      41  	        pow ((&dbl)[1], 2);
      42  	    }
      43  	    array0[j] = cr;
      44  	}
      45        if (func (&i0) && global0)
      46          func (((short *) array0 + 1)[j]);
      47      }
      48    short ad = func (&global1 + 15, 0);
      49    if (func (&i3) && func ())
      50      *arg1 = *((double *) &global1) * ad;
      51    func (&global1 + 15);
      52  }