// PR c++/16929

template <class T>
class A {
  int x;
};

template <class T>
class B {
protected:
    
  A<T> a; // { dg-error "" }
    
  void f(const A<T> * a1 = &a); // { dg-error "this location" }
    
  void g(void);
};

template <class T>
void B<T>::g(void) {
  f();
}

template class B<long>;
