// { dg-do assemble  }
// Bug: g++ tries to instantiate ccList twice, and fails.
template<class T> class ccHandle{ };
template <class T> class ccList;
template <class T> class cc_List {
public:
  ccList <T>  copy ();
};
template <class T> class ccList : public ccHandle < cc_List <T> > {
public:
  ccList (int);
};
template <class T>
ccList <T> cc_List<T>::copy (){}
int main (int, char **) {
  ccList <int> size1(); // { dg-warning "empty parentheses" }
}