// { dg-do compile { target c++20 } } template concept Concept2 = requires (T t, U u) // { dg-error "depends on itself" } { t += u; }; template concept Concept = Concept2 ; struct S { template constexpr S& operator += (T o); }; constexpr S operator * (S a, S b) { return a += b; // { dg-error "no match" } }