PR1026: assignment statements can have sensitivities in the l-values.
This commit is contained in:
parent
d3eb53e6b1
commit
62cffe16f4
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: net_nex_input.cc,v 1.11 2003/10/26 04:50:46 steve Exp $"
|
||||
#ident "$Id: net_nex_input.cc,v 1.12 2004/09/04 04:24:15 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -182,9 +182,27 @@ NexusSet* NetEVariable::nex_input()
|
|||
return new NexusSet;
|
||||
}
|
||||
|
||||
NexusSet* NetAssign_::nex_input()
|
||||
{
|
||||
if (bmux_ == 0)
|
||||
return new NexusSet;
|
||||
else
|
||||
return bmux_->nex_input();
|
||||
}
|
||||
|
||||
NexusSet* NetAssignBase::nex_input()
|
||||
{
|
||||
NexusSet*result = rval_->nex_input();
|
||||
|
||||
/* It is possible that the lval_ can hav nex_input values. In
|
||||
particular, index expressions are statement inputs as well,
|
||||
so should be addressed here. */
|
||||
for (NetAssign_*cur = lval_ ; cur ; cur = cur->more) {
|
||||
NexusSet*tmp = cur->nex_input();
|
||||
result->add(*tmp);
|
||||
delete tmp;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -380,6 +398,9 @@ NexusSet* NetWhile::nex_input()
|
|||
|
||||
/*
|
||||
* $Log: net_nex_input.cc,v $
|
||||
* Revision 1.12 2004/09/04 04:24:15 steve
|
||||
* PR1026: assignment statements can have sensitivities in the l-values.
|
||||
*
|
||||
* Revision 1.11 2003/10/26 04:50:46 steve
|
||||
* Case with empty statements has no inputs.
|
||||
*
|
||||
|
|
|
|||
11
netlist.h
11
netlist.h
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: netlist.h,v 1.317 2004/08/28 16:23:05 steve Exp $"
|
||||
#ident "$Id: netlist.h,v 1.318 2004/09/04 04:24:15 steve Exp $"
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
@ -1432,6 +1432,12 @@ class NetAssign_ {
|
|||
// into a wire.
|
||||
void turn_sig_to_wire_on_release();
|
||||
|
||||
// It is possible that l-values can have *inputs*, as well as
|
||||
// being outputs. For example foo[idx] = ... is the l-value
|
||||
// (NetAssign_ object) with a foo l-value and the input
|
||||
// expression idx.
|
||||
NexusSet* nex_input();
|
||||
|
||||
// This pointer is for keeping simple lists.
|
||||
NetAssign_* more;
|
||||
|
||||
|
|
@ -3350,6 +3356,9 @@ extern ostream& operator << (ostream&, NetNet::Type);
|
|||
|
||||
/*
|
||||
* $Log: netlist.h,v $
|
||||
* Revision 1.318 2004/09/04 04:24:15 steve
|
||||
* PR1026: assignment statements can have sensitivities in the l-values.
|
||||
*
|
||||
* Revision 1.317 2004/08/28 16:23:05 steve
|
||||
* Fix use of system tasks in AT_STAR statements.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue