From Bugzilla Helper: User-Agent: Mozilla/4.76 [en] (X11; U; Linux 2.2.16-3 i686) Description of problem: gcc-2.96-81 on RH 7.0 and 7.1 if a line like typedef char *ident; precedes a #ident line the compiler errors out with "invalid #-line" How reproducible: Always Steps to Reproduce: 1. cat - > xxx.c <<XXX typedef char *ident; #ident "xxx.c" main() { exit(0);} XXX 2. gcc -o xxx xxx.c Actual Results: gcc complains: xxx.c:2: invalid #-line Expected Results: clean compile producing xxx Additional info: works on 6.2 with gcc from egcs-1.1.2-30 works on 7.1 with kgcc from compat-egcs-6.2-1.1.2.14 -fno-ident doesn't help
Will be fixed in gcc-2.96-86. The fix is easy: --- gcc/c-lex.c.jj Wed May 9 20:56:44 2001 +++ gcc/c-lex.c Thu May 10 11:07:14 2001 @@ -614,7 +614,7 @@ check_newline () token = yylex (); - if (token == IDENTIFIER) + if (token == IDENTIFIER || token == TYPENAME || token == OBJECTNAME) { /* If a letter follows, then if the word here is `line', skip it and ignore it; otherwise, ignore the line, with an error