From b2d5c305bb6d4b2512171bd7601a31cb632f88a7 Mon Sep 17 00:00:00 2001 From: clc5q <clc5q@git.zephyr-software.com> Date: Wed, 23 Aug 2017 21:23:23 +0000 Subject: [PATCH] Fix double free in Reduced mode. Former-commit-id: f94101f9f43c0609a773dd54bf9c8570932f75fe --- src/base/SMPFunction.cpp | 2 ++ src/base/SMPInstr.cpp | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/base/SMPFunction.cpp b/src/base/SMPFunction.cpp index ae0860c6..fc373ec5 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 f9493eeb..e93ab8de 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; } -- GitLab