2021-08-07  Bruno Haible  <[email protected]>

        c-xvasprintf: Improve GCC 11 allocation-deallocation checking.
        * lib/c-xvasprintf.h: Include <stdlib.h>.
        (c_xasprintf, c_xvasprintf): Declare that deallocation must happen
        through 'free'.

diff --git a/lib/c-xvasprintf.h b/lib/c-xvasprintf.h
index ae48780..69e5c1b 100644
--- a/lib/c-xvasprintf.h
+++ b/lib/c-xvasprintf.h
@@ -23,6 +23,8 @@
 /* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD.  */
 #include <stdio.h>
 
+#include <stdlib.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -38,9 +40,11 @@ extern "C" {
    Formatting takes place in the C locale, that is, the decimal point
    used in floating-point formatting directives is always '.'. */
 extern char *c_xasprintf (const char *format, ...)
-       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 2));
+  _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 2))
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE 
_GL_ATTRIBUTE_RETURNS_NONNULL;
 extern char *c_xvasprintf (const char *format, va_list args)
-       _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 0));
+  _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 0))
+  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE 
_GL_ATTRIBUTE_RETURNS_NONNULL;
 
 #ifdef __cplusplus
 }


Reply via email to