From: Jim Meyering Date: Mon, 5 Sep 2005 16:57:40 +0000 (+0000) Subject: (__builtin_constant_p) [__GNUC__ <= 2]: Define to 1. X-Git-Tag: CPPI-1_12~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c862959a9d28a848d4766794cf02999aab172095;p=thirdparty%2Fcoreutils.git (__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. --- diff --git a/lib/verify.h b/lib/verify.h index 4461f4e47b..099d27061b 100644 --- a/lib/verify.h +++ b/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.