Patchwork [04/11] lsi53c895a: avoid a write only variable

login
register
mail settings
Submitter Blue Swirl
Date Oct. 6, 2010, 9:32 p.m.
Message ID <AANLkTimu7PP5qjZNUuzcTHxwEDOW081jnLFZPJQw-jR+@mail.gmail.com>
Download mbox | patch
Permalink /patch/66973/
State New
Headers show

Comments

Blue Swirl - Oct. 6, 2010, 9:32 p.m.
Compiling with GCC 4.6.0 20100925 produced a warning:
/src/qemu/hw/lsi53c895a.c: In function 'lsi_do_msgout':
/src/qemu/hw/lsi53c895a.c:848:9: error: variable 'len' set but not
used [-Werror=unused-but-set-variable]

Fix by making the variable declaration and its uses also conditional
to debug definition.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
---
 hw/lsi53c895a.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
Paolo Bonzini - Oct. 7, 2010, 7:20 a.m.
On 10/06/2010 11:32 PM, Blue Swirl wrote:
> Compiling with GCC 4.6.0 20100925 produced a warning:
> /src/qemu/hw/lsi53c895a.c: In function 'lsi_do_msgout':
> /src/qemu/hw/lsi53c895a.c:848:9: error: variable 'len' set but not
> used [-Werror=unused-but-set-variable]
>
> Fix by making the variable declaration and its uses also conditional
> to debug definition.

NACK, this uglifies the code and loses track of _what_ is that msgbyte 
we're reading.

Paolo
Markus Armbruster - Oct. 7, 2010, 9:20 a.m.
Paolo Bonzini <pbonzini@redhat.com> writes:

> On 10/06/2010 11:32 PM, Blue Swirl wrote:
>> Compiling with GCC 4.6.0 20100925 produced a warning:
>> /src/qemu/hw/lsi53c895a.c: In function 'lsi_do_msgout':
>> /src/qemu/hw/lsi53c895a.c:848:9: error: variable 'len' set but not
>> used [-Werror=unused-but-set-variable]
>>
>> Fix by making the variable declaration and its uses also conditional
>> to debug definition.
>
> NACK, this uglifies the code and loses track of _what_ is that msgbyte
> we're reading.

Seconded.

If the warning bothers you, maybe "(void)len" can silence it in a less
unsightly manner.
Blue Swirl - Oct. 7, 2010, 6:53 p.m.
On Thu, Oct 7, 2010 at 9:20 AM, Markus Armbruster <armbru@redhat.com> wrote:
> Paolo Bonzini <pbonzini@redhat.com> writes:
>
>> On 10/06/2010 11:32 PM, Blue Swirl wrote:
>>> Compiling with GCC 4.6.0 20100925 produced a warning:
>>> /src/qemu/hw/lsi53c895a.c: In function 'lsi_do_msgout':
>>> /src/qemu/hw/lsi53c895a.c:848:9: error: variable 'len' set but not
>>> used [-Werror=unused-but-set-variable]
>>>
>>> Fix by making the variable declaration and its uses also conditional
>>> to debug definition.
>>
>> NACK, this uglifies the code and loses track of _what_ is that msgbyte
>> we're reading.

That information could be saved by adding a comment, I used that
approach for vmstate.c.

>
> Seconded.
>
> If the warning bothers you, maybe "(void)len" can silence it in a less
> unsightly manner.

I'll use that approach next.
Paolo Bonzini - Oct. 8, 2010, 4:11 p.m.
On 10/07/2010 08:53 PM, Blue Swirl wrote:
> On Thu, Oct 7, 2010 at 9:20 AM, Markus Armbruster<armbru@redhat.com>  wrote:
>> Paolo Bonzini<pbonzini@redhat.com>  writes:
>>
>>> On 10/06/2010 11:32 PM, Blue Swirl wrote:
>>>> Compiling with GCC 4.6.0 20100925 produced a warning:
>>>> /src/qemu/hw/lsi53c895a.c: In function 'lsi_do_msgout':
>>>> /src/qemu/hw/lsi53c895a.c:848:9: error: variable 'len' set but not
>>>> used [-Werror=unused-but-set-variable]
>>>>
>>>> Fix by making the variable declaration and its uses also conditional
>>>> to debug definition.
>>>
>>> NACK, this uglifies the code and loses track of _what_ is that msgbyte
>>> we're reading.
>
> That information could be saved by adding a comment, I used that
> approach for vmstate.c.

Yes, that's fine for vmstate.c, but here you are also uselessly 
duplicating the code.  (void) len is good though.  I suggest doing the 
same for i386 too (and there you could put a reference to the manual).

Paolo

Patch

diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index 5eaf69e..db28f06 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -845,8 +845,9 @@  static uint8_t lsi_get_msgbyte(LSIState *s)
 static void lsi_do_msgout(LSIState *s)
 {
     uint8_t msg;
+#ifdef DEBUG_LSI
     int len;
-
+#endif
     DPRINTF("MSG out len=%d\n", s->dbc);
     while (s->dbc) {
         msg = lsi_get_msgbyte(s);
@@ -862,7 +863,11 @@  static void lsi_do_msgout(LSIState *s)
             lsi_set_phase(s, PHASE_CMD);
             break;
         case 0x01:
+#ifdef DEBUG_LSI
             len = lsi_get_msgbyte(s);
+#else
+            (void)lsi_get_msgbyte(s);
+#endif
             msg = lsi_get_msgbyte(s);
             DPRINTF("Extended message 0x%x (len %d)\n", msg, len);
             switch (msg) {