From 60237c0100eed5b9d12199a24cc5762cc7b3e6aa Mon Sep 17 00:00:00 2001 From: steve Date: Sat, 12 Jun 1999 03:42:17 +0000 Subject: [PATCH] Assert state of bit range expressions. --- pform.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/pform.cc b/pform.cc index a060d2046..c09613371 100644 --- a/pform.cc +++ b/pform.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) -#ident "$Id: pform.cc,v 1.23 1999/06/06 20:45:39 steve Exp $" +#ident "$Id: pform.cc,v 1.24 1999/06/12 03:42:17 steve Exp $" #endif # include "compiler.h" @@ -440,6 +440,7 @@ void pform_set_reg_idx(const string&name, PExpr*l, PExpr*r) static void pform_set_net_range(const string&name, const svector*range) { + assert(range); assert(range->count() == 2); PWire*cur = cur_module->get_wire(name); @@ -452,18 +453,24 @@ static void pform_set_net_range(const string&name, const svector*range) cur->msb = (*range)[0]; cur->lsb = (*range)[1]; } else { + assert(cur->msb); + assert(cur->lsb); PExpr*msb = (*range)[0]; PExpr*lsb = (*range)[1]; + assert(msb); + assert(lsb); if (msb == 0) { VLerror(yylloc, "failed to parse msb of range."); } else if (lsb == 0) { VLerror(yylloc, "failed to parse lsb of range."); } else if (! (cur->msb->is_the_same(msb) && cur->lsb->is_the_same(lsb))) { - VLerror(yylloc, "net ranges are not identical."); + cerr << msb->get_line() << ": bit range mismatch" + " for " << name << ": [" << *msb << ":" << + *lsb << "] != [" << *cur->msb << ":" << + *cur->lsb << "]" << endl; + error_count += 1; } - //delete msb; - //delete lsb; } } @@ -582,6 +589,9 @@ int pform_parse(const char*path, map&modules, /* * $Log: pform.cc,v $ + * Revision 1.24 1999/06/12 03:42:17 steve + * Assert state of bit range expressions. + * * Revision 1.23 1999/06/06 20:45:39 steve * Add parse and elaboration of non-blocking assignments, * Replace list with an svector version,