[clang] [Clang] Fix handling of pack indexing types in constraints of redeclaration (PR #139057)
Matheus Izvekov via cfe-commits
cfe-commits at lists.llvm.org
Thu May 8 09:19:20 PDT 2025
================
@@ -4174,6 +4174,14 @@ PackIndexingType::computeDependence(QualType Pattern, Expr *IndexExpr,
return TD;
}
+void PackIndexingType::Profile(llvm::FoldingSetNodeID &ID,
+ const ASTContext &Context) {
+ if (hasSelectedType() && isFullySubstituted())
+ getSelectedType().Profile(ID);
+ else
+ Profile(ID, Context, getPattern(), getIndexExpr(), isFullySubstituted());
+}
----------------
mizvekov wrote:
Pre-existing issue, but this confuses identity with canonicalization.
This is basically saying that all PackIndexTypes which are fully substituted and have the same selected type are identical, which can't be right as they can also differ in other ways, such as the Index expression.
https://github.com/llvm/llvm-project/pull/139057
More information about the cfe-commits
mailing list