aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorAndrew Jenner <andrew@codesourcery.com>2012-07-26 20:51:24 +0000
committerSandra Loosemore <sandra@gcc.gnu.org>2012-07-26 16:51:24 -0400
commit27ec0502c807dd79b1e6782806ac2d95bd084a6a (patch)
tree23ce5234684b58ad1898974a03acd1eb8d8d4723 /gcc/testsuite
parent18a8e9ef96b23d33036c8f78baa3e4ad19a64825 (diff)
downloadgcc-27ec0502c807dd79b1e6782806ac2d95bd084a6a.zip
gcc-27ec0502c807dd79b1e6782806ac2d95bd084a6a.tar.gz
gcc-27ec0502c807dd79b1e6782806ac2d95bd084a6a.tar.bz2
cse.c (find_comparison_args): Check for cycles of any length.
2012-07-26 Andrew Jenner <andrew@codesourcery.com> Sandra Loosemore <sandra@codesourcery.com> gcc/ * cse.c (find_comparison_args): Check for cycles of any length. gcc/testsuite/ * gcc.c-torture/compile/pr50380.c: Add code to cause cycle of length 2. Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com> From-SVN: r189896
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr50380.c16
2 files changed, 18 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 805698a..0773f04 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-26 Andrew Jenner <andrew@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+
+ * gcc.c-torture/compile/pr50380.c: Add code to cause cycle of length 2.
+
2012-07-26 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/contiguous_1.f90: Update dg-error.
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr50380.c b/gcc/testsuite/gcc.c-torture/compile/pr50380.c
index ffd0442..3f03cbb 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr50380.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr50380.c
@@ -1,12 +1,22 @@
-/* This test used to get stuck in an infinite loop in find_comparison_args
- when compiling for MIPS at -O2. */
-
__attribute__ ((__noreturn__)) extern void fail (void);
char x;
+/* This used to get stuck in an infinite loop in find_comparison_args
+ when compiling this function for MIPS at -O2. */
+
void foo (const unsigned char y)
{
((void) (__builtin_expect((!! y == y), 1) ? 0 : (fail (), 0)));
x = ! y;
}
+
+/* This used to similarly get stuck when compiling for PowerPC at -O2. */
+
+int foo2 (int arg)
+{
+ if (arg != !arg)
+ fail ();
+ if (arg)
+ fail ();
+}