On 04/21/14 10:57, David Malcolm wrote:
gcc/ * gimple.h (gimple_cond_make_false): Require a gimple_cond. (gimple_cond_make_true): Likewise.* tree-cfg.c (fold_cond_expr_cond): Add a checked cast to gimple_cond within region guarded by check for GIMPLE_COND. * tree-ssa-ccp.c (ccp_fold_stmt): Likewise. * tree-loop-distribution.c (generate_loops_for_partition): Replace a check for GIMPLE_COND with a dyn_cast_gimple_cond. * tree-ssa-ccp.c (optimize_unreachable): Likewise. * tree-ssa-loop-niter.c (number_of_iterations_exit): Likewise. * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise. * tree-vrp.c (fold_predicate_in): Add a checked cast to gimple_cond. We must be dealing with a GIMPLE_COND since logic at top of the function ensures we only act on GIMPLE_ASSIGN and GIMPLE_COND statements, and we're now within a "not a GIMPLE_ASSIGN" clause. * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Add checked cast of elt->stmt to gimple_cond. The existing code requires this to be a GIMPLE_COND, though it's not clear to me how this requirement is enforced. (remove_redundant_iv_tests): Likewise. (try_unroll_loop_completely): Likewise, for the last_stmt of the preceding bb along edge_to_cancel. * tree-ssa-reassoc.c (maybe_optimize_range_tests): Likewise, for the last_stmt of bb.
OK once prerequisites go in. jeff
