From b24bc2972d0a25af9bbdc1d8a6df7a62a061e5b6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?P=C3=A1draig=20Brady?= 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 , 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 ea1d24916..6b99e9228 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2011-01-05 Pádraig Brady + and Jim Meyering + + ignore-value: make ignore_value more generic; deprecate ignore_ptr + * lib/ignore-value.h: Include , 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 Eric Blake doc: regenerate INSTALL diff --git a/lib/ignore-value.h b/lib/ignore-value.h index 04d6520e0..8f60b0e60 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 . */ -/* 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 + +# 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 8d4886349..aeda1941e 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]) -- 2.11.0