svn commit: r295768 - head/usr.sbin/iostat
Sergey Kandaurov
pluknet at gmail.com
Fri Feb 19 12:24:17 UTC 2016
On 18 February 2016 at 23:08, Alan Somers <asomers at freebsd.org> wrote:
> Author: asomers
> Date: Thu Feb 18 20:08:01 2016
> New Revision: 295768
> URL: https://svnweb.freebsd.org/changeset/base/295768
>
> Log:
> Fix compiler warnings in iostat
> Modified: head/usr.sbin/iostat/iostat.c
> ==============================================================================
> --- head/usr.sbin/iostat/iostat.c Thu Feb 18 19:37:39 2016 (r295767)
> +++ head/usr.sbin/iostat/iostat.c Thu Feb 18 20:08:01 2016 (r295768)
> @@ -117,30 +117,34 @@
> #include <termios.h>
> #include <unistd.h>
>
> -struct nlist namelist[] = {
> +static struct nlist namelist[] = {
> #define X_TTY_NIN 0
> - { "_tty_nin" },
> + { .n_name = "_tty_nin",
> + .n_type = 0, .n_other = 0, .n_desc = 0, .n_value = 0 },
> [...]
You unlikely need this excessive explicit zeroization.
In this case it is implicitly prezeroed.
Consider these two cases:
: #include <nlist.h>
:
: int main(void) {
: struct nlist namelist[2] = {{ .n_type = 0x42 }};
: return sizeof(namelist);
: }
(__TEXT,__text) section
_main:
0000000000000000 pushq %rbp
0000000000000001 movq %rsp, %rbp
0000000000000004 leaq -0x30(%rbp), %rdx
0000000000000008 movl $0x0, %eax
000000000000000d movl $0x6, %ecx
0000000000000012 movq %rdx, %rdi
0000000000000015 rep
0000000000000016 stosq
0000000000000018 movb $0x42, -0x28(%rbp)
000000000000001c movl $0x30, %eax
0000000000000021 popq %rbp
0000000000000022 retq
rep stosq does zero 48 bytes, that is namelist[].
Or, if it is static.
: #include <nlist.h>
:
: int main(void) {
: static struct nlist namelist[2] = {{ .n_type = 0x42 }};
: return sizeof(namelist);
: }
(__DATA,__data) section
0000000000000020 00 00 00 00 00 00 00 00 42 00 00 00 00 00 00 00
0000000000000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000000000000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
--
wbr,
pluknet
More information about the svn-src-head
mailing list