Compiling this int inv(int n,char mm[n][n]); int inv(int n,char mm[n][n]){} using gcc-2.96-69 and the command gcc -c zog.c gives this output zog.c:2: variable-size type declared outside of any function zog.c:2: variable-size type declared outside of any function If you remove the first line (the prototype line) then it will compile OK (It is exactly the same as one of the examples given in "info gcc" --> C Extensions --> Variable Length). Also it compiles OK with earlier gcc's such as kgcc.
Verified both in 2.96-71 and current FSF CVS head. Will jump onto it in the coming week.
Fixed in gcc-2.96-74.