diff options
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 65aa6c1169b..156bdd4730e 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -6142,11 +6142,13 @@ remove_range_assertions (void) static bool stmt_interesting_for_vrp (gimple stmt) { - if (gimple_code (stmt) == GIMPLE_PHI - && is_gimple_reg (gimple_phi_result (stmt)) - && (INTEGRAL_TYPE_P (TREE_TYPE (gimple_phi_result (stmt))) - || POINTER_TYPE_P (TREE_TYPE (gimple_phi_result (stmt))))) - return true; + if (gimple_code (stmt) == GIMPLE_PHI) + { + tree res = gimple_phi_result (stmt); + return (!virtual_operand_p (res) + && (INTEGRAL_TYPE_P (TREE_TYPE (res)) + || POINTER_TYPE_P (TREE_TYPE (res)))); + } else if (is_gimple_assign (stmt) || is_gimple_call (stmt)) { tree lhs = gimple_get_lhs (stmt); |