http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58687
--- Comment #25 from Max TenEyck Woodbury <mtewoodbury at gmail dot com> --- (In reply to jos...@codesourcery.com from comment #24) > ... > > I don't believe the standard makes any such attempt to accommodate such a > (marginal) need; GAG! Without this, a number of problems associated with externally developed development environments are very difficult, if not impossible, to manage. It is ultimately a portability problem; there must be a way to identify the source for the code that is independent of the particulars of the build environment and at the same time not change the line sequencing without forcing the code maintainers to maintain a count of code lines. That puts this problem squarely in the middle of the domain of problems that language standards were developed to address! > the wording is simply the most natural way to describe > the possible forms of #line directive within the style used by the > standard. Note there are no examples in the standard to indicate any > particular intent regarding corner cases of #line or __LINE__. The 'natural' way to say this would be much closer to the way it was expressed in K&R. Someone went to a great deal of trouble to rephrase it for some reason and, at least in my opinion, that reason included the interaction of __LINE__ and directives.