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