diff options
Diffstat (limited to 'lib/Analysis/LiveVariables.cpp')
-rw-r--r-- | lib/Analysis/LiveVariables.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Analysis/LiveVariables.cpp b/lib/Analysis/LiveVariables.cpp index 89cf9f8bbb..ff6607d51a 100644 --- a/lib/Analysis/LiveVariables.cpp +++ b/lib/Analysis/LiveVariables.cpp @@ -354,10 +354,11 @@ void TransferFunctions::VisitBinaryOperator(BinaryOperator *B) { } void TransferFunctions::VisitBlockExpr(BlockExpr *BE) { - const BlockDecl *BD = BE->getBlockDecl(); - for (BlockDecl::capture_const_iterator it = BD->capture_begin(), - ei = BD->capture_end(); it != ei; ++it) { - const VarDecl *VD = it->getVariable(); + AnalysisDeclContext::referenced_decls_iterator I, E; + llvm::tie(I, E) = + LV.analysisContext.getReferencedBlockVars(BE->getBlockDecl()); + for ( ; I != E ; ++I) { + const VarDecl *VD = *I; if (isAlwaysAlive(VD)) continue; val.liveDecls = LV.DSetFact.add(val.liveDecls, VD); |