Patchwork fix warnings from printf target addresses

login
register
mail settings
Submitter Mike Frysinger
Date Sept. 16, 2012, 12:05 a.m.
Message ID <1347753913-5305-1-git-send-email-vapier@gentoo.org>
Download mbox | patch
Permalink /patch/184109/
State New
Headers show

Comments

Mike Frysinger - Sept. 16, 2012, 12:05 a.m.
Current code triggers:
memory.c: In function 'invalid_read':
memory.c:1001: warning: format '%#x' expects type 'unsigned int',
	but argument 4 has type 'target_phys_addr_t'
memory.c: In function 'invalid_write':
memory.c:1013: warning: format '%#x' expects type 'unsigned int',
	but argument 4 has type 'target_phys_addr_t'

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 memory.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
Blue Swirl - Sept. 16, 2012, 7:24 a.m.
On Sun, Sep 16, 2012 at 12:05 AM, Mike Frysinger <vapier@gentoo.org> wrote:
> Current code triggers:
> memory.c: In function 'invalid_read':
> memory.c:1001: warning: format '%#x' expects type 'unsigned int',
>         but argument 4 has type 'target_phys_addr_t'
> memory.c: In function 'invalid_write':
> memory.c:1013: warning: format '%#x' expects type 'unsigned int',
>         but argument 4 has type 'target_phys_addr_t'
>
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> ---
>  memory.c |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/memory.c b/memory.c
> index 58a242d..7d5f4a3 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -998,7 +998,8 @@ static uint64_t invalid_read(void *opaque, target_phys_addr_t addr,
>      MemoryRegion *mr = opaque;
>
>      if (!mr->warning_printed) {
> -        fprintf(stderr, "Invalid read from memory region %s at offset %#x\n", mr->name, addr);
> +        fprintf(stderr, "Invalid read from memory region %s at offset %#llx\n",
> +                mr->name, (unsigned long long)addr);

The right way is not adding potentially dangerous casts but using
TARGET_PRIxPHYS or TARGET_FMT_plx.

>          mr->warning_printed = true;
>      }
>      return -1U;
> @@ -1010,7 +1011,8 @@ static void invalid_write(void *opaque, target_phys_addr_t addr, uint64_t data,
>      MemoryRegion *mr = opaque;
>
>      if (!mr->warning_printed) {
> -        fprintf(stderr, "Invalid write to memory region %s at offset %#x\n", mr->name, addr);
> +        fprintf(stderr, "Invalid write to memory region %s at offset %#llx\n",
> +                mr->name, (unsigned long long)addr);
>          mr->warning_printed = true;
>      }
>  }
> --
> 1.7.9.7
>
>
Jan Kiszka - Sept. 16, 2012, 7:31 a.m.
On 2012-09-16 02:05, Mike Frysinger wrote:
> Current code triggers:
> memory.c: In function 'invalid_read':
> memory.c:1001: warning: format '%#x' expects type 'unsigned int',
> 	but argument 4 has type 'target_phys_addr_t'
> memory.c: In function 'invalid_write':
> memory.c:1013: warning: format '%#x' expects type 'unsigned int',
> 	but argument 4 has type 'target_phys_addr_t'

This version was never in git. Which QEMU are you patching, a local one?

Jan

> 
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> ---
>  memory.c |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/memory.c b/memory.c
> index 58a242d..7d5f4a3 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -998,7 +998,8 @@ static uint64_t invalid_read(void *opaque, target_phys_addr_t addr,
>      MemoryRegion *mr = opaque;
>  
>      if (!mr->warning_printed) {
> -        fprintf(stderr, "Invalid read from memory region %s at offset %#x\n", mr->name, addr);
> +        fprintf(stderr, "Invalid read from memory region %s at offset %#llx\n",
> +                mr->name, (unsigned long long)addr);
>          mr->warning_printed = true;
>      }
>      return -1U;
> @@ -1010,7 +1011,8 @@ static void invalid_write(void *opaque, target_phys_addr_t addr, uint64_t data,
>      MemoryRegion *mr = opaque;
>  
>      if (!mr->warning_printed) {
> -        fprintf(stderr, "Invalid write to memory region %s at offset %#x\n", mr->name, addr);
> +        fprintf(stderr, "Invalid write to memory region %s at offset %#llx\n",
> +                mr->name, (unsigned long long)addr);
>          mr->warning_printed = true;
>      }
>  }
>
Mike Frysinger - Sept. 16, 2012, 7:38 p.m.
On Sunday 16 September 2012 03:24:22 Blue Swirl wrote:
> On Sun, Sep 16, 2012 at 12:05 AM, Mike Frysinger wrote:
> > Current code triggers:
> > memory.c: In function 'invalid_read':
> > memory.c:1001: warning: format '%#x' expects type 'unsigned int',
> >         but argument 4 has type 'target_phys_addr_t'
> > memory.c: In function 'invalid_write':
> > memory.c:1013: warning: format '%#x' expects type 'unsigned int',
> >         but argument 4 has type 'target_phys_addr_t'
> > 
> > -        fprintf(stderr, "Invalid read from memory region %s at offset
> > %#x\n", mr->name, addr); +        fprintf(stderr, "Invalid read from
> > memory region %s at offset %#llx\n", +                mr->name,
> > (unsigned long long)addr);
> 
> The right way is not adding potentially dangerous casts

they're not dangerous here at all

> but using TARGET_PRIxPHYS or TARGET_FMT_plx.

np.  i just copied what was already in memory.c, but i guess that's broken 
too.
-mike

Patch

diff --git a/memory.c b/memory.c
index 58a242d..7d5f4a3 100644
--- a/memory.c
+++ b/memory.c
@@ -998,7 +998,8 @@  static uint64_t invalid_read(void *opaque, target_phys_addr_t addr,
     MemoryRegion *mr = opaque;
 
     if (!mr->warning_printed) {
-        fprintf(stderr, "Invalid read from memory region %s at offset %#x\n", mr->name, addr);
+        fprintf(stderr, "Invalid read from memory region %s at offset %#llx\n",
+                mr->name, (unsigned long long)addr);
         mr->warning_printed = true;
     }
     return -1U;
@@ -1010,7 +1011,8 @@  static void invalid_write(void *opaque, target_phys_addr_t addr, uint64_t data,
     MemoryRegion *mr = opaque;
 
     if (!mr->warning_printed) {
-        fprintf(stderr, "Invalid write to memory region %s at offset %#x\n", mr->name, addr);
+        fprintf(stderr, "Invalid write to memory region %s at offset %#llx\n",
+                mr->name, (unsigned long long)addr);
         mr->warning_printed = true;
     }
 }