Richard Smith | 762bb9d | 2011-10-13 22:29:44 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s |
Anders Carlsson | c7119a8 | 2011-01-20 05:55:43 +0000 | [diff] [blame] | 2 | |
| 3 | struct Base { |
| 4 | virtual void override(); |
| 5 | }; |
| 6 | |
| 7 | struct S : Base { |
Anders Carlsson | 1f3b6fd | 2011-01-16 23:56:42 +0000 | [diff] [blame] | 8 | virtual void final() final; |
| 9 | virtual void override() override; |
Anders Carlsson | aa031fd | 2011-01-20 03:41:12 +0000 | [diff] [blame] | 10 | }; |
| 11 | |
| 12 | struct T { |
| 13 | // virt-specifier-seq is only valid in member-declarators, and a function definition is not a member-declarator. |
Anders Carlsson | c7119a8 | 2011-01-20 05:55:43 +0000 | [diff] [blame] | 14 | // FIXME: This currently doesn't work. |
| 15 | // virtual void f() const override { } |
Anders Carlsson | 1f3b6fd | 2011-01-16 23:56:42 +0000 | [diff] [blame] | 16 | }; |
Anders Carlsson | 37ea6c4 | 2011-01-20 04:07:46 +0000 | [diff] [blame] | 17 | |
| 18 | struct override; |
Anders Carlsson | c7119a8 | 2011-01-20 05:55:43 +0000 | [diff] [blame] | 19 | struct Base2 { |
| 20 | virtual override override(int override); |
| 21 | }; |
| 22 | |
| 23 | struct A : Base2 { |
| 24 | virtual struct override override(int override) override; |
Anders Carlsson | 37ea6c4 | 2011-01-20 04:07:46 +0000 | [diff] [blame] | 25 | }; |