diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 6472f48..7fbb687 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -258,12 +258,7 @@ get_default_value (tree var) val.mask = double_int_minus_one; } } - else if (is_gimple_assign (stmt) - /* Value-returning GIMPLE_CALL statements assign to - a variable, and are treated similarly to GIMPLE_ASSIGN. */ - || (is_gimple_call (stmt) - && gimple_call_lhs (stmt) != NULL_TREE) - || gimple_code (stmt) == GIMPLE_PHI) + else if (is_gimple_assign (stmt)) { tree cst; if (gimple_assign_single_p (stmt) @@ -274,10 +269,18 @@ get_default_value (tree var) val.value = cst; } else - /* Any other variable defined by an assignment or a PHI node + /* Any other variable defined by an assignment is considered UNDEFINED. */ val.lattice_val = UNDEFINED; } + else if ((is_gimple_call (stmt) + && gimple_call_lhs (stmt) != NULL_TREE) + || gimple_code (stmt) == GIMPLE_PHI) + { + /*Variable defined by a call or a PHI node + is considered UNDEFINED. */ + val.lattice_val = UNDEFINED; + } else { /* Otherwise, VAR will never take on a constant value. */