]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Add warn_unused_result attribute for memory-related functions in libiberty.
authorMartin Liska <mliska@suse.cz>
Mon, 10 Jun 2019 07:42:43 +0000 (09:42 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Mon, 10 Jun 2019 07:42:43 +0000 (07:42 +0000)
2019-06-10  Martin Liska  <mliska@suse.cz>

* ansidecl.h (ATTRIBUTE_WARN_UNUSED_RESULT): New macro.
* libiberty.h (xmalloc): Use it.
(xrealloc): Likewise.
(xcalloc): Likewise.
(xstrdup): Likewise.
(xstrndup): Likewise.
(xmemdup): Likewise.

From-SVN: r272110

include/ChangeLog
include/ansidecl.h
include/libiberty.h

index ad383426efe9db70db079ef6dc4cc36e22fd34b9..28f4664aa557d1d8ad824e57f88dd460ce44e33b 100644 (file)
@@ -1,3 +1,13 @@
+2019-06-10  Martin Liska  <mliska@suse.cz>
+
+       * ansidecl.h (ATTRIBUTE_WARN_UNUSED_RESULT): New macro.
+       * libiberty.h (xmalloc): Use it.
+       (xrealloc): Likewise.
+       (xcalloc): Likewise.
+       (xstrdup): Likewise.
+       (xstrndup): Likewise.
+       (xmemdup): Likewise.
+
 2019-06-10  Martin Liska  <mliska@suse.cz>
 
        * ansidecl.h:
index 3035c33b8aa906406aee9b5e8cdd0fc36b1c3d57..445c8c3fb583f82e6fb540e918a8fe21c5be30b8 100644 (file)
@@ -317,6 +317,15 @@ So instead we use the macro below and test it against specific values.  */
 #endif
 #endif
 
+/* Attribute `warn_unused_result' was valid as of gcc 3.3.  */
+#ifndef ATTRIBUTE_WARN_UNUSED_RESULT
+# if GCC_VERSION >= 3003
+#  define ATTRIBUTE_WARN_UNUSED_RESULT __attribute__ ((warn_unused_result))
+# else
+#  define ATTRIBUTE_WARN_UNUSED_RESULT
+# endif
+#endif
+
 /* We use __extension__ in some places to suppress -pedantic warnings
    about GCC extensions.  This feature didn't work properly before
    gcc 2.8.  */
index 0870163d945e46f099d86ffa448a14fffd9ff158..635519e088ae750f5363d667d80947be9997c528 100644 (file)
@@ -310,30 +310,30 @@ extern void xmalloc_failed (size_t) ATTRIBUTE_NORETURN;
    message to stderr (using the name set by xmalloc_set_program_name,
    if any) and then call xexit.  */
 
-extern void *xmalloc (size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_RESULT_SIZE_1;
+extern void *xmalloc (size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_RESULT_SIZE_1 ATTRIBUTE_WARN_UNUSED_RESULT;
 
 /* Reallocate memory without fail.  This works like xmalloc.  Note,
    realloc type functions are not suitable for attribute malloc since
    they may return the same address across multiple calls. */
 
-extern void *xrealloc (void *, size_t) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_RESULT_SIZE_2;
+extern void *xrealloc (void *, size_t) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_RESULT_SIZE_2 ATTRIBUTE_WARN_UNUSED_RESULT;
 
 /* Allocate memory without fail and set it to zero.  This works like
    xmalloc.  */
 
-extern void *xcalloc (size_t, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_RESULT_SIZE_1_2;
+extern void *xcalloc (size_t, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_RESULT_SIZE_1_2 ATTRIBUTE_WARN_UNUSED_RESULT;
 
 /* Copy a string into a memory buffer without fail.  */
 
-extern char *xstrdup (const char *) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
+extern char *xstrdup (const char *) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_WARN_UNUSED_RESULT;
 
 /* Copy at most N characters from string into a buffer without fail.  */
 
-extern char *xstrndup (const char *, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
+extern char *xstrndup (const char *, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_WARN_UNUSED_RESULT;
 
 /* Copy an existing memory buffer to a new memory buffer without fail.  */
 
-extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
+extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_WARN_UNUSED_RESULT;
 
 /* Physical memory routines.  Return values are in BYTES.  */
 extern double physmem_total (void);