mirror of
https://github.com/zeek/zeek.git
synced 2025-10-08 17:48:21 +00:00
ZAM internals have a notion of "captures" as global-like variables
This commit is contained in:
parent
110ba7a0a1
commit
0a40aec4a6
3 changed files with 101 additions and 10 deletions
|
@ -383,16 +383,20 @@ bool ZInstI::IsDirectAssignment() const
|
|||
|
||||
switch ( op )
|
||||
{
|
||||
case OP_ASSIGN_VV_N:
|
||||
case OP_ASSIGN_VV_A:
|
||||
case OP_ASSIGN_VV_D:
|
||||
case OP_ASSIGN_VV_F:
|
||||
case OP_ASSIGN_VV_I:
|
||||
case OP_ASSIGN_VV_L:
|
||||
case OP_ASSIGN_VV_N:
|
||||
case OP_ASSIGN_VV_O:
|
||||
case OP_ASSIGN_VV_P:
|
||||
case OP_ASSIGN_VV_R:
|
||||
case OP_ASSIGN_VV_S:
|
||||
case OP_ASSIGN_VV_F:
|
||||
case OP_ASSIGN_VV_T:
|
||||
case OP_ASSIGN_VV_U:
|
||||
case OP_ASSIGN_VV_V:
|
||||
case OP_ASSIGN_VV_L:
|
||||
case OP_ASSIGN_VV_a:
|
||||
case OP_ASSIGN_VV_f:
|
||||
case OP_ASSIGN_VV_t:
|
||||
case OP_ASSIGN_VV:
|
||||
|
@ -403,6 +407,21 @@ bool ZInstI::IsDirectAssignment() const
|
|||
}
|
||||
}
|
||||
|
||||
bool ZInstI::HasCaptures() const
|
||||
{
|
||||
switch ( op )
|
||||
{
|
||||
case OP_LAMBDA_VV:
|
||||
case OP_WHEN_V:
|
||||
case OP_WHEN_TIMEOUT_VV:
|
||||
case OP_WHEN_TIMEOUT_VC:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool ZInstI::HasSideEffects() const
|
||||
{
|
||||
return op_side_effects[op];
|
||||
|
@ -647,6 +666,11 @@ bool ZInstI::IsGlobalLoad() const
|
|||
return global_ops.count(op) > 0;
|
||||
}
|
||||
|
||||
bool ZInstI::IsCaptureLoad() const
|
||||
{
|
||||
return op == OP_LOAD_CAPTURE_VV || op == OP_LOAD_MANAGED_CAPTURE_VV;
|
||||
}
|
||||
|
||||
void ZInstI::InitConst(const ConstExpr* ce)
|
||||
{
|
||||
auto v = ce->ValuePtr();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue