aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2008-03-27 09:17:43 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2008-03-27 09:17:43 +0000
commitbd03c0848a46497cb991f1425c232ab1d70894cd (patch)
tree24596a80ba3991139c61c72fb30d21fdddb5e9b5 /gcc/tree-vrp.c
parent87a72aa8f9a533b3d885b04be81b1c81d526f542 (diff)
downloadgcc-bd03c0848a46497cb991f1425c232ab1d70894cd.zip
gcc-bd03c0848a46497cb991f1425c232ab1d70894cd.tar.gz
gcc-bd03c0848a46497cb991f1425c232ab1d70894cd.tar.bz2
fold-const.c (target.h): Include.
2008-03-27 Richard Guenther <rguenther@suse.de> * fold-const.c (target.h): Include. (fold_comparison): Fold comparison of addresses of decls that bind locally or of constants. Consolidate address folding code. * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST results from fold_binary_to_constant. (compare_values_warnv): Likewise. * gcc.dg/fold-addr-1.c: New testcase. From-SVN: r133632
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 5944e6a..64f6000 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -724,7 +724,8 @@ operand_less_p (tree val, tree val2)
fold_undefer_and_ignore_overflow_warnings ();
- if (!tcmp)
+ if (!tcmp
+ || TREE_CODE (tcmp) != INTEGER_CST)
return -2;
if (!integer_zerop (tcmp))
@@ -932,7 +933,7 @@ compare_values_warnv (tree val1, tree val2, bool *strict_overflow_p)
|| TREE_CODE (val2) != INTEGER_CST)
{
t = fold_binary_to_constant (NE_EXPR, boolean_type_node, val1, val2);
- if (t && tree_expr_nonzero_p (t))
+ if (t && integer_onep (t))
return 2;
}