bug-gnulib@gnu.org mirror (unofficial)
 help / color / mirror / Atom feed
* [PROPOSED 0/2] static_assert and C23
@ 2022-09-13  3:32 Paul Eggert
  2022-09-13  3:32 ` [PROPOSED 1/2] assert-h: static_assert is a keyword in C23 Paul Eggert
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Paul Eggert @ 2022-09-13  3:32 UTC (permalink / raw)
  To: bug-gnulib; +Cc: Paul Eggert

In the spirit of the recent patches for bool and C23, here's a
proposed pair of patches for C23's new keyword static_assert.
This uses a similar approach, in that the existing assert-h module,
which already provides an <assert.h> that supplies a static_assert macro,
is modified to provide something like C23 static_assert even if you
don't include <assert.h>.  This patchset does differ from the bool
patchset in that we can't assume the system <assert.h> supplies a
static_assert macro since Gnulib doesn't assume C11.

I haven't installed these into Gnulib.  Comments welcome.

Paul Eggert (2):
  assert-h: static_assert is a keyword in C23
  assert-h: prefer to ‘verify’

 ChangeLog                           |  65 +++++++
 doc/gnulib.texi                     |  27 ++-
 doc/posix-headers/assert.texi       |  38 ++--
 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 +-
 m4/assert_h.m4                      |  43 ++++-
 modules/alignalloc                  |   2 +-
 modules/alignof-tests               |   3 +-
 modules/argmatch                    |   2 +-
 modules/assert-h                    |   2 +-
 modules/assert-h-tests              |   3 +
 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-assert.c                 |  71 +++++++
 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               |  10 +-
 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 +-
 122 files changed, 540 insertions(+), 409 deletions(-)
 create mode 100644 tests/test-assert.c

--
2.37.2



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2022-12-28 22:41 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-13  3:32 [PROPOSED 0/2] static_assert and C23 Paul Eggert
2022-09-13  3:32 ` [PROPOSED 1/2] assert-h: static_assert is a keyword in C23 Paul Eggert
2022-09-13  3:32 ` [PROPOSED 2/2] assert-h: prefer to ‘verify’ Paul Eggert
2022-09-14  1:05   ` Bruno Haible
2022-09-14  4:47     ` Paul Eggert
2022-09-14  6:04       ` Bruno Haible
2022-09-14 11:35   ` Bruno Haible
2022-12-28 22:41     ` Paul Eggert
2022-09-14 13:43   ` Bruno Haible
2022-09-14 16:10     ` Bruno Haible
2022-09-14 20:22   ` Bruno Haible
2022-09-13 22:50 ` [PROPOSED 0/2] static_assert and C23 Bruno Haible
2022-09-13 23:06   ` Paul Eggert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).