diff options
-rw-r--r-- | ConfigureChecks.cmake | 12 | ||||
-rw-r--r-- | config.h.cmake | 1 | ||||
-rw-r--r-- | include/libssh/priv.h | 7 | ||||
-rw-r--r-- | tests/unittests/torture_buffer.c | 4 | ||||
-rw-r--r-- | tests/unittests/torture_threads_buffer.c | 4 |
5 files changed, 3 insertions, 25 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index 5ca48bea..376ad7dd 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -381,18 +381,6 @@ int main(void) check_c_source_compiles(" #include <stdio.h> -#define __VA_NARG__(...) (__VA_NARG_(_0, ## __VA_ARGS__, __RSEQ_N()) - 1) -#define __VA_NARG_(...) __VA_ARG_N(__VA_ARGS__) -#define __VA_ARG_N( _1, _2, _3, _4, _5, _6, _7, _8, _9,_10,N,...) N -#define __RSEQ_N() 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 -#define myprintf(format, ...) printf((format), __VA_NARG__(__VA_ARGS__), __VA_ARGS__) -int main(void) { - myprintf(\"%d %d %d %d\",1,2,3); - return 0; -}" HAVE_GCC_NARG_MACRO) - -check_c_source_compiles(" -#include <stdio.h> int main(void) { printf(\"%s\", __func__); return 0; diff --git a/config.h.cmake b/config.h.cmake index 21216300..672241e4 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -219,7 +219,6 @@ #cmakedefine HAVE_DESTRUCTOR_ATTRIBUTE 1 #cmakedefine HAVE_GCC_VOLATILE_MEMORY_PROTECTION 1 -#cmakedefine HAVE_GCC_NARG_MACRO 1 #cmakedefine HAVE_COMPILER__FUNC__ 1 #cmakedefine HAVE_COMPILER__FUNCTION__ 1 diff --git a/include/libssh/priv.h b/include/libssh/priv.h index 8f1cd84c..7dcbcd49 100644 --- a/include/libssh/priv.h +++ b/include/libssh/priv.h @@ -328,7 +328,6 @@ void explicit_bzero(void *s, size_t n); /** * Get the argument cound of variadic arguments */ -#ifdef HAVE_GCC_NARG_MACRO /* * Since MSVC 2010 there is a bug in passing __VA_ARGS__ to subsequent * macros as a single token, which results in: @@ -338,7 +337,7 @@ void explicit_bzero(void *s, size_t n); #define VA_APPLY_VARIADIC_MACRO(macro, tuple) macro tuple #define __VA_NARG__(...) \ - (__VA_NARG_(_0, ## __VA_ARGS__, __RSEQ_N()) - 1) + (__VA_NARG_(__VA_ARGS__, __RSEQ_N())) #define __VA_NARG_(...) \ VA_APPLY_VARIADIC_MACRO(__VA_ARG_N, (__VA_ARGS__)) #define __VA_ARG_N( \ @@ -357,10 +356,6 @@ void explicit_bzero(void *s, size_t n); 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, \ 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, \ 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 -#else -/* clang does not support the above construction */ -#define __VA_NARG__(...) (-1) -#endif #define CLOSE_SOCKET(s) do { if ((s) != SSH_INVALID_SOCKET) { _XCLOSESOCKET(s); (s) = SSH_INVALID_SOCKET;} } while(0) diff --git a/tests/unittests/torture_buffer.c b/tests/unittests/torture_buffer.c index 3ad08e60..45022284 100644 --- a/tests/unittests/torture_buffer.c +++ b/tests/unittests/torture_buffer.c @@ -245,10 +245,8 @@ static void torture_buffer_pack_badformat(void **state){ /* with additional format */ rc = ssh_buffer_pack(buffer, "bb", b); -#ifdef HAVE_GCC_NARG_MACRO - /* We can only detect errors if we have support for NARG macros */ + /* check that we detect the missing parameter */ assert_int_equal(rc, SSH_ERROR); -#endif /* unpack with missing format */ ssh_buffer_reinit(buffer); diff --git a/tests/unittests/torture_threads_buffer.c b/tests/unittests/torture_threads_buffer.c index cb9eaed4..de9728f2 100644 --- a/tests/unittests/torture_threads_buffer.c +++ b/tests/unittests/torture_threads_buffer.c @@ -496,10 +496,8 @@ static void *thread_buffer_pack_badformat(void *threadid) /* with additional format */ rc = ssh_buffer_pack(buffer, "bb", b); -#ifdef HAVE_GCC_NARG_MACRO - /* We can only detect errors if we have support for NARG macros */ + /* check that we detect the missing parameter */ assert_int_equal(rc, SSH_ERROR); -#endif /* unpack with missing format */ ssh_buffer_reinit(buffer); |