# HG changeset patch # User Paul Eggert # Date 1194939796 28800 # Node ID 6266ba33b2294c8f60e87c96c87bd47344c23cf9 # Parent 8c3f82d802ecc65d6bc198e3a851c4f40c5df96e 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. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2007-11-12 Paul Eggert + 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 diff --git a/doc/headers/stdint.texi b/doc/headers/stdint.texi --- a/doc/headers/stdint.texi +++ b/doc/headers/stdint.texi @@ -28,6 +28,14 @@ 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