[clang] Fix missing initializer for inline static template member with auto caused by delayed template instantiation. (PR #138122)
Yanzuo Liu via cfe-commits
cfe-commits at lists.llvm.org
Thu May 1 06:39:31 PDT 2025
================
@@ -6027,8 +6027,15 @@ void Sema::BuildVariableInstantiation(
Context.setManglingNumber(NewVar, Context.getManglingNumber(OldVar));
Context.setStaticLocalNumber(NewVar, Context.getStaticLocalNumber(OldVar));
+ bool VarTemplateWithAutoType = false;
+ QualType VarSourceType = OldVar->getTypeSourceInfo()->getType();
+ if (VarSourceType->getAs<AutoType>()) {
----------------
zwuis wrote:
Can we use `->isUndeducedType()` to handle this case
```cpp
template <typename T> struct S { S(T); };
template <typename T> struct B {
template <typename G> inline static S var = 5;
};
```
?
https://github.com/llvm/llvm-project/pull/138122
More information about the cfe-commits
mailing list