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

Inherited from SourceMapper:

Inherited from State:

Methods

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

Declared at: clang/lib/AST/Interp/InterpState.h:56

bool checkingPotentialConstantExpression() const

Declared at: clang/lib/AST/Interp/InterpState.h:62

void deallocate(clang::interp::Block* B)

Description

Deallocates a pointer.

Declared at: clang/lib/AST/Interp/InterpState.h:81

Parameters

clang::interp::Block* B

const clang::interp::Frame* getBottomFrame() const

Declared at: clang/lib/AST/Interp/InterpState.h:45

unsigned int getCallStackDepth()

Declared at: clang/lib/AST/Interp/InterpState.h:44

clang::ASTContext& getCtx() const

Declared at: clang/lib/AST/Interp/InterpState.h:53

clang::interp::Frame* getCurrentFrame()

Declared at: clang/lib/AST/Interp/InterpState.h:43

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

Description

Delegates source mapping to the mapper.

Declared at: clang/lib/AST/Interp/InterpState.h:84

Parameters

clang::interp::Function* F
clang::interp::CodePtr PC

clang::interp::Frame* getSplitFrame()

Declared at: clang/lib/AST/Interp/InterpState.h:42

bool hasActiveDiagnostic()

Declared at: clang/lib/AST/Interp/InterpState.h:68

bool hasPriorDiagnostic()

Declared at: clang/lib/AST/Interp/InterpState.h:75

bool keepEvaluatingAfterFailure() const

Declared at: clang/lib/AST/Interp/InterpState.h:59

bool noteUndefinedBehavior()

Declared at: clang/lib/AST/Interp/InterpState.h:65

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)

Declared at: clang/lib/AST/Interp/InterpState.h:69

Parameters

bool Flag

void setFoldFailureDiagnostic(bool Flag)

Declared at: clang/lib/AST/Interp/InterpState.h:72

Parameters

bool Flag

~InterpState()

Declared at: clang/lib/AST/Interp/InterpState.h:39