clang 22.0.0git
|
Generic scope for local variables. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/AST/ByteCode/Compiler.h"
Public Member Functions | |
LocalScope (Compiler< Emitter > *Ctx, ScopeKind Kind=ScopeKind::Block) | |
LocalScope (Compiler< Emitter > *Ctx, const ValueDecl *VD) | |
~LocalScope () override | |
Emit a Destroy op for this scope. | |
void | emitDestruction () override |
Overriden to support explicit destruction. | |
bool | destroyLocals (const Expr *E=nullptr) override |
Explicit destruction of local variables. | |
void | addLocal (const Scope::Local &Local) override |
bool | emitDestructors (const Expr *E=nullptr) override |
void | removeStoredOpaqueValues () |
void | removeIfStoredOpaqueValue (const Scope::Local &Local) |
Public Member Functions inherited from clang::interp::VariableScope< Emitter > | |
VariableScope (Compiler< Emitter > *Ctx, const ValueDecl *VD, ScopeKind Kind=ScopeKind::Block) | |
virtual | ~VariableScope () |
void | addExtended (const Scope::Local &Local, const ValueDecl *ExtendingDecl) |
void | addForScopeKind (const Scope::Local &Local, ScopeKind Kind) |
Like addExtended, but adds to the nearest scope of the given kind. | |
VariableScope * | getParent () const |
ScopeKind | getKind () const |
Public Attributes | |
UnsignedOrNone | Idx = std::nullopt |
Index of the scope in the chain. |
Additional Inherited Members | |
Protected Attributes inherited from clang::interp::VariableScope< Emitter > | |
Compiler< Emitter > * | Ctx |
Compiler instance. | |
VariableScope * | Parent |
Link to the parent scope. | |
const ValueDecl * | ValDecl = nullptr |
ScopeKind | Kind |
Generic scope for local variables.
Definition at line 540 of file Compiler.h.
|
inline |
Definition at line 542 of file Compiler.h.
References clang::interp::Block, clang::interp::VariableScope< Emitter >::Ctx, clang::interp::VariableScope< Emitter >::Kind, clang::nullptr, and clang::interp::VariableScope< Emitter >::VariableScope().
Referenced by clang::interp::DeclScope< Emitter >::DeclScope().
|
inline |
Definition at line 544 of file Compiler.h.
References clang::interp::VariableScope< Emitter >::Ctx, and clang::interp::VariableScope< Emitter >::VariableScope().
|
inlineoverride |
Emit a Destroy op for this scope.
Definition at line 548 of file Compiler.h.
References Idx, and removeStoredOpaqueValues().
|
inlineoverridevirtual |
Reimplemented from clang::interp::VariableScope< Emitter >.
Definition at line 576 of file Compiler.h.
References Idx.
|
inlineoverridevirtual |
Explicit destruction of local variables.
Reimplemented from clang::interp::VariableScope< Emitter >.
Definition at line 565 of file Compiler.h.
References emitDestructors(), Idx, and clang::Success.
Referenced by clang::interp::Compiler< Emitter >::VisitAbstractConditionalOperator(), clang::interp::Compiler< Emitter >::VisitArrayInitLoopExpr(), clang::interp::Compiler< Emitter >::VisitCallExpr(), clang::interp::Compiler< Emitter >::visitCXXForRangeStmt(), clang::interp::Compiler< Emitter >::visitDeclAndReturn(), clang::interp::Compiler< Emitter >::visitDoStmt(), clang::interp::Compiler< Emitter >::visitExpr(), clang::interp::Compiler< Emitter >::VisitExprWithCleanups(), clang::interp::Compiler< Emitter >::visitForStmt(), clang::interp::Compiler< Emitter >::visitIfStmt(), clang::interp::Compiler< Emitter >::VisitStmtExpr(), clang::interp::Compiler< Emitter >::visitSwitchStmt(), and clang::interp::Compiler< Emitter >::visitWhileStmt().
|
inlineoverridevirtual |
Overriden to support explicit destruction.
Reimplemented from clang::interp::VariableScope< Emitter >.
Definition at line 556 of file Compiler.h.
References emitDestructors(), and Idx.
|
inlineoverridevirtual |
Reimplemented from clang::interp::VariableScope< Emitter >.
Definition at line 586 of file Compiler.h.
References Idx, and removeIfStoredOpaqueValue().
Referenced by destroyLocals(), and emitDestruction().
|
inline |
Definition at line 614 of file Compiler.h.
Referenced by emitDestructors(), and removeStoredOpaqueValues().
|
inline |
Definition at line 605 of file Compiler.h.
References Idx, and removeIfStoredOpaqueValue().
Referenced by ~LocalScope().
UnsignedOrNone clang::interp::LocalScope< Emitter >::Idx = std::nullopt |
Index of the scope in the chain.
Definition at line 624 of file Compiler.h.
Referenced by addLocal(), destroyLocals(), emitDestruction(), emitDestructors(), removeStoredOpaqueValues(), and ~LocalScope().