Anders Carlsson | 1f3b6fd | 2011-01-16 23:56:42 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %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; |
| 10 | virtual void n() new; |
Anders Carlsson | aa031fd | 2011-01-20 03:41:12 +0000 | [diff] [blame] | 11 | int i : 3 new; |
| 12 | int j new; |
| 13 | }; |
| 14 | |
| 15 | struct T { |
| 16 | // 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^] | 17 | // FIXME: This currently doesn't work. |
| 18 | // virtual void f() const override { } |
Anders Carlsson | 1f3b6fd | 2011-01-16 23:56:42 +0000 | [diff] [blame] | 19 | }; |
Anders Carlsson | 37ea6c4 | 2011-01-20 04:07:46 +0000 | [diff] [blame] | 20 | |
| 21 | struct override; |
Anders Carlsson | c7119a8 | 2011-01-20 05:55:43 +0000 | [diff] [blame^] | 22 | struct Base2 { |
| 23 | virtual override override(int override); |
| 24 | }; |
| 25 | |
| 26 | struct A : Base2 { |
| 27 | virtual struct override override(int override) override; |
Anders Carlsson | 37ea6c4 | 2011-01-20 04:07:46 +0000 | [diff] [blame] | 28 | }; |