From 5b654ad42c7feea2f53eacb02b31d1f5dc9d5c14 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 6 Jul 2021 18:51:12 +0200 Subject: [PATCH] BUILD: stick-table: shut up invalid "uninitialized" warning in gcc 8.3 gcc 8.3.0 spews a bunch of: src/stick_table.c: In function 'action_inc_gpc0': include/haproxy/freq_ctr.h:66:12: warning: 'period' may be used uninitialized in this function [-Wmaybe-uninitialized] curr_tick += period; ^~ src/stick_table.c:2241:15: note: 'period' was declared here unsigned int period; ^~~~~~ but they're incorrect because all accesses are guarded by the exact same condition (ptr1 not being null), it's just the compiler being overzealous about the uninitialized detection that seems to be stronger than its ability to follow its own optimizations. This code path is not critical, let's just pre-initialize the period to zero. No backport is needed. --- src/stick_table.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/stick_table.c b/src/stick_table.c index 7a02a1949..e50ef2571 100644 --- a/src/stick_table.c +++ b/src/stick_table.c @@ -2238,7 +2238,7 @@ static enum act_return action_inc_gpc0(struct act_rule *rule, struct proxy *px, { struct stksess *ts; struct stkctr *stkctr; - unsigned int period; + unsigned int period = 0; /* Extract the stksess, return OK if no stksess available. */ if (s) @@ -2293,7 +2293,7 @@ static enum act_return action_inc_gpc1(struct act_rule *rule, struct proxy *px, { struct stksess *ts; struct stkctr *stkctr; - unsigned int period; + unsigned int period = 0; /* Extract the stksess, return OK if no stksess available. */ if (s) @@ -3269,7 +3269,7 @@ smp_fetch_sc_inc_gpc0(const struct arg *args, struct sample *smp, const char *kw { struct stkctr tmpstkctr; struct stkctr *stkctr; - unsigned int period; + unsigned int period = 0; stkctr = smp_fetch_sc_stkctr(smp->sess, smp->strm, args, kw, &tmpstkctr); if (!stkctr) @@ -3338,7 +3338,7 @@ smp_fetch_sc_inc_gpc1(const struct arg *args, struct sample *smp, const char *kw { struct stkctr tmpstkctr; struct stkctr *stkctr; - unsigned int period; + unsigned int period = 0; stkctr = smp_fetch_sc_stkctr(smp->sess, smp->strm, args, kw, &tmpstkctr); if (!stkctr)