2007-05-03 Zdenek Dvorak <dvorakz@suse.cz> PR tree-optimization/30565 * lambda-code.c (perfect_nestify): Fix updating of dominators. * gcc.dg/tree-ssa/loop-27.c: New test. --- gcc/lambda-code.c (revision 124377) +++ gcc/lambda-code.c (revision 124378) @@ -2521,7 +2521,8 @@ perfect_nestify (struct loop *loop, set_immediate_dominator (CDI_DOMINATORS, preheaderbb, single_exit (loop)->src); set_immediate_dominator (CDI_DOMINATORS, latchbb, bodybb); - set_immediate_dominator (CDI_DOMINATORS, olddest, bodybb); + set_immediate_dominator (CDI_DOMINATORS, olddest, + recount_dominator (CDI_DOMINATORS, olddest)); /* Create the new iv. */ oldivvar = VEC_index (tree, loopivs, 0); ivvar = create_tmp_var (TREE_TYPE (oldivvar), "perfectiv"); --- gcc/testsuite/gcc.dg/tree-ssa/loop-27.c (revision 0) +++ gcc/testsuite/gcc.dg/tree-ssa/loop-27.c (revision 124378) @@ -0,0 +1,14 @@ +/* PR tree-optimization/30565 */ + +/* { dg-do compile } */ +/* { dg-options "-O1 -ftree-pre -ftree-loop-linear" } */ + +static double snrdef[32]; +void psycho_n1(double ltmin[2][32], int stereo) +{ + int i, k; + + for (k = 0; k < stereo; k++) + for (i = 0; i < 32; i++) + ltmin[k][i] = snrdef[i]; +}