From: Richard Guenther Date: Wed, 24 Aug 2011 12:51:45 +0000 (+0000) Subject: fold-const.c (fold_comparison): Fold &a < &a + 4 even with -fno-strict-overflow. X-Git-Tag: releases/gcc-4.7.0~4290 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e66132e141e14f3773e1e666309ab84ead8b68c1;p=thirdparty%2Fgcc.git fold-const.c (fold_comparison): Fold &a < &a + 4 even with -fno-strict-overflow. 2011-08-24 Richard Guenther * fold-const.c (fold_comparison): Fold &a < &a + 4 even with -fno-strict-overflow. From-SVN: r178036 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7e1db3d1203f..2c4aadbe186f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-08-24 Richard Guenther + + * fold-const.c (fold_comparison): Fold &a < &a + 4 even + with -fno-strict-overflow. + 2011-08-24 Richard Guenther * tree-vectorizer.c (vect_print_dump_info): Avoid the diff --git a/gcc/fold-const.c b/gcc/fold-const.c index dcd6989b2855..01c5570e28bf 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