#include "Context.h"
#include "ByteCodeEmitter.h"
#include "Compiler.h"
#include "EvalEmitter.h"
#include "Interp.h"
#include "InterpFrame.h"
#include "InterpStack.h"
#include "PrimType.h"
#include "Program.h"
#include "clang/AST/Expr.h"
#include "clang/Basic/TargetInfo.h"
usingnamespaceclang;
usingnamespaceclang::interp;
Context::Context(ASTContext &Ctx) : … { … }
Context::~Context() { … }
bool Context::isPotentialConstantExpr(State &Parent, const FunctionDecl *FD) { … }
bool Context::evaluateAsRValue(State &Parent, const Expr *E, APValue &Result) { … }
bool Context::evaluate(State &Parent, const Expr *E, APValue &Result,
ConstantExprKind Kind) { … }
bool Context::evaluateAsInitializer(State &Parent, const VarDecl *VD,
APValue &Result) { … }
const LangOptions &Context::getLangOpts() const { … }
std::optional<PrimType> Context::classify(QualType T) const { … }
unsigned Context::getCharBit() const { … }
const llvm::fltSemantics &Context::getFloatSemantics(QualType T) const { … }
bool Context::Run(State &Parent, const Function *Func, APValue &Result) { … }
const CXXMethodDecl *
Context::getOverridingFunction(const CXXRecordDecl *DynamicDecl,
const CXXRecordDecl *StaticDecl,
const CXXMethodDecl *InitialFunction) const { … }
const Function *Context::getOrCreateFunction(const FunctionDecl *FD) { … }
unsigned Context::collectBaseOffset(const RecordDecl *BaseDecl,
const RecordDecl *DerivedDecl) const { … }
const Record *Context::getRecord(const RecordDecl *D) const { … }