Message ID | 20220919182755.51967-1-f4bug@amsat.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block/qcow2-bitmap: Add missing cast to silent GCC error | expand |
On 9/19/22 21:27, Philippe Mathieu-Daudé wrote: > Commit d1258dd0c8 ("qcow2: autoloading dirty bitmaps") added the > set_readonly_helper() GFunc handler, correctly casting the gpointer > user_data in both the g_slist_foreach() caller and the handler. > Few commits later (commit 1b6b0562db), the handler is reused in > qcow2_reopen_bitmaps_rw() but missing the gpointer cast, resulting > in the following error when using Homebrew GCC 12.2.0: > > [2/658] Compiling C object libblock.fa.p/block_qcow2-bitmap.c.o > ../../block/qcow2-bitmap.c: In function 'qcow2_reopen_bitmaps_rw': > ../../block/qcow2-bitmap.c:1211:60: error: incompatible type for argument 3 of 'g_slist_foreach' > 1211 | g_slist_foreach(ro_dirty_bitmaps, set_readonly_helper, false); > | ^~~~~ > | | > | _Bool > In file included from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/gmain.h:26, > from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/giochannel.h:33, > from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib.h:54, > from /Users/philmd/source/qemu/include/glib-compat.h:32, > from /Users/philmd/source/qemu/include/qemu/osdep.h:144, > from ../../block/qcow2-bitmap.c:28: > /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/gslist.h:127:61: note: expected 'gpointer' {aka 'void *'} but argument is of type '_Bool' > 127 | gpointer user_data); > | ~~~~~~~~~~~~~~~~~~^~~~~~~~~ > At top level: > FAILED: libblock.fa.p/block_qcow2-bitmap.c.o > > Fix by adding the missing gpointer cast. > > Fixes: 1b6b0562db ("qcow2: support .bdrv_reopen_bitmaps_rw") > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Thanks for fixing! Seems correct for it to go with trivial patches.
Am 19.09.2022 um 20:27 hat Philippe Mathieu-Daudé geschrieben: > Commit d1258dd0c8 ("qcow2: autoloading dirty bitmaps") added the > set_readonly_helper() GFunc handler, correctly casting the gpointer > user_data in both the g_slist_foreach() caller and the handler. > Few commits later (commit 1b6b0562db), the handler is reused in > qcow2_reopen_bitmaps_rw() but missing the gpointer cast, resulting > in the following error when using Homebrew GCC 12.2.0: > > [2/658] Compiling C object libblock.fa.p/block_qcow2-bitmap.c.o > ../../block/qcow2-bitmap.c: In function 'qcow2_reopen_bitmaps_rw': > ../../block/qcow2-bitmap.c:1211:60: error: incompatible type for argument 3 of 'g_slist_foreach' > 1211 | g_slist_foreach(ro_dirty_bitmaps, set_readonly_helper, false); > | ^~~~~ > | | > | _Bool > In file included from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/gmain.h:26, > from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/giochannel.h:33, > from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib.h:54, > from /Users/philmd/source/qemu/include/glib-compat.h:32, > from /Users/philmd/source/qemu/include/qemu/osdep.h:144, > from ../../block/qcow2-bitmap.c:28: > /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/gslist.h:127:61: note: expected 'gpointer' {aka 'void *'} but argument is of type '_Bool' > 127 | gpointer user_data); > | ~~~~~~~~~~~~~~~~~~^~~~~~~~~ > At top level: > FAILED: libblock.fa.p/block_qcow2-bitmap.c.o > > Fix by adding the missing gpointer cast. > > Fixes: 1b6b0562db ("qcow2: support .bdrv_reopen_bitmaps_rw") > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Thanks, applied to the block branch. And in case qemu-trivial picks it up anyway: Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Le 22/09/2022 à 17:37, Kevin Wolf a écrit : > Am 19.09.2022 um 20:27 hat Philippe Mathieu-Daudé geschrieben: >> Commit d1258dd0c8 ("qcow2: autoloading dirty bitmaps") added the >> set_readonly_helper() GFunc handler, correctly casting the gpointer >> user_data in both the g_slist_foreach() caller and the handler. >> Few commits later (commit 1b6b0562db), the handler is reused in >> qcow2_reopen_bitmaps_rw() but missing the gpointer cast, resulting >> in the following error when using Homebrew GCC 12.2.0: >> >> [2/658] Compiling C object libblock.fa.p/block_qcow2-bitmap.c.o >> ../../block/qcow2-bitmap.c: In function 'qcow2_reopen_bitmaps_rw': >> ../../block/qcow2-bitmap.c:1211:60: error: incompatible type for argument 3 of 'g_slist_foreach' >> 1211 | g_slist_foreach(ro_dirty_bitmaps, set_readonly_helper, false); >> | ^~~~~ >> | | >> | _Bool >> In file included from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/gmain.h:26, >> from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/giochannel.h:33, >> from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib.h:54, >> from /Users/philmd/source/qemu/include/glib-compat.h:32, >> from /Users/philmd/source/qemu/include/qemu/osdep.h:144, >> from ../../block/qcow2-bitmap.c:28: >> /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/gslist.h:127:61: note: expected 'gpointer' {aka 'void *'} but argument is of type '_Bool' >> 127 | gpointer user_data); >> | ~~~~~~~~~~~~~~~~~~^~~~~~~~~ >> At top level: >> FAILED: libblock.fa.p/block_qcow2-bitmap.c.o >> >> Fix by adding the missing gpointer cast. >> >> Fixes: 1b6b0562db ("qcow2: support .bdrv_reopen_bitmaps_rw") >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > > Thanks, applied to the block branch. And in case qemu-trivial picks it > up anyway: > > Reviewed-by: Kevin Wolf <kwolf@redhat.com> > > It doesn't seem to be merged yet. Applied to my trivial-patches branch. If you push it first I will remove it. Thanks, Laurent
diff --git a/block/qcow2-bitmap.c b/block/qcow2-bitmap.c index ff3309846c..7197754843 100644 --- a/block/qcow2-bitmap.c +++ b/block/qcow2-bitmap.c @@ -1208,7 +1208,7 @@ int qcow2_reopen_bitmaps_rw(BlockDriverState *bs, Error **errp) } } - g_slist_foreach(ro_dirty_bitmaps, set_readonly_helper, false); + g_slist_foreach(ro_dirty_bitmaps, set_readonly_helper, (gpointer)false); ret = 0; out:
Commit d1258dd0c8 ("qcow2: autoloading dirty bitmaps") added the set_readonly_helper() GFunc handler, correctly casting the gpointer user_data in both the g_slist_foreach() caller and the handler. Few commits later (commit 1b6b0562db), the handler is reused in qcow2_reopen_bitmaps_rw() but missing the gpointer cast, resulting in the following error when using Homebrew GCC 12.2.0: [2/658] Compiling C object libblock.fa.p/block_qcow2-bitmap.c.o ../../block/qcow2-bitmap.c: In function 'qcow2_reopen_bitmaps_rw': ../../block/qcow2-bitmap.c:1211:60: error: incompatible type for argument 3 of 'g_slist_foreach' 1211 | g_slist_foreach(ro_dirty_bitmaps, set_readonly_helper, false); | ^~~~~ | | | _Bool In file included from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/gmain.h:26, from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/giochannel.h:33, from /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib.h:54, from /Users/philmd/source/qemu/include/glib-compat.h:32, from /Users/philmd/source/qemu/include/qemu/osdep.h:144, from ../../block/qcow2-bitmap.c:28: /opt/homebrew/Cellar/glib/2.72.3_1/include/glib-2.0/glib/gslist.h:127:61: note: expected 'gpointer' {aka 'void *'} but argument is of type '_Bool' 127 | gpointer user_data); | ~~~~~~~~~~~~~~~~~~^~~~~~~~~ At top level: FAILED: libblock.fa.p/block_qcow2-bitmap.c.o Fix by adding the missing gpointer cast. Fixes: 1b6b0562db ("qcow2: support .bdrv_reopen_bitmaps_rw") Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- Cc: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Cc: John Snow <jsnow@redhat.com> Cc: Max Reitz <mreitz@redhat.com> --- block/qcow2-bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)