mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
bug fixes for script optimization intermediate forms
This commit is contained in:
parent
c0f3403714
commit
4a5a7f975d
5 changed files with 36 additions and 14 deletions
|
@ -646,21 +646,26 @@ StmtPtr ReturnStmt::Duplicate()
|
|||
|
||||
ReturnStmt::ReturnStmt(ExprPtr arg_e, bool ignored) : ExprStmt(STMT_RETURN, std::move(arg_e)) { }
|
||||
|
||||
bool ReturnStmt::IsReduced(Reducer* c) const
|
||||
{
|
||||
if ( ! e || e->IsSingleton(c) )
|
||||
return true;
|
||||
|
||||
return NonReduced(e.get());
|
||||
}
|
||||
|
||||
StmtPtr ReturnStmt::DoReduce(Reducer* c)
|
||||
{
|
||||
if ( ! e )
|
||||
return ThisPtr();
|
||||
|
||||
if ( c->Optimizing() )
|
||||
{
|
||||
e = c->OptExpr(e);
|
||||
return ThisPtr();
|
||||
}
|
||||
|
||||
if ( ! e->IsSingleton(c) )
|
||||
else if ( ! e->IsSingleton(c) )
|
||||
{
|
||||
StmtPtr red_e_stmt;
|
||||
e = e->Reduce(c, red_e_stmt);
|
||||
e = e->ReduceToSingleton(c, red_e_stmt);
|
||||
|
||||
if ( red_e_stmt )
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue