2 // Contributed by Gabriel Dos Reis <gdr at integrable-solutions dot net>
3 // PR c++/2204: Check for parameters of abstract type in function declarations.
9 void g(X parm1); // { dg-error "abstract" }
10 void g(X parm2[2]); // { dg-error "abstract" }
11 void g(X (*parm3)[2]); // { dg-error "abstract" }
17 void g(X parm4); // { dg-error "abstract" }
18 void g(X parm5[2]); // { dg-error "abstract" }
19 void g(X (*parm6)[2]); // { dg-error "abstract" }
22 struct X { // { dg-error "note" }
23 virtual void xfunc(void) = 0; // { dg-error "note" }
28 struct X1 { // { dg-error "note" }
29 virtual void xfunc(void) = 0; // { dg-error "note" }
30 void g(X1 parm7); // { dg-error "abstract" }
31 void g(X1 parm8[2]); // { dg-error "abstract" }
32 void g(X1 (*parm9)[2]); // { dg-error "abstract" }
36 struct X2 { // { dg-error "note" }
37 virtual void xfunc(void) = 0; // { dg-error "note" }
38 void g(X2 parm10); // { dg-error "abstract" }
39 void g(X2 parm11[2]); // { dg-error "abstract" }
40 void g(X2 (*parm12)[2]); // { dg-error "abstract" }
45 struct X { // { dg-error "note" "" }
46 virtual void xfunc(void) = 0; // { dg-error "note" }
48 void g(X parm13); // { dg-error "abstract" }
49 void g(X parm14[2]); // { dg-error "abstract" }
50 void g(X (*parm15)[2]); // { dg-error "abstract" }
53 void g(X parm16); // { dg-error "abstract" }
55 void g(X parm17[2]); // { dg-error "abstract" }
57 void g(X (*parm18)[2]); // { dg-error "abstract" }