1/* { dg-options { "-fwrapv" } } */
2
3extern void abort (void);
4extern void exit (int);
5
6int dd (int x, int d) { return x / d; }
7
8int
9main ()
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}
52