From: Jakub Jelinek Date: Wed, 9 Jan 2002 18:26:46 +0000 (+0100) Subject: * gcc.c-torture/compile/20020109-1.c: New test. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a2a2c12d8bf544052df4403f0864afd11e6b0ba4;p=gcc.git * gcc.c-torture/compile/20020109-1.c: New test. From-SVN: r48685 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 443bfa0f7ca..356557cdb29 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2002-01-09 Jakub Jelinek + + * gcc.c-torture/compile/20020109-1.c: New test. + 2002-01-08 Kazu Hirata * gcc.c-torture/execute/20020108-1.c: New test. diff --git a/gcc/testsuite/gcc.c-torture/compile/20020109-1.c b/gcc/testsuite/gcc.c-torture/compile/20020109-1.c new file mode 100644 index 00000000000..532fe6de2d5 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20020109-1.c @@ -0,0 +1,23 @@ +/* This testcase ICEd when 2 different successors of a basic block + were successfully threaded and try_forward_edges was not expecting + that. */ + +typedef struct A +{ + struct A *s, *t; + unsigned int u; +} A; + +void bar (A *); + +void +foo (A *x, A *y, A *z) +{ + while (y + && (((y && y->t && y->t->u) ? y : z)->t + == ((x && x->t && x->t->u) ? x : z)->t)) + y = y->s; + + if (y) + bar (y); +}