From b04e98ba0c49f73e45f58ac8a8d20ef9e714cddb Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 14 Mar 2010 19:25:45 +0100 Subject: [PATCH] Fix compilation error with Sun C. --- ChangeLog | 9 +++++++++ lib/strtol.c | 20 ++++++++++---------- lib/xstrtoll.c | 4 ++-- lib/xstrtoull.c | 2 +- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index bc8bbbab1..305a83576 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2010-03-14 Bruno Haible + + Fix compilation error with Sun C. + * lib/strtol.c: Use LLONG_MIN instead of GCC specific LONG_LONG_MIN. + Use LLONG_MAX instead of GCC specific LONG_LONG_MAX. Use ULLONG_MAX + instead of GCC specific ULONG_LONG_MAX. + * lib/xstrtoll.c: Likewise. + * lib/xstrtoull.c: Likewise. + 2010-03-13 Bruno Haible Allow the user to disable C++ code and tests. diff --git a/lib/strtol.c b/lib/strtol.c index d1b5bc0cb..e5b5a11b2 100644 --- a/lib/strtol.c +++ b/lib/strtol.c @@ -114,9 +114,9 @@ operating on `long long int's. */ #ifdef QUAD # define LONG long long -# define STRTOL_LONG_MIN LONG_LONG_MIN -# define STRTOL_LONG_MAX LONG_LONG_MAX -# define STRTOL_ULONG_MAX ULONG_LONG_MAX +# define STRTOL_LONG_MIN LLONG_MIN +# define STRTOL_LONG_MAX LLONG_MAX +# define STRTOL_ULONG_MAX ULLONG_MAX /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ @@ -147,19 +147,19 @@ ? (t) -1 \ : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) -# ifndef ULONG_LONG_MAX -# define ULONG_LONG_MAX TYPE_MAXIMUM (unsigned long long) +# ifndef ULLONG_MAX +# define ULLONG_MAX TYPE_MAXIMUM (unsigned long long) # endif -# ifndef LONG_LONG_MAX -# define LONG_LONG_MAX TYPE_MAXIMUM (long long int) +# ifndef LLONG_MAX +# define LLONG_MAX TYPE_MAXIMUM (long long int) # endif -# ifndef LONG_LONG_MIN -# define LONG_LONG_MIN TYPE_MINIMUM (long long int) +# ifndef LLONG_MIN +# define LLONG_MIN TYPE_MINIMUM (long long int) # endif # if __GNUC__ == 2 && __GNUC_MINOR__ < 7 /* Work around gcc bug with using this constant. */ - static const unsigned long long int maxquad = ULONG_LONG_MAX; + static const unsigned long long int maxquad = ULLONG_MAX; # undef STRTOL_ULONG_MAX # define STRTOL_ULONG_MAX maxquad # endif diff --git a/lib/xstrtoll.c b/lib/xstrtoll.c index 344e5a4b7..db26e87c5 100644 --- a/lib/xstrtoll.c +++ b/lib/xstrtoll.c @@ -1,6 +1,6 @@ #define __strtol strtoll #define __strtol_t long long int #define __xstrtol xstrtoll -#define STRTOL_T_MINIMUM LONG_LONG_MIN -#define STRTOL_T_MAXIMUM LONG_LONG_MAX +#define STRTOL_T_MINIMUM LLONG_MIN +#define STRTOL_T_MAXIMUM LLONG_MAX #include "xstrtol.c" diff --git a/lib/xstrtoull.c b/lib/xstrtoull.c index 2f2d83c33..10dda5044 100644 --- a/lib/xstrtoull.c +++ b/lib/xstrtoull.c @@ -2,5 +2,5 @@ #define __strtol_t unsigned long long int #define __xstrtol xstrtoull #define STRTOL_T_MINIMUM 0 -#define STRTOL_T_MAXIMUM ULONG_LONG_MAX +#define STRTOL_T_MAXIMUM ULLONG_MAX #include "xstrtol.c" -- 2.11.0