diff mbox series

[v2,2/2] hw/timer/hpet: Fix DPRINTF format string

Message ID 20200910135852.516809-3-philmd@redhat.com
State Superseded
Headers show
Series hw/timer/hpet: Trivial format string fix | expand

Commit Message

Philippe Mathieu-Daudé Sept. 10, 2020, 1:58 p.m. UTC
Fix building with HPET_DEBUG enabled:

  hw/timer/hpet.c:512:73: error: format specifies type 'unsigned int' but the argument has type 'uint64_t' (aka 'unsigned long') [-Werror,-Wformat]
      DPRINTF("qemu: Enter hpet_ram_writel at %" PRIx64 " = %#x\n", addr, value);
                                                            ~~~           ^~~~~
                                                            %#lx
  hw/timer/hpet.c:655:21: error: format specifies type 'unsigned int' but the argument has type 'uint64_t' (aka 'unsigned long') [-Werror,-Wformat]
                      value, s->hpet_counter);
                      ^~~~~

Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/timer/hpet.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

Comments

Dov Murik Sept. 12, 2020, 5:40 p.m. UTC | #1
Hi Phil,

On 10/09/2020 16:58, Philippe Mathieu-Daudé wrote:
> Fix building with HPET_DEBUG enabled:
> 
>    hw/timer/hpet.c:512:73: error: format specifies type 'unsigned int' but the argument has type 'uint64_t' (aka 'unsigned long') [-Werror,-Wformat]
>        DPRINTF("qemu: Enter hpet_ram_writel at %" PRIx64 " = %#x\n", addr, value);
>                                                              ~~~           ^~~~~
>                                                              %#lx
>    hw/timer/hpet.c:655:21: error: format specifies type 'unsigned int' but the argument has type 'uint64_t' (aka 'unsigned long') [-Werror,-Wformat]
>                        value, s->hpet_counter);
>                        ^~~~~
> 
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>   hw/timer/hpet.c | 9 ++++++---
>   1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
> index b683f64f1d3..20bd0388740 100644
> --- a/hw/timer/hpet.c
> +++ b/hw/timer/hpet.c
> @@ -495,7 +495,8 @@ static void hpet_ram_write(void *opaque, hwaddr addr,
>       HPETState *s = opaque;
>       uint64_t old_val, new_val, val, index;
> 
> -    DPRINTF("qemu: Enter hpet_ram_writel at %" PRIx64 " = %#x\n", addr, value);
> +    DPRINTF("qemu: Enter hpet_ram_writel at %#" HWADDR_PRIx " = %#"PRIx64"\n",
> +            addr, value);

You still use "#" in the format string; but qemu's CODING_STYLE.rst says:

//////////////

'#' printf flag
---------------

Do not use printf flag '#', like '%#x'.

Rationale: there are two ways to add a '0x' prefix to printed number: 
'0x%...'
and '%#...'. For consistency the only one way should be used. Arguments for
'0x%' are:

* it is more popular
* '%#' omits the 0x for the value 0 which makes output inconsistent

//////////////



According to that, I think the better solution would be:

DPRINTF("qemu: Enter hpet_ram_writel at 0x%" HWADDR_PRIx
         " = 0x%" PRIx64 "\n", addr, value);




>       index = addr;
>       old_val = hpet_ram_read(opaque, addr, 4);
>       new_val = value;
> @@ -637,7 +638,8 @@ static void hpet_ram_write(void *opaque, hwaddr addr,
>               }
>               s->hpet_counter =
>                   (s->hpet_counter & 0xffffffff00000000ULL) | value;
> -            DPRINTF("qemu: HPET counter written. ctr = %#x -> %" PRIx64 "\n",
> +            DPRINTF("qemu: HPET counter written. ctr = %#"
> +                    PRIx64 " -> %#" PRIx64 "\n",

ditto.

>                       value, s->hpet_counter);
>               break;
>           case HPET_COUNTER + 4:
> @@ -646,7 +648,8 @@ static void hpet_ram_write(void *opaque, hwaddr addr,
>               }
>               s->hpet_counter =
>                   (s->hpet_counter & 0xffffffffULL) | (((uint64_t)value) << 32);
> -            DPRINTF("qemu: HPET counter + 4 written. ctr = %#x -> %" PRIx64 "\n",
> +            DPRINTF("qemu: HPET counter + 4 written. ctr = %#"
> +                    PRIx64 " -> %#" PRIx64 "\n",

ditto.

>                       value, s->hpet_counter);
>               break;
>           default:
> 

-Dov
Philippe Mathieu-Daudé Sept. 13, 2020, 11:40 a.m. UTC | #2
On 9/12/20 7:40 PM, Dov Murik wrote:
> Hi Phil,
> 
> On 10/09/2020 16:58, Philippe Mathieu-Daudé wrote:
>> Fix building with HPET_DEBUG enabled:
>>
>>    hw/timer/hpet.c:512:73: error: format specifies type 'unsigned int'
>> but the argument has type 'uint64_t' (aka 'unsigned long')
>> [-Werror,-Wformat]
>>        DPRINTF("qemu: Enter hpet_ram_writel at %" PRIx64 " = %#x\n",
>> addr, value);
>>                                                             
>> ~~~           ^~~~~
>>                                                              %#lx
>>    hw/timer/hpet.c:655:21: error: format specifies type 'unsigned int'
>> but the argument has type 'uint64_t' (aka 'unsigned long')
>> [-Werror,-Wformat]
>>                        value, s->hpet_counter);
>>                        ^~~~~
>>
>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>> Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>> ---
>>   hw/timer/hpet.c | 9 ++++++---
>>   1 file changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
>> index b683f64f1d3..20bd0388740 100644
>> --- a/hw/timer/hpet.c
>> +++ b/hw/timer/hpet.c
>> @@ -495,7 +495,8 @@ static void hpet_ram_write(void *opaque, hwaddr addr,
>>       HPETState *s = opaque;
>>       uint64_t old_val, new_val, val, index;
>>
>> -    DPRINTF("qemu: Enter hpet_ram_writel at %" PRIx64 " = %#x\n",
>> addr, value);
>> +    DPRINTF("qemu: Enter hpet_ram_writel at %#" HWADDR_PRIx " =
>> %#"PRIx64"\n",
>> +            addr, value);
> 
> You still use "#" in the format string; but qemu's CODING_STYLE.rst says:
> 
> //////////////
> 
> '#' printf flag
> ---------------
> 
> Do not use printf flag '#', like '%#x'.
> 
> Rationale: there are two ways to add a '0x' prefix to printed number:
> '0x%...'
> and '%#...'. For consistency the only one way should be used. Arguments for
> '0x%' are:
> 
> * it is more popular
> * '%#' omits the 0x for the value 0 which makes output inconsistent

Yes you are right, I missed that.

Do you mind adding that check to ./checkpatch?

> 
> //////////////
> 
> 
> 
> According to that, I think the better solution would be:
> 
> DPRINTF("qemu: Enter hpet_ram_writel at 0x%" HWADDR_PRIx
>         " = 0x%" PRIx64 "\n", addr, value);
> 
> 
> 
> 
>>       index = addr;
>>       old_val = hpet_ram_read(opaque, addr, 4);
>>       new_val = value;
>> @@ -637,7 +638,8 @@ static void hpet_ram_write(void *opaque, hwaddr addr,
>>               }
>>               s->hpet_counter =
>>                   (s->hpet_counter & 0xffffffff00000000ULL) | value;
>> -            DPRINTF("qemu: HPET counter written. ctr = %#x -> %"
>> PRIx64 "\n",
>> +            DPRINTF("qemu: HPET counter written. ctr = %#"
>> +                    PRIx64 " -> %#" PRIx64 "\n",
> 
> ditto.
> 
>>                       value, s->hpet_counter);
>>               break;
>>           case HPET_COUNTER + 4:
>> @@ -646,7 +648,8 @@ static void hpet_ram_write(void *opaque, hwaddr addr,
>>               }
>>               s->hpet_counter =
>>                   (s->hpet_counter & 0xffffffffULL) |
>> (((uint64_t)value) << 32);
>> -            DPRINTF("qemu: HPET counter + 4 written. ctr = %#x -> %"
>> PRIx64 "\n",
>> +            DPRINTF("qemu: HPET counter + 4 written. ctr = %#"
>> +                    PRIx64 " -> %#" PRIx64 "\n",
> 
> ditto.
> 
>>                       value, s->hpet_counter);
>>               break;
>>           default:
>>
> 
> -Dov
>
diff mbox series

Patch

diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
index b683f64f1d3..20bd0388740 100644
--- a/hw/timer/hpet.c
+++ b/hw/timer/hpet.c
@@ -495,7 +495,8 @@  static void hpet_ram_write(void *opaque, hwaddr addr,
     HPETState *s = opaque;
     uint64_t old_val, new_val, val, index;
 
-    DPRINTF("qemu: Enter hpet_ram_writel at %" PRIx64 " = %#x\n", addr, value);
+    DPRINTF("qemu: Enter hpet_ram_writel at %#" HWADDR_PRIx " = %#"PRIx64"\n",
+            addr, value);
     index = addr;
     old_val = hpet_ram_read(opaque, addr, 4);
     new_val = value;
@@ -637,7 +638,8 @@  static void hpet_ram_write(void *opaque, hwaddr addr,
             }
             s->hpet_counter =
                 (s->hpet_counter & 0xffffffff00000000ULL) | value;
-            DPRINTF("qemu: HPET counter written. ctr = %#x -> %" PRIx64 "\n",
+            DPRINTF("qemu: HPET counter written. ctr = %#"
+                    PRIx64 " -> %#" PRIx64 "\n",
                     value, s->hpet_counter);
             break;
         case HPET_COUNTER + 4:
@@ -646,7 +648,8 @@  static void hpet_ram_write(void *opaque, hwaddr addr,
             }
             s->hpet_counter =
                 (s->hpet_counter & 0xffffffffULL) | (((uint64_t)value) << 32);
-            DPRINTF("qemu: HPET counter + 4 written. ctr = %#x -> %" PRIx64 "\n",
+            DPRINTF("qemu: HPET counter + 4 written. ctr = %#"
+                    PRIx64 " -> %#" PRIx64 "\n",
                     value, s->hpet_counter);
             break;
         default: