1 // Test for checking of exception specifications on defaulted fns
2 // { dg-do compile { target c++11 } }
3 
4 struct A
5 {
6   A() noexcept = default;
7 };
8 
9 A a;
10 
11 struct B
12 {
13   B() throw (int) = default; // { dg-message "exception-specification" "" { target { ! c++17 } } }
14 };				// { dg-error "dynamic exception specification" "" { target c++17 } .-1 }
15 				// { dg-warning "deprecated" "" { target { ! c++17 } } .-2 }
16 B b;				// { dg-error "deleted" "" { target { ! c++17 } } }
17 
18 struct C
19 {
throwC20   C() throw (int) { }		// { dg-error "dynamic exception specification" "" { target c++17 } }
21 };				// { dg-warning "deprecated" "" { target { ! c++17 } } .-1 }
22 
23 C c;
24 
25 struct D: C
26 {
27   D() throw (int) = default;	// { dg-error "dynamic exception specification" "" { target c++17 } }
28 };				// { dg-warning "deprecated" "" { target { ! c++17 } } .-1 }
29 
30 D d;
31 
32 struct E
33 {
34   E() = default;
35 };
36 
37 E e;
38