From 2334a78a4982f8d594e8da8f29d9e06ee5c15824 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 2 Oct 2019 21:12:17 +0000 Subject: [PATCH] Disable -Wmaybe-uninitialized for total_deadline in sunrpc/clnt_udp.c. To work around 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 . (clntudp_call): Disable -Wmaybe-uninitialized around declaration of total_deadline. --- ChangeLog | 6 ++++++ sunrpc/clnt_udp.c | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/ChangeLog b/ChangeLog index c0d97f5b4e..601403aedd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2019-10-02 Joseph Myers + + * sunrpc/clnt_udp.c: Include . + (clntudp_call): Disable -Wmaybe-uninitialized around declaration + of total_deadline. + 2019-10-02 Alistair Francis * string/endian.h: Restore the __USE_MISC conditionals. diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c index c2436e3ebc..ee79b09b40 100644 --- a/sunrpc/clnt_udp.c +++ b/sunrpc/clnt_udp.c @@ -57,6 +57,7 @@ #include #include #include +#include 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 + . 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),