diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/20000605-1.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20000605-1.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/20000605-1.c b/gcc/testsuite/gcc.c-torture/execute/20000605-1.c new file mode 100644 index 000000000..b481ecb62 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20000605-1.c @@ -0,0 +1,48 @@ +typedef struct _RenderInfo RenderInfo; +struct _RenderInfo +{ + int y; + float scaley; + int src_y; +}; + +static void bar(void) { } + +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; +} + +int main (void) +{ + RenderInfo info; + + info.y = 0; + info.src_y = 0; + info.scaley = 1.0; + + if (render_image_rgb_a(&info) != 256) + abort (); + exit(0); +} |