changeset 6539:5a1c91276525

* 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.
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 10 Jan 2006 20:14:43 +0000
parents d9545f97fc1f
children 904f6a889206
files lib/ChangeLog lib/regex_internal.h
diffstat 2 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -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.
--- a/lib/regex_internal.h
+++ b/lib/regex_internal.h
@@ -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 @@
 # 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