]> git.saurik.com Git - bison.git/blobdiff - lib/ebitset.c
* NEWS (2.3a+): Mention yesterday's state-removal change.
[bison.git] / lib / ebitset.c
index 6006c0e2449d42f1f9823ddf44a42173ee72d3ef..ceebde2584caaaf0f152b6abf06121f9c91788dd 100644 (file)
@@ -1,5 +1,5 @@
 /* Functions to support expandable bitsets.
-   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).
 
    This program is free software; you can redistribute it and/or modify
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
+#include <config.h>
 
 #include "ebitset.h"
+
 #include "obstack.h"
 #include <stdlib.h>
 #include <string.h>
@@ -115,11 +113,11 @@ static ebitset_elt *ebitset_free_list;    /* Free list of bitset elements.  */
  ((BSET)->b.cindex = (EINDEX) * EBITSET_ELT_WORDS, \
   (BSET)->b.cdata = EBITSET_WORDS (EBITSET_ELTS (BSET) [EINDEX]))
 
-
+#undef min
+#undef max
 #define min(a, b) ((a) > (b) ? (b) : (a))
 #define max(a, b) ((a) > (b) ? (a) : (b))
 
-
 static bitset_bindex
 ebitset_resize (bitset src, bitset_bindex n_bits)
 {
@@ -136,7 +134,7 @@ ebitset_resize (bitset src, bitset_bindex n_bits)
     {
       bitset_windex size;
 
-      /* The bitset needs to grow.  If we already have enough memory 
+      /* The bitset needs to grow.  If we already have enough memory
         allocated, then just zero what we need.  */
       if (newsize > EBITSET_ASIZE (src))
        {
@@ -149,13 +147,13 @@ ebitset_resize (bitset src, bitset_bindex n_bits)
            size = newsize;
          else
            size = newsize + newsize / 4;
-         
+
          EBITSET_ELTS (src)
            = realloc (EBITSET_ELTS (src), size * sizeof (ebitset_elt *));
          EBITSET_ASIZE (src) = size;
        }
 
-      memset (EBITSET_ELTS (src) + oldsize, 0, 
+      memset (EBITSET_ELTS (src) + oldsize, 0,
              (newsize - oldsize) * sizeof (ebitset_elt *));
     }
   else
@@ -210,7 +208,7 @@ ebitset_elt_alloc (void)
 #define OBSTACK_CHUNK_FREE free
 #endif
 
-#if !defined(__GNUC__) || (__GNUC__ < 2)
+#if ! defined __GNUC__ || __GNUC__ < 2
 #define __alignof__(type) 0
 #endif
 
@@ -322,6 +320,9 @@ ebitset_elt_find (bitset bset, bitset_bindex bindex,
 
   switch (mode)
     {
+    default:
+      abort ();
+
     case EBITSET_FIND:
       return 0;
 
@@ -337,9 +338,6 @@ ebitset_elt_find (bitset bset, bitset_bindex bindex,
 
     case EBITSET_SUBST:
       return &ebitset_zero_elts[0];
-
-    default:
-      abort ();
     }
 }
 
@@ -838,10 +836,10 @@ ebitset_unused_clear (bitset dst)
 {
   unsigned int last_bit;
   bitset_bindex n_bits;
-  
+
   n_bits = BITSET_NBITS_ (dst);
   last_bit = n_bits % EBITSET_ELT_BITS;
-  
+
   if (last_bit)
     {
       bitset_windex eindex;
@@ -849,20 +847,20 @@ ebitset_unused_clear (bitset dst)
       ebitset_elt *elt;
 
       elts = EBITSET_ELTS (dst);
-      
+
       eindex = n_bits / EBITSET_ELT_BITS;
-      
+
       elt = elts[eindex];
       if (elt)
        {
          bitset_windex windex;
          bitset_windex woffset;
          bitset_word *srcp = EBITSET_WORDS (elt);
-         
+
          windex = n_bits / BITSET_WORD_BITS;
          woffset = eindex * EBITSET_ELT_WORDS;
-         
-         srcp[windex - woffset] &= ((bitset_word) 1 << last_bit) - 1;    
+
+         srcp[windex - woffset] &= ((bitset_word) 1 << last_bit) - 1;
          windex++;
          for (; (windex - woffset) < EBITSET_ELT_WORDS; windex++)
            srcp[windex - woffset] = 0;
@@ -1090,6 +1088,9 @@ ebitset_op3_cmp (bitset dst, bitset src1, bitset src2, enum bitset_ops op)
       dstp = EBITSET_WORDS (delt);
       switch (op)
        {
+       default:
+         abort ();
+
        case BITSET_OP_OR:
          for (i = 0; i < EBITSET_ELT_WORDS; i++, dstp++)
            {
@@ -1141,9 +1142,6 @@ ebitset_op3_cmp (bitset dst, bitset src1, bitset src2, enum bitset_ops op)
                }
            }
          break;
-
-       default:
-         abort ();
        }
 
       if (!ebitset_elt_zero_p (delt))