On 05/01/11 10:15, Gary V. Vaughan wrote:
> $ cat ,t.c
> #include <stdint.h>
> #include "intprops.h"
> int main (int argc, char **argv) {
>   printf("%lu\n", (unsigned long) ULONG_MAX);
>   printf("%lu\n", (unsigned long) UINT_FAST8_MAX);
>   return 0;
> }
> $ cc -I. -I../lib -o ,t ,t.c && ./,t
> 4294967295
> 4294967295
> $ cc -I. -I../lib +DD64 -o ,t ,t.c && ./,t 
> 18446744073709551615
> 4294967295
> 
> I have no idea why or how that is happening though :(

Surely the '#include "intprops.h"' is unnecessary in the
above example, since 'main' uses only symbols that are
defined by stdint.h.  However, it may be that '#include
<stdio.h>' is needed for proper operation.  Could you
try that test again, without intprops.h, but with
stdio.h?

Which include file in HP-UX defines UINT_FAST8_MAX?  Perhaps
that include file is clashing with gnulib's stdint.h.  For
example, it could be that <limits.h> (which intprops.h includes)
redefines UINT_FAST8_MAX to the wrong value.

Also, which include file in HP-UX defines uint_fast8_t,
and what does it define it to?

Reply via email to