* modules/stddef-h: Renamed from modules/stddef.
* modules/stddef-h-tests: Renamed from modules/stddef-tests.
* modules/stddef-h-c++-tests: Renamed from modules/stddef-c++-tests.
* tests/test-stddef-h.c: Renamed from tests/test-stddef.c.
* tests/test-stddef-h-c++.cc: Renamed from tests/test-stddef-c++.cc.
* tests/test-stddef-h-c++2.cc: Renamed from tests/test-stddef-c++2.cc.
* doc/posix-headers/stddef.texi: Update.
* modules/* (Depends-on): Update.
* modules/stddef: New file.
+2024-12-27 Bruno Haible <bruno@clisp.org>
+
+ Rename module stddef to stddef-h.
+ * modules/stddef-h: Renamed from modules/stddef.
+ * modules/stddef-h-tests: Renamed from modules/stddef-tests.
+ * modules/stddef-h-c++-tests: Renamed from modules/stddef-c++-tests.
+ * tests/test-stddef-h.c: Renamed from tests/test-stddef.c.
+ * tests/test-stddef-h-c++.cc: Renamed from tests/test-stddef-c++.cc.
+ * tests/test-stddef-h-c++2.cc: Renamed from tests/test-stddef-c++2.cc.
+ * doc/posix-headers/stddef.texi: Update.
+ * modules/* (Depends-on): Update.
+ * modules/stddef: New file.
+
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stdckdint to stdckdint-h.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stddef.h.html}
-Gnulib module: stddef
-@mindex stddef
+Gnulib module: stddef-h
+@mindex stddef-h
Portability problems fixed by Gnulib:
@itemize
mempcpy
raise
sigsegv
-stddef
+stddef-h
unistd
configure.ac:
mbszero
regex
stdbool-h
-stddef
+stddef-h
stdint
stdio
stdlib
Depends-on:
error-h
-stddef
+stddef-h
stdio
getprogname [test $COMPILE_ERROR_C = 1]
gettext-h [test $COMPILE_ERROR_C = 1]
readdir
realloc-posix
stdbool-h
-stddef
+stddef-h
stdint
configure.ac:
libc-config
stdbool-h
stdckdint-h
-stddef
+stddef-h
configure.ac:
AC_PROG_MKDIR_P
gen-header
libc-config
stdbool-h
-stddef
+stddef-h
malloc-posix
realloc-posix
free-posix
snippet/arg-nonnull
snippet/c++defs
snippet/warn-on-use
-stddef
+stddef-h
configure.ac:
gl_LOCALE_H
include_next
snippet/c++defs
snippet/warn-on-use
-stddef
+stddef-h
stdlib
configure.ac:
pathmax
ssize_t
stdbool-h
-stddef
+stddef-h
stdckdint-h
stdint
stdlib
Description:
A <stddef.h> that works around platform issues.
+Status:
+deprecated
+
+Notice:
+This module is deprecated. Use the module 'stddef-h' instead.
+
Files:
-lib/stddef.in.h
-m4/stddef_h.m4
Depends-on:
-gen-header
-include_next
-extensions
+stddef-h
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' \
- $(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>
LGPLv2+
Maintainer:
-all
+++ /dev/null
-Files:
-tests/test-stddef-c++.cc
-tests/test-stddef-c++2.cc
-
-Status:
-c++-test
-
-Depends-on:
-ansi-c++-opt
-
-configure.ac:
-
-Makefile.am:
-if ANSICXX
-TESTS += test-stddef-c++
-check_PROGRAMS += test-stddef-c++
-test_stddef_c___SOURCES = test-stddef-c++.cc test-stddef-c++2.cc
-endif
--- /dev/null
+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' \
+ $(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
--- /dev/null
+Files:
+tests/test-stddef-h-c++.cc
+tests/test-stddef-h-c++2.cc
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-stddef-h-c++
+check_PROGRAMS += test-stddef-h-c++
+test_stddef_h_c___SOURCES = test-stddef-h-c++.cc test-stddef-h-c++2.cc
+endif
--- /dev/null
+Files:
+tests/test-stddef-h.c
+
+Depends-on:
+alignasof
+assert-h
+stddef-h-c++-tests
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-stddef-h
+check_PROGRAMS += test-stddef-h
+++ /dev/null
-Files:
-tests/test-stddef.c
-
-Depends-on:
-alignasof
-assert-h
-stddef-c++-tests
-
-configure.ac:
-
-Makefile.am:
-TESTS += test-stddef
-check_PROGRAMS += test-stddef
snippet/c++defs
snippet/warn-on-use
ssize_t
-stddef
+stddef-h
sys_types
configure.ac-early:
snippet/c++defs
snippet/warn-on-use
snippet/_Noreturn
-stddef
+stddef-h
unistd
configure.ac:
snippet/arg-nonnull
snippet/c++defs
snippet/warn-on-use
-stddef
+stddef-h
stdlib
configure.ac:
snippet/arg-nonnull
snippet/c++defs
snippet/warn-on-use
-stddef
+stddef-h
configure.ac:
gl_TIME_H
snippet/c++defs
snippet/warn-on-use
ssize_t
-stddef
+stddef-h
sys_types
configure.ac:
snippet/warn-on-use
extern-inline
inttypes-h-incomplete
-stddef
+stddef-h
stdlib
configure.ac:
+++ /dev/null
-/* Test of <stddef.h> substitute in C++ mode.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-/* Written by Bruno Haible <bruno@clisp.org>, 2019. */
-
-#define GNULIB_NAMESPACE gnulib
-#include <config.h>
-
-#include <stddef.h>
-
-
-int
-main ()
-{
-}
+++ /dev/null
-/* Test of <stddef.h> substitute in C++ mode.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-#define GNULIB_NAMESPACE gnulib
-#include <config.h>
-
-#include <cstddef>
--- /dev/null
+/* Test of <stddef.h> substitute in C++ mode.
+ Copyright (C) 2019-2024 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2019. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#include <stddef.h>
+
+
+int
+main ()
+{
+}
--- /dev/null
+/* Test of <stddef.h> substitute in C++ mode.
+ Copyright (C) 2019-2024 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#define GNULIB_NAMESPACE gnulib
+#include <config.h>
+
+#include <cstddef>
--- /dev/null
+/* Test of <stddef.h> substitute.
+ Copyright (C) 2009-2024 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Eric Blake <ebb9@byu.net>, 2009. */
+
+#include <config.h>
+
+#include <stddef.h>
+
+/* Check that appropriate types are defined. */
+wchar_t a = 'c';
+ptrdiff_t b = 1;
+size_t c = 2;
+max_align_t mat;
+
+/* Check that NULL can be passed through varargs as a pointer type,
+ per POSIX 2008. */
+static_assert (sizeof NULL == sizeof (void *));
+
+/* Check that offsetof produces integer constants with correct type. */
+struct d
+{
+ char e;
+ char f;
+};
+/* 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. */
+/* 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);
+
+/* Check max_align_t's alignment. */
+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__
+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 test_unreachable_optimization (int x);
+_Noreturn void test_unreachable_noreturn (void);
+
+int
+test_unreachable_optimization (int x)
+{
+ /* Check that the compiler uses 'unreachable' for optimization.
+ This function, when compiled with optimization, should have code
+ equivalent to
+ return x + 3;
+ Use 'objdump --disassemble test-stddef.o' to verify this. */
+ if (x < 4)
+ unreachable ();
+ return (x > 1 ? x + 3 : 2 * x + 10);
+}
+
+_Noreturn void
+test_unreachable_noreturn (void)
+{
+ /* Check that the compiler's data-flow analysis recognizes 'unreachable ()'.
+ This function should not elicit a warning. */
+ unreachable ();
+}
+
+#include <limits.h> /* INT_MAX */
+
+/* offsetof promotes to an unsigned integer if and only if sizes do
+ not fit in int. */
+static_assert ((offsetof (struct d, e) < -1) == (INT_MAX < (size_t) -1));
+
+int
+main (void)
+{
+ return 0;
+}
+++ /dev/null
-/* Test of <stddef.h> substitute.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-/* Written by Eric Blake <ebb9@byu.net>, 2009. */
-
-#include <config.h>
-
-#include <stddef.h>
-
-/* Check that appropriate types are defined. */
-wchar_t a = 'c';
-ptrdiff_t b = 1;
-size_t c = 2;
-max_align_t mat;
-
-/* Check that NULL can be passed through varargs as a pointer type,
- per POSIX 2008. */
-static_assert (sizeof NULL == sizeof (void *));
-
-/* Check that offsetof produces integer constants with correct type. */
-struct d
-{
- char e;
- char f;
-};
-/* 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. */
-/* 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);
-
-/* Check max_align_t's alignment. */
-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__
-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 test_unreachable_optimization (int x);
-_Noreturn void test_unreachable_noreturn (void);
-
-int
-test_unreachable_optimization (int x)
-{
- /* Check that the compiler uses 'unreachable' for optimization.
- This function, when compiled with optimization, should have code
- equivalent to
- return x + 3;
- Use 'objdump --disassemble test-stddef.o' to verify this. */
- if (x < 4)
- unreachable ();
- return (x > 1 ? x + 3 : 2 * x + 10);
-}
-
-_Noreturn void
-test_unreachable_noreturn (void)
-{
- /* Check that the compiler's data-flow analysis recognizes 'unreachable ()'.
- This function should not elicit a warning. */
- unreachable ();
-}
-
-#include <limits.h> /* INT_MAX */
-
-/* offsetof promotes to an unsigned integer if and only if sizes do
- not fit in int. */
-static_assert ((offsetof (struct d, e) < -1) == (INT_MAX < (size_t) -1));
-
-int
-main (void)
-{
- return 0;
-}