1  /* PR middle-end/29584 */
       2  /* { dg-do compile { target { ilp32 || lp64 } } } */
       3  
       4  extern void *foo1 (void);
       5  extern void foo2 (void);
       6  extern void foo3 (void *, void *);
       7  extern int foo4 (void);
       8  
       9  void
      10  bar (void)
      11  {
      12    int i;
      13    void *s;
      14    for (i = 1; i < 4; i++)
      15      {
      16        if (foo4 ())
      17  	foo2 ();
      18        switch (0x8000000UL + i * 0x400)
      19  	{
      20  	case 0x80000000UL ... 0x80000000UL + 0x3a000000UL - 1:
      21  	  s = 0;
      22  	  break;
      23  	default:
      24  	  s = foo1 ();
      25  	}
      26        foo3 ((void *) (0x8000000UL + i * 0x400), s);
      27      }
      28  }