================ @@ -5663,6 +5663,8 @@ def err_explicit_instantiation_internal_linkage : Error< def err_explicit_instantiation_not_known : Error< "explicit instantiation of %0 does not refer to a function template, " "variable template, member function, member class, or static data member">; +def err_explicit_instantiation_no_candidate : Error< + "no candidate for explicit instantiation of %0">; ---------------- MitalAshok wrote:
There's notes in the example above, but yeah no reason to change everything in this PR when it seems unrelated. This message should say "no *viable* candidate" (or "no matching function"). Also you should be able to restructure stuff so that template/non template member functions can use the same overload set, so would naturally use the same diagnostic. For example, this: ```c++ template<typename> struct A { template<typename = void> void f() requires(false); void f() requires(false); }; template void A<int>::f(); ``` Should note both candidates, when I think your change means it only notes the non-template candidate (and removing the non-template function means it notes the template one, which seems strange) https://github.com/llvm/llvm-project/pull/104438 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits