aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2011-04-07 19:58:05 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2011-04-07 19:58:05 +0200
commit54f16bf8f37128b5db6aa35fac9559632885d265 (patch)
tree7b745741c1ef570135f7364793431ffaa7e0cabf /gcc
parent4e626909c7d92d3a6964180f9232b59aaf85b426 (diff)
downloadgcc-54f16bf8f37128b5db6aa35fac9559632885d265.zip
gcc-54f16bf8f37128b5db6aa35fac9559632885d265.tar.gz
gcc-54f16bf8f37128b5db6aa35fac9559632885d265.tar.bz2
re PR debug/48343 (ICE compiling i586 linux-2.6.38/drivers/staging/wlan-ng/p80211wep.c: in form_sum, at reload.c:5338)
PR debug/48343 * combine.c (combine_instructions): Add last_combined_insn, update it if insn is after it, pass it to all try_combine calls. (try_combine): Add last_combined_insn parameter, pass it instead of i3 to propagate_for_debug. * gcc.dg/torture/pr48343.c: New test. From-SVN: r172109
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr48343.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr48343.c b/gcc/testsuite/gcc.dg/torture/pr48343.c
new file mode 100644
index 0000000..e56b3a3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr48343.c
@@ -0,0 +1,19 @@
+/* PR debug/48343 */
+/* { dg-do compile } */
+/* { dg-options "-fcompare-debug" } */
+
+void foo (unsigned char *, unsigned char *);
+
+void
+test (unsigned int x, int y)
+{
+ unsigned int i, j = 0, k;
+ unsigned char s[256], t[64];
+ foo (s, t);
+ t[0] = y;
+ for (i = 0; i < 256; i++)
+ {
+ j = (j + s[i] + t[i % x]) & 0xff;
+ k = i; i = j; j = k;
+ }
+}