diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-04-05 20:01:28 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-04-05 20:01:28 -0700 |
commit | 998a47a585ae540f0f3229dcd68b3d04ac657c36 (patch) | |
tree | e4d0dc1c59f45cad31865a653fb08b28853914fa /lib.c | |
parent | 507fecc73fd4a141862861e7f4e2cc08e3fef38e (diff) | |
download | txr-998a47a585ae540f0f3229dcd68b3d04ac657c36.tar.gz txr-998a47a585ae540f0f3229dcd68b3d04ac657c36.tar.bz2 txr-998a47a585ae540f0f3229dcd68b3d04ac657c36.zip |
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.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -8067,13 +8067,11 @@ ucnum cobj_handle_hash_op(val obj, int *count, ucnum seed) return cobj_eq_hash_op(coerce(val, handle), count, seed); } -static struct cobj_ops cptr_ops = { - cobj_equal_handle_op, - cptr_print_op, - cobj_destroy_stub_op, - cobj_mark_op, - cobj_handle_hash_op -}; +static struct cobj_ops cptr_ops = cobj_ops_init(cobj_equal_handle_op, + cptr_print_op, + cobj_destroy_stub_op, + cobj_mark_op, + cobj_handle_hash_op); val cptr_typed(mem_t *handle, val type_sym, struct cobj_ops *ops) { |