diff options
author | Richard Guenther <rguenther@suse.de> | 2008-03-27 09:17:43 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2008-03-27 09:17:43 +0000 |
commit | bd03c0848a46497cb991f1425c232ab1d70894cd (patch) | |
tree | 24596a80ba3991139c61c72fb30d21fdddb5e9b5 /gcc/tree-vrp.c | |
parent | 87a72aa8f9a533b3d885b04be81b1c81d526f542 (diff) | |
download | gcc-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.c | 5 |
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; } |