From 998a47a585ae540f0f3229dcd68b3d04ac657c36 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 5 Apr 2020 20:01:28 -0700 Subject: warning cleanup: missing member initializers. This is the sixth round of an effort to enable GCC's -Wextra option. Warnings about uninitialized members are addressed. I am not happy with what had to be done in linenoise.c. We just need a dummy circular list node for the lino_list, which we achieved with a dummy all zero struture, with statially initialized next and prev pointers. There are way too many members to initialize, including one that has struct termios type containing a nonportable set of members. On the plus size, the lino_list structure now moves into the BSS section, reducing the executable size slightly. * lib.c (cptr_ops): Initialize using cobj_ops_init, which has all the initializers already, and should have been used for this in the first place. * linenoise/linenoise.c (lino_list): Remove initializer, which eliminates the warning about some members not being initialized. (lino_init): Initialize the next and prev pointers here. * parser.c (parser_ops): Initialize with cobj_ops_init. * stream.h (stdio_mode_init_blank, stdio_mode_init_r, stdio_mode_init_rpb): Add initializer corresponding to redir array member of struct stdio_mode. * sysif.c (cptr_dl_ops): Use cobj_ops_init. * tree.c (tree_iter_init): Add initializer for the path array member of struct tree_iter. (tr_rebuild): Initialize all fields of the dummy object. Since it's a union, we just have to deal with the any member. There are two layouts for the obj_common fields based on whether CONFIG_GEN_GC is enabled. This is ugly, but occurs in one place only. --- sysif.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'sysif.c') diff --git a/sysif.c b/sysif.c index d4452b65..dd563b7b 100644 --- a/sysif.c +++ b/sysif.c @@ -2015,13 +2015,11 @@ static void cptr_dl_destroy_op(val obj) } } -static struct cobj_ops cptr_dl_ops = { - cobj_equal_handle_op, - cptr_print_op, - cptr_dl_destroy_op, - cobj_mark_op, - cobj_handle_hash_op -}; +static struct cobj_ops cptr_dl_ops = cobj_ops_init(cobj_equal_handle_op, + cptr_print_op, + cptr_dl_destroy_op, + cobj_mark_op, + cobj_handle_hash_op); static val dlopen_wrap(val name, val flags) { -- cgit v1.2.3