PÃdraig Brady wrote: ... > Cool, thanks for doing that. > It probably needs this too: > > #ifndef __attribute__ > /* The __attribute__((__deprecated__) feature > is available in gcc versions 3.1 and later. */ > # if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1) > # define __attribute__(Spec) /* empty */ > # endif > #endif Thanks! It needed a few other tweaks, too. I'm Cc'ing bug-gnulib, now too, in case anyone there can improve on this. It's in your name, so I'll wait for an "ok" before pushing it. [ For newcomers, the quick summary is that PÃdraig found a way to unify ignore_value and ignore_ptr. Here's the context: http://marc.info/?t=129391563400002&r=1&w=2 ] >From 1e47005f2eac55ad241d17a1711895c2e6ab3f64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@xxxxxxxxxxxxxx> Date: Wed, 5 Jan 2011 12:09:52 +0100 Subject: [PATCH] ignore-value: make ignore_value more generic; deprecate ignore_ptr * lib/ignore-value.h: Include <stdint.h>, for decl of intptr_t. (ATTRIBUTE_DEPRECATED): Define. (_ignore_case): New function. (ignore_value): New macro, to replace the old function. (ignore_ptr): Arrange for any use to evoke a deprecation warning. * modules/ignore-value (Depends-on): Add stdint. --- ChangeLog | 11 +++++++++++ lib/ignore-value.h | 25 +++++++++++++++++++++---- modules/ignore-value | 1 + 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6a6198b..f068683 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2011-01-05 PÃdraig Brady <P@xxxxxxxxxxxxxx> + and Jim Meyering <meyering@xxxxxxxxxx> + + ignore-value: make ignore_value more generic; deprecate ignore_ptr + * lib/ignore-value.h: Include <stdint.h>, for decl of intptr_t. + (ATTRIBUTE_DEPRECATED): Define. + (_ignore_case): New function. + (ignore_value): New macro, to replace the old function. + (ignore_ptr): Arrange for any use to evoke a deprecation warning. + * modules/ignore-value (Depends-on): Add stdint. + 2011-01-04 Bruce Korb <address@hidden> git-version-gen: avoid a sub-shell diff --git a/lib/ignore-value.h b/lib/ignore-value.h index 04d6520..8f60b0e 100644 --- a/lib/ignore-value.h +++ b/lib/ignore-value.h @@ -15,9 +15,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* Written by Jim Meyering. */ +/* Written by Jim Meyering and PÃdraig Brady. */ -/* Use these functions to avoid a warning when using a function declared with +/* Use "ignore_value" to avoid a warning when using a function declared with gcc's warn_unused_result attribute, but for which you really do want to ignore the result. Traditionally, people have used a "(void)" cast to indicate that a function's return value is deliberately unused. However, @@ -35,8 +35,25 @@ #ifndef _GL_IGNORE_VALUE_H # define _GL_IGNORE_VALUE_H -static inline void ignore_value (int i) { (void) i; } -static inline void ignore_ptr (void* p) { (void) p; } +# include <stdint.h> + +# ifndef ATTRIBUTE_DEPRECATED +/* The __attribute__((__deprecated__)) feature + is available in gcc versions 3.1 and newer. */ +# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1) +# define ATTRIBUTE_DEPRECATED /* empty */ +# else +# define ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) +# endif +# endif + +static inline void _ignore_value (intptr_t p) { (void) p; } +# define ignore_value(x) _ignore_value ((intptr_t) x) + +/* ignore_value works for both scalars and pointers; deprecate ignore_ptr. */ +static inline void ATTRIBUTE_DEPRECATED +ignore_ptr (void *p) { (void) p; } /* deprecated: use ignore_value */ + /* FIXME: what about aggregate types? */ #endif diff --git a/modules/ignore-value b/modules/ignore-value index 8d48863..aeda194 100644 --- a/modules/ignore-value +++ b/modules/ignore-value @@ -5,6 +5,7 @@ Files: lib/ignore-value.h Depends-on: +stdint configure.ac: AC_REQUIRE([AC_C_INLINE]) -- 1.7.3.4 -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html