I am writing and reading registers from a memory map, like this:
//READ return *((volatile uint32_t *) ( map + offset )); //WRITE *((volatile uint32_t *) ( map
If the use of arithmetic on void pointers is really what you want as it is made possible by GCC (see Arithmetic on void- and Function-Pointers) you can use -Wno-pointer-arith to suppress the warning.
-Wno-pointer-arith