1
- // RUN: %clang_cc1 -std=c++20 %s -verify=cxx20
2
- // RUN: %clang_cc1 -std=c++23 %s -verify=cxx23
3
- // RUN: %clang_cc1 -std=c++23 -Wpre-c++23-compat %s -verify=precxx23
4
- // RUN: %clang_cc1 -std=c++23 -pedantic %s -verify=cxx23
5
-
6
- // cxx23-no-diagnostics
1
+ // RUN: %clang_cc1 -triple aarch64-unknown-linux-gnu -target-feature +sme -std=c++20 %s -verify=cxx20
2
+ // RUN: %clang_cc1 -triple aarch64-unknown-linux-gnu -target-feature +sme -std=c++23 %s -verify=cxx23
3
+ // RUN: %clang_cc1 -triple aarch64-unknown-linux-gnu -target-feature +sme -std=c++23 -Wpre-c++23-compat %s -verify=precxx23
4
+ // RUN: %clang_cc1 -triple aarch64-unknown-linux-gnu -target-feature +sme -std=c++23 -pedantic %s -verify=cxx23
7
5
8
6
auto L1 = [] constexpr {};
9
7
// cxx20-warning@-1 {{lambda without a parameter clause is a C++23 extension}}
@@ -14,3 +12,25 @@ auto L3 = [] static {};
14
12
// cxx20-warning@-1 {{lambda without a parameter clause is a C++23 extension}}
15
13
// cxx20-warning@-2 {{static lambdas are a C++23 extension}}
16
14
// precxx23-warning@-3 {{static lambdas are incompatible with C++ standards before C++23}}
15
+
16
+ namespace GH161070 {
17
+ void t1 () { int a = [] __arm_streaming; }
18
+ // precxx23-error@-1 {{'__arm_streaming' cannot be applied to a declaration}}
19
+ // precxx23-error@-2 {{expected body of lambda expression}}
20
+ // cxx23-error@-3 {{'__arm_streaming' cannot be applied to a declaration}}
21
+ // cxx23-error@-4 {{expected body of lambda expression}}
22
+ // cxx20-error@-5 {{'__arm_streaming' cannot be applied to a declaration}}
23
+ // cxx20-error@-6 {{expected body of lambda expression}}
24
+ // cxx20-warning@-7 {{'__arm_streaming' in this position is a C++23 extension}}
25
+ // precxx23-warning@-8 {{'__arm_streaming' in this position is incompatible with C++ standards before C++23}}
26
+
27
+ void t2 () { int a = [] [[assume (true )]]; }
28
+ // precxx23-error@-1 {{'assume' attribute cannot be applied to a declaration}}
29
+ // precxx23-error@-2 {{expected body of lambda expression}}
30
+ // cxx23-error@-3 {{'assume' attribute cannot be applied to a declaration}}
31
+ // cxx23-error@-4 {{expected body of lambda expression}}
32
+ // cxx20-error@-5 {{'assume' attribute cannot be applied to a declaration}}
33
+ // cxx20-error@-6 {{expected body of lambda expression}}
34
+ // cxx20-warning@-7 {{an attribute specifier sequence in this position is a C++23 extension}}
35
+ // precxx23-warning@-8 {{an attribute specifier sequence in this position is incompatible with C++ standards before C++23}}
36
+ }
0 commit comments