From 28465e160f242e39e6008e6de674e7c2360cf7df Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 13 Sep 2022 17:29:36 -0500 Subject: [PATCH 2/4] =?UTF-8?q?assert-h:=20prefer=20to=20=E2=80=98verify?= =?UTF-8?q?=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Where it’s easy, prefer ‘static_assert’ to ‘verify’, as this simplifies the source by removing the need to include verify.h. Keep using ‘verify’ if verify.h is used for other reasons, or if code is shared with glibc. * lib/alignalloc.c, lib/argmatch.h, lib/c32is-impl.h: * lib/c32snrtombs.c, lib/c32srtombs.c, lib/exclude.c: * lib/filevercmp.c, lib/fma.c, lib/i-ring.h, lib/ino-map.c: * lib/localeinfo.c, lib/malloca.c, lib/mbrtoc32.c, lib/mbrtowc.c: * lib/mbsinit.c, lib/mbsnrtoc32s.c, lib/mbsrtoc32s.c: * lib/nanosleep.c, lib/parse-datetime.y, lib/pipe2.c: * lib/rawmemchr.c, lib/relocwrapper.c, lib/sleep.c: * lib/stat-w32.c, lib/strerror.c, lib/strtoimax.c: * lib/utimecmp.c, lib/vasnprintf.c, tests/test-alignof.c: * tests/test-intprops.c, tests/test-libgmp.c: * tests/test-limits-h.c, tests/test-locale.c: * tests/test-pthread.c, tests/test-round2.c: * tests/test-stdalign.c, tests/test-stddef.c, tests/test-stdio.c: * tests/test-stdlib.c, tests/test-string.c, tests/test-sys_stat.c: * tests/test-time.c, tests/test-uchar.c, tests/test-unistd.c: * tests/test-wchar.c: Prefer static_assert to verify, and stop including verify.h. * lib/stat.c: Don’t include verify.h (this include was unnecessary). * modules/alignalloc, modules/alignof-tests, modules/argmatch: * modules/c-vasnprintf, modules/c32isalnum, modules/c32isalpha: * modules/c32isblank, modules/c32iscntrl, modules/c32isdigit: * modules/c32isgraph, modules/c32islower, modules/c32isprint: * modules/c32ispunct, modules/c32isspace, modules/c32isupper: * modules/c32isxdigit, modules/c32snrtombs, modules/c32srtombs: * modules/exclude, modules/filevercmp, modules/fma, modules/fmaf: * modules/fmal, modules/fstat, modules/i-ring, modules/ino-map: * modules/intprops-tests, modules/libgmp-tests: * modules/limits-h-tests, modules/locale-tests, modules/malloca: * modules/mbrtoc32, modules/mbrtowc, modules/mbsinit: * modules/mbsnrtoc32s, modules/mbsrtoc32s, modules/nanosleep: * modules/parse-datetime, modules/pipe2, modules/pthread-h-tests: * modules/rawmemchr, modules/relocatable-prog-wrapper: * modules/round-tests, modules/roundf-tests, modules/sleep: * modules/stat, modules/stdalign-tests, modules/stdckdint-tests: * modules/stddef-tests, modules/stdio-tests, modules/stdlib-tests: * modules/strerror, modules/string-tests, modules/strtoimax: * modules/strtoumax, modules/sys_stat-tests, modules/time-tests: * modules/uchar-tests, modules/unistd-tests: * modules/unistdio/u16-u16-vasnprintf: * modules/unistdio/u16-vasnprintf: * modules/unistdio/u32-u32-vasnprintf: * modules/unistdio/u32-vasnprintf: * modules/unistdio/u8-u8-vasnprintf: * modules/unistdio/u8-vasnprintf, modules/unistdio/ulc-vasnprintf: * modules/utimecmp, modules/vasnprintf, modules/wchar-tests: Depend on assert-h, not verify. --- ChangeLog | 52 ++++++ lib/alignalloc.c | 5 +- lib/argmatch.h | 4 +- lib/c32is-impl.h | 3 +- lib/c32snrtombs.c | 4 +- lib/c32srtombs.c | 4 +- lib/exclude.c | 9 +- lib/filevercmp.c | 3 +- lib/fma.c | 5 +- lib/i-ring.h | 3 +- lib/ino-map.c | 3 +- lib/localeinfo.c | 8 +- lib/malloca.c | 3 +- lib/mbrtoc32.c | 3 +- lib/mbrtowc.c | 3 +- lib/mbsinit.c | 3 +- lib/mbsnrtoc32s.c | 4 +- lib/mbsrtoc32s.c | 4 +- lib/nanosleep.c | 3 +- lib/parse-datetime.y | 9 +- lib/pipe2.c | 3 +- lib/rawmemchr.c | 3 +- lib/relocwrapper.c | 3 +- lib/sleep.c | 4 +- lib/stat-w32.c | 3 +- lib/stat.c | 1 - lib/strerror.c | 3 +- lib/strtoimax.c | 6 +- lib/utimecmp.c | 3 +- lib/vasnprintf.c | 11 +- modules/alignalloc | 2 +- modules/alignof-tests | 3 +- modules/argmatch | 2 +- modules/c-vasnprintf | 2 +- modules/c32isalnum | 2 +- modules/c32isalpha | 2 +- modules/c32isblank | 2 +- modules/c32iscntrl | 2 +- modules/c32isdigit | 2 +- modules/c32isgraph | 2 +- modules/c32islower | 2 +- modules/c32isprint | 2 +- modules/c32ispunct | 2 +- modules/c32isspace | 2 +- modules/c32isupper | 2 +- modules/c32isxdigit | 2 +- modules/c32snrtombs | 2 +- modules/c32srtombs | 2 +- modules/exclude | 2 +- modules/filevercmp | 2 +- modules/fma | 2 +- modules/fmaf | 2 +- modules/fmal | 2 +- modules/fstat | 2 +- modules/i-ring | 2 +- modules/ino-map | 2 +- modules/intprops-tests | 2 +- modules/libgmp-tests | 2 +- modules/limits-h-tests | 2 +- modules/locale-tests | 2 +- modules/malloca | 2 +- modules/mbrtoc32 | 2 +- modules/mbrtowc | 2 +- modules/mbsinit | 2 +- modules/mbsnrtoc32s | 2 +- modules/mbsrtoc32s | 2 +- modules/nanosleep | 2 +- modules/parse-datetime | 2 +- modules/pipe2 | 2 +- modules/pthread-h-tests | 2 +- modules/rawmemchr | 2 +- modules/relocatable-prog-wrapper | 2 +- modules/round-tests | 2 +- modules/roundf-tests | 2 +- modules/sleep | 2 +- modules/stat | 2 +- modules/stdalign-tests | 2 +- modules/stdckdint-tests | 2 +- modules/stddef-tests | 2 +- modules/stdio-tests | 2 +- modules/stdlib-tests | 2 +- modules/strerror | 2 +- modules/string-tests | 2 +- modules/strtoimax | 2 +- modules/strtoumax | 2 +- modules/sys_stat-tests | 2 +- modules/time-tests | 2 +- modules/uchar-tests | 2 +- modules/unistd-tests | 2 +- modules/unistdio/u16-u16-vasnprintf | 2 +- modules/unistdio/u16-vasnprintf | 2 +- modules/unistdio/u32-u32-vasnprintf | 2 +- modules/unistdio/u32-vasnprintf | 2 +- modules/unistdio/u8-u8-vasnprintf | 2 +- modules/unistdio/u8-vasnprintf | 2 +- modules/unistdio/ulc-vasnprintf | 2 +- modules/utimecmp | 2 +- modules/vasnprintf | 2 +- modules/wchar-tests | 2 +- tests/test-alignof.c | 4 +- tests/test-intprops.c | 3 +- tests/test-libgmp.c | 4 +- tests/test-limits-h.c | 50 +++-- tests/test-locale.c | 4 +- tests/test-pthread.c | 2 - tests/test-round2.c | 4 +- tests/test-stdalign.c | 4 +- tests/test-stddef.c | 43 +++-- tests/test-stdio.c | 4 +- tests/test-stdlib.c | 4 +- tests/test-string.c | 4 +- tests/test-sys_stat.c | 276 ++++++++++++++-------------- tests/test-time.c | 6 +- tests/test-uchar.c | 12 +- tests/test-unistd.c | 4 +- tests/test-wchar.c | 4 +- 116 files changed, 365 insertions(+), 381 deletions(-) diff --git a/ChangeLog b/ChangeLog index bba1a1a4e4..7c1b0afadd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,58 @@ 2022-09-13 Paul Eggert + assert-h: prefer to ‘verify’ + Where it’s easy, prefer ‘static_assert’ to ‘verify’, + as this simplifies the source by removing the need to + include verify.h. Keep using ‘verify’ if verify.h + is used for other reasons, or if code is shared with glibc. + * lib/alignalloc.c, lib/argmatch.h, lib/c32is-impl.h: + * lib/c32snrtombs.c, lib/c32srtombs.c, lib/exclude.c: + * lib/filevercmp.c, lib/fma.c, lib/i-ring.h, lib/ino-map.c: + * lib/localeinfo.c, lib/malloca.c, lib/mbrtoc32.c, lib/mbrtowc.c: + * lib/mbsinit.c, lib/mbsnrtoc32s.c, lib/mbsrtoc32s.c: + * lib/nanosleep.c, lib/parse-datetime.y, lib/pipe2.c: + * lib/rawmemchr.c, lib/relocwrapper.c, lib/sleep.c: + * lib/stat-w32.c, lib/strerror.c, lib/strtoimax.c: + * lib/utimecmp.c, lib/vasnprintf.c, tests/test-alignof.c: + * tests/test-intprops.c, tests/test-libgmp.c: + * tests/test-limits-h.c, tests/test-locale.c: + * tests/test-pthread.c, tests/test-round2.c: + * tests/test-stdalign.c, tests/test-stddef.c, tests/test-stdio.c: + * tests/test-stdlib.c, tests/test-string.c, tests/test-sys_stat.c: + * tests/test-time.c, tests/test-uchar.c, tests/test-unistd.c: + * tests/test-wchar.c: + Prefer static_assert to verify, and stop including verify.h. + * lib/stat.c: Don’t include verify.h (this include was unnecessary). + * modules/alignalloc, modules/alignof-tests, modules/argmatch: + * modules/c-vasnprintf, modules/c32isalnum, modules/c32isalpha: + * modules/c32isblank, modules/c32iscntrl, modules/c32isdigit: + * modules/c32isgraph, modules/c32islower, modules/c32isprint: + * modules/c32ispunct, modules/c32isspace, modules/c32isupper: + * modules/c32isxdigit, modules/c32snrtombs, modules/c32srtombs: + * modules/exclude, modules/filevercmp, modules/fma, modules/fmaf: + * modules/fmal, modules/fstat, modules/i-ring, modules/ino-map: + * modules/intprops-tests, modules/libgmp-tests: + * modules/limits-h-tests, modules/locale-tests, modules/malloca: + * modules/mbrtoc32, modules/mbrtowc, modules/mbsinit: + * modules/mbsnrtoc32s, modules/mbsrtoc32s, modules/nanosleep: + * modules/parse-datetime, modules/pipe2, modules/pthread-h-tests: + * modules/rawmemchr, modules/relocatable-prog-wrapper: + * modules/round-tests, modules/roundf-tests, modules/sleep: + * modules/stat, modules/stdalign-tests, modules/stdckdint-tests: + * modules/stddef-tests, modules/stdio-tests, modules/stdlib-tests: + * modules/strerror, modules/string-tests, modules/strtoimax: + * modules/strtoumax, modules/sys_stat-tests, modules/time-tests: + * modules/uchar-tests, modules/unistd-tests: + * modules/unistdio/u16-u16-vasnprintf: + * modules/unistdio/u16-vasnprintf: + * modules/unistdio/u32-u32-vasnprintf: + * modules/unistdio/u32-vasnprintf: + * modules/unistdio/u8-u8-vasnprintf: + * modules/unistdio/u8-vasnprintf, modules/unistdio/ulc-vasnprintf: + * modules/utimecmp, modules/vasnprintf, modules/wchar-tests: + Depend on assert-h, not verify. + assert-h: static_assert is a keyword in C23 * m4/assert_h.m4 (gl_ASSERT_H): Also test for static_assert keyword a la C23, and define HAVE_C_STATIC_ASSERT if so. diff --git a/lib/alignalloc.c b/lib/alignalloc.c index 1884394e3c..1be5d4d2ba 100644 --- a/lib/alignalloc.c +++ b/lib/alignalloc.c @@ -26,7 +26,6 @@ #include #include #include -#include "verify.h" #if !ALIGNALLOC_VIA_ALIGNED_ALLOC # if HAVE_POSIX_MEMALIGN @@ -37,7 +36,7 @@ sizeof (void *) is a power of two, which is true on all known platforms. This check is here rather than in alignalloc.h to save the compiler the trouble of checking it each time alignalloc.h is included. */ -verify (! (sizeof (void *) & (sizeof (void *) - 1))); +static_assert (! (sizeof (void *) & (sizeof (void *) - 1))); # else /* !HAVE_POSIX_MEMALIGN */ @@ -62,7 +61,7 @@ address_of_pointer_to_malloced (unsigned char *r) for a 0 byte at R - 1. This approach assumes UCHAR_MAX is large enough so that there is room for P; although true on all plausible platforms, check the assumption to be safe. */ - verify (sizeof (void *) + alignof (void *) - 1 <= UCHAR_MAX); + static_assert (sizeof (void *) + alignof (void *) - 1 <= UCHAR_MAX); return align_down (r - 1 - sizeof (void *), alignof (void *)); } diff --git a/lib/argmatch.h b/lib/argmatch.h index 846cff9066..db98187d7f 100644 --- a/lib/argmatch.h +++ b/lib/argmatch.h @@ -29,7 +29,6 @@ # include "gettext.h" # include "quote.h" -# include "verify.h" # ifdef __cplusplus extern "C" { @@ -41,7 +40,8 @@ extern "C" { (argument list ends with a NULL guard). */ # define ARGMATCH_VERIFY(Arglist, Vallist) \ - verify (ARRAY_CARDINALITY (Arglist) == ARRAY_CARDINALITY (Vallist) + 1) + static_assert (ARRAY_CARDINALITY (Arglist) \ + == ARRAY_CARDINALITY (Vallist) + 1) /* Return the index of the element of ARGLIST (NULL terminated) that matches with ARG. If VALLIST is not NULL, then use it to resolve diff --git a/lib/c32is-impl.h b/lib/c32is-impl.h index 6b910fafbf..ed3758c9e0 100644 --- a/lib/c32is-impl.h +++ b/lib/c32is-impl.h @@ -37,7 +37,6 @@ #endif #include "unictype.h" -#include "verify.h" int FUNC (wint_t wc) @@ -96,7 +95,7 @@ FUNC (wint_t wc) #else /* macOS, FreeBSD, NetBSD, OpenBSD, HP-UX, Solaris, Minix, Android */ /* char32_t and wchar_t are equivalent. */ - verify (sizeof (char32_t) == sizeof (wchar_t)); + static_assert (sizeof (char32_t) == sizeof (wchar_t)); return WCHAR_FUNC (wc); #endif diff --git a/lib/c32snrtombs.c b/lib/c32snrtombs.c index 6bbc65dad0..4b3b40a8f6 100644 --- a/lib/c32snrtombs.c +++ b/lib/c32snrtombs.c @@ -42,9 +42,7 @@ extern mbstate_t _gl_c32srtombs_state; #else /* char32_t and wchar_t are equivalent. */ -# include "verify.h" - -verify (sizeof (char32_t) == sizeof (wchar_t)); +static_assert (sizeof (char32_t) == sizeof (wchar_t)); size_t c32snrtombs (char *dest, const char32_t **srcp, size_t srclen, size_t len, diff --git a/lib/c32srtombs.c b/lib/c32srtombs.c index d7480659a1..6f08deb234 100644 --- a/lib/c32srtombs.c +++ b/lib/c32srtombs.c @@ -42,9 +42,7 @@ extern mbstate_t _gl_c32srtombs_state; #else /* char32_t and wchar_t are equivalent. */ -# include "verify.h" - -verify (sizeof (char32_t) == sizeof (wchar_t)); +static_assert (sizeof (char32_t) == sizeof (wchar_t)); size_t c32srtombs (char *dest, const char32_t **srcp, size_t len, mbstate_t *ps) diff --git a/lib/exclude.c b/lib/exclude.c index a39df312f2..4b96dbfc3f 100644 --- a/lib/exclude.c +++ b/lib/exclude.c @@ -37,7 +37,6 @@ #include "mbuiter.h" #include "fnmatch.h" #include "xalloc.h" -#include "verify.h" #include "filename.h" #if GNULIB_EXCLUDE_SINGLE_THREAD @@ -55,10 +54,10 @@ # define FNM_LEADING_DIR 0 #endif -verify (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS) - & (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR - | FNM_CASEFOLD | FNM_EXTMATCH)) - == 0); +static_assert (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS) + & (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR + | FNM_CASEFOLD | FNM_EXTMATCH)) + == 0); /* Exclusion patterns are grouped into a singly-linked list of diff --git a/lib/filevercmp.c b/lib/filevercmp.c index cb1b38d473..844505a6bf 100644 --- a/lib/filevercmp.c +++ b/lib/filevercmp.c @@ -23,7 +23,6 @@ #include #include #include -#include /* Return the length of a prefix of S that corresponds to the suffix defined by this extended regular expression in the C locale: @@ -74,7 +73,7 @@ order (char const *s, idx_t pos, idx_t len) return -2; else { - verify (UCHAR_MAX <= (INT_MAX - 1 - 2) / 2); + static_assert (UCHAR_MAX <= (INT_MAX - 1 - 2) / 2); return c + UCHAR_MAX + 1; } } diff --git a/lib/fma.c b/lib/fma.c index 25a41c485f..55f4fcdc98 100644 --- a/lib/fma.c +++ b/lib/fma.c @@ -32,7 +32,6 @@ #include "float+.h" #include "integer_length.h" -#include "verify.h" #ifdef USE_LONG_DOUBLE # define FUNC fmal @@ -94,11 +93,11 @@ typedef unsigned int mp_limb_t; #define GMP_LIMB_BITS 32 -verify (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS); +static_assert (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS); typedef unsigned long long mp_twolimb_t; #define GMP_TWOLIMB_BITS 64 -verify (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS); +static_assert (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS); /* Number of limbs needed for a single DOUBLE. */ #define NLIMBS1 ((MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS) diff --git a/lib/i-ring.h b/lib/i-ring.h index ec27d5a3f4..d4efb9726d 100644 --- a/lib/i-ring.h +++ b/lib/i-ring.h @@ -14,10 +14,9 @@ You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ -#include "verify.h" enum { I_RING_SIZE = 4 }; -verify (1 <= I_RING_SIZE); +static_assert (1 <= I_RING_SIZE); /* When ir_empty is true, the ring is empty. Otherwise, ir_data[B..F] are defined, where B..F is the contiguous diff --git a/lib/ino-map.c b/lib/ino-map.c index d9c56a0fa4..9a97391b8a 100644 --- a/lib/ino-map.c +++ b/lib/ino-map.c @@ -21,7 +21,6 @@ #include "ino-map.h" #include "hash.h" -#include "verify.h" #include #include @@ -151,7 +150,7 @@ ino_map_insert (struct ino_map *im, ino_t ino) overflow to zero, then it must equal INO_MAP_INSERT_FAILURE, which is the value that should be returned in that case. Verify that this works. */ - verify (INO_MAP_INSERT_FAILURE + 1 == 0); + static_assert (INO_MAP_INSERT_FAILURE + 1 == 0); /* Prepare to allocate a new probe next time; this one is in use. */ im->probe = NULL; diff --git a/lib/localeinfo.c b/lib/localeinfo.c index 0e74f4220f..34c020cdc6 100644 --- a/lib/localeinfo.c +++ b/lib/localeinfo.c @@ -23,8 +23,6 @@ #include -#include - #include #include #include @@ -32,7 +30,7 @@ #include /* The sbclen implementation relies on this. */ -verify (MB_LEN_MAX <= SCHAR_MAX); +static_assert (MB_LEN_MAX <= SCHAR_MAX); /* Return true if the locale uses UTF-8. */ @@ -123,8 +121,8 @@ static short const lonesome_lower[] = /* Verify that the worst case fits. This is 1 for towupper, 1 for towlower, and 1 for each entry in LONESOME_LOWER. */ -verify (1 + 1 + sizeof lonesome_lower / sizeof *lonesome_lower - <= CASE_FOLDED_BUFSIZE); +static_assert (1 + 1 + sizeof lonesome_lower / sizeof *lonesome_lower + <= CASE_FOLDED_BUFSIZE); /* Find the characters equal to C after case-folding, other than C itself, and store them into FOLDED. Return the number of characters diff --git a/lib/malloca.c b/lib/malloca.c index 183783a710..1e19978d90 100644 --- a/lib/malloca.c +++ b/lib/malloca.c @@ -24,7 +24,6 @@ #include #include "idx.h" -#include "verify.h" /* The speed critical point in this file is freea() applied to an alloca() result: it must be fast, to match the speed of alloca(). The speed of @@ -40,7 +39,7 @@ /* Type for holding very small pointer differences. */ typedef unsigned char small_t; /* Verify that it is wide enough. */ -verify (2 * sa_alignment_max - 1 <= (small_t) -1); +static_assert (2 * sa_alignment_max - 1 <= (small_t) -1); void * mmalloca (size_t n) diff --git a/lib/mbrtoc32.c b/lib/mbrtoc32.c index 6d09fe6db4..8f8095295d 100644 --- a/lib/mbrtoc32.c +++ b/lib/mbrtoc32.c @@ -52,11 +52,10 @@ # endif -# include "verify.h" # include "lc-charset-dispatch.h" # include "mbtowc-lock.h" -verify (sizeof (mbstate_t) >= 4); +static_assert (sizeof (mbstate_t) >= 4); static char internal_state[4]; size_t diff --git a/lib/mbrtowc.c b/lib/mbrtowc.c index 4b164edd40..be6fdc6478 100644 --- a/lib/mbrtowc.c +++ b/lib/mbrtowc.c @@ -51,11 +51,10 @@ # endif # include "attribute.h" -# include "verify.h" # include "lc-charset-dispatch.h" # include "mbtowc-lock.h" -verify (sizeof (mbstate_t) >= 4); +static_assert (sizeof (mbstate_t) >= 4); static char internal_state[4]; size_t diff --git a/lib/mbsinit.c b/lib/mbsinit.c index 9621defc73..2324f15680 100644 --- a/lib/mbsinit.c +++ b/lib/mbsinit.c @@ -20,7 +20,6 @@ /* Specification. */ #include -#include "verify.h" #if GNULIB_defined_mbstate_t @@ -39,7 +38,7 @@ - In wc -> mb direction, mbstate_t contains no information. In other words, it is always in the initial state. */ -verify (sizeof (mbstate_t) >= 4); +static_assert (sizeof (mbstate_t) >= 4); int mbsinit (const mbstate_t *ps) diff --git a/lib/mbsnrtoc32s.c b/lib/mbsnrtoc32s.c index 8d44d0e13f..391baee449 100644 --- a/lib/mbsnrtoc32s.c +++ b/lib/mbsnrtoc32s.c @@ -51,9 +51,7 @@ extern mbstate_t _gl_mbsrtoc32s_state; #else /* char32_t and wchar_t are equivalent. */ -# include "verify.h" - -verify (sizeof (char32_t) == sizeof (wchar_t)); +static_assert (sizeof (char32_t) == sizeof (wchar_t)); size_t mbsnrtoc32s (char32_t *dest, const char **srcp, size_t srclen, size_t len, diff --git a/lib/mbsrtoc32s.c b/lib/mbsrtoc32s.c index 6001b0bbf3..1cd0dd0ad1 100644 --- a/lib/mbsrtoc32s.c +++ b/lib/mbsrtoc32s.c @@ -43,9 +43,7 @@ extern mbstate_t _gl_mbsrtoc32s_state; #else /* char32_t and wchar_t are equivalent. */ -# include "verify.h" - -verify (sizeof (char32_t) == sizeof (wchar_t)); +static_assert (sizeof (char32_t) == sizeof (wchar_t)); size_t mbsrtoc32s (char32_t *dest, const char **srcp, size_t len, mbstate_t *ps) diff --git a/lib/nanosleep.c b/lib/nanosleep.c index 78e612d4b1..55d6fa650e 100644 --- a/lib/nanosleep.c +++ b/lib/nanosleep.c @@ -23,7 +23,6 @@ #include #include "intprops.h" -#include "verify.h" #include #include @@ -58,7 +57,7 @@ nanosleep (const struct timespec *requested_delay, { /* Verify that time_t is large enough. */ - verify (TYPE_MAXIMUM (time_t) / 24 / 24 / 60 / 60); + static_assert (TYPE_MAXIMUM (time_t) / 24 / 24 / 60 / 60); const time_t limit = 24 * 24 * 60 * 60; time_t seconds = requested_delay->tv_sec; struct timespec intermediate; diff --git a/lib/parse-datetime.y b/lib/parse-datetime.y index 0903c2003e..066d414c29 100644 --- a/lib/parse-datetime.y +++ b/lib/parse-datetime.y @@ -38,7 +38,6 @@ #include "idx.h" #include "intprops.h" #include "timespec.h" -#include "verify.h" #include "strftime.h" /* There's no need to extend the stack, so there's no need to involve @@ -94,9 +93,9 @@ /* Verify that time_t is an integer as POSIX requires, and that every time_t value fits in intmax_t. Please file a bug report if these assumptions are false on your platform. */ -verify (TYPE_IS_INTEGER (time_t)); -verify (!TYPE_SIGNED (time_t) || INTMAX_MIN <= TYPE_MINIMUM (time_t)); -verify (TYPE_MAXIMUM (time_t) <= INTMAX_MAX); +static_assert (TYPE_IS_INTEGER (time_t)); +static_assert (!TYPE_SIGNED (time_t) || INTMAX_MIN <= TYPE_MINIMUM (time_t)); +static_assert (TYPE_MAXIMUM (time_t) <= INTMAX_MAX); /* True if N is out of range for time_t. */ static bool @@ -1253,7 +1252,7 @@ enum { TM_YEAR_BUFSIZE = INT_BUFSIZE_BOUND (int) + 1 }; static char const * tm_year_str (int tm_year, char buf[TM_YEAR_BUFSIZE]) { - verify (TM_YEAR_BASE % 100 == 0); + static_assert (TM_YEAR_BASE % 100 == 0); sprintf (buf, &"-%02d%02d"[-TM_YEAR_BASE <= tm_year], abs (tm_year / 100 + TM_YEAR_BASE / 100), abs (tm_year % 100)); diff --git a/lib/pipe2.c b/lib/pipe2.c index 400aff001a..a3cbb7f261 100644 --- a/lib/pipe2.c +++ b/lib/pipe2.c @@ -23,7 +23,6 @@ #include #include "binary-io.h" -#include "verify.h" #if GNULIB_defined_O_NONBLOCK # include "nonblocking.h" @@ -95,7 +94,7 @@ pipe2 (int fd[2], int flags) } # else { - verify (O_NONBLOCK == 0); + static_assert (O_NONBLOCK == 0); } # endif diff --git a/lib/rawmemchr.c b/lib/rawmemchr.c index ea68c1bfc6..c789599db8 100644 --- a/lib/rawmemchr.c +++ b/lib/rawmemchr.c @@ -26,7 +26,6 @@ # include # include -# include "verify.h" /* Find the first occurrence of C in S. */ void * @@ -36,7 +35,7 @@ rawmemchr (const void *s, int c_in) typedef uintptr_t longword; /* If you change the "uintptr_t", you should change UINTPTR_WIDTH to match. This verifies that the type does not have padding bits. */ - verify (UINTPTR_WIDTH == UCHAR_WIDTH * sizeof (longword)); + static_assert (UINTPTR_WIDTH == UCHAR_WIDTH * sizeof (longword)); const unsigned char *char_ptr; unsigned char c = c_in; diff --git a/lib/relocwrapper.c b/lib/relocwrapper.c index 3ec8b2888b..9ef115300a 100644 --- a/lib/relocwrapper.c +++ b/lib/relocwrapper.c @@ -81,7 +81,6 @@ #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 @@ -142,7 +141,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. */ -verify (sizeof (libdirs) / sizeof (libdirs[0]) > 1); +static_assert (sizeof (libdirs) / sizeof (libdirs[0]) > 1); /* Relocate the list of directories that contain the libraries. */ static void diff --git a/lib/sleep.c b/lib/sleep.c index 7a6fb152a7..80431c1081 100644 --- a/lib/sleep.c +++ b/lib/sleep.c @@ -22,8 +22,6 @@ #include -#include "verify.h" - #if defined _WIN32 && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ @@ -56,7 +54,7 @@ unsigned int rpl_sleep (unsigned int seconds) { /* This requires int larger than 16 bits. */ - verify (UINT_MAX / 24 / 24 / 60 / 60); + static_assert (UINT_MAX / 24 / 24 / 60 / 60); const unsigned int limit = 24 * 24 * 60 * 60; while (limit < seconds) { diff --git a/lib/stat-w32.c b/lib/stat-w32.c index c1a2923977..e61b75c6e9 100644 --- a/lib/stat-w32.c +++ b/lib/stat-w32.c @@ -50,7 +50,6 @@ #include "stat-w32.h" #include "pathmax.h" -#include "verify.h" /* Don't assume that UNICODE is not defined. */ #undef LoadLibrary @@ -228,7 +227,7 @@ _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf) if (GetFileInformationByHandleExFunc (h, FileIdInfo, &id, sizeof (id))) { buf->st_dev = id.VolumeSerialNumber; - verify (sizeof (ino_t) == sizeof (id.FileId)); + static_assert (sizeof (ino_t) == sizeof (id.FileId)); memcpy (&buf->st_ino, &id.FileId, sizeof (ino_t)); goto ino_done; } diff --git a/lib/stat.c b/lib/stat.c index cdcc33165f..adb6123352 100644 --- a/lib/stat.c +++ b/lib/stat.c @@ -58,7 +58,6 @@ orig_stat (const char *filename, struct stat *buf) #include #include "filename.h" #include "malloca.h" -#include "verify.h" #ifdef WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN diff --git a/lib/strerror.c b/lib/strerror.c index 67c5216e21..1019fe9eb6 100644 --- a/lib/strerror.c +++ b/lib/strerror.c @@ -27,7 +27,6 @@ #include "intprops.h" #include "strerror-override.h" -#include "verify.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef sprintf @@ -55,7 +54,7 @@ strerror (int n) if (!msg || !*msg) { static char const fmt[] = "Unknown error %d"; - verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); + static_assert (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); sprintf (buf, fmt, n); errno = EINVAL; return buf; diff --git a/lib/strtoimax.c b/lib/strtoimax.c index cad12d0d9b..29d16d29ce 100644 --- a/lib/strtoimax.c +++ b/lib/strtoimax.c @@ -25,8 +25,6 @@ #include -#include "verify.h" - #ifdef UNSIGNED # ifndef HAVE_DECL_STRTOULL "this configure-time declaration test was not run" @@ -62,8 +60,8 @@ long long int strtoll (char const *, char **, int); Int Strtoimax (char const *ptr, char **endptr, int base) { - verify (sizeof (Int) == sizeof (Unsigned long int) - || sizeof (Int) == sizeof (Unsigned long long int)); + static_assert (sizeof (Int) == sizeof (Unsigned long int) + || sizeof (Int) == sizeof (Unsigned long long int)); if (sizeof (Int) != sizeof (Unsigned long int)) return Strtoll (ptr, endptr, base); diff --git a/lib/utimecmp.c b/lib/utimecmp.c index 7312ee0b88..ae7729d26b 100644 --- a/lib/utimecmp.c +++ b/lib/utimecmp.c @@ -33,7 +33,6 @@ #include "hash.h" #include "intprops.h" #include "stat-time.h" -#include "verify.h" #ifndef MAX # define MAX(a, b) ((a) > (b) ? (a) : (b)) @@ -146,7 +145,7 @@ utimecmpat (int dfd, char const *dst_name, time_t might be unsigned. */ - verify (TYPE_IS_INTEGER (time_t)); + static_assert (TYPE_IS_INTEGER (time_t)); /* Destination and source timestamps. */ time_t dst_s = dst_stat->st_mtime; diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c index 285c674b9c..01d18bf598 100644 --- a/lib/vasnprintf.c +++ b/lib/vasnprintf.c @@ -101,7 +101,6 @@ #include "xsize.h" #include "attribute.h" -#include "verify.h" #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include @@ -408,11 +407,11 @@ is_infinite_or_zerol (long double x) typedef unsigned int mp_limb_t; # define GMP_LIMB_BITS 32 -verify (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS); +static_assert (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS); typedef unsigned long long mp_twolimb_t; # define GMP_TWOLIMB_BITS 64 -verify (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS); +static_assert (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS); /* Representation of a bignum >= 0. */ typedef struct @@ -2628,7 +2627,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, size_t characters; # if !DCHAR_IS_TCHAR /* This code assumes that TCHAR_T is 'char'. */ - verify (sizeof (TCHAR_T) == 1); + static_assert (sizeof (TCHAR_T) == 1); TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; @@ -2894,7 +2893,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, size_t characters; # if !DCHAR_IS_TCHAR /* This code assumes that TCHAR_T is 'char'. */ - verify (sizeof (TCHAR_T) == 1); + static_assert (sizeof (TCHAR_T) == 1); TCHAR_T tmpsrc[64]; /* Assume MB_CUR_MAX <= 64. */ DCHAR_T *tmpdst; size_t tmpdst_len; @@ -5451,7 +5450,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, DCHAR_T *tmpdst; size_t tmpdst_len; /* This code assumes that TCHAR_T is 'char'. */ - verify (sizeof (TCHAR_T) == 1); + static_assert (sizeof (TCHAR_T) == 1); # if USE_SNPRINTF tmpsrc = (TCHAR_T *) (result + length); # else diff --git a/modules/alignalloc b/modules/alignalloc index 42ca672bc2..0a34b4bcf4 100644 --- a/modules/alignalloc +++ b/modules/alignalloc @@ -7,6 +7,7 @@ lib/alignalloc.c m4/alignalloc.m4 Depends-on: +assert-h extensions extern-inline idx @@ -14,7 +15,6 @@ posix_memalign stdalign stdckdint stdint -verify configure.ac: gl_ALIGNALLOC diff --git a/modules/alignof-tests b/modules/alignof-tests index be4cb942be..598351790e 100644 --- a/modules/alignof-tests +++ b/modules/alignof-tests @@ -2,7 +2,7 @@ Files: tests/test-alignof.c Depends-on: -verify +assert-h stdint configure.ac: @@ -10,4 +10,3 @@ configure.ac: Makefile.am: TESTS += test-alignof check_PROGRAMS += test-alignof - diff --git a/modules/argmatch b/modules/argmatch index 97d84fbb93..bd534f5056 100644 --- a/modules/argmatch +++ b/modules/argmatch @@ -6,6 +6,7 @@ lib/argmatch.h lib/argmatch.c Depends-on: +assert-h c99 error exitfail @@ -16,7 +17,6 @@ quote quotearg stdbool stdlib -verify configure.ac: diff --git a/modules/c-vasnprintf b/modules/c-vasnprintf index f193f70856..44259c1f0e 100644 --- a/modules/c-vasnprintf +++ b/modules/c-vasnprintf @@ -22,6 +22,7 @@ m4/math_h.m4 m4/exponentd.m4 Depends-on: +assert-h attribute stdio isnand-nolibm @@ -39,7 +40,6 @@ xsize errno memchr multiarch -verify configure.ac: AC_REQUIRE([AC_C_RESTRICT]) diff --git a/modules/c32isalnum b/modules/c32isalnum index b03ba7fbc3..a6e42fefd4 100644 --- a/modules/c32isalnum +++ b/modules/c32isalnum @@ -13,7 +13,7 @@ wctype-h localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-alnum -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32isalpha b/modules/c32isalpha index d39e869471..8081cc2671 100644 --- a/modules/c32isalpha +++ b/modules/c32isalpha @@ -13,7 +13,7 @@ wctype-h localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-alpha -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32isblank b/modules/c32isblank index 948ae36212..1d3938b754 100644 --- a/modules/c32isblank +++ b/modules/c32isblank @@ -14,7 +14,7 @@ iswblank localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-blank -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32iscntrl b/modules/c32iscntrl index b3f1ac7dbb..9ec924f96a 100644 --- a/modules/c32iscntrl +++ b/modules/c32iscntrl @@ -13,7 +13,7 @@ wctype-h localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-cntrl -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32isdigit b/modules/c32isdigit index 3b82dc91b2..a9449cd6b1 100644 --- a/modules/c32isdigit +++ b/modules/c32isdigit @@ -14,7 +14,7 @@ iswdigit localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-digit -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32isgraph b/modules/c32isgraph index 30dc8cb2cd..6d6ef2785a 100644 --- a/modules/c32isgraph +++ b/modules/c32isgraph @@ -13,7 +13,7 @@ wctype-h localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-graph -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32islower b/modules/c32islower index eb075f3b80..1659125631 100644 --- a/modules/c32islower +++ b/modules/c32islower @@ -13,7 +13,7 @@ wctype-h localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-lower -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32isprint b/modules/c32isprint index db7bedc980..96049e3878 100644 --- a/modules/c32isprint +++ b/modules/c32isprint @@ -13,7 +13,7 @@ wctype-h localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-print -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32ispunct b/modules/c32ispunct index 2b132dc0b4..1e45a01a38 100644 --- a/modules/c32ispunct +++ b/modules/c32ispunct @@ -14,7 +14,7 @@ wctype-h localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-punct -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32isspace b/modules/c32isspace index 144aa9b5fc..f72b6ec27b 100644 --- a/modules/c32isspace +++ b/modules/c32isspace @@ -13,7 +13,7 @@ wctype-h localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-space -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32isupper b/modules/c32isupper index 26bc18d51f..09d41ad2ec 100644 --- a/modules/c32isupper +++ b/modules/c32isupper @@ -13,7 +13,7 @@ wctype-h localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-upper -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32isxdigit b/modules/c32isxdigit index f4f31c44d9..2cc4b3e21b 100644 --- a/modules/c32isxdigit +++ b/modules/c32isxdigit @@ -15,7 +15,7 @@ iswxdigit localcharset [test $REPLACE_MBSTATE_T = 1] streq [test $REPLACE_MBSTATE_T = 1] unictype/ctype-xdigit -verify +assert-h configure.ac: AC_REQUIRE([gl_UCHAR_H]) diff --git a/modules/c32snrtombs b/modules/c32snrtombs index 4ced9f2628..6edf7174ed 100644 --- a/modules/c32snrtombs +++ b/modules/c32snrtombs @@ -9,7 +9,7 @@ lib/c32srtombs-state.c Depends-on: uchar wchar -verify +assert-h c32rtomb wcsnrtombs [test $SMALL_WCHAR_T = 0] diff --git a/modules/c32srtombs b/modules/c32srtombs index 1f36b6cc66..4d82ab7bdc 100644 --- a/modules/c32srtombs +++ b/modules/c32srtombs @@ -9,7 +9,7 @@ lib/c32srtombs-state.c Depends-on: uchar wchar -verify +assert-h c32rtomb wcsrtombs [test $SMALL_WCHAR_T = 0] diff --git a/modules/exclude b/modules/exclude index 13871bd635..bd785cada9 100644 --- a/modules/exclude +++ b/modules/exclude @@ -6,6 +6,7 @@ lib/exclude.h lib/exclude.c Depends-on: +assert-h filename fnmatch fopen-gnu @@ -15,7 +16,6 @@ mbuiter regex stdbool unlocked-io-internal -verify xalloc configure.ac: diff --git a/modules/filevercmp b/modules/filevercmp index 4786ce11b6..6c11bb7278 100644 --- a/modules/filevercmp +++ b/modules/filevercmp @@ -6,10 +6,10 @@ lib/filevercmp.h lib/filevercmp.c Depends-on: +assert-h c-ctype idx stdbool -verify configure.ac: diff --git a/modules/fma b/modules/fma index dc45a94826..14e841842d 100644 --- a/modules/fma +++ b/modules/fma @@ -12,7 +12,7 @@ Depends-on: math float [test $HAVE_FMA = 0 || test $REPLACE_FMA = 1] stdbool [test $HAVE_FMA = 0 || test $REPLACE_FMA = 1] -verify [test $HAVE_FMA = 0 || test $REPLACE_FMA = 1] +assert-h [test $HAVE_FMA = 0 || test $REPLACE_FMA = 1] isfinite [test $HAVE_FMA = 0 || test $REPLACE_FMA = 1] integer_length [test $HAVE_FMA = 0 || test $REPLACE_FMA = 1] frexp [test $HAVE_FMA = 0 || test $REPLACE_FMA = 1] diff --git a/modules/fmaf b/modules/fmaf index 53fe229c10..8373d61bc5 100644 --- a/modules/fmaf +++ b/modules/fmaf @@ -14,7 +14,7 @@ math extensions float [test $HAVE_FMAF = 0 || test $REPLACE_FMAF = 1] stdbool [test $HAVE_FMAF = 0 || test $REPLACE_FMAF = 1] -verify [test $HAVE_FMAF = 0 || test $REPLACE_FMAF = 1] +assert-h [test $HAVE_FMAF = 0 || test $REPLACE_FMAF = 1] isfinite [test $HAVE_FMAF = 0 || test $REPLACE_FMAF = 1] integer_length [test $HAVE_FMAF = 0 || test $REPLACE_FMAF = 1] frexpf [test $HAVE_FMAF = 0 || test $REPLACE_FMAF = 1] diff --git a/modules/fmal b/modules/fmal index e24ff02a95..3927262e6a 100644 --- a/modules/fmal +++ b/modules/fmal @@ -15,7 +15,7 @@ extensions fma [{ test $HAVE_FMAL = 0 || test $REPLACE_FMAL = 1; } && test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1] float [{ test $HAVE_FMAL = 0 || test $REPLACE_FMAL = 1; } && test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 0] stdbool [{ test $HAVE_FMAL = 0 || test $REPLACE_FMAL = 1; } && test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 0] -verify [{ test $HAVE_FMAL = 0 || test $REPLACE_FMAL = 1; } && test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 0] +assert-h [{ test $HAVE_FMAL = 0 || test $REPLACE_FMAL = 1; } && test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 0] isfinite [{ test $HAVE_FMAL = 0 || test $REPLACE_FMAL = 1; } && test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 0] integer_length [{ test $HAVE_FMAL = 0 || test $REPLACE_FMAL = 1; } && test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 0] frexpl [{ test $HAVE_FMAL = 0 || test $REPLACE_FMAL = 1; } && test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 0] diff --git a/modules/fstat b/modules/fstat index 508aa76a22..394f2fa4ed 100644 --- a/modules/fstat +++ b/modules/fstat @@ -14,7 +14,7 @@ pathmax [test $REPLACE_FSTAT = 1] stat [test $REPLACE_FSTAT = 1] stat-time [test $REPLACE_FSTAT = 1] unistd [test $REPLACE_FSTAT = 1] -verify [test $REPLACE_FSTAT = 1] +assert-h [test $REPLACE_FSTAT = 1] msvc-nothrow [test $REPLACE_FSTAT = 1] configure.ac: diff --git a/modules/i-ring b/modules/i-ring index 374970694b..1d23a9fe51 100644 --- a/modules/i-ring +++ b/modules/i-ring @@ -7,8 +7,8 @@ lib/i-ring.c m4/i-ring.m4 Depends-on: +assert-h stdbool -verify configure.ac: gl_I_RING diff --git a/modules/ino-map b/modules/ino-map index c340d1ef4c..8905b2ae9c 100644 --- a/modules/ino-map +++ b/modules/ino-map @@ -6,8 +6,8 @@ lib/ino-map.c lib/ino-map.h Depends-on: +assert-h hash -verify configure.ac: diff --git a/modules/intprops-tests b/modules/intprops-tests index f02b357584..1a230ccde8 100644 --- a/modules/intprops-tests +++ b/modules/intprops-tests @@ -3,9 +3,9 @@ tests/test-intprops.c tests/macros.h Depends-on: +assert-h inttypes stdbool -verify configure.ac: diff --git a/modules/libgmp-tests b/modules/libgmp-tests index a80c478c77..b0cb73d1f4 100644 --- a/modules/libgmp-tests +++ b/modules/libgmp-tests @@ -3,8 +3,8 @@ tests/macros.h tests/test-libgmp.c Depends-on: +assert-h c99 -verify configure.ac: diff --git a/modules/limits-h-tests b/modules/limits-h-tests index 7a70e5782b..2cf0a41f5d 100644 --- a/modules/limits-h-tests +++ b/modules/limits-h-tests @@ -2,8 +2,8 @@ Files: tests/test-limits-h.c Depends-on: +assert-h extensions -verify limits-h-c++-tests configure.ac: diff --git a/modules/locale-tests b/modules/locale-tests index 2e661f7565..11b840da9a 100644 --- a/modules/locale-tests +++ b/modules/locale-tests @@ -2,7 +2,7 @@ Files: tests/test-locale.c Depends-on: -verify +assert-h locale-c++-tests configure.ac: diff --git a/modules/malloca b/modules/malloca index 9c279c45f1..6e5fc8d566 100644 --- a/modules/malloca +++ b/modules/malloca @@ -9,10 +9,10 @@ m4/eealloc.m4 Depends-on: alloca-opt +assert-h idx stdckdint stdint -verify xalloc-oversized configure.ac: diff --git a/modules/mbrtoc32 b/modules/mbrtoc32 index 63ed5ebe1f..4757bcbe02 100644 --- a/modules/mbrtoc32 +++ b/modules/mbrtoc32 @@ -22,9 +22,9 @@ attribute [test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1] c99 [{ test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1; } && test $REPLACE_MBSTATE_T = 0] hard-locale [{ test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1; } && test $REPLACE_MBSTATE_T = 0] mbrtowc [{ test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1; } && test $REPLACE_MBSTATE_T = 0] +assert-h [test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1] localcharset [test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1] streq [test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1] -verify [test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1] configure.ac: gl_FUNC_MBRTOC32 diff --git a/modules/mbrtowc b/modules/mbrtowc index ed9ebd7152..e81da6f350 100644 --- a/modules/mbrtowc +++ b/modules/mbrtowc @@ -26,9 +26,9 @@ attribute [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1] stdint [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1] hard-locale [{ test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; } && test $REPLACE_MBSTATE_T = 0] mbsinit [{ test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; } && test $REPLACE_MBSTATE_T = 0] +assert-h [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1] localcharset [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1] streq [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1] -verify [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1] configure.ac: gl_FUNC_MBRTOWC diff --git a/modules/mbsinit b/modules/mbsinit index c500620b40..1040068223 100644 --- a/modules/mbsinit +++ b/modules/mbsinit @@ -9,8 +9,8 @@ m4/mbstate_t.m4 Depends-on: wchar extensions +assert-h [test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1] mbrtowc [test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1] -verify [test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1] configure.ac: gl_FUNC_MBSINIT diff --git a/modules/mbsnrtoc32s b/modules/mbsnrtoc32s index ac464a8950..24a8458f3f 100644 --- a/modules/mbsnrtoc32s +++ b/modules/mbsnrtoc32s @@ -9,7 +9,7 @@ lib/mbsrtoc32s-state.c Depends-on: uchar wchar -verify +assert-h mbrtoc32 minmax strnlen1 diff --git a/modules/mbsrtoc32s b/modules/mbsrtoc32s index 64892cf2a7..f9d97d7548 100644 --- a/modules/mbsrtoc32s +++ b/modules/mbsrtoc32s @@ -9,7 +9,7 @@ lib/mbsrtoc32s-state.c Depends-on: uchar wchar -verify +assert-h mbrtoc32 strnlen1 mbsrtowcs [test $SMALL_WCHAR_T = 0] diff --git a/modules/nanosleep b/modules/nanosleep index a8d0c76744..d0855460cd 100644 --- a/modules/nanosleep +++ b/modules/nanosleep @@ -9,11 +9,11 @@ Depends-on: time extensions multiarch +assert-h [test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1] intprops [test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1] pselect [test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1] stdbool [test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1] sys_select [test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1] -verify [test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1] configure.ac: gl_FUNC_NANOSLEEP diff --git a/modules/parse-datetime b/modules/parse-datetime index 8a2d050dee..72aa6af659 100644 --- a/modules/parse-datetime +++ b/modules/parse-datetime @@ -9,6 +9,7 @@ m4/tm_gmtoff.m4 m4/parse-datetime.m4 Depends-on: +assert-h bison c99 c-ctype @@ -26,7 +27,6 @@ time time_r time_rz timegm -verify configure.ac: gl_PARSE_DATETIME diff --git a/modules/pipe2 b/modules/pipe2 index 08758ba77a..a933d626f0 100644 --- a/modules/pipe2 +++ b/modules/pipe2 @@ -10,7 +10,7 @@ unistd fcntl-h binary-io extensions -verify +assert-h configure.ac: gl_FUNC_PIPE2 diff --git a/modules/pthread-h-tests b/modules/pthread-h-tests index 13fd05b3a0..962ff0e7ca 100644 --- a/modules/pthread-h-tests +++ b/modules/pthread-h-tests @@ -2,7 +2,7 @@ Files: tests/test-pthread.c Depends-on: -verify +assert-h pthread-h-c++-tests configure.ac: diff --git a/modules/rawmemchr b/modules/rawmemchr index f3e46881d5..03da3a27b7 100644 --- a/modules/rawmemchr +++ b/modules/rawmemchr @@ -7,11 +7,11 @@ lib/rawmemchr.valgrind m4/rawmemchr.m4 Depends-on: +assert-h extensions stdalign stdint string -verify configure.ac: gl_FUNC_RAWMEMCHR diff --git a/modules/relocatable-prog-wrapper b/modules/relocatable-prog-wrapper index 9b9d9c3abe..a60aa24d67 100644 --- a/modules/relocatable-prog-wrapper +++ b/modules/relocatable-prog-wrapper @@ -51,6 +51,7 @@ m4/relocatable-lib.m4 m4/setenv.m4 Depends-on: +assert-h c99 double-slash-root eloop-threshold @@ -73,7 +74,6 @@ stdlib string sys_stat unistd -verify xalloc-oversized configure.ac-early: diff --git a/modules/round-tests b/modules/round-tests index 2c4b37bf6e..6a0de71cf7 100644 --- a/modules/round-tests +++ b/modules/round-tests @@ -8,10 +8,10 @@ tests/signature.h tests/macros.h Depends-on: +assert-h isnand-nolibm stdbool stdint -verify configure.ac: diff --git a/modules/roundf-tests b/modules/roundf-tests index cd8af30202..29f06e45c2 100644 --- a/modules/roundf-tests +++ b/modules/roundf-tests @@ -9,12 +9,12 @@ tests/signature.h tests/macros.h Depends-on: +assert-h ceilf floorf isnanf-nolibm stdbool stdint -verify configure.ac: diff --git a/modules/sleep b/modules/sleep index 8ce74a43d9..fb81ebd683 100644 --- a/modules/sleep +++ b/modules/sleep @@ -7,8 +7,8 @@ m4/sleep.m4 Depends-on: unistd +assert-h [test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1] stdint [test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1] -verify [test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1] configure.ac: gl_FUNC_SLEEP diff --git a/modules/stat b/modules/stat index 96d7a03fd5..0d01ab6055 100644 --- a/modules/stat +++ b/modules/stat @@ -10,12 +10,12 @@ m4/stat.m4 Depends-on: sys_stat largefile +assert-h [test $REPLACE_STAT = 1] filename [test $REPLACE_STAT = 1] malloca [test $REPLACE_STAT = 1] pathmax [test $REPLACE_STAT = 1] stat-time [test $REPLACE_STAT = 1] stdbool [test $REPLACE_STAT = 1] -verify [test $REPLACE_STAT = 1] configure.ac: gl_FUNC_STAT diff --git a/modules/stdalign-tests b/modules/stdalign-tests index 138fe3550e..e4665ed5fc 100644 --- a/modules/stdalign-tests +++ b/modules/stdalign-tests @@ -3,7 +3,7 @@ tests/test-stdalign.c tests/macros.h Depends-on: -verify +assert-h stdint stdalign-c++-tests diff --git a/modules/stdckdint-tests b/modules/stdckdint-tests index fb809dac3e..a4115ca44b 100644 --- a/modules/stdckdint-tests +++ b/modules/stdckdint-tests @@ -4,9 +4,9 @@ tests/test-intprops.c tests/test-stdckdint.c Depends-on: +assert-h inttypes stdbool -verify stdckdint-c++-tests configure.ac: diff --git a/modules/stddef-tests b/modules/stddef-tests index bb71e110b7..644eb0d7aa 100644 --- a/modules/stddef-tests +++ b/modules/stddef-tests @@ -2,8 +2,8 @@ Files: tests/test-stddef.c Depends-on: +assert-h stdalign -verify stddef-c++-tests configure.ac: diff --git a/modules/stdio-tests b/modules/stdio-tests index fcda690b7a..5368a2c64c 100644 --- a/modules/stdio-tests +++ b/modules/stdio-tests @@ -2,7 +2,7 @@ Files: tests/test-stdio.c Depends-on: -verify +assert-h stdio-c++-tests fgetc-tests fputc-tests diff --git a/modules/stdlib-tests b/modules/stdlib-tests index 7225c65b8b..f7184bb4e1 100644 --- a/modules/stdlib-tests +++ b/modules/stdlib-tests @@ -3,7 +3,7 @@ tests/test-stdlib.c tests/test-sys_wait.h Depends-on: -verify +assert-h stdlib-c++-tests configure.ac: diff --git a/modules/strerror b/modules/strerror index 6ed290e929..acd17dee0a 100644 --- a/modules/strerror +++ b/modules/strerror @@ -7,10 +7,10 @@ m4/strerror.m4 Depends-on: string +assert-h [test $REPLACE_STRERROR = 1] errno [test $REPLACE_STRERROR = 1] intprops [test $REPLACE_STRERROR = 1] strerror-override [test $REPLACE_STRERROR = 1] -verify [test $REPLACE_STRERROR = 1] configure.ac: gl_FUNC_STRERROR diff --git a/modules/string-tests b/modules/string-tests index ec732da6a3..b469c2e048 100644 --- a/modules/string-tests +++ b/modules/string-tests @@ -2,7 +2,7 @@ Files: tests/test-string.c Depends-on: -verify +assert-h string-c++-tests configure.ac: diff --git a/modules/strtoimax b/modules/strtoimax index 80aa1dde65..942fb55a18 100644 --- a/modules/strtoimax +++ b/modules/strtoimax @@ -7,7 +7,7 @@ m4/strtoimax.m4 Depends-on: inttypes-incomplete -verify [test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1] +assert-h [test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1] stdint [test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1] strtoll [{ test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; } && test $ac_cv_type_long_long_int = yes] diff --git a/modules/strtoumax b/modules/strtoumax index 3d6bbf7281..5dfdd65ea2 100644 --- a/modules/strtoumax +++ b/modules/strtoumax @@ -8,7 +8,7 @@ m4/strtoumax.m4 Depends-on: inttypes-incomplete -verify [test $HAVE_DECL_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1] +assert-h [test $HAVE_DECL_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1] stdint [test $HAVE_DECL_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1] strtoull [{ test $HAVE_DECL_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1; } && test $ac_cv_type_unsigned_long_long_int = yes] diff --git a/modules/sys_stat-tests b/modules/sys_stat-tests index a5ede77aba..7d4091bd75 100644 --- a/modules/sys_stat-tests +++ b/modules/sys_stat-tests @@ -2,7 +2,7 @@ Files: tests/test-sys_stat.c Depends-on: -verify +assert-h sys_stat-c++-tests configure.ac: diff --git a/modules/time-tests b/modules/time-tests index de7e2383c8..e367565ece 100644 --- a/modules/time-tests +++ b/modules/time-tests @@ -2,7 +2,7 @@ Files: tests/test-time.c Depends-on: -verify +assert-h time-c++-tests configure.ac: diff --git a/modules/uchar-tests b/modules/uchar-tests index 2dab71805b..5df13a09a4 100644 --- a/modules/uchar-tests +++ b/modules/uchar-tests @@ -2,7 +2,7 @@ Files: tests/test-uchar.c Depends-on: -verify +assert-h uchar-c++-tests configure.ac: diff --git a/modules/unistd-tests b/modules/unistd-tests index 9b8222c604..e9ce6e0a3d 100644 --- a/modules/unistd-tests +++ b/modules/unistd-tests @@ -2,7 +2,7 @@ Files: tests/test-unistd.c Depends-on: -verify +assert-h unistd-c++-tests configure.ac: diff --git a/modules/unistdio/u16-u16-vasnprintf b/modules/unistdio/u16-u16-vasnprintf index 9c27ccc7f5..ac8df9f1b1 100644 --- a/modules/unistdio/u16-u16-vasnprintf +++ b/modules/unistdio/u16-u16-vasnprintf @@ -47,7 +47,7 @@ errno free-posix memchr multiarch -verify +assert-h configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/u16-vasnprintf b/modules/unistdio/u16-vasnprintf index 285640b6ea..e767f54bd3 100644 --- a/modules/unistdio/u16-vasnprintf +++ b/modules/unistdio/u16-vasnprintf @@ -47,7 +47,7 @@ errno free-posix memchr multiarch -verify +assert-h configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/u32-u32-vasnprintf b/modules/unistdio/u32-u32-vasnprintf index c4fe86d61d..86e669723b 100644 --- a/modules/unistdio/u32-u32-vasnprintf +++ b/modules/unistdio/u32-u32-vasnprintf @@ -47,7 +47,7 @@ errno free-posix memchr multiarch -verify +assert-h configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/u32-vasnprintf b/modules/unistdio/u32-vasnprintf index a7582ff922..58185bc34b 100644 --- a/modules/unistdio/u32-vasnprintf +++ b/modules/unistdio/u32-vasnprintf @@ -47,7 +47,7 @@ errno free-posix memchr multiarch -verify +assert-h configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/u8-u8-vasnprintf b/modules/unistdio/u8-u8-vasnprintf index a583f3442d..63ab8d8768 100644 --- a/modules/unistdio/u8-u8-vasnprintf +++ b/modules/unistdio/u8-u8-vasnprintf @@ -47,7 +47,7 @@ errno free-posix memchr multiarch -verify +assert-h configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/u8-vasnprintf b/modules/unistdio/u8-vasnprintf index 3fdaa9ce38..f6be0a5de3 100644 --- a/modules/unistdio/u8-vasnprintf +++ b/modules/unistdio/u8-vasnprintf @@ -47,7 +47,7 @@ errno free-posix memchr multiarch -verify +assert-h configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/unistdio/ulc-vasnprintf b/modules/unistdio/ulc-vasnprintf index 5691007019..61107fe13a 100644 --- a/modules/unistdio/ulc-vasnprintf +++ b/modules/unistdio/ulc-vasnprintf @@ -45,7 +45,7 @@ errno free-posix memchr multiarch -verify +assert-h configure.ac: gl_PREREQ_VASNPRINTF_WITH_EXTRAS diff --git a/modules/utimecmp b/modules/utimecmp index dffe861c2d..af6b8c2898 100644 --- a/modules/utimecmp +++ b/modules/utimecmp @@ -16,7 +16,7 @@ utimensat intprops stdbool stdint -verify +assert-h configure.ac: gl_UTIMECMP diff --git a/modules/vasnprintf b/modules/vasnprintf index bcde2b9cfd..7d40973cdb 100644 --- a/modules/vasnprintf +++ b/modules/vasnprintf @@ -30,7 +30,7 @@ stdint xsize errno memchr -verify +assert-h wchar configure.ac: diff --git a/modules/wchar-tests b/modules/wchar-tests index afe3bff752..3e6b6cf3f7 100644 --- a/modules/wchar-tests +++ b/modules/wchar-tests @@ -2,7 +2,7 @@ Files: tests/test-wchar.c Depends-on: -verify +assert-h wchar-c++-tests configure.ac: diff --git a/tests/test-alignof.c b/tests/test-alignof.c index fd11789932..0e516f5d1b 100644 --- a/tests/test-alignof.c +++ b/tests/test-alignof.c @@ -23,8 +23,6 @@ #include #include -#include "verify.h" - typedef long double longdouble; typedef struct { char a[1]; } struct1; typedef struct { char a[2]; } struct2; @@ -33,7 +31,7 @@ typedef struct { char a[4]; } struct4; #define CHECK(type) \ typedef struct { char slot1; type slot2; } type##_helper; \ - verify (alignof_slot (type) == offsetof (type##_helper, slot2)); \ + static_assert (alignof_slot (type) == offsetof (type##_helper, slot2)); \ const int type##_slot_alignment = alignof_slot (type); \ const int type##_type_alignment = alignof_type (type); diff --git a/tests/test-intprops.c b/tests/test-intprops.c index 84265ea3f2..a54d581229 100644 --- a/tests/test-intprops.c +++ b/tests/test-intprops.c @@ -35,7 +35,6 @@ #else # include "intprops.h" #endif -#include "verify.h" #include #include @@ -44,7 +43,7 @@ /* Compile-time verification of expression X. In this file, we need it as a statement, rather than as a declaration. */ -#define verify_stmt(x) do { verify (x); } while (0) +#define verify_stmt(x) do { static_assert (x); } while (0) /* VERIFY (X) uses a static assertion for compilers that are known to work, and falls back on a dynamic assertion for other compilers. diff --git a/tests/test-libgmp.c b/tests/test-libgmp.c index fcb77d3885..ec1766affd 100644 --- a/tests/test-libgmp.c +++ b/tests/test-libgmp.c @@ -22,14 +22,12 @@ #include #include -#include "verify.h" - #include "macros.h" #ifndef MINI_GMP_LIMB_TYPE /* Verify that the gmp.h header file was generated for the same machine word size as we are using. */ -verify (GMP_NUMB_BITS == sizeof (mp_limb_t) * CHAR_BIT); +static_assert (GMP_NUMB_BITS == sizeof (mp_limb_t) * CHAR_BIT); #endif int diff --git a/tests/test-limits-h.c b/tests/test-limits-h.c index 5da02f0575..ddcb5d5648 100644 --- a/tests/test-limits-h.c +++ b/tests/test-limits-h.c @@ -20,14 +20,12 @@ #include -#include "verify.h" - #if 4 < __GNUC__ + (3 <= __GNUC_MINOR__) # pragma GCC diagnostic ignored "-Woverlength-strings" #endif #define verify_width(width, min, max) \ - verify ((max) >> ((width) - 1 - ((min) < 0)) == 1) + static_assert ((max) >> ((width) - 1 - ((min) < 0)) == 1) /* Macros borrowed from intprops.h. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) @@ -53,48 +51,48 @@ verify_width (LONG_BIT, LONG_MIN, LONG_MAX); /* Numerical limit macros. */ char limits1[] = { CHAR_MIN, CHAR_MAX }; -verify (TYPE_MINIMUM (char) == CHAR_MIN); -verify (TYPE_MAXIMUM (char) == CHAR_MAX); +static_assert (TYPE_MINIMUM (char) == CHAR_MIN); +static_assert (TYPE_MAXIMUM (char) == CHAR_MAX); signed char limits2[] = { SCHAR_MIN, SCHAR_MAX }; -verify (TYPE_MINIMUM (signed char) == SCHAR_MIN); -verify (TYPE_MAXIMUM (signed char) == SCHAR_MAX); +static_assert (TYPE_MINIMUM (signed char) == SCHAR_MIN); +static_assert (TYPE_MAXIMUM (signed char) == SCHAR_MAX); unsigned char limits3[] = { UCHAR_MAX }; -verify (TYPE_MINIMUM (unsigned char) == 0); -verify (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX); +static_assert (TYPE_MINIMUM (unsigned char) == 0); +static_assert (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX); short limits4[] = { SHRT_MIN, SHRT_MAX }; -verify (TYPE_MINIMUM (short int) == SHRT_MIN); -verify (TYPE_MAXIMUM (short int) == SHRT_MAX); +static_assert (TYPE_MINIMUM (short int) == SHRT_MIN); +static_assert (TYPE_MAXIMUM (short int) == SHRT_MAX); unsigned short limits5[] = { USHRT_MAX }; -verify (TYPE_MINIMUM (unsigned short int) == 0); -verify (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX); +static_assert (TYPE_MINIMUM (unsigned short int) == 0); +static_assert (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX); int limits6[] = { INT_MIN, INT_MAX }; -verify (TYPE_MINIMUM (int) == INT_MIN); -verify (TYPE_MAXIMUM (int) == INT_MAX); +static_assert (TYPE_MINIMUM (int) == INT_MIN); +static_assert (TYPE_MAXIMUM (int) == INT_MAX); unsigned int limits7[] = { UINT_MAX }; -verify (TYPE_MINIMUM (unsigned int) == 0); -verify (TYPE_MAXIMUM (unsigned int) == UINT_MAX); +static_assert (TYPE_MINIMUM (unsigned int) == 0); +static_assert (TYPE_MAXIMUM (unsigned int) == UINT_MAX); long limits8[] = { LONG_MIN, LONG_MAX }; -verify (TYPE_MINIMUM (long int) == LONG_MIN); -verify (TYPE_MAXIMUM (long int) == LONG_MAX); +static_assert (TYPE_MINIMUM (long int) == LONG_MIN); +static_assert (TYPE_MAXIMUM (long int) == LONG_MAX); unsigned long limits9[] = { ULONG_MAX }; -verify (TYPE_MINIMUM (unsigned long int) == 0); -verify (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX); +static_assert (TYPE_MINIMUM (unsigned long int) == 0); +static_assert (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX); long long limits10[] = { LLONG_MIN, LLONG_MAX }; -verify (TYPE_MINIMUM (long long int) == LLONG_MIN); -verify (TYPE_MAXIMUM (long long int) == LLONG_MAX); +static_assert (TYPE_MINIMUM (long long int) == LLONG_MIN); +static_assert (TYPE_MAXIMUM (long long int) == LLONG_MAX); unsigned long long limits11[] = { ULLONG_MAX }; -verify (TYPE_MINIMUM (unsigned long long int) == 0); -verify (TYPE_MAXIMUM (unsigned long long int) == ULLONG_MAX); +static_assert (TYPE_MINIMUM (unsigned long long int) == 0); +static_assert (TYPE_MAXIMUM (unsigned long long int) == ULLONG_MAX); /* Macros specified by ISO/IEC TS 18661-1:2014. */ @@ -113,7 +111,7 @@ verify_width (ULLONG_WIDTH, 0, ULLONG_MAX); /* Macros specified by C2x. */ int bool_attrs[] = { BOOL_MAX, BOOL_WIDTH }; -verify (BOOL_MAX == (((1U << (BOOL_WIDTH - 1)) - 1) * 2) + 1); +static_assert (BOOL_MAX == (((1U << (BOOL_WIDTH - 1)) - 1) * 2) + 1); int main (void) diff --git a/tests/test-locale.c b/tests/test-locale.c index 5c2bac1009..3aad7d85a8 100644 --- a/tests/test-locale.c +++ b/tests/test-locale.c @@ -20,8 +20,6 @@ #include -#include "verify.h" - int a[] = { LC_ALL, @@ -39,7 +37,7 @@ int ls; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ -verify (sizeof NULL == sizeof (void *)); +static_assert (sizeof NULL == sizeof (void *)); int main () diff --git a/tests/test-pthread.c b/tests/test-pthread.c index 86131d867a..2fef5924e8 100644 --- a/tests/test-pthread.c +++ b/tests/test-pthread.c @@ -20,8 +20,6 @@ #include -#include "verify.h" - /* Check that the types are all defined. */ pthread_t t1; diff --git a/tests/test-round2.c b/tests/test-round2.c index 4cc37c59bf..05600eab7c 100644 --- a/tests/test-round2.c +++ b/tests/test-round2.c @@ -34,8 +34,6 @@ #include #include -#include "verify.h" - #ifdef USE_LONG_DOUBLE # error Long double not supported. #elif ! defined USE_FLOAT @@ -99,7 +97,7 @@ main (void) /* Combine highbits and lowbits into a floating-point number, sign-extending the lowbits to DOUBLE_BITS-NUM_HIGHBITS bits. */ union { DOUBLE f; DOUBLE_UINT i; } janus; - verify (sizeof janus.f == sizeof janus.i); + static_assert (sizeof janus.f == sizeof janus.i); janus.i = lowbits | (highbits << (DOUBLE_BITS - NUM_HIGHBITS)); if (lowbits >> (NUM_LOWBITS - 1)) janus.i |= ((DOUBLE_UINT) -1 diff --git a/tests/test-stdalign.c b/tests/test-stdalign.c index 69268b87b4..ea07543802 100644 --- a/tests/test-stdalign.c +++ b/tests/test-stdalign.c @@ -23,8 +23,6 @@ #include #include -#include "verify.h" - #include "macros.h" typedef long double longdouble; @@ -45,7 +43,7 @@ typedef struct { char a[4]; } struct4; #define CHECK_STATIC(type) \ typedef struct { char slot1; type slot2; } type##_helper; \ - verify (alignof (type) == offsetof (type##_helper, slot2)); \ + static_assert (alignof (type) == offsetof (type##_helper, slot2)); \ const int type##_alignment = alignof (type); \ type alignas (TEST_ALIGNMENT) static_##type##_alignas diff --git a/tests/test-stddef.c b/tests/test-stddef.c index 9983154e92..470c7a6bc1 100644 --- a/tests/test-stddef.c +++ b/tests/test-stddef.c @@ -21,7 +21,6 @@ #include #include #include -#include "verify.h" /* Check that appropriate types are defined. */ wchar_t a = 'c'; @@ -31,7 +30,7 @@ max_align_t x; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ -verify (sizeof NULL == sizeof (void *)); +static_assert (sizeof NULL == sizeof (void *)); /* Check that offsetof produces integer constants with correct type. */ struct d @@ -42,32 +41,32 @@ struct d /* Solaris 10 has a bug where offsetof is under-parenthesized, and cannot be used as an arbitrary expression. However, since it is unlikely to bite real code, we ignore that short-coming. */ -/* verify (sizeof offsetof (struct d, e) == sizeof (size_t)); */ -verify (sizeof (offsetof (struct d, e)) == sizeof (size_t)); -verify (offsetof (struct d, f) == 1); +/* static_assert (sizeof offsetof (struct d, e) == sizeof (size_t)); */ +static_assert (sizeof (offsetof (struct d, e)) == sizeof (size_t)); +static_assert (offsetof (struct d, f) == 1); /* offsetof promotes to an unsigned integer if and only if sizes do not fit in int. */ -verify ((offsetof (struct d, e) < -1) == (INT_MAX < (size_t) -1)); +static_assert ((offsetof (struct d, e) < -1) == (INT_MAX < (size_t) -1)); /* Check max_align_t's alignment. */ -verify (alignof (double) <= alignof (max_align_t)); -verify (alignof (int) <= alignof (max_align_t)); -verify (alignof (long double) <= alignof (max_align_t)); -verify (alignof (long int) <= alignof (max_align_t)); -verify (alignof (ptrdiff_t) <= alignof (max_align_t)); -verify (alignof (size_t) <= alignof (max_align_t)); -verify (alignof (wchar_t) <= alignof (max_align_t)); -verify (alignof (struct d) <= alignof (max_align_t)); +static_assert (alignof (double) <= alignof (max_align_t)); +static_assert (alignof (int) <= alignof (max_align_t)); +static_assert (alignof (long double) <= alignof (max_align_t)); +static_assert (alignof (long int) <= alignof (max_align_t)); +static_assert (alignof (ptrdiff_t) <= alignof (max_align_t)); +static_assert (alignof (size_t) <= alignof (max_align_t)); +static_assert (alignof (wchar_t) <= alignof (max_align_t)); +static_assert (alignof (struct d) <= alignof (max_align_t)); #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ -verify (__alignof__ (double) <= __alignof__ (max_align_t)); -verify (__alignof__ (int) <= __alignof__ (max_align_t)); -verify (__alignof__ (long double) <= __alignof__ (max_align_t)); -verify (__alignof__ (long int) <= __alignof__ (max_align_t)); -verify (__alignof__ (ptrdiff_t) <= __alignof__ (max_align_t)); -verify (__alignof__ (size_t) <= __alignof__ (max_align_t)); -verify (__alignof__ (wchar_t) <= __alignof__ (max_align_t)); -verify (__alignof__ (struct d) <= __alignof__ (max_align_t)); +static_assert (__alignof__ (double) <= __alignof__ (max_align_t)); +static_assert (__alignof__ (int) <= __alignof__ (max_align_t)); +static_assert (__alignof__ (long double) <= __alignof__ (max_align_t)); +static_assert (__alignof__ (long int) <= __alignof__ (max_align_t)); +static_assert (__alignof__ (ptrdiff_t) <= __alignof__ (max_align_t)); +static_assert (__alignof__ (size_t) <= __alignof__ (max_align_t)); +static_assert (__alignof__ (wchar_t) <= __alignof__ (max_align_t)); +static_assert (__alignof__ (struct d) <= __alignof__ (max_align_t)); #endif int diff --git a/tests/test-stdio.c b/tests/test-stdio.c index 695532ad95..1908da358a 100644 --- a/tests/test-stdio.c +++ b/tests/test-stdio.c @@ -20,14 +20,12 @@ #include -#include "verify.h" - /* Check that the various SEEK_* macros are defined. */ int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET }; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ -verify (sizeof NULL == sizeof (void *)); +static_assert (sizeof NULL == sizeof (void *)); /* Check that the types are all defined. */ fpos_t t1; diff --git a/tests/test-stdlib.c b/tests/test-stdlib.c index 4f1b965818..4fdafc9946 100644 --- a/tests/test-stdlib.c +++ b/tests/test-stdlib.c @@ -20,8 +20,6 @@ #include -#include "verify.h" - /* Check that EXIT_SUCCESS is 0, per POSIX. */ static int exitcode = EXIT_SUCCESS; #if EXIT_SUCCESS @@ -36,7 +34,7 @@ static int exitcode = EXIT_SUCCESS; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ -verify (sizeof NULL == sizeof (void *)); +static_assert (sizeof NULL == sizeof (void *)); #if GNULIB_TEST_SYSTEM_POSIX # include "test-sys_wait.h" diff --git a/tests/test-string.c b/tests/test-string.c index 9509a6a5d9..94688726dd 100644 --- a/tests/test-string.c +++ b/tests/test-string.c @@ -20,11 +20,9 @@ #include -#include "verify.h" - /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ -verify (sizeof NULL == sizeof (void *)); +static_assert (sizeof NULL == sizeof (void *)); int main (void) diff --git a/tests/test-sys_stat.c b/tests/test-sys_stat.c index 913b17e995..b404d9f22c 100644 --- a/tests/test-sys_stat.c +++ b/tests/test-sys_stat.c @@ -20,8 +20,6 @@ #include -#include "verify.h" - /* Check the existence of some macros. */ int a[] = { @@ -61,264 +59,264 @@ int a[] = /* Sanity checks. */ -verify (S_IRWXU == (S_IRUSR | S_IWUSR | S_IXUSR)); -verify (S_IRWXG == (S_IRGRP | S_IWGRP | S_IXGRP)); -verify (S_IRWXO == (S_IROTH | S_IWOTH | S_IXOTH)); +static_assert (S_IRWXU == (S_IRUSR | S_IWUSR | S_IXUSR)); +static_assert (S_IRWXG == (S_IRGRP | S_IWGRP | S_IXGRP)); +static_assert (S_IRWXO == (S_IROTH | S_IWOTH | S_IXOTH)); #ifdef S_IFBLK -verify (S_ISBLK (S_IFBLK)); +static_assert (S_ISBLK (S_IFBLK)); #endif -verify (!S_ISBLK (S_IFCHR)); -verify (!S_ISBLK (S_IFDIR)); -verify (!S_ISBLK (S_IFIFO)); -verify (!S_ISBLK (S_IFREG)); +static_assert (!S_ISBLK (S_IFCHR)); +static_assert (!S_ISBLK (S_IFDIR)); +static_assert (!S_ISBLK (S_IFIFO)); +static_assert (!S_ISBLK (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISBLK (S_IFLNK)); +static_assert (!S_ISBLK (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISBLK (S_IFSOCK)); +static_assert (!S_ISBLK (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISCHR (S_IFBLK)); +static_assert (!S_ISCHR (S_IFBLK)); #endif -verify (S_ISCHR (S_IFCHR)); -verify (!S_ISCHR (S_IFDIR)); -verify (!S_ISCHR (S_IFIFO)); -verify (!S_ISCHR (S_IFREG)); +static_assert (S_ISCHR (S_IFCHR)); +static_assert (!S_ISCHR (S_IFDIR)); +static_assert (!S_ISCHR (S_IFIFO)); +static_assert (!S_ISCHR (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISCHR (S_IFLNK)); +static_assert (!S_ISCHR (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISCHR (S_IFSOCK)); +static_assert (!S_ISCHR (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISDIR (S_IFBLK)); +static_assert (!S_ISDIR (S_IFBLK)); #endif -verify (!S_ISDIR (S_IFCHR)); -verify (S_ISDIR (S_IFDIR)); -verify (!S_ISDIR (S_IFIFO)); -verify (!S_ISDIR (S_IFREG)); +static_assert (!S_ISDIR (S_IFCHR)); +static_assert (S_ISDIR (S_IFDIR)); +static_assert (!S_ISDIR (S_IFIFO)); +static_assert (!S_ISDIR (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISDIR (S_IFLNK)); +static_assert (!S_ISDIR (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISDIR (S_IFSOCK)); +static_assert (!S_ISDIR (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISFIFO (S_IFBLK)); +static_assert (!S_ISFIFO (S_IFBLK)); #endif -verify (!S_ISFIFO (S_IFCHR)); -verify (!S_ISFIFO (S_IFDIR)); -verify (S_ISFIFO (S_IFIFO)); -verify (!S_ISFIFO (S_IFREG)); +static_assert (!S_ISFIFO (S_IFCHR)); +static_assert (!S_ISFIFO (S_IFDIR)); +static_assert (S_ISFIFO (S_IFIFO)); +static_assert (!S_ISFIFO (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISFIFO (S_IFLNK)); +static_assert (!S_ISFIFO (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISFIFO (S_IFSOCK)); +static_assert (!S_ISFIFO (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISREG (S_IFBLK)); +static_assert (!S_ISREG (S_IFBLK)); #endif -verify (!S_ISREG (S_IFCHR)); -verify (!S_ISREG (S_IFDIR)); -verify (!S_ISREG (S_IFIFO)); -verify (S_ISREG (S_IFREG)); +static_assert (!S_ISREG (S_IFCHR)); +static_assert (!S_ISREG (S_IFDIR)); +static_assert (!S_ISREG (S_IFIFO)); +static_assert (S_ISREG (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISREG (S_IFLNK)); +static_assert (!S_ISREG (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISREG (S_IFSOCK)); +static_assert (!S_ISREG (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISLNK (S_IFBLK)); +static_assert (!S_ISLNK (S_IFBLK)); #endif -verify (!S_ISLNK (S_IFCHR)); -verify (!S_ISLNK (S_IFDIR)); -verify (!S_ISLNK (S_IFIFO)); -verify (!S_ISLNK (S_IFREG)); +static_assert (!S_ISLNK (S_IFCHR)); +static_assert (!S_ISLNK (S_IFDIR)); +static_assert (!S_ISLNK (S_IFIFO)); +static_assert (!S_ISLNK (S_IFREG)); #ifdef S_IFLNK -verify (S_ISLNK (S_IFLNK)); +static_assert (S_ISLNK (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISLNK (S_IFSOCK)); +static_assert (!S_ISLNK (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISSOCK (S_IFBLK)); +static_assert (!S_ISSOCK (S_IFBLK)); #endif -verify (!S_ISSOCK (S_IFCHR)); -verify (!S_ISSOCK (S_IFDIR)); -verify (!S_ISSOCK (S_IFIFO)); -verify (!S_ISSOCK (S_IFREG)); +static_assert (!S_ISSOCK (S_IFCHR)); +static_assert (!S_ISSOCK (S_IFDIR)); +static_assert (!S_ISSOCK (S_IFIFO)); +static_assert (!S_ISSOCK (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISSOCK (S_IFLNK)); +static_assert (!S_ISSOCK (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (S_ISSOCK (S_IFSOCK)); +static_assert (S_ISSOCK (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISDOOR (S_IFBLK)); +static_assert (!S_ISDOOR (S_IFBLK)); #endif -verify (!S_ISDOOR (S_IFCHR)); -verify (!S_ISDOOR (S_IFDIR)); -verify (!S_ISDOOR (S_IFIFO)); -verify (!S_ISDOOR (S_IFREG)); +static_assert (!S_ISDOOR (S_IFCHR)); +static_assert (!S_ISDOOR (S_IFDIR)); +static_assert (!S_ISDOOR (S_IFIFO)); +static_assert (!S_ISDOOR (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISDOOR (S_IFLNK)); +static_assert (!S_ISDOOR (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISDOOR (S_IFSOCK)); +static_assert (!S_ISDOOR (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISMPB (S_IFBLK)); +static_assert (!S_ISMPB (S_IFBLK)); #endif -verify (!S_ISMPB (S_IFCHR)); -verify (!S_ISMPB (S_IFDIR)); -verify (!S_ISMPB (S_IFIFO)); -verify (!S_ISMPB (S_IFREG)); +static_assert (!S_ISMPB (S_IFCHR)); +static_assert (!S_ISMPB (S_IFDIR)); +static_assert (!S_ISMPB (S_IFIFO)); +static_assert (!S_ISMPB (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISMPB (S_IFLNK)); +static_assert (!S_ISMPB (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISMPB (S_IFSOCK)); +static_assert (!S_ISMPB (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISMPX (S_IFBLK)); +static_assert (!S_ISMPX (S_IFBLK)); #endif -verify (!S_ISMPX (S_IFCHR)); -verify (!S_ISMPX (S_IFDIR)); -verify (!S_ISMPX (S_IFIFO)); -verify (!S_ISMPX (S_IFREG)); +static_assert (!S_ISMPX (S_IFCHR)); +static_assert (!S_ISMPX (S_IFDIR)); +static_assert (!S_ISMPX (S_IFIFO)); +static_assert (!S_ISMPX (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISMPX (S_IFLNK)); +static_assert (!S_ISMPX (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISMPX (S_IFSOCK)); +static_assert (!S_ISMPX (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISNAM (S_IFBLK)); +static_assert (!S_ISNAM (S_IFBLK)); #endif -verify (!S_ISNAM (S_IFCHR)); -verify (!S_ISNAM (S_IFDIR)); -verify (!S_ISNAM (S_IFIFO)); -verify (!S_ISNAM (S_IFREG)); +static_assert (!S_ISNAM (S_IFCHR)); +static_assert (!S_ISNAM (S_IFDIR)); +static_assert (!S_ISNAM (S_IFIFO)); +static_assert (!S_ISNAM (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISNAM (S_IFLNK)); +static_assert (!S_ISNAM (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISNAM (S_IFSOCK)); +static_assert (!S_ISNAM (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISNWK (S_IFBLK)); +static_assert (!S_ISNWK (S_IFBLK)); #endif -verify (!S_ISNWK (S_IFCHR)); -verify (!S_ISNWK (S_IFDIR)); -verify (!S_ISNWK (S_IFIFO)); -verify (!S_ISNWK (S_IFREG)); +static_assert (!S_ISNWK (S_IFCHR)); +static_assert (!S_ISNWK (S_IFDIR)); +static_assert (!S_ISNWK (S_IFIFO)); +static_assert (!S_ISNWK (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISNWK (S_IFLNK)); +static_assert (!S_ISNWK (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISNWK (S_IFSOCK)); +static_assert (!S_ISNWK (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISPORT (S_IFBLK)); +static_assert (!S_ISPORT (S_IFBLK)); #endif -verify (!S_ISPORT (S_IFCHR)); -verify (!S_ISPORT (S_IFDIR)); -verify (!S_ISPORT (S_IFIFO)); -verify (!S_ISPORT (S_IFREG)); +static_assert (!S_ISPORT (S_IFCHR)); +static_assert (!S_ISPORT (S_IFDIR)); +static_assert (!S_ISPORT (S_IFIFO)); +static_assert (!S_ISPORT (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISPORT (S_IFLNK)); +static_assert (!S_ISPORT (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISPORT (S_IFSOCK)); +static_assert (!S_ISPORT (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISCTG (S_IFBLK)); +static_assert (!S_ISCTG (S_IFBLK)); #endif -verify (!S_ISCTG (S_IFCHR)); -verify (!S_ISCTG (S_IFDIR)); -verify (!S_ISCTG (S_IFIFO)); -verify (!S_ISCTG (S_IFREG)); +static_assert (!S_ISCTG (S_IFCHR)); +static_assert (!S_ISCTG (S_IFDIR)); +static_assert (!S_ISCTG (S_IFIFO)); +static_assert (!S_ISCTG (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISCTG (S_IFLNK)); +static_assert (!S_ISCTG (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISCTG (S_IFSOCK)); +static_assert (!S_ISCTG (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISOFD (S_IFBLK)); +static_assert (!S_ISOFD (S_IFBLK)); #endif -verify (!S_ISOFD (S_IFCHR)); -verify (!S_ISOFD (S_IFDIR)); -verify (!S_ISOFD (S_IFIFO)); -verify (!S_ISOFD (S_IFREG)); +static_assert (!S_ISOFD (S_IFCHR)); +static_assert (!S_ISOFD (S_IFDIR)); +static_assert (!S_ISOFD (S_IFIFO)); +static_assert (!S_ISOFD (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISOFD (S_IFLNK)); +static_assert (!S_ISOFD (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISOFD (S_IFSOCK)); +static_assert (!S_ISOFD (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISOFL (S_IFBLK)); +static_assert (!S_ISOFL (S_IFBLK)); #endif -verify (!S_ISOFL (S_IFCHR)); -verify (!S_ISOFL (S_IFDIR)); -verify (!S_ISOFL (S_IFIFO)); -verify (!S_ISOFL (S_IFREG)); +static_assert (!S_ISOFL (S_IFCHR)); +static_assert (!S_ISOFL (S_IFDIR)); +static_assert (!S_ISOFL (S_IFIFO)); +static_assert (!S_ISOFL (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISOFL (S_IFLNK)); +static_assert (!S_ISOFL (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISOFL (S_IFSOCK)); +static_assert (!S_ISOFL (S_IFSOCK)); #endif #ifdef S_IFBLK -verify (!S_ISWHT (S_IFBLK)); +static_assert (!S_ISWHT (S_IFBLK)); #endif -verify (!S_ISWHT (S_IFCHR)); -verify (!S_ISWHT (S_IFDIR)); -verify (!S_ISWHT (S_IFIFO)); -verify (!S_ISWHT (S_IFREG)); +static_assert (!S_ISWHT (S_IFCHR)); +static_assert (!S_ISWHT (S_IFDIR)); +static_assert (!S_ISWHT (S_IFIFO)); +static_assert (!S_ISWHT (S_IFREG)); #ifdef S_IFLNK -verify (!S_ISWHT (S_IFLNK)); +static_assert (!S_ISWHT (S_IFLNK)); #endif #ifdef S_IFSOCK -verify (!S_ISWHT (S_IFSOCK)); +static_assert (!S_ISWHT (S_IFSOCK)); #endif /* POSIX 2008 requires traditional encoding of permission constants. */ -verify (S_IRWXU == 00700); -verify (S_IRUSR == 00400); -verify (S_IWUSR == 00200); -verify (S_IXUSR == 00100); -verify (S_IRWXG == 00070); -verify (S_IRGRP == 00040); -verify (S_IWGRP == 00020); -verify (S_IXGRP == 00010); -verify (S_IRWXO == 00007); -verify (S_IROTH == 00004); -verify (S_IWOTH == 00002); -verify (S_IXOTH == 00001); -verify (S_ISUID == 04000); -verify (S_ISGID == 02000); -verify (S_ISVTX == 01000); +static_assert (S_IRWXU == 00700); +static_assert (S_IRUSR == 00400); +static_assert (S_IWUSR == 00200); +static_assert (S_IXUSR == 00100); +static_assert (S_IRWXG == 00070); +static_assert (S_IRGRP == 00040); +static_assert (S_IWGRP == 00020); +static_assert (S_IXGRP == 00010); +static_assert (S_IRWXO == 00007); +static_assert (S_IROTH == 00004); +static_assert (S_IWOTH == 00002); +static_assert (S_IXOTH == 00001); +static_assert (S_ISUID == 04000); +static_assert (S_ISGID == 02000); +static_assert (S_ISVTX == 01000); #if ((0 <= UTIME_NOW && UTIME_NOW < 1000000000) \ || (0 <= UTIME_OMIT && UTIME_OMIT < 1000000000) \ diff --git a/tests/test-time.c b/tests/test-time.c index 3c00a4ef04..6b69f3d529 100644 --- a/tests/test-time.c +++ b/tests/test-time.c @@ -20,8 +20,6 @@ #include -#include "verify.h" - /* Check that the types are all defined. */ struct timespec t1; #if 0 @@ -32,11 +30,11 @@ pid_t t2; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ -verify (sizeof NULL == sizeof (void *)); +static_assert (sizeof NULL == sizeof (void *)); /* Check that TIME_UTC is defined and a positive integer. */ int t3 = TIME_UTC; -verify (TIME_UTC > 0); +static_assert (TIME_UTC > 0); int main (void) diff --git a/tests/test-uchar.c b/tests/test-uchar.c index a2af51c523..ad83d8ad91 100644 --- a/tests/test-uchar.c +++ b/tests/test-uchar.c @@ -20,8 +20,6 @@ #include -#include "verify.h" - /* Check that the types are defined. */ mbstate_t a = { 0 }; size_t b = 5; @@ -29,19 +27,19 @@ char16_t c = 'x'; char32_t d = 'y'; /* Check that char16_t and char32_t are unsigned types. */ -verify ((char16_t)(-1) >= 0); +static_assert ((char16_t)(-1) >= 0); #if !defined __HP_cc -verify ((char32_t)(-1) >= 0); +static_assert ((char32_t)(-1) >= 0); #endif /* Check that char32_t is at least 31 bits wide. */ -verify ((char32_t)0x7FFFFFFF != (char32_t)0x3FFFFFFF); +static_assert ((char32_t)0x7FFFFFFF != (char32_t)0x3FFFFFFF); /* Check that _GL_LARGE_CHAR32_T is correctly defined. */ #if _GL_LARGE_CHAR32_T -verify (sizeof (char32_t) > sizeof (wchar_t)); +static_assert (sizeof (char32_t) > sizeof (wchar_t)); #else -verify (sizeof (char32_t) == sizeof (wchar_t)); +static_assert (sizeof (char32_t) == sizeof (wchar_t)); #endif int diff --git a/tests/test-unistd.c b/tests/test-unistd.c index 2c04b286ea..a59af1e3ff 100644 --- a/tests/test-unistd.c +++ b/tests/test-unistd.c @@ -20,11 +20,9 @@ #include -#include "verify.h" - /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ -verify (sizeof NULL == sizeof (void *)); +static_assert (sizeof NULL == sizeof (void *)); /* Check that the various SEEK_* macros are defined. */ int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET }; diff --git a/tests/test-wchar.c b/tests/test-wchar.c index 97c3bfb3b3..af7c948601 100644 --- a/tests/test-wchar.c +++ b/tests/test-wchar.c @@ -20,15 +20,13 @@ #include -#include "verify.h" - /* Check that the types wchar_t and wint_t are defined. */ wchar_t a = 'c'; wint_t b = 'x'; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ -verify (sizeof NULL == sizeof (void *)); +static_assert (sizeof NULL == sizeof (void *)); int main (void) -- 2.37.2