This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch release/2.25/master updated. glibc-2.25-32-gf827b1c
- From: fw at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 11 Aug 2017 14:13:26 -0000
- Subject: GNU C Library master sources branch release/2.25/master updated. glibc-2.25-32-gf827b1c
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, release/2.25/master has been updated
via f827b1cec3e87c282727f8f90b9d4a660eff8443 (commit)
from 5b3f978ccf92e3c5213266500d70d3b0359b5efc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f827b1cec3e87c282727f8f90b9d4a660eff8443
commit f827b1cec3e87c282727f8f90b9d4a660eff8443
Author: Florian Weimer <fweimer@redhat.com>
Date: Fri Aug 11 16:02:55 2017 +0200
assert: Suppress pedantic warning caused by statement expression [BZ #21242]
(cherry picked from commit 8b2c63e4e2ad1fd161f80004ed30624f2a37b57b)
diff --git a/ChangeLog b/ChangeLog
index 16b1f25..2c5c991 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2017-08-11 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21242]
+ * assert/assert.h [__GNUC__ && !__STRICT_ANSI__] (assert):
+ Suppress pedantic warning resulting from statement expression.
+ (__ASSERT_FUNCTION): Add missing __extension__.
+
2017-08-08 Helge Deller <deller@gmx.de>
[BZ #21049]
diff --git a/NEWS b/NEWS
index 7be238c..e27fd4c 100644
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,7 @@ The following bugs are resolved with this release:
[21109] Tunables broken on big-endian
[21115] sunrpc: Use-after-free in error path in clntudp_call
[21209] Ignore and remove LD_HWCAP_MASK for AT_SECURE programs
+ [21242] assert: Suppress pedantic warning caused by statement expression
[21289] Fix symbol redirect for fts_set
[21386] Assertion in fork for distinct parent PID is incorrect
[21624] Unsafe alloca allows local attackers to alias stack and heap (CVE-2017-1000366)
diff --git a/assert/assert.h b/assert/assert.h
index 22f0195..6801cfe 100644
--- a/assert/assert.h
+++ b/assert/assert.h
@@ -91,13 +91,19 @@ __END_DECLS
? __ASSERT_VOID_CAST (0) \
: __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION))
# else
+/* The first occurrence of EXPR is not evaluated due to the sizeof,
+ but will trigger any pedantic warnings masked by the __extension__
+ for the second occurrence. The explicit comparison against zero is
+ required to support function pointers and bit fields in this
+ context, and to suppress the evaluation of variable length
+ arrays. */
# define assert(expr) \
- ({ \
+ ((void) sizeof ((expr) == 0), __extension__ ({ \
if (expr) \
; /* empty */ \
else \
__assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \
- })
+ }))
# endif
# ifdef __USE_GNU
@@ -113,7 +119,7 @@ __END_DECLS
C9x has a similar variable called __func__, but prefer the GCC one since
it demangles C++ function names. */
# if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4)
-# define __ASSERT_FUNCTION __PRETTY_FUNCTION__
+# define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__
# else
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
# define __ASSERT_FUNCTION __func__
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 +++++++
NEWS | 1 +
assert/assert.h | 12 +++++++++---
3 files changed, 17 insertions(+), 3 deletions(-)
hooks/post-receive
--
GNU C Library master sources