diff options
| author | Dmitri Gribenko <gribozavr@gmail.com> | 2012-07-20 20:18:53 +0000 |
|---|---|---|
| committer | Dmitri Gribenko <gribozavr@gmail.com> | 2012-07-20 20:18:53 +0000 |
| commit | 66a00c765fc14358ff0dac66365a753ee05014a2 (patch) | |
| tree | 91dbbc0f5debe4afc54dd0787363765a99450f52 /clang/lib/AST/CommentParser.cpp | |
| parent | dfaa0f3a815f34e17471277c90b551bdcfed1fa3 (diff) | |
| download | bcm5719-llvm-66a00c765fc14358ff0dac66365a753ee05014a2.tar.gz bcm5719-llvm-66a00c765fc14358ff0dac66365a753ee05014a2.zip | |
Fix PR13411: Comment parsing: failed assertion on unterminated verbatim block.
The assertion was wrong in case we have a verbatim block without a closing
command.
Also add tests for closing command name in a verbatim block, since now it can
be empty in such cases.
llvm-svn: 160568
Diffstat (limited to 'clang/lib/AST/CommentParser.cpp')
| -rw-r--r-- | clang/lib/AST/CommentParser.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/clang/lib/AST/CommentParser.cpp b/clang/lib/AST/CommentParser.cpp index d4b97087782..6b7e0ab49d4 100644 --- a/clang/lib/AST/CommentParser.cpp +++ b/clang/lib/AST/CommentParser.cpp @@ -378,11 +378,16 @@ VerbatimBlockComment *Parser::parseVerbatimBlock() { Lines.push_back(Line); } - assert(Tok.is(tok::verbatim_block_end)); - VB = S.actOnVerbatimBlockFinish(VB, Tok.getLocation(), - Tok.getVerbatimBlockName(), - copyArray(llvm::makeArrayRef(Lines))); - consumeToken(); + if (Tok.is(tok::verbatim_block_end)) { + VB = S.actOnVerbatimBlockFinish(VB, Tok.getLocation(), + Tok.getVerbatimBlockName(), + copyArray(llvm::makeArrayRef(Lines))); + consumeToken(); + } else { + // Unterminated \\verbatim block + VB = S.actOnVerbatimBlockFinish(VB, SourceLocation(), "", + copyArray(llvm::makeArrayRef(Lines))); + } return VB; } |

