re PR rtl-optimization/51856 (ICE in reload_cse_simplify_operands)

2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR rtl-optimization/51856
	* reload.c (find_reloads_subreg_address): Set the address_reloaded
	flag to reloaded.

2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gcc.c-torture/compile/pr51856.c: New testcase.

From-SVN: r183341
This commit is contained in:
Andreas Krebbel 2012-01-20 16:29:01 +00:00 committed by Andreas Krebbel
parent 7c0434e577
commit afa73d3a68
4 changed files with 35 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR rtl-optimization/51856
* reload.c (find_reloads_subreg_address): Set the address_reloaded
flag to reloaded.
2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
PR target/51819

View File

@ -6231,8 +6231,8 @@ find_reloads_subreg_address (rtx x, int force_replace, int opnum,
}
}
}
if (reloaded && address_reloaded)
*address_reloaded = 1;
if (address_reloaded)
*address_reloaded = reloaded;
return x;
}

View File

@ -1,3 +1,7 @@
2012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* gcc.c-torture/compile/pr51856.c: New testcase.
2012-01-20 Uros Bizjak <ubizjak@gmail.com>
* go.test/go-test.exp (go-gc-tests): Pass correctly formatted

View File

@ -0,0 +1,23 @@
struct B { int b1; long long b2, b3; int b4; };
struct C { char c1[40], c2, c3[96]; long long c4[5], c5; char c6[596]; };
void fn1 (long long), fn2 (char *, int), fn4 (void);
int r, fn3 (int, const char *, int, char *, int, int);
void
foo (int t, int u, int v, int w, int x, int y, struct B *z)
{
char c[512], d[512], e;
struct C g;
long long f, h[255];
struct B j;
__builtin_bzero (&j, sizeof j);
if (y > w)
fn4 ();
__builtin_bzero (&g, sizeof g);
g.c5 = h[0];
fn1 (z ? z->b3 : f);
g.c2 = y;
fn2 (d, 256);
if (fn3 (r, "", e, c, 0, 16))
fn4 ();
}