[clang] [clang][Modules] Complete the implementation of P2615: Meaningful exports (PR #194201)
Victor Chernyakin via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 27 23:07:34 PDT 2026
================
@@ -1913,3 +1913,19 @@ SourceRange ExplicitInstantiationDecl::getSourceRange() const {
SourceLocation Begin = ExternLoc.isValid() ? ExternLoc : getLocation();
return SourceRange(Begin, getEndLoc());
}
+
+TemplateSpecializationKind clang::getTemplateSpecializationKind(const Decl *D) {
+ if (!D)
+ return TSK_Undeclared;
+
+ if (const auto *Record = dyn_cast<CXXRecordDecl>(D))
+ return Record->getTemplateSpecializationKind();
+ if (const auto *Function = dyn_cast<FunctionDecl>(D))
+ return Function->getTemplateSpecializationKind();
+ if (const auto *Var = dyn_cast<VarDecl>(D))
+ return Var->getTemplateSpecializationKind();
+ if (const auto *EID = dyn_cast<ExplicitInstantiationDecl>(D))
+ return EID->getTemplateSpecializationKind();
+
+ return TSK_Undeclared;
----------------
localspook wrote:
Agreed, but it's consistent with all the node-specific `getTemplateSpecializationKind` methods.
https://github.com/llvm/llvm-project/pull/194201
More information about the cfe-commits
mailing list