diff options
| author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-05-21 09:21:35 +0000 |
|---|---|---|
| committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-05-21 09:21:35 +0000 |
| commit | 2eebf4d939b65650ba14ec062fe4be750fa347e1 (patch) | |
| tree | d0663bb42ba3931e72a62be2febd0c29d174d296 /clang/tools/libclang/CIndex.cpp | |
| parent | 8fcf012693aeb25e29430bcbbf6a60f28f440357 (diff) | |
| download | bcm5719-llvm-2eebf4d939b65650ba14ec062fe4be750fa347e1.tar.gz bcm5719-llvm-2eebf4d939b65650ba14ec062fe4be750fa347e1.zip | |
[libclang] visit c++14 lambda capture init expressions
Patch by Milian Wolff.
Differential Revision: https://reviews.llvm.org/D60672
llvm-svn: 361234
Diffstat (limited to 'clang/tools/libclang/CIndex.cpp')
| -rw-r--r-- | clang/tools/libclang/CIndex.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index 715618c3c0f..f065802467a 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -3134,12 +3134,11 @@ bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) { } case VisitorJob::LambdaExprPartsKind: { - // Visit captures. + // Visit non-init captures. const LambdaExpr *E = cast<LambdaExprParts>(&LI)->get(); for (LambdaExpr::capture_iterator C = E->explicit_capture_begin(), CEnd = E->explicit_capture_end(); C != CEnd; ++C) { - // FIXME: Lambda init-captures. if (!C->capturesVariable()) continue; @@ -3148,6 +3147,11 @@ bool CursorVisitor::RunVisitorWorkList(VisitorWorkList &WL) { TU))) return true; } + // Visit init captures + for (auto InitExpr : E->capture_inits()) { + if (Visit(InitExpr)) + return true; + } TypeLoc TL = E->getCallOperator()->getTypeSourceInfo()->getTypeLoc(); // Visit parameters and return type, if present. |

