https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63591
--- Comment #5 from Kjetil Matheussen <k.s.matheussen at notam02 dot no> --- Sorry, complete example below. The problem with the code is: 1. Proto doesn't match function. There is an extra semicolon in the proto, but not in the function itself. 2. Calling "afunction" may cause memory corruption, although it is not clear to me how or why, and I can't reproduce it in a minimal example. I can provide a larger program that demonstrate this memory corruption though. struct Happ{ int a; int b[203]; }; extern int afunction( int anint, struct Happ *happ; // <- Problem 1. Extra semicolon. ); int afunction( int velocityvelocity, struct Happ *hepp ) { return 208; } int main(){ struct Happ happ; return afunction(50,&happ); // <- Problem 2. }