[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: lib/regex_internal.h on 1.4.11
From: |
Bruno Haible |
Subject: |
Re: lib/regex_internal.h on 1.4.11 |
Date: |
Thu, 31 Jul 2008 12:11:20 +0200 |
User-agent: |
KMail/1.5.4 |
Jonathan Patschke wrote:
> > If you change that line to
> > #if BITSET_WORD_MAX == 0xffffffffUL
> > and recompile, do the compilation and "make check" then succeed?
>
> [... test results with nothing wrong regarding regular expressions...]
Thanks for testing; I'm applying this fix (and also fixing an obvious
typo/thinko two lines below).
> test-stdint.c doesn't compile:
>
> cc -Ae -Ae -I. -I../lib -I. -I. -I.. -I./.. -I../lib -
> I./../lib -g -c test-stdint.c
> cpp: "test-stdint.c", line 249: warning 2012: Unrepresentable
> preprocessor number 1LL.
> cpp: "test-stdint.c", line 249: error 4038: Bad syntax for #if
> condition.
>
>
> When the #if block starting at line 249 is commented out, the file
> compiles.
The ability of the preprocessor to handle 64-bit numbers was one of the
things being tested by this test. So count it as 1 FAIL.
> Not all the tests pass. Here are the test results:
>
>
> test-frexp.c:103: assertion failed
> sh[9]: 15807 Abort(coredump)
> FAIL: test-frexp
> test-frexpl.c:114: assertion failed
> sh[9]: 15824 Abort(coredump)
> FAIL: test-frexpl
> test-signbit.c:55: assertion failed
> sh[9]: 16478 Abort(coredump)
> FAIL: test-signbit
> test-strtod.c:314: assertion failed
> test-strtod.c:409: assertion failed
> test-strtod.c:903: assertion failed
> FAIL: test-strtod
This compiler apparently has problems with negative zero literals. You can
try a workaround: change literals -0.0 into -zero
where
static double zero = 0.0;
If the tests work with this change, it would be clear that the problem is
with the compiler and not with the library functions.
> FAIL: test-fseeko.sh
> test-ftello.c:92: assertion failed
> ./test-ftello.sh[3]: 15850 Abort(coredump)
> FAIL: test-ftello.sh
An stdio bug. But it is not likely to hit 'm4' users.
Bruno
2008-07-31 Bruno Haible <address@hidden>
* lib/regex_internal.h (BITSET_WORD_BITS): Make first conditional work
on HP-UX 10.20 with "cc -Ae". Fix second conditional.
Reported by Jonathan Patschke <address@hidden>.
--- lib/regex_internal.h.orig 2008-07-31 12:03:55.000000000 +0200
+++ lib/regex_internal.h 2008-07-31 12:02:13.000000000 +0200
@@ -161,9 +161,9 @@
instead, deduce it directly from BITSET_WORD_MAX. Avoid
greater-than-32-bit integers and unconditional shifts by more than
31 bits, as they're not portable. */
-#if BITSET_WORD_MAX == 0xffffffff
+#if BITSET_WORD_MAX == 0xffffffffUL
# define BITSET_WORD_BITS 32
-#elif BITSET_WORD_MAX >> 31 >> 5 == 1
+#elif BITSET_WORD_MAX >> 31 >> 4 == 1
# define BITSET_WORD_BITS 36
#elif BITSET_WORD_MAX >> 31 >> 16 == 1
# define BITSET_WORD_BITS 48