Message ID | 20211027085629.240704-1-mrezanin@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix tcg_out_vec_op argument type | expand |
On 10/27/21 10:56, Miroslav Rezanina wrote: > Newly defined tcg_out_vec_op (34ef767609 tcg/s390x: Add host vector framework) > for s390x uses pointer argument definition. > This fails on gcc 11 as original declaration uses array argument: > > In file included from ../tcg/tcg.c:430: > /builddir/build/BUILD/qemu-6.1.50/tcg/s390x/tcg-target.c.inc:2702:42: error: argument 5 of type 'const TCGArg *' {aka 'const long unsigned int *'} declared as a pointer [-Werror=array-parameter=] > 2702 | const TCGArg *args, const int *const_args) > | ~~~~~~~~~~~~~~^~~~ > ../tcg/tcg.c:121:41: note: previously declared as an array 'const TCGArg[16]' {aka 'const long unsigned int[16]'} > 121 | const TCGArg args[TCG_MAX_OP_ARGS], > | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ > In file included from ../tcg/tcg.c:430: > /builddir/build/BUILD/qemu-6.1.50/tcg/s390x/tcg-target.c.inc:2702:59: error: argument 6 of type 'const int *' declared as a pointer [-Werror=array-parameter=] > 2702 | const TCGArg *args, const int *const_args) > | ~~~~~~~~~~~^~~~~~~~~~ > ../tcg/tcg.c:122:38: note: previously declared as an array 'const int[16]' > 122 | const int const_args[TCG_MAX_OP_ARGS]); > | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Fixing argument type to pass build. Similarly to commit 5e8892db93f ("tcg: Fix prototypes for tcg_out_vec_op and tcg_out_op"), fix the argument type. > Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> > --- > tcg/s390x/tcg-target.c.inc | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
On 27/10/2021 10.56, Miroslav Rezanina wrote: > Newly defined tcg_out_vec_op (34ef767609 tcg/s390x: Add host vector framework) > for s390x uses pointer argument definition. > This fails on gcc 11 as original declaration uses array argument: > > In file included from ../tcg/tcg.c:430: > /builddir/build/BUILD/qemu-6.1.50/tcg/s390x/tcg-target.c.inc:2702:42: error: argument 5 of type 'const TCGArg *' {aka 'const long unsigned int *'} declared as a pointer [-Werror=array-parameter=] > 2702 | const TCGArg *args, const int *const_args) > | ~~~~~~~~~~~~~~^~~~ > ../tcg/tcg.c:121:41: note: previously declared as an array 'const TCGArg[16]' {aka 'const long unsigned int[16]'} > 121 | const TCGArg args[TCG_MAX_OP_ARGS], > | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ > In file included from ../tcg/tcg.c:430: > /builddir/build/BUILD/qemu-6.1.50/tcg/s390x/tcg-target.c.inc:2702:59: error: argument 6 of type 'const int *' declared as a pointer [-Werror=array-parameter=] > 2702 | const TCGArg *args, const int *const_args) > | ~~~~~~~~~~~^~~~~~~~~~ > ../tcg/tcg.c:122:38: note: previously declared as an array 'const int[16]' > 122 | const int const_args[TCG_MAX_OP_ARGS]); > | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Fixing argument type to pass build. > > Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> > --- > tcg/s390x/tcg-target.c.inc | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/tcg/s390x/tcg-target.c.inc b/tcg/s390x/tcg-target.c.inc > index 8938c446c8..57e803e339 100644 > --- a/tcg/s390x/tcg-target.c.inc > +++ b/tcg/s390x/tcg-target.c.inc > @@ -2699,7 +2699,8 @@ static void tcg_out_dupi_vec(TCGContext *s, TCGType type, unsigned vece, > > static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, > unsigned vecl, unsigned vece, > - const TCGArg *args, const int *const_args) > + const TCGArg args[TCG_MAX_OP_ARGS], > + const int const_args[TCG_MAX_OP_ARGS]) > { > TCGType type = vecl + TCG_TYPE_V64; > TCGArg a0 = args[0], a1 = args[1], a2 = args[2]; Reviewed-by: Thomas Huth <thuth@redhat.com> Richard, do you still have a pull request planned for rc1 ? If not, I could also take it through the s390x tree if you like. Thomas
On 11.11.21 11:42, Thomas Huth wrote: > On 27/10/2021 10.56, Miroslav Rezanina wrote: >> Newly defined tcg_out_vec_op (34ef767609 tcg/s390x: Add host vector framework) >> for s390x uses pointer argument definition. >> This fails on gcc 11 as original declaration uses array argument: >> >> In file included from ../tcg/tcg.c:430: >> /builddir/build/BUILD/qemu-6.1.50/tcg/s390x/tcg-target.c.inc:2702:42: error: argument 5 of type 'const TCGArg *' {aka 'const long unsigned int *'} declared as a pointer [-Werror=array-parameter=] >> 2702 | const TCGArg *args, const int *const_args) >> | ~~~~~~~~~~~~~~^~~~ >> ../tcg/tcg.c:121:41: note: previously declared as an array 'const TCGArg[16]' {aka 'const long unsigned int[16]'} >> 121 | const TCGArg args[TCG_MAX_OP_ARGS], >> | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ >> In file included from ../tcg/tcg.c:430: >> /builddir/build/BUILD/qemu-6.1.50/tcg/s390x/tcg-target.c.inc:2702:59: error: argument 6 of type 'const int *' declared as a pointer [-Werror=array-parameter=] >> 2702 | const TCGArg *args, const int *const_args) >> | ~~~~~~~~~~~^~~~~~~~~~ >> ../tcg/tcg.c:122:38: note: previously declared as an array 'const int[16]' >> 122 | const int const_args[TCG_MAX_OP_ARGS]); >> | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ >> >> Fixing argument type to pass build. >> >> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> >> --- >> tcg/s390x/tcg-target.c.inc | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/tcg/s390x/tcg-target.c.inc b/tcg/s390x/tcg-target.c.inc >> index 8938c446c8..57e803e339 100644 >> --- a/tcg/s390x/tcg-target.c.inc >> +++ b/tcg/s390x/tcg-target.c.inc >> @@ -2699,7 +2699,8 @@ static void tcg_out_dupi_vec(TCGContext *s, TCGType type, unsigned vece, >> >> static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, >> unsigned vecl, unsigned vece, >> - const TCGArg *args, const int *const_args) >> + const TCGArg args[TCG_MAX_OP_ARGS], >> + const int const_args[TCG_MAX_OP_ARGS]) >> { >> TCGType type = vecl + TCG_TYPE_V64; >> TCGArg a0 = args[0], a1 = args[1], a2 = args[2]; > > Reviewed-by: Thomas Huth <thuth@redhat.com> > Acked-by: David Hildenbrand <david@redhat.com>
On 11/11/21 11:46 AM, David Hildenbrand wrote: > On 11.11.21 11:42, Thomas Huth wrote: >> On 27/10/2021 10.56, Miroslav Rezanina wrote: >>> Newly defined tcg_out_vec_op (34ef767609 tcg/s390x: Add host vector framework) >>> for s390x uses pointer argument definition. >>> This fails on gcc 11 as original declaration uses array argument: >>> >>> In file included from ../tcg/tcg.c:430: >>> /builddir/build/BUILD/qemu-6.1.50/tcg/s390x/tcg-target.c.inc:2702:42: error: argument 5 of type 'const TCGArg *' {aka 'const long unsigned int *'} declared as a pointer [-Werror=array-parameter=] >>> 2702 | const TCGArg *args, const int *const_args) >>> | ~~~~~~~~~~~~~~^~~~ >>> ../tcg/tcg.c:121:41: note: previously declared as an array 'const TCGArg[16]' {aka 'const long unsigned int[16]'} >>> 121 | const TCGArg args[TCG_MAX_OP_ARGS], >>> | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ >>> In file included from ../tcg/tcg.c:430: >>> /builddir/build/BUILD/qemu-6.1.50/tcg/s390x/tcg-target.c.inc:2702:59: error: argument 6 of type 'const int *' declared as a pointer [-Werror=array-parameter=] >>> 2702 | const TCGArg *args, const int *const_args) >>> | ~~~~~~~~~~~^~~~~~~~~~ >>> ../tcg/tcg.c:122:38: note: previously declared as an array 'const int[16]' >>> 122 | const int const_args[TCG_MAX_OP_ARGS]); >>> | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> >>> Fixing argument type to pass build. >>> >>> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> >>> --- >>> tcg/s390x/tcg-target.c.inc | 3 ++- >>> 1 file changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/tcg/s390x/tcg-target.c.inc b/tcg/s390x/tcg-target.c.inc >>> index 8938c446c8..57e803e339 100644 >>> --- a/tcg/s390x/tcg-target.c.inc >>> +++ b/tcg/s390x/tcg-target.c.inc >>> @@ -2699,7 +2699,8 @@ static void tcg_out_dupi_vec(TCGContext *s, TCGType type, unsigned vece, >>> >>> static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, >>> unsigned vecl, unsigned vece, >>> - const TCGArg *args, const int *const_args) >>> + const TCGArg args[TCG_MAX_OP_ARGS], >>> + const int const_args[TCG_MAX_OP_ARGS]) >>> { >>> TCGType type = vecl + TCG_TYPE_V64; >>> TCGArg a0 = args[0], a1 = args[1], a2 = args[2]; >> >> Reviewed-by: Thomas Huth <thuth@redhat.com> >> > > Acked-by: David Hildenbrand <david@redhat.com> Queued to tcg-next, thanks. r~
diff --git a/tcg/s390x/tcg-target.c.inc b/tcg/s390x/tcg-target.c.inc index 8938c446c8..57e803e339 100644 --- a/tcg/s390x/tcg-target.c.inc +++ b/tcg/s390x/tcg-target.c.inc @@ -2699,7 +2699,8 @@ static void tcg_out_dupi_vec(TCGContext *s, TCGType type, unsigned vece, static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc, unsigned vecl, unsigned vece, - const TCGArg *args, const int *const_args) + const TCGArg args[TCG_MAX_OP_ARGS], + const int const_args[TCG_MAX_OP_ARGS]) { TCGType type = vecl + TCG_TYPE_V64; TCGArg a0 = args[0], a1 = args[1], a2 = args[2];
Newly defined tcg_out_vec_op (34ef767609 tcg/s390x: Add host vector framework) for s390x uses pointer argument definition. This fails on gcc 11 as original declaration uses array argument: In file included from ../tcg/tcg.c:430: /builddir/build/BUILD/qemu-6.1.50/tcg/s390x/tcg-target.c.inc:2702:42: error: argument 5 of type 'const TCGArg *' {aka 'const long unsigned int *'} declared as a pointer [-Werror=array-parameter=] 2702 | const TCGArg *args, const int *const_args) | ~~~~~~~~~~~~~~^~~~ ../tcg/tcg.c:121:41: note: previously declared as an array 'const TCGArg[16]' {aka 'const long unsigned int[16]'} 121 | const TCGArg args[TCG_MAX_OP_ARGS], | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ In file included from ../tcg/tcg.c:430: /builddir/build/BUILD/qemu-6.1.50/tcg/s390x/tcg-target.c.inc:2702:59: error: argument 6 of type 'const int *' declared as a pointer [-Werror=array-parameter=] 2702 | const TCGArg *args, const int *const_args) | ~~~~~~~~~~~^~~~~~~~~~ ../tcg/tcg.c:122:38: note: previously declared as an array 'const int[16]' 122 | const int const_args[TCG_MAX_OP_ARGS]); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ Fixing argument type to pass build. Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com> --- tcg/s390x/tcg-target.c.inc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)