From: Richard Henderson Date: Thu, 24 Jan 2002 07:36:18 +0000 (-0800) Subject: fold-const.c (fold): Change UINT_MAX test to check vs precision rather than TYPE_MAX_... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f3077311c4fbead462e28f646910039165076cc3;p=gcc.git fold-const.c (fold): Change UINT_MAX test to check vs precision rather than TYPE_MAX_VALUE. * fold-const.c (fold): Change UINT_MAX test to check vs precision rather than TYPE_MAX_VALUE. Fix indentation and a bogus negation. From-SVN: r49174 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c181bd70ed2..de4b9fc0ff2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-01-23 Richard Henderson + + * fold-const.c (fold): Change UINT_MAX test to check vs precision + rather than TYPE_MAX_VALUE. Fix indentation and a bogus negation. + 2002-01-24 Alexandre Oliva * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index dec382d854e..2f0d4ace1c1 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -6703,7 +6703,7 @@ fold (expr) } else if (TREE_INT_CST_HIGH (arg1) == -1 - && (- TREE_INT_CST_LOW (arg1) + && (TREE_INT_CST_LOW (arg1) == ((unsigned HOST_WIDE_INT) 1 << (width - 1))) && ! TREE_UNSIGNED (TREE_TYPE (arg1))) switch (TREE_CODE (t)) @@ -6729,12 +6729,11 @@ fold (expr) } else if (TREE_INT_CST_HIGH (arg1) == 0 - && (TREE_INT_CST_LOW (arg1) - == ((unsigned HOST_WIDE_INT) 1 << (width - 1)) - 1) - && TREE_UNSIGNED (TREE_TYPE (arg1)) - /* signed_type does not work on pointer types. */ - && INTEGRAL_TYPE_P (TREE_TYPE (arg1))) - + && (TREE_INT_CST_LOW (arg1) + == ((unsigned HOST_WIDE_INT) 1 << (width - 1)) - 1) + && TREE_UNSIGNED (TREE_TYPE (arg1)) + /* signed_type does not work on pointer types. */ + && INTEGRAL_TYPE_P (TREE_TYPE (arg1))) switch (TREE_CODE (t)) { case LE_EXPR: @@ -6754,9 +6753,10 @@ fold (expr) break; } - else if (TREE_UNSIGNED (TREE_TYPE (arg1)) - && tree_int_cst_equal (TYPE_MAX_VALUE (TREE_TYPE (arg1)), - arg1)) + else if (TREE_INT_CST_HIGH (arg1) == 0 + && (TREE_INT_CST_LOW (arg1) + == ((unsigned HOST_WIDE_INT) 2 << (width - 1)) - 1) + && TREE_UNSIGNED (TREE_TYPE (arg1))) switch (TREE_CODE (t)) { case GT_EXPR: