From 1bffc649cbe64d6cd5202beadb9c0f0bf59bf951 Mon Sep 17 00:00:00 2001 From: Cary R Date: Thu, 7 Jan 2021 23:53:11 -0800 Subject: [PATCH] Fix some cleanup code in the compiler --- elaborate.cc | 5 ++++- main.cc | 9 ++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/elaborate.cc b/elaborate.cc index 2eb0161e1..c8c769067 100644 --- a/elaborate.cc +++ b/elaborate.cc @@ -2658,7 +2658,10 @@ NetProc* PAssign::elaborate(Design*des, NetScope*scope) const rv = elaborate_rval_(des, scope, lv_net_type, lv->expr_type(), count_lval_width(lv)); } - if (rv == 0) return 0; + if (rv == 0) { + delete lv; + return 0; + } assert(rv); if (count_) assert(event_); diff --git a/main.cc b/main.cc index 7da46989a..8cdd571df 100644 --- a/main.cc +++ b/main.cc @@ -1317,10 +1317,14 @@ int main(int argc, char*argv[]) cerr << "error: Code generation had " << emit_rc << " error(s)." << endl; + delete des; + EOC_cleanup(); return 1; } if (emit_rc < 0) { cerr << "error: Code generator failure: " << emit_rc << endl; + delete des; + EOC_cleanup(); return -1; } assert(emit_rc); @@ -1362,7 +1366,10 @@ int main(int argc, char*argv[]) cerr << "***" << endl; } - return des? des->errors : 1; + int rtn = des? des->errors : 1; + delete des; + EOC_cleanup(); + return rtn; } static void find_module_mention(map&check_map, Module*mod)