/* { dg-do compile } */
/* { dg-options "-w" } */

void foo (void * DAG_temp117584)
{
  char  uA;
  void* pA;
  void* pB;
  void* pC;
  do {
      int DAG_temp117585;
      int DAG_temp117586;
      void ** __indir_union1 = (void**)DAG_temp117584;
      DAG_temp117585 = (long)*__indir_union1;
      DAG_temp117586 = DAG_temp117585;
      if ( DAG_temp117586 != (int)268435456 )
	pA = (void*)&uA;
      pB = (void*)&pA;
      pC = pB;
      union __block_indir0_u {  struct {  long val; }  __indir_struct; }
      * __indir_union = (union __block_indir0_u*)pC;
      f(__indir_union->__indir_struct.val);

      DAG_temp117584 += 64;
  } while (1);
}