Imported Upstream version 2.9.0
[debian/cc1111] / src / regression / for.c
1 #include "gpsim_assert.h"
2
3 unsigned char failures=0;
4
5 unsigned int uint0 = 0;
6 unsigned int uint1 = 0;
7 unsigned char uchar0 = 0;
8 unsigned char uchar1 = 0;
9
10 void
11 done()
12 {
13   ASSERT(MANGLE(failures) == 0);
14   PASSED();
15 }
16
17 void for1(void)
18 {
19   unsigned char i=0;
20
21   for(i=0; i<10; i++)
22     uchar0++;
23
24   if(uchar0 != 10)
25     failures++;
26
27 }
28
29 void for2(void)
30 {
31   unsigned char i=0;
32   unsigned char j;
33
34   for(i=0; i<10; i++)
35     uchar0++;
36
37   j = (volatile)i;
38
39   if(j != 10)
40     failures++;
41
42 }
43
44 void for3(void)
45 {
46   unsigned int i=0;
47   volatile unsigned int j;
48
49   for(i=0; i<10; i++)
50     uint0++;
51
52   j = i;
53   if(j != 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   done();
108 }