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