aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ConfigureChecks.cmake12
-rw-r--r--config.h.cmake1
-rw-r--r--include/libssh/priv.h7
-rw-r--r--tests/unittests/torture_buffer.c4
-rw-r--r--tests/unittests/torture_threads_buffer.c4
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);