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.
diff --git a/src/stick_table.c b/src/stick_table.c
index 7a02a19..e50ef25 100644
--- a/src/stick_table.c
+++ b/src/stick_table.c
@@ -2238,7 +2238,7 @@
{
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 @@
{
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 @@
{
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 @@
{
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)