================ @@ -1994,8 +1995,10 @@ TemplateDeclInstantiator::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) { // Link the instantiation back to the pattern *unless* this is a // non-definition friend declaration. if (!InstTemplate->getInstantiatedFromMemberTemplate() && - !(isFriend && !D->getTemplatedDecl()->isThisDeclarationADefinition())) + !(isFriend && !D->getTemplatedDecl()->isThisDeclarationADefinition())) { + InstTemplate->setInstantiatedFromDefinition(); ---------------- zyn0217 wrote:
> That's true, but the only problematic cases are the friends. I was thinking if we can move it to a separate if branch then, for example it might not be conditioned on `isFriend` ```cpp if (D->getTemplatedDecl()->isThisDeclarationADefinition()) InstTemplate->setInstantiatedFromDefinition(); ``` (I presume a new if won't impact anything other than friends, as you said the friends are the only problematic ones.) https://github.com/llvm/llvm-project/pull/110387 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits