[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: stdint_.h vs intmax_t & uintmax_t
From: |
Mark D. Baushke |
Subject: |
Re: stdint_.h vs intmax_t & uintmax_t |
Date: |
Sun, 27 Nov 2005 15:00:41 -0800 |
Hi Paul,
Did Bruno ever give you his opinion for this fix?
Thanks,
-- Mark
Paul Eggert <address@hidden> writes:
> "Mark D. Baushke" <address@hidden> writes:
>
> > There is one remaining interaction with stdint_.h and config.h
> > which arises from m4/size_max.m4
> >
> > % grep SIZE_MAX config.h
> > config.h:#define SIZE_MAX 4294967295U
> > % grep SIZE_MAX lib/stdint_.h
> > #define SIZE_MAX (~(size_t)0)
>
> Thanks for mentioning that. The obvious workaround is to ifdef
> SIZE_MAX as well. Something like this.
>
> I'd like Bruno's opinion on all this before installing into gnulib.
>
> 2005-11-14 Paul Eggert <address@hidden>
>
> * lib/stdint_.h (intmax_t) [defined intmax_t]: Do not declare.
> (uintmax_t) [defined uintmax_t]: Do not declare.
> (SIZE_MAX) [defined SIZE_MAX]: Do not define.
> This works around a problem if intmax_t.m4 and/or uintmax_t.m4
> and/or size_max.m4 are also used. Problem reported by Mark D. Baushke.
>
> --- stdint_.h.~1.7.~ 2005-05-23 03:22:39.000000000 -0700
> +++ stdint_.h 2005-11-14 22:55:22.000000000 -0800
> @@ -133,11 +133,19 @@ typedef unsigned long uintptr_t;
> /* 7.18.1.5. Greatest-width integer types */
>
> #ifdef _STDINT_H_HAVE_INT64
> +# ifndef intmax_t
> typedef int64_t intmax_t;
> +# endif
> +# ifndef uintmax_t
> typedef uint64_t uintmax_t;
> +# endif
> #else
> +# ifndef intmax_t
> typedef int32_t intmax_t;
> +# endif
> +# ifndef uintmax_t
> typedef uint32_t uintmax_t;
> +# endif
> #endif
>
> /* 7.18.2. Limits of specified-width integer types */
> @@ -230,7 +238,9 @@ typedef uint32_t uintmax_t;
> #define SIG_ATOMIC_MIN 0
> #define SIG_ATOMIC_MAX 127
>
> -#define SIZE_MAX (~(size_t)0)
> +#ifndef SIZE_MAX
> +# define SIZE_MAX (~(size_t)0)
> +#endif
>
> /* wchar_t limits already defined in <stddef.h>. */
> /* wint_t limits already defined in <wchar.h>. */
>
>
> _______________________________________________
> bug-gnulib mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/bug-gnulib