diff options
author | Joseph Myers <joseph@codesourcery.com> | 2019-10-02 21:12:17 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2019-10-02 21:12:17 +0000 |
commit | 2334a78a4982f8d594e8da8f29d9e06ee5c15824 (patch) | |
tree | d7ebdc36f165887844e659efb90f9a6e89005a63 | |
parent | 0095a3e8d6fe89ff2bcfc83bbe190c0106dd4111 (diff) | |
download | glibc-2334a78a4982f8d594e8da8f29d9e06ee5c15824.tar.gz |
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-- | ChangeLog | 6 | ||||
-rw-r--r-- | sunrpc/clnt_udp.c | 11 |
2 files changed, 17 insertions, 0 deletions
@@ -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 c2436e3ebc..ee79b09b40 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), |