https://github.com/a-tarasyuk updated https://github.com/llvm/llvm-project/pull/147219
>From a5e5e795e2b31295f781d2398e41f46785c0f18b Mon Sep 17 00:00:00 2001 From: Oleksandr Tarasiuk <oleksandr.taras...@outlook.com> Date: Mon, 7 Jul 2025 02:52:01 +0300 Subject: [PATCH] [Clang] accept @tparam on variable template partial specializations --- clang/docs/ReleaseNotes.rst | 2 ++ clang/lib/AST/Comment.cpp | 8 ++++++++ clang/test/Sema/warn-documentation.cpp | 12 ++++++++++++ 3 files changed, 22 insertions(+) diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 9a94c4bcd9980..d85c592b6d8bc 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -671,6 +671,8 @@ Improvements to Clang's diagnostics false positives in exception-heavy code, though only simple patterns are currently recognized. +- Clang now accepts ``@tparam`` comments on variable template partial + specializations. (#GH144775) Improvements to Clang's time-trace ---------------------------------- diff --git a/clang/lib/AST/Comment.cpp b/clang/lib/AST/Comment.cpp index d022c5c845ae6..08f860e2490ba 100644 --- a/clang/lib/AST/Comment.cpp +++ b/clang/lib/AST/Comment.cpp @@ -291,6 +291,14 @@ void DeclInfo::fill() { TemplateParameters = CTPSD->getTemplateParameters(); break; } + case Decl::VarTemplatePartialSpecialization: { + const VarTemplatePartialSpecializationDecl *VTPSD = + cast<VarTemplatePartialSpecializationDecl>(CommentDecl); + Kind = VariableKind; + TemplateKind = TemplatePartialSpecialization; + TemplateParameters = VTPSD->getTemplateParameters(); + break; + } case Decl::ClassTemplateSpecialization: Kind = ClassKind; TemplateKind = TemplateSpecialization; diff --git a/clang/test/Sema/warn-documentation.cpp b/clang/test/Sema/warn-documentation.cpp index 4839bdff61795..0d1faa1b562fe 100644 --- a/clang/test/Sema/warn-documentation.cpp +++ b/clang/test/Sema/warn-documentation.cpp @@ -1524,3 +1524,15 @@ F &f = FF; ///< \return none // expected-warning@-1 {{'\return' command used in a comment that is not attached to a function or method declaration}} } // namespace PR42844 + +#if __cplusplus >= 201402L +namespace GH144775 { +/// @brief primary template +/// @tparam T type +template <class T, class = void> constexpr auto var = T{}; + +/// @brief variable template partial specialization +/// @tparam T type +template <typename T> constexpr auto var<T> = T{}; +} // namespace GH144775 +#endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits