[clang] [Clang] Fix dependency computation for pack indexing expression (PR #91933)
via cfe-commits
cfe-commits at lists.llvm.org
Mon May 13 07:06:34 PDT 2024
================
@@ -377,7 +377,7 @@ ExprDependence clang::computeDependence(PackExpansionExpr *E) {
ExprDependence clang::computeDependence(PackIndexingExpr *E) {
ExprDependence D = E->getIndexExpr()->getDependence();
if (D & ExprDependence::Value)
- D |= ExprDependence::TypeInstantiation;
+ D |= E->getPackIdExpression()->getDependence() & ExprDependence::Type;
----------------
cor3ntin wrote:
> The change seems reasonable to me, however with it we need to alter the way PackIndexingExpr is handled inside the getDecltypeForExpr, since when 1) E is not type-dependent (int... case) and 2) index is instantiation-dependent we shall not directly call getSelectedExpr.
In that case (no selected expression) the pack is always type dependent. I did add a test though
https://github.com/llvm/llvm-project/pull/91933
More information about the cfe-commits
mailing list