+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)
#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__;