This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Disable -Wmaybe-uninitialized for total_deadline in sunrpc/clnt_udp.c [committed]
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Wed, 2 Oct 2019 21:12:46 +0000
- Subject: Disable -Wmaybe-uninitialized for total_deadline in sunrpc/clnt_udp.c [committed]
- Ironport-sdr: F8vXeuR8IRbWVEF9w+JB1BsgyXTaJJG79FqWchRL6P2BgiwI0ctf6NCvnvRSm3Qf4TA1CbKy7O a/CdNlrcuMQ75jf1zp/2nksMob8QVw4HQMX7SjlRpB07WmPehCnEGjA8zl+pnMb3QstFI8V+27 UWwMDRifJeTFU8XWux9NdYUNcrkg36vDOQ+v+XAEWgY3s0kDPjrARHrjaEm/vnQAo5V+G9DCWq FXhABcFP9CqODsgsbVeGX9OK4kYsCIKx7jYIzgswKFtEC+lG2rBfxUJXbXEZNo8WPWHaFdP1Kk 3yw=
- Ironport-sdr: 7TMjgx8NwHHSo+4iRtSeLSPYvDPMg2rbWkzqGKRzKoHd4uI4u6IJxH09mlK4mRE7j2YsRto8HD 5c1FPkFImt3lp7o929IIXvnK8ZPrSlnKR9AGzYbbgfRgXESRytcC/isye9fAu6T6OlGTujP23A cUrK549aHJ3xGsX5p5xHbZ2fxSJ/It6EmxSr7oXKTo/XOpzczezFDsVsIgPDMHUh4aqUhku3A4 fzXc90dy880TJumGiKnWeeLANYxPp8XtFEU35E/VE02y9rFyiMj5M/5+X7svt+nYzgTolvLBJe 5jQ=
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.
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.
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),
--
Joseph S. Myers
joseph@codesourcery.com