https://github.com/steakhal created https://github.com/llvm/llvm-project/pull/109104
Patch by Alejandro Alvarez Ayllon! CPP-5380 >From f495ed375b0581d475e13636e201cef57718d127 Mon Sep 17 00:00:00 2001 From: Alejandro _lvarez Ayll_n <alejandro.alva...@sonarsource.com> Date: Wed, 18 Sep 2024 10:58:03 +0200 Subject: [PATCH] [clang][NFC] Add regression tests for GH63782 Patch by Alejandro Alvarez Ayllon! CPP-5380 --- .../SemaTemplate/concepts-out-of-line-def.cpp | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/clang/test/SemaTemplate/concepts-out-of-line-def.cpp b/clang/test/SemaTemplate/concepts-out-of-line-def.cpp index 333187b0d74ad6..5450d105a6f54a 100644 --- a/clang/test/SemaTemplate/concepts-out-of-line-def.cpp +++ b/clang/test/SemaTemplate/concepts-out-of-line-def.cpp @@ -622,3 +622,47 @@ void A<T>::method(Ts&... ts) } {} } + +namespace GH63782 { +// GH63782 was also fixed by PR #80594, so let's add a test for it. + +template<bool... Vals> +constexpr bool All = (Vals && ...); + +template<bool... Bs> +class Class { + template<typename> + requires All<Bs...> + void Foo(); +}; + +template<bool... Bs> +template<typename> +requires All<Bs...> +void Class<Bs...>::Foo() { +}; + +} // namespace GH63782 + +namespace eve { +// Reduced from the "eve" project + +template <typename... Ts> +struct tuple { + template <int I0> requires(I0 <= sizeof...(Ts)) + constexpr auto split(); +}; + +template <typename... Ts> +template <int I0> +requires(I0 <= sizeof...(Ts)) +constexpr auto tuple<Ts...>::split(){ + return 0; +} + +int foo() { + tuple<int, float> x; + return x.split<0>(); +} + +} // namespace eve _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits