block/io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
Hi all!
C standard doesn't allow pointer arithmetic on void *.
Still, gcc allows it as an extension:
https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Pointer-Arith.html
I can create a series of patches like this. Do we need it?
Also, where is documented which compilers are supported by Qemu?
block/io.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/io.c b/block/io.c
index aba67f66b9..539178aed5 100644
--- a/block/io.c
+++ b/block/io.c
@@ -1277,7 +1277,7 @@ static int coroutine_fn bdrv_co_do_copy_on_readv(BdrvChild *child,
* modifying the image file. This is critical for zero-copy guest I/O
* where anything might happen inside guest memory.
*/
- void *bounce_buffer = NULL;
+ char *bounce_buffer = NULL;
BlockDriver *drv = bs->drv;
int64_t cluster_offset;
--
2.21.0
On Wed, Mar 18, 2020 at 05:22:53PM +0300, Vladimir Sementsov-Ogievskiy wrote: > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> > --- > > Hi all! > > C standard doesn't allow pointer arithmetic on void *. > Still, gcc allows it as an extension: > https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Pointer-Arith.html > > I can create a series of patches like this. Do we need it? I don't think so, we only care about gcc & clang. > Also, where is documented which compilers are supported by Qemu? It is checked in configure - gcc 4.8 or clang 3.4 or xcode clang 5.1 > > block/io.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/block/io.c b/block/io.c > index aba67f66b9..539178aed5 100644 > --- a/block/io.c > +++ b/block/io.c > @@ -1277,7 +1277,7 @@ static int coroutine_fn bdrv_co_do_copy_on_readv(BdrvChild *child, > * modifying the image file. This is critical for zero-copy guest I/O > * where anything might happen inside guest memory. > */ > - void *bounce_buffer = NULL; > + char *bounce_buffer = NULL; > > BlockDriver *drv = bs->drv; > int64_t cluster_offset; > -- > 2.21.0 > > Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On 3/18/20 9:26 AM, Daniel P. Berrangé wrote: > On Wed, Mar 18, 2020 at 05:22:53PM +0300, Vladimir Sementsov-Ogievskiy wrote: >> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> >> --- >> >> Hi all! >> >> C standard doesn't allow pointer arithmetic on void *. >> Still, gcc allows it as an extension: >> https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Pointer-Arith.html >> >> I can create a series of patches like this. Do we need it? > > I don't think so, we only care about gcc & clang. Still, if all supported compilers support the extension, then our CODING_STYLE.rst should mention that it is safe to rely on the extension. > >> Also, where is documented which compilers are supported by Qemu? > > It is checked in configure - gcc 4.8 or clang 3.4 or xcode clang 5.1 > -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
On Wed, Mar 18, 2020 at 02:26:54PM +0000, Daniel P. Berrangé wrote: > On Wed, Mar 18, 2020 at 05:22:53PM +0300, Vladimir Sementsov-Ogievskiy wrote: > > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> > > --- > > > > Hi all! > > > > C standard doesn't allow pointer arithmetic on void *. > > Still, gcc allows it as an extension: > > https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Pointer-Arith.html > > > > I can create a series of patches like this. Do we need it? > > I don't think so, we only care about gcc & clang. I agree with Dan. Stefan
© 2016 - 2025 Red Hat, Inc.