When glibc has marked a function with __attribute__ ((__warn_unused_result__)), Gnulib needs to do the same. Otherwise, in some cases, Gnulib has the effect of turning off useful warnings.
This patch does it. (I got the list of symbols by grepping for '__wur' in system with glibc 2.40 header files.) 2024-07-29 Bruno Haible <br...@clisp.org> Use attribute [[nodiscard]] wherever glibc uses __wur. * lib/malloc.in.h (memalign): Mark with _GL_ATTRIBUTE_NODISCARD. * lib/stdio.in.h (fdopen, fgets, fopen, fread, freopen, fscanf, ftell, ftello, getdelim, getline, popen, scanf, tmpfile, vfscanf, vscanf): Likewise. * lib/stdlib.in.h (aligned_alloc, atoll, calloc, canonicalize_file_name, getsubopt, malloc, mkdtemp, mkostemp, mkostemps, mkstemp, mkstemps, posix_memalign, posix_openpt, ptsname, realloc, reallocarray, realpath, rpmatch, secure_getenv): Likewise. * lib/sys_random.in.h (getrandom): Likewise. * lib/sys_stat.in.h (fchmodat): Likewise. * lib/unistd.in.h (chown, dup, faccessat, fchdir, fchownat, ftruncate, getcwd, getdomainname, getentropy, getgroups, lchown, link, linkat, pipe, pipe2, pread, pwrite, read, readlink, readlinkat, sethostname, symlink, symlinkat, truncate, ttyname_r, write): Likewise. diff --git a/lib/malloc.in.h b/lib/malloc.in.h index a08f21fb84..b02f2059c1 100644 --- a/lib/malloc.in.h +++ b/lib/malloc.in.h @@ -46,8 +46,8 @@ #ifndef _@GUARD_PREFIX@_MALLOC_H #define _@GUARD_PREFIX@_MALLOC_H -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_NOTHROW, - GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ +/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_NODISCARD, + _GL_ATTRIBUTE_NOTHROW, GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ #if !_GL_CONFIG_H_INCLUDED #error "Please include config.h first." #endif @@ -143,7 +143,8 @@ _GL_EXTERN_C void free (void *); # endif _GL_FUNCDECL_RPL (memalign, void *, (size_t alignment, size_t size) - _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (memalign, void *, (size_t alignment, size_t size)); # else # if @HAVE_MEMALIGN@ @@ -153,11 +154,13 @@ _GL_CXXALIAS_RPL (memalign, void *, (size_t alignment, size_t size)); _GL_FUNCDECL_SYS (memalign, void *, (size_t alignment, size_t size) _GL_ATTRIBUTE_NOTHROW - _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); # else _GL_FUNCDECL_SYS (memalign, void *, (size_t alignment, size_t size) - _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); # endif # endif _GL_CXXALIAS_SYS (memalign, void *, (size_t alignment, size_t size)); diff --git a/lib/stdio.in.h b/lib/stdio.in.h index 9d794102ed..3f35dc7ea0 100644 --- a/lib/stdio.in.h +++ b/lib/stdio.in.h @@ -382,7 +382,8 @@ _GL_CXXALIASWARN (fcloseall); _GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode) _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC); + _GL_ATTRIBUTE_MALLOC + _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -398,12 +399,14 @@ _GL_FUNCDECL_SYS (fdopen, FILE *, (int fd, const char *mode) _GL_ATTRIBUTE_NOTHROW _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC); + _GL_ATTRIBUTE_MALLOC + _GL_ATTRIBUTE_NODISCARD); # else _GL_FUNCDECL_SYS (fdopen, FILE *, (int fd, const char *mode) _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC); + _GL_ATTRIBUTE_MALLOC + _GL_ATTRIBUTE_NODISCARD); # endif # endif _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); @@ -497,7 +500,7 @@ _GL_CXXALIASWARN (fgetc); # endif _GL_FUNCDECL_RPL (fgets, char *, (char *restrict s, int n, FILE *restrict stream) - _GL_ARG_NONNULL ((1, 3))); + _GL_ARG_NONNULL ((1, 3)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (fgets, char *, (char *restrict s, int n, FILE *restrict stream)); # else @@ -535,7 +538,7 @@ _GL_CXXALIASWARN (fileno); _GL_FUNCDECL_RPL (fopen, FILE *, (const char *restrict filename, const char *restrict mode) _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (fopen, FILE *, (const char *restrict filename, const char *restrict mode)); # else @@ -543,7 +546,8 @@ _GL_CXXALIAS_RPL (fopen, FILE *, /* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ _GL_FUNCDECL_SYS (fopen, FILE *, (const char *restrict filename, const char *restrict mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) + _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (fopen, FILE *, (const char *restrict filename, const char *restrict mode)); @@ -696,7 +700,7 @@ _GL_CXXALIASWARN (fputs); _GL_FUNCDECL_RPL (fread, size_t, (void *restrict ptr, size_t s, size_t n, FILE *restrict stream) - _GL_ARG_NONNULL ((4))); + _GL_ARG_NONNULL ((4)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (fread, size_t, (void *restrict ptr, size_t s, size_t n, FILE *restrict stream)); @@ -719,7 +723,7 @@ _GL_CXXALIASWARN (fread); _GL_FUNCDECL_RPL (freopen, FILE *, (const char *restrict filename, const char *restrict mode, FILE *restrict stream) - _GL_ARG_NONNULL ((2, 3))); + _GL_ARG_NONNULL ((2, 3)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (freopen, FILE *, (const char *restrict filename, const char *restrict mode, FILE *restrict stream)); @@ -748,7 +752,7 @@ _GL_WARN_ON_USE (freopen, _GL_FUNCDECL_RPL (fscanf, int, (FILE *restrict stream, const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) - _GL_ARG_NONNULL ((1, 2))); + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (fscanf, int, (FILE *restrict stream, const char *restrict format, ...)); # else @@ -868,7 +872,8 @@ _GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " # undef ftell # define ftell rpl_ftell # endif -_GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_RPL (ftell, long, (FILE *fp) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); # else _GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); @@ -888,11 +893,13 @@ _GL_CXXALIASWARN (ftell); # undef ftello # define ftello rpl_ftello # endif -_GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); # else # if ! @HAVE_DECL_FTELLO@ -_GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); # endif @@ -1011,7 +1018,7 @@ _GL_FUNCDECL_RPL (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, FILE *restrict stream) - _GL_ARG_NONNULL ((1, 2, 4))); + _GL_ARG_NONNULL ((1, 2, 4)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, @@ -1022,7 +1029,7 @@ _GL_FUNCDECL_SYS (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, int delimiter, FILE *restrict stream) - _GL_ARG_NONNULL ((1, 2, 4))); + _GL_ARG_NONNULL ((1, 2, 4)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (getdelim, ssize_t, (char **restrict lineptr, size_t *restrict linesize, @@ -1055,7 +1062,7 @@ _GL_WARN_ON_USE (getdelim, "getdelim is unportable - " _GL_FUNCDECL_RPL (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream) - _GL_ARG_NONNULL ((1, 2, 3))); + _GL_ARG_NONNULL ((1, 2, 3)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream)); @@ -1064,7 +1071,7 @@ _GL_CXXALIAS_RPL (getline, ssize_t, _GL_FUNCDECL_SYS (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, FILE *restrict stream) - _GL_ARG_NONNULL ((1, 2, 3))); + _GL_ARG_NONNULL ((1, 2, 3)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (getline, ssize_t, (char **restrict lineptr, size_t *restrict linesize, @@ -1236,14 +1243,14 @@ _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " _GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1) - _GL_ATTRIBUTE_MALLOC); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); # else # if !@HAVE_POPEN@ || __GNUC__ >= 11 _GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1) - _GL_ATTRIBUTE_MALLOC); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); # endif @@ -1494,7 +1501,7 @@ _GL_FUNCDECL_RPL_1 (__scanf__, int, __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -1503,7 +1510,7 @@ _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...)); # endif _GL_FUNCDECL_RPL (scanf, int, (const char *restrict format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (scanf, int, (const char *restrict format, ...)); # endif # else @@ -1654,14 +1661,16 @@ _GL_CXXALIASWARN (tempnam); # endif _GL_FUNCDECL_RPL (tmpfile, FILE *, (void) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC); + _GL_ATTRIBUTE_MALLOC + _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); # else # if __GNUC__ >= 11 /* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ _GL_FUNCDECL_SYS (tmpfile, FILE *, (void) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC); + _GL_ATTRIBUTE_MALLOC + _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); # endif @@ -1893,7 +1902,7 @@ _GL_FUNCDECL_RPL (vfscanf, int, (FILE *restrict stream, const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) - _GL_ARG_NONNULL ((1, 2))); + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (vfscanf, int, (FILE *restrict stream, const char *restrict format, va_list args)); @@ -1971,7 +1980,7 @@ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " # endif _GL_FUNCDECL_RPL (vscanf, int, (const char *restrict format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (vscanf, int, (const char *restrict format, va_list args)); # else _GL_CXXALIAS_SYS (vscanf, int, (const char *restrict format, va_list args)); diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h index 29a48e86ae..affcbb8e26 100644 --- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -51,8 +51,8 @@ #define _@GUARD_PREFIX@_STDLIB_H /* This file uses _Noreturn, _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, - HAVE_RAW_DECL_*. */ + _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PURE, + GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ #if !_GL_CONFIG_H_INCLUDED #error "Please include config.h first." #endif @@ -295,7 +295,8 @@ _GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - " # endif _GL_FUNCDECL_RPL (aligned_alloc, void *, (size_t alignment, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size)); # else # if @HAVE_ALIGNED_ALLOC@ @@ -305,11 +306,13 @@ _GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size)); _GL_FUNCDECL_SYS (aligned_alloc, void *, (size_t alignment, size_t size) _GL_ATTRIBUTE_NOTHROW - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); # else _GL_FUNCDECL_SYS (aligned_alloc, void *, (size_t alignment, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); # endif # endif _GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size)); @@ -345,9 +348,10 @@ _GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - " /* Parse a signed decimal integer. Returns the value of the integer. Errors are not detected. */ # if !@HAVE_ATOLL@ -_GL_FUNCDECL_SYS (atoll, long long, (const char *string) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (atoll, long long, + (const char *string) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (atoll, long long, (const char *string)); _GL_CXXALIASWARN (atoll); @@ -368,7 +372,8 @@ _GL_WARN_ON_USE (atoll, "atoll is unportable - " # endif _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); # else # if __GNUC__ >= 11 @@ -377,11 +382,13 @@ _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); _GL_FUNCDECL_SYS (calloc, void *, (size_t nmemb, size_t size) _GL_ATTRIBUTE_NOTHROW - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); # else _GL_FUNCDECL_SYS (calloc, void *, (size_t nmemb, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); # endif # endif _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); @@ -419,7 +426,8 @@ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); # else # if !@HAVE_CANONICALIZE_FILE_NAME@ || __GNUC__ >= 11 @@ -428,12 +436,14 @@ _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) _GL_ATTRIBUTE_NOTHROW _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); # else _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); # endif # endif _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); @@ -622,14 +632,14 @@ _GL_WARN_ON_USE (getprogname, "getprogname is unportable - " # endif _GL_FUNCDECL_RPL (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) - _GL_ARG_NONNULL ((1, 2, 3))); + _GL_ARG_NONNULL ((1, 2, 3)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (getsubopt, int, (char **optionp, char *const *tokens, char **valuep)); # else # if !@HAVE_GETSUBOPT@ _GL_FUNCDECL_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) - _GL_ARG_NONNULL ((1, 2, 3))); + _GL_ARG_NONNULL ((1, 2, 3)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep)); @@ -675,7 +685,8 @@ _GL_WARN_ON_USE (grantpt, "grantpt is not portable - " # endif _GL_FUNCDECL_RPL (malloc, void *, (size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); # else # if __GNUC__ >= 11 @@ -684,11 +695,13 @@ _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); _GL_FUNCDECL_SYS (malloc, void *, (size_t size) _GL_ATTRIBUTE_NOTHROW - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); # else _GL_FUNCDECL_SYS (malloc, void *, (size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_NODISCARD); # endif # endif _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); @@ -800,7 +813,9 @@ _GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - " Returns TEMPLATE, or a null pointer if it cannot get a unique name. The directory is created mode 700. */ # if !@HAVE_MKDTEMP@ -_GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (mkdtemp, char *, + (char * /*template*/) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); _GL_CXXALIASWARN (mkdtemp); @@ -831,12 +846,12 @@ _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " # define mkostemp rpl_mkostemp # endif _GL_FUNCDECL_RPL (mkostemp, int, (char * /*template*/, int /*flags*/) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (mkostemp, int, (char * /*template*/, int /*flags*/)); # else # if !@HAVE_MKOSTEMP@ _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); # endif @@ -872,14 +887,14 @@ _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " # endif _GL_FUNCDECL_RPL (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/)); # else # if !@HAVE_MKOSTEMPS@ _GL_FUNCDECL_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/)); @@ -909,11 +924,13 @@ _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkstemp rpl_mkstemp # endif -_GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); # else # if ! @HAVE_MKSTEMP@ -_GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); # endif @@ -939,7 +956,7 @@ _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " set. */ # if !@HAVE_MKSTEMPS@ _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); _GL_CXXALIASWARN (mkstemps); @@ -976,7 +993,7 @@ _GL_CXXALIASWARN (mktemp); # endif _GL_FUNCDECL_RPL (posix_memalign, int, (void **memptr, size_t alignment, size_t size) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (posix_memalign, int, (void **memptr, size_t alignment, size_t size)); # else @@ -1004,11 +1021,11 @@ _GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - " # undef posix_openpt # define posix_openpt rpl_posix_openpt # endif -_GL_FUNCDECL_RPL (posix_openpt, int, (int flags)); +_GL_FUNCDECL_RPL (posix_openpt, int, (int flags) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (posix_openpt, int, (int flags)); # else # if !@HAVE_POSIX_OPENPT@ -_GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); +_GL_FUNCDECL_SYS (posix_openpt, int, (int flags) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); # endif @@ -1031,11 +1048,11 @@ _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " # undef ptsname # define ptsname rpl_ptsname # endif -_GL_FUNCDECL_RPL (ptsname, char *, (int fd)); +_GL_FUNCDECL_RPL (ptsname, char *, (int fd) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (ptsname, char *, (int fd)); # else # if !@HAVE_PTSNAME@ -_GL_FUNCDECL_SYS (ptsname, char *, (int fd)); +_GL_FUNCDECL_SYS (ptsname, char *, (int fd) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (ptsname, char *, (int fd)); # endif @@ -1436,8 +1453,9 @@ _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " # undef realloc # define realloc rpl_realloc # endif -_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size) - _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_FUNCDECL_RPL (realloc, void *, + (void *ptr, size_t size) + _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); # else # if __GNUC__ >= 11 @@ -1446,11 +1464,11 @@ _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); _GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) _GL_ATTRIBUTE_NOTHROW - _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_NODISCARD); # else _GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) - _GL_ATTRIBUTE_DEALLOC_FREE); + _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_NODISCARD); # endif # endif _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); @@ -1488,13 +1506,15 @@ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " # define reallocarray rpl_reallocarray # endif _GL_FUNCDECL_RPL (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); + (void *ptr, size_t nmemb, size_t size) + _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); # else # if ! @HAVE_REALLOCARRAY@ _GL_FUNCDECL_SYS (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); + (void *ptr, size_t nmemb, size_t size) + _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); @@ -1517,14 +1537,14 @@ _GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - " # endif _GL_FUNCDECL_RPL (realpath, char *, (const char *restrict name, char *restrict resolved) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (realpath, char *, (const char *restrict name, char *restrict resolved)); # else # if !@HAVE_REALPATH@ _GL_FUNCDECL_SYS (realpath, char *, (const char *restrict name, char *restrict resolved) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (realpath, char *, (const char *restrict name, char *restrict resolved)); @@ -1542,7 +1562,8 @@ _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " /* Test a user response to a question. Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ # if !@HAVE_RPMATCH@ -_GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (rpmatch, int, (const char *response) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); _GL_CXXALIASWARN (rpmatch); @@ -1558,7 +1579,8 @@ _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " /* Look up NAME in the environment, returning 0 in insecure situations. */ # if !@HAVE_SECURE_GETENV@ _GL_FUNCDECL_SYS (secure_getenv, char *, - (char const *name) _GL_ARG_NONNULL ((1))); + (char const *name) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); _GL_CXXALIASWARN (secure_getenv); diff --git a/lib/sys_random.in.h b/lib/sys_random.in.h index 22f67b1763..9badae6114 100644 --- a/lib/sys_random.in.h +++ b/lib/sys_random.in.h @@ -45,7 +45,8 @@ #ifndef _@GUARD_PREFIX@_SYS_RANDOM_H #define _@GUARD_PREFIX@_SYS_RANDOM_H -/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ +/* This file uses _GL_ATTRIBUTE_NODISCARD, GNULIB_POSIXCHECK, + HAVE_RAW_DECL_*. */ #if !_GL_CONFIG_H_INCLUDED #error "Please include config.h first." #endif @@ -77,14 +78,14 @@ # endif _GL_FUNCDECL_RPL (getrandom, ssize_t, (void *buffer, size_t length, unsigned int flags) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (getrandom, ssize_t, (void *buffer, size_t length, unsigned int flags)); # else # if !@HAVE_GETRANDOM@ _GL_FUNCDECL_SYS (getrandom, ssize_t, (void *buffer, size_t length, unsigned int flags) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (getrandom, ssize_t, (void *buffer, size_t length, unsigned int flags)); diff --git a/lib/sys_stat.in.h b/lib/sys_stat.in.h index 1e82399c87..1c41dddeac 100644 --- a/lib/sys_stat.in.h +++ b/lib/sys_stat.in.h @@ -55,7 +55,8 @@ #ifndef _@GUARD_PREFIX@_SYS_STAT_H #define _@GUARD_PREFIX@_SYS_STAT_H -/* This file uses _GL_ATTRIBUTE_NOTHROW, GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ +/* This file uses _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOTHROW, + GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ #if !_GL_CONFIG_H_INCLUDED #error "Please include config.h first." #endif @@ -481,14 +482,14 @@ _GL_CXXALIASWARN (chmod); # endif _GL_FUNCDECL_RPL (fchmodat, int, (int fd, char const *file, mode_t mode, int flag) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (fchmodat, int, (int fd, char const *file, mode_t mode, int flag)); # else # if !@HAVE_FCHMODAT@ _GL_FUNCDECL_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag)); diff --git a/lib/unistd.in.h b/lib/unistd.in.h index ae92587b6d..0e13cdcf6f 100644 --- a/lib/unistd.in.h +++ b/lib/unistd.in.h @@ -69,8 +69,8 @@ #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H #define _@GUARD_PREFIX@_UNISTD_H -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, GNULIB_POSIXCHECK, - HAVE_RAW_DECL_*. */ +/* This file uses _GL_ATTRIBUTE_NODISCARD, _GL_INLINE_HEADER_BEGIN, _GL_INLINE, + GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ #if !_GL_CONFIG_H_INCLUDED #error "Please include config.h first." #endif @@ -372,12 +372,12 @@ _GL_CXXALIASWARN (chdir); # define chown rpl_chown # endif _GL_FUNCDECL_RPL (chown, int, (const char *file, uid_t uid, gid_t gid) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (chown, int, (const char *file, uid_t uid, gid_t gid)); # else # if !@HAVE_CHOWN@ _GL_FUNCDECL_SYS (chown, int, (const char *file, uid_t uid, gid_t gid) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid)); # endif @@ -476,7 +476,7 @@ _GL_WARN_ON_USE (copy_file_range, # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup rpl_dup # endif -_GL_FUNCDECL_RPL (dup, int, (int oldfd)); +_GL_FUNCDECL_RPL (dup, int, (int oldfd) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (dup, int, (int oldfd)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -944,14 +944,14 @@ _GL_CXXALIASWARN (execvpe); # endif _GL_FUNCDECL_RPL (faccessat, int, (int fd, char const *name, int mode, int flag) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (faccessat, int, (int fd, char const *name, int mode, int flag)); # else # if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); @@ -979,11 +979,11 @@ _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " # undef fchdir # define fchdir rpl_fchdir # endif -_GL_FUNCDECL_RPL (fchdir, int, (int /*fd*/)); +_GL_FUNCDECL_RPL (fchdir, int, (int /*fd*/) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (fchdir, int, (int /*fd*/)); # else # if !@HAVE_FCHDIR@ || !@HAVE_DECL_FCHDIR@ -_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); +_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); # endif @@ -1013,14 +1013,14 @@ _GL_WARN_ON_USE (fchdir, "fchdir is unportable - " # endif _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # else # if !@HAVE_FCHOWNAT@ _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); @@ -1094,13 +1094,17 @@ _GL_WARN_ON_USE (fsync, "fsync is unportable - " # undef ftruncate # define ftruncate rpl_ftruncate # endif -_GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); -_GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); +_GL_FUNCDECL_RPL (ftruncate, int, + (int fd, off_t length) _GL_ATTRIBUTE_NODISCARD); +_GL_CXXALIAS_RPL (ftruncate, int, + (int fd, off_t length)); # else # if !@HAVE_FTRUNCATE@ -_GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); +_GL_FUNCDECL_SYS (ftruncate, int, + (int fd, off_t length) _GL_ATTRIBUTE_NODISCARD); # endif -_GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); +_GL_CXXALIAS_SYS (ftruncate, int, + (int fd, off_t length)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (ftruncate); @@ -1129,7 +1133,8 @@ _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getcwd rpl_getcwd # endif -_GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); +_GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size) + _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -1184,15 +1189,19 @@ _GL_CXXALIASWARN (getcwd); # undef getdomainname # define getdomainname rpl_getdomainname # endif -_GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); +_GL_FUNCDECL_RPL (getdomainname, int, + (char *name, size_t len) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); +_GL_CXXALIAS_RPL (getdomainname, int, + (char *name, size_t len)); # else # if !@HAVE_DECL_GETDOMAINNAME@ -_GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) - _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (getdomainname, int, + (char *name, size_t len) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif -_GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); +_GL_CXXALIAS_SYS (getdomainname, int, + (char *name, size_t len)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getdomainname); @@ -1241,13 +1250,17 @@ _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " # undef getentropy # define getentropy rpl_getentropy # endif -_GL_FUNCDECL_RPL (getentropy, int, (void *buffer, size_t length)); -_GL_CXXALIAS_RPL (getentropy, int, (void *buffer, size_t length)); +_GL_FUNCDECL_RPL (getentropy, int, + (void *buffer, size_t length) _GL_ATTRIBUTE_NODISCARD); +_GL_CXXALIAS_RPL (getentropy, int, + (void *buffer, size_t length)); # else # if !@HAVE_GETENTROPY@ -_GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length)); +_GL_FUNCDECL_SYS (getentropy, int, + (void *buffer, size_t length) _GL_ATTRIBUTE_NODISCARD); # endif -_GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length)); +_GL_CXXALIAS_SYS (getentropy, int, + (void *buffer, size_t length)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (getentropy); @@ -1272,13 +1285,17 @@ _GL_WARN_ON_USE (getentropy, "getentropy is unportable - " # undef getgroups # define getgroups rpl_getgroups # endif -_GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); -_GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); +_GL_FUNCDECL_RPL (getgroups, int, + (int n, gid_t *groups) _GL_ATTRIBUTE_NODISCARD); +_GL_CXXALIAS_RPL (getgroups, int, + (int n, gid_t *groups)); # else # if !@HAVE_GETGROUPS@ -_GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); +_GL_FUNCDECL_SYS (getgroups, int, + (int n, gid_t *groups) _GL_ATTRIBUTE_NODISCARD); # endif -_GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); +_GL_CXXALIAS_SYS (getgroups, int, + (int n, gid_t *groups)); # endif _GL_CXXALIASWARN (getgroups); #elif defined GNULIB_POSIXCHECK @@ -1679,12 +1696,12 @@ _GL_CXXALIASWARN (isatty); # define lchown rpl_lchown # endif _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); # else # if !@HAVE_LCHOWN@ _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); # endif @@ -1708,12 +1725,12 @@ _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " # define link rpl_link # endif _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) - _GL_ARG_NONNULL ((1, 2))); + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); # else # if !@HAVE_LINK@ _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) - _GL_ARG_NONNULL ((1, 2))); + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); # endif @@ -1739,7 +1756,7 @@ _GL_WARN_ON_USE (link, "link is unportable - " _GL_FUNCDECL_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) - _GL_ARG_NONNULL ((2, 4))); + _GL_ARG_NONNULL ((2, 4)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); @@ -1748,7 +1765,7 @@ _GL_CXXALIAS_RPL (linkat, int, _GL_FUNCDECL_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) - _GL_ARG_NONNULL ((2, 4))); + _GL_ARG_NONNULL ((2, 4)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, @@ -1815,7 +1832,8 @@ _GL_CXXALIASWARN (lseek); Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. */ # if !@HAVE_PIPE@ -_GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (pipe, int, (int fd[2]) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (pipe, int, (int fd[2])); _GL_CXXALIASWARN (pipe); @@ -1842,10 +1860,12 @@ _GL_WARN_ON_USE (pipe, "pipe is unportable - " # undef pipe2 # define pipe2 rpl_pipe2 # endif -_GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); # else -_GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); # endif # if __GLIBC__ >= 2 @@ -1873,14 +1893,14 @@ _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " # endif _GL_FUNCDECL_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PREAD@ _GL_FUNCDECL_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); @@ -1910,14 +1930,14 @@ _GL_WARN_ON_USE (pread, "pread is unportable - " # endif _GL_FUNCDECL_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PWRITE@ _GL_FUNCDECL_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); @@ -1943,8 +1963,9 @@ _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " # undef read # define read rpl_read # endif + _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) - _GL_ARG_NONNULL ((2))); + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) @@ -1986,7 +2007,7 @@ _GL_CXXALIASWARN (read); _GL_FUNCDECL_RPL (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize) - _GL_ARG_NONNULL ((1, 2))); + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize)); @@ -1995,7 +2016,7 @@ _GL_CXXALIAS_RPL (readlink, ssize_t, _GL_FUNCDECL_SYS (readlink, ssize_t, (const char *restrict file, char *restrict buf, size_t bufsize) - _GL_ARG_NONNULL ((1, 2))); + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (readlink, ssize_t, (const char *restrict file, @@ -2019,7 +2040,7 @@ _GL_WARN_ON_USE (readlink, "readlink is unportable - " _GL_FUNCDECL_RPL (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len) - _GL_ARG_NONNULL ((2, 3))); + _GL_ARG_NONNULL ((2, 3)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len)); @@ -2028,7 +2049,7 @@ _GL_CXXALIAS_RPL (readlinkat, ssize_t, _GL_FUNCDECL_SYS (readlinkat, ssize_t, (int fd, char const *restrict file, char *restrict buf, size_t len) - _GL_ARG_NONNULL ((2, 3))); + _GL_ARG_NONNULL ((2, 3)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (readlinkat, ssize_t, (int fd, char const *restrict file, @@ -2101,18 +2122,22 @@ _GL_CXXALIASWARN (rmdir); # undef sethostname # define sethostname rpl_sethostname # endif -_GL_FUNCDECL_RPL (sethostname, int, (const char *name, size_t len) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (sethostname, int, (const char *name, size_t len)); +_GL_FUNCDECL_RPL (sethostname, int, + (const char *name, size_t len) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); +_GL_CXXALIAS_RPL (sethostname, int, + (const char *name, size_t len)); # else # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ -_GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) - _GL_ARG_NONNULL ((1))); +_GL_FUNCDECL_SYS (sethostname, int, + (const char *name, size_t len) + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 and FreeBSD 6.4 the second parameter is int. On Solaris 11 2011-10, the first parameter is not const. */ -_GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); +_GL_CXXALIAS_SYS_CAST (sethostname, int, + (const char *name, size_t len)); # endif # if __GLIBC__ >= 2 _GL_CXXALIASWARN (sethostname); @@ -2185,15 +2210,19 @@ _GL_CXXALIASWARN (swab); # undef symlink # define symlink rpl_symlink # endif -_GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); +_GL_FUNCDECL_RPL (symlink, int, + (char const *contents, char const *file) + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); +_GL_CXXALIAS_RPL (symlink, int, + (char const *contents, char const *file)); # else # if !@HAVE_SYMLINK@ -_GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) - _GL_ARG_NONNULL ((1, 2))); +_GL_FUNCDECL_SYS (symlink, int, + (char const *contents, char const *file) + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); # endif -_GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); +_GL_CXXALIAS_SYS (symlink, int, + (char const *contents, char const *file)); # endif _GL_CXXALIASWARN (symlink); #elif defined GNULIB_POSIXCHECK @@ -2213,14 +2242,14 @@ _GL_WARN_ON_USE (symlink, "symlink is not portable - " # endif _GL_FUNCDECL_RPL (symlinkat, int, (char const *contents, int fd, char const *file) - _GL_ARG_NONNULL ((1, 3))); + _GL_ARG_NONNULL ((1, 3)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (symlinkat, int, (char const *contents, int fd, char const *file)); # else # if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) - _GL_ARG_NONNULL ((1, 3))); + _GL_ARG_NONNULL ((1, 3)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); @@ -2248,12 +2277,12 @@ _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " # define truncate rpl_truncate # endif _GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); # else # if !@HAVE_DECL_TRUNCATE@ _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length)); # endif @@ -2278,13 +2307,15 @@ _GL_WARN_ON_USE (truncate, "truncate is unportable - " # define ttyname_r rpl_ttyname_r # endif _GL_FUNCDECL_RPL (ttyname_r, int, - (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); + (int fd, char *buf, size_t buflen) + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); _GL_CXXALIAS_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen)); # else # if !@HAVE_DECL_TTYNAME_R@ _GL_FUNCDECL_SYS (ttyname_r, int, - (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); + (int fd, char *buf, size_t buflen) + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); # endif _GL_CXXALIAS_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen)); @@ -2407,17 +2438,21 @@ _GL_WARN_ON_USE (usleep, "usleep is unportable - " # undef write # define write rpl_write # endif -_GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); +_GL_FUNCDECL_RPL (write, ssize_t, + (int fd, const void *buf, size_t count) + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); +_GL_CXXALIAS_RPL (write, ssize_t, + (int fd, const void *buf, size_t count)); # elif defined _WIN32 && !defined __CYGWIN__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write _write # endif -_GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, size_t count)); +_GL_CXXALIAS_MDA (write, ssize_t, + (int fd, const void *buf, size_t count)); # else -_GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); +_GL_CXXALIAS_SYS (write, ssize_t, + (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #elif @GNULIB_MDA_WRITE@ @@ -2429,9 +2464,11 @@ _GL_CXXALIASWARN (write); # undef write # define write _write # endif -_GL_CXXALIAS_MDA_CAST (write, ssize_t, (int fd, const void *buf, unsigned int count)); +_GL_CXXALIAS_MDA_CAST (write, ssize_t, + (int fd, const void *buf, unsigned int count)); # else -_GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); +_GL_CXXALIAS_SYS (write, ssize_t, + (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #endif