Treat an empty @* as something that will never trigger.

An @* with no sensitivities should be treated as something that will
never trigger vs something that will run continuously. This patch makes
this change and adds a warning when an @* has no sensitivities since
this is almost certainly a coding bug.
This commit is contained in:
Cary R 2011-11-23 17:25:30 -08:00
parent 9fbeb78d5f
commit 92ad41d65b
1 changed files with 14 additions and 4 deletions

View File

@ -3317,10 +3317,20 @@ NetProc* PEventStatement::elaborate_st(Design*des, NetScope*scope,
}
if (nset->count() == 0) {
cerr << get_fileline() << ": error: No inputs to statement."
<< " The @* cannot execute." << endl;
des->errors += 1;
return enet;
cerr << get_fileline() << ": warning: @* found no "
"sensitivities so it will never trigger."
<< endl;
/* Add the currently unreferenced event to the scope. */
scope->add_event(ev);
/* Delete the current wait, create a new one with no
* statement and add the event to it. This creates a
* perpetual wait since nothing will ever trigger the
* unreferenced event. */
delete wa;
wa = new NetEvWait(0);
wa->set_line(*this);
wa->add_event(ev);
return wa;
}
NetEvProbe*pr = new NetEvProbe(scope, scope->local_symbol(),