================
@@ -4262,7 +4262,12 @@ class LookupVisibleHelper {
// there anyway.
continue;
}
- const auto *TST = BaseType->getAs<TemplateSpecializationType>();
+ // Look through an alias template, whose TemplateName is a
+ // TypeAliasTemplateDecl rather than the ClassTemplateDecl we are
+ // after; otherwise the base is skipped entirely. libstdc++'s
+ // std::allocator<T> relies on this: it derives from
+ // __allocator_base<T>, an alias template for __new_allocator<T>.
+ const auto *TST =
BaseType->getAsNonAliasTemplateSpecializationType();
----------------
zyn0217 wrote:
```suggestion
// Look through an alias template, whose TemplateName is a
// TypeAliasTemplateDecl rather than the ClassTemplateDecl we are
// after; otherwise the base is skipped entirely.
```
https://github.com/llvm/llvm-project/pull/223713
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits