mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-08 17:22:05 +03:00
* m4/assert_h.m4 (gl_ASSERT_H): Also test for static_assert keyword a la C23, and define HAVE_C_STATIC_ASSERT if so. If not, arrange for config.h to #define static_assert by including <assert.h>, and then do "#undef assert" so that the assert macro still needs an explicit include. This should be safe even on very old hosts, as assert.h has been re-includable for decades. * tests/tests-assert.c: New test. * modules/assert-h-tests (Files, Makefile.am): Add it.
53 lines
1.3 KiB
Plaintext
53 lines
1.3 KiB
Plaintext
Description:
|
|
An <assert.h> and static_assert that are like C23.
|
|
|
|
Files:
|
|
lib/assert.in.h
|
|
lib/verify.h
|
|
m4/assert_h.m4
|
|
|
|
Depends-on:
|
|
gen-header
|
|
include_next
|
|
|
|
configure.ac:
|
|
gl_ASSERT_H
|
|
gl_CONDITIONAL_HEADER([assert.h])
|
|
AC_PROG_MKDIR_P
|
|
|
|
Makefile.am:
|
|
BUILT_SOURCES += $(ASSERT_H)
|
|
|
|
# We need the following in order to create <assert.h> when the system
|
|
# doesn't have one that works with the given compiler.
|
|
if GL_GENERATE_ASSERT_H
|
|
assert.h: assert.in.h verify.h $(top_builddir)/config.status
|
|
@NMD@ $(AM_V_GEN)$(MKDIR_P) '%reldir%'
|
|
$(gl_V_at){ $(SED_HEADER_STDOUT) \
|
|
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
|
|
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
|
|
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
|
|
-e 's|@''NEXT_ASSERT_H''@|$(NEXT_ASSERT_H)|g' \
|
|
< $(srcdir)/assert.in.h && \
|
|
sed -e '/@assert.h omit start@/,/@assert.h omit end@/d' \
|
|
-e 's|_gl_verify|_gl_static_assert|g' \
|
|
-e 's|_GL_VERIFY|_GL_STATIC_ASSERT|g' \
|
|
-e 's|_GL\(_STATIC_ASSERT_H\)|_${gl_include_guard_prefix}\1|g' \
|
|
< $(srcdir)/verify.h; \
|
|
} > $@-t
|
|
$(AM_V_at)mv $@-t $@
|
|
else
|
|
assert.h: $(top_builddir)/config.status
|
|
rm -f $@
|
|
endif
|
|
MOSTLYCLEANFILES += assert.h assert.h-t
|
|
|
|
Include:
|
|
<assert.h>
|
|
|
|
License:
|
|
LGPLv2+
|
|
|
|
Maintainer:
|
|
Paul Eggert
|