* src/regression/ptrarg.c: added, fails due to bug #1430967
[fw/sdcc] / src / regression / rotate2.c
1 #include "gpsim_assert.h"
2 // Shift bytes left and right by a variable.
3
4 unsigned char failures=0;
5
6 bit bit0 = 0;
7 unsigned int aint0 = 0;
8 unsigned int aint1 = 0;
9 unsigned char achar0 = 0;
10 unsigned char achar1 = 0;
11 unsigned char achar2 = 0;
12 unsigned char achar3 = 0;
13
14 void
15 done()
16 {
17   ASSERT(MANGLE(failures) == 0);
18   PASSED();
19 }
20
21 void shift_right_var(void)
22 {
23
24   achar0 >>= achar1;
25 }
26
27 void shift_left_var(void)
28 {
29
30   achar0 <<= achar1;
31 }
32
33 void shift_int_left_1(void)
34 {
35
36   aint0 <<= 1;
37
38 }
39
40 void main(void)
41 {
42   char i;
43
44   achar0 = 1;
45   achar1 = 1;
46   shift_left_var();
47
48   if(achar0 !=2)
49     failures++;
50
51   achar0 = 1;
52   achar1 = 1;
53   achar2 = 1;
54   for(i=0; i<7; i++) {
55     shift_left_var();
56     achar2 <<= 1;
57
58     if(achar2 != achar0)
59       failures++;
60   }
61
62   done();
63 }