13 #ifndef LLVM_CLANG_AST_INTERP_INTERPSTATE_H 14 #define LLVM_CLANG_AST_INTERP_INTERPSTATE_H virtual Expr::EvalStatus & getEvalStatus() const =0
unsigned getCallStackDepth() override
Descriptor for a dead block.
InterpFrame * Current
The current frame.
bool keepEvaluatingAfterFailure() const override
Pointer into the code segment.
Interface for classes which map locations to sources.
Frame storing local variables.
Expr::EvalStatus & getEvalStatus() const override
constexpr XRayInstrMask Function
SourceInfo getSource(CodePtr PC) const
Returns the source information at a given PC.
Describes the statement/declaration an opcode was generated from.
Holds all information required to evaluate constexpr code in a module.
virtual ASTContext & getCtx() const =0
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
bool reportOverflow(const Expr *E, const llvm::APSInt &Value)
Reports overflow and return true if evaluation should continue.
InterpStack & Stk
Temporary stack.
A memory block, either on the stack or in the heap.
ASTContext & getCtx() const override
virtual bool keepEvaluatingAfterFailure() const =0
virtual bool checkingForUndefinedBehavior() const =0
bool noteUndefinedBehavior() override
Context & Ctx
Interpreter Context.
Stack frame storing temporaries and parameters.
virtual void setFoldFailureDiagnostic(bool Flag)=0
void setFoldFailureDiagnostic(bool Flag) override
This represents one expression.
Implements a partial diagnostic which may not be emitted.
virtual bool hasActiveDiagnostic()=0
virtual void setActiveDiagnostic(bool Flag)=0
The program contains and links the bytecode for all functions.
virtual SourceInfo getSource(Function *F, CodePtr PC) const =0
Returns source information for a given PC in a function.
bool checkingForUndefinedBehavior() const override
Base class for stack frames, shared between VM and walker.
virtual Frame * getCurrentFrame()=0
bool hasActiveDiagnostic() override
virtual bool noteUndefinedBehavior()=0
unsigned CallStackDepth
Call stack depth.
Frame * getCurrentFrame() override
EvalStatus is a struct with detailed info about an evaluation in progress.
SourceInfo getSource(Function *F, CodePtr PC) const override
Delegates source mapping to the mapper.
Dataflow Directional Tag Classes.
virtual bool checkingPotentialConstantExpression() const =0
InterpState(State &Parent, Program &P, InterpStack &Stk, Context &Ctx, SourceMapper *M=nullptr)
void deallocate(Block *B)
Deallocates a pointer.
virtual bool hasPriorDiagnostic()=0
Program & P
Reference to the module containing all bytecode.
void setActiveDiagnostic(bool Flag) override
Interface for the VM to interact with the AST walker's context.
bool checkingPotentialConstantExpression() const override
virtual const Frame * getBottomFrame() const =0
bool hasPriorDiagnostic() override
const Frame * getBottomFrame() const override