> -----Original Message----- > From: Philippe Mathieu-Daudé [mailto:phi...@redhat.com] > Sent: Tuesday, November 3, 2020 10:18 AM > To: Chenqun (kuhn) <kuhn.chen...@huawei.com>; qemu-devel@nongnu.org; > qemu-triv...@nongnu.org > Cc: Alex Bennée <alex.ben...@linaro.org>; Zhanghailiang > <zhang.zhanghaili...@huawei.com>; ganqixin <ganqi...@huawei.com>; Euler > Robot <euler.ro...@huawei.com> > Subject: Re: [PATCH 5/6] plugins/loader: fix uninitialized variable warning in > plugin_reset_uninstall() > > On 11/3/20 2:52 AM, Chen Qun wrote: > > After the WITH_QEMU_LOCK_GUARD macro is added, the compiler cannot > > identify that the statements in the macro must be executed. As a > > result, some variables assignment statements in the macro may be > considered as unexecuted by the compiler. > > > > The compiler showed warning: > > plugins/loader.c: In function ‘plugin_reset_uninstall’: > > plugins/loader.c:382:15: warning: ‘ctx’ may be used uninitialized in > > this function [-Wmaybe-uninitialized] > > This shouldn't happen as the function returns before (else there is a NULL > deref). > Yes, in fact, it shouldn't have happened when the program was running. But after added 'WITH_QEMU_LOCK_GUARD', let the compiler think it might happen. So, we add a default value, make the compiler happy.
Thanks, Chen Qun > > 382 | data->ctx = ctx; > > | ~~~~~~~~~~^~~~~ > > > > Add a default value for 'expire_time' to prevented the warning. > > > > Reported-by: Euler Robot <euler.ro...@huawei.com> > > Signed-off-by: Chen Qun <kuhn.chen...@huawei.com> > > --- > > Cc: "Alex Bennée" <alex.ben...@linaro.org> > > --- > > plugins/loader.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/plugins/loader.c b/plugins/loader.c index > > 8ac5dbc20f..88593fe138 100644 > > --- a/plugins/loader.c > > +++ b/plugins/loader.c > > @@ -367,7 +367,7 @@ void plugin_reset_uninstall(qemu_plugin_id_t id, > > bool reset) { > > struct qemu_plugin_reset_data *data; > > - struct qemu_plugin_ctx *ctx; > > + struct qemu_plugin_ctx *ctx = NULL; > > > > WITH_QEMU_LOCK_GUARD(&plugin.lock) { > > ctx = plugin_id_to_ctx_locked(id); > >