Imported Upstream version 2.9.0
[debian/cc1111] / support / regression / tests / bug1464657.c
1 /*
2    bug1464657.c
3 */
4
5 #include <testfwk.h>
6
7 static void f1(void)
8 {
9 }
10
11 static short f2(void)
12 {
13   return 0;
14 }
15
16 static unsigned char f3(unsigned char a)
17 {
18   return a+5;
19 }
20
21 unsigned char var;
22
23 void f()
24 {
25   switch (var) {
26     case 0:
27       f1();
28       break;
29   case 1:
30       f1();
31       break;
32   case 2:
33       var++;
34       f1();
35       break;
36     case 4:
37       f1();
38       break;
39     case 5:
40       break;
41     case 7:
42       f1();
43       break;
44     case 6:
45       f1();
46       break;
47     case 8:
48       f1();
49       break;
50     case 9:
51       f1();
52       break;
53     case 12:
54       {
55         unsigned char nc;
56         unsigned short b = f2();
57         unsigned char nb = f3(b);
58         var = f3(b);
59         nc = f3(nb);
60       }
61       break;
62   }
63 }
64
65 void test_Peephole251(void)
66 {
67   var = 12;
68   f();
69   ASSERT (var==5);
70 }