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