diff options
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20000605-2.c | 18 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20000605-3.c | 18 |
3 files changed, 41 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b87a6de..2df248c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2000-06-05 Richard Henderson <rth@cygnus.com> + + * gcc.c-torture/execute/20000605-2.c: New test. + * gcc.c-torture/execute/20000605-3.c: New test. + 2000-06-06 David Billinghurst <David Billinghurst@riotinto.com.au> * g77.f-torture/execute/20000503-1.x: New file. diff --git a/gcc/testsuite/gcc.c-torture/execute/20000605-2.c b/gcc/testsuite/gcc.c-torture/execute/20000605-2.c new file mode 100644 index 0000000..8a49bc6 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20000605-2.c @@ -0,0 +1,18 @@ +struct F { int i; }; + +void f1(struct F *x, struct F *y) +{ + int timeout = 0; + for (; ((const struct F*)x)->i < y->i ; x->i++) + if (++timeout > 5) + abort (); +} + +main() +{ + struct F x, y; + x.i = 0; + y.i = 1; + f1 (&x, &y); + exit (0); +} diff --git a/gcc/testsuite/gcc.c-torture/execute/20000605-3.c b/gcc/testsuite/gcc.c-torture/execute/20000605-3.c new file mode 100644 index 0000000..7ebb27f --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20000605-3.c @@ -0,0 +1,18 @@ +struct F { int x; int y; }; + +int main() +{ + int timeout = 0; + int x = 0; + while (1) + { + const struct F i = { x++, }; + if (i.x > 0) + break; + if (++timeout > 5) + goto die; + } + return 0; + die: + abort (); +} |