[comp.std.c] Source line limit, was Re: "Broken" compilers

datanguay@watmath.waterloo.edu (David Adrien Tanguay) (05/02/90)

In article <1640@tkou02.enet.dec.com> diamond@tkou02.enet.dec.com (diamond@tkovoa) writes:
>A logical source line means *both* before and after macro expansion.  The
>limit applies until phase 7.  (I also have a letter from Tom Plum, though
>not a formal ANSI ruling, that the limit applies after macro expansion.)
>Norman Diamond, Nihon DEC     diamond@tkou02.enet.dec.com

I think this is an incorrect interpretation. The "logical source line" is
only mentioned in phase 2, and phase 3 talks about decomposing the input
into tokens. Also, note that one of the other translation limits includes
509 characters in a string literal, after concatenation. It would be
impossible to construct such a literal with a 509 character limit on the
logical source line, if the logical source line definition includes
phase 6 (adjacent string concatenation). (You need 2 extra characters for
the quotes.)

You can probably weasel out of the contradiction (e.g., the compiler
recognises a special case, thus passing both limits at once, but in all
other cases only accepts 10 characters lines :-(), but I think it shows
that the intention is that the logical source line limit does not
extend to phase 6. What is your argument for extending it beyond
phase 2?

David Tanguay