http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46076
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rth at gcc dot gnu.org --- Comment #16 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-01-11 14:32:23 UTC --- I don't think we should add hacks like that. Either the type signatures are compatible for the middle-end (and exchanging one for the other does not affect generated code for any target) or not. I can't answer this question. If they are indeed compatible then fixing the bug is easy. Thus, can I call void foo(); via *(void (*)(void))&foo and can I call void foo (void); via *(void (*)())&foo on all targets without unexpected effects (assuming foo does not use any arguments)?