Re: [gob-list] GCC 3.4 warnings

From: Stephane Konstantaropoulos <stephanek_at_brutele.be>
Date: Thu, 23 Sep 2004 10:33:42 +0200

George a écrit :

>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
>
>
>

Thank you George,

but this problem occurs in C, not in C++. It did not occur with GCC 3.3
and I do not use gob with --for-cpp.

Stephane

Received on Thu Sep 23 2004 - 08:33:50 CDT

This archive was generated by hypermail 2.2.0 : Sun Apr 17 2011 - 21:05:02 CDT