faisalv added a comment.

Thanks for working on this bug too!


================
Comment at: lib/Sema/TreeTransform.h:4784
@@ +4783,3 @@
+            NewType = getDerived().RebuildPackExpansionType(
+                NewType, SourceRange(), Loc, NumExpansions);
+            if (NewType.isNull())
----------------
Any thoughts on the value of threading EllipsisLoc and PatternRange into this 
function (they are used primarily for a diagnostic that is triggered in Sema if 
NewType does not contain an unexpandedparameter pack - which would never get 
triggered here, so it would be ok to pass in invalid sourelocations and 
sourceranges with an appropriate comment here) - but the fact that 
RebuildPackExpandionType is a customization point, it might not be a bad idea 
to preserve them)?
Alternatively, we could forego calling RebuildPackExpansionType - since OldType 
is decomposed directly into a PackExpansionType -- NewType could be recomposed 
directly via Context.getPackExpansionType(NewType, NumExpansions=0)?

Which brings me to - when we create the new pack expansion type, shouldn't the 
NumExpansions be reset to 0?  The fact that we will have a 
SubstTemplateParameterType replacing the TemplateParameterType within the 
pattern might influence the answer to that...

Also - we should be able to assert here that *NumExpansions should be one?  Can 
you think of a case that it wouldn't be?



http://reviews.llvm.org/D21030



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to