PR1026: assignment statements can have sensitivities in the l-values.

This commit is contained in:
steve 2004-09-04 04:24:15 +00:00
parent d3eb53e6b1
commit 62cffe16f4
2 changed files with 32 additions and 2 deletions

View File

@ -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.
*

View File

@ -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.
*