ensure that return value of uinttostr et al are not ignored
authorJim Meyering <meyering@redhat.com>
Sun, 10 Aug 2008 14:40:12 +0000 (16:40 +0200)
committerJim Meyering <meyering@redhat.com>
Sun, 10 Aug 2008 14:40:12 +0000 (16:40 +0200)
* lib/inttostr.h (__GNUC_PREREQ): Define.
(__attribute_warn_unused_result__): Define.
(offtostr, imaxtostr, umaxtostr, uinttostr): Apply the attribute.

ChangeLog
lib/inttostr.h

index 8d92122..91f1106 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-08-10  Jim Meyering  <meyering@redhat.com>
+
+       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  <bonzini@gnu.org>
 
        * lib/lock.c (glthread_recursive_lock_init_multithreaded)
index aa5820f..a103caf 100644 (file)
 
 #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__;