From: Miroslav Rezanina <mrezanin@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: Richard Henderson <richard.henderson@linaro.org>, qemu-devel@nongnu.org
Subject: Re: [RHEL7 qemu-kvm PATCH 3/3] Fix tcg_out_op argument mismatch warning
Date: Mon, 11 Jan 2021 07:40:10 -0500 (EST) [thread overview]
Message-ID: <1663575515.32388441.1610368810789.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <4a1d82cd-6e18-8a68-ada7-c5f7b66d94d7@redhat.com>
----- Original Message -----
> From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
> To: mrezanin@redhat.com, qemu-devel@nongnu.org
> Cc: "Richard Henderson" <richard.henderson@linaro.org>, "Eric Blake" <eblake@redhat.com>
> Sent: Monday, January 11, 2021 1:15:04 PM
> Subject: Re: [RHEL7 qemu-kvm PATCH 3/3] Fix tcg_out_op argument mismatch warning
>
> On 1/11/21 12:30 PM, mrezanin@redhat.com wrote:
> > From: Miroslav Rezanina <mrezanin@redhat.com>
> >
> > There's prototype mismatch between tcg/tcg.c and
> > tcg/aarch/tcg-target.c.inc:
> >
> > tcg.c:
> >
> > static void tcg_out_op(TCGContext *s, TCGOpcode opc, const TCGArg
> > *args,
> > const int *const_args);
> >
> > tcg-target.c.inc:
> >
> > static void tcg_out_op(TCGContext *s, TCGOpcode opc,
> > const TCGArg args[TCG_MAX_OP_ARGS],
> > const int const_args[TCG_MAX_OP_ARGS])
> >
> > This missmatch cause warnings on GCC 11:
> >
> > tcg/aarch64/tcg-target.c.inc:1855:37: error: argument 3 of type 'const
> > TCGArg[16]' {aka 'const long unsigned int[16]'} with mismatched bound
> > [-Werror=array-parameter=]
> > tcg/aarch64/tcg-target.c.inc:1856:34: error: argument 4 of type 'const
> > int[16]' with mismatched bound [-Werror=array-parameter=]
>
> TIL. Interesting, compilers are getting smarter :)
>
> > Only architectures with this definition are aarch and sparc. Fixing both
> > archs to use
> > proper argument type.
> > ---
> > tcg/aarch64/tcg-target.c.inc | 3 +--
> > tcg/sparc/tcg-target.c.inc | 3 +--
> > 2 files changed, 2 insertions(+), 4 deletions(-)
> >
> > diff --git a/tcg/aarch64/tcg-target.c.inc b/tcg/aarch64/tcg-target.c.inc
> > index 26f71cb599..fe6bdbf721 100644
> > --- a/tcg/aarch64/tcg-target.c.inc
> > +++ b/tcg/aarch64/tcg-target.c.inc
> > @@ -1852,8 +1852,7 @@ static void tcg_out_qemu_st(TCGContext *s, TCGReg
> > data_reg, TCGReg addr_reg,
> > static tcg_insn_unit *tb_ret_addr;
> >
> > static void tcg_out_op(TCGContext *s, TCGOpcode opc,
> > - const TCGArg args[TCG_MAX_OP_ARGS],
> > - const int const_args[TCG_MAX_OP_ARGS])
> > + const TCGArg *args, const int *const_args)
>
> Doing this way we loose information (that the array pointed has
> TCG_MAX_OP_ARGS elements). What about letting this prototype and
> fix the other uses?
I'm not author of the code so I went with smaller change - forward definition
in tcg.c and most tct-target.c.inc use this form. I would need someone more
familiar with this part to clarify whether it's ok to go with opposite change.
Mirek
>
> > {
> > /* 99% of the time, we can signal the use of extension registers
> > by looking to see if the opcode handles 64-bit data. */
> > diff --git a/tcg/sparc/tcg-target.c.inc b/tcg/sparc/tcg-target.c.inc
> > index 6775bd30fc..976f0f05af 100644
> > --- a/tcg/sparc/tcg-target.c.inc
> > +++ b/tcg/sparc/tcg-target.c.inc
> > @@ -1294,8 +1294,7 @@ static void tcg_out_qemu_st(TCGContext *s, TCGReg
> > data, TCGReg addr,
> > }
> >
> > static void tcg_out_op(TCGContext *s, TCGOpcode opc,
> > - const TCGArg args[TCG_MAX_OP_ARGS],
> > - const int const_args[TCG_MAX_OP_ARGS])
> > + const TCGArg *args, const int *const_args)
> > {
> > TCGArg a0, a1, a2;
> > int c, c2;
> >
>
>
--
Miroslav Rezanina
Software Engineer - Virtualization Team Maintainer
next prev parent reply other threads:[~2021-01-11 12:55 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-11 11:30 [RHEL7 qemu-kvm PATCH 0/3] Fixing several GCC 11 warnings mrezanin
2021-01-11 11:30 ` [RHEL7 qemu-kvm PATCH 1/3] Fix net.c warning on GCC 11 mrezanin
2021-01-11 11:30 ` [RHEL7 qemu-kvm PATCH 2/3] s390x: Fix vm name copy length mrezanin
2021-01-11 12:10 ` Philippe Mathieu-Daudé
2021-01-11 12:24 ` Thomas Huth
2021-01-11 12:42 ` Miroslav Rezanina
2021-01-11 12:54 ` Thomas Huth
2021-01-11 12:58 ` Miroslav Rezanina
2021-01-11 13:02 ` Christian Borntraeger
2021-01-11 13:07 ` Christian Borntraeger
2021-01-11 13:17 ` Miroslav Rezanina
2021-01-11 13:19 ` Christian Borntraeger
2021-01-11 12:37 ` Miroslav Rezanina
2021-01-11 11:30 ` [RHEL7 qemu-kvm PATCH 3/3] Fix tcg_out_op argument mismatch warning mrezanin
2021-01-11 12:15 ` Philippe Mathieu-Daudé
2021-01-11 12:40 ` Miroslav Rezanina [this message]
2021-01-11 11:39 ` [RHEL7 qemu-kvm PATCH 0/3] Fixing several GCC 11 warnings no-reply
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=1663575515.32388441.1610368810789.JavaMail.zimbra@redhat.com \
--to=mrezanin@redhat.com \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.