Branch
Hash :
df7978ac
Author :
Date :
2025-06-02T18:32:26
stddef-h: Fix compilation errors in C++ mode (regression 2025-05-27). * m4/stddef_h.m4 (gl_STDDEF_H): Set and substitute HAVE_C_UNREACHABLE. Don't test for unreachable in <stddef.h> in C++. Set GL_GENERATE_STDDEF_H to true always. * lib/stddef.in.h (gl_unreachable): Renamed from _gl_unreachable. Test HAVE_C_UNREACHABLE. (unreachable): Don't define in C++ mode. Don't define if HAVE_C_UNREACHABLE is 1. * modules/stddef-h (Makefile.am): Substitute HAVE_C_UNREACHABLE. * tests/test-stddef-h.c (test_unreachable_optimization, test_unreachable_noreturn): Don't define in C++ mode. (test_gl_unreachable_optimization, test_gl_unreachable_noreturn): New functions. * tests/test-stddef-h-c++3.cc (test_cxx_unreachable_1): Test gl_unreachable instead of unreachable. * lib/error.in.h (__gl_error_call1): Use gl_unreachable instead of unreachable.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
Description:
A <stddef.h> that works around platform issues.
Files:
lib/stddef.in.h
m4/stddef_h.m4
Depends-on:
gen-header
include_next
extensions
configure.ac:
gl_STDDEF_H
gl_STDDEF_H_REQUIRE_DEFAULTS
gl_CONDITIONAL_HEADER([stddef.h])
AC_PROG_MKDIR_P
Makefile.am:
BUILT_SOURCES += $(STDDEF_H)
# We need the following in order to create <stddef.h> when the system
# doesn't have one that works with the given compiler.
if GL_GENERATE_STDDEF_H
stddef.h: stddef.in.h $(top_builddir)/config.status
@NMD@ $(AM_V_GEN)$(MKDIR_P) '%reldir%'
$(gl_V_at)$(SED_HEADER_STDOUT) \
-e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
-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_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
-e 's|@''NULLPTR_T_NEEDS_STDDEF''@|$(NULLPTR_T_NEEDS_STDDEF)|g' \
-e 's|@''STDDEF_NOT_IDEMPOTENT''@|$(STDDEF_NOT_IDEMPOTENT)|g' \
-e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
-e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \
-e 's|@''HAVE_C_UNREACHABLE''@|$(HAVE_C_UNREACHABLE)|g' \
$(srcdir)/stddef.in.h > $@-t
$(AM_V_at)mv $@-t $@
else
stddef.h: $(top_builddir)/config.status
rm -f $@
endif
MOSTLYCLEANFILES += stddef.h stddef.h-t
Include:
<stddef.h>
License:
LGPLv2+
Maintainer:
all