------- Additional Comments From manus at eiffel dot com 2004-11-10 01:24 ------- I believe we do not have the right definition of unspecified behavior. Going back to my initial post:
extern void f(); void g(char a) { ((void (*) (char)) f)(a); } Knowing that actually `f' has been declared in some other module as: extern void f(char){...} Then the above code "((void (*) (char)) f)(a);" make sense. I'm simply calling `f' with the right type for the argument thanks to the function cast. Could you point out where the undefined part is? Thanks, Manu PS: sorry to be so picky on this issue but I feel it is important. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18411