diff options
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index fffeefc..b3223a5 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -3747,9 +3747,9 @@ stmt_interesting_for_vrp (tree stmt) && (INTEGRAL_TYPE_P (TREE_TYPE (lhs)) || POINTER_TYPE_P (TREE_TYPE (lhs))) && ((TREE_CODE (rhs) == CALL_EXPR - && TREE_CODE (TREE_OPERAND (rhs, 0)) == ADDR_EXPR - && DECL_P (TREE_OPERAND (TREE_OPERAND (rhs, 0), 0)) - && DECL_IS_BUILTIN (TREE_OPERAND (TREE_OPERAND (rhs, 0), 0))) + && TREE_CODE (CALL_EXPR_FN (rhs)) == ADDR_EXPR + && DECL_P (TREE_OPERAND (CALL_EXPR_FN (rhs), 0)) + && DECL_IS_BUILTIN (TREE_OPERAND (CALL_EXPR_FN (rhs), 0))) || ZERO_SSA_OPERANDS (stmt, SSA_OP_ALL_VIRTUALS))) return true; } @@ -4242,9 +4242,9 @@ vrp_visit_stmt (tree stmt, edge *taken_edge_p, tree *output_p) for deriving ranges, with the obvious exception of calls to builtin functions. */ if ((TREE_CODE (rhs) == CALL_EXPR - && TREE_CODE (TREE_OPERAND (rhs, 0)) == ADDR_EXPR - && DECL_P (TREE_OPERAND (TREE_OPERAND (rhs, 0), 0)) - && DECL_IS_BUILTIN (TREE_OPERAND (TREE_OPERAND (rhs, 0), 0))) + && TREE_CODE (CALL_EXPR_FN (rhs)) == ADDR_EXPR + && DECL_P (TREE_OPERAND (CALL_EXPR_FN (rhs), 0)) + && DECL_IS_BUILTIN (TREE_OPERAND (CALL_EXPR_FN (rhs), 0))) || ZERO_SSA_OPERANDS (stmt, SSA_OP_ALL_VIRTUALS)) return vrp_visit_assignment (stmt, output_p); } |