switch is still broken, copying over cparser testcase since noone runs the cparser...
[libfirm] / ir / be / test / bad.c
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 unsigned int
5 f1 (int diff)
6 {
7         return ((unsigned int) (diff < 0 ? -diff : diff));
8 }
9
10 unsigned int
11 f2 (unsigned int diff)
12 {
13         return ((unsigned int) ((signed int) diff < 0 ? -diff : diff));
14 }
15
16 unsigned long long
17 f3 (long long diff)
18 {
19         return ((unsigned long long) (diff < 0 ? -diff : diff));
20 }
21
22 unsigned long long
23 f4 (unsigned long long diff)
24 {
25         return ((unsigned long long) ((signed long long) diff < 0 ? -diff : diff));
26 }
27
28 int main ()
29 {
30         int i;
31         for (i = 0; i <= 10; i++)
32         {
33 #if 0
34                 if (f1 (i) != i) {
35                         printf("f1(%d)\n", i);
36                         abort ();
37                 }
38                 if (f1 (-i) != i) {
39                         printf("f1(%d)\n", -i);
40                         abort ();
41                 }
42                 if (f2 (i) != i) {
43                         printf("f2(%d)\n", i);
44                         abort ();
45                 }
46 #endif
47                 if ((int) f2 (-i) != i) {
48                         printf("f2(%d) -> %d\n", -i, f2(-i));
49                         abort ();
50                 }
51 #if 0
52                 if (f3 ((long long) i) != i) {
53                         printf("f3(%lld)\n", i);
54                         abort ();
55                 }
56                 if (f3 ((long long) -i) != i) {
57                         printf("f3(%lld)\n", -i);
58                         abort ();
59                 }
60                 if (f4 ((long long) i) != i) {
61                         printf("f4(%lld)\n", i);
62                         abort ();
63                 }
64                 if (f4 ((long long) -i) != i) {
65                         printf("f4(%d)\n", -i);
66                         abort ();
67                 }
68 #endif
69         }
70         exit (0);
71 }