================
@@ -3296,6 +3302,14 @@ void ExprEngine::VisitCommonDeclRefExpr(const Expr *Ex, 
const NamedDecl *D,
 
     SVal V = UnknownVal();
 
+    // For pack indexing expressions. Binding is not available here but through
+    // the expanded expressions in the PackIndexingExpr node.
+    if (BD->isParameterPack()) {
+      Bldr.generateNode(Ex, Pred, state->BindExpr(Ex, LCtx, V), nullptr,
----------------
lbonn wrote:

In this path, binding is actually absent (`getBinding()` returns null) and it 
fails at the next line `dyn_cast<MemberExpr>(BD->getBinding())` without this 
change.

>From my limited understanding, it is not about a sub-region of the pack here. 
>We reach this node which is unsubstituted and instead we have to find the 
>substitution in the `PackIndexingExpr::getSelectedExpr`. But I may be wrong!

In any case, I have removed UnknownVal here and added back a FIXME.

https://github.com/llvm/llvm-project/pull/173186
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to