summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaStmt.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2019-05-28 23:09:44 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2019-05-28 23:09:44 +0000
commit8cb63232d9c7c18a27e36edcd16ae42b2eccefee (patch)
tree95b8021376c56b45ab9a09111c2da0c033b0d31e /clang/lib/Sema/SemaStmt.cpp
parent94ef686f575c5cd66b0b30e34aaa5dc7b05ad361 (diff)
downloadbcm5719-llvm-8cb63232d9c7c18a27e36edcd16ae42b2eccefee.tar.gz
bcm5719-llvm-8cb63232d9c7c18a27e36edcd16ae42b2eccefee.zip
If capturing a variable fails, add a capture anyway (and mark it
invalid) so that we can avoid repeated diagnostics for the same capture. llvm-svn: 361891
Diffstat (limited to 'clang/lib/Sema/SemaStmt.cpp')
-rw-r--r--clang/lib/Sema/SemaStmt.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp
index c7fb5654516..51a72c618b7 100644
--- a/clang/lib/Sema/SemaStmt.cpp
+++ b/clang/lib/Sema/SemaStmt.cpp
@@ -4228,6 +4228,9 @@ buildCapturedStmtCaptureList(SmallVectorImpl<CapturedStmt::Capture> &Captures,
SmallVectorImpl<Expr *> &CaptureInits,
ArrayRef<sema::Capture> Candidates) {
for (const sema::Capture &Cap : Candidates) {
+ if (Cap.isInvalid())
+ continue;
+
if (Cap.isThisCapture()) {
Captures.push_back(CapturedStmt::Capture(Cap.getLocation(),
CapturedStmt::VCK_This));
OpenPOWER on IntegriCloud