[clang] [Clang] Fix constant evaluating a captured variable in a lambda (PR #68090)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 4 01:53:31 PDT 2023
================
@@ -8367,7 +8367,13 @@ bool LValueExprEvaluator::VisitVarDecl(const Expr *E, const VarDecl *VD) {
if (auto *FD = Info.CurrentCall->LambdaCaptureFields.lookup(VD)) {
// Start with 'Result' referring to the complete closure object...
- Result = *Info.CurrentCall->This;
+ if (auto *MD = cast<CXXMethodDecl>(Info.CurrentCall->Callee);
----------------
cor3ntin wrote:
Because we have established it's a lambda call operator (which can't even be static because we have capture), we know it's a `CXXMethodDecl` (and we don't check MD isn't null)
https://github.com/llvm/llvm-project/pull/68090
More information about the cfe-commits
mailing list