* src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
[fw/sdcc] / src / regression / switch1.c
1 #include "gpsim_assert.h"
2 unsigned char failures=0;
3
4 bit bit0 = 0;
5 unsigned int aint0 = 0;
6 unsigned int aint1 = 0;
7 unsigned char achar0 = 0;
8 unsigned char achar1 = 0;
9
10
11 void
12 done()
13 {
14   ASSERT(MANGLE(failures) == 0);
15   PASSED();
16 }
17
18 void switch1(void)
19 {
20
21
22   switch(achar0) {
23   case 0:
24     achar0 = 9;
25     break;
26   case 1:
27     achar0 = 18;
28     break;
29
30   default:
31     achar0 = 0;
32   }
33
34
35 }
36
37 void switch2(void)
38 {
39
40   switch(achar1) {
41   case 0:    achar0 = 9;    break;
42   case 1:    achar0 = 8;    break;
43   case 2:    achar0 = 7;    break;
44   case 3:    achar0 = 6;    break;
45   case 4:    achar0 = 5;    break;
46   case 5:    achar0 = 4;    break;
47   case 6:    achar0 = 3;    break;
48   case 7:    achar0 = 2;    break;
49   case 8:    achar0 = 1;    break;
50   case 9:    achar0 = 0;    break;
51   case 10:    achar0 = 9;    break;
52   case 11:    achar0 = 8;    break;
53   case 12:    achar0 = 7;    break;
54   default:    achar0 = 0xff;    break;
55   }
56
57 }
58
59 main(void)
60 {
61
62   achar0 = 0;
63   switch1();
64   if(achar0 != 9)
65     failures++;
66
67   switch1();
68   if(achar0 != 0)
69     failures++;
70
71   achar0++;
72
73   switch1();
74   if(achar0 != 18)
75     failures++;
76
77   for(achar1=0; achar1<10;achar1++){
78     switch2();
79     if(achar0 != (9-achar1))
80       failures++;
81
82   }
83
84   done();
85 }