------- Comment #7 from ebotcazou at gcc dot gnu dot org 2009-10-12 17:59 ------- > It is caused by revision 147716: > > http://gcc.gnu.org/ml/gcc-cvs/2009-05/msg00693.html
Yep, but it's Richard's fault. ;-) The bug is exposed by the change requested in http://gcc.gnu.org/ml/gcc-patches/2009-05/msg01227.html so I won't go beyond suggesting the following partial reversion Index: tree-scalar-evolution.c =================================================================== --- tree-scalar-evolution.c (revision 152647) +++ tree-scalar-evolution.c (working copy) @@ -1159,7 +1159,7 @@ follow_ssa_edge_expr (struct loop *loop, switch (code) { - CASE_CONVERT: + case NOP_EXPR: /* This assignment is under the form "a_1 = (cast) rhs. */ res = follow_ssa_edge_expr (loop, at_stmt, TREE_OPERAND (expr, 0), halting_phi, evolution_of_loop, limit); @@ -1222,7 +1222,7 @@ follow_ssa_edge_in_rhs (struct loop *loo switch (code) { - CASE_CONVERT: + case NOP_EXPR: /* This assignment is under the form "a_1 = (cast) rhs. */ res = follow_ssa_edge_expr (loop, stmt, gimple_assign_rhs1 (stmt), halting_phi, evolution_of_loop, limit); But I also think that the real problem is elsewhere. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41497