https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101620

            Bug ID: 101620
           Summary: gcc incorrectly makes concept checking in
                    incomplete-class context
           Product: gcc
           Version: 11.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: fchelnokov at gmail dot com
  Target Milestone: ---

Compilation of this program
```
struct A {};

template<typename T>
concept DerivedOnceFromA = requires(T t) { { static_cast<const A&>(t) }; };

template<DerivedOnceFromA T>
struct B {};

struct C : A
{
    B<C> foo();
};
```
must fail, since B<C> is checked in incomplete struct C context:
https://gcc.godbolt.org/z/ajh8MsY4n

Reply via email to