Re: pointer casts
- From: Owen Taylor <otaylor redhat com>
- To: Miroslaw Dobrzanski-Neumann <mne mosaic-ag com>
- Cc: GTKDEV <gtk-devel-list gnome org>
- Subject: Re: pointer casts
- Date: Wed, 13 Mar 2002 10:09:58 -0500 (EST)
Miroslaw Dobrzanski-Neumann <mne mosaic-ag com> writes:
> Hi,
>
> Compiling gclosure.c with DEC C V5.6-082 compiler I get the warnings listed
> below (the same warnings are produced by the ibm xlc compiler). The problem is
> that pointer to void is not the same as pointer to function. You can safe cast
> data pointer but casting function pointer in i.e. pascal calling convention and
> calling it afterwards as different ones produce a desaster.
>
> After having take a look at the data types of the two sides of the assignemt I
> wonder how it works.
>
> gclosure.c:107 closure->marshal = (gpointer) ndata->notify;
GCC has a non-standard extension that allows implicit casts betweeen (void *)
and any function pointers.
Unfortunately, this has led to people doing bad stuff like this and also to
some messed up prototypes like:
gulong g_signal_handler_find (gpointer instance,
GSignalMatchType mask,
guint signal_id,
GQuark detail,
GClosure *closure,
gpointer func,
gpointer data);
That we just have to live with at this point.
I've given Erwann the go ahead to commit his patch in #73898 which should fix
all of these sorts of warnings in GLib.
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]