[clang-format] fix crash in NamespaceEndCommentsFixer (PR32438)
Summary: The new test case was crashing before. Now it passes as expected. Reviewers: djasper Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D31441 llvm-svn: 299465
This commit is contained in:
parent
8465d08392
commit
ddae2516b8
|
@ -133,7 +133,7 @@ tooling::Replacements NamespaceEndCommentsFixer::analyze(
|
|||
// Detect "(inline)? namespace" in the beginning of a line.
|
||||
if (NamespaceTok->is(tok::kw_inline))
|
||||
NamespaceTok = NamespaceTok->getNextNonComment();
|
||||
if (NamespaceTok->isNot(tok::kw_namespace))
|
||||
if (!NamespaceTok || NamespaceTok->isNot(tok::kw_namespace))
|
||||
continue;
|
||||
FormatToken *RBraceTok = EndLine->First;
|
||||
if (RBraceTok->Finalized)
|
||||
|
|
|
@ -582,6 +582,21 @@ TEST_F(NamespaceEndCommentsFixerTest,
|
|||
"} // namespace\n"
|
||||
"}"));
|
||||
}
|
||||
|
||||
TEST_F(NamespaceEndCommentsFixerTest, HandlesInlineAtEndOfLine_PR32438) {
|
||||
EXPECT_EQ("template <int> struct a {};\n"
|
||||
"struct a<bool{}> b() {\n"
|
||||
"}\n"
|
||||
"#define c inline\n"
|
||||
"void d() {\n"
|
||||
"}\n",
|
||||
fixNamespaceEndComments("template <int> struct a {};\n"
|
||||
"struct a<bool{}> b() {\n"
|
||||
"}\n"
|
||||
"#define c inline\n"
|
||||
"void d() {\n"
|
||||
"}\n"));
|
||||
}
|
||||
} // end namespace
|
||||
} // end namespace format
|
||||
} // end namespace clang
|
||||
|
|
Loading…
Reference in New Issue