diff --git a/SMPFunction.cpp b/SMPFunction.cpp index d6f3dd90dfb324d9720dbc2816251e9bc1bea6ba..2b01fd20c836ee3daaf13b7278c464e7f7d64478 100644 --- a/SMPFunction.cpp +++ b/SMPFunction.cpp @@ -1311,6 +1311,10 @@ bool SMPFunction::AnalyzeStackPointerDeltas(void) { (unsigned long) InstAddr); break; } + else if (CurrInst->MDIsLeaveInstr()) { + // LEAVE is a restoration of a stack pointer, not processed by CurrInst->MDIsStackPtrSaveOrRestore() + StackPointerRestoreSeen = true; + } // Update VarKill and DownExposedDefs sets for DEFs in current instruction. // Dataflow equation for killed variables: If a variable is defined in any