More enhancements to register optimization algorithms.
[fw/sdcc] / src / regression / add4.c
1 unsigned char success = 0;
2 unsigned char failures = 0;
3 unsigned char dummy = 0;
4
5 //bit bit0 = 0;
6 int int0 = 0;
7 int int1 = 0;
8 char char0 = 0;
9 char char1 = 0;
10 long long0 = 0;
11 long long1 = 0;
12 unsigned long ulong0 = 0;
13 unsigned long ulong1 = 0;
14 #define NULL 0
15 char *cP0=NULL;
16 char *cP1=NULL;
17 int *iP0=NULL;
18 int *iP1=NULL;
19
20 void
21 done ()
22 {
23
24   dummy++;
25
26 }
27
28
29 /* pointer to char arithmetic */
30
31 void pc_add(void)
32 {
33
34   if(*cP1)
35     failures++;
36
37   *cP1 += 1;
38   if(*cP1 != 1)
39     failures++;
40
41   if(char0 != 1)
42     failures++;
43
44   char0++;
45
46   if(*cP1 != 2)
47     failures++;
48
49   char1 = char0 + *cP1;
50
51   if(char1 != 4)
52     failures++;
53 }
54
55 /* pointer to integer arithmetic */
56 void pi_add(void)
57 {
58   if(*iP0)
59     failures++;
60
61   *iP0 += 1;
62
63   if(*iP0 != 1)
64     failures++;
65
66   if(int0 != 1)
67     failures++;
68
69   int1 = int0 + *iP0;
70   if(int1 != 2)
71     failures++;
72 }
73
74 void main(void)
75 {
76
77   cP1 = &char0;
78   pc_add();
79
80   iP0 = &int0;
81   pi_add();
82
83   success = failures;
84   done();
85 }