* regex_internal.h (BITSET_WORD_BITS):
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 10 Jan 2006 20:14:43 +0000 (20:14 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 10 Jan 2006 20:14:43 +0000 (20:14 +0000)
Work around a bug in 64-bit PGC (before version 6.1-2), where the
preprocessor mishandles large unsigned values as if they were signed.

lib/ChangeLog
lib/regex_internal.h

index ccad807..8626e27 100644 (file)
@@ -1,3 +1,11 @@
+2006-01-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * regex_internal.h (BITSET_WORD_BITS):
+       Work around a bug in 64-bit PGC (before version 6.1-2), where the
+       preprocessor mishandles large unsigned values as if they were signed.
+       Problem reported by Claudio Fontana in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2005-12/msg00061.html>.
+
 2006-01-10  Simon Josefsson  <jas@extundo.com>
 
        * socket_.h: New file.
index a36ae4c..04be143 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
@@ -182,6 +182,10 @@ typedef unsigned long int bitset_word;
 # if BITSET_WORD_BITS <= SBC_MAX
 #  error "Invalid SBC_MAX"
 # endif
+ #elif BITSET_WORD_MAX == (0xffffffff + 2) * 0xffffffff
+/* Work around a bug in 64-bit PGC (before version 6.1-2), where the
+   preprocessor mishandles large unsigned values as if they were signed.  */
+# define BITSET_WORD_BITS 64
 #else
 # error "Add case for new bitset_word size"
 #endif