| // RUN: %clang_cc1 -verify -std=c++2c -emit-llvm -triple %itanium_abi_triple -o - %s -fclang-abi-compat=latest | FileCheck %s | |
| // expected-no-diagnostics | |
| // FIXME: Is the empty case case correct? These are not defined by the itanium ABI yet. | |
| namespace GH218820 { | |
| // CHECK: define {{.*}}@_ZN8GH2188201fITpTtTyEJEEEvvQfraa1CIiE( | |
| // CHECK: define {{.*}}@_ZN8GH2188201fIJNS_1CEEEEvvQfraa1CIiE( | |
| template <template <typename> concept... C> | |
| void f() requires (C<int> && ...) {} | |
| // CHECK: define {{.*}}@_ZN8GH2188201gITpTtTyEJEEEvvQfraa1VIiE( | |
| // CHECK: define {{.*}}@_ZN8GH2188201gIJNS_1VEEEEvvQfraa1VIiE( | |
| template <template <typename> auto... V> | |
| void g() requires (V<int> && ...) {} | |
| template <typename T> | |
| concept C = true; | |
| template <typename T> | |
| constexpr auto V = true; | |
| void h() { | |
| f<>(); | |
| f<C>(); | |
| g<>(); | |
| g<V>(); | |
| } | |
| } |