================ @@ -2298,6 +2298,13 @@ class FunctionDecl : public DeclaratorDecl, FunctionDeclBits.IsLateTemplateParsed = ILT; } + bool isInstantiatedFromMemberTemplate() const { + return FunctionDeclBits.IsInstantiatedFromMemberTemplate; + } + void setInstantiatedFromMemberTemplate(bool Val = true) { + FunctionDeclBits.IsInstantiatedFromMemberTemplate = Val; + } + ---------------- cor3ntin wrote:
> These are for different things. getInstantiatedFromDecl is used to tell which > function this "was instantiated from, if this is a function declaration > declared locally inside of a function template". UGH, completely missed that - all of this could use some more comments > Because FunctionDecl has free bits, so this change has basically no space > cost :) Yeah, but 1/it's a bit confusing 2/ bits there are fairly precious You could add a bit to FunctionTemplateSpecializationInfo::Function I don't insist on it. However can you add some comments? It took me a while to understand and I suspect i won;t be the only one. Thanks, I'll approve when i wake up (and sorry it took me a while to understand everything) Oh, another solution would be to have a DenseMap of FunctionTemplateDecl -> FunctionTemplateDecl in Sema, storing specialization of friend functions template (only!) in it - hopefully these things are fairly rare - and it might simplify the change to InstantiateFunctionDefinition https://github.com/llvm/llvm-project/pull/125266 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits