(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
parse/
friend7.C
// PR c++/34488
// { dg-do compile }
// { dg-additional-options "-Wno-return-type" }

struct A
{
  A ();
  ~A ();
  A (const A &);
};

struct B
{
  friend A::A ();
  friend A::~A ();
  friend A::A (const A &);
};

struct C
{
  friend int C ();
  friend int ~C ();		// { dg-error "10:return type" }
  // { dg-error "14:expected qualified name in friend decl" "" { target *-*-* } .-1 }
  friend int C (const C &);
};

struct D
{
  friend int D () {}
  friend int ~D () {}		// { dg-error "10:return type" }
  // { dg-error "14:expected qualified name in friend decl" "" { target *-*-* } .-1 }
  friend int D (const D &) {}
};

struct E
{
  friend A::A () {}		// { dg-error "cannot define member" }
  friend A::~A () {}		// { dg-error "cannot define member" }
  friend A::A (const A &) {}	// { dg-error "cannot define member" }
};