]> git.saurik.com Git - bison.git/commitdiff
(lbitset_set, lbitset_reset): Do not assume that
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 12 Aug 2002 14:22:08 +0000 (14:22 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 12 Aug 2002 14:22:08 +0000 (14:22 +0000)
bitset_word is the same width as int.
(lbitset_op1): Use -1, not ~0, as memset arg (for
portability to one's complement hosts!).

lib/lbitset.c

index 972094bb5f0b2560a563ddb930e22004b3ef2fe3..f5f8c4fabef3fb29b9c84a36e71dd5fe2a531b9d 100644 (file)
@@ -585,7 +585,8 @@ lbitset_set (dst, bitno)
 
   lbitset_elt_find (dst, windex, LBITSET_CREATE);
 
-  dst->b.cdata[windex - dst->b.cindex] |= (1 << (bitno % BITSET_WORD_BITS));
+  dst->b.cdata[windex - dst->b.cindex] |=
+    (bitset_word) 1 << (bitno % BITSET_WORD_BITS);
 }
 
 
@@ -600,7 +601,8 @@ lbitset_reset (dst, bitno)
   if (!lbitset_elt_find (dst, windex, LBITSET_FIND))
     return;
 
-  dst->b.cdata[windex - dst->b.cindex] &= ~(1 << (bitno % BITSET_WORD_BITS));
+  dst->b.cdata[windex - dst->b.cindex] &=
+    ~((bitset_word) 1 << (bitno % BITSET_WORD_BITS));
 
   /* If all the data is zero, perhaps we should unlink it now...  */
 }
@@ -951,7 +953,7 @@ lbitset_op1 (dst, op)
        {
          /* Create new elements if they cannot be found.  */
          elt = lbitset_elt_find (dst, i, LBITSET_CREATE);
-         memset (elt->words, ~0, sizeof (elt->words));
+         memset (elt->words, -1, sizeof (elt->words));
        }
       break;