clang 23.0.0git
clang::interp::InterpState Class Referencefinal

Interpreter context. More...

#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/AST/ByteCode/InterpState.h"

Inheritance diagram for clang::interp::InterpState:
[legend]

Public Member Functions

 InterpState (const State &Parent, Program &P, InterpStack &Stk, Context &Ctx, SourceMapper *M=nullptr)
 InterpState (const State &Parent, Program &P, InterpStack &Stk, Context &Ctx, const Function *Func)
 ~InterpState ()
void cleanup ()
 InterpState (const InterpState &)=delete
InterpStateoperator= (const InterpState &)=delete
bool diagnosing () const
const FramegetCurrentFrame () override
unsigned getCallStackDepth () override
bool stepsLeft () const override
bool inConstantContext () const
void deallocate (Block *B)
 Deallocates a pointer.
SourceInfo getSource (const Function *F, CodePtr PC) const override
 Delegates source mapping to the mapper.
ContextgetContext () const
void setEvalLocation (SourceLocation SL)
DynamicAllocatorgetAllocator ()
bool maybeDiagnoseDanglingAllocations ()
 Diagnose any dynamic allocations that haven't been freed yet.
StdAllocatorCaller getStdAllocatorCaller (StringRef Name) const
void * allocate (size_t Size, unsigned Align=8) const
template<typename T>
T * allocate (size_t Num=1) const
template<typename T>
allocAP (unsigned BitWidth)
Floating allocFloat (const llvm::fltSemantics &Sem)
const CXXRecordDecl ** allocMemberPointerPath (unsigned Length)
bool noteStep (CodePtr OpPC)
 Note that a step has been executed.
bool initializingBlock (const Block *B) const
bool lifetimeStartedInEvaluation (const Block *B) const
bool checkingConstantDestruction () const
 Return if we're checking if a global variable has a constant destructor.
bool checkingConstantDestruction (const Pointer &Ptr) const
 Return if we're checking if a global variable has a constant destructor and the given pointer is pointing to the variable we're checking that for.
bool checkingConstantDestruction (const VarDecl *VD) const
Public Member Functions inherited from clang::interp::State
 State (ASTContext &ASTCtx, Expr::EvalStatus &EvalStatus)
virtual ~State ()
Expr::EvalStatusgetEvalStatus () const
ASTContextgetASTContext () const
const LangOptionsgetLangOpts () const
bool noteSideEffect () const
 Note that we have had a side-effect, and determine whether we should keep evaluating.
bool keepEvaluatingAfterFailure () const
 Should we continue evaluation as much as possible after encountering a construct which can't be reduced to a value?
bool keepEvaluatingAfterSideEffect () const
 Should we continue evaluation after encountering a side-effect that we couldn't model?
bool noteUndefinedBehavior () const
 Note that we hit something that was technically undefined behavior, but that we can evaluate past it (such as signed overflow or floating-point division by zero.)
bool checkingPotentialConstantExpression () const
 Are we checking whether the expression is a potential constant expression?
bool checkingForUndefinedBehavior () const
 Are we checking an expression for overflow?
OptionalDiagnostic FFDiag (SourceLocation Loc, diag::kind DiagId=diag::note_invalid_subexpr_in_const_expr, unsigned ExtraNotes=0)
 Diagnose that the evaluation could not be folded (FF => FoldFailure)
OptionalDiagnostic FFDiag (const Expr *E, diag::kind DiagId=diag::note_invalid_subexpr_in_const_expr, unsigned ExtraNotes=0)
OptionalDiagnostic FFDiag (SourceInfo SI, diag::kind DiagId=diag::note_invalid_subexpr_in_const_expr, unsigned ExtraNotes=0)
OptionalDiagnostic CCEDiag (SourceLocation Loc, diag::kind DiagId=diag::note_invalid_subexpr_in_const_expr, unsigned ExtraNotes=0)
 Diagnose that the evaluation does not produce a C++11 core constant expression.
OptionalDiagnostic CCEDiag (const Expr *E, diag::kind DiagId=diag::note_invalid_subexpr_in_const_expr, unsigned ExtraNotes=0)
OptionalDiagnostic CCEDiag (SourceInfo SI, diag::kind DiagId=diag::note_invalid_subexpr_in_const_expr, unsigned ExtraNotes=0)
OptionalDiagnostic Note (SourceLocation Loc, diag::kind DiagId)
 Add a note to a prior diagnostic.
void addNotes (ArrayRef< PartialDiagnosticAt > Diags)
 Add a stack of notes to a prior diagnostic.
DiagnosticBuilder report (SourceLocation Loc, diag::kind DiagId)
 Directly reports a diagnostic message.
Public Member Functions inherited from clang::interp::SourceMapper
virtual ~SourceMapper ()
const ExprgetExpr (const Function *F, CodePtr PC) const
 Returns the expression if an opcode belongs to one, null otherwise.
SourceLocation getLocation (const Function *F, CodePtr PC) const
 Returns the location from which an opcode originates.
SourceRange getRange (const Function *F, CodePtr PC) const

Public Attributes

CodePtr PC
ProgramP
 Reference to the module containing all bytecode.
InterpStackStk
 Temporary stack.
ContextCtx
 Interpreter Context.
InterpFrame BottomFrame
 Bottom function frame.
InterpFrameCurrent = nullptr
 The current frame.
SourceLocation EvalLocation
 Source location of the evaluating expression.
const VarDeclEvaluatingDecl = nullptr
 Declaration we're initializing/evaluting, if any.
unsigned StepsLeft = 1
 Steps left during evaluation.
const bool InfiniteSteps = false
 Whether infinite evaluation steps have been requested.
const unsigned EvalID
 ID identifying this evaluation.
EvaluationKind EvalKind = EvaluationKind::None
SmallVectorImpl< PartialDiagnosticAt > * PrevDiags = nullptr
 Things needed to do speculative execution.
bool PrevDiagsEmitted = false
unsigned SpeculationDepth = 0
unsigned DiagIgnoreDepth = 0
std::optional< boolConstantContextOverride
llvm::SmallVector< std::pair< const Expr *, const LifetimeExtendedTemporaryDecl * > > SeenGlobalTemporaries
llvm::SmallVector< PtrViewInitializingPtrs
 List of blocks we're currently running either constructors or destructors for.
Public Attributes inherited from clang::interp::State
bool InConstantContext = false
 Whether or not we're in a context where the front end requires a constant value.
bool CheckingPotentialConstantExpression = false
 Whether we're checking that an expression is a potential constant expression.
bool CheckingForUndefinedBehavior = false
 Whether we're checking for an expression that has undefined behavior.
EvaluationMode EvalMode
ASTContextCtx
Expr::EvalStatusEvalStatus

Friends

class EvaluationResult
class InterpStateCCOverride

Detailed Description

Interpreter context.

Definition at line 43 of file InterpState.h.

Constructor & Destructor Documentation

◆ InterpState() [1/3]

◆ InterpState() [2/3]

◆ ~InterpState()

InterpState::~InterpState ( )

Definition at line 53 of file InterpState.cpp.

References BottomFrame, Current, Next, and P.

◆ InterpState() [3/3]

clang::interp::InterpState::InterpState ( const InterpState & )
delete

References InterpState().

Member Function Documentation

◆ allocAP()

◆ allocate() [1/2]

template<typename T>
T * clang::interp::InterpState::allocate ( size_t Num = 1) const
inline

Definition at line 103 of file InterpState.h.

References allocate(), and clang::Num.

◆ allocate() [2/2]

void * clang::interp::InterpState::allocate ( size_t Size,
unsigned Align = 8 ) const
inline

Definition at line 98 of file InterpState.h.

Referenced by allocAP(), allocate(), allocFloat(), and allocMemberPointerPath().

◆ allocFloat()

◆ allocMemberPointerPath()

const CXXRecordDecl ** clang::interp::InterpState::allocMemberPointerPath ( unsigned Length)
inline

◆ checkingConstantDestruction() [1/3]

bool clang::interp::InterpState::checkingConstantDestruction ( ) const
inline

Return if we're checking if a global variable has a constant destructor.

Definition at line 155 of file InterpState.h.

References clang::interp::Dtor, and EvalKind.

Referenced by clang::interp::CheckConstant(), clang::interp::CheckConstant(), clang::interp::CheckDestructor(), checkingConstantDestruction(), clang::interp::CheckMutable(), and CheckTemporary().

◆ checkingConstantDestruction() [2/3]

bool clang::interp::InterpState::checkingConstantDestruction ( const Pointer & Ptr) const
inline

Return if we're checking if a global variable has a constant destructor and the given pointer is pointing to the variable we're checking that for.

Definition at line 160 of file InterpState.h.

References clang::interp::Descriptor::asVarDecl(), checkingConstantDestruction(), and clang::interp::Pointer::getDeclDesc().

◆ checkingConstantDestruction() [3/3]

bool clang::interp::InterpState::checkingConstantDestruction ( const VarDecl * VD) const
inline

Definition at line 163 of file InterpState.h.

References clang::interp::Dtor, EvalKind, and EvaluatingDecl.

◆ cleanup()

void InterpState::cleanup ( )

Definition at line 74 of file InterpState.cpp.

◆ deallocate()

◆ diagnosing()

◆ getAllocator()

◆ getCallStackDepth()

unsigned clang::interp::InterpState::getCallStackDepth ( )
inlineoverridevirtual

Implements clang::interp::State.

Definition at line 61 of file InterpState.h.

References Current.

◆ getContext()

Context & clang::interp::InterpState::getContext ( ) const
inline

Definition at line 79 of file InterpState.h.

References Ctx.

Referenced by clang::interp::CallVirt(), clang::interp::compileFunction(), clang::interp::DoBitCast(), clang::interp::DoBitCastPtr(), clang::interp::DoMemcpy(), clang::interp::GetMemberPtrDecl(), clang::interp::GetTypeidPtr(), clang::interp::interp__builtin_addressof(), clang::interp::interp__builtin_carryop(), clang::interp::interp__builtin_elementwise_abs(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_elementwise_int_binop(), clang::interp::interp__builtin_elementwise_int_unaryop(), clang::interp::interp__builtin_elementwise_maxmin(), clang::interp::interp__builtin_elementwise_triop(), clang::interp::interp__builtin_expect(), clang::interp::interp__builtin_fpclassify(), clang::interp::interp__builtin_ia32_addcarry_subborrow(), clang::interp::interp__builtin_ia32_dbpsadbw(), clang::interp::interp__builtin_ia32_gfni_affine(), clang::interp::interp__builtin_ia32_gfni_mul(), clang::interp::interp__builtin_ia32_movmsk_op(), clang::interp::interp__builtin_ia32_mpsadbw(), clang::interp::interp__builtin_ia32_multishiftqb(), clang::interp::interp__builtin_ia32_pack(), clang::interp::interp__builtin_ia32_pclmulqdq(), clang::interp::interp__builtin_ia32_phminposuw(), clang::interp::interp__builtin_ia32_pmul(), clang::interp::interp__builtin_ia32_psadbw(), clang::interp::interp__builtin_ia32_pternlog(), clang::interp::interp__builtin_ia32_shift_with_count(), clang::interp::interp__builtin_ia32_shufbitqmb_mask(), clang::interp::interp__builtin_ia32_shuffle_generic(), clang::interp::interp__builtin_ia32_test_op(), clang::interp::interp__builtin_ia32_vcvtps2ph(), clang::interp::interp__builtin_ia32_vpconflict(), clang::interp::interp__builtin_ia32_vpdp(), clang::interp::interp__builtin_infer_alloc_token(), clang::interp::interp__builtin_memchr(), clang::interp::interp__builtin_memcmp(), clang::interp::interp__builtin_operator_delete(), clang::interp::interp__builtin_operator_new(), clang::interp::interp__builtin_overflowop(), clang::interp::interp__builtin_strcmp(), clang::interp::interp__builtin_vector_reduce(), clang::interp::interp_builtin_horizontal_int_binop(), clang::interp::popToAPSInt(), clang::interp::popToAPSInt(), clang::interp::popToUInt64(), clang::interp::pushInteger(), and clang::interp::runRecordDestructor().

◆ getCurrentFrame()

const Frame * InterpState::getCurrentFrame ( )
overridevirtual

Implements clang::interp::State.

Definition at line 81 of file InterpState.cpp.

References Current.

◆ getSource()

SourceInfo clang::interp::InterpState::getSource ( const Function * F,
CodePtr PC ) const
inlineoverridevirtual

Delegates source mapping to the mapper.

Implements clang::interp::SourceMapper.

Definition at line 71 of file InterpState.h.

References clang::interp::Function::getSource(), and PC.

◆ getStdAllocatorCaller()

◆ inConstantContext()

◆ initializingBlock()

bool clang::interp::InterpState::initializingBlock ( const Block * B) const
inline

◆ lifetimeStartedInEvaluation()

bool clang::interp::InterpState::lifetimeStartedInEvaluation ( const Block * B) const
inline

◆ maybeDiagnoseDanglingAllocations()

bool InterpState::maybeDiagnoseDanglingAllocations ( )

Diagnose any dynamic allocations that haven't been freed yet.

Will return false if there were any allocations to diagnose, true otherwise.

Definition at line 111 of file InterpState.cpp.

References clang::interp::State::CCEDiag(), clang::interp::State::checkingPotentialConstantExpression(), and clang::interp::State::getLangOpts().

Referenced by clang::interp::CheckAllocations().

◆ noteStep()

bool InterpState::noteStep ( CodePtr OpPC)

Note that a step has been executed.

If there are no more steps remaining, diagnoses and returns false.

Definition at line 160 of file InterpState.cpp.

References Current, clang::interp::State::FFDiag(), InfiniteSteps, and StepsLeft.

Referenced by Jf(), Jmp(), and Jt().

◆ operator=()

InterpState & clang::interp::InterpState::operator= ( const InterpState & )
delete

References InterpState().

◆ setEvalLocation()

void clang::interp::InterpState::setEvalLocation ( SourceLocation SL)
inline

Definition at line 81 of file InterpState.h.

References EvalLocation.

◆ stepsLeft()

bool clang::interp::InterpState::stepsLeft ( ) const
inlineoverridevirtual

Implements clang::interp::State.

Definition at line 64 of file InterpState.h.

◆ EvaluationResult

friend class EvaluationResult
friend

Definition at line 168 of file InterpState.h.

References EvaluationResult.

Referenced by EvaluationResult.

◆ InterpStateCCOverride

friend class InterpStateCCOverride
friend

Definition at line 169 of file InterpState.h.

References InterpStateCCOverride.

Referenced by InterpStateCCOverride.

Member Data Documentation

◆ BottomFrame

InterpFrame clang::interp::InterpState::BottomFrame

Bottom function frame.

Definition at line 188 of file InterpState.h.

Referenced by InterpState(), InterpState(), and ~InterpState().

◆ ConstantContextOverride

std::optional<bool> clang::interp::InterpState::ConstantContextOverride

Definition at line 212 of file InterpState.h.

Referenced by inConstantContext(), clang::interp::PopCC(), and clang::interp::PushCC().

◆ Ctx

◆ Current

InterpFrame* clang::interp::InterpState::Current = nullptr

The current frame.

Definition at line 190 of file InterpState.h.

Referenced by clang::interp::ActivateThisField(), clang::interp::AddSubMulHelper(), clang::interp::AllocCN(), clang::interp::AllocN(), clang::interp::ArrayDecay(), clang::interp::Assume(), clang::interp::BitCastPrim(), clang::interp::Call(), clang::interp::CallPtr(), clang::interp::CallVar(), clang::interp::CallVirt(), clang::interp::CastFloatingIntegral(), clang::interp::CheckActive(), clang::interp::CheckArray(), clang::interp::CheckArrayDestSize(), clang::interp::CheckArraySize(), clang::interp::CheckArraySize(), clang::interp::CheckBitCast(), clang::interp::CheckBitCast(), CheckBitcastType(), clang::interp::CheckCallable(), clang::interp::CheckCallDepth(), clang::interp::CheckConst(), clang::interp::CheckConstant(), clang::interp::checkConstructor(), clang::interp::CheckDeleteSource(), clang::interp::CheckDestructor(), clang::interp::CheckDivRem(), clang::interp::CheckDowncast(), clang::interp::CheckDummy(), clang::interp::CheckDynamicMemoryAllocation(), clang::interp::CheckFloatResult(), clang::interp::CheckFunctionDecl(), CheckGlobal(), clang::interp::CheckGlobalLoad(), clang::interp::CheckLifetime(), clang::interp::CheckLiteralType(), clang::interp::CheckLive(), clang::interp::CheckLoad(), clang::interp::CheckLocalLoad(), clang::interp::CheckMutable(), clang::interp::CheckNewDeleteForms(), clang::interp::CheckNewTypeMismatch(), clang::interp::CheckNonNullArg(), clang::interp::CheckNonNullArgs(), clang::interp::CheckNull(), clang::interp::CheckNull(), clang::interp::CheckPointerToIntegralCast(), clang::interp::CheckPseudoDtor(), clang::interp::CheckRange(), clang::interp::CheckRange(), clang::interp::CheckSubobject(), CheckTemporary(), clang::interp::CheckThis(), clang::interp::CheckVolatile(), clang::interp::CheckWeak(), clang::interp::cleanupAfterFunctionCall(), clang::interp::CMP3(), clang::interp::CmpHelper< Pointer >(), clang::interp::CmpHelperEQ< MemberPointer >(), clang::interp::CmpHelperEQ< Pointer >(), clang::interp::CtorCheck(), clang::interp::Destroy(), clang::interp::diagnoseCallableDecl(), clang::interp::diagnoseEnumValue(), diagnoseMissingInitializer(), clang::interp::diagnoseNonConstexprBuiltin(), diagnoseNonConstVariable(), clang::interp::diagnoseShiftFailure(), clang::interp::DiagnoseUninitialized(), diagnoseUnknownDecl(), clang::interp::DiagTypeid(), clang::interp::Divc(), clang::interp::DoBitCastPtr(), clang::interp::DoShift(), clang::interp::DoShiftAP(), clang::interp::DynamicCast(), clang::interp::EnableLocal(), clang::interp::FnPtrCast(), clang::interp::Free(), getCallStackDepth(), getCurrentFrame(), clang::interp::getDynamicDecl(), clang::interp::getField(), clang::interp::GetIntPtr(), clang::interp::GetLocal(), clang::interp::GetLocalEnabled(), clang::interp::GetParam(), clang::interp::GetPtrDerivedPop(), clang::interp::GetPtrLocal(), clang::interp::GetPtrParam(), clang::interp::GetPtrThisBase(), clang::interp::GetPtrThisField(), clang::interp::GetPtrThisVirtBase(), clang::interp::GetRefLocal(), getStdAllocatorCaller(), clang::interp::GetThisField(), clang::interp::GetTypeidPtr(), clang::interp::handleFixedPointOverflow(), clang::interp::handleOverflow(), clang::interp::handleReference(), clang::interp::IncDecHelper(), clang::interp::InitElem(), clang::interp::InitElemPop(), clang::interp::InitScope(), clang::interp::InitThisBitField(), clang::interp::InitThisBitFieldActivate(), clang::interp::InitThisField(), clang::interp::InitThisFieldActivate(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_ia32_vcvtps2ph(), clang::interp::interp__builtin_is_constant_evaluated(), clang::interp::interp__builtin_is_within_lifetime(), clang::interp::interp__builtin_memchr(), clang::interp::interp__builtin_memcmp(), clang::interp::interp__builtin_memcpy(), clang::interp::interp__builtin_operator_delete(), clang::interp::interp__builtin_operator_new(), clang::interp::Interpret(), clang::interp::InterpretBuiltin(), clang::interp::InterpretOffsetOf(), InterpState(), InterpState(), clang::interp::Invalid(), clang::interp::InvalidCast(), clang::interp::InvalidDeclRef(), clang::interp::InvalidNewDeleteExpr(), clang::interp::InvalidShuffleVectorIndex(), clang::interp::InvalidStore(), clang::interp::Neg(), clang::interp::NoRet(), noteStep(), clang::interp::OffsetHelper(), clang::interp::PopMSVCCE(), clang::interp::PtrPtrCast(), clang::interp::PushMSVCCE(), clang::interp::Ret(), clang::interp::RetVoid(), clang::interp::runRecordDestructor(), clang::interp::RVOPtr(), clang::interp::SetLocal(), clang::interp::SetParam(), clang::interp::SetThisField(), clang::interp::ShiftFixedPoint(), clang::interp::SizelessVectorElementSize(), clang::interp::StartThisLifetime(), clang::interp::StartThisLifetime1(), clang::interp::SubPtr(), clang::interp::This(), clang::interp::Unsupported(), and ~InterpState().

◆ DiagIgnoreDepth

unsigned clang::interp::InterpState::DiagIgnoreDepth = 0

Definition at line 211 of file InterpState.h.

Referenced by clang::interp::PopIgnoreDiags(), and clang::interp::PushIgnoreDiags().

◆ EvalID

const unsigned clang::interp::InterpState::EvalID

◆ EvalKind

EvaluationKind clang::interp::InterpState::EvalKind = EvaluationKind::None

◆ EvalLocation

SourceLocation clang::interp::InterpState::EvalLocation

Source location of the evaluating expression.

Definition at line 192 of file InterpState.h.

Referenced by setEvalLocation().

◆ EvaluatingDecl

◆ InfiniteSteps

const bool clang::interp::InterpState::InfiniteSteps = false

Whether infinite evaluation steps have been requested.

If this is false, we use the StepsLeft value above.

Definition at line 199 of file InterpState.h.

Referenced by InterpState(), InterpState(), and noteStep().

◆ InitializingPtrs

llvm::SmallVector<PtrView> clang::interp::InterpState::InitializingPtrs

List of blocks we're currently running either constructors or destructors for.

Definition at line 220 of file InterpState.h.

Referenced by clang::interp::Call(), clang::interp::CheckConst(), clang::interp::DynamicCast(), clang::interp::EndInit(), initializingBlock(), and clang::interp::StartInit().

◆ P

◆ PC

◆ PrevDiags

SmallVectorImpl<PartialDiagnosticAt>* clang::interp::InterpState::PrevDiags = nullptr

Things needed to do speculative execution.

Definition at line 206 of file InterpState.h.

Referenced by clang::interp::PopIgnoreDiags(), and clang::interp::PushIgnoreDiags().

◆ PrevDiagsEmitted

bool clang::interp::InterpState::PrevDiagsEmitted = false

Definition at line 207 of file InterpState.h.

Referenced by clang::interp::PopIgnoreDiags(), and clang::interp::PushIgnoreDiags().

◆ SeenGlobalTemporaries

llvm::SmallVector< std::pair<const Expr *, const LifetimeExtendedTemporaryDecl *> > clang::interp::InterpState::SeenGlobalTemporaries

◆ SpeculationDepth

unsigned clang::interp::InterpState::SpeculationDepth = 0

◆ StepsLeft

unsigned clang::interp::InterpState::StepsLeft = 1

Steps left during evaluation.

Definition at line 196 of file InterpState.h.

Referenced by InterpState(), InterpState(), and noteStep().

◆ Stk

InterpStack& clang::interp::InterpState::Stk

Temporary stack.

Definition at line 184 of file InterpState.h.

Referenced by clang::interp::Activate(), clang::interp::Add(), clang::interp::Addf(), clang::interp::AddOffset(), clang::interp::AddSubMulHelper(), clang::interp::AddSubNonNumber(), clang::interp::Alloc(), clang::interp::AllocCN(), clang::interp::AllocN(), clang::interp::appendToMemberPointer(), clang::interp::ArrayDecay(), clang::interp::ArrayElem(), clang::interp::ArrayElemPop(), clang::interp::ArrayElemPtr(), clang::interp::ArrayElemPtrPop(), clang::interp::Assume(), clang::interp::BCP(), clang::interp::BitAnd(), clang::interp::BitCast(), clang::interp::BitCastPrim(), clang::interp::BitOr(), clang::interp::BitXor(), clang::interp::Call(), clang::interp::CallPtr(), clang::interp::CallVar(), clang::interp::CallVirt(), clang::interp::Cast(), clang::interp::CastAP(), clang::interp::CastAPS(), clang::interp::castBackMemberPointer(), clang::interp::CastFixedPoint(), clang::interp::CastFixedPointFloating(), clang::interp::CastFixedPointIntegral(), clang::interp::CastFloatingFixedPoint(), clang::interp::CastFloatingIntegral(), clang::interp::CastFloatingIntegralAP(), clang::interp::CastFloatingIntegralAPS(), clang::interp::CastFP(), clang::interp::CastIntegralFixedPoint(), clang::interp::CastIntegralFloating(), clang::interp::CastMemberPtrBasePop(), clang::interp::CastMemberPtrDerivedPop(), clang::interp::CastMemberPtrPtr(), clang::interp::CastNoOverflow(), clang::interp::CastPointerIntegral(), clang::interp::CastPointerIntegralAP(), clang::interp::CastPointerIntegralAPS(), clang::interp::CheckArrayDestSize(), clang::interp::CheckBitCast(), clang::interp::CheckDestruction(), clang::interp::CheckEnumValue(), clang::interp::CheckNewTypeMismatch(), clang::interp::CheckNewTypeMismatchArray(), clang::interp::CheckNonNullArg(), clang::interp::CheckNonNullArgs(), clang::interp::CheckNull(), clang::interp::CheckRefInit(), clang::interp::cleanupAfterFunctionCall(), clang::interp::CMP3(), clang::interp::CmpHelper(), clang::interp::CmpHelper< Pointer >(), clang::interp::CmpHelperEQ< MemberPointer >(), clang::interp::CmpHelperEQ< Pointer >(), clang::interp::Comp(), clang::interp::Const(), clang::interp::ConstFloat(), clang::interp::CopyArray(), clang::interp::CopyMemberPtrPath(), clang::interp::Dec(), clang::interp::DecayPtr(), clang::interp::DecBitfield(), clang::interp::Decf(), clang::interp::DecfPop(), clang::interp::DecPop(), clang::interp::DecPopBitfield(), clang::interp::DecPtr(), clang::interp::Div(), clang::interp::Divc(), clang::interp::Divf(), clang::interp::DoShift(), clang::interp::DoShiftAP(), clang::interp::Dump(), clang::interp::Dup(), clang::interp::DynamicCast(), clang::interp::EndLifetime(), clang::interp::EndLifetimePop(), clang::interp::ExpandPtr(), clang::interp::FinishInit(), clang::interp::FinishInitActivate(), clang::interp::FinishInitActivatePop(), clang::interp::FinishInitGlobal(), clang::interp::FinishInitPop(), clang::interp::Flip(), clang::interp::floatAPCast(), clang::interp::Free(), clang::interp::getBase(), clang::interp::GetField(), clang::interp::getField(), clang::interp::GetFieldPop(), clang::interp::GetFnPtr(), clang::interp::GetGlobal(), clang::interp::GetGlobalUnchecked(), clang::interp::GetIntPtr(), clang::interp::GetLocal(), clang::interp::GetLocalEnabled(), clang::interp::GetMemberPtr(), clang::interp::GetMemberPtrBase(), clang::interp::GetMemberPtrDecl(), clang::interp::GetParam(), clang::interp::GetPtrBase(), clang::interp::GetPtrBasePop(), clang::interp::GetPtrDerivedPop(), clang::interp::GetPtrField(), clang::interp::GetPtrFieldPop(), clang::interp::GetPtrGlobal(), clang::interp::GetPtrLocal(), clang::interp::GetPtrParam(), clang::interp::GetPtrThisBase(), clang::interp::GetPtrThisField(), clang::interp::GetPtrVirtBasePop(), clang::interp::GetRefGlobal(), clang::interp::GetThisField(), clang::interp::GetTypeid(), clang::interp::GetTypeidPtr(), clang::interp::handleReference(), clang::interp::Inc(), clang::interp::IncBitfield(), clang::interp::IncDecFloatHelper(), clang::interp::IncDecHelper(), clang::interp::IncDecPtrHelper(), clang::interp::Incf(), clang::interp::IncfPop(), clang::interp::IncPop(), clang::interp::IncPopBitfield(), clang::interp::IncPtr(), clang::interp::Init(), clang::interp::InitBitField(), clang::interp::InitBitFieldActivate(), clang::interp::InitElem(), clang::interp::InitElemPop(), clang::interp::InitField(), clang::interp::InitFieldActivate(), clang::interp::InitGlobal(), clang::interp::InitGlobalTemp(), clang::interp::InitGlobalTempComp(), clang::interp::InitPop(), clang::interp::InitThisBitField(), clang::interp::InitThisBitFieldActivate(), clang::interp::InitThisField(), clang::interp::InitThisFieldActivate(), clang::interp::interp__builtin_arithmetic_fence(), clang::interp::interp__builtin_assume_aligned(), clang::interp::interp__builtin_atomic_lock_free(), clang::interp::interp__builtin_c11_atomic_is_lock_free(), clang::interp::interp__builtin_carryop(), clang::interp::interp__builtin_clz(), clang::interp::interp__builtin_complex(), clang::interp::interp__builtin_copysign(), clang::interp::interp__builtin_ctz(), clang::interp::interp__builtin_elementwise_abs(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_elementwise_fp_binop(), clang::interp::interp__builtin_elementwise_int_binop(), clang::interp::interp__builtin_elementwise_int_unaryop(), clang::interp::interp__builtin_elementwise_maxmin(), clang::interp::interp__builtin_elementwise_triop(), clang::interp::interp__builtin_elementwise_triop_fp(), clang::interp::interp__builtin_expect(), clang::interp::interp__builtin_fabs(), clang::interp::interp__builtin_fmax(), clang::interp::interp__builtin_fmin(), clang::interp::interp__builtin_fpclassify(), clang::interp::interp__builtin_ia32_addcarry_subborrow(), clang::interp::interp__builtin_ia32_addsub(), clang::interp::interp__builtin_ia32_bmac(), clang::interp::interp__builtin_ia32_cmp_mask(), clang::interp::interp__builtin_ia32_cvt_mask2vec(), clang::interp::interp__builtin_ia32_cvt_vec2mask(), clang::interp::interp__builtin_ia32_cvtpd2ps(), clang::interp::interp__builtin_ia32_cvtsd2ss(), clang::interp::interp__builtin_ia32_dbpsadbw(), clang::interp::interp__builtin_ia32_extract_vector(), clang::interp::interp__builtin_ia32_extract_vector_masked(), clang::interp::interp__builtin_ia32_gfni_affine(), clang::interp::interp__builtin_ia32_gfni_mul(), clang::interp::interp__builtin_ia32_insert_subvector(), clang::interp::interp__builtin_ia32_movmsk_op(), clang::interp::interp__builtin_ia32_mpsadbw(), clang::interp::interp__builtin_ia32_multishiftqb(), clang::interp::interp__builtin_ia32_pack(), clang::interp::interp__builtin_ia32_pclmulqdq(), clang::interp::interp__builtin_ia32_phminposuw(), clang::interp::interp__builtin_ia32_pmul(), clang::interp::interp__builtin_ia32_psadbw(), clang::interp::interp__builtin_ia32_pternlog(), clang::interp::interp__builtin_ia32_select(), clang::interp::interp__builtin_ia32_select_scalar(), clang::interp::interp__builtin_ia32_shift_with_count(), clang::interp::interp__builtin_ia32_shufbitqmb_mask(), clang::interp::interp__builtin_ia32_shuffle_generic(), clang::interp::interp__builtin_ia32_test_op(), clang::interp::interp__builtin_ia32_vcvtps2ph(), clang::interp::interp__builtin_ia32_vec_ext(), clang::interp::interp__builtin_ia32_vec_set(), clang::interp::interp__builtin_ia32_vpconflict(), clang::interp::interp__builtin_ia32_vpdp(), clang::interp::interp__builtin_inf(), clang::interp::interp__builtin_infer_alloc_token(), clang::interp::interp__builtin_is_aligned_up_down(), clang::interp::interp__builtin_is_constant_evaluated(), clang::interp::interp__builtin_is_within_lifetime(), clang::interp::interp__builtin_isfinite(), clang::interp::interp__builtin_isfpclass(), clang::interp::interp__builtin_isinf(), clang::interp::interp__builtin_isnan(), clang::interp::interp__builtin_isnormal(), clang::interp::interp__builtin_issignaling(), clang::interp::interp__builtin_issubnormal(), clang::interp::interp__builtin_iszero(), clang::interp::interp__builtin_memchr(), clang::interp::interp__builtin_memcmp(), clang::interp::interp__builtin_memcpy(), clang::interp::interp__builtin_nan(), clang::interp::interp__builtin_object_size(), clang::interp::interp__builtin_operator_delete(), clang::interp::interp__builtin_operator_new(), clang::interp::interp__builtin_overflowop(), clang::interp::interp__builtin_popcount(), clang::interp::interp__builtin_ptrauth_string_discriminator(), clang::interp::interp__builtin_scalar_fp_round_mask_binop(), clang::interp::interp__builtin_signbit(), clang::interp::interp__builtin_strcmp(), clang::interp::interp__builtin_strlen(), clang::interp::interp__builtin_vector_reduce(), clang::interp::interp_builtin_horizontal_fp_binop(), clang::interp::interp_builtin_horizontal_int_binop(), clang::interp::interp_floating_comparison(), InterpState(), InterpState(), clang::interp::Inv(), clang::interp::IsConstantContext(), clang::interp::IsNonNull(), Jf(), Jt(), clang::interp::Load(), clang::interp::LoadPop(), clang::interp::MarkDestroyed(), clang::interp::Memcpy(), clang::interp::Mul(), clang::interp::Mulc(), clang::interp::Mulf(), clang::interp::NarrowPtr(), clang::interp::Neg(), clang::interp::Null(), clang::interp::OffsetOf(), clang::interp::Pop(), clang::interp::popToAPSInt(), clang::interp::popToAPSInt(), clang::interp::PreDec(), clang::interp::PreDecBitfield(), clang::interp::PreInc(), clang::interp::PreIncBitfield(), clang::interp::PtrPtrCast(), clang::interp::pushInteger(), clang::interp::Rem(), clang::interp::Ret(), clang::interp::RetVoid(), clang::interp::runRecordDestructor(), clang::interp::RVOPtr(), clang::interp::SetField(), clang::interp::SetLocal(), clang::interp::SetParam(), clang::interp::SetThisField(), clang::interp::ShiftFixedPoint(), clang::interp::Shl(), clang::interp::Shr(), clang::interp::StartInit(), clang::interp::Store(), clang::interp::StoreActivate(), clang::interp::StoreActivatePop(), clang::interp::StoreBitField(), clang::interp::StoreBitFieldActivate(), clang::interp::StoreBitFieldActivatePop(), clang::interp::StoreBitFieldPop(), clang::interp::StorePop(), clang::interp::Sub(), clang::interp::Subf(), clang::interp::SubOffset(), clang::interp::SubPtr(), clang::interp::This(), clang::interp::ToMemberPtr(), clang::interp::VirtBaseHelper(), clang::interp::Zero(), clang::interp::ZeroIntAP(), and clang::interp::ZeroIntAPS().


The documentation for this class was generated from the following files: