================
@@ -6538,6 +6559,34 @@ ExpectedDecl
ASTNodeImporter::VisitClassTemplateSpecializationDecl(
if (!ClassTemplate->findSpecialization(TemplateArgs, InsertPos))
// Add this specialization to the class template.
ClassTemplate->AddSpecialization(D2, InsertPos);
+
+ if (const auto *Info = D->getExplicitInstantiationInfo()) {
+ auto ExternKeywordLocOrErr = import(Info->ExternKeywordLoc);
+ if (!ExternKeywordLocOrErr)
+ return ExternKeywordLocOrErr.takeError();
+ auto TemplateKeywordLocOrErr = import(Info->TemplateKeywordLoc);
+ if (!TemplateKeywordLocOrErr)
+ return TemplateKeywordLocOrErr.takeError();
+ TemplateArgumentListInfo ToTAInfo;
+ if (Error Err = ImportTemplateArgumentListInfo(
+ *Info->TemplateArgsAsWritten, ToTAInfo))
+ return std::move(Err);
+ D2->setExplicitInstantiationInfo(*ExternKeywordLocOrErr,
+ *TemplateKeywordLocOrErr,
+ ASTTemplateArgumentListInfo::Create(
+ Importer.getToContext(), ToTAInfo));
+ } else if (const auto *Info = D->getExplicitSpecializationInfo()) {
----------------
erichkeane wrote:
Oh boy, the textual difference between `gtExplicitInstantiationInfo` and
`getExplicitSpecializationInfo` is... confusing at times.
https://github.com/llvm/llvm-project/pull/199528
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits