================ @@ -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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits