From: Sergei Nikulov Date: Fri, 11 Jan 2019 09:05:17 +0000 (+0300) Subject: cmake: added checks for HAVE_VARIADIC_MACROS_C99 and HAVE_VARIADIC_MACROS_GCC X-Git-Tag: curl-7_64_0~48 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=52e27fe9c6421d36337c0b69df6ca2b3b2d72613;p=curl cmake: added checks for HAVE_VARIADIC_MACROS_C99 and HAVE_VARIADIC_MACROS_GCC --- diff --git a/CMake/CurlTests.c b/CMake/CurlTests.c index 9388c835b..0756b2a31 100644 --- a/CMake/CurlTests.c +++ b/CMake/CurlTests.c @@ -553,8 +553,8 @@ main() { #include int main() { - struct timespec ts = {0, 0}; - clock_gettime(CLOCK_MONOTONIC, &ts); + struct timespec ts = {0, 0}; + clock_gettime(CLOCK_MONOTONIC, &ts); return 0; } #endif @@ -565,3 +565,45 @@ main() { return 0; } #endif +#ifdef HAVE_VARIADIC_MACROS_C99 +#define c99_vmacro3(first, ...) fun3(first, __VA_ARGS__) +#define c99_vmacro2(first, ...) fun2(first, __VA_ARGS__) + +int fun3(int arg1, int arg2, int arg3); +int fun2(int arg1, int arg2); + +int fun3(int arg1, int arg2, int arg3) { + return arg1 + arg2 + arg3; +} +int fun2(int arg1, int arg2) { + return arg1 + arg2; +} + +int +main() { + int res3 = c99_vmacro3(1, 2, 3); + int res2 = c99_vmacro2(1, 2); + return 0; +} +#endif +#ifdef HAVE_VARIADIC_MACROS_GCC +#define gcc_vmacro3(first, args...) fun3(first, args) +#define gcc_vmacro2(first, args...) fun2(first, args) + +int fun3(int arg1, int arg2, int arg3); +int fun2(int arg1, int arg2); + +int fun3(int arg1, int arg2, int arg3) { + return arg1 + arg2 + arg3; +} +int fun2(int arg1, int arg2) { + return arg1 + arg2; +} + +int +main() { + int res3 = gcc_vmacro3(1, 2, 3); + int res2 = gcc_vmacro2(1, 2); + return 0; +} +#endif diff --git a/CMakeLists.txt b/CMakeLists.txt index db443de31..bdd2a2980 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -972,6 +972,8 @@ foreach(CURL_TEST HAVE_INET_NTOA_R_DECL_REENTRANT HAVE_GETADDRINFO HAVE_FILE_OFFSET_BITS + HAVE_VARIADIC_MACROS_C99 + HAVE_VARIADIC_MACROS_GCC ) curl_internal_test(${CURL_TEST}) endforeach()