On Thu, 2018-05-10 at 17:49 +0100, Frediano Ziglio wrote: > With GCC 8.0.1 (Fedora 28), cast to different function pointer > can lead to warnings, like: > > event-loop.c: In function ‘watch_update_mask’: > event-loop.c:146:42: error: cast between incompatible function > types from ‘gboolean (*)(GIOChannel *, GIOCondition, void *)’ {aka > ‘int (*)(struct _GIOChannel *, enum <anonymous>, void *)’} to > ‘gboolean (*)(void *)’ {aka ‘int (*)(void *)’} [-Werror=cast- > function-type] > g_source_set_callback(watch->source, (GSourceFunc)watch_func, > watch, NULL); > ^ > cc1: all warnings being treated as errors > > As g_source_set_callback expect a function pointer which type > changes based on the type of source (so is expected) silent > the possible warning. > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/event-loop.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/server/event-loop.c b/server/event-loop.c > index 582782e1..d3b7de1b 100644 > --- a/server/event-loop.c > +++ b/server/event-loop.c > @@ -143,7 +143,12 @@ static void watch_update_mask(const > SpiceCoreInterfaceInternal *iface, > return; > > watch->source = g_io_create_watch(watch->channel, > spice_event_to_giocondition(event_mask)); > - g_source_set_callback(watch->source, (GSourceFunc)watch_func, > watch, NULL); > + /* g_source_set_callback() documentation says: > + * "The exact type of func depends on the type of source; ie. > you should > + * not count on func being called with data as its first > parameter." > + * In this case is a GIOFunc. First cast (GIOFunc) make sure is > the right type, > + * other casts make possible warning silent */ slight wording improvements: "In this case *it* is a GIOFunc. First cast *to* GIOFunc *to* make sure *it* is the right type. The other casts silence the warning from gcc" > + g_source_set_callback(watch->source, > (GSourceFunc)(void*)(GIOFunc)watch_func, watch, NULL); > g_source_attach(watch->source, watch->context); > } > Acked-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx> _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel