diff options
Diffstat (limited to 'gnu/llvm/clang/lib/AST/DeclBase.cpp')
-rw-r--r-- | gnu/llvm/clang/lib/AST/DeclBase.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gnu/llvm/clang/lib/AST/DeclBase.cpp b/gnu/llvm/clang/lib/AST/DeclBase.cpp index cb4d61cac2c..cb7c7fcbd4b 100644 --- a/gnu/llvm/clang/lib/AST/DeclBase.cpp +++ b/gnu/llvm/clang/lib/AST/DeclBase.cpp @@ -332,13 +332,16 @@ void Decl::setDeclContextsImpl(DeclContext *SemaDC, DeclContext *LexicalDC, } } -bool Decl::isLexicallyWithinFunctionOrMethod() const { +bool Decl::isInLocalScope() const { const DeclContext *LDC = getLexicalDeclContext(); while (true) { if (LDC->isFunctionOrMethod()) return true; if (!isa<TagDecl>(LDC)) return false; + if (const auto *CRD = dyn_cast<CXXRecordDecl>(LDC)) + if (CRD->isLambda()) + return true; LDC = LDC->getLexicalParent(); } return false; |