|
clang 22.0.0git
|
Generic scope for local variables. More...
#include "/work/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 541 of file Compiler.h.
|
inline |
Definition at line 543 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 545 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 549 of file Compiler.h.
References Idx, and removeStoredOpaqueValues().
|
inlineoverridevirtual |
Reimplemented from clang::interp::VariableScope< Emitter >.
Definition at line 577 of file Compiler.h.
References Idx.
|
inlineoverridevirtual |
Explicit destruction of local variables.
Reimplemented from clang::interp::VariableScope< Emitter >.
Definition at line 566 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 557 of file Compiler.h.
References emitDestructors(), and Idx.
|
inlineoverridevirtual |
Reimplemented from clang::interp::VariableScope< Emitter >.
Definition at line 587 of file Compiler.h.
References Idx, and removeIfStoredOpaqueValue().
Referenced by destroyLocals(), and emitDestruction().
|
inline |
Definition at line 615 of file Compiler.h.
Referenced by emitDestructors(), and removeStoredOpaqueValues().
|
inline |
Definition at line 606 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 625 of file Compiler.h.
Referenced by addLocal(), destroyLocals(), emitDestruction(), emitDestructors(), removeStoredOpaqueValues(), and ~LocalScope().