]> git.saurik.com Git - bison.git/blobdiff - lib/lbitset.c
Work around Java's ``code too large'' problem for parser tables.
[bison.git] / lib / lbitset.c
index aeaa5b21fb425c6fecd8b7276e1990ea563bfac5..9a6fc0aeebdf1dd0f7a4adfb4afa06fd942fdb21 100644 (file)
@@ -1,10 +1,10 @@
 /* Functions to support link list bitsets.
 /* Functions to support link list bitsets.
-   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
    Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).
 
    Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).
 
-   This program is free software; you can redistribute it and/or modify
+   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
+#include <config.h>
 
 #include "lbitset.h"
 
 #include "lbitset.h"
+
 #include "obstack.h"
 #include <stddef.h>
 #include <stdlib.h>
 #include "obstack.h"
 #include <stddef.h>
 #include <stdlib.h>
@@ -41,7 +38,7 @@
 /* Number of words to use for each element.  The larger the value the
    greater the size of the cache and the shorter the time to find a given bit
    but the more memory wasted for sparse bitsets and the longer the time
 /* Number of words to use for each element.  The larger the value the
    greater the size of the cache and the shorter the time to find a given bit
    but the more memory wasted for sparse bitsets and the longer the time
-   to search for set bits. 
+   to search for set bits.
 
    The routines that dominate timing profiles are lbitset_elt_find
    and lbitset_elt_link, especially when accessing the bits randomly.  */
 
    The routines that dominate timing profiles are lbitset_elt_find
    and lbitset_elt_link, especially when accessing the bits randomly.  */
@@ -121,7 +118,7 @@ lbitset_elt_alloc (void)
 #define OBSTACK_CHUNK_FREE free
 #endif
 
 #define OBSTACK_CHUNK_FREE free
 #endif
 
-#if !defined(__GNUC__) || (__GNUC__ < 2)
+#if ! defined __GNUC__ || __GNUC__ < 2
 #define __alignof__(type) 0
 #endif
 
 #define __alignof__(type) 0
 #endif
 
@@ -363,6 +360,9 @@ lbitset_elt_find (bitset bset, bitset_windex windex,
 
   switch (mode)
     {
 
   switch (mode)
     {
+    default:
+      abort ();
+
     case LBITSET_FIND:
       return 0;
 
     case LBITSET_FIND:
       return 0;
 
@@ -376,9 +376,6 @@ lbitset_elt_find (bitset bset, bitset_windex windex,
 
     case LBITSET_SUBST:
       return &lbitset_zero_elts[0];
 
     case LBITSET_SUBST:
       return &lbitset_zero_elts[0];
-
-    default:
-      abort ();
     }
 }
 
     }
 }
 
@@ -888,18 +885,18 @@ lbitset_unused_clear (bitset dst)
 
   n_bits = BITSET_SIZE_ (dst);
   last_bit = n_bits % LBITSET_ELT_BITS;
 
   n_bits = BITSET_SIZE_ (dst);
   last_bit = n_bits % LBITSET_ELT_BITS;
-  
+
   if (last_bit)
     {
       lbitset_elt *elt;
       bitset_windex windex;
       bitset_word *srcp;
   if (last_bit)
     {
       lbitset_elt *elt;
       bitset_windex windex;
       bitset_word *srcp;
-      
+
       elt = LBITSET_TAIL (dst);
       srcp = elt->words;
       windex = n_bits / BITSET_WORD_BITS;
       elt = LBITSET_TAIL (dst);
       srcp = elt->words;
       windex = n_bits / BITSET_WORD_BITS;
-  
-      srcp[windex - elt->index] &= ((bitset_word) 1 << last_bit) - 1;    
+
+      srcp[windex - elt->index] &= ((bitset_word) 1 << last_bit) - 1;
       windex++;
 
       for (; (windex - elt->index) < LBITSET_ELT_WORDS; windex++)
       windex++;
 
       for (; (windex - elt->index) < LBITSET_ELT_WORDS; windex++)
@@ -1117,6 +1114,9 @@ lbitset_op3_cmp (bitset dst, bitset src1, bitset src2, enum bitset_ops op)
       dstp = dtmp->words;
       switch (op)
        {
       dstp = dtmp->words;
       switch (op)
        {
+       default:
+         abort ();
+
        case BITSET_OP_OR:
          for (i = 0; i < LBITSET_ELT_WORDS; i++, dstp++)
            {
        case BITSET_OP_OR:
          for (i = 0; i < LBITSET_ELT_WORDS; i++, dstp++)
            {
@@ -1168,9 +1168,6 @@ lbitset_op3_cmp (bitset dst, bitset src1, bitset src2, enum bitset_ops op)
                }
            }
          break;
                }
            }
          break;
-
-       default:
-         abort ();
        }
 
       if (!lbitset_elt_zero_p (dtmp))
        }
 
       if (!lbitset_elt_zero_p (dtmp))