================
@@ -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

Reply via email to