[clang] [Clang][P1061] Fix template arguments in local classes (PR #121225)
Matheus Izvekov via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 11 09:08:04 PDT 2025
================
@@ -4433,8 +4433,12 @@ Sema::InstantiateClassMembers(SourceLocation PointOfInstantiation,
// No need to instantiate in-class initializers during explicit
// instantiation.
if (Field->hasInClassInitializer() && TSK == TSK_ImplicitInstantiation) {
+ // Handle local classes which could have substituted template params.
CXXRecordDecl *ClassPattern =
- Instantiation->getTemplateInstantiationPattern();
+ Instantiation->isLocalClass()
+ ? Instantiation->getInstantiatedFromMemberClass()
+ : Instantiation->getTemplateInstantiationPattern();
----------------
mizvekov wrote:
The main point of `getTemplateInstantiationPattern` is to figure out the instantiation pattern as the name suggests, it would be better to fix the problem within it.
https://github.com/llvm/llvm-project/pull/121225
More information about the cfe-commits
mailing list