Author: Owen Pan Date: 2023-09-26T14:22:29-07:00 New Revision: f2c97ffe4688ba85274146b4c9fc4bcffa92ecbc
URL: https://github.com/llvm/llvm-project/commit/f2c97ffe4688ba85274146b4c9fc4bcffa92ecbc DIFF: https://github.com/llvm/llvm-project/commit/f2c97ffe4688ba85274146b4c9fc4bcffa92ecbc.diff LOG: [clang-format] Fix a bug in NamespaceEndCommentsFixer (#67422) Fixed #67407. Added: Modified: clang/lib/Format/NamespaceEndCommentsFixer.cpp clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/NamespaceEndCommentsFixer.cpp b/clang/lib/Format/NamespaceEndCommentsFixer.cpp index 4d3bd3b33f0f113..aed31db87495406 100644 --- a/clang/lib/Format/NamespaceEndCommentsFixer.cpp +++ b/clang/lib/Format/NamespaceEndCommentsFixer.cpp @@ -170,7 +170,7 @@ bool validEndComment(const FormatToken *RBraceTok, StringRef NamespaceName, // Valid namespace end comments don't need to be edited. static const llvm::Regex NamespaceCommentPattern = llvm::Regex("^/[/*] *(end (of )?)? *(anonymous|unnamed)? *" - "namespace( +([a-zA-Z0-9:_]+))?\\.? *(\\*/)?$", + "namespace( +([a-zA-Z0-9:_ ]+))?\\.? *(\\*/)?$", llvm::Regex::IgnoreCase); static const llvm::Regex NamespaceMacroCommentPattern = llvm::Regex("^/[/*] *(end (of )?)? *(anonymous|unnamed)? *" @@ -189,7 +189,7 @@ bool validEndComment(const FormatToken *RBraceTok, StringRef NamespaceName, // Comment does not match regex. return false; } - StringRef NamespaceNameInComment = Groups.size() > 5 ? Groups[5] : ""; + StringRef NamespaceNameInComment = Groups.size() > 5 ? Groups[5].rtrim() : ""; // Anonymous namespace comments must not mention a namespace name. if (NamespaceName.empty() && !NamespaceNameInComment.empty()) return false; diff --git a/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp b/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp index ec335c985ebba20..1ebcba551e4c9d2 100644 --- a/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp +++ b/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp @@ -658,42 +658,27 @@ TEST_F(NamespaceEndCommentsFixerTest, } TEST_F(NamespaceEndCommentsFixerTest, KeepsValidEndComment) { - EXPECT_EQ("namespace {\n" - "int i;\n" - "} // end anonymous namespace", - fixNamespaceEndComments("namespace {\n" - "int i;\n" - "} // end anonymous namespace")); - EXPECT_EQ("namespace A {\n" - "int i;\n" - "} /* end of namespace A */", - fixNamespaceEndComments("namespace A {\n" - "int i;\n" - "} /* end of namespace A */")); - EXPECT_EQ("namespace A {\n" - "int i;\n" - "} // namespace A", - fixNamespaceEndComments("namespace A {\n" - "int i;\n" - "} // namespace A")); - EXPECT_EQ("namespace A::B {\n" - "int i;\n" - "} // end namespace A::B", - fixNamespaceEndComments("namespace A::B {\n" - "int i;\n" - "} // end namespace A::B")); - EXPECT_EQ("namespace A {\n" - "int i;\n" - "}; // end namespace A", - fixNamespaceEndComments("namespace A {\n" - "int i;\n" - "}; // end namespace A")); - EXPECT_EQ("namespace {\n" - "int i;\n" - "}; /* unnamed namespace */", - fixNamespaceEndComments("namespace {\n" - "int i;\n" - "}; /* unnamed namespace */")); + EXPECT_TRUE(isFormatted("namespace {\n" + "int i;\n" + "} // end anonymous namespace")); + EXPECT_TRUE(isFormatted("namespace A {\n" + "int i;\n" + "} /* end of namespace A */")); + EXPECT_TRUE(isFormatted("namespace A {\n" + "int i;\n" + "} // namespace A")); + EXPECT_TRUE(isFormatted("namespace A::B {\n" + "int i;\n" + "} // end namespace A::B")); + EXPECT_TRUE(isFormatted("namespace A {\n" + "int i;\n" + "}; // end namespace A")); + EXPECT_TRUE(isFormatted("namespace {\n" + "int i;\n" + "}; /* unnamed namespace */")); + EXPECT_TRUE(isFormatted("namespace a::inline b {\n" + "int c;\n" + "}; // namespace a::inline b")); } TEST_F(NamespaceEndCommentsFixerTest, KeepsValidMacroEndComment) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits