diff options
-rw-r--r-- | include/ChangeLog | 10 | ||||
-rw-r--r-- | include/ansidecl.h | 9 | ||||
-rw-r--r-- | include/libiberty.h | 12 |
3 files changed, 25 insertions, 6 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index ad38342..28f4664 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,5 +1,15 @@ 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: (ATTRIBUTE_RESULT_SIZE_1): Define new macro. (ATTRIBUTE_RESULT_SIZE_2): Likewise. diff --git a/include/ansidecl.h b/include/ansidecl.h index 3035c33..445c8c3 100644 --- a/include/ansidecl.h +++ b/include/ansidecl.h @@ -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. */ diff --git a/include/libiberty.h b/include/libiberty.h index 0870163..635519e 100644 --- a/include/libiberty.h +++ b/include/libiberty.h @@ -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); |