summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaLambda.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2012-09-18 21:11:30 +0000
committerEli Friedman <eli.friedman@gmail.com>2012-09-18 21:11:30 +0000
commite979db1583952a339a3e8c0a2591d770fc08e4a2 (patch)
tree20284128d820b88e7fe31bedf6efb2fad2342d1c /clang/lib/Sema/SemaLambda.cpp
parent87cdfaf895464828dceeafba0fe39c26734b72af (diff)
downloadbcm5719-llvm-e979db1583952a339a3e8c0a2591d770fc08e4a2.tar.gz
bcm5719-llvm-e979db1583952a339a3e8c0a2591d770fc08e4a2.zip
Add an extra check for invalid decls in the lambda semantic analysis to avoid a crash. PR13860.
llvm-svn: 164168
Diffstat (limited to 'clang/lib/Sema/SemaLambda.cpp')
-rw-r--r--clang/lib/Sema/SemaLambda.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaLambda.cpp b/clang/lib/Sema/SemaLambda.cpp
index 75ea5368f86..7cbfc364f66 100644
--- a/clang/lib/Sema/SemaLambda.cpp
+++ b/clang/lib/Sema/SemaLambda.cpp
@@ -527,6 +527,10 @@ void Sema::ActOnStartOfLambdaDefinition(LambdaIntroducer &Intro,
continue;
}
+ // Ignore invalid decls; they'll just confuse the code later.
+ if (Var->isInvalidDecl())
+ continue;
+
if (!Var->hasLocalStorage()) {
Diag(C->Loc, diag::err_capture_non_automatic_variable) << C->Id;
Diag(Var->getLocation(), diag::note_previous_decl) << C->Id;
OpenPOWER on IntegriCloud