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 6a56a313c9..e1fbbd44db 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 d254921929..2bbba5102b 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 226887849f..3e4fd0bb96 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 04f2258c97..d3980dd07d 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 41c62712fb..388ab0dbe3 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 d54bf3061f..57cbe32784 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 de77830ad9..b96892952e 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 eabd37d09a..c32166961d 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 f71a120b66..a382ce47b5 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 0b83fa81b3..800c61e6f2 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 1a81597493..fe71cb2b72 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 612901ed62..5e9552169d 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 6e651bb5d7..3aaf935c8a 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 8a6f2fc68f..8228a0678e 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 480998d3c1..6d266a17ee 100644 --- a/modules/vasnprintf +++ b/modules/vasnprintf @@ -26,6 +26,7 @@ stdint xsize errno memchr +verify configure.ac: gl_FUNC_VASNPRINTF -- 2.30.2