The following C program will not compile with the command "gcc file.c":
#define FIRST "This is a split int main() { printf( FIRST string"); } It gives the expected error message about the malformed preprocessor token. However if the output of "cpp file.c" or "gcc -E file.c" is saved and fed back into gcc then it DOES compile and run. Here is the output of "gcc -E file.c": int main() { printf( "This is a split string"); } I checked the ANSI standard and this is indeed an illegal program. Shouldn't the preprocessor give an error message when run alone? -- Summary: Preprocessor doesn't parse tokens correctly? Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: beethoven3322 at hotmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28768