1 // PR c++/86476 - noexcept-specifier is a complete-class context
2 // { dg-do compile { target c++11 } }
3 
4 void f() noexcept(false);
5 void g() noexcept(true);
6 void h() noexcept;
7 
8 struct B {
9   friend void f() noexcept(false);
10   friend void g() noexcept(false); // { dg-error "different exception specifier" }
11   friend void h() noexcept(false); // { dg-error "different exception specifier" }
12 };
13 
14 struct C {
15   friend void f() noexcept(true); // { dg-error "different exception specifier" }
16   friend void g() noexcept(true); // { dg-error "different exception specifier" }
17   friend void h() noexcept(true); // { dg-error "different exception specifier" }
18 };
19 
20 void o() noexcept(false);
21 void p() noexcept(true);
22 void q() noexcept;
23 
24 struct D {
25   friend void o() noexcept(true); // { dg-error "different exception specifier" }
26   friend void p() noexcept(true);
27   friend void q() noexcept(true);
28 };
29