[cfe-commits] [PATCH] Introduce diagnostics into comment parsing and semantic analysis

Dmitri Gribenko gribozavr at gmail.com
Mon Jul 9 16:52:33 PDT 2012


Hello,

The attached patch enables comment parsing and semantic analysis to
emit diagnostics.  A few diagnostics implemented -- see testcases.

I created a new TableGen file for comment diagnostics,
DiagnosticCommentKinds.td, because comment diagnostics don't logically
fit into AST diagnostics file.  But I don't feel strongly about it.

This also implements support for self-closing HTML tags in comment
lexer and parser (for example, <br />).

In order to issue precise diagnostic comment sema needs to know the
declaration.  There is no easy way to find a decl by comment, so we
match comments and decls in lockstep: after parsing one declgroup we
check if we have any new, not yet attached comments.  If we do -- then
we do the usual comment-finding process.

It is interesting that this automatically handles trailing comments.
We pick up not only comments that precede the declaration, but also
comments that *follow* the declaration -- thanks to the lookahead in
the lexer: after parsing the declgroup we've consumed the semicolon
and looked ahead through comments.

This patch depends on -verify patches #1 and #2 for testing.  (These
should be committed shortly.)

Please review.

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: comments-diagnostics-v1.patch
Type: application/octet-stream
Size: 61433 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120709/707eeb49/attachment.obj>


More information about the cfe-commits mailing list