From 99cb22fce097b06fed76f5257829ca577e948e9a Mon Sep 17 00:00:00 2001 From: Cary R Date: Wed, 30 Dec 2020 15:21:33 -0800 Subject: [PATCH] Add the file/line info to the enum type --- elab_expr.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/elab_expr.cc b/elab_expr.cc index ba3b68812..55809e1cd 100644 --- a/elab_expr.cc +++ b/elab_expr.cc @@ -1884,7 +1884,9 @@ static NetExpr* check_for_enum_methods(const LineInfo*li, // value is "string" type. sys_expr = new NetESFunc("$ivl_enum_method$name", &netstring_t::type_string, 2); - sys_expr->parm(0, new NetENetenum(netenum)); + NetENetenum* def = new NetENetenum(netenum); + def->set_line(*li); + sys_expr->parm(0, def); sys_expr->parm(1, expr); } else if (method_name == "next") { @@ -1897,7 +1899,9 @@ static NetExpr* check_for_enum_methods(const LineInfo*li, } sys_expr = new NetESFunc("$ivl_enum_method$next", netenum, 2 + (args != 0)); - sys_expr->parm(0, new NetENetenum(netenum)); + NetENetenum* def = new NetENetenum(netenum); + def->set_line(*li); + sys_expr->parm(0, def); sys_expr->parm(1, expr); if (args != 0) sys_expr->parm(2, count); @@ -1911,7 +1915,9 @@ static NetExpr* check_for_enum_methods(const LineInfo*li, } sys_expr = new NetESFunc("$ivl_enum_method$prev", netenum, 2 + (args != 0)); - sys_expr->parm(0, new NetENetenum(netenum)); + NetENetenum* def = new NetENetenum(netenum); + def->set_line(*li); + sys_expr->parm(0, def); sys_expr->parm(1, expr); if (args != 0) sys_expr->parm(2, count); @@ -2501,6 +2507,7 @@ NetExpr* PECallFunction::elaborate_expr(Design*des, NetScope*scope, NetExpr* PECallFunction::elaborate_expr(Design*des, NetScope*scope, ivl_type_t type, unsigned flags) const { +//cerr << "HERE: " << scope->basename() << ", " << *type << endl; const netdarray_t*darray = dynamic_cast(type); assert(darray); return elaborate_expr(des, scope, darray->element_type()->packed_width(), flags);