From 8980b5a34d2d8953f64fe6ca428dd2fa00969aab Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 21 Apr 1995 08:11:06 -0400 Subject: [PATCH] (integer_all_onesp): Test to size of mode, not TYPE_PRECISION. From-SVN: r9427 --- gcc/tree.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/tree.c b/gcc/tree.c index 3310e88bd76..1b32348c7e5 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -1530,7 +1530,9 @@ integer_all_onesp (expr) if (!uns) return TREE_INT_CST_LOW (expr) == -1 && TREE_INT_CST_HIGH (expr) == -1; - prec = TYPE_PRECISION (TREE_TYPE (expr)); + /* Note that using TYPE_PRECISION here is wrong. We care about the + actual bits, not the (arbitrary) range of the type. */ + prec = GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (expr))); if (prec >= HOST_BITS_PER_WIDE_INT) { int high_value, shift_amount; -- 2.30.2