[clang] [Clang] Fix handling of pack indexing types in constraints of redeclaration (PR #139057)
via cfe-commits
cfe-commits at lists.llvm.org
Fri May 9 06:07:15 PDT 2025
================
@@ -779,3 +781,59 @@ template <typename T>
consteval void S::mfn() requires (bool(&fn)) {}
}
+
+
+namespace GH138255 {
+
+ template <typename... T>
+ concept C = true;
+
+ struct Func {
+ template<typename... Ts>
+ requires C<Ts...[0]>
+ static auto buggy() -> void;
+
+ template<typename... Ts>
+ requires C<Ts...[0]>
+ friend auto fr() -> void;
+
+ template<typename... Ts>
+ requires C<Ts...[0]>
+ friend auto fr2() -> void{}; // expected-note{{previous definition is here}}
+ };
+
+ template<typename... Ts>
+ requires C<Ts...[0]>
+ auto Func::buggy() -> void {}
+
+ template<typename... Ts>
+ requires C<Ts...[0]>
+ auto fr() -> void {}
+
+ template<typename... Ts>
+ requires C<Ts...[0]>
+ auto fr2() -> void {} // expected-error{{redefinition of 'fr2'}}
+
+
+ template <typename... Ts>
+ requires C<Ts...[0]>
+ struct Class;
+
+ template <typename... Ts>
+ requires C<Ts...[0]>
+ struct Class;
----------------
cor3ntin wrote:
I'm checking that redeclaring does not cause a diagnostic
https://github.com/llvm/llvm-project/pull/139057
More information about the cfe-commits
mailing list