GNU bug report logs -
#43558
[PATCH]: Fix (forward-comment 1) when end delimiter is escaped.
Previous Next
Full log
Message #43 received at 43558 <at> debbugs.gnu.org (full text, mbox):
Alan Mackenzie <acm <at> muc.de> writes:
> Hello, Mattias.
>
> On Wed, Sep 23, 2020 at 11:01:59 +0200, Mattias Engdegård wrote:
>> Sorry if I misunderstood, but since when do backslashes escape */ in C?
>
> Since forever, but only in the CC Mode test suite. :-(
>
> I just tried it out with gcc, and it seems that \*/ does indeed end a
> block comment. But an escaped newline doesn't end a line comment,
> instead continuing it to the next line. So I got confused. Thanks for
> pointing out the mistake.
>
> It seems that as well as the existing variable
> comment-end-can-be-escaped, we need a new one, say
> line-comment-end-can-be-escaped, too. In C and C++ modes, these would
> be nil and t respectively.
But where does it say that backslashes escape */ in C++? The C++ 14
standard (and it hasn't changed through C++ 20) says:
2.7 Comments [lex.comment]
The characters /* start a comment, which terminates with the
characters */. These comments do not nest. The characters // start
a comment, which terminates immediately before the next new-line
character. If there is a form-feed or a vertical-tab character in
such a comment, only white-space characters shall appear between it
and the new-line that terminates the comment; no diagnostic is
required. [ Note: The comment characters //, /*, and */ have no
special meaning within a // comment and are treated just like other
characters. Similarly, the comment characters // and /* have no
special meaning within a /* comment. — end note ]
--
Michael Welsh Duggan
(md5i <at> md5i.com)
This bug report was last modified 3 years and 47 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.