From ec1f0e33c90c4b99bb4dedbf226d48906fb5dba9 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 13 Oct 2015 04:49:15 +0200 Subject: CPP directive __func__ requires C99 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- include/assert.h | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/assert.h b/include/assert.h index 4e8bc2f..c4faa58 100644 --- a/include/assert.h +++ b/include/assert.h @@ -38,9 +38,12 @@ */ #ifdef NDEBUG # define assert(expression) ((void)0) -#else +#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) # define assert(expression) \ ((void)((expression) ? 0 : (__assert_fail(#expression, 0, __FILE__, __LINE__, __func__), 0))) +#else +# define assert(expression) \ + ((void)((expression) ? 0 : (__assert_fail(#expression, 0, __FILE__, __LINE__, NULL), 0))) #endif @@ -58,9 +61,12 @@ # endif # ifdef NDEBUG # define assert_perror(errnum) ((void)0) -# else +#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) # define assert_perror(errnum) \ ((void)((errnum == 0) ? 0 : (__assert_fail(NULL, errnum, __FILE__, __LINE__, __func__), 0))) +# else +# define assert_perror(errnum) \ + ((void)((errnum == 0) ? 0 : (__assert_fail(NULL, errnum, __FILE__, __LINE__, NULL), 0))) # endif #endif @@ -86,11 +92,12 @@ /** * The function that is called if an assertion fails. * - * @param expression The expression that failed, `NULL` if `assert_perror` failed - * @param errnum The code of the fatal error, 0 if `assert` failed - * @param file The filename of the source cose whence the assertion was made - * @param line The line in the source code whence the assertion was made - * @param func The function in the source code whence the assertion was made + * @param expression The expression that failed, `NULL` if `assert_perror` failed. + * @param errnum The code of the fatal error, 0 if `assert` failed. + * @param file The filename of the source cose whence the assertion was made. + * @param line The line in the source code whence the assertion was made. + * @param func The function in the source code whence the assertion was made, + * `NULL` if unknown (C99 is required.) */ __noreturn void __assert_fail(const char*, int, const char*, int, const char*) __GCC_ONLY(__attribute__((nonnull(3, 5)))); -- cgit v1.2.3-70-g09d2