zyn0217 wrote: @shafik @AaronBallman Here is the complete backstory:
We were not performing well in out-of-line concept comparison, especially for expressions involving packs. I tried to address these issues around commit 04d20b170, but it quickly became evident that the fix was insufficient for https://github.com/llvm/llvm-project/issues/101735. To resolve that, we harnessed a feature that TreeTransform would expand function parameters if the parameters were instantiated as a pack, rather than keeping them in non-expanded forms. That solution (developed during the 20 cycle and backported to 19) worked but introduced a pitfall: if we needed to transform a pack declaration within an expression, we would also need a valid ArgumentPackSubstitutionIndex to expand the pack. Shortly after, I addressed #93099 (also during the 20 development cycle), where a SizeOfPackExpr was improperly profiled for constraint comparison due to its declaration being non-transformed. To that end, I added a declaration transformation step when normalizing constraints. Combined with the previously mentioned pitfall, this again crashed #124161 since no ArgumentPackSubstitutionIndex was set. Technically, this should have worked at some point, as @shafik observed, which I believe was prior to the fix for #93099. And as far as I can tell, the latest crash was introduced by the fix for #93099, so I didn’t add a release note as usual. https://github.com/llvm/llvm-project/pull/124533 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits