Re: [PATCH 3/4] http.c: avoid danging pointer to local variable `finished`
Hi Junio,
On Tue, 24 May 2022, Junio C Hamano wrote:
Show 5 quoted lines
> 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:
-- 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.
Ciao,
Dscho