diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 389f5fde265..b3ac0799a91 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2000-06-05 Richard Henderson + + * gcc.c-torture/execute/20000605-1.c: New test. + 2000-06-05 Jakub Jelinek Nathan Sidwell 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 00000000000..b481ecb62b6 --- /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); +}