================
@@ -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

Reply via email to