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