Per John's comment, it makes sense to ask isLambda on any CXXRecordDecl; make sure that's safe.  Get rid of a check which is now unnecessary in Sema::getFunctionLevelDeclContext().



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147837 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/AST/DeclCXX.h b/include/clang/AST/DeclCXX.h
index 17c82ca..983139b 100644
--- a/include/clang/AST/DeclCXX.h
+++ b/include/clang/AST/DeclCXX.h
@@ -913,7 +913,7 @@
   bool hasDeclaredDestructor() const { return data().DeclaredDestructor; }
 
   /// \brief Determine whether this class describes a lambda function object.
-  bool isLambda() const { return data().IsLambda; }
+  bool isLambda() const { return hasDefinition() && data().IsLambda; }
   
   void setLambda(bool Lambda = true) { data().IsLambda = Lambda; }
 
diff --git a/lib/Sema/Sema.cpp b/lib/Sema/Sema.cpp
index 72073a1..8d35895 100644
--- a/lib/Sema/Sema.cpp
+++ b/lib/Sema/Sema.cpp
@@ -640,7 +640,6 @@
     if (isa<BlockDecl>(DC) || isa<EnumDecl>(DC)) {
       DC = DC->getParent();
     } else if (isa<CXXMethodDecl>(DC) &&
-               cast<CXXRecordDecl>(DC->getParent())->hasDefinition() &&
                cast<CXXRecordDecl>(DC->getParent())->isLambda()) {
       DC = DC->getParent()->getParent();
     }