mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-21 03:12:48 +02:00
(__builtin_constant_p) [__GNUC__ <= 2]: Define to 1.
(verify_type__) [verify_error_if_non_const__]: New member/test, to help detect when verify or verify_expr is mistakenly passed a non-constant argument within a function.
This commit is contained in:
12
lib/verify.h
12
lib/verify.h
@@ -24,13 +24,23 @@
|
||||
# define GL_CONCAT0(x, y) x##y
|
||||
# define GL_CONCAT(x, y) GL_CONCAT0 (x, y)
|
||||
|
||||
/* If gcc predates 3.0, then disable the check below to ensure
|
||||
that verify_type__'s argument is a constant expression. */
|
||||
# if __GNUC__ <= 2
|
||||
# defined __builtin_constant_p(R) 1
|
||||
# endif
|
||||
|
||||
/* A type that is valid if and only if R is nonzero.
|
||||
R should be an integer constant expression.
|
||||
verify_type__ and verify_error_if_negative_size__ are symbols that
|
||||
are private to this header file. */
|
||||
|
||||
# define verify_type__(R) \
|
||||
struct { int verify_error_if_negative_size__[(R) ? 1 : -1]; }
|
||||
struct { \
|
||||
/* Provoke a compile-time failure if R is a non-constant expression. */ \
|
||||
int verify_error_if_non_const__[__builtin_constant_p (R) ? 1 : -1]; \
|
||||
/* Provoke a compile-time failure if R is nonzero. */ \
|
||||
int verify_error_if_negative_size__[(R) ? 1 : -1]; }
|
||||
|
||||
/* Verify requirement R at compile-time, as a declaration.
|
||||
R should be an integer constant expression.
|
||||
|
||||
Reference in New Issue
Block a user