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
6struct B
7{
8  virtual auto f() -> void final;
9  virtual auto g() -> void;
10};
11
12struct B2
13{
14  virtual auto f() -> void final {}
15};
16
17struct B3
18{
19  virtual auto f() -> final void; // { dg-error "type" }
20};
21
22struct B4
23{
24  virtual auto f() -> final void {} // { dg-error "type" }
25};
26
27struct D : B
28{
29  virtual auto g() -> void override;
30};
31
32struct D2 : B
33{
34  virtual auto g() -> void override {}
35};
36
37struct D3 : B
38{
39  virtual auto g() -> override void; // { dg-error "type" }
40};
41
42struct D4 : B
43{
44  virtual auto g() -> override void {} // { dg-error "type" }
45};
46