sdkrystian wrote:

> This appears to cause incorrect behavior in the following code:
> 
> ```c++
> struct Pointee {
>     template<typename T>
>     T *method() { return nullptr; }
> };
> 
> template <typename T>
> struct Pointer {
>     T *pointer;
>     T *operator->() { return pointer; }
> };
> 
> struct Base {
>     Pointer<Pointee> field;
> };
> 
> template <typename T>
> struct Example: public Base {
>     bool example() {
>         return field->method<T>() == nullptr;
>     }
> };
> ```
> 
> The `field->method<T>()` is diagnosed as being a dependent template name and 
> it doesn't appear to be one.

@porglezomp I just pushed a commit that should fix it.

https://github.com/llvm/llvm-project/pull/109422
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to