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:
parent
9fbeb78d5f
commit
92ad41d65b
18
elaborate.cc
18
elaborate.cc
|
|
@ -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(),
|
||||
|
|
|
|||
Loading…
Reference in New Issue