diff --git a/compiler/ncgcal.pas b/compiler/ncgcal.pas index 053e80358b..62b2c8f363 100644 --- a/compiler/ncgcal.pas +++ b/compiler/ncgcal.pas @@ -1207,7 +1207,9 @@ implementation pop_parasize which uses pushedparasize to determine this This does not apply to interrupt procedures, their ret statment never clears any stack parameters } - else if paramanager.use_fixed_stack and not(po_interrupt in procdefinition.procoptions) then + else if paramanager.use_fixed_stack and + not(po_interrupt in procdefinition.procoptions) and + (target_info.abi=abi_linux386_sysv) then begin { however, a delphi style frame pointer for a nested subroutine is not cleared by the callee, so we have to compensate for this