Make taking an edge of a named event an error.
A named event does not have an edge so taking a posedge or negedge is illegal. This patch adds an error message for this. Before the edge was being ignored for named events, but this is incompatible with other tools.
This commit is contained in:
parent
79f8b8fcfd
commit
4af24b6b9e
19
elaborate.cc
19
elaborate.cc
|
|
@ -3025,6 +3025,25 @@ NetProc* PEventStatement::elaborate_st(Design*des, NetScope*scope,
|
|||
|
||||
if (found_in && eve) {
|
||||
wa->add_event(eve);
|
||||
/* You can not look for the posedge or negedge of
|
||||
* an event. */
|
||||
if (expr_[idx]->type() != PEEvent::ANYEDGE) {
|
||||
cerr << get_fileline() << ": error: ";
|
||||
switch (expr_[idx]->type()) {
|
||||
case PEEvent::POSEDGE:
|
||||
cerr << "posedge";
|
||||
break;
|
||||
case PEEvent::NEGEDGE:
|
||||
cerr << "negedge";
|
||||
break;
|
||||
default:
|
||||
cerr << "unknown edge type!";
|
||||
assert(0);
|
||||
}
|
||||
cerr << " can not be used with a named event ("
|
||||
<< eve->name() << ")." << endl;
|
||||
des->errors += 1;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue