This is the mail archive of the
mailing list for the glibc project.
Re: [RFC v5 01/21] sunrpc/clnt_udp: Ensure total_deadline is initalised
- From: Jeff Law <law at redhat dot com>
- To: Joseph Myers <joseph at codesourcery dot com>
- Cc: Alistair Francis <alistair23 at gmail dot com>, Zack Weinberg <zackw at panix dot com>, Alistair Francis <alistair dot francis at wdc dot com>, GNU C Library <libc-alpha at sourceware dot org>, Arnd Bergmann <arnd at arndb dot de>, Adhemerval Zanella <adhemerval dot zanella at linaro dot org>, Florian Weimer <fweimer at redhat dot com>, Palmer Dabbelt <palmer at sifive dot com>, macro at wdc dot com, Zong Li <zongbox at gmail dot com>
- Date: Thu, 5 Sep 2019 09:27:15 -0600
- Subject: Re: [RFC v5 01/21] sunrpc/clnt_udp: Ensure total_deadline is initalised
- References: <email@example.com> <firstname.lastname@example.org> <alpine.DEB.email@example.com> <CAKCAbMjmQaFTJ3NskTttrVPoSb-OmLJok1+Qe5hwaXa3VSpwXg@mail.gmail.com> <CAKmqyKMTG8kWkjJ2+OWY3kxOch45Qg4sVfcfA719djCfyrGuWg@mail.gmail.com> <alpine.DEB.firstname.lastname@example.org> <email@example.com> <alpine.DEB.firstname.lastname@example.org>
On 9/5/19 9:21 AM, Joseph Myers wrote:
> On Thu, 5 Sep 2019, Jeff Law wrote:
>> BTW, has a bug been filed against GCC for the bogus warning?
> In this case, it looks like the code is
> if (xargs != NULL)
> total_deadline = ...
> if (xargs != NULL)
> use total_deadline
> (and xargs doesn't get modified in the function and the various gotos in
> this function are all after that setting of total_deadline). So that
> should be a known issue (and we could consider if the existing comment
> /* Choose the timeout value. For non-sending usage (xargs == NULL),
> the total deadline does not matter, only cu->cu_wait is used
> below. */
> is sufficient or should be extended to say explicitly the warning is
Right. My concern is we should be analyzing this on the GCC side.
I can hazard a guess that there's too much code between the two tests
and as a result jump threading isn't deemed profitable enough. That's
not terribly unusual.
But even so, the uninit pass has predicate analysis which should see the
use as properly guarded.
So ISTM that something isn't behaving properly on the GCC side so we
should get bug report opened so that we can analyze why GCC isn't doing
the right thing here.