From 55ee17bf9e598bd159de643e878af59425d59922 Mon Sep 17 00:00:00 2001
From: clc5q <clc5q@git.zephyr-software.com>
Date: Thu, 6 Aug 2015 21:40:31 +0000
Subject: [PATCH] Perform Live Variable Analysis on functions with shared
 chunks.

Former-commit-id: 45ace968d4ff4fc2b5d0470261345677b08e9f6d
---
 src/base/SMPFunction.cpp                | 4 ++--
 src/interfaces/idapro/STARSFunction.cpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/base/SMPFunction.cpp b/src/base/SMPFunction.cpp
index fa641c17..b43cd7f2 100644
--- a/src/base/SMPFunction.cpp
+++ b/src/base/SMPFunction.cpp
@@ -2091,7 +2091,7 @@ bool SMPFunction::MDFixFrameInfo(void) {
 				}
 				break; // exit after stack deallocation of any kind
 			}
-			else { // success
+			else { // success; normal allocation
 				int AllocSize = (int) (0 - CurrentDelta);
 				if (FoundAllocInstr)
 					this->AllocSizeAfterFrameAlloc += AllocSize;
@@ -3934,7 +3934,7 @@ void SMPFunction::AdvancedAnalysis(void) {
 	this->TempReachingDefs.clear();
 
 	if (this->StackPtrAnalysisSucceeded() && this->HasGoodRTLs() 
-		&& (!this->HasUnresolvedIndirectJumps()) && (!this->HasSharedChunks())) {
+		&& (!this->HasUnresolvedIndirectJumps())) {
 		this->LiveVariableAnalysis(false);
 	}
 
diff --git a/src/interfaces/idapro/STARSFunction.cpp b/src/interfaces/idapro/STARSFunction.cpp
index e23ee9ff..da2e34ec 100644
--- a/src/interfaces/idapro/STARSFunction.cpp
+++ b/src/interfaces/idapro/STARSFunction.cpp
@@ -69,7 +69,7 @@ void STARS_IDA_Function_t::MarkSharedChunks(void) {
 		}
 		else { // a tail chunk
 			if (this->IsChunkUnshared(CurrChunk.startEA, FirstEA, FuncHeadLastAddr)) {
-//                                this->UnsharedChunks = true;
+				this->UnsharedChunks = true;
 //                                SMP_msg("INFO: Interface Found unshared tail chunk for %s at %lx\n",
 //                                        name, (unsigned long) CurrChunk.startEA);
 			}
-- 
GitLab