Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > Hi Junio, > > On Tue, 24 May 2022, Junio C Hamano wrote: > >> The "clear slot->finished", by the way, is what I think is the right >> thing to do, especially that the objective is to squelch the false >> positive warning from a new compiler. If there is a way to annotate >> the line for the compiler to tell it not to warn about it, that would >> have been even better. > > We could do something like this: Yuck. > -- snip -- > diff --git a/http.c b/http.c > index b08795715f8a..2ac8d51d3668 100644 > --- a/http.c > +++ b/http.c > @@ -1365,7 +1365,14 @@ void run_active_slot(struct active_request_slot *slot) > struct timeval select_timeout; > int finished = 0; > > +#if __GNUC__ >= 12 > +#pragma GCC diagnostic push > +#pragma GCC diagnostic ignored "-Wdangling-pointer" > +#endif > slot->finished = &finished; > +#if __GNUC__ >= 12 > +#pragma GCC diagnostic pop > +#endif > while (!finished) { > step_active_slots(); > -- snap -- > > That's quite ugly, though. And what's worse, it is pretty unreadable, too. Yes, very ugly. Would an unconditional slot->finished = NULL; at the end squelch the warning? Or there is a way to say "we make all warnings into errors with -Werror, but we do not want to turn this dangling-pointer warning to an error, because it has false positives"? Or we could add "-Wno-dangling-pointer" globally, perhaps.