On 7/5/07, Alan M. Evans <[EMAIL PROTECTED]> wrote: > But with optimizations on (actually, at or above -O2), I get warnings > about type-punning on the calls to g_static_mutex_lock/unlock: > > g++ -O2 -Wall -c `pkg-config --cflags glib-2.0` test.cpp > test.cpp: In function 'void MyMutex_lock(MyMutex*)': > test.cpp:19: warning: type-punning to incomplete type might break > strict-aliasing rules
I think this is a gcc 4.1 issue. I found I couldn't cast from a Thing *x[] to a void ** in one step without triggering a warning like this. If I cast to void* and then to void **, all was well. Anyway, insert a mysterious extra cast and the warnings vanish. Try compiling this with -O2 -Wall and you'll see only one line triggers a warning. ============ void test (void **base) { } int main () { int *thing[3]; test ((void **) thing); test ((void **) ((void *) thing)); return (0); } ============== (now someone will tell me the compiler is correct and casting "int *x[]" to "void **" is indeed wrong :-) John _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list