[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