From: Peter Date: Tue, 3 Mar 2020 19:30:54 +0000 (+0000) Subject: Clear pkg_user_types if no packages following a 'design -reset-vlog'. X-Git-Tag: working-ls180~731^2~2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0aaa36ca6d4a95771ef26a515b64031c4d43be11;p=yosys.git Clear pkg_user_types if no packages following a 'design -reset-vlog'. --- diff --git a/frontends/verilog/verilog_frontend.cc b/frontends/verilog/verilog_frontend.cc index de05d29a7..61db0a176 100644 --- a/frontends/verilog/verilog_frontend.cc +++ b/frontends/verilog/verilog_frontend.cc @@ -465,6 +465,10 @@ struct VerilogFrontend : public Frontend { log("-- Verilog code after preprocessor --\n%s-- END OF DUMP --\n", code_after_preproc.c_str()); lexin = new std::istringstream(code_after_preproc); } + if (design->verilog_packages.empty()) { + // might be because of a `design -reset-vlog` command + pkg_user_types.clear(); + } frontend_verilog_yyset_lineno(1); frontend_verilog_yyrestart(NULL); diff --git a/frontends/verilog/verilog_parser.y b/frontends/verilog/verilog_parser.y index 690dfdb6e..f7e3afd13 100644 --- a/frontends/verilog/verilog_parser.y +++ b/frontends/verilog/verilog_parser.y @@ -522,6 +522,7 @@ interface: ast_stack.pop_back(); log_assert(ast_stack.size() == 1); current_ast_mod = NULL; + user_types.clear(); }; interface_body: