I'm late to the party, but I suspect I would have gone the same way as
in spice-gtk
https://lists.freedesktop.org/archives/spice-devel/2018-May/043324.html
and disabled the warning instead.

Christophe

On Sun, May 06, 2018 at 12:10:31PM +0100, Frediano Ziglio wrote:
> With GCC 8.0.1 (Fedora 28), cast to different function pointer
> can lead to warnings.
> 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 <fzig...@redhat.com>
> ---
>  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 */
> +    g_source_set_callback(watch->source, 
> (GSourceFunc)(void*)(GIOFunc)watch_func, watch, NULL);
>      g_source_attach(watch->source, watch->context);
>  }
>  
> -- 
> 2.17.0
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to