Skip to content

Commit ad4a5a9

Browse files
committed
changelog, docs, C++03 tests
1 parent 86137ed commit ad4a5a9

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

clang/docs/LanguageExtensions.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1645,6 +1645,7 @@ Static assert with user-generated message __cpp_static_assert >= 202306L C+
16451645
Pack Indexing __cpp_pack_indexing C++26 C++03
16461646
``= delete ("should have a reason");`` __cpp_deleted_function C++26 C++03
16471647
Variadic Friends __cpp_variadic_friend C++26 C++03
1648+
Trivial Relocatability __cpp_trivial_relocatability C++26 C++03
16481649
-------------------------------------------- -------------------------------- ------------- -------------
16491650
Designated initializers (N494) C99 C89
16501651
Array & element qualification (N2607) C23 C89

clang/docs/ReleaseNotes.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ C++2c Feature Support
7272
^^^^^^^^^^^^^^^^^^^^^
7373

7474
- Implemented `P1061R10 Structured Bindings can introduce a Pack <https://wg21.link/P1061R10>`_.
75+
- Implemented `P2786R13 Trivial Relocatability <https://wg21.link/P2786R13>`_.
76+
7577

7678
C++23 Feature Support
7779
^^^^^^^^^^^^^^^^^^^^^
Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,42 @@
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
22
// 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
44

55

66
class A trivially_relocatable_if_eligible {};
77
// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}
88
class E final trivially_relocatable_if_eligible {};
99
// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}
10+
// cxx03-warning@-2 {{'final' keyword is a C++11 extension}}
1011
class G trivially_relocatable_if_eligible final{};
1112
// 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}}
1418
class trivially_relocatable_if_eligible trivially_relocatable_if_eligible {};
1519
// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}
16-
1720
class J replaceable_if_eligible{};
1821
// 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}}
2125
class replaceable_if_eligible replaceable_if_eligible {};
2226
// cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}}
2327
class L replaceable_if_eligible trivially_relocatable_if_eligible final {};
2428
// cxx11-warning@-1 {{'replaceable_if_eligible' keyword is a C++2c extension}}
2529
// cxx11-warning@-2 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}
30+
// cxx03-warning@-3 {{'final' keyword is a C++11 extension}}
2631
class M replaceable_if_eligible final trivially_relocatable_if_eligible {};
2732
// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}
2833
// cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}}
34+
// cxx03-warning@-3 {{'final' keyword is a C++11 extension}}
2935
class N final trivially_relocatable_if_eligible replaceable_if_eligible {};
3036
// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}
3137
// cxx11-warning@-2 {{'replaceable_if_eligible' keyword is a C++2c extension}}
38+
// cxx03-warning@-3 {{'final' keyword is a C++11 extension}}
3239
class O trivially_relocatable_if_eligible replaceable_if_eligible final {};
3340
// cxx11-warning@-1 {{'trivially_relocatable_if_eligible' keyword is a C++2c extension}}
3441
// 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

Comments
 (0)