mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 18:23:03 +00:00
* lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
interpreted as signed. * lib/ebitset.c (ebitset_list): Fix bug. From Michael Hayes.
This commit is contained in:
@@ -63,7 +63,10 @@ typedef size_t bitset_windex;
|
|||||||
/* Maximum values for commonly-used unsigned types. BITSET_SIZE_MAX
|
/* Maximum values for commonly-used unsigned types. BITSET_SIZE_MAX
|
||||||
always equals SIZE_MAX, but some older systems lack SIZE_MAX. */
|
always equals SIZE_MAX, but some older systems lack SIZE_MAX. */
|
||||||
#define BITSET_BINDEX_MAX ((bitset_bindex) -1)
|
#define BITSET_BINDEX_MAX ((bitset_bindex) -1)
|
||||||
#define BITSET_WINDEX_MAX ((bitset_windex) -1)
|
|
||||||
|
/* Limit max word index to the maximum value of a signed integer
|
||||||
|
to simplify cache disabling. */
|
||||||
|
#define BITSET_WINDEX_MAX (((bitset_windex) -1) >> 1)
|
||||||
#define BITSET_SIZE_MAX ((size_t) -1)
|
#define BITSET_SIZE_MAX ((size_t) -1)
|
||||||
|
|
||||||
#define BITSET_MSB ((bitset_word) 1 << (BITSET_WORD_BITS - 1))
|
#define BITSET_MSB ((bitset_word) 1 << (BITSET_WORD_BITS - 1))
|
||||||
|
|||||||
@@ -771,7 +771,7 @@ ebitset_list (bset, list, num, next)
|
|||||||
bitset_word *srcp = EBITSET_WORDS (elt);
|
bitset_word *srcp = EBITSET_WORDS (elt);
|
||||||
|
|
||||||
windex = bitno / BITSET_WORD_BITS;
|
windex = bitno / BITSET_WORD_BITS;
|
||||||
woffset = eindex / EBITSET_ELT_WORDS;
|
woffset = eindex * EBITSET_ELT_WORDS;
|
||||||
|
|
||||||
for (; (windex - woffset) < EBITSET_ELT_WORDS; windex++)
|
for (; (windex - woffset) < EBITSET_ELT_WORDS; windex++)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user