|
1 | | -// RUN: %clang_cc1 -std=c++2c -verify=expected -fsyntax-only %s |
| 1 | +// RUN: %clang_cc1 -std=c++03 -verify=expected,cxx11,cxx03 -fsyntax-only %s |
2 | 2 | // RUN: %clang_cc1 -std=c++11 -verify=expected,cxx11 -fsyntax-only %s |
3 | | - |
| 3 | +// RUN: %clang_cc1 -std=c++2c -verify=expected -fsyntax-only %s |
4 | 4 |
|
5 | 5 |
|
6 | 6 | class A trivially_relocatable_if_eligible {}; |
7 | 7 | // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} |
8 | 8 | class E final trivially_relocatable_if_eligible {}; |
9 | 9 | // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} |
| 10 | +// cxx03-warning@-2 {{'final' keyword is a C++11 extension}} |
10 | 11 | class G trivially_relocatable_if_eligible final{}; |
11 | 12 | // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} |
12 | | -class I trivially_relocatable_if_eligible trivially_relocatable_if_eligible final {}; // expected-error {{class already marked 'trivially_relocatable_if_eligible'}} |
13 | | -// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} |
| 13 | +// cxx03-warning@-2 {{'final' keyword is a C++11 extension}} |
| 14 | +class I trivially_relocatable_if_eligible trivially_relocatable_if_eligible final {}; |
| 15 | +// expected-error@-1 {{class already marked 'trivially_relocatable_if_eligible'}} |
| 16 | +// cxx11-warning@-2 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} |
| 17 | +// cxx03-warning@-3 {{'final' keyword is a C++11 extension}} |
14 | 18 | class trivially_relocatable_if_eligible trivially_relocatable_if_eligible {}; |
15 | 19 | // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} |
16 | | - |
17 | 20 | class J replaceable_if_eligible{}; |
18 | 21 | // cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}} |
19 | | -class K replaceable_if_eligible replaceable_if_eligible {}; // expected-error {{class already marked 'replaceable_if_eligible'}} |
20 | | -// cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}} |
| 22 | +class K replaceable_if_eligible replaceable_if_eligible {}; |
| 23 | +// expected-error@-1 {{class already marked 'replaceable_if_eligible'}} |
| 24 | +// cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}} |
21 | 25 | class replaceable_if_eligible replaceable_if_eligible {}; |
22 | 26 | // cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}} |
23 | 27 | class L replaceable_if_eligible trivially_relocatable_if_eligible final {}; |
24 | 28 | // cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}} |
25 | 29 | // cxx11-warning@-2 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} |
| 30 | +// cxx03-warning@-3 {{'final' keyword is a C++11 extension}} |
26 | 31 | class M replaceable_if_eligible final trivially_relocatable_if_eligible {}; |
27 | 32 | // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} |
28 | 33 | // cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}} |
| 34 | +// cxx03-warning@-3 {{'final' keyword is a C++11 extension}} |
29 | 35 | class N final trivially_relocatable_if_eligible replaceable_if_eligible {}; |
30 | 36 | // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} |
31 | 37 | // cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}} |
| 38 | +// cxx03-warning@-3 {{'final' keyword is a C++11 extension}} |
32 | 39 | class O trivially_relocatable_if_eligible replaceable_if_eligible final {}; |
33 | 40 | // cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}} |
34 | 41 | // cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}} |
| 42 | +// cxx03-warning@-3 {{'final' keyword is a C++11 extension}} |
0 commit comments