1// { dg-do assemble  }
2
3template <int dim>
4class Point {
5  public:
6    Point (Point<dim> &);
7    Point<dim> & operator = (Point<dim> &);
8};
9
10
11
12template <int dim>
13class bar{
14  public:
15    void foo (Point<dim> p = Point<dim>());
16};
17
18
19
20template <>
21void bar<2>::foo (Point<2> p) {
22  const int dim = 2;
23  Point<dim> q = p;
24}
25