mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
script optimization support for "add" and "delete" being expressions
This commit is contained in:
parent
0e5bece385
commit
37c1f6641c
11 changed files with 132 additions and 144 deletions
|
@ -223,8 +223,6 @@ UDs UseDefs::PropagateUDs(const Stmt* s, UDs succ_UDs, const Stmt* succ_stmt, bo
|
|||
|
||||
case STMT_EVENT:
|
||||
case STMT_CHECK_ANY_LEN:
|
||||
case STMT_ADD:
|
||||
case STMT_DELETE:
|
||||
case STMT_RETURN: {
|
||||
auto e = static_cast<const ExprStmt*>(s)->StmtExpr();
|
||||
|
||||
|
@ -436,6 +434,19 @@ UDs UseDefs::ExprUDs(const Expr* e) {
|
|||
break;
|
||||
}
|
||||
|
||||
case EXPR_AGGR_ADD:
|
||||
case EXPR_AGGR_DEL: {
|
||||
auto op = e->GetOp1();
|
||||
if ( op->Tag() == EXPR_INDEX ) {
|
||||
AddInExprUDs(uds, op->GetOp1().get());
|
||||
auto rhs_UDs = ExprUDs(op->GetOp2().get());
|
||||
uds = UD_Union(uds, rhs_UDs);
|
||||
}
|
||||
else
|
||||
AddInExprUDs(uds, op.get());
|
||||
break;
|
||||
}
|
||||
|
||||
case EXPR_INCR:
|
||||
case EXPR_DECR: AddInExprUDs(uds, e->GetOp1()->AsRefExprPtr()->GetOp1().get()); break;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue