From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shawn" To: help-gcc@gnu.org Subject: Declaring variables mid-function Date: Fri, 31 Dec 1999 22:24:00 -0000 Message-ID: <385c11fa@oit.umass.edu> X-SW-Source: 1999-12n/msg00263.html Message-ID: <19991231222400.1KRy-9tXbwpH9VMUPXPlOf6iLSVZdfUgBxyXbHMIaAg@z> I am writing a medium sized program, and ran into a problem where gcc would not compile any function that did not have all of its variables declared as the first lines of the function. As a test, I wrote this small program: int test(char *tst, char *tst2, char **tst3); int test2(void); int main() { test2(); char *tst; char *tst2; char *tst3; test(tst, tst2, &tst3); return 1; } int test(char *tst, char *tst2, char **tst3) { return 21; } int test2(void) { return 21; } When trying to compile this, seemingly simple program, gcc complains. This is the output: bash-2.03$ gcc test.c -o test test.c: In function `main': test.c:8: parse error before `char' test.c:12: `tst' undeclared (first use in this function) test.c:12: (Each undeclareed identifier is reported only once test.c:12: for each function it appears in.) test.c:12: `tst2' undeclared (first use in this function) test.c:12: `tst3' undeclared (first use in this function) Does anybody have any idea what is going on here? My system is a Pentium, with 48 MB ram, running Slackware Linux 7.0, gcc version 2.91.66 (egcs). Thank you in advance! -Shawn