16 #ifndef LLVM_CLANG_AST_INTERP_CONTEXT_H 17 #define LLVM_CLANG_AST_INTERP_CONTEXT_H 22 #include "llvm/ADT/PointerIntPair.h" 80 std::unique_ptr<Program> P;
Represents a function declaration or definition.
Context(ASTContext &Ctx)
Initialises the constexpr VM.
A (possibly-)qualified type.
constexpr XRayInstrMask Function
Represents a variable declaration or definition.
bool evaluateAsInitializer(State &Parent, const VarDecl *VD, APValue &Result)
Evaluates a toplevel initializer.
Holds all information required to evaluate constexpr code in a module.
bool evaluateAsRValue(State &Parent, const Expr *E, APValue &Result)
Evaluates a toplevel expression as an rvalue.
llvm::Optional< PrimType > classify(QualType T)
Classifies an expression.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
PrimType
Enumeration of the primitive types of the VM.
bool isPotentialConstantExpr(State &Parent, const FunctionDecl *FnDecl)
Checks if a function is a potential constant expression.
unsigned getCharBit() const
Returns CHAR_BIT.
Stack frame storing temporaries and parameters.
This represents one expression.
ASTContext & getASTContext() const
Returns the AST context.
~Context()
Cleans up the constexpr VM.
Dataflow Directional Tag Classes.
APValue - This class implements a discriminated union of [uninitialized] [APSInt] [APFloat]...
Interface for the VM to interact with the AST walker's context.
const LangOptions & getLangOpts() const
Returns the language options.
InterpStack & getStack()
Returns the interpreter stack.