/* 20000605-1.c from the execute part of the gcc torture tests. */ #include #ifdef __SDCC #pragma std_c99 #endif typedef struct _RenderInfo RenderInfo; struct _RenderInfo { int y; float scaley; int src_y; }; static void bar(void) { } #if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory static int render_image_rgb_a (RenderInfo * info) { int y, ye; float error; float step; y = info->y; ye = 256; step = 1.0 / info->scaley; error = y * step; error -= ((int) error) - step; for (; y < ye; y++) { if (error >= 1.0) { info->src_y += (int) error; error -= (int) error; bar(); } error += step; } return info->src_y; } #endif void testTortureExecute (void) { #if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory RenderInfo info; info.y = 0; info.src_y = 0; info.scaley = 1.0; if (render_image_rgb_a(&info) != 256) ASSERT (0); return; #endif }