From 11c9e8f1db33c5aa3aae3b2400f3386bc05e740a Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Mon, 21 Feb 2011 10:43:15 -0700 Subject: [PATCH] re PR rtl-optimization/46178 (gcc.target/i386/(u)divmod-[58].c FAIL: ICE: in dec_register_pressure, at ira-lives.c:215 with -fira-algorithm=priority) PR rtl-optimization/46178 * gcc.target/i386/pr46178.c: New test. PR rtl-optimization/46002 * gcc.c-torture/compile/pr46002.c: New test. From-SVN: r170370 --- gcc/testsuite/ChangeLog | 8 ++++++++ gcc/testsuite/gcc.c-torture/compile/pr46002.c | 10 ++++++++++ gcc/testsuite/gcc.target/i386/pr46178.c | 13 +++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr46002.c create mode 100644 gcc/testsuite/gcc.target/i386/pr46178.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3951e862a50..d27cd28a44a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2011-02-21 Jeff Law + + PR rtl-optimization/46178 + * gcc.target/i386/pr46178.c: New test. + + PR rtl-optimization/46002 + * gcc.c-torture/compile/pr46002.c: New test. + 2011-02-21 John David Anglin * g++.dg/cpp0x/lambda/lambda-conv.C: Skip scan-assembler check on diff --git a/gcc/testsuite/gcc.c-torture/compile/pr46002.c b/gcc/testsuite/gcc.c-torture/compile/pr46002.c new file mode 100644 index 00000000000..27a3a3a284c --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr46002.c @@ -0,0 +1,10 @@ +/* { dg-options "-fira-algorithm=priority" } */ +char ** +foo (char **p, char *cmp, unsigned i) +{ + for (; *p; p++) + if (__builtin_strncmp (*p, cmp, i)) + if (i == __builtin_strlen (*p)) + break; + return p; +} diff --git a/gcc/testsuite/gcc.target/i386/pr46178.c b/gcc/testsuite/gcc.target/i386/pr46178.c new file mode 100644 index 00000000000..661e3fd9eac --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr46178.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-O -m8bit-idiv -fira-algorithm=priority" } */ +/* This is the same as divmod-5.c, just with different options which + trigger an ICE. We don't look at the output. */ + +extern void foo (int, int, int, int, int, int); + +void +bar (int x, int y) +{ + foo (0, 0, 0, 0, x / y, x % y); +} +