------- Comment #2 from joseph at codesourcery dot com 2008-12-07 00:28 ------- Subject: Re: New: Incorrect handling of line termination character with trailing spaces
On Sat, 6 Dec 2008, eric dot niebler at gmail dot com wrote: > In the attached file, there is a comment terminated with a line-termination > character (\) followed by spaces. This should NOT be considered a line > terminator, yet gcc considers it as such. From 2.1/2 in the C++03 standard: > > "Each instance of a new-line character and an immediately preceding backslash > character is deleted, splicing physical source lines to form logical source > lines." This (removal of such spaces) is part of how GCC defines the implementation-defined mapping in translation phase 1. There are no input files that GCC interprets as representing a program that enters phase 2 with backslash-space at the end of a line. > That is, only backslashes immediately followed by a newline are considered > line > terminators. The existing behavior of gcc violates the standard and conflicts > with the behavior of other popular C++ compilers (EDG, MSVC). No, it conforms to the standard but does not allow certain programs to be represented. (I think this is a bad idea, but that's another matter.) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38433