gbdk-releases/sdcc/support/regression/tests/bug-467035.c
2015-01-10 16:25:09 +01:00

58 lines
786 B
C

/* Tests a bug in for loops where b in plot_point is always 1.
Stripped down from the gbdk filltest.c
*/
#include <testfwk.h>
typedef unsigned char UBYTE;
UBYTE
getpix(UBYTE x, UBYTE y)
{
UNUSED(x);
UNUSED(y);
return 0;
}
void
color(UBYTE a, UBYTE b, UBYTE c)
{
UNUSED(a & b & c);
}
void
line(UBYTE a, UBYTE b, UBYTE c, UBYTE d)
{
UNUSED(a & b & c & d);
}
void
plot_point(UBYTE a, UBYTE b)
{
static UBYTE ea, eb;
ASSERT(b == eb);
ASSERT(a == ea);
ea++;
if (ea > 12) {
ea = 0;
eb++;
}
LOG(("(a, b) -> (%u, %u)\n", (unsigned int)a, (unsigned int)b));
}
void
testForMerge(void)
{
UBYTE a,b;
for (b=0; b<=10U; b++) {
for (a=0; a<=12U; a++) {
color(getpix(a,b+1), 0, 1);
plot_point(a,b);
}
color(0, 0, 1);
}
}