From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
To: Yao Xingtao <yaoxt.fnst@fujitsu.com>, qemu-devel@nongnu.org
Cc: alex.bennee@linaro.org, erdnaxe@crans.org, ma.mandourr@gmail.com,
peter.maydell@linaro.org
Subject: Re: [PATCH v2] contrib/plugins/execlog: Fix compiler warning
Date: Mon, 25 Mar 2024 10:41:31 +0400 [thread overview]
Message-ID: <3afbc002-1077-4bcd-a4e2-582b0c7de88c@linaro.org> (raw)
In-Reply-To: <20240325060657.3934-1-yaoxt.fnst@fujitsu.com>
On 3/25/24 10:06, Yao Xingtao wrote:
> 1. The g_pattern_match_string() is deprecated when glib2 version >= 2.70.
> Use g_pattern_spec_match_string() instead to avoid this problem.
>
> 2. The type of second parameter in g_ptr_array_add() is
> 'gpointer' {aka 'void *'}, but the type of reg->name is 'const char*'.
> Cast the type of reg->name to 'gpointer' to avoid this problem.
>
> compiler warning message:
> /root/qemu/contrib/plugins/execlog.c:330:17: warning: ‘g_pattern_match_string’
> is deprecated: Use 'g_pattern_spec_match_string'
> instead [-Wdeprecated-declarations]
> 330 | if (g_pattern_match_string(pat, rd->name) ||
> | ^~
> In file included from /usr/include/glib-2.0/glib.h:67,
> from /root/qemu/contrib/plugins/execlog.c:9:
> /usr/include/glib-2.0/glib/gpattern.h:57:15: note: declared here
> 57 | gboolean g_pattern_match_string (GPatternSpec *pspec,
> | ^~~~~~~~~~~~~~~~~~~~~~
> /root/qemu/contrib/plugins/execlog.c:331:21: warning: ‘g_pattern_match_string’
> is deprecated: Use 'g_pattern_spec_match_string'
> instead [-Wdeprecated-declarations]
> 331 | g_pattern_match_string(pat, rd_lower)) {
> | ^~~~~~~~~~~~~~~~~~~~~~
> /usr/include/glib-2.0/glib/gpattern.h:57:15: note: declared here
> 57 | gboolean g_pattern_match_string (GPatternSpec *pspec,
> | ^~~~~~~~~~~~~~~~~~~~~~
> /root/qemu/contrib/plugins/execlog.c:339:63: warning: passing argument 2 of
> ‘g_ptr_array_add’ discards ‘const’ qualifier from pointer target type
> [-Wdiscarded-qualifiers]
> 339 | g_ptr_array_add(all_reg_names, reg->name);
> | ~~~^~~~~~
> In file included from /usr/include/glib-2.0/glib.h:33:
> /usr/include/glib-2.0/glib/garray.h:198:62: note: expected
> ‘gpointer’ {aka ‘void *’} but argument is of type ‘const char *’
> 198 | gpointer data);
> | ~~~~~~~~~~~~~~~~~~^~~~
>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2210
> Signed-off-by: Yao Xingtao <yaoxt.fnst@fujitsu.com>
> ---
> contrib/plugins/execlog.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/contrib/plugins/execlog.c b/contrib/plugins/execlog.c
> index a1dfd59ab7..09654910ee 100644
> --- a/contrib/plugins/execlog.c
> +++ b/contrib/plugins/execlog.c
> @@ -327,8 +327,13 @@ static GPtrArray *registers_init(int vcpu_index)
> for (int p = 0; p < rmatches->len; p++) {
> g_autoptr(GPatternSpec) pat = g_pattern_spec_new(rmatches->pdata[p]);
> g_autofree gchar *rd_lower = g_utf8_strdown(rd->name, -1);
> +#if GLIB_CHECK_VERSION(2, 70, 0)
> + if (g_pattern_spec_match_string(pat, rd->name) ||
> + g_pattern_spec_match_string(pat, rd_lower)) {
> +#else
> if (g_pattern_match_string(pat, rd->name) ||
> g_pattern_match_string(pat, rd_lower)) {
> +#endif
> Register *reg = init_vcpu_register(rd);
> g_ptr_array_add(registers, reg);
>
As suggested by Peter on previous version, you can declare a new
function `g_pattern_match_string_qemu` in include/glib-compat.h which
abstract this.
You'll need to add include/ to Makefile as well, so glib-compat.h will
be accessible to contrib plugins too.
> @@ -336,7 +341,7 @@ static GPtrArray *registers_init(int vcpu_index)
> if (disas_assist) {
> g_mutex_lock(&add_reg_name_lock);
> if (!g_ptr_array_find(all_reg_names, reg->name, NULL)) {
> - g_ptr_array_add(all_reg_names, reg->name);
> + g_ptr_array_add(all_reg_names, (gpointer)reg->name);
> }
> g_mutex_unlock(&add_reg_name_lock);
> }
next prev parent reply other threads:[~2024-03-25 6:42 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-20 2:01 [PATCH] contrib/plugins/execlog: Fix compiler warning Yao Xingtao via
2024-03-22 11:50 ` Peter Maydell
2024-03-25 3:00 ` Xingtao Yao (Fujitsu) via
2024-03-25 4:31 ` Pierrick Bouvier
2024-03-25 5:55 ` Xingtao Yao (Fujitsu) via
2024-03-25 6:06 ` [PATCH v2] " Yao Xingtao via
2024-03-25 6:41 ` Pierrick Bouvier [this message]
2024-03-25 9:58 ` Peter Maydell
2024-03-25 10:16 ` Pierrick Bouvier
2024-03-26 1:52 ` [PATCH v3] " Yao Xingtao via
2024-03-26 3:33 ` Pierrick Bouvier
2024-03-26 9:54 ` Philippe Mathieu-Daudé
2024-03-26 10:33 ` Peter Maydell
2024-03-26 12:03 ` Philippe Mathieu-Daudé
2024-03-27 0:21 ` Xingtao Yao (Fujitsu) via
2024-03-26 12:38 ` Pierrick Bouvier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3afbc002-1077-4bcd-a4e2-582b0c7de88c@linaro.org \
--to=pierrick.bouvier@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=erdnaxe@crans.org \
--cc=ma.mandourr@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=yaoxt.fnst@fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).