[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AC_HEADER_STDBOOL fails with clang

From: Eric Blake
Subject: Re: AC_HEADER_STDBOOL fails with clang
Date: Mon, 23 Aug 2010 11:36:01 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20100806 Fedora/3.1.2-1.fc13 Mnenhy/0.8.3 Thunderbird/3.1.2

[adding bug-gnulib]

On 08/23/2010 11:20 AM, Paul Eggert wrote:
On 08/23/10 09:36, Eric Blake wrote:
gcc, where we know that the extension is supported, to make sure we
don't introduce a future regression that could have been detected by gcc
(and in case the AIX compiler is ever fixed).

Well, perhaps "gratuitous" was not the right word, but there is no need
for GCC to compile that code, as GCC doesn't have the bug in question.

Interesting point - so you are suggesting changing:

#       if defined __xlc__ || defined __GNUC__

to just

#       ifdef __xlc__

so as to limit the damage done at configure time to just the compiler that was known to be buggy at one point.

Additionally, I think we should probably enhance gnulib's test-stdbool.c program to verify (at runtime) that this compiler bug has not crept back in or spread to other compilers.

Since the bug has not been detected for years,
I hope that the AIX bug has been fixed, and that nobody uses the old,
buggy AIX compilers any more, and that we can remove the test entirely
without anybody caring.  Perhaps that would be the simplest fix.  If I'm
wrong, we will discover that eventually, and we can reinstate the fix.
(I no longer have access to AIX compilers, so I can't test my guess.)

I'm still trying to get access to AIX myself (can anyone help in that regards?) but know that Ralf has access, based on his recent attempts to help resolve an m4 build issue.

For reference, the discussion that reported the bugs is rooted here:
This bug was reported against AIX 5.3, and IBM will continue to support
5.3 until next year (see<http://www.theregister.co.uk/2010/08/18/ibm_aix_7_1/>),
so perhaps someone who has access to an old 5.3 box can tell us whether
the bug still exists.  If the bug still exists, the following program
will fail on a 64-bit host:

int main (void) {
   char digs[10];
   assert (&(digs + 5)[-2 + (bool) 1] ==&digs[4]);
   return 0;

Eric Blake   address@hidden    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

reply via email to

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