bug-m4
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]