diff mbox series

Fix tcg_out_vec_op argument type

Message ID 20211027085629.240704-1-mrezanin@redhat.com
State New
Headers show
Series Fix tcg_out_vec_op argument type | expand

Commit Message

Miroslav Rezanina Oct. 27, 2021, 8:56 a.m. UTC
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(-)

Comments

Philippe Mathieu-Daudé Oct. 27, 2021, 10:05 a.m. UTC | #1
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>
Thomas Huth Nov. 11, 2021, 10:42 a.m. UTC | #2
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
David Hildenbrand Nov. 11, 2021, 10:46 a.m. UTC | #3
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>
Richard Henderson Nov. 11, 2021, 10:53 a.m. UTC | #4
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 mbox series

Patch

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];