template<class T> struct C1
{
  template<class U> struct C2
  { class Type { }; };
};

template<class T, class U>
void foo(typename C1<T>::C2<U>::Type *) { } // { dg-error "template" "error " }
// { dg-message "note" "note" { target *-*-* } 8 }
