159243Sobrien// { dg-do assemble  }
259243Sobrien// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
359243Sobrien// Contributed by Nathan Sidwell 14 Nov 2000 <nathan@codesourcery.com>
459243Sobrien
559243Sobrien// bug 616. We failed to complete the type of decls in templates, leading to
659243Sobrien// bogus errors.
759243Sobrien
859243Sobrienstruct Z;
959243Sobrienstruct Y
1059243Sobrien{
1159243Sobrien  Y (int i = 1);
1259243Sobrien};
1359243Sobrienvoid g ()
1459243Sobrien{
1559243Sobrien  const Y y;
16100616Smp  Z z;          // { dg-error "" } incomplete
1759243Sobrien}
1859243Sobrien
1959243Sobrientemplate <int dim>
2059243Sobrienstruct X
2159243Sobrien{
2259243Sobrien  X (int i=1);
2359243Sobrien};
2459243Sobrien
2559243Sobrienvoid h ()
2659243Sobrien{
2759243Sobrien  const X<2> z;
2859243Sobrien  Z z1;         // { dg-error "" } incomplete
2959243Sobrien}
3059243Sobrien
3159243Sobrientemplate <int dim>
3259243Sobrienvoid f()
3359243Sobrien{
3459243Sobrien  const X<dim> x;
3559243Sobrien  const X<dim+1> y[3];
3659243Sobrien  Z z2;           // { dg-error "" } incomplete
3759243Sobrien  typedef Z z3;   // ok
3859243Sobrien}
3959243Sobrien
4059243Sobrientemplate void f<3> ();
4159243Sobrien