forked from OSchip/llvm-project
Add an extra check for invalid decls in the lambda semantic analysis to avoid a crash. PR13860.
llvm-svn: 164168
This commit is contained in:
parent
87cdfaf895
commit
e979db1583
|
@ -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;
|
||||
|
|
|
@ -221,3 +221,11 @@ namespace VariadicPackExpansion {
|
|||
template void nested2(int); // ok
|
||||
template void nested2(int, int); // expected-note {{in instantiation of}}
|
||||
}
|
||||
|
||||
namespace PR13860 {
|
||||
void foo() {
|
||||
auto x = PR13860UndeclaredIdentifier(); // expected-error {{use of undeclared identifier 'PR13860UndeclaredIdentifier'}}
|
||||
auto y = [x]() { };
|
||||
static_assert(sizeof(y), "");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue