]> Savannah Git Hosting - gnulib.git/commitdiff
vasprintf, c-vasprintf: Remind users to consider the return value.
authorBruno Haible <bruno@clisp.org>
Mon, 29 Jul 2024 15:31:13 +0000 (17:31 +0200)
committerBruno Haible <bruno@clisp.org>
Mon, 29 Jul 2024 15:31:13 +0000 (17:31 +0200)
* lib/stdio.in.h (aszprintf, vaszprintf, asprintf, vasprintf): Mark with
_GL_ATTRIBUTE_NODISCARD.
* lib/c-vasprintf.h (c_aszprintf, c_vaszprintf, c_asprintf,
c_vasprintf): Likewise.

ChangeLog
lib/c-vasprintf.h
lib/stdio.in.h

index c5af62ed095476f21b54bb2589b1ece71cf0520d..b5a3ccb6492efb4e4594b0fc8d8a3b7837eaf351 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2024-07-29  Bruno Haible  <bruno@clisp.org>
+
+       vasprintf, c-vasprintf: Remind users to consider the return value.
+       * lib/stdio.in.h (aszprintf, vaszprintf, asprintf, vasprintf): Mark with
+       _GL_ATTRIBUTE_NODISCARD.
+       * lib/c-vasprintf.h (c_aszprintf, c_vaszprintf, c_asprintf,
+       c_vasprintf): Likewise.
+
 2024-07-29  Bruno Haible  <bruno@clisp.org>
 
        xstrtol, xstrtoll tests: Avoid test failure after 2024-07-25 change.
index 048ecf0f629d360a45de994ae86179346d26b864..628d04fa6fe6955d18e61bd514504b383e68a80d 100644 (file)
@@ -17,7 +17,7 @@
 #ifndef _C_VASPRINTF_H
 #define _C_VASPRINTF_H
 
-/* This file uses _GL_ATTRIBUTE_FORMAT.  */
+/* This file uses _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_NODISCARD.  */
 #if !_GL_CONFIG_H_INCLUDED
  #error "Please include config.h first."
 #endif
@@ -47,8 +47,10 @@ extern "C" {
 
    Formatting takes place in the C locale, that is, the decimal point
    used in floating-point formatting directives is always '.'. */
+_GL_ATTRIBUTE_NODISCARD
 ptrdiff_t c_aszprintf (char **resultp, const char *format, ...)
        _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 3));
+_GL_ATTRIBUTE_NODISCARD
 ptrdiff_t c_vaszprintf (char **resultp, const char *format, va_list args)
        _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 0));
 
@@ -59,8 +61,10 @@ ptrdiff_t c_vaszprintf (char **resultp, const char *format, va_list args)
 
    Formatting takes place in the C locale, that is, the decimal point
    used in floating-point formatting directives is always '.'. */
+_GL_ATTRIBUTE_NODISCARD
 int c_asprintf (char **resultp, const char *format, ...)
        _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 3));
+_GL_ATTRIBUTE_NODISCARD
 int c_vasprintf (char **resultp, const char *format, va_list args)
        _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 0));
 
index 38572382d46f8dea55d1ef5a68088f39a7e47386..4ea4e3cc16f6d1360606861caed658b269f85d51 100644 (file)
@@ -64,8 +64,8 @@
 #define _@GUARD_PREFIX@_STDIO_H
 
 /* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_FORMAT,
-   _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_NOTHROW, GNULIB_POSIXCHECK,
-   HAVE_RAW_DECL_*.  */
+   _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOTHROW,
+   GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
 #if !_GL_CONFIG_H_INCLUDED
  #error "Please include config.h first."
 #endif
@@ -1693,12 +1693,14 @@ _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - "
    Failure code EOVERFLOW can only occur when a width > INT_MAX is used.
    Therefore, if the format string is valid and does not use %ls/%lc
    directives nor widths, the only possible failure code is ENOMEM.  */
+_GL_ATTRIBUTE_NODISCARD
 _GL_FUNCDECL_SYS (aszprintf, ptrdiff_t,
                   (char **result, const char *format, ...)
                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
                   _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_SYS (aszprintf, ptrdiff_t,
                   (char **result, const char *format, ...));
+_GL_ATTRIBUTE_NODISCARD
 _GL_FUNCDECL_SYS (vaszprintf, ptrdiff_t,
                   (char **result, const char *format, va_list args)
                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
@@ -1717,6 +1719,7 @@ _GL_CXXALIAS_SYS (vaszprintf, ptrdiff_t,
 #   define asprintf rpl_asprintf
 #  endif
 #  define GNULIB_overrides_asprintf
+_GL_ATTRIBUTE_NODISCARD
 _GL_FUNCDECL_RPL (asprintf, int,
                   (char **result, const char *format, ...)
                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
@@ -1725,6 +1728,7 @@ _GL_CXXALIAS_RPL (asprintf, int,
                   (char **result, const char *format, ...));
 # else
 #  if !@HAVE_VASPRINTF@
+_GL_ATTRIBUTE_NODISCARD
 _GL_FUNCDECL_SYS (asprintf, int,
                   (char **result, const char *format, ...)
                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
@@ -1739,6 +1743,7 @@ _GL_CXXALIASWARN (asprintf);
 #   define vasprintf rpl_vasprintf
 #  endif
 #  define GNULIB_overrides_vasprintf 1
+_GL_ATTRIBUTE_NODISCARD
 _GL_FUNCDECL_RPL (vasprintf, int,
                   (char **result, const char *format, va_list args)
                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
@@ -1747,6 +1752,7 @@ _GL_CXXALIAS_RPL (vasprintf, int,
                   (char **result, const char *format, va_list args));
 # else
 #  if !@HAVE_VASPRINTF@
+_GL_ATTRIBUTE_NODISCARD
 _GL_FUNCDECL_SYS (vasprintf, int,
                   (char **result, const char *format, va_list args)
                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)