another pcc bug
utzoo!decvax!duke!mcnc!unc!tim
utzoo!decvax!duke!mcnc!unc!tim
Mon Mar 28 15:24:00 AEST 1983
The portable C compiler tries to be too smart for its own good
in lexical analysis. Consider the following fragment:
int i, *ptr;
ptr = &i; /* ptr is set to address of i */
ptr=&i; /* same as above */
The second statement is lexically identical to the first; however,
PCC decides that it should be parsed as:
ptr =& i ;
Of course, the =& operator is from earlier versions of C, and is no
longer valid, so PCC gives an error message and assumes that what you
meant to say was "ptr &= i ;" which is a type mismatch, as well as
being different from the real meaning.
The token "=&" became invalid. Instead of being removed from the lexical
analyzer, it was left in as an "error condition". This is immensely stupid;
the whole reason for getting rid of it was to remove the ambiguity that
is still causing the problem.
Tim Maroney
More information about the Comp.lang.c
mailing list