Re: GCC 3.4 warnings

George <[email protected]> Wed, 22 Sep 2004 17:04:53 -0700
Newsgroups gmane.comp.gnome.devtools.gob.general
Message-ID <[email protected]>
On Sat, Sep 18, 2004 at 10:21:02PM +0200, Stephane Konstantaropoulos wrote:
> Hello,
> 
> I just updated to gcc 3.4 and it gives lots of warnings when compiling.
> 
> I use gob2 2.0.9
> 
> Notably the finalize() bit, when I declare "destroywith
> gtk_widget_destroy" it warns loud saying this:
> 
> lum-skin-textbox.gob: In function `___finalize':
> lum-skin-textbox.gob:67: warning: function called through a non-
> compatible type
> lum-skin-textbox.gob:67: note: if this code is reached, the program will
> abort
> 
> This does not look good, so I have to write the finalize function myself
> with correct types and it goes.
> 
> Would it not be better to just avoid casting the "destroywith" function
> and let the programmer use the right one for the type he is destroying?
> GCC wil warn on a type mismatch there anyway.
> 
> What do you think?

Well the problem is that it's ok for there to be some type mismatch.  For
example gtk_widget_destroy (you should really call that with unrefwith not
destroywith BTW) can be used to destroy a GtkButton.  If there wasn't a cast
then we'd get a type-mismatch and you'd still need to write your own
"wrapper" to remedy the problem.  C++ tries to be too smart for it's own
good.  I changed the code to use the reinterpret_cast nonsense when --for-cpp
is used which should work much better and it really should fix this problem.

2.0.10 will be out shortly with this change.

George

-- 
George <[email protected]>
   Supreme executive power derives from a mandate from the masses,
   not from some farcical aquatic ceremony.
                       -- Dennis (the bloody peasant)

--
to unsubscribe:
send mail to [email protected] with "unsubscribe gob-list" in the subject