[clang] [clang-tools-extra] [Clang][AST] Introduce `ExplicitInstantiationDecl` to preserve source info and fix diagnostic locations (PR #191658)
Younan Zhang via cfe-commits
cfe-commits at lists.llvm.org
Sat Apr 11 20:04:33 PDT 2026
================
@@ -10827,8 +10865,16 @@ DeclResult Sema::ActOnExplicitInstantiation(Scope *S,
return true;
}
- // FIXME: Create an ExplicitInstantiation node?
- return (Decl*) nullptr;
+ const ASTTemplateArgumentListInfo *ArgsAsWritten = nullptr;
+ if (auto *VTSD = dyn_cast<VarTemplateSpecializationDecl>(Prev))
+ ArgsAsWritten = VTSD->getTemplateArgsAsWritten();
+ addExplicitInstantiationDecl(Context, CurContext, D.getCXXScopeSpec(), Prev,
+ ExternLoc, TemplateLoc, SourceLocation(),
+ ArgsAsWritten, D.getIdentifierLoc(), T, TSK);
+ // Don't return the EID to the Parser — doing so would trigger
+ // unrelated semantic actions (e.g. access checks via
+ // FinalizeDeclaration).
+ return (Decl *)nullptr;
----------------
zyn0217 wrote:
Do you have a test if we return something?
https://github.com/llvm/llvm-project/pull/191658
More information about the cfe-commits
mailing list