1 // { dg-options "-std=c++0x" }
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);
11 };
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" }
38 };
39 
40 struct E: A
41 {
42   void f() throw(int);
43   void g() throw(int);		// { dg-error "looser" }
44   void h() throw(int);		// { dg-error "looser" }
45   void i() throw(int);
46   void j() throw(int);
47 };
48 
49 struct F: A
50 {
51   void f();
52   void g();			// { dg-error "looser" }
53   void h();			// { dg-error "looser" }
54   void i();
55   void j();			// { dg-error "looser" }
56 };
57