| 
1 |  | -// RUN: %clang_cc1 -std=c++20 -ferror-limit 0 -verify %s  | 
 | 1 | +// RUN: %clang_cc1 -std=c++20 -ferror-limit 0 -verify=expected,cxx20 %s  | 
 | 2 | +// RUN: %clang_cc1 -std=c++2c -ferror-limit 0 -verify=expected %s  | 
2 | 3 | 
 
  | 
3 | 4 | namespace PR47043 {  | 
4 | 5 |  template<typename T> concept True = true;  | 
@@ -1405,3 +1406,41 @@ static_assert(!std::is_constructible_v<span<4>, array<int, 3>>);  | 
1405 | 1406 | }  | 
1406 | 1407 | 
 
  | 
1407 | 1408 | }  | 
 | 1409 | + | 
 | 1410 | + | 
 | 1411 | +namespace GH162125 {  | 
 | 1412 | +template<typename, int size>  | 
 | 1413 | +concept true_int = (size, true);  | 
 | 1414 | + | 
 | 1415 | +template<typename, typename... Ts>  | 
 | 1416 | +concept true_types = true_int<void, sizeof...(Ts)>;  | 
 | 1417 | + | 
 | 1418 | +template<typename, typename... Ts>  | 
 | 1419 | +concept true_types2 = true_int<void, Ts...[0]{1}>; // cxx20-warning {{pack indexing is a C++2c extension}}  | 
 | 1420 | + | 
 | 1421 | +template<typename... Ts>  | 
 | 1422 | +struct s {  | 
 | 1423 | + template<typename T> requires true_types<T, Ts...> && true_types2<T, Ts...>  | 
 | 1424 | + static void f(T);  | 
 | 1425 | +};  | 
 | 1426 | +void(*test)(int) = &s<bool>::f<int>;  | 
 | 1427 | +}  | 
 | 1428 | + | 
 | 1429 | +namespace GH162125_reversed {  | 
 | 1430 | +template<int size, typename>  | 
 | 1431 | +concept true_int = (size, true);  | 
 | 1432 | + | 
 | 1433 | +template<typename, typename... Ts>  | 
 | 1434 | +concept true_types = true_int<sizeof...(Ts), void>;  | 
 | 1435 | + | 
 | 1436 | +template<typename, typename... Ts>  | 
 | 1437 | +concept true_types2 = true_int<Ts...[0]{1}, void>; // cxx20-warning {{pack indexing is a C++2c extension}}  | 
 | 1438 | + | 
 | 1439 | +template<typename... Ts>  | 
 | 1440 | +struct s {  | 
 | 1441 | + template<typename T> requires true_types<T, Ts...> && true_types2<T, Ts...>  | 
 | 1442 | + static void f(T);  | 
 | 1443 | +};  | 
 | 1444 | + | 
 | 1445 | +void(*test)(int) = &s<bool>::f<int>;  | 
 | 1446 | +}  | 
0 commit comments