From 67609efeb0bcb198463a952a6a214813794a9c2b Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 16 Apr 2018 22:46:11 -0500 Subject: [PATCH] Cygwin: fix build with GCC 7 GCC 7 is able to see straight through this trick, so use a more formal method to avoid the warning. Signed-off-by: Yaakov Selkowitz --- winsup/cygwin/random.cc | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/winsup/cygwin/random.cc b/winsup/cygwin/random.cc index 802c33b8a..163fc040c 100644 --- a/winsup/cygwin/random.cc +++ b/winsup/cygwin/random.cc @@ -279,14 +279,6 @@ srandom(unsigned x) (void)random(); } -/* Avoid a compiler warning when we really want to get at the junk in - an uninitialized variable. */ -static unsigned long -dummy (unsigned volatile long *x) -{ - return *x; -} - /* * srandomdev: * @@ -313,7 +305,11 @@ srandomdev() unsigned long junk; gettimeofday(&tv, NULL); - srandom((getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec ^ dummy(&junk)); + /* Avoid a compiler warning when we really want to get at the + junk in an uninitialized variable. */ +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" + srandom((getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec ^ junk); +#pragma GCC diagnostic pop return; }