]> git.sur5r.net Git - cc65/blob - test/val/while.c
goto.c warning fix for implicit truncation
[cc65] / test / val / while.c
1 /*
2   !!DESCRIPTION!! while-condition tests
3   !!ORIGIN!!      SDCC regression tests
4   !!LICENCE!!     GPL, read COPYING.GPL
5 */
6
7 #include <stdio.h>
8
9 static unsigned char failures = 0x00;
10 static unsigned char achar0 = 0;
11
12 static void
13 while1 (void)
14 {
15   unsigned char i = 10;
16
17   do {
18     ++achar0;
19   } while (--i);
20
21   if (achar0 != 10) {
22     failures |= 0x01;
23   }
24 }
25
26 static void
27 while2 (void)
28 {
29   unsigned char i = 10;
30
31   achar0 = 0;
32   while (--i) {
33     ++achar0;
34   }
35
36   if (achar0 != 10 - 1) {
37     failures |= 0x02;
38   }
39 }
40
41 static void
42 while3 (void)
43 {
44   achar0 = 0;
45   do {
46     if (++achar0 == (unsigned char)0) {
47       return;
48     }
49   } while (1);
50
51   failures |= 0x04;
52 }
53
54 static void
55 while4 (void)
56 {
57   achar0 = 0;
58   while (1) {
59     if (++achar0 == (unsigned char)0) {
60       return;
61     }
62   }
63
64   failures |= 0x08;
65 }
66
67 static void
68 while5 (void)
69 {
70   achar0 = 0;
71   do {
72     ++achar0;
73   } while (0);
74
75   if (achar0 != 1) {
76     failures |= 0x10;
77   }
78 }
79
80 static void
81 while6 (void)
82 {
83   achar0 = 0;
84   while (0) {
85     ++achar0;
86   }
87
88   if (achar0 != 1 - 1) {
89     failures |= 0x20;
90   }
91 }
92
93 int
94 main (void)
95 {
96   while1 ();
97   while2 ();
98   while3 ();
99   while4 ();
100   while5 ();
101   while6 ();
102
103   if (failures) {
104     printf("failures: 0x%02X\n", failures);
105   }
106   return failures;
107 }