Re: [PATCH v2] hw/input/tsc2005: Fix -Wchar-subscripts warning in tsc2005_txrx()

2024-05-28 Thread Philippe Mathieu-Daudé

On 20/5/24 14:49, Peter Maydell wrote:

On Wed, 8 May 2024 at 15:35, Philippe Mathieu-Daudé  wrote:


Check the function index is in range and use an unsigned
variable to avoid the following warning with GCC 13.2.0:

   [666/5358] Compiling C object libcommon.fa.p/hw_input_tsc2005.c.o
   hw/input/tsc2005.c: In function 'tsc2005_timer_tick':
   hw/input/tsc2005.c:416:26: warning: array subscript has type 'char' 
[-Wchar-subscripts]
 416 | s->dav |= mode_regs[s->function];
 | ~^~

Signed-off-by: Philippe Mathieu-Daudé 
---
v2: Use Peter suggestion
---
  hw/input/tsc2005.c | 5 -
  1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/hw/input/tsc2005.c b/hw/input/tsc2005.c
index 941f163d36..8d35892c09 100644
--- a/hw/input/tsc2005.c
+++ b/hw/input/tsc2005.c
@@ -406,6 +406,9 @@ uint32_t tsc2005_txrx(void *opaque, uint32_t value, int len)
  static void tsc2005_timer_tick(void *opaque)
  {
  TSC2005State *s = opaque;
+unsigned int function = s->function;
+
+assert(function < ARRAY_SIZE(mode_regs);


Missing ')' -- this doesn't compile ;-)


Oops I apologize for not even build-testing :/


Applied to target-arm.next with the typo fixed, thanks.


Thanks!




Re: [PATCH v2] hw/input/tsc2005: Fix -Wchar-subscripts warning in tsc2005_txrx()

2024-05-20 Thread Peter Maydell
On Wed, 8 May 2024 at 15:35, Philippe Mathieu-Daudé  wrote:
>
> Check the function index is in range and use an unsigned
> variable to avoid the following warning with GCC 13.2.0:
>
>   [666/5358] Compiling C object libcommon.fa.p/hw_input_tsc2005.c.o
>   hw/input/tsc2005.c: In function 'tsc2005_timer_tick':
>   hw/input/tsc2005.c:416:26: warning: array subscript has type 'char' 
> [-Wchar-subscripts]
> 416 | s->dav |= mode_regs[s->function];
> | ~^~
>
> Signed-off-by: Philippe Mathieu-Daudé 
> ---
> v2: Use Peter suggestion
> ---
>  hw/input/tsc2005.c | 5 -
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/hw/input/tsc2005.c b/hw/input/tsc2005.c
> index 941f163d36..8d35892c09 100644
> --- a/hw/input/tsc2005.c
> +++ b/hw/input/tsc2005.c
> @@ -406,6 +406,9 @@ uint32_t tsc2005_txrx(void *opaque, uint32_t value, int 
> len)
>  static void tsc2005_timer_tick(void *opaque)
>  {
>  TSC2005State *s = opaque;
> +unsigned int function = s->function;
> +
> +assert(function < ARRAY_SIZE(mode_regs);

Missing ')' -- this doesn't compile ;-)


Applied to target-arm.next with the typo fixed, thanks.

-- PMM



[PATCH v2] hw/input/tsc2005: Fix -Wchar-subscripts warning in tsc2005_txrx()

2024-05-08 Thread Philippe Mathieu-Daudé
Check the function index is in range and use an unsigned
variable to avoid the following warning with GCC 13.2.0:

  [666/5358] Compiling C object libcommon.fa.p/hw_input_tsc2005.c.o
  hw/input/tsc2005.c: In function 'tsc2005_timer_tick':
  hw/input/tsc2005.c:416:26: warning: array subscript has type 'char' 
[-Wchar-subscripts]
416 | s->dav |= mode_regs[s->function];
| ~^~

Signed-off-by: Philippe Mathieu-Daudé 
---
v2: Use Peter suggestion
---
 hw/input/tsc2005.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/hw/input/tsc2005.c b/hw/input/tsc2005.c
index 941f163d36..8d35892c09 100644
--- a/hw/input/tsc2005.c
+++ b/hw/input/tsc2005.c
@@ -406,6 +406,9 @@ uint32_t tsc2005_txrx(void *opaque, uint32_t value, int len)
 static void tsc2005_timer_tick(void *opaque)
 {
 TSC2005State *s = opaque;
+unsigned int function = s->function;
+
+assert(function < ARRAY_SIZE(mode_regs);
 
 /* Timer ticked -- a set of conversions has been finished.  */
 
@@ -413,7 +416,7 @@ static void tsc2005_timer_tick(void *opaque)
 return;
 
 s->busy = false;
-s->dav |= mode_regs[s->function];
+s->dav |= mode_regs[function];
 s->function = -1;
 tsc2005_pin_update(s);
 }
-- 
2.41.0