]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUILD: vars: avoid overlapping field initialization
authorWilly Tarreau <w@1wt.eu>
Fri, 28 Jan 2022 08:22:07 +0000 (09:22 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 28 Jan 2022 18:04:02 +0000 (19:04 +0100)
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

index 47267864bd3113db4d533d4a0a219bf4febefdf9..4ed3a1d058c9eae73eed59a05af21d238dc21f5b 100644 (file)
@@ -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;