]> gcc.gnu.org Git - gcc.git/blob - gcc/testsuite/g++.dg/cpp0x/noexcept08.C
PR c++/92590 - wrong handling of inherited default ctor.
[gcc.git] / gcc / testsuite / g++.dg / cpp0x / noexcept08.C
1 // { dg-do compile { target c++11 } }
2 // { dg-prune-output "overriding" }
3
4 struct A
5 {
6 virtual void f();
7 virtual void g() throw();
8 virtual void h() noexcept;
9 virtual void i() noexcept(false);
10 virtual void j() throw(int); // { dg-error "dynamic exception specification" "" { target c++17 } }
11 }; // { dg-warning "deprecated" "" { target { ! c++17 } } .-1 }
12
13 struct B: A
14 {
15 void f() noexcept;
16 void g() noexcept;
17 void h() noexcept;
18 void i() noexcept;
19 void j() noexcept;
20 };
21
22 struct C: A
23 {
24 void f() throw();
25 void g() throw();
26 void h() throw();
27 void i() throw();
28 void j() throw();
29 };
30
31 struct D: A
32 {
33 void f() noexcept(false);
34 void g() noexcept(false); // { dg-error "looser" }
35 void h() noexcept(false); // { dg-error "looser" }
36 void i() noexcept(false);
37 void j() noexcept(false); // { dg-error "looser" "" { target { ! c++17 } } }
38 };
39
40 struct E: A
41 {
42 void f() throw(int); // { dg-error "dynamic exception specification" "" { target c++17 } }
43 // { dg-warning "deprecated" "" { target { ! c++17 } } .-1 }
44 void g() throw(int); // { dg-error "looser" }
45 // { dg-error "dynamic exception specification" "" { target c++17 } .-1 }
46 // { dg-warning "deprecated" "" { target { ! c++17 } } .-2 }
47 void h() throw(int); // { dg-error "looser" }
48 // { dg-error "dynamic exception specification" "" { target c++17 } .-1 }
49 // { dg-warning "deprecated" "" { target { ! c++17 } } .-2 }
50 void i() throw(int); // { dg-error "dynamic exception specification" "" { target c++17 } }
51 // { dg-warning "deprecated" "" { target { ! c++17 } } .-1 }
52 void j() throw(int); // { dg-error "dynamic exception specification" "" { target c++17 } }
53 // { dg-warning "deprecated" "" { target { ! c++17 } } .-1 }
54 };
55
56 struct F: A
57 {
58 void f();
59 void g(); // { dg-error "looser" }
60 void h(); // { dg-error "looser" }
61 void i();
62 void j(); // { dg-error "looser" "" { target { ! c++17 } } }
63 };
This page took 0.042029 seconds and 5 git commands to generate.