From: Paul Eggert Date: Mon, 12 Aug 2002 14:13:56 +0000 (+0000) Subject: (BITSET_WORD_BITS): Now of type unsigned, not X-Git-Tag: BISON-1_49b~39 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/50f095c92f5585ea3cdc07c1aec7d9fa9510b61a (BITSET_WORD_BITS): Now of type unsigned, not size_t; the old version tried to do this but casted improperly. (bitset_bindex, bitset_windex): Now size_t, not unsigned long. (bitset_test): Now returns int, not unsigned long. --- diff --git a/lib/bbitset.h b/lib/bbitset.h index 8ea98a8c..1e5710d3 100644 --- a/lib/bbitset.h +++ b/lib/bbitset.h @@ -45,17 +45,19 @@ enum bitset_alloc_type {BITSET_MALLOC, BITSET_OBALLOC}; /* Data type used to store a word of bits. */ typedef unsigned long bitset_word; -#define BITSET_WORD_BITS ((unsigned) CHAR_BIT * sizeof (bitset_word)) +#define BITSET_WORD_BITS ((unsigned) (CHAR_BIT * sizeof (bitset_word))) -/* Bit index. */ -typedef unsigned long bitset_bindex; +/* Bit index. In theory we might need a type wider than size_t, but + in practice we lose at most a factor of CHAR_BIT by going with + size_t, and that is good enough. */ +typedef size_t bitset_bindex; /* Word index. */ -typedef unsigned long bitset_windex; +typedef size_t bitset_windex; -#define BITSET_INDEX_MAX ((1U << (BITSET_WORD_BITS - 1))) +#define BITSET_INDEX_MAX ((bitset_word) 1 << (BITSET_WORD_BITS - 1)) -#define BITSET_MSB (1U << (BITSET_WORD_BITS - 1)) +#define BITSET_MSB ((bitset_word) 1 << (BITSET_WORD_BITS - 1)) #define BITSET_LIST_SIZE 1024