From: Paul Eggert Date: Thu, 28 Nov 2013 08:46:06 +0000 (-0800) Subject: ignore-value: revert previous code change X-Git-Tag: snapshot-start~28 X-Git-Url: http://erislabs.net/gitweb/?p=gnulib.git;a=commitdiff_plain;h=37f8a6b207bc71cbfffd4c53ebf4e20955e0776b ignore-value: revert previous code change * lib/ignore-value.h (ignore_value): Use __extension__ and __typeof__ only for GCC 3.4 and later. Reported by Eric Blake in . Change the comment to try to explain this better. --- diff --git a/ChangeLog b/ChangeLog index 61b5f40fc..21659eafe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2013-11-28 Paul Eggert + + ignore-value: revert previous code change + * lib/ignore-value.h (ignore_value): Use __extension__ and + __typeof__ only for GCC 3.4 and later. Reported by Eric Blake in + . + Change the comment to try to explain this better. + 2013-11-27 Pádraig Brady selinux-h: improve stub types and add more stub functions diff --git a/lib/ignore-value.h b/lib/ignore-value.h index f079a0629..633c44adc 100644 --- a/lib/ignore-value.h +++ b/lib/ignore-value.h @@ -35,10 +35,12 @@ #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 __typeof__ and __extension__ have - been available since 2.0 at least. */ -#if 2 <= __GNUC__ +/* Normally casting an expression to void discards its value, but GCC + versions 3.4 and newer have __attribute__ ((__warn_unused_result__)) + which may cause unwanted diagnostics in that case. Use __typeof__ + and __extension__ to work around the problem, if the workaround is + known to be needed. */ +#if 3 < __GNUC__ + (4 <= __GNUC_MINOR__) # define ignore_value(x) \ (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; })) #else