class InterpState
Declaration
class InterpState : public State, public SourceMapper { /* full declaration omitted */ };
Description
Interpreter context.
Declared at: clang/lib/AST/Interp/InterpState.h:34
Inherits from: State, SourceMapper
Member Variables
- private clang::interp::State& Parent
- AST Walker state.
- private clang::interp::DeadBlock* DeadBlocks = nullptr
- Dead block chain.
- private clang::interp::SourceMapper* M
- Reference to the offset-source mapping.
- public clang::interp::Program& P
- Reference to the module containing all bytecode.
- public clang::interp::InterpStack& Stk
- Temporary stack.
- public clang::interp::Context& Ctx
- Interpreter Context.
- public clang::interp::InterpFrame* Current = nullptr
- The current frame.
- public unsigned int CallStackDepth
- Call stack depth.
Method Overview
- public InterpState(clang::interp::State & Parent, clang::interp::Program & P, clang::interp::InterpStack & Stk, clang::interp::Context & Ctx, clang::interp::SourceMapper * M = nullptr)
- public bool checkingForUndefinedBehavior() const
- public bool checkingPotentialConstantExpression() const
- public void deallocate(clang::interp::Block * B)
- public const clang::interp::Frame * getBottomFrame() const
- public unsigned int getCallStackDepth()
- public clang::ASTContext & getCtx() const
- public clang::interp::Frame * getCurrentFrame()
- public Expr::EvalStatus & getEvalStatus() const
- public clang::interp::SourceInfo getSource(clang::interp::Function * F, clang::interp::CodePtr PC) const
- public clang::interp::Frame * getSplitFrame()
- public bool hasActiveDiagnostic()
- public bool hasPriorDiagnostic()
- public bool keepEvaluatingAfterFailure() const
- public bool noteUndefinedBehavior()
- public bool reportOverflow(const clang::Expr * E, const llvm::APSInt & Value)
- public void setActiveDiagnostic(bool Flag)
- public void setFoldFailureDiagnostic(bool Flag)
- public ~InterpState()
Inherited from SourceMapper:
Inherited from State:
- public CCEDiag
- public CCEDiag
- public CCEDiag
- public FFDiag
- public FFDiag
- public FFDiag
- public Note
- public addNotes
- public checkingForUndefinedBehavior
- public checkingPotentialConstantExpression
- public getBottomFrame
- public getCallStackDepth
- public getCtx
- public getCurrentFrame
- public getEvalStatus
- public getLangOpts
- public hasActiveDiagnostic
- public hasPriorDiagnostic
- public keepEvaluatingAfterFailure
- public noteUndefinedBehavior
- public report
- public setActiveDiagnostic
- public setFoldFailureDiagnostic
Methods
¶InterpState(
clang::interp::State& Parent,
clang::interp::Program& P,
clang::interp::InterpStack& Stk,
clang::interp::Context& Ctx,
clang::interp::SourceMapper* M = nullptr)
InterpState(
clang::interp::State& Parent,
clang::interp::Program& P,
clang::interp::InterpStack& Stk,
clang::interp::Context& Ctx,
clang::interp::SourceMapper* M = nullptr)
Declared at: clang/lib/AST/Interp/InterpState.h:36
Parameters
- clang::interp::State& Parent
- clang::interp::Program& P
- clang::interp::InterpStack& Stk
- clang::interp::Context& Ctx
- clang::interp::SourceMapper* M = nullptr
¶bool checkingForUndefinedBehavior() const
bool checkingForUndefinedBehavior() const
Declared at: clang/lib/AST/Interp/InterpState.h:56
¶bool checkingPotentialConstantExpression() const
bool checkingPotentialConstantExpression() const
Declared at: clang/lib/AST/Interp/InterpState.h:62
¶void deallocate(clang::interp::Block* B)
void deallocate(clang::interp::Block* B)
Description
Deallocates a pointer.
Declared at: clang/lib/AST/Interp/InterpState.h:81
Parameters
¶const clang::interp::Frame* getBottomFrame() const
const clang::interp::Frame* getBottomFrame() const
Declared at: clang/lib/AST/Interp/InterpState.h:45
¶unsigned int getCallStackDepth()
unsigned int getCallStackDepth()
Declared at: clang/lib/AST/Interp/InterpState.h:44
¶clang::ASTContext& getCtx() const
clang::ASTContext& getCtx() const
Declared at: clang/lib/AST/Interp/InterpState.h:53
¶clang::interp::Frame* getCurrentFrame()
clang::interp::Frame* getCurrentFrame()
Declared at: clang/lib/AST/Interp/InterpState.h:43
¶Expr::EvalStatus& getEvalStatus() const
Expr::EvalStatus& getEvalStatus() const
Declared at: clang/lib/AST/Interp/InterpState.h:50
¶clang::interp::SourceInfo getSource(
clang::interp::Function* F,
clang::interp::CodePtr PC) const
clang::interp::SourceInfo getSource(
clang::interp::Function* F,
clang::interp::CodePtr PC) const
Description
Delegates source mapping to the mapper.
Declared at: clang/lib/AST/Interp/InterpState.h:84
Parameters
¶clang::interp::Frame* getSplitFrame()
clang::interp::Frame* getSplitFrame()
Declared at: clang/lib/AST/Interp/InterpState.h:42
¶bool hasActiveDiagnostic()
bool hasActiveDiagnostic()
Declared at: clang/lib/AST/Interp/InterpState.h:68
¶bool hasPriorDiagnostic()
bool hasPriorDiagnostic()
Declared at: clang/lib/AST/Interp/InterpState.h:75
¶bool keepEvaluatingAfterFailure() const
bool keepEvaluatingAfterFailure() const
Declared at: clang/lib/AST/Interp/InterpState.h:59
¶bool noteUndefinedBehavior()
bool noteUndefinedBehavior()
Declared at: clang/lib/AST/Interp/InterpState.h:65
¶bool reportOverflow(const clang::Expr* E,
const llvm::APSInt& Value)
bool reportOverflow(const clang::Expr* E,
const llvm::APSInt& Value)
Description
Reports overflow and return true if evaluation should continue.
Declared at: clang/lib/AST/Interp/InterpState.h:78
Parameters
- const clang::Expr* E
- const llvm::APSInt& Value
¶void setActiveDiagnostic(bool Flag)
void setActiveDiagnostic(bool Flag)
Declared at: clang/lib/AST/Interp/InterpState.h:69
Parameters
- bool Flag
¶void setFoldFailureDiagnostic(bool Flag)
void setFoldFailureDiagnostic(bool Flag)
Declared at: clang/lib/AST/Interp/InterpState.h:72
Parameters
- bool Flag
¶~InterpState()
~InterpState()
Declared at: clang/lib/AST/Interp/InterpState.h:39