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