+2021-08-07 Bruno Haible <bruno@clisp.org>
+
+ argp: Improve GCC 11 allocation-deallocation checking.
+ * lib/argp-fmtstream.h (__argp_fmtstream_free, argp_fmtstream_free):
+ Move declarations up.
+ (__argp_make_fmtstream): Declare that deallocation must happen through
+ '__argp_fmtstream_free'.
+ (argp_make_fmtstream): Declare that deallocation must happen through
+ 'argp_fmtstream_free'.
+
2021-08-07 Bruno Haible <bruno@clisp.org>
areadlink, areadlinkat: Improve GCC 11 allocation-deallocation checking.
typedef struct argp_fmtstream *argp_fmtstream_t;
+/* Flush __FS to its stream, and free it (but don't close the stream). */
+extern void __argp_fmtstream_free (argp_fmtstream_t __fs);
+extern void argp_fmtstream_free (argp_fmtstream_t __fs);
+
/* Return an argp_fmtstream that outputs to STREAM, and which prefixes lines
written on it with LMARGIN spaces and limits them to RMARGIN columns
total. If WMARGIN >= 0, words that extend past RMARGIN are wrapped by
extern argp_fmtstream_t __argp_make_fmtstream (FILE *__stream,
size_t __lmargin,
size_t __rmargin,
- ssize_t __wmargin);
+ ssize_t __wmargin)
+ _GL_ATTRIBUTE_DEALLOC (__argp_fmtstream_free, 1);
extern argp_fmtstream_t argp_make_fmtstream (FILE *__stream,
size_t __lmargin,
size_t __rmargin,
- ssize_t __wmargin);
-
-/* Flush __FS to its stream, and free it (but don't close the stream). */
-extern void __argp_fmtstream_free (argp_fmtstream_t __fs);
-extern void argp_fmtstream_free (argp_fmtstream_t __fs);
+ ssize_t __wmargin)
+ _GL_ATTRIBUTE_DEALLOC (argp_fmtstream_free, 1);
extern ssize_t __argp_fmtstream_printf (argp_fmtstream_t __fs,
const char *__fmt, ...)