From e90dde1edf43eb8462559354fcd6f7771a5c11d6 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 28 Jan 2022 09:22:07 +0100 Subject: [PATCH] BUILD: vars: avoid overlapping field initialization Compiling vars.c with gcc 4.2 shows that we're initializing some local structs field members in a not really portable way: src/vars.c: In function 'vars_parse_cli_set_var': src/vars.c:1195: warning: initialized field overwritten src/vars.c:1195: warning: (near initialization for 'px.conf.args') src/vars.c:1195: warning: initialized field overwritten src/vars.c:1195: warning: (near initialization for 'px.conf') src/vars.c:1201: warning: initialized field overwritten src/vars.c:1201: warning: (near initialization for 'rule.conf') It's totally harmless anyway, but better clean this up. --- src/vars.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/vars.c b/src/vars.c index 47267864bd..4ed3a1d058 100644 --- a/src/vars.c +++ b/src/vars.c @@ -1071,14 +1071,12 @@ static int vars_parse_global_set_var(char **args, int section_type, struct proxy { struct proxy px = { .id = "CFG", - .conf.args.file = file, - .conf.args.line = line, + .conf.args = { .file = file, .line = line, }, }; struct act_rule rule = { .arg.vars.scope = SCOPE_PROC, .from = ACT_F_CFG_PARSER, - .conf.file = (char *)file, - .conf.line = line, + .conf = { .file = (char *)file, .line = line, }, }; enum obj_type objt = OBJ_TYPE_NONE; struct session *sess = NULL; @@ -1192,14 +1190,12 @@ static int vars_parse_cli_set_var(char **args, char *payload, struct appctx *app { struct proxy px = { .id = "CLI", - .conf.args.file = "CLI", - .conf.args.line = 0, + .conf.args = { .file = "CLI", .line = 0, }, }; struct act_rule rule = { .arg.vars.scope = SCOPE_PROC, .from = ACT_F_CLI_PARSER, - .conf.file = "CLI", - .conf.line = 0, + .conf = { .file = "CLI", .line = 0, }, }; enum obj_type objt = OBJ_TYPE_NONE; struct session *sess = NULL; -- 2.47.3