aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture
diff options
context:
space:
mode:
authorSteven Bosscher <stevenb.gcc@gmail.com>2006-01-14 11:04:16 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2006-01-14 11:04:16 +0000
commit26fb114d1345224c2af762534482eb8ad117f622 (patch)
tree1005f3498bda5cb6a91a72d21a00110ae5c54ffb /gcc/testsuite/gcc.dg/torture
parent2482200f02cb997e951140aafe3415e27b07b8fd (diff)
downloadgcc-26fb114d1345224c2af762534482eb8ad117f622.zip
gcc-26fb114d1345224c2af762534482eb8ad117f622.tar.gz
gcc-26fb114d1345224c2af762534482eb8ad117f622.tar.bz2
re PR rtl-optimization/24257 (ICE: in extract_insn with -O -fgcse -fgcse-sm)
2006-01-14 Steven Bosscher <stevenb.gcc@gmail.com> Richard Guenther <rguenther@suse.de> PR rtl-optimization/24257 * gcse.c (find_moveable_store): Only consider a store movable when the SET_SRC of the insn can be assigned to a register. * gcc.dg/torture/pr24257.c: New testcase. Co-Authored-By: Richard Guenther <rguenther@suse.de> From-SVN: r109701
Diffstat (limited to 'gcc/testsuite/gcc.dg/torture')
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr24257.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr24257.c b/gcc/testsuite/gcc.dg/torture/pr24257.c
new file mode 100644
index 0000000..200bd18
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr24257.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fgcse -fgcse-sm" } */
+
+typedef struct A {
+ int buf, left;
+} A;
+
+static void flush(A *s, int n)
+{
+ s->buf <<= n;
+
+ while (s->left < 32) {
+ s->buf <<= 8;
+ s->left += 8;
+ }
+
+ s->buf=0;
+}
+
+void oof(A *s, int n)
+{
+ s->buf = n;
+ s->left = n;
+
+ flush(s, n);
+}