From 050d87a67621eeeea383949d33116496a353cf39 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 10 Oct 2010 20:16:39 -0700 Subject: [PATCH] rewrite int foo[2*X-1] to verify(X) or to int foo[X?1:-1] * lib/float+.h (verify_sizeof_flt, verify_sizeof_dbl): (verify_sizeof_ldbl): Rewrite 2*X-1 to X?1:-1. * lib/malloca.c: Include "verify.h". (verify1): Remove, replacing with a verify call. * lib/relocwrapper.c (verify1): Likewise. * lib/vasnprintf.c (mp_limb_verify, mp_twolimb_verify, TCHAR_T_verify): Likewise. * modules/malloca (Depends-on): Add 'verify'. * modules/relocatable-prog-wrapper (Depends-on): Add 'verify'. * modules/vasnprintf (Depends-on): Add 'verify'. * modules/unistdio/u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise. --- ChangeLog | 20 ++++++++++++++++++++ lib/float+.h | 6 +++--- lib/malloca.c | 5 +++-- lib/relocwrapper.c | 3 ++- lib/vasnprintf.c | 11 ++++++----- modules/malloca | 1 + modules/relocatable-prog-wrapper | 1 + modules/unistdio/u16-u16-vasnprintf | 1 + modules/unistdio/u16-vasnprintf | 1 + modules/unistdio/u32-u32-vasnprintf | 1 + modules/unistdio/u32-vasnprintf | 1 + modules/unistdio/u8-u8-vasnprintf | 1 + modules/unistdio/u8-vasnprintf | 1 + modules/unistdio/ulc-vasnprintf | 1 + modules/vasnprintf | 1 + 15 files changed, 44 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6a56a313c..e1fbbd44d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,25 @@ 2010-10-10 Paul Eggert + rewrite int foo[2*X-1] to verify(X) or to int foo[X?1:-1] + + * lib/float+.h (verify_sizeof_flt, verify_sizeof_dbl): + (verify_sizeof_ldbl): Rewrite 2*X-1 to X?1:-1. + * lib/malloca.c: Include "verify.h". + (verify1): Remove, replacing with a verify call. + * lib/relocwrapper.c (verify1): Likewise. + * lib/vasnprintf.c (mp_limb_verify, mp_twolimb_verify, TCHAR_T_verify): + Likewise. + * modules/malloca (Depends-on): Add 'verify'. + * modules/relocatable-prog-wrapper (Depends-on): Add 'verify'. + * modules/vasnprintf (Depends-on): Add 'verify'. + * modules/unistdio/u8-vasnprintf (Depends-on): Likewise. + * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. + * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. + * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. + * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. + * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. + * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise. + prefer (X ? 1 : -1) when converting from boolean (1,0) to int (1,-1) Formerly the style was sometimes 2*X - 1, because the C standard diff --git a/lib/float+.h b/lib/float+.h index d25492192..2bbba5102 100644 --- a/lib/float+.h +++ b/lib/float+.h @@ -141,8 +141,8 @@ #define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) /* Verify that SIZEOF_FLT <= sizeof (float) etc. */ -typedef int verify_sizeof_flt[2 * (SIZEOF_FLT <= sizeof (float)) - 1]; -typedef int verify_sizeof_dbl[2 * (SIZEOF_DBL <= sizeof (double)) - 1]; -typedef int verify_sizeof_ldbl[2 * (SIZEOF_LDBL <= sizeof (long double)) - 1]; +typedef int verify_sizeof_flt[SIZEOF_FLT <= sizeof (float) ? 1 : -1]; +typedef int verify_sizeof_dbl[SIZEOF_DBL <= sizeof (double) ? 1 : - 1]; +typedef int verify_sizeof_ldbl[SIZEOF_LDBL <= sizeof (long double) ? 1 : - 1]; #endif /* _FLOATPLUS_H */ diff --git a/lib/malloca.c b/lib/malloca.c index 226887849..3e4fd0bb9 100644 --- a/lib/malloca.c +++ b/lib/malloca.c @@ -21,6 +21,8 @@ /* Specification. */ #include "malloca.h" +#include "verify.h" + /* Use the system functions, not the gnulib overrides in this file. */ #undef malloc @@ -53,8 +55,7 @@ struct preliminary_header { void *next; char room[MAGIC_SIZE]; }; #define HEADER_SIZE \ (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max) struct header { void *next; char room[HEADER_SIZE - sizeof (struct preliminary_header) + MAGIC_SIZE]; }; -/* Verify that HEADER_SIZE == sizeof (struct header). */ -typedef int verify1[2 * (HEADER_SIZE == sizeof (struct header)) - 1]; +verify (HEADER_SIZE == sizeof (struct header)); /* We make the hash table quite big, so that during lookups the probability of empty hash buckets is quite high. There is no need to make the hash table resizable, because when the hash table gets filled so much that the diff --git a/lib/relocwrapper.c b/lib/relocwrapper.c index 04f2258c9..d3980dd07 100644 --- a/lib/relocwrapper.c +++ b/lib/relocwrapper.c @@ -54,6 +54,7 @@ #include "progname.h" #include "relocatable.h" #include "c-ctype.h" +#include "verify.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef fprintf @@ -114,7 +115,7 @@ add_dotbin (const char *filename) /* List of directories that contain the libraries. */ static const char *libdirs[] = { LIBDIRS NULL }; /* Verify that at least one directory is given. */ -typedef int verify1[2 * (sizeof (libdirs) / sizeof (libdirs[0]) > 1) - 1]; +verify (sizeof (libdirs) / sizeof (libdirs[0]) > 1); /* Relocate the list of directories that contain the libraries. */ static void diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c index 41c62712f..388ab0dbe 100644 --- a/lib/vasnprintf.c +++ b/lib/vasnprintf.c @@ -88,6 +88,8 @@ /* Checked size_t computations. */ #include "xsize.h" +#include "verify.h" + #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include # include "float+.h" @@ -322,11 +324,11 @@ is_infinite_or_zerol (long double x) typedef unsigned int mp_limb_t; # define GMP_LIMB_BITS 32 -typedef int mp_limb_verify[2 * (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS) - 1]; +verify (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS); typedef unsigned long long mp_twolimb_t; # define GMP_TWOLIMB_BITS 64 -typedef int mp_twolimb_verify[2 * (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS) - 1]; +verify (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS); /* Representation of a bignum >= 0. */ typedef struct @@ -2621,7 +2623,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, size_t characters; # if !DCHAR_IS_TCHAR /* This code assumes that TCHAR_T is 'char'. */ - typedef int TCHAR_T_verify[2 * (sizeof (TCHAR_T) == 1) - 1]; + verify (sizeof (TCHAR_T) == 1); TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; @@ -5284,8 +5286,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, DCHAR_T *tmpdst; size_t tmpdst_len; /* This code assumes that TCHAR_T is 'char'. */ - typedef int TCHAR_T_verify - [2 * (sizeof (TCHAR_T) == 1) - 1]; + verify (sizeof (TCHAR_T) == 1); # if USE_SNPRINTF tmpsrc = (TCHAR_T *) (result + length); # else diff --git a/modules/malloca b/modules/malloca index d54bf3061..57cbe3278 100644 --- a/modules/malloca +++ b/modules/malloca @@ -11,6 +11,7 @@ m4/longlong.m4 Depends-on: alloca-opt +verify configure.ac: gl_MALLOCA diff --git a/modules/relocatable-prog-wrapper b/modules/relocatable-prog-wrapper index de77830ad..b96892952 100644 --- a/modules/relocatable-prog-wrapper +++ b/modules/relocatable-prog-wrapper @@ -42,6 +42,7 @@ unistd environ intprops string +verify configure.ac: gl_FUNC_READLINK_SEPARATE diff --git a/modules/unistdio/u16-u16-vasnprintf b/modules/unistdio/u16-u16-vasnprintf index eabd37d09..c32166961 100644 --- a/modules/unistdio/u16-u16-vasnprintf +++ b/modules/unistdio/u16-u16-vasnprintf @@ -44,6 +44,7 @@ xsize errno memchr multiarch +verify configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/u16-vasnprintf b/modules/unistdio/u16-vasnprintf index f71a120b6..a382ce47b 100644 --- a/modules/unistdio/u16-vasnprintf +++ b/modules/unistdio/u16-vasnprintf @@ -44,6 +44,7 @@ xsize errno memchr multiarch +verify configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/u32-u32-vasnprintf b/modules/unistdio/u32-u32-vasnprintf index 0b83fa81b..800c61e6f 100644 --- a/modules/unistdio/u32-u32-vasnprintf +++ b/modules/unistdio/u32-u32-vasnprintf @@ -44,6 +44,7 @@ xsize errno memchr multiarch +verify configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/u32-vasnprintf b/modules/unistdio/u32-vasnprintf index 1a8159749..fe71cb2b7 100644 --- a/modules/unistdio/u32-vasnprintf +++ b/modules/unistdio/u32-vasnprintf @@ -44,6 +44,7 @@ xsize errno memchr multiarch +verify configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/u8-u8-vasnprintf b/modules/unistdio/u8-u8-vasnprintf index 612901ed6..5e9552169 100644 --- a/modules/unistdio/u8-u8-vasnprintf +++ b/modules/unistdio/u8-u8-vasnprintf @@ -44,6 +44,7 @@ xsize errno memchr multiarch +verify configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/u8-vasnprintf b/modules/unistdio/u8-vasnprintf index 6e651bb5d..3aaf935c8 100644 --- a/modules/unistdio/u8-vasnprintf +++ b/modules/unistdio/u8-vasnprintf @@ -44,6 +44,7 @@ xsize errno memchr multiarch +verify configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/ulc-vasnprintf b/modules/unistdio/ulc-vasnprintf index 8a6f2fc68..8228a0678 100644 --- a/modules/unistdio/ulc-vasnprintf +++ b/modules/unistdio/ulc-vasnprintf @@ -42,6 +42,7 @@ xsize errno memchr multiarch +verify configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/vasnprintf b/modules/vasnprintf index 480998d3c..6d266a17e 100644 --- a/modules/vasnprintf +++ b/modules/vasnprintf @@ -26,6 +26,7 @@ stdint xsize errno memchr +verify configure.ac: gl_FUNC_VASNPRINTF -- 2.11.0