clang 17.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 >
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 >
T & peek () const
 Returns a reference to the value on the top of the stack.
 
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
 

Detailed Description

Stack frame storing temporaries and parameters.

Definition at line 24 of file InterpStack.h.

Constructor & Destructor Documentation

◆ InterpStack()

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

Definition at line 26 of file InterpStack.h.

◆ ~InterpStack()

InterpStack::~InterpStack ( )

Destroys the stack, freeing up storage.

Definition at line 16 of file InterpStack.cpp.

References clear().

Member Function Documentation

◆ clear()

void InterpStack::clear ( )

Clears the stack without calling any destructors.

Definition at line 20 of file InterpStack.cpp.

Referenced by 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 54 of file InterpStack.h.

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

◆ empty()

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

◆ peek()

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 65 of file InterpStack.h.

References peek().

Referenced by peek(), and top().

◆ 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 40 of file InterpStack.h.

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 32 of file InterpStack.h.

◆ size()

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

Returns the size of the stack in bytes.

Definition at line 73 of file InterpStack.h.

◆ top()

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

Returns a pointer to the top object.

Definition at line 70 of file InterpStack.h.

References peek().


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