diff --git a/src/base/SMPFunction.cpp b/src/base/SMPFunction.cpp index ae0860c609180b636511a3e75ca76c8923d58f39..fc373ec58d6f5ab955f47879aab950c8f2b89b02 100644 --- a/src/base/SMPFunction.cpp +++ b/src/base/SMPFunction.cpp @@ -14133,6 +14133,8 @@ void SMPFunction::EmitAnnotations(FILE *AnnotFile, FILE *InfoAnnotFile) { if (NULL != CurrBlock) delete CurrBlock; } + this->Instrs.clear(); + this->Blocks.clear(); return; } // end if reduced analysis diff --git a/src/base/SMPInstr.cpp b/src/base/SMPInstr.cpp index f9493eeb4cca5d96f9a2698650c1cca28ac48425..e93ab8def1b7b7d2a019fffb59887fae047830da 100644 --- a/src/base/SMPInstr.cpp +++ b/src/base/SMPInstr.cpp @@ -4399,8 +4399,10 @@ SMPInstr::SMPInstr(STARS_ea_t addr) : STARS_ID(addr) { // Destructor. SMPInstr::~SMPInstr() { - this->Defs.clear(); - this->Uses.clear(); + if (global_STARS_program->ShouldSTARSPerformFullAnalysis()) { // not already deleted + this->Defs.clear(); + this->Uses.clear(); + } return; }