------- Additional Comments From steven at gcc dot gnu dot org 2005-04-12 13:38 ------- FWIW, I think the problem might be that there are cases where force_gimple_operand generates more sub-expressions, but we do not add value handles for them: (gdb) 1369 folded = fold (build (TREE_CODE (expr), TREE_TYPE (expr), (gdb) p expr->common.code $36 = NOP_EXPR (gdb) next 1371 newexpr = force_gimple_operand (folded, &forced_stmts, false, NULL); (gdb) p debug_generic_expr(folded) (charD.3 *) &0B->typeD.1931 $37 = void (gdb) next 1372 if (forced_stmts) (gdb) p debug_generic_expr(newexpr) (charD.3 *) D.1971_2 $38 = void (gdb) p debug_generic_stmt(forced_stmts) D.1970_10 = 0B; D.1971_2 = &D.1970_10->typeD.1931; $39 = void (gdb) We never add the value handles for the expressions in those two "forced_stmts", and we ICE when we look for a leader for one of them... But I'll leave it to Dan to figure out the details ;-)
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20963