hi, in the following code func.c : #include <stdio.h> int Myfunc1(int i, int z) { return i; } int main() { int ans; /* casting the function into an 'int (int)' function */ ans = ((int(*)(int))(Myfunc1))(5); printf("ans: %d\n\n", ans); return 0; } i tried to cast an int(int,int) function into an int(int) function an got the gcc warning and note: func.c:13:32: warning: function called through a non-compatible type [enabled by default] func.c:13:32: note: if this code is reached, the program will abort and when trying to run i get: Illegal instruction (core dumped) (but if i compile this file with a .cpp ending with the gcc compiler it works OK.) can anyone explain the problem of the compiler in the .c case? -- View this message in context: http://gcc.1065356.n5.nabble.com/function-cast-leads-to-gcc-abort-command-tp996603.html Sent from the gcc - Help mailing list archive at Nabble.com.