Commit 32410d02 by Jakub Jelinek Committed by Jakub Jelinek

re PR rtl-optimization/52092 (ICE: internal consistency failure)

	PR rtl-optimization/52092
	* loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
	on get_iv_value result.

	* gcc.c-torture/compile/pr52092.c: New test.

Co-Authored-By: Zdenek Dvorak <ook@ucw.cz>

From-SVN: r183869
parent 5b5b0fa9
2012-02-03 Jakub Jelinek <jakub@redhat.com>
Zdenek Dvorak <ook@ucw.cz>
PR rtl-optimization/52092
* loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
on get_iv_value result.
2012-02-02 Andrew Pinski <apinski@cavium.com>
PR middle-end/47982
......
/* Loop unswitching for GNU compiler.
Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2012
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -367,7 +367,7 @@ unswitch_single_loop (struct loop *loop, rtx cond_checked, int num)
fprintf (dump_file, ";; Unswitching loop\n");
/* Unswitch the loop on this condition. */
nloop = unswitch_loop (loop, bbs[i], cond, cinsn);
nloop = unswitch_loop (loop, bbs[i], copy_rtx_if_shared (cond), cinsn);
gcc_assert (nloop);
/* Invoke itself on modified loops. */
......
2012-02-03 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/52092
* gcc.c-torture/compile/pr52092.c: New test.
2012-02-02 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/41587
......
/* PR rtl-optimization/52092 */
int a, b, c, d, e, f, g;
void
foo (void)
{
for (;;)
{
int *h = 0;
int i = 3;
int **j = &h;
if (e)
{
c = d || a;
g = c ? a : b;
if ((char) (i * g))
{
h = &f;
*h = 0;
}
**j = 0;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment