------- Additional Comments From manus at eiffel dot com 2004-11-09 23:34 ------- Also one thing I forgot to add. Is that if you replace `char' by `int' then there is no warning at all:
extern void f(); void g(int a) { void * fnptr = f; ((void (*) (int)) fnptr) (a); /* Ok. */ ((void (*) (int)) f)(a); /* Not Ok. */ } Why `char' does trigger the warning and not `int'? This looks like a bug to me. Thanks, Manu -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18411