aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--frontends/verilog/verilog_frontend.cc4
-rw-r--r--frontends/verilog/verilog_parser.y1
2 files changed, 5 insertions, 0 deletions
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: