Document 64-bit #if problems in stdint.texi.
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 13 Nov 2007 07:43:16 +0000 (23:43 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 13 Nov 2007 07:43:16 +0000 (23:43 -0800)
* doc/headers/stdint.texi (stdint.h): Mention problems with
64-bit-#if, and how to work around them.

ChangeLog
doc/headers/stdint.texi

index 6f151bf..9086ab4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2007-11-12  Paul Eggert  <eggert@cs.ucla.edu>
 
+       Document 64-bit #if problems in stdint.texi.
+       * doc/headers/stdint.texi (stdint.h): Mention problems with
+       64-bit-#if, and how to work around them.
+
        Don't insist on 'long long int' support in the preprocessor.  It
        breaks too many things.  For example, PRIdMAX still uses a 'long
        long int' format with the latest Sun compiler, even though
index c5fd404..6466edc 100644 (file)
@@ -28,6 +28,14 @@ Portability problems not fixed by Gnulib:
 types available on the system.
 @item
 Macros are used instead of typedefs.
+@item
+Some C preprocessors mishandle constants that do not fit in @code{long int}.
+For example, as of 2007, Sun C mishandles @code{#if LLONG_MIN < 0} on
+a platform with 32-bit @code{long int} and 64-bit @code{long long int}.
+Some older preprocessors mishandle constants ending in @code{LL}.
+To work around these problems, compute the value of expressions like
+@code{LONG_MAX < LLONG_MAX} at @code{configure}-time rather than at
+@code{#if}-time.
 @end itemize
 
 The stdint.h module uses @code{#include_next}.  If you wish to install