Hi Paul,

> The Solaris compiler has a buggy
> preprocessor which misevaluates "#if -9223372036854775807LL < 0", I
> suspect because it treats the constant as being unsigned.

Based on the results from [1] I guess the preprocessor looks for the sign
in bit 31 instead of in bit 63.

> I considered working around the problem by causing 32-bit Solaris
> builds to fall back into a 32-bit-only world.  But that is too
> drastic; it would break large-file support, for example.

Indeed: While 32-bit-only mode is OK for GNU gettext, it is not sufficient
for tar or gzip...

>  In the meantime, code should not expect
>  #if to work with literals wider than 32 bits.  */

Can you document this limitation in doc/headers/stdint.texi please?
Possibly also in autoconf.texi section "Portable C and C++ Programming"?

Bruno

[1] http://lists.gnu.org/archive/html/autoconf-patches/2007-10/msg00210.html



Reply via email to