From 7e93637acd9f5741ac4c09bbca353ac8da42bb17 Mon Sep 17 00:00:00 2001 From: maxed Date: Sat, 31 Mar 2018 13:17:45 +0300 Subject: Fix the test for fsetxattr and strerror_r tests in CMake to work without compiling --- CMake/CurlTests.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'CMake') diff --git a/CMake/CurlTests.c b/CMake/CurlTests.c index bc36c8ef7..ac959f340 100644 --- a/CMake/CurlTests.c +++ b/CMake/CurlTests.c @@ -507,30 +507,30 @@ main () #ifdef HAVE_GLIBC_STRERROR_R #include #include + +void check(char c) {} + int main () { - char buffer[1024]; /* big enough to play with */ - char *string = - strerror_r(EACCES, buffer, sizeof(buffer)); - /* this should've returned a string */ - if(!string || !string[0]) - return 99; - return 0; + char buffer[1024]; + // This will not compile if strerror_r does not return a char* + check(strerror_r(EACCES, buffer, sizeof(buffer))[0]); + return 0; } #endif #ifdef HAVE_POSIX_STRERROR_R #include #include + +// float, because a pointer can't be implicitly cast to float +void check(float f) {} + int main () { - char buffer[1024]; /* big enough to play with */ - int error = - strerror_r(EACCES, buffer, sizeof(buffer)); - /* This should've returned zero, and written an error string in the - buffer.*/ - if(!buffer[0] || error) - return 99; - return 0; + char buffer[1024]; + // This will not compile if strerror_r does not return an int + check(strerror_r(EACCES, buffer, sizeof(buffer))); + return 0; } #endif #ifdef HAVE_FSETXATTR_6 -- cgit v1.2.3