OSDN Git Service

Pizza-lize :-)
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / other / abstract2.C
1 // { dg-do compile }
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.
4
5 namespace N1 {
6   struct X;
7
8   struct Y1 {
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" }
12   };
13
14
15   template <int N>
16   struct Y2 {
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" }
20   };
21
22   struct X {  // { dg-message "note" }
23     virtual void xfunc(void) = 0;  // { dg-message "note" }
24   };
25 }
26
27 namespace N2 {
28   struct X1 { // { dg-message "note" }
29     virtual void xfunc(void) = 0;  // { dg-message "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" }
33   };
34
35   template <int N>
36   struct X2 { // { dg-message "note" }
37     virtual void xfunc(void) = 0; // { dg-message "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" }
41   };
42 }
43
44 namespace N3 {
45   struct X { // { dg-message "note" "" }
46     virtual void xfunc(void) = 0;  // { dg-message "note" }
47   };
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" }
51
52   template <int N> 
53   void g(X parm16);          // { dg-error "abstract" }
54   template <int N> 
55   void g(X parm17[2]);       // { dg-error "abstract" }
56   template <int N> 
57   void g(X (*parm18)[2]);    // { dg-error "abstract" }
58 }