Applied patch from Kevin L. Pauba that added the #pragma memory declaration feature...
[fw/sdcc] / src / regression / call1.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
18 done ()
19 {
20
21   dummy++;
22
23 }
24
25 void
26 call1 (unsigned char uc0)
27 {
28   if (uc0)
29     failures++;
30 }
31
32 void
33 call2 (unsigned int ui0)
34 {
35   if (ui0)
36     failures++;
37
38 }
39
40 unsigned char
41 call3 (void)
42 {
43   if (uchar0)
44     failures++;
45
46   return (failures);
47
48 }
49
50 unsigned int
51 call4 (void)
52 {
53   unsigned int i = 0;
54
55   if (uint0)
56     i++;
57
58   return (i);
59
60 }
61
62 unsigned int
63 call5 (unsigned int k)
64 {
65
66   if (k)
67     failures++;
68
69   return (k);
70
71 }
72
73 unsigned char 
74 call6a(unsigned char uc)
75 {
76
77   if(uc>uchar1)
78     return 1;
79   else
80     return 0;
81
82 }
83
84 unsigned char
85 call6(unsigned char uc)
86 {
87
88   return(call6a(uc));
89 }
90
91 unsigned int 
92 call7a(unsigned int ui)
93 {
94   if(ui)
95     return 1;
96   else
97     return 0;
98
99 }
100
101 unsigned int
102 call7(unsigned int ui)
103 {
104
105   return(call7a(ui));
106 }
107
108 unsigned char
109 call8(unsigned char uc1,unsigned char uc2)
110 {
111
112   return uc1+uc2;
113 }
114
115 void call9(unsigned int ui1, unsigned int ui2)
116 {
117
118   if(ui1 != 0x1234)
119     failures++;
120   if(ui2 != 0x5678)
121     failures++;
122
123 }
124
125 void
126 main (void)
127 {
128
129   call1 (uchar0);
130   call2 (uint0);
131   uchar1 = call3 ();
132   uint1 = call4 ();
133   if (uint1)
134     failures++;
135
136   uint1 = call5 (uint0);
137   if (uint1)
138     failures++;
139
140   if(call6(uchar0))
141     failures++;
142
143
144   if(call7(0))
145     failures++;
146
147   if(!call7(1))
148     failures++;
149
150   if(!call7(0xff00))
151     failures++;
152
153   uchar0=4;
154   uchar1=3;
155   uchar0 = call8(uchar0,uchar1);
156
157   if(uchar0 != 7)
158     failures++;
159
160   call9(0x1234,0x5678);
161
162   success = failures;
163   done ();
164 }