aboutsummaryrefslogtreecommitdiff
path: root/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
commit9f08f49929324ec6863e81b22a43fb2e8575b433 (patch)
tree6a28cd180db00d848df4346f3e05184ed16f1cca /lib/AST/CommentParser.cpp
parentbbe0175255d4da42cd99d93ca1e60c8eabcb4b9a (diff)
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160568 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/CommentParser.cpp')
-rw-r--r--lib/AST/CommentParser.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/AST/CommentParser.cpp b/lib/AST/CommentParser.cpp
index d4b9708778..6b7e0ab49d 100644
--- a/lib/AST/CommentParser.cpp
+++ b/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;
}