From: Jakub Jelinek Date: Sat, 2 Feb 2002 00:16:39 +0000 (+0100) Subject: * gcc.dg/20020201-2.c: New test. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b24d861d0e29de3e7f136d62bf22d60fe00e9fce;p=gcc.git * gcc.dg/20020201-2.c: New test. From-SVN: r49421 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 56d0268fd77..c58eb79335e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2002-02-02 Jakub Jelinek + + * gcc.dg/20020201-2.c: New test. + 2002-02-02 Neil Booth * gcc.dg/bitfld-1.c: Update. diff --git a/gcc/testsuite/gcc.dg/20020201-2.c b/gcc/testsuite/gcc.dg/20020201-2.c new file mode 100644 index 00000000000..2a13c8d83ca --- /dev/null +++ b/gcc/testsuite/gcc.dg/20020201-2.c @@ -0,0 +1,30 @@ +/* This testcase caused ICE because gcc was not able to add instructions + on edge from ENTRY block successor to itself. */ +/* { dg-do compile } */ +/* { dg-options "-O3 -fssa" } */ + +struct A { int a1; int a2; }; +struct B { long int b[32]; }; + +extern int bar (struct B *, struct A *); + +int +foo (struct B x) +{ + struct A a, b; + struct B c; + int d; + + while (1) + { + a.a1 = 0; + a.a2 = 0; + b = a; + c = x; + d = bar (&c, &b); + if (d >= 0) + return d; + } + + return 0; +}