1 template <typename T, bool=T::X> struct A
2 {
3   int i;
4 };
5 
6 template <typename T> struct B : A<T> // { dg-error "incomplete" }
7 {
8   using A<T>::i; // { dg-error "incomplete" "incomplete" }
9 };
10 
11 B<void> b; // { dg-message "required" }
12