summaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1995-04-21 12:11:06 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1995-04-21 12:11:06 +0000
commit94fa82416949ac6e52bed6c8689523e1d097d07e (patch)
tree1e2d184b6ccdd5110c1c94370f7d0d0b3fa6220c /gcc/tree.c
parent7bc79804939925dfadbd0c4e796a6b76637b57e4 (diff)
downloadgcc-94fa82416949ac6e52bed6c8689523e1d097d07e.tar.gz
(integer_all_onesp): Test to size of mode, not TYPE_PRECISION.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9427 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c4
1 files changed, 3 insertions, 1 deletions
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;