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