From fbaead2a09e70c7bf6deaf86c536caedccb26792 Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Thu, 7 Oct 2004 17:48:36 -0400 Subject: [PATCH] COMP: Remove warning about assigning 0x8000000000000000L to long long --- Source/CTest/Curl/CMake/CurlTests.c | 12 ++++++++++++ Source/CTest/Curl/CMakeLists.txt | 1 + Source/CTest/Curl/config.h.in | 3 +++ Source/CTest/Curl/strtoofft.c | 7 +++++++ 4 files changed, 23 insertions(+) diff --git a/Source/CTest/Curl/CMake/CurlTests.c b/Source/CTest/Curl/CMake/CurlTests.c index fed389457f..61278ea1f1 100644 --- a/Source/CTest/Curl/CMake/CurlTests.c +++ b/Source/CTest/Curl/CMake/CurlTests.c @@ -521,3 +521,15 @@ main () { return 0; } #endif +#ifdef HAVE_LONG_LONG_CONSTANT +int main() +{ + long long c = 0x8000000000000000LL; + long long k = 0x7FFFFFFFFFFFFFFFLL; + if ( c == 0x8000000000000000LL && c != k ) + { + return 0; + } + return 1; +} +#endif diff --git a/Source/CTest/Curl/CMakeLists.txt b/Source/CTest/Curl/CMakeLists.txt index 3b252fddb8..2cfc761b2d 100644 --- a/Source/CTest/Curl/CMakeLists.txt +++ b/Source/CTest/Curl/CMakeLists.txt @@ -446,6 +446,7 @@ ENDIF(HAVE_FILE_OFFSET_BITS) FOREACH(CURL_TEST HAVE_GLIBC_STRERROR_R HAVE_POSIX_STRERROR_R + HAVE_LONG_LONG_CONSTANT ) CURL_INTERNAL_TEST_RUN(${CURL_TEST}) ENDFOREACH(CURL_TEST) diff --git a/Source/CTest/Curl/config.h.in b/Source/CTest/Curl/config.h.in index 5b554cc680..c5fe65236c 100644 --- a/Source/CTest/Curl/config.h.in +++ b/Source/CTest/Curl/config.h.in @@ -504,3 +504,6 @@ /* the signed version of size_t */ #cmakedefine ssize_t ${ssize_t} + +/* define if the compiler supports number 0x3627676LL */ +#cmakedefine HAVE_LONG_LONG_CONSTANT ${HAVE_LONG_LONG_CONSTANT} diff --git a/Source/CTest/Curl/strtoofft.c b/Source/CTest/Curl/strtoofft.c index 1bcfb1af4f..e2b02c46a8 100644 --- a/Source/CTest/Curl/strtoofft.c +++ b/Source/CTest/Curl/strtoofft.c @@ -111,10 +111,17 @@ curlx_strtoll(const char *nptr, char **endptr, int base) } } else { +#ifdef HAVE_LONG_LONG_CONSTANT + if (is_negative) + value = 0x8000000000000000LL; + else + value = 0x7FFFFFFFFFFFFFFFLL; +#else if (is_negative) value = 0x8000000000000000L; else value = 0x7FFFFFFFFFFFFFFFL; +#endif errno = ERANGE; }