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