summaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c12
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);