From cac3388c7fda0c867affa2c096e4517c1b047f52 Mon Sep 17 00:00:00 2001 From: Sebastian Hack Date: Wed, 20 Jul 2005 10:01:19 +0000 Subject: [PATCH] Fixed a bug in bitset_mask_highest and bitset_set_all [r6250] --- ir/adt/bitset.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ir/adt/bitset.h b/ir/adt/bitset.h index c622ef8ab..4f249be07 100644 --- a/ir/adt/bitset.h +++ b/ir/adt/bitset.h @@ -73,7 +73,7 @@ static INLINE bitset_t *_bitset_prepare(void *area, bitset_pos_t size) */ static INLINE bitset_t *_bitset_mask_highest(bitset_t *bs) { - bs->data[bs->units - 1] &= (bs->size & BS_UNIT_MASK) - 1; + bs->data[bs->units - 1] &= (1 << (bs->size & BS_UNIT_MASK)) - 1; return bs; } @@ -345,8 +345,8 @@ static INLINE bitset_t *bitset_clear_all(bitset_t *bs) */ static INLINE bitset_t *bitset_set_all(bitset_t *bs) { - memset(bs->data, -1, BS_UNIT_SIZE * bs->units); - return bs; + memset(bs->data, -1, bs->units * BS_UNIT_SIZE); + return _bitset_mask_highest(bs); } /** -- 2.20.1