1 // { dg-options "-std=c++17 -fconcepts" }
2 
3 template<typename T>
C()4   concept bool C() { return __is_class(T); }
5 
6 template<typename T>
7   requires C<T>()
8     using X = T*;
9 
10 // BUG: Alias templates are expanded at the point of use, regardless
11 // of whether or not they are dependent. This causes T* to be substituted
12 // without acutally checking the constraints.
13 template<typename T>
14   using Y = X<T>;
15 
main()16 int main()
17 {
18   Y<int> y1; // { dg-error "" "" { xfail *-*-* } }
19 }
20