[Bug preprocessor/8270] [4.2/4.3/4.4 Regression] back-slash white space newline with comments, no warning
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sun Dec 7 01:02:00 GMT 2008
------- Comment #39 from pinskia at gcc dot gnu dot org 2008-12-07 01:01 -------
>From JSM in PR 38433:
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.)
--- CUT ---
Which explains why this is conforming to the standard and is allowed.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8270
More information about the Gcc-bugs
mailing list