aboutsummaryrefslogtreecommitdiffstats
path: root/lib/string.in.h
diff options
context:
space:
mode:
authorPaul Eggert2025-05-07 23:57:18 -0700
committerPaul Eggert2025-05-08 00:16:46 -0700
commitc9c6abfa81c58b4a62f4fa5fcaad94b219f5d706 (patch)
treed018390e6532a07121cc64e4ce7c80c7618f9876 /lib/string.in.h
parent322ed637b4c2fe826d41c5af3800b2f2e381bb0f (diff)
downloademacs-c9c6abfa81c58b4a62f4fa5fcaad94b219f5d706.tar.gz
emacs-c9c6abfa81c58b4a62f4fa5fcaad94b219f5d706.zip
Update from Gnulib by running admin/merge-gnulib
The following changes were made by hand, so that admin/merge-gnulib could succeed instead of failing because the diff didn’t match. * admin/gnulib-patches/lib/getloadavg.c.diff: Remove, as it is no longer needed now that recent Gnulib has been merged. * admin/merge-gnulib (GNULIB_TOOL_FLAGS): Remove the --local-dir="$src"admin/gnulib-patches option, as it is no longer needed either.
Diffstat (limited to 'lib/string.in.h')
-rw-r--r--lib/string.in.h75
1 files changed, 65 insertions, 10 deletions
diff --git a/lib/string.in.h b/lib/string.in.h
index 44b9497d802..e7642211685 100644
--- a/lib/string.in.h
+++ b/lib/string.in.h
@@ -116,6 +116,18 @@
116# endif 116# endif
117#endif 117#endif
118 118
119/* _GL_ATTRIBUTE_NONNULL_IF_NONZERO (NP, NI) declares that the argument NP
120 (a pointer) must not be NULL if the argument NI (an integer) is != 0. */
121/* Applies to: functions. */
122#ifndef _GL_ATTRIBUTE_NONNULL_IF_NONZERO
123# if __GNUC__ >= 15 && !defined __clang__
124# define _GL_ATTRIBUTE_NONNULL_IF_NONZERO(np, ni) \
125 __attribute__ ((__nonnull_if_nonzero__ (np, ni)))
126# else
127# define _GL_ATTRIBUTE_NONNULL_IF_NONZERO(np, ni)
128# endif
129#endif
130
119/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. 131/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions.
120 */ 132 */
121#ifndef _GL_ATTRIBUTE_NOTHROW 133#ifndef _GL_ATTRIBUTE_NOTHROW
@@ -154,6 +166,7 @@
154 166
155/* The definition of _GL_WARN_ON_USE is copied here. */ 167/* The definition of _GL_WARN_ON_USE is copied here. */
156 168
169
157/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though <stdlib.h> may not have 170/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though <stdlib.h> may not have
158 been included yet. */ 171 been included yet. */
159#if @GNULIB_FREE_POSIX@ 172#if @GNULIB_FREE_POSIX@
@@ -198,6 +211,44 @@ _GL_EXTERN_C void free (void *);
198# endif 211# endif
199#endif 212#endif
200 213
214
215/* Declarations for ISO C N3322. */
216#if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__
217_GL_EXTERN_C void *memcpy (void *__dest, const void *__src, size_t __n)
218 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
219 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
220_GL_EXTERN_C void *memccpy (void *__dest, const void *__src, int __c, size_t __n)
221 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 4)
222 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 4);
223_GL_EXTERN_C void *memmove (void *__dest, const void *__src, size_t __n)
224 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
225 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
226_GL_EXTERN_C char *strncpy (char *__dest, const char *__src, size_t __n)
227 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
228 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
229_GL_EXTERN_C char *strndup (const char *__s, size_t __n)
230 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 2);
231_GL_EXTERN_C char *strncat (char *__dest, const char *__src, size_t __n)
232 _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
233_GL_EXTERN_C int memcmp (const void *__s1, const void *__s2, size_t __n)
234 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
235 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
236_GL_EXTERN_C int strncmp (const char *__s1, const char *__s2, size_t __n)
237 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
238 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
239# ifndef __cplusplus
240_GL_EXTERN_C void *memchr (const void *__s, int __c, size_t __n)
241 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
242_GL_EXTERN_C void *memrchr (const void *__s, int __c, size_t __n)
243 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
244# endif
245_GL_EXTERN_C void *memset (void *__s, int __c, size_t __n)
246 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
247_GL_EXTERN_C void *memset_explicit (void *__s, int __c, size_t __n)
248 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
249#endif
250
251
201/* Clear a block of memory. The compiler will not delete a call to 252/* Clear a block of memory. The compiler will not delete a call to
202 this function, even if the block is dead after the call. */ 253 this function, even if the block is dead after the call. */
203#if @GNULIB_EXPLICIT_BZERO@ 254#if @GNULIB_EXPLICIT_BZERO@
@@ -215,6 +266,7 @@ _GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - "
215# endif 266# endif
216#endif 267#endif
217 268
269
218/* Find the index of the least-significant set bit. */ 270/* Find the index of the least-significant set bit. */
219#if @GNULIB_FFSL@ 271#if @GNULIB_FFSL@
220# if !@HAVE_FFSL@ 272# if !@HAVE_FFSL@
@@ -281,7 +333,7 @@ _GL_CXXALIASWARN (memccpy);
281# endif 333# endif
282_GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n), 334_GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n),
283 _GL_ATTRIBUTE_PURE 335 _GL_ATTRIBUTE_PURE
284 _GL_ARG_NONNULL ((1))); 336 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3));
285_GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); 337_GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n));
286# else 338# else
287 /* On some systems, this function is defined as an overloaded function: 339 /* On some systems, this function is defined as an overloaded function:
@@ -388,7 +440,7 @@ _GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - "
388# if ! @HAVE_DECL_MEMRCHR@ 440# if ! @HAVE_DECL_MEMRCHR@
389_GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t), 441_GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t),
390 _GL_ATTRIBUTE_PURE 442 _GL_ATTRIBUTE_PURE
391 _GL_ARG_NONNULL ((1))); 443 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3));
392# endif 444# endif
393 /* On some systems, this function is defined as an overloaded function: 445 /* On some systems, this function is defined as an overloaded function:
394 extern "C++" { const void * std::memrchr (const void *, int, size_t); } 446 extern "C++" { const void * std::memrchr (const void *, int, size_t); }
@@ -425,12 +477,14 @@ _GL_WARN_ON_USE (memrchr, "memrchr is unportable - "
425# define memset_explicit rpl_memset_explicit 477# define memset_explicit rpl_memset_explicit
426# endif 478# endif
427_GL_FUNCDECL_RPL (memset_explicit, void *, 479_GL_FUNCDECL_RPL (memset_explicit, void *,
428 (void *__dest, int __c, size_t __n), _GL_ARG_NONNULL ((1))); 480 (void *__dest, int __c, size_t __n),
481 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3));
429_GL_CXXALIAS_RPL (memset_explicit, void *, (void *__dest, int __c, size_t __n)); 482_GL_CXXALIAS_RPL (memset_explicit, void *, (void *__dest, int __c, size_t __n));
430# else 483# else
431# if !@HAVE_MEMSET_EXPLICIT@ 484# if !@HAVE_MEMSET_EXPLICIT@
432_GL_FUNCDECL_SYS (memset_explicit, void *, 485_GL_FUNCDECL_SYS (memset_explicit, void *,
433 (void *__dest, int __c, size_t __n), _GL_ARG_NONNULL ((1))); 486 (void *__dest, int __c, size_t __n),
487 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3));
434# endif 488# endif
435_GL_CXXALIAS_SYS (memset_explicit, void *, (void *__dest, int __c, size_t __n)); 489_GL_CXXALIAS_SYS (memset_explicit, void *, (void *__dest, int __c, size_t __n));
436# endif 490# endif
@@ -697,7 +751,8 @@ _GL_CXXALIASWARN (strdup);
697# endif 751# endif
698_GL_FUNCDECL_RPL (strncat, char *, 752_GL_FUNCDECL_RPL (strncat, char *,
699 (char *restrict dest, const char *restrict src, size_t n), 753 (char *restrict dest, const char *restrict src, size_t n),
700 _GL_ARG_NONNULL ((1, 2))); 754 _GL_ARG_NONNULL ((1))
755 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3));
701_GL_CXXALIAS_RPL (strncat, char *, 756_GL_CXXALIAS_RPL (strncat, char *,
702 (char *restrict dest, const char *restrict src, size_t n)); 757 (char *restrict dest, const char *restrict src, size_t n));
703# else 758# else
@@ -724,7 +779,7 @@ _GL_WARN_ON_USE (strncat, "strncat is unportable - "
724# endif 779# endif
725_GL_FUNCDECL_RPL (strndup, char *, 780_GL_FUNCDECL_RPL (strndup, char *,
726 (char const *__s, size_t __n), 781 (char const *__s, size_t __n),
727 _GL_ARG_NONNULL ((1)) 782 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 2)
728 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); 783 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
729_GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n)); 784_GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n));
730# else 785# else
@@ -733,13 +788,13 @@ _GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n));
733# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 788# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
734_GL_FUNCDECL_SYS (strndup, char *, 789_GL_FUNCDECL_SYS (strndup, char *,
735 (char const *__s, size_t __n), 790 (char const *__s, size_t __n),
736 _GL_ARG_NONNULL ((1)) 791 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 2)
737 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) 792 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE)
738 _GL_ATTRIBUTE_NOTHROW; 793 _GL_ATTRIBUTE_NOTHROW;
739# else 794# else
740_GL_FUNCDECL_SYS (strndup, char *, 795_GL_FUNCDECL_SYS (strndup, char *,
741 (char const *__s, size_t __n), 796 (char const *__s, size_t __n),
742 _GL_ARG_NONNULL ((1)) 797 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 2)
743 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); 798 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
744# endif 799# endif
745# endif 800# endif
@@ -752,13 +807,13 @@ _GL_CXXALIASWARN (strndup);
752# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 807# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2
753_GL_FUNCDECL_SYS (strndup, char *, 808_GL_FUNCDECL_SYS (strndup, char *,
754 (char const *__s, size_t __n), 809 (char const *__s, size_t __n),
755 _GL_ARG_NONNULL ((1)) 810 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 2)
756 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) 811 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE)
757 _GL_ATTRIBUTE_NOTHROW; 812 _GL_ATTRIBUTE_NOTHROW;
758# else 813# else
759_GL_FUNCDECL_SYS (strndup, char *, 814_GL_FUNCDECL_SYS (strndup, char *,
760 (char const *__s, size_t __n), 815 (char const *__s, size_t __n),
761 _GL_ARG_NONNULL ((1)) 816 _GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 2)
762 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); 817 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
763# endif 818# endif
764# endif 819# endif