mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-01 10:06:57 +03:00
assert: Suppress pedantic warning caused by statement expression
This commit is contained in:
@ -91,13 +91,19 @@ __END_DECLS
|
||||
? __ASSERT_VOID_CAST (0) \
|
||||
: __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION))
|
||||
# else
|
||||
/* The first occurrence of EXPR is not evaluated due to the sizeof,
|
||||
but will trigger any pedantic warnings masked by the __extension__
|
||||
for the second occurrence. The explicit comparison against zero is
|
||||
required to support function pointers and bit fields in this
|
||||
context, and to suppress the evaluation of variable length
|
||||
arrays. */
|
||||
# define assert(expr) \
|
||||
({ \
|
||||
((void) sizeof ((expr) == 0), __extension__ ({ \
|
||||
if (expr) \
|
||||
; /* empty */ \
|
||||
else \
|
||||
__assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \
|
||||
})
|
||||
}))
|
||||
# endif
|
||||
|
||||
# ifdef __USE_GNU
|
||||
@ -113,7 +119,7 @@ __END_DECLS
|
||||
C9x has a similar variable called __func__, but prefer the GCC one since
|
||||
it demangles C++ function names. */
|
||||
# if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4)
|
||||
# define __ASSERT_FUNCTION __PRETTY_FUNCTION__
|
||||
# define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__
|
||||
# else
|
||||
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
|
||||
# define __ASSERT_FUNCTION __func__
|
||||
|
Reference in New Issue
Block a user