1 // { dg-do compile { target c++11 } }
2 // { dg-prune-output "expected ';'" }
3 // { dg-prune-output "expected unqualified-id" }
4 // { dg-prune-output "declaration does not declare anything" }
5 
6 struct B
7 {
8   virtual auto f() -> void final;
9   virtual auto g() -> void;
10 };
11 
12 struct B2
13 {
14   virtual auto f() -> void final {}
15 };
16 
17 struct B3
18 {
19   virtual auto f() -> final void; // { dg-error "type" }
20 };
21 
22 struct B4
23 {
24   virtual auto f() -> final void {} // { dg-error "type" }
25 };
26 
27 struct D : B
28 {
29   virtual auto g() -> void override;
30 };
31 
32 struct D2 : B
33 {
34   virtual auto g() -> void override {}
35 };
36 
37 struct D3 : B
38 {
39   virtual auto g() -> override void; // { dg-error "type" }
40 };
41 
42 struct D4 : B
43 {
44   virtual auto g() -> override void {} // { dg-error "type" }
45 };
46