================
@@ -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