Chen Qun <kuhn.chen...@huawei.com> writes:
> 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.
>
> When the -Wmaybe-uninitialized capability is enabled on GCC9,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]
> 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;
This doesn't really fix anything because you would end up faulting if
you attempted to de-ref a NULL ctx. However...
>
> WITH_QEMU_LOCK_GUARD(&plugin.lock) {
> ctx = plugin_id_to_ctx_locked(id);
...this can't fail. If the lookup failed and returned a NULL plugin then
we would abort(). So why can't the Euler Robot see that?
--
Alex Bennée