While reading ignore-value.h I found that the code didn't match
the comments, so I took the liberty of changing both (!)
as described below.  Please feel free to revert if I messed up.

---
 ChangeLog          | 9 +++++++++
 lib/ignore-value.h | 8 ++++----
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 612f99a..2e99de8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2013-11-27  Paul Eggert  <egg...@cs.ucla.edu>
+
+    ignore-value: prefer GCC version back through 2.0
+    The code didn't match the comments, so I did a bit of software
+    archaeology.  GCC 2.0 seems to support __extension__ and
+    __typeof__, so fix both code and comments to use 2.0.
+    * lib/ignore-value.h (ignore_value): Use __extension__ and
+    __typeof__ for GCC 2.0 through 3.3, too.
+
 2013-11-25  Mats Erik Andersson  <g...@gisladisker.se>
 
     pty: Activate the signature wrapper of forkpty.
diff --git a/lib/ignore-value.h b/lib/ignore-value.h
index ebd6bf4..f079a06 100644
--- a/lib/ignore-value.h
+++ b/lib/ignore-value.h
@@ -35,10 +35,10 @@
 #ifndef _GL_IGNORE_VALUE_H
 #define _GL_IGNORE_VALUE_H
 
-/* The __attribute__((__warn_unused_result__)) feature
-   is available in gcc versions 3.4 and newer,
-   while the typeof feature has been available since 2.7 at least.  */
-#if 3 < __GNUC__ + (4 <= __GNUC_MINOR__)
+/* The __attribute__((__warn_unused_result__)) feature is available in
+   gcc versions 3.4 and newer, while __typeof__ and __extension__ have
+   been available since 2.0 at least.  */
+#if 2 <= __GNUC__
 # define ignore_value(x) \
     (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; }))
 #else
-- 
1.8.3.1


Reply via email to