From 6b0f94088cad0673df0d4ec6f83f3b9d96569e9e Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Thu, 17 Mar 2005 17:42:53 +0000 Subject: [PATCH] (DECIMAL_DIGIT_ACCUMULATE): The use of __typeof__ must be conditional. --- src/system.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/system.h b/src/system.h index a8968a3ac5..83e0f629cd 100644 --- a/src/system.h +++ b/src/system.h @@ -818,6 +818,12 @@ ptr_align (void *ptr, size_t alignment) #define VERIFY_EXPR(assertion) \ (void)((struct {char a[(assertion) ? 1 : -1]; } *) 0) +#ifdef __GNUC__ +# define VERIFY_GCC_EXPR(assertion) VERIFY_EXPR (expression) +#else +# define VERIFY_GCC_EXPR(assertion) (void)0 +#endif + /* If 10*Accum+Digit_val is larger than Type_max, then don't update Accum and return nonzero. Otherwise, set Accum to that new value and return zero. When compiling with gcc, perform a compile-time check @@ -826,7 +832,7 @@ ptr_align (void *ptr, size_t alignment) #define DECIMAL_DIGIT_ACCUMULATE(Accum, Digit_val, Type_max) \ ( \ /* Ensure that Type_max is the maximum value of Accum. */ \ - VERIFY_EXPR (TYPE_MAXIMUM (__typeof__ (Accum)) == (Type_max)), \ + VERIFY_GCC_EXPR (TYPE_MAXIMUM (__typeof__ (Accum)) == (Type_max)), \ /* If the result would overflow, return 1. \ Otherwise update Accum and return 0. */ \ ((Type_max) / 10 < Accum || Accum * 10 + (Digit_val) < Accum \ -- 2.47.3