diff --git a/parse.y b/parse.y index 77e0b6b3c..ccc43b4ad 100644 --- a/parse.y +++ b/parse.y @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: parse.y,v 1.146 2002/03/31 04:07:26 steve Exp $" +#ident "$Id: parse.y,v 1.147 2002/04/12 02:57:08 steve Exp $" #endif # include "config.h" @@ -208,13 +208,13 @@ block_item_decl { pform_set_net_range($3, $2, false); } | K_reg register_variable_list ';' - { delete $2; } + { pform_set_net_range($2, 0, false); + } | K_reg K_signed range register_variable_list ';' { pform_set_net_range($4, $3, true); } | K_reg K_signed register_variable_list ';' - { delete $3; - yyerror(@2, "sorry: signed reg not supported."); + { pform_set_net_range($3, 0, true); } | K_integer register_variable_list ';' { pform_set_reg_integer($2); diff --git a/pform.cc b/pform.cc index b2f96ac94..873c2a789 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) && !defined(macintosh) -#ident "$Id: pform.cc,v 1.90 2002/01/31 04:10:15 steve Exp $" +#ident "$Id: pform.cc,v 1.91 2002/04/12 02:57:08 steve Exp $" #endif # include "config.h" @@ -426,7 +426,7 @@ void pform_set_net_range(list*names, svector*range, bool signed_flag) { - assert(range->count() == 2); + assert((range == 0) || (range->count() == 2)); for (list::iterator cur = names->begin() ; cur != names->end() @@ -437,7 +437,8 @@ void pform_set_net_range(list*names, } delete names; - delete range; + if (range) + delete range; } /* @@ -785,8 +786,7 @@ void pform_makewire(const vlltype&li, net_decl_assign_t*next = first->next; pform_makewire(li, first->name, type); - if (range) - pform_set_net_range(first->name, range, false); + pform_set_net_range(first->name, range, false); hname_t name = hier_name(first->name); PWire*cur = pform_cur_module->get_wire(name); @@ -1179,6 +1179,9 @@ int pform_parse(const char*path, FILE*file) /* * $Log: pform.cc,v $ + * Revision 1.91 2002/04/12 02:57:08 steve + * Detect mismatches in reg as module items and ports. + * * Revision 1.90 2002/01/31 04:10:15 steve * Detect duplicate port declarations. *