2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / divmod-1.c
blob2bcd109708d9aae5719a147bf54a4359e85f77cb
1 div1 (signed char x)
3 return x / -1;
6 div2 (signed short x)
8 return x / -1;
11 div3 (signed char x, signed char y)
13 return x / y;
16 div4 (signed short x, signed short y)
18 return x / y;
21 mod1 (signed char x)
23 return x % -1;
26 mod2 (signed short x)
28 return x % -1;
31 mod3 (signed char x, signed char y)
33 return x % y;
36 mod4 (signed short x, signed short y)
38 return x % y;
41 signed long
42 mod5 (signed long x, signed long y)
44 return x % y;
47 unsigned long
48 mod6 (unsigned long x, unsigned long y)
50 return x % y;
53 main ()
55 if (div1 (-(1 << 7)) != 1 << 7)
56 abort ();
57 if (div2 (-(1 << 15)) != 1 << 15)
58 abort ();
59 if (div3 (-(1 << 7), -1) != 1 << 7)
60 abort ();
61 if (div4 (-(1 << 15), -1) != 1 << 15)
62 abort ();
63 if (mod1 (-(1 << 7)) != 0)
64 abort ();
65 if (mod2 (-(1 << 15)) != 0)
66 abort ();
67 if (mod3 (-(1 << 7), -1) != 0)
68 abort ();
69 if (mod4 (-(1 << 15), -1) != 0)
70 abort ();
71 if (mod5 (0x50000000, 2) != 0)
72 abort ();
73 if (mod6 (0x50000000, 2) != 0)
74 abort ();
76 exit (0);