From 493e1981bcdc746dbcd622a17ac65acdedf5762e Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sun, 10 Aug 2008 16:40:12 +0200 Subject: [PATCH] ensure that return value of uinttostr et al are not ignored * lib/inttostr.h (__GNUC_PREREQ): Define. (__attribute_warn_unused_result__): Define. (offtostr, imaxtostr, umaxtostr, uinttostr): Apply the attribute. --- ChangeLog | 7 +++++++ lib/inttostr.h | 25 +++++++++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8d9212256..91f110697 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-08-10 Jim Meyering + + ensure that return value of uinttostr et al are not ignored + * lib/inttostr.h (__GNUC_PREREQ): Define. + (__attribute_warn_unused_result__): Define. + (offtostr, imaxtostr, umaxtostr, uinttostr): Apply the attribute. + 2008-08-07 Paolo Bonzini * lib/lock.c (glthread_recursive_lock_init_multithreaded) diff --git a/lib/inttostr.h b/lib/inttostr.h index aa5820fd5..a103caf58 100644 --- a/lib/inttostr.h +++ b/lib/inttostr.h @@ -23,7 +23,24 @@ #include "intprops.h" -char *offtostr (off_t, char *); -char *imaxtostr (intmax_t, char *); -char *umaxtostr (uintmax_t, char *); -char *uinttostr (unsigned int, char *); +#ifndef __GNUC_PREREQ +# if defined __GNUC__ && defined __GNUC_MINOR__ +# define __GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +# else +# define __GNUC_PREREQ(maj, min) 0 +# endif +#endif + +#if __GNUC_PREREQ (3,4) +# undef __attribute_warn_unused_result__ +# define __attribute_warn_unused_result__ \ + __attribute__ ((__warn_unused_result__)) +#else +# define __attribute_warn_unused_result__ /* empty */ +#endif + +char *offtostr (off_t, char *) __attribute_warn_unused_result__; +char *imaxtostr (intmax_t, char *) __attribute_warn_unused_result__; +char *umaxtostr (uintmax_t, char *) __attribute_warn_unused_result__; +char *uinttostr (unsigned int, char *) __attribute_warn_unused_result__; -- 2.11.0