diff --git a/parse.y b/parse.y index 3ab049f4f..04c03a647 100644 --- a/parse.y +++ b/parse.y @@ -1660,7 +1660,7 @@ loop_statement /* IEEE1800-2005: A.6.8 */ decl_assignment_t*tmp_assign = new decl_assignment_t; tmp_assign->name = lex_strings.make($4); assign_list.push_back(tmp_assign); - pform_makewire(@4, 0, str_strength, &assign_list, NetNet::REG, $3); + pform_make_var(@4, &assign_list, $3); } statement_or_null { pform_name_t tmp_hident; diff --git a/pform.cc b/pform.cc index 560ec7a83..cd9e7dbb5 100644 --- a/pform.cc +++ b/pform.cc @@ -989,11 +989,18 @@ PCallTask* pform_make_call_task(const struct vlltype&loc, return tmp; } -void pform_make_foreach_declarations(const struct vlltype&loc, - std::list*loop_vars) +void pform_make_var(const struct vlltype&loc, + std::list*assign_list, + data_type_t*data_type, std::list*attr) { static const struct str_pair_t str = { IVL_DR_STRONG, IVL_DR_STRONG }; + pform_makewire(loc, 0, str, assign_list, NetNet::REG, data_type, attr); +} + +void pform_make_foreach_declarations(const struct vlltype&loc, + std::list*loop_vars) +{ listassign_list; for (list::const_iterator cur = loop_vars->begin() ; cur != loop_vars->end() ; ++ cur) { @@ -1002,7 +1009,7 @@ void pform_make_foreach_declarations(const struct vlltype&loc, assign_list.push_back(tmp_assign); } - pform_makewire(loc, 0, str, &assign_list, NetNet::REG, &size_type); + pform_make_var(loc, &assign_list, &size_type); } PForeach* pform_make_foreach(const struct vlltype&loc, diff --git a/pform.h b/pform.h index 5433f4762..87720ca63 100644 --- a/pform.h +++ b/pform.h @@ -363,6 +363,11 @@ extern void pform_makewire(const struct vlltype&li, data_type_t*data_type, std::list*attr = 0); +extern void pform_make_var(const struct vlltype&loc, + std::list*assign_list, + data_type_t*data_type, + std::list*attr = 0); + extern void pform_make_var_init(const struct vlltype&li, perm_string name, PExpr*expr);