fehler120: Backend discards float->int Conv for shift amount.
[libfirm] / ir / be / test / switch_test2.c
1 static int test2(int a)
2 {
3   int b = 0xff;
4
5   switch (a * b) {
6     case 0:
7       b *= a;
8     case 1:
9       b *= a;
10       ++b;
11       break;
12     case 2:
13       b /= a;
14       break;
15     case 3:
16       b *= a*a;
17       break;
18     case 4:
19       b = a % 3;
20       break;
21     case 10000:
22       b = 2;
23       break;
24     default:
25       return 0;
26   }
27   return b;
28 }
29
30 int main()
31 {
32   printf("SwitchTest\n");
33   printf(" on %d %d\n", -1, test2(-1));
34   printf(" on %d %d\n", 0, test2(0));
35   printf(" on %d %d\n", 1, test2(1));
36   printf(" on %d %d\n", 2, test2(2));
37   printf(" on %d %d\n", 3, test2(3));
38   printf(" on %d %d\n", 4, test2(4));
39   printf(" on %d %d\n", 5, test2(5));
40   printf(" on %d %d\n", 6, test2(6));
41
42   return 0;
43 }