From 6c6368e938c2bf15efbb35bd80927bdf03f92616 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 6 Jul 2021 15:16:15 +0200 Subject: [PATCH] basic/{time,format}-util: warn when format result is unused Now that anonymous buffers are used in almost all cases, code which does not use the return value is usually broken. --- src/basic/format-util.h | 3 ++- src/basic/macro.h | 1 + src/basic/time-util.h | 7 ++++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/basic/format-util.h b/src/basic/format-util.h index 92bb131a91..579f231897 100644 --- a/src/basic/format-util.h +++ b/src/basic/format-util.h @@ -74,8 +74,9 @@ typedef enum { #define FORMAT_BYTES_MAX 16U -char *format_bytes_full(char *buf, size_t l, uint64_t t, FormatBytesFlag flag); +char *format_bytes_full(char *buf, size_t l, uint64_t t, FormatBytesFlag flag) _warn_unused_result_; +_warn_unused_result_ static inline char *format_bytes(char *buf, size_t l, uint64_t t) { return format_bytes_full(buf, l, t, FORMAT_BYTES_USE_IEC | FORMAT_BYTES_BELOW_POINT | FORMAT_BYTES_TRAILING_B); } diff --git a/src/basic/macro.h b/src/basic/macro.h index 6507728a51..a8476184c2 100644 --- a/src/basic/macro.h +++ b/src/basic/macro.h @@ -30,6 +30,7 @@ #define _weakref_(x) __attribute__((__weakref__(#x))) #define _alignas_(x) __attribute__((__aligned__(__alignof(x)))) #define _alignptr_ __attribute__((__aligned__(sizeof(void*)))) +#define _warn_unused_result_ __attribute__((__warn_unused_result__)) #if __GNUC__ >= 7 #define _fallthrough_ __attribute__((__fallthrough__)) #else diff --git a/src/basic/time-util.h b/src/basic/time-util.h index a3f9f44797..2cb0ca2040 100644 --- a/src/basic/time-util.h +++ b/src/basic/time-util.h @@ -117,10 +117,11 @@ struct timespec* timespec_store_nsec(struct timespec *ts, nsec_t n); usec_t timeval_load(const struct timeval *tv) _pure_; struct timeval* timeval_store(struct timeval *tv, usec_t u); -char* format_timestamp_style(char *buf, size_t l, usec_t t, TimestampStyle style); -char* format_timestamp_relative(char *buf, size_t l, usec_t t); -char* format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy); +char* format_timestamp_style(char *buf, size_t l, usec_t t, TimestampStyle style) _warn_unused_result_; +char* format_timestamp_relative(char *buf, size_t l, usec_t t) _warn_unused_result_; +char* format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) _warn_unused_result_; +_warn_unused_result_ static inline char* format_timestamp(char *buf, size_t l, usec_t t) { return format_timestamp_style(buf, l, t, TIMESTAMP_PRETTY); } -- 2.25.1