From 32fb919b006c92fd1db9f0756f929094d2d151d9 Mon Sep 17 00:00:00 2001 From: steve Date: Wed, 14 Mar 2007 05:06:49 +0000 Subject: [PATCH] Replace some asserts with ivl_asserts. --- elab_expr.cc | 9 ++++++--- elab_lval.cc | 14 +++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/elab_expr.cc b/elab_expr.cc index ce8a905dd..f3c00ea32 100644 --- a/elab_expr.cc +++ b/elab_expr.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: elab_expr.cc,v 1.121 2007/03/07 00:38:15 steve Exp $" +#ident "$Id: elab_expr.cc,v 1.122 2007/03/14 05:06:49 steve Exp $" #endif # include "config.h" @@ -1125,7 +1125,7 @@ NetExpr* PEIdent::elaborate_expr_net_part_(Design*des, NetScope*scope, NetESignal*net, NetScope*found_in) const { long msv, lsv; - assert(idx_.empty()); + ivl_assert(*this, idx_.empty()); bool flag = calculate_parts_(des, scope, msv, lsv); if (!flag) return 0; @@ -1143,7 +1143,7 @@ NetExpr* PEIdent::elaborate_expr_net_part_(Design*des, NetScope*scope, //delete msn; return net; } - assert(wid <= net->vector_width()); + ivl_assert(*this, wid <= net->vector_width()); if (net->sig()->sb_to_idx(msv) < net->sig()->sb_to_idx(lsv)) { cerr << get_line() << ": error: part select [" @@ -1608,6 +1608,9 @@ NetExpr* PEUnary::elaborate_expr(Design*des, NetScope*scope, /* * $Log: elab_expr.cc,v $ + * Revision 1.122 2007/03/14 05:06:49 steve + * Replace some asserts with ivl_asserts. + * * Revision 1.121 2007/03/07 00:38:15 steve * Lint fixes. * diff --git a/elab_lval.cc b/elab_lval.cc index 0e28f2c9e..9abbfcc3b 100644 --- a/elab_lval.cc +++ b/elab_lval.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: elab_lval.cc,v 1.41 2007/03/05 05:59:10 steve Exp $" +#ident "$Id: elab_lval.cc,v 1.42 2007/03/14 05:06:49 steve Exp $" #endif # include "config.h" @@ -165,6 +165,15 @@ NetAssign_* PEIdent::elaborate_lval(Design*des, assert(reg); + // This is the special case that the l-value is an entire + // memory. This is, in fact, an error. + if (reg->array_dimensions() > 0 && idx_.size() == 0) { + cerr << get_line() << ": error: Cannot assign to array " + << path_ << ". Did you forget a word index?" << endl; + des->errors += 1; + return 0; + } + if (reg->array_dimensions() > 0) return elaborate_lval_net_word_(des, scope, reg); @@ -466,6 +475,9 @@ NetAssign_* PENumber::elaborate_lval(Design*des, NetScope*, bool) const /* * $Log: elab_lval.cc,v $ + * Revision 1.42 2007/03/14 05:06:49 steve + * Replace some asserts with ivl_asserts. + * * Revision 1.41 2007/03/05 05:59:10 steve * Handle processes within generate loops. *