================
Comment at: lib/Sema/SemaTemplateInstantiate.cpp:922
@@ +921,3 @@
+ // I think Doug tried to explain why this link is done, but
+ // I was hoping to get a little more clarity.
+ // If a lambda is undergoing transformation for instance:
----------------
For the case where we have a non-generic lambda within a template,
setInstantiationOfMemberFunction() creates a link between the operator() and
its instantiations. See FunctionDecl::getInstantiatedFromMemberFunction() for
an example.
================
Comment at: lib/Sema/SemaTemplateInstantiate.cpp:951
@@ +950,3 @@
+ Innermost.size()),
+ /*InsertPos=*/0);
+#endif
----------------
This is turning the call operator into a specialization of the old call
operator template, which isn't quite right. We want to establish that
NewCallOperatorTemplate was instantiated from the member template
OldCallOperatorTemplate using
RedeclarableTemplateDecl::setInstantiatedFromMemberTemplate(). See
RedeclarableTemplateDecl::getInstantiatedFromMemberTemplate() for an example of
how this method works.
================
Comment at: lib/Sema/TreeTransform.h:600
@@ +599,3 @@
+ // FVQUESTION: Currently not implemented - Check with Doug/Richard
+ // what sort of semantics we want the default one to have?
+
----------------
We should probably just return TPL here.
================
Comment at: lib/Sema/TreeTransform.h:4580
@@ +4579,3 @@
+ //};
+ if (!T->isInstantiationDependentType() && !T->isVariablyModifiedType()) {
+ DecltypeTypeLoc NewTL = TLB.push<DecltypeTypeLoc>(TL.getType());
----------------
The T->isVariablyModifiedType() check doesn't make sense here.
================
Comment at: lib/Sema/TreeTransform.h:8316
@@ +8315,3 @@
+ LSI->CallOperator = NewCallOperator;
+ // Fix the Decl Contexts of the parameters within the cal op function
+ // prototype.
----------------
Typo "cal".
http://llvm-reviews.chandlerc.com/D1784
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits