// { dg-do compile { target c++20 } } template concept Class = __is_class(T); template requires Class using X = T*; template using Y = X; // { dg-error "constraint" } template using Z = T*; struct S { }; X x1; // OK X x2; // { dg-error "template constraint failure" } Y y1; // { dg-message "" } Z z1; // ok