1  /* { dg-options { "-fwrapv" } } */
       2  
       3  extern void abort (void);
       4  extern void exit (int);
       5  
       6  int dd (int x, int d) { return x / d; }
       7  
       8  int
       9  main ()
      10  {
      11    int i;
      12    for (i = -3; i <= 3; i++)
      13      {
      14        if (dd (i, 1) != i / 1)
      15  	abort ();
      16        if (dd (i, 2) != i / 2)
      17  	abort ();
      18        if (dd (i, 3) != i / 3)
      19  	abort ();
      20        if (dd (i, 4) != i / 4)
      21  	abort ();
      22        if (dd (i, 5) != i / 5)
      23  	abort ();
      24        if (dd (i, 6) != i / 6)
      25  	abort ();
      26        if (dd (i, 7) != i / 7)
      27  	abort ();
      28        if (dd (i, 8) != i / 8)
      29  	abort ();
      30      }
      31    for (i = ((unsigned) ~0 >> 1) - 3; i <= ((unsigned) ~0 >> 1) + 3; i++)
      32      {
      33        if (dd (i, 1) != i / 1)
      34  	abort ();
      35        if (dd (i, 2) != i / 2)
      36  	abort ();
      37        if (dd (i, 3) != i / 3)
      38  	abort ();
      39        if (dd (i, 4) != i / 4)
      40  	abort ();
      41        if (dd (i, 5) != i / 5)
      42  	abort ();
      43        if (dd (i, 6) != i / 6)
      44  	abort ();
      45        if (dd (i, 7) != i / 7)
      46  	abort ();
      47        if (dd (i, 8) != i / 8)
      48  	abort ();
      49      }
      50    exit (0);
      51  }