clang 19.0.0git
Classes | Public Member Functions | List of all members
clang::interp::InterpStack Class Referencefinal

Stack frame storing temporaries and parameters. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/AST/Interp/InterpStack.h"

Public Member Functions

 InterpStack ()
 
 ~InterpStack ()
 Destroys the stack, freeing up storage.
 
template<typename T , typename... Tys>
void push (Tys &&... Args)
 Constructs a value in place on the top of the stack.
 
template<typename T >
T pop ()
 Returns the value from the top of the stack and removes it.
 
template<typename T >
void discard ()
 Discards the top value from the stack.
 
template<typename T >
Tpeek () const
 Returns a reference to the value on the top of the stack.
 
template<typename T >
Tpeek (size_t Offset) const
 
void * top () const
 Returns a pointer to the top object.
 
size_t size () const
 Returns the size of the stack in bytes.
 
void clear ()
 Clears the stack without calling any destructors.
 
bool empty () const
 Returns whether the stack is empty.
 
void dump () const
 dump the stack contents to stderr.
 

Detailed Description

Stack frame storing temporaries and parameters.

Definition at line 26 of file InterpStack.h.

Constructor & Destructor Documentation

◆ InterpStack()

clang::interp::InterpStack::InterpStack ( )
inline

Definition at line 28 of file InterpStack.h.

◆ ~InterpStack()

InterpStack::~InterpStack ( )

Destroys the stack, freeing up storage.

Definition at line 20 of file InterpStack.cpp.

References clear().

Member Function Documentation

◆ clear()

void InterpStack::clear ( )

Clears the stack without calling any destructors.

Definition at line 24 of file InterpStack.cpp.

Referenced by clang::interp::Context::evaluate(), clang::interp::Context::evaluateAsInitializer(), clang::interp::Context::evaluateAsRValue(), and ~InterpStack().

◆ discard()

template<typename T >
void clang::interp::InterpStack::discard ( )
inline

Discards the top value from the stack.

Definition at line 56 of file InterpStack.h.

References clang::T.

Referenced by clang::interp::InterpFrame::popArgs().

◆ dump()

void InterpStack::dump ( ) const

dump the stack contents to stderr.

Definition at line 87 of file InterpStack.cpp.

References clang::interp::align(), clang::interp::primSize(), size(), clang::T, TYPE_SWITCH, and V.

◆ empty()

bool clang::interp::InterpStack::empty ( ) const
inline

◆ peek() [1/2]

template<typename T >
T & clang::interp::InterpStack::peek ( ) const
inline

Returns a reference to the value on the top of the stack.

Definition at line 68 of file InterpStack.h.

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

◆ peek() [2/2]

template<typename T >
T & clang::interp::InterpStack::peek ( size_t  Offset) const
inline

Definition at line 76 of file InterpStack.h.

References clang::interp::aligned(), and clang::T.

◆ pop()

template<typename T >
T clang::interp::InterpStack::pop ( )
inline

Returns the value from the top of the stack and removes it.

Definition at line 42 of file InterpStack.h.

References clang::T.

Referenced by clang::interp::EvalEmitter::jumpFalse(), and clang::interp::EvalEmitter::jumpTrue().

◆ push()

template<typename T , typename... Tys>
void clang::interp::InterpStack::push ( Tys &&...  Args)
inline

Constructs a value in place on the top of the stack.

Definition at line 34 of file InterpStack.h.

References clang::T.

◆ size()

size_t clang::interp::InterpStack::size ( ) const
inline

Returns the size of the stack in bytes.

Definition at line 85 of file InterpStack.h.

Referenced by dump().

◆ top()

void * clang::interp::InterpStack::top ( ) const
inline

Returns a pointer to the top object.

Definition at line 82 of file InterpStack.h.


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