changeset 11904:7848aae2799c

ignore-value: handle pointer types, too * lib/ignore-value.h (__attribute__): Remove definition. (ignore_value): Remove use of "__attribute__ ((unused))" in favor of a more concise and more-often effective "(void) i" statement. (ignore_ptr): New function to suppress warnings from functions that return pointers, and to make it explicit that one function doesn't handle all cases.
author Pádraig Brady <P@draigBrady.com>
date Wed, 12 Aug 2009 09:37:56 +0100
parents 74c6eda87050
children c80217bd6ec0
files ChangeLog lib/ignore-value.h
diffstat 2 files changed, 16 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2009-08-26  Pádraig Brady  <P@draigbrady.com>
+
+	ignore-value: handle pointer types, too
+	* lib/ignore-value.h (__attribute__): Remove definition.
+	(ignore_value): Remove use of "__attribute__ ((unused))" in favor
+	of a more concise and more-often effective "(void) i" statement.
+	(ignore_ptr): New function to suppress warnings from functions that
+	return pointers, and to make it explicit that one function doesn't
+	handle all cases.
+
 2009-08-25  Bruno Haible  <bruno@clisp.org>
 
 	dup2: work around a Linux bug.
--- a/lib/ignore-value.h
+++ b/lib/ignore-value.h
@@ -1,6 +1,6 @@
-/* ignore a value to quiet a compiler warning
+/* ignore a function return without a compiler warning
 
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -17,13 +17,7 @@
 
 /* Written by Jim Meyering.  */
 
-#ifndef __attribute__
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
-#  define __attribute__(x)
-# endif
-#endif
-
-/* Use this function to avoid a warning when using a function declared with
+/* Use these functions 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,
@@ -38,8 +32,6 @@
    "copy.c:233: warning: ignoring return value of 'fchown',
    declared with attribute warn_unused_result".  */
 
-static inline void
-ignore_value (int i __attribute__ ((__unused__)))
-{
-  /* empty */
-}
+static inline void ignore_value (int i) { (void) i; }
+static inline void ignore_ptr (void* p) { (void) p; }
+/* FIXME: what about aggregate types? */