From ab9891e763c3fbb71dfba1b2cdf0a27077a2ac04 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 10 Dec 2021 21:17:19 +0100 Subject: Add function attributes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- liberror-libc.h | 59 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/liberror-libc.h b/liberror-libc.h index 108ac19..fad436b 100644 --- a/liberror-libc.h +++ b/liberror-libc.h @@ -7,6 +7,16 @@ #include +#if defined(__GNUC__) +# define _LIBERROR_GCC_ONLY(...) __VA_ARGS__ +#else +# define _LIBERROR_GCC_ONLY(...) +#endif + +#define _LIBERROR_WUR _LIBERROR_GCC_ONLY(__attribute__((__warn_unused_result__))) +#define _LIBERROR_MALLOC _LIBERROR_GCC_ONLY(__attribute__((__malloc__))) + + #define LIBERROR_LIBC_ERRROR_SHORT_READ -1 #define LIBERROR_LIBC_ERRROR_SHORT_SEEK -2 #define LIBERROR_LIBC_ERRROR_SHORT_WRITE -3 @@ -16,51 +26,52 @@ typedef int64_t _liberror_off_t; typedef uint64_t _liberror_uoff_t; -int liberror_abs(int); +_LIBERROR_WUR int liberror_abs(int); void liberror_abs_failed(int); -/* void *liberror_aligned_alloc(size_t, size_t); TODO */ -void *liberror_calloc(size_t, size_t); +/* _LIBERROR_WUR _LIBERROR_MALLOC void *liberror_aligned_alloc(size_t, size_t); TODO */ +_LIBERROR_WUR _LIBERROR_MALLOC void *liberror_calloc(size_t, size_t); void liberror_calloc_failed(size_t, size_t); -int liberror_chdir(const char *); +_LIBERROR_WUR int liberror_chdir(const char *); void liberror_chdir_failed(const char *); -intmax_t liberror_imaxabs(intmax_t); +_LIBERROR_WUR intmax_t liberror_imaxabs(intmax_t); void liberror_imaxabs_failed(intmax_t); -long int liberror_labs(long int); +_LIBERROR_WUR long int liberror_labs(long int); void liberror_labs_failed(long int); -long long int liberror_llabs(long long int); +_LIBERROR_WUR long long int liberror_llabs(long long int); void liberror_llabs_failed(long long int); -_liberror_off_t liberror_lseek(int, _liberror_off_t, int, const char *); -_liberror_off_t liberror_lseek_require(int, _liberror_off_t, int, _liberror_uoff_t min, _liberror_uoff_t max, const char *); +_LIBERROR_WUR _liberror_off_t liberror_lseek(int, _liberror_off_t, int, const char *); +_LIBERROR_WUR _liberror_off_t liberror_lseek_require(int, _liberror_off_t, int, _liberror_uoff_t min, + _liberror_uoff_t max, const char *); void liberror_lseek_failed(int, _liberror_off_t, int, const char *); void liberror_lseek_short(int, _liberror_off_t, int, _liberror_uoff_t min, _liberror_uoff_t max, _liberror_off_t returned, const char *); -void *liberror_malloc(size_t); +_LIBERROR_WUR _LIBERROR_MALLOC void *liberror_malloc(size_t); void liberror_malloc_failed(size_t); -int liberror_pipe(int[2]); +_LIBERROR_WUR int liberror_pipe(int[2]); void liberror_pipe_failed(int[2]); -int liberror_putenv(char *); +_LIBERROR_WUR int liberror_putenv(char *); void liberror_putenv_failed(char *); -int liberror_raise(int); +_LIBERROR_WUR int liberror_raise(int); void liberror_raise_failed(int); -void *liberror_realloc(void *, size_t); +_LIBERROR_WUR void *liberror_realloc(void *, size_t); void liberror_realloc_failed(void *, size_t); -ssize_t liberror_recv(int, void *, size_t, int, const char *); -ssize_t liberror_recv_require(int, void *, size_t, int, size_t min, size_t max, const char *); +_LIBERROR_WUR ssize_t liberror_recv(int, void *, size_t, int, const char *); +_LIBERROR_WUR ssize_t liberror_recv_require(int, void *, size_t, int, size_t min, size_t max, const char *); void liberror_recv_failed(int, void *, size_t, int, const char *); void liberror_recv_short(int, void *, size_t, int, size_t min, size_t max, ssize_t returned, const char *); -/* void *liberror_posix_memalign(void **, size_t, size_t); TODO */ -ssize_t liberror_send(int, const void *, size_t, int, const char *); -ssize_t liberror_send_require(int, const void *, size_t, int, size_t min, size_t max, const char *); +/* _LIBERROR_WUR void *liberror_posix_memalign(void **, size_t, size_t); TODO */ +_LIBERROR_WUR ssize_t liberror_send(int, const void *, size_t, int, const char *); +_LIBERROR_WUR ssize_t liberror_send_require(int, const void *, size_t, int, size_t min, size_t max, const char *); void liberror_send_failed(int, const void *, size_t, int, const char *); void liberror_send_short(int, const void *, size_t, int, size_t min, size_t max, ssize_t returned, const char *); -int liberror_setenv(const char *, const char *, int); -int liberror_shutdown(int, int, const char *); +_LIBERROR_WUR int liberror_setenv(const char *, const char *, int); +_LIBERROR_WUR int liberror_shutdown(int, int, const char *); void liberror_shutdown_failed(int, int, const char *); -int liberror_sockatmark(int, const char *); +_LIBERROR_WUR int liberror_sockatmark(int, const char *); void liberror_sockatmark_failed(int, const char *); -char *liberror_strdup(const char *); +_LIBERROR_WUR _LIBERROR_MALLOC char *liberror_strdup(const char *); void liberror_strdup_failed(const char *); -int liberror_unsetenv(const char *); +_LIBERROR_WUR int liberror_unsetenv(const char *); void liberror_unsetenv_failed(const char *); -- cgit v1.2.3-70-g09d2