[clang] [Clang][Sema] Improve support for explicit specializations of constrained member functions & member function templates (PR #88963)

Krystian Stasiowski via cfe-commits cfe-commits at lists.llvm.org
Thu May 2 05:10:39 PDT 2024


================
@@ -275,6 +275,13 @@ Response HandleFunction(Sema &SemaRef, const FunctionDecl *Function,
                                      TemplateArgs->asArray(),
                                      /*Final=*/false);
 
+    if (RelativeToPrimary &&
+        (Function->getTemplateSpecializationKind() ==
+             TSK_ExplicitSpecialization ||
----------------
sdkrystian wrote:

@jcsxky There already is a test case which will fail without the condition in this PR:
```cpp
template<typename T>
concept C = sizeof(T) <= sizeof(long);

template<typename T>
struct A {
  template<typename U>
  void f(U) requires C<U>;
};

template<>
template<typename U>
void A<short>::f(U) requires C<U>;
```

https://github.com/llvm/llvm-project/pull/88963


More information about the cfe-commits mailing list