Merge -r 127928:132243 from trunk
[official-gcc.git] / gcc / testsuite / g++.dg / parse / friend7.C
blob668fd35d37cc2d8b9725751e669c8b74fd2797bb
1 // PR c++/34488
2 // { dg-do compile }
4 struct A
6   A ();
7   ~A ();
8   A (const A &);
9 };
11 struct B
13   friend A::A ();
14   friend A::~A ();
15   friend A::A (const A &);
18 struct C
20   friend int C ();              // { dg-error "return type|in friend decl" }
21   friend int ~C ();             // { dg-error "return type|in friend decl" }
22   friend int C (const C &);     // { dg-error "return type|in friend decl" }
25 struct D
27   friend int D () {}            // { dg-error "return type|in friend decl" }
28   friend int ~D () {}           // { dg-error "return type|in friend decl" }
29   friend int D (const D &) {}   // { dg-error "return type|in friend decl" }
32 struct E
34   friend A::A () {}             // { dg-error "cannot define member" }
35   friend A::~A () {}            // { dg-error "cannot define member" }
36   friend A::A (const A &) {}    // { dg-error "cannot define member" }