// { dg-do compile }
// Origin: Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de>
// PR c++/7347
// Access control for typename during instantiation
template <int dim> class Base {
  protected:
    typedef int T;
};
template <int dim> class D : public Base<dim> {
  public:
    typedef typename Base<dim>::T T1;
    D (T1 t);
};
D<2> d(1);