diff --git a/kernel/register.h b/kernel/register.h index 25ea9f232..f4e2127e1 100644 --- a/kernel/register.h +++ b/kernel/register.h @@ -29,6 +29,7 @@ struct Pass { std::string pass_name, short_help; Pass(std::string name, std::string short_help = "** document me **"); + // Prefer overriding 'Pass::on_shutdown()' if possible virtual ~Pass(); virtual void help(); diff --git a/passes/cmds/design.cc b/passes/cmds/design.cc index efc72dfb7..a2ae45ef3 100644 --- a/passes/cmds/design.cc +++ b/passes/cmds/design.cc @@ -28,7 +28,7 @@ std::vector pushed_designs; struct DesignPass : public Pass { DesignPass() : Pass("design", "save, restore and reset current design") { } - ~DesignPass() override { + void on_shutdown() override { for (auto &it : saved_designs) delete it.second; saved_designs.clear();