When "#include <string.h>" is inside main(), egcs reports errors if the -O4 flag is set. Example: cc -O4 -c stringbug.c reports errors, where stringbug.c is the following: main() { #include <string.h> char *a = "hello"; char b[100]; strcpy( a, b ); }
I can reproduce this with 6.1. However, I'm not sure I have much of a reaction beyond "well, include string.h from outside a function". You could see if you get a better reception on the GCC mailing lists at http://gcc.gnu.org/