From: Zbigniew Jędrzejewski-Szmek Date: Tue, 6 Jul 2021 13:16:15 +0000 (+0200) Subject: basic/{time,format}-util: warn when format result is unused X-Git-Tag: v250-rc1~952^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6c6368e938c2bf15efbb35bd80927bdf03f92616;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/basic/format-util.h b/src/basic/format-util.h index 92bb131a91b..579f2318975 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 6507728a517..a8476184c2d 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 a3f9f44797f..2cb0ca2040d 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); }