qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] es1370: Fix compiler warnings for debug code
@ 2010-09-30 19:08 Stefan Weil
  2010-09-30 20:33 ` malc
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Weil @ 2010-09-30 19:08 UTC (permalink / raw)
  To: QEMU Developers; +Cc: Blue Swirl

The patch fixes these gcc warnings:

./hw/es1370.c: In function ‘es1370_update_voices’:
./hw/es1370.c:411: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
./hw/es1370.c: In function ‘es1370_writel’:
./hw/es1370.c:579: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
./hw/es1370.c:589: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
./hw/es1370.c:606: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
./hw/es1370.c: In function ‘es1370_readl’:
./hw/es1370.c:748: error: suggest braces around empty body in an ‘if’ statement

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
 hw/es1370.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/hw/es1370.c b/hw/es1370.c
index 40cb48c..c87bbf2 100644
--- a/hw/es1370.c
+++ b/hw/es1370.c
@@ -408,7 +408,7 @@ static void es1370_update_voices (ES1370State *s, uint32_t ctl, uint32_t sctl)
 
         if ((old_fmt != new_fmt) || (old_freq != new_freq)) {
             d->shift = (new_fmt & 1) + (new_fmt >> 1);
-            ldebug ("channel %d, freq = %d, nchannels %d, fmt %d, shift %d\n",
+            ldebug ("channel %zu, freq = %d, nchannels %d, fmt %d, shift %d\n",
                     i,
                     new_freq,
                     1 << (new_fmt & 1),
@@ -576,7 +576,7 @@ IO_WRITE_PROTO (es1370_writel)
         d++;
     case ES1370_REG_DAC1_SCOUNT:
         d->scount = (val & 0xffff) | (d->scount & ~0xffff);
-        ldebug ("chan %d CURR_SAMP_CT %d, SAMP_CT %d\n",
+        ldebug ("chan %ld CURR_SAMP_CT %d, SAMP_CT %d\n",
                 d - &s->chan[0], val >> 16, (val & 0xffff));
         break;
 
@@ -586,7 +586,7 @@ IO_WRITE_PROTO (es1370_writel)
         d++;
     case ES1370_REG_DAC1_FRAMEADR:
         d->frame_addr = val;
-        ldebug ("chan %d frame address %#x\n", d - &s->chan[0], val);
+        ldebug ("chan %ld frame address %#x\n", d - &s->chan[0], val);
         break;
 
     case ES1370_REG_PHANTOM_FRAMECNT:
@@ -603,7 +603,7 @@ IO_WRITE_PROTO (es1370_writel)
     case ES1370_REG_DAC1_FRAMECNT:
         d->frame_cnt = val;
         d->leftover = 0;
-        ldebug ("chan %d frame count %d, buffer size %d\n",
+        ldebug ("chan %ld frame count %d, buffer size %d\n",
                 d - &s->chan[0], val >> 16, val & 0xffff);
         break;
 
@@ -743,9 +743,10 @@ IO_READ_PROTO (es1370_readl)
         {
             uint32_t size = ((d->frame_cnt & 0xffff) + 1) << 2;
             uint32_t curr = ((d->frame_cnt >> 16) + 1) << 2;
-            if (curr > size)
+            if (curr > size) {
                 dolog ("read framecnt curr %d, size %d %d\n", curr, size,
                        curr > size);
+            }
         }
 #endif
         break;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH] es1370: Fix compiler warnings for debug code
  2010-09-30 19:08 [Qemu-devel] [PATCH] es1370: Fix compiler warnings for debug code Stefan Weil
@ 2010-09-30 20:33 ` malc
  2010-10-01 18:05   ` [Qemu-devel] [PATCH v2] " Stefan Weil
  0 siblings, 1 reply; 7+ messages in thread
From: malc @ 2010-09-30 20:33 UTC (permalink / raw)
  To: Stefan Weil; +Cc: Blue Swirl, QEMU Developers

On Thu, 30 Sep 2010, Stefan Weil wrote:

> The patch fixes these gcc warnings:
> 
> ./hw/es1370.c: In function ?es1370_update_voices?:
> ./hw/es1370.c:411: error: format ?%d? expects type ?int?, but argument 3 has type ?size_t?
> ./hw/es1370.c: In function ?es1370_writel?:
> ./hw/es1370.c:579: error: format ?%d? expects type ?int?, but argument 3 has type ?long int?
> ./hw/es1370.c:589: error: format ?%d? expects type ?int?, but argument 3 has type ?long int?
> ./hw/es1370.c:606: error: format ?%d? expects type ?int?, but argument 3 has type ?long int?
> ./hw/es1370.c: In function ?es1370_readl?:
> ./hw/es1370.c:748: error: suggest braces around empty body in an ?if? statement
> 
> Cc: Blue Swirl <blauwirbel@gmail.com>
> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
> ---
>  hw/es1370.c |   11 ++++++-----
>  1 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/es1370.c b/hw/es1370.c
> index 40cb48c..c87bbf2 100644
> --- a/hw/es1370.c
> +++ b/hw/es1370.c
> @@ -408,7 +408,7 @@ static void es1370_update_voices (ES1370State *s, uint32_t ctl, uint32_t sctl)
>  
>          if ((old_fmt != new_fmt) || (old_freq != new_freq)) {
>              d->shift = (new_fmt & 1) + (new_fmt >> 1);
> -            ldebug ("channel %d, freq = %d, nchannels %d, fmt %d, shift %d\n",
> +            ldebug ("channel %zu, freq = %d, nchannels %d, fmt %d, shift %d\n",
>                      i,
>                      new_freq,
>                      1 << (new_fmt & 1),
> @@ -576,7 +576,7 @@ IO_WRITE_PROTO (es1370_writel)
>          d++;
>      case ES1370_REG_DAC1_SCOUNT:
>          d->scount = (val & 0xffff) | (d->scount & ~0xffff);
> -        ldebug ("chan %d CURR_SAMP_CT %d, SAMP_CT %d\n",
> +        ldebug ("chan %ld CURR_SAMP_CT %d, SAMP_CT %d\n",
>                  d - &s->chan[0], val >> 16, (val & 0xffff));
>          break;
>  
> @@ -586,7 +586,7 @@ IO_WRITE_PROTO (es1370_writel)
>          d++;
>      case ES1370_REG_DAC1_FRAMEADR:
>          d->frame_addr = val;
> -        ldebug ("chan %d frame address %#x\n", d - &s->chan[0], val);
> +        ldebug ("chan %ld frame address %#x\n", d - &s->chan[0], val);
>          break;
>  
>      case ES1370_REG_PHANTOM_FRAMECNT:
> @@ -603,7 +603,7 @@ IO_WRITE_PROTO (es1370_writel)
>      case ES1370_REG_DAC1_FRAMECNT:
>          d->frame_cnt = val;
>          d->leftover = 0;
> -        ldebug ("chan %d frame count %d, buffer size %d\n",
> +        ldebug ("chan %ld frame count %d, buffer size %d\n",
>                  d - &s->chan[0], val >> 16, val & 0xffff);
>          break;
>  
> @@ -743,9 +743,10 @@ IO_READ_PROTO (es1370_readl)
>          {
>              uint32_t size = ((d->frame_cnt & 0xffff) + 1) << 2;
>              uint32_t curr = ((d->frame_cnt >> 16) + 1) << 2;
> -            if (curr > size)
> +            if (curr > size) {
>                  dolog ("read framecnt curr %d, size %d %d\n", curr, size,
>                         curr > size);
> +            }
>          }
>  #endif
>          break;
> 

typeof(ptr a - ptr b) = ptrdiff, not an %ld here on ppc32, so no, this
"fix" is not correct.

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH v2] es1370: Fix compiler warnings for debug code
  2010-09-30 20:33 ` malc
@ 2010-10-01 18:05   ` Stefan Weil
  2010-10-01 18:22     ` Markus Armbruster
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Weil @ 2010-10-01 18:05 UTC (permalink / raw)
  To: QEMU Developers; +Cc: Blue Swirl

The patch fixes these gcc warnings:

./hw/es1370.c: In function ‘es1370_update_voices’:
./hw/es1370.c:411: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
./hw/es1370.c: In function ‘es1370_writel’:
./hw/es1370.c:579: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
./hw/es1370.c:589: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
./hw/es1370.c:606: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
./hw/es1370.c: In function ‘es1370_readl’:
./hw/es1370.c:748: error: suggest braces around empty body in an ‘if’ statement

v2

* Use %zd for pointer differences (ptrdiff_t or ssize_t).
  The gcc error message ("long int") was misleading.
  Malc, thank you for this hint.

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: malc <av1474@comtv.ru>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
 hw/es1370.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/hw/es1370.c b/hw/es1370.c
index 40cb48c..591dbd0 100644
--- a/hw/es1370.c
+++ b/hw/es1370.c
@@ -408,7 +408,7 @@ static void es1370_update_voices (ES1370State *s, uint32_t ctl, uint32_t sctl)
 
         if ((old_fmt != new_fmt) || (old_freq != new_freq)) {
             d->shift = (new_fmt & 1) + (new_fmt >> 1);
-            ldebug ("channel %d, freq = %d, nchannels %d, fmt %d, shift %d\n",
+            ldebug ("channel %zu, freq = %d, nchannels %d, fmt %d, shift %d\n",
                     i,
                     new_freq,
                     1 << (new_fmt & 1),
@@ -576,7 +576,7 @@ IO_WRITE_PROTO (es1370_writel)
         d++;
     case ES1370_REG_DAC1_SCOUNT:
         d->scount = (val & 0xffff) | (d->scount & ~0xffff);
-        ldebug ("chan %d CURR_SAMP_CT %d, SAMP_CT %d\n",
+        ldebug ("chan %zd CURR_SAMP_CT %d, SAMP_CT %d\n",
                 d - &s->chan[0], val >> 16, (val & 0xffff));
         break;
 
@@ -586,7 +586,7 @@ IO_WRITE_PROTO (es1370_writel)
         d++;
     case ES1370_REG_DAC1_FRAMEADR:
         d->frame_addr = val;
-        ldebug ("chan %d frame address %#x\n", d - &s->chan[0], val);
+        ldebug ("chan %zd frame address %#x\n", d - &s->chan[0], val);
         break;
 
     case ES1370_REG_PHANTOM_FRAMECNT:
@@ -603,7 +603,7 @@ IO_WRITE_PROTO (es1370_writel)
     case ES1370_REG_DAC1_FRAMECNT:
         d->frame_cnt = val;
         d->leftover = 0;
-        ldebug ("chan %d frame count %d, buffer size %d\n",
+        ldebug ("chan %zd frame count %d, buffer size %d\n",
                 d - &s->chan[0], val >> 16, val & 0xffff);
         break;
 
@@ -743,9 +743,10 @@ IO_READ_PROTO (es1370_readl)
         {
             uint32_t size = ((d->frame_cnt & 0xffff) + 1) << 2;
             uint32_t curr = ((d->frame_cnt >> 16) + 1) << 2;
-            if (curr > size)
+            if (curr > size) {
                 dolog ("read framecnt curr %d, size %d %d\n", curr, size,
                        curr > size);
+            }
         }
 #endif
         break;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH v2] es1370: Fix compiler warnings for debug code
  2010-10-01 18:05   ` [Qemu-devel] [PATCH v2] " Stefan Weil
@ 2010-10-01 18:22     ` Markus Armbruster
  2010-10-02  9:46       ` Stefan Weil
  2010-10-02 10:20       ` [Qemu-devel] [PATCH v3] " Stefan Weil
  0 siblings, 2 replies; 7+ messages in thread
From: Markus Armbruster @ 2010-10-01 18:22 UTC (permalink / raw)
  To: Stefan Weil; +Cc: Blue Swirl, QEMU Developers

Stefan Weil <weil@mail.berlios.de> writes:

> The patch fixes these gcc warnings:
>
> ./hw/es1370.c: In function ‘es1370_update_voices’:
> ./hw/es1370.c:411: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
> ./hw/es1370.c: In function ‘es1370_writel’:
> ./hw/es1370.c:579: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
> ./hw/es1370.c:589: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
> ./hw/es1370.c:606: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
> ./hw/es1370.c: In function ‘es1370_readl’:
> ./hw/es1370.c:748: error: suggest braces around empty body in an ‘if’ statement
>
> v2
>
> * Use %zd for pointer differences (ptrdiff_t or ssize_t).
>   The gcc error message ("long int") was misleading.
>   Malc, thank you for this hint.

The correct length modifier for ptrdiff_t is 't', not 'z'.
ISO/IEC 9899:1999 7.19.6.1:

       z            Specifies that a following d, i, o, u, x, or  X
                    conversion specifier applies to a size_t or the
                    corresponding signed integer type argument;  or
                    that a following n conversion specifier applies
                    to  a  pointer  to  a   signed   integer   type
                    corresponding to size_t argument.

       t            Specifies  that a following d, i, o, u, x, or X
                    conversion specifier applies to a ptrdiff_t  or
                    the   corresponding   unsigned   integer   type
                    argument; or  that  a  following  n  conversion
                    specifier  applies  to a pointer to a ptrdiff_t
                    argument.

Not that it makes a difference in practice.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH v2] es1370: Fix compiler warnings for debug code
  2010-10-01 18:22     ` Markus Armbruster
@ 2010-10-02  9:46       ` Stefan Weil
  2010-10-02 10:20       ` [Qemu-devel] [PATCH v3] " Stefan Weil
  1 sibling, 0 replies; 7+ messages in thread
From: Stefan Weil @ 2010-10-02  9:46 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: Blue Swirl, QEMU Developers

Am 01.10.2010 20:22, schrieb Markus Armbruster:
> Stefan Weil <weil@mail.berlios.de> writes:
>> The patch fixes these gcc warnings:
>>
>> ./hw/es1370.c: In function ‘es1370_update_voices’:
>> ./hw/es1370.c:411: error: format ‘%d’ expects type ‘int’, but 
>> argument 3 has type ‘size_t’
>> ./hw/es1370.c: In function ‘es1370_writel’:
>> ./hw/es1370.c:579: error: format ‘%d’ expects type ‘int’, but 
>> argument 3 has type ‘long int’
>> ./hw/es1370.c:589: error: format ‘%d’ expects type ‘int’, but 
>> argument 3 has type ‘long int’
>> ./hw/es1370.c:606: error: format ‘%d’ expects type ‘int’, but 
>> argument 3 has type ‘long int’
>> ./hw/es1370.c: In function ‘es1370_readl’:
>> ./hw/es1370.c:748: error: suggest braces around empty body in an ‘if’ 
>> statement
>>
>> v2
>>
>> * Use %zd for pointer differences (ptrdiff_t or ssize_t).
>> The gcc error message ("long int") was misleading.
>> Malc, thank you for this hint.
>
> The correct length modifier for ptrdiff_t is 't', not 'z'.
> ISO/IEC 9899:1999 7.19.6.1:
>
> z Specifies that a following d, i, o, u, x, or X
> conversion specifier applies to a size_t or the
> corresponding signed integer type argument; or
> that a following n conversion specifier applies
> to a pointer to a signed integer type
> corresponding to size_t argument.
>
> t Specifies that a following d, i, o, u, x, or X
> conversion specifier applies to a ptrdiff_t or
> the corresponding unsigned integer type
> argument; or that a following n conversion
> specifier applies to a pointer to a ptrdiff_t
> argument.
>
> Not that it makes a difference in practice.


It's always good to learn more. I must admit that I never
used %td before, but it exists, it is obviously supported,
so it should be used.

Therefore I'll send a third version of my patch, and also
patches which fix the other locations in qemu which use
%zd instead of %td for ptrdiff_t.

Thanks,
Stefan

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH v3] es1370: Fix compiler warnings for debug code
  2010-10-01 18:22     ` Markus Armbruster
  2010-10-02  9:46       ` Stefan Weil
@ 2010-10-02 10:20       ` Stefan Weil
  2010-10-02 14:10         ` [Qemu-devel] " malc
  1 sibling, 1 reply; 7+ messages in thread
From: Stefan Weil @ 2010-10-02 10:20 UTC (permalink / raw)
  To: QEMU Developers; +Cc: Blue Swirl, Markus Armbruster

The patch fixes these gcc warnings:

./hw/es1370.c: In function ‘es1370_update_voices’:
./hw/es1370.c:411: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
./hw/es1370.c: In function ‘es1370_writel’:
./hw/es1370.c:579: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
./hw/es1370.c:589: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
./hw/es1370.c:606: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long int’
./hw/es1370.c: In function ‘es1370_readl’:
./hw/es1370.c:748: error: suggest braces around empty body in an ‘if’ statement

v2

* Use %zd for pointer differences (ptrdiff_t or ssize_t).
  The gcc error message ("long int") was misleading.
  Malc, thank you for this hint.

v3

* Use %td for ptrdiff_t arguments.
  Thanks to Markus Armbruster for this hint.

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: malc <av1474@comtv.ru>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
 hw/es1370.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/hw/es1370.c b/hw/es1370.c
index 40cb48c..850ffc9 100644
--- a/hw/es1370.c
+++ b/hw/es1370.c
@@ -408,7 +408,7 @@ static void es1370_update_voices (ES1370State *s, uint32_t ctl, uint32_t sctl)
 
         if ((old_fmt != new_fmt) || (old_freq != new_freq)) {
             d->shift = (new_fmt & 1) + (new_fmt >> 1);
-            ldebug ("channel %d, freq = %d, nchannels %d, fmt %d, shift %d\n",
+            ldebug ("channel %zu, freq = %d, nchannels %d, fmt %d, shift %d\n",
                     i,
                     new_freq,
                     1 << (new_fmt & 1),
@@ -576,7 +576,7 @@ IO_WRITE_PROTO (es1370_writel)
         d++;
     case ES1370_REG_DAC1_SCOUNT:
         d->scount = (val & 0xffff) | (d->scount & ~0xffff);
-        ldebug ("chan %d CURR_SAMP_CT %d, SAMP_CT %d\n",
+        ldebug ("chan %td CURR_SAMP_CT %d, SAMP_CT %d\n",
                 d - &s->chan[0], val >> 16, (val & 0xffff));
         break;
 
@@ -586,7 +586,7 @@ IO_WRITE_PROTO (es1370_writel)
         d++;
     case ES1370_REG_DAC1_FRAMEADR:
         d->frame_addr = val;
-        ldebug ("chan %d frame address %#x\n", d - &s->chan[0], val);
+        ldebug ("chan %td frame address %#x\n", d - &s->chan[0], val);
         break;
 
     case ES1370_REG_PHANTOM_FRAMECNT:
@@ -603,7 +603,7 @@ IO_WRITE_PROTO (es1370_writel)
     case ES1370_REG_DAC1_FRAMECNT:
         d->frame_cnt = val;
         d->leftover = 0;
-        ldebug ("chan %d frame count %d, buffer size %d\n",
+        ldebug ("chan %td frame count %d, buffer size %d\n",
                 d - &s->chan[0], val >> 16, val & 0xffff);
         break;
 
@@ -743,9 +743,10 @@ IO_READ_PROTO (es1370_readl)
         {
             uint32_t size = ((d->frame_cnt & 0xffff) + 1) << 2;
             uint32_t curr = ((d->frame_cnt >> 16) + 1) << 2;
-            if (curr > size)
+            if (curr > size) {
                 dolog ("read framecnt curr %d, size %d %d\n", curr, size,
                        curr > size);
+            }
         }
 #endif
         break;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] Re: [PATCH v3] es1370: Fix compiler warnings for debug code
  2010-10-02 10:20       ` [Qemu-devel] [PATCH v3] " Stefan Weil
@ 2010-10-02 14:10         ` malc
  0 siblings, 0 replies; 7+ messages in thread
From: malc @ 2010-10-02 14:10 UTC (permalink / raw)
  To: Stefan Weil; +Cc: Blue Swirl, QEMU Developers, Markus Armbruster

On Sat, 2 Oct 2010, Stefan Weil wrote:

> The patch fixes these gcc warnings:
> 
> ./hw/es1370.c: In function ?es1370_update_voices?:
> ./hw/es1370.c:411: error: format ?%d? expects type ?int?, but argument 3 has type ?size_t?
> ./hw/es1370.c: In function ?es1370_writel?:
> ./hw/es1370.c:579: error: format ?%d? expects type ?int?, but argument 3 has type ?long int?
> ./hw/es1370.c:589: error: format ?%d? expects type ?int?, but argument 3 has type ?long int?
> ./hw/es1370.c:606: error: format ?%d? expects type ?int?, but argument 3 has type ?long int?
> ./hw/es1370.c: In function ?es1370_readl?:
> ./hw/es1370.c:748: error: suggest braces around empty body in an ?if? statement
> 
[..snip..]

Thanks, applied. 

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-10-02 14:10 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-30 19:08 [Qemu-devel] [PATCH] es1370: Fix compiler warnings for debug code Stefan Weil
2010-09-30 20:33 ` malc
2010-10-01 18:05   ` [Qemu-devel] [PATCH v2] " Stefan Weil
2010-10-01 18:22     ` Markus Armbruster
2010-10-02  9:46       ` Stefan Weil
2010-10-02 10:20       ` [Qemu-devel] [PATCH v3] " Stefan Weil
2010-10-02 14:10         ` [Qemu-devel] " malc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).