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