summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/CommentParser.cpp
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2012-07-20 20:18:53 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2012-07-20 20:18:53 +0000
commit66a00c765fc14358ff0dac66365a753ee05014a2 (patch)
tree91dbbc0f5debe4afc54dd0787363765a99450f52 /clang/lib/AST/CommentParser.cpp
parentdfaa0f3a815f34e17471277c90b551bdcfed1fa3 (diff)
downloadbcm5719-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.cpp15
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;
}
OpenPOWER on IntegriCloud