#ifndef LLVM_CLANG_SEMA_SCOPEINFO_H
#define LLVM_CLANG_SEMA_SCOPEINFO_H
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/Type.h"
#include "clang/Basic/CapturedStmt.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/PartialDiagnostic.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Sema/CleanupInfo.h"
#include "clang/Sema/DeclSpec.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/TinyPtrVector.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include <algorithm>
#include <cassert>
#include <utility>
namespace clang {
class BlockDecl;
class CapturedDecl;
class CXXMethodDecl;
class CXXRecordDecl;
class ImplicitParamDecl;
class NamedDecl;
class ObjCIvarRefExpr;
class ObjCMessageExpr;
class ObjCPropertyDecl;
class ObjCPropertyRefExpr;
class ParmVarDecl;
class RecordDecl;
class ReturnStmt;
class Scope;
class Stmt;
class SwitchStmt;
class TemplateParameterList;
class VarDecl;
namespace sema {
class CompoundScopeInfo { … };
class PossiblyUnreachableDiag { … };
enum class FirstCoroutineStmtKind { … };
class FunctionScopeInfo { … };
class Capture { … };
class CapturingScopeInfo : public FunctionScopeInfo { … };
class BlockScopeInfo final : public CapturingScopeInfo { … };
class CapturedRegionScopeInfo final : public CapturingScopeInfo { … };
class LambdaScopeInfo final :
public CapturingScopeInfo, public InventedTemplateParameterInfo { … };
FunctionScopeInfo::WeakObjectProfileTy::WeakObjectProfileTy()
: … { … }
FunctionScopeInfo::WeakObjectProfileTy
FunctionScopeInfo::WeakObjectProfileTy::getSentinel() { … }
template <typename ExprT>
void FunctionScopeInfo::recordUseOfWeak(const ExprT *E, bool IsRead) { … }
inline void CapturingScopeInfo::addThisCapture(bool isNested,
SourceLocation Loc,
QualType CaptureType,
bool ByCopy) { … }
}
}
#endif