Numerous bug fixes in PIC Port (pointers, shifting, bank selection,...)
[fw/sdcc] / src / regression / for.c
1 //#include "p16c84.h"
2
3 unsigned char success=0;
4 unsigned char failures=0;
5 unsigned char dummy=0;
6
7 bit bit0 = 0;
8 unsigned int uint0 = 0;
9 unsigned int uint1 = 0;
10 unsigned char uchar0 = 0;
11 unsigned char uchar1 = 0;
12
13 unsigned char call3(void);
14
15 void done()
16 {
17
18   dummy++;
19
20 }
21
22 void for1(void)
23 {
24   unsigned char i=0;
25
26   for(i=0; i<10; i++)
27     uchar0++;
28
29   if(uchar0 != 10)
30     failures++;
31
32 }
33
34 void for2(void)
35 {
36   unsigned char i=0;
37
38   for(i=0; i<10; i++)
39     uchar0++;
40
41   if(i < 10)
42     failures++;
43
44 }
45
46 void for3(void)
47 {
48   unsigned int i=0;
49
50   for(i=0; i<10; i++)
51     uint0++;
52
53   if(i < 10)
54     failures++;
55
56 }
57
58 void for4(void)
59 {
60
61   for(uint0=1; uint0<10; uint0++)
62     uchar0++;
63
64   if(uchar0 != 9)
65     failures++;
66
67 }
68
69 void for5(void)
70 {
71
72   for(uint0=1; uint0<=10; uint0++)
73     uchar0++;
74
75   if(uchar0 != 10)
76     failures++;
77
78 }
79
80 void inc_uchar0(void)
81 {
82   uchar0++;
83 }
84
85 void for6(void)
86 {
87   uchar0 = 0;
88   for(uint0=1; uint0<=10; uint0++)
89     inc_uchar0();
90
91 }
92
93 void main(void)
94 {
95   for1();
96   for2();
97   for3();
98   uchar0 = 0;
99   for4();
100   uchar0 = 0;
101   for5();
102
103   for6();
104   if(uchar0 != 10)
105     failures++;
106
107   success = failures;
108   done();
109 }