HerrCai0907 updated this revision to Diff 512004. HerrCai0907 edited the summary of this revision. HerrCai0907 added a comment.
merge items in release note Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D147857/new/ https://reviews.llvm.org/D147857 Files: clang-tools-extra/clang-tidy/modernize/ConcatNestedNamespacesCheck.cpp clang-tools-extra/docs/ReleaseNotes.rst clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp Index: clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp +++ clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp @@ -21,11 +21,17 @@ } // namespace n2 namespace n5 { -inline namespace n6 { +inline namespace inline_ns { void t(); -} +} // namespace inline_ns } // namespace n5 +namespace n6 { +namespace [[deprecated]] attr_ns { +void t(); +} // namespace attr_ns +} // namespace n6 + namespace n7 { void t(); Index: clang-tools-extra/docs/ReleaseNotes.rst =================================================================== --- clang-tools-extra/docs/ReleaseNotes.rst +++ clang-tools-extra/docs/ReleaseNotes.rst @@ -301,9 +301,10 @@ <clang-tidy/checks/google/readability-avoid-underscore-in-googletest-name>` when using ``DISABLED_`` in the test suite name. -- Fixed an issue in :doc:`modernize-concat-nested-namespaces - <clang-tidy/checks/modernize/concat-nested-namespaces>` when using macro between - namespace declarations could result incorrect fix. +- Improved :doc:`modernize-concat-nested-namespaces + <clang-tidy/checks/modernize/concat-nested-namespaces>` to fix incorrect fixes when + using macro between namespace declarations and false positive when using namespace + with attributes. - Fixed a false positive in :doc:`performance-no-automatic-move <clang-tidy/checks/performance/no-automatic-move>` when warning would be Index: clang-tools-extra/clang-tidy/modernize/ConcatNestedNamespacesCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/modernize/ConcatNestedNamespacesCheck.cpp +++ clang-tools-extra/clang-tidy/modernize/ConcatNestedNamespacesCheck.cpp @@ -31,8 +31,9 @@ return Lexer::getSourceText(TextRange, Sources, LangOpts); } -static bool anonymousOrInlineNamespace(const NamespaceDecl &ND) { - return ND.isAnonymousNamespace() || ND.isInlineNamespace(); +static bool unsupportedNamespace(const NamespaceDecl &ND) { + return ND.isAnonymousNamespace() || ND.isInlineNamespace() || + !ND.attrs().empty(); } static bool singleNamedNamespaceChild(const NamespaceDecl &ND) { @@ -41,7 +42,7 @@ return false; const auto *ChildNamespace = dyn_cast<const NamespaceDecl>(*Decls.begin()); - return ChildNamespace && !anonymousOrInlineNamespace(*ChildNamespace); + return ChildNamespace && !unsupportedNamespace(*ChildNamespace); } static bool alreadyConcatenated(std::size_t NumCandidates, @@ -166,7 +167,7 @@ if (!locationsInSameFile(Sources, ND.getBeginLoc(), ND.getRBraceLoc())) return; - if (anonymousOrInlineNamespace(ND)) + if (unsupportedNamespace(ND)) return; Namespaces.push_back(&ND);
Index: clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp +++ clang-tools-extra/test/clang-tidy/checkers/modernize/concat-nested-namespaces.cpp @@ -21,11 +21,17 @@ } // namespace n2 namespace n5 { -inline namespace n6 { +inline namespace inline_ns { void t(); -} +} // namespace inline_ns } // namespace n5 +namespace n6 { +namespace [[deprecated]] attr_ns { +void t(); +} // namespace attr_ns +} // namespace n6 + namespace n7 { void t(); Index: clang-tools-extra/docs/ReleaseNotes.rst =================================================================== --- clang-tools-extra/docs/ReleaseNotes.rst +++ clang-tools-extra/docs/ReleaseNotes.rst @@ -301,9 +301,10 @@ <clang-tidy/checks/google/readability-avoid-underscore-in-googletest-name>` when using ``DISABLED_`` in the test suite name. -- Fixed an issue in :doc:`modernize-concat-nested-namespaces - <clang-tidy/checks/modernize/concat-nested-namespaces>` when using macro between - namespace declarations could result incorrect fix. +- Improved :doc:`modernize-concat-nested-namespaces + <clang-tidy/checks/modernize/concat-nested-namespaces>` to fix incorrect fixes when + using macro between namespace declarations and false positive when using namespace + with attributes. - Fixed a false positive in :doc:`performance-no-automatic-move <clang-tidy/checks/performance/no-automatic-move>` when warning would be Index: clang-tools-extra/clang-tidy/modernize/ConcatNestedNamespacesCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/modernize/ConcatNestedNamespacesCheck.cpp +++ clang-tools-extra/clang-tidy/modernize/ConcatNestedNamespacesCheck.cpp @@ -31,8 +31,9 @@ return Lexer::getSourceText(TextRange, Sources, LangOpts); } -static bool anonymousOrInlineNamespace(const NamespaceDecl &ND) { - return ND.isAnonymousNamespace() || ND.isInlineNamespace(); +static bool unsupportedNamespace(const NamespaceDecl &ND) { + return ND.isAnonymousNamespace() || ND.isInlineNamespace() || + !ND.attrs().empty(); } static bool singleNamedNamespaceChild(const NamespaceDecl &ND) { @@ -41,7 +42,7 @@ return false; const auto *ChildNamespace = dyn_cast<const NamespaceDecl>(*Decls.begin()); - return ChildNamespace && !anonymousOrInlineNamespace(*ChildNamespace); + return ChildNamespace && !unsupportedNamespace(*ChildNamespace); } static bool alreadyConcatenated(std::size_t NumCandidates, @@ -166,7 +167,7 @@ if (!locationsInSameFile(Sources, ND.getBeginLoc(), ND.getRBraceLoc())) return; - if (anonymousOrInlineNamespace(ND)) + if (unsupportedNamespace(ND)) return; Namespaces.push_back(&ND);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits