1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
/*
!!DESCRIPTION!!
!!ORIGIN!! SDCC regression tests
!!LICENCE!! GPL, read COPYING.GPL
*/
#include <stdio.h>
#include <limits.h>
unsigned char success=0;
unsigned char failures=0;
unsigned char dummy=0;
#ifdef SUPPORT_BIT_TYPES
bit bit0 = 0;
#endif
unsigned int uint0 = 0;
unsigned int uint1 = 0;
unsigned char uchar0 = 0;
unsigned char uchar1 = 0;
void done()
{
dummy++;
}
void for1(void)
{
unsigned char i=0;
for(i=0; i<10; i++)
uchar0++;
if(uchar0 != 10)
failures++;
}
void for2(void)
{
unsigned char i=0;
for(i=0; i<10; i++)
uchar0++;
if(i < 10)
failures++;
}
void for3(void)
{
unsigned int i=0;
for(i=0; i<10; i++)
uint0++;
if(i < 10)
failures++;
}
void for4(void)
{
for(uint0=1; uint0<10; uint0++)
uchar0++;
if(uchar0 != 9)
failures++;
}
void for5(void)
{
for(uint0=1; uint0<=10; uint0++)
uchar0++;
if(uchar0 != 10)
failures++;
}
void inc_uchar0(void)
{
uchar0++;
}
void for6(void)
{
uchar0 = 0;
for(uint0=1; uint0<=10; uint0++)
inc_uchar0();
}
int main(void)
{
for1();
for2();
for3();
uchar0 = 0;
for4();
uchar0 = 0;
for5();
for6();
if(uchar0 != 10)
failures++;
success = failures;
done();
printf("failures: %d\n",failures);
return failures;
}
|