diff options
author | Richard Guenther <rguenther@suse.de> | 2011-08-24 12:51:45 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-08-24 12:51:45 +0000 |
commit | e66132e141e14f3773e1e666309ab84ead8b68c1 (patch) | |
tree | f3636ed7d97b6c98eeb95655a19256b3a5b08856 /gcc/fold-const.c | |
parent | 76f60b1980d82a823f076b6a11a1b1f6a3645fbe (diff) | |
download | gcc-e66132e141e14f3773e1e666309ab84ead8b68c1.zip gcc-e66132e141e14f3773e1e666309ab84ead8b68c1.tar.gz gcc-e66132e141e14f3773e1e666309ab84ead8b68c1.tar.bz2 |
fold-const.c (fold_comparison): Fold &a < &a + 4 even with -fno-strict-overflow.
2011-08-24 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_comparison): Fold &a < &a + 4 even
with -fno-strict-overflow.
From-SVN: r178036
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index dcd6989..01c5570 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -8738,6 +8738,7 @@ fold_comparison (location_t loc, enum tree_code code, tree type, && operand_equal_p (offset0, offset1, 0))) && (code == EQ_EXPR || code == NE_EXPR + || (indirect_base0 && DECL_P (base0)) || POINTER_TYPE_OVERFLOW_UNDEFINED)) { @@ -8777,6 +8778,7 @@ fold_comparison (location_t loc, enum tree_code code, tree type, 6.5.6/8 and /9 with respect to the signed ptrdiff_t. */ else if (bitpos0 == bitpos1 && ((code == EQ_EXPR || code == NE_EXPR) + || (indirect_base0 && DECL_P (base0)) || POINTER_TYPE_OVERFLOW_UNDEFINED)) { /* By converting to signed size type we cover middle-end pointer |