aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2019-10-02 21:12:17 +0000
committerJoseph Myers <joseph@codesourcery.com>2019-10-02 21:12:17 +0000
commit2334a78a4982f8d594e8da8f29d9e06ee5c15824 (patch)
treed7ebdc36f165887844e659efb90f9a6e89005a63
parent0095a3e8d6fe89ff2bcfc83bbe190c0106dd4111 (diff)
downloadglibc-2334a78a4982f8d594e8da8f29d9e06ee5c15824.zip
glibc-2334a78a4982f8d594e8da8f29d9e06ee5c15824.tar.gz
glibc-2334a78a4982f8d594e8da8f29d9e06ee5c15824.tar.bz2
Disable -Wmaybe-uninitialized for total_deadline in sunrpc/clnt_udp.c.
To work around <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691> for RV32, we recently disabled -Wmaybe-uninitialized for some inline functions in inet/net-internal.h, as included by sunrpc/clnt_udp.c. The same error has now appeared with current GCC trunk for MIPS, in a form that is located at the definition of the variable in question and so unaffected by the disabling in inet/net-internal.h. Thus, this patch adds the same disabling around the definition of that variable, to cover the MIPS case. Tested with build-many-glibcs.py (compilers and glibcs stages) for mips64-linux-gnu with GCC mainline. * sunrpc/clnt_udp.c: Include <libc-diag.h>. (clntudp_call): Disable -Wmaybe-uninitialized around declaration of total_deadline.
-rw-r--r--ChangeLog6
-rw-r--r--sunrpc/clnt_udp.c11
2 files changed, 17 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c0d97f5..601403a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-10-02 Joseph Myers <joseph@codesourcery.com>
+
+ * sunrpc/clnt_udp.c: Include <libc-diag.h>.
+ (clntudp_call): Disable -Wmaybe-uninitialized around declaration
+ of total_deadline.
+
2019-10-02 Alistair Francis <alistair.francis@wdc.com>
* string/endian.h: Restore the __USE_MISC conditionals.
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index c2436e3..ee79b09 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -57,6 +57,7 @@
#include <kernel-features.h>
#include <inet/net-internal.h>
#include <shlib-compat.h>
+#include <libc-diag.h>
extern u_long _create_xid (void);
@@ -290,7 +291,17 @@ clntudp_call (/* client handle */
int anyup; /* any network interface up */
struct deadline_current_time current_time = __deadline_current_time ();
+ /* GCC 10 for MIPS reports total_deadline as possibly used
+ uninitialized; see
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691>. In fact it
+ is initialized conditionally and only ever used under the same
+ condition. The same warning is also disabled in
+ inet/net-internal.h because in some other configurations GCC
+ gives the warning in an inline function. */
+ DIAG_PUSH_NEEDS_COMMENT;
+ DIAG_IGNORE_NEEDS_COMMENT (10, "-Wmaybe-uninitialized");
struct deadline total_deadline; /* Determined once by overall timeout. */
+ DIAG_POP_NEEDS_COMMENT;
struct deadline response_deadline; /* Determined anew for each query. */
/* Choose the timeout value. For non-sending usage (xargs == NULL),