//===--- DeclBase.cpp - Declaration AST Node Implementation ---------------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file implements the Decl and DeclContext classes.////===----------------------------------------------------------------------===//#include"clang/AST/DeclBase.h"#include"clang/AST/ASTContext.h"#include"clang/AST/ASTMutationListener.h"#include"clang/AST/Attr.h"#include"clang/AST/Decl.h"#include"clang/AST/DeclCXX.h"#include"clang/AST/DeclContextInternals.h"#include"clang/AST/DeclFriend.h"#include"clang/AST/DeclObjC.h"#include"clang/AST/DeclOpenMP.h"#include"clang/AST/DeclTemplate.h"#include"clang/AST/DependentDiagnostic.h"#include"clang/AST/ExternalASTSource.h"#include"clang/AST/Stmt.h"#include"clang/AST/StmtCXX.h"#include"clang/AST/Type.h"#include"clang/Basic/TargetInfo.h"#include"llvm/ADT/DenseMap.h"#include"llvm/Support/raw_ostream.h"#include<algorithm>usingnamespaceclang;//===----------------------------------------------------------------------===//// Statistics//===----------------------------------------------------------------------===//#define DECL(DERIVED, BASE) static int n##DERIVED##s = 0;#define ABSTRACT_DECL(DECL)#include"clang/AST/DeclNodes.inc"voidDecl::updateOutOfDate(IdentifierInfo&II)const{getASTContext().getExternalSource()->updateOutOfDateIdentifier(II);}void*Decl::AllocateDeserializedDecl(constASTCont