From da9ecd6085aa03f6f671f1e42431642912635820 Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Mon, 1 Feb 2021 11:37:46 +0000 Subject: [PATCH] sim/rx: avoid pointer arithmetic on void * pointers Pointer arithmetic on void * pointers results in a GCC warning. Avoid the warning by casting the pointer to its actual type earlier in the function. sim/rx/ChangeLog: * mem.c (mem_put_blk): Rename parameter, add cast from parameter type to local type. Remove cast later in the function. (mem_get_blk): Likewise. * mem.h (mem_put_blk): Rename parameter to match definition. (mem_get_blk): Likewise. --- sim/rx/ChangeLog | 8 ++++++++ sim/rx/mem.c | 12 ++++++++---- sim/rx/mem.h | 4 ++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/sim/rx/ChangeLog b/sim/rx/ChangeLog index d71bb44c800..b3d76be02db 100644 --- a/sim/rx/ChangeLog +++ b/sim/rx/ChangeLog @@ -1,3 +1,11 @@ +2021-02-08 Andrew Burgess + + * mem.c (mem_put_blk): Rename parameter, add cast from parameter + type to local type. Remove cast later in the function. + (mem_get_blk): Likewise. + * mem.h (mem_put_blk): Rename parameter to match definition. + (mem_get_blk): Likewise. + 2021-02-08 Andrew Burgess * load.c: Replace 'elf/internal.h' and 'elf/common.h' includes diff --git a/sim/rx/mem.c b/sim/rx/mem.c index fe8e08d1460..7e62bfb8953 100644 --- a/sim/rx/mem.c +++ b/sim/rx/mem.c @@ -434,13 +434,15 @@ mem_put_si (int address, unsigned long value) } void -mem_put_blk (int address, void *bufptr, int nbytes) +mem_put_blk (int address, void *bufptr_void, int nbytes) { + unsigned char *bufptr = (unsigned char *) bufptr_void; + S ("<="); if (enable_counting) mem_counters[1][1] += nbytes; while (nbytes--) - mem_put_byte (address++, *(unsigned char *) bufptr++); + mem_put_byte (address++, *bufptr++); E (); } @@ -567,13 +569,15 @@ mem_get_si (int address) } void -mem_get_blk (int address, void *bufptr, int nbytes) +mem_get_blk (int address, void *bufptr_void, int nbytes) { + char *bufptr = (char *) bufptr_void; + S ("=>"); if (enable_counting) mem_counters[0][1] += nbytes; while (nbytes--) - *(char *) bufptr++ = mem_get_byte (address++); + *bufptr++ = mem_get_byte (address++); E (); } diff --git a/sim/rx/mem.h b/sim/rx/mem.h index 21080f6e6e3..a4c7455a20d 100644 --- a/sim/rx/mem.h +++ b/sim/rx/mem.h @@ -53,7 +53,7 @@ void mem_put_hi (int address, unsigned short value); void mem_put_psi (int address, unsigned long value); void mem_put_si (int address, unsigned long value); -void mem_put_blk (int address, void *bufptr, int nbytes); +void mem_put_blk (int address, void *bufptr_void, int nbytes); unsigned char mem_get_pc (int address); @@ -62,7 +62,7 @@ unsigned short mem_get_hi (int address); unsigned long mem_get_psi (int address); unsigned long mem_get_si (int address); -void mem_get_blk (int address, void *bufptr, int nbytes); +void mem_get_blk (int address, void *bufptr_void, int nbytes); int sign_ext (int v, int bits); -- 2.30.2