diff --git a/compiler/psub.pas b/compiler/psub.pas index 9ca539793f..596fbc5fcc 100644 --- a/compiler/psub.pas +++ b/compiler/psub.pas @@ -972,7 +972,7 @@ implementation exception below) - no exceptions are used - no pushes are used/esp modifications, could be: - * outgoing parameters on the stack + * outgoing parameters on the stack on non-fixed stack target * incoming parameters on the stack * open arrays - no inline assembler @@ -997,8 +997,9 @@ implementation not(cs_generate_stackframes in current_settings.localswitches) and not(cs_profile in current_settings.moduleswitches) and not(po_assembler in procdef.procoptions) and + not ((pi_has_stackparameter in flags) and (not paramanager.use_fixed_stack)) and ((flags*([pi_has_assembler_block,pi_is_assembler, - pi_has_stackparameter,pi_needs_stackframe]+ + pi_needs_stackframe]+ exception_flags[(target_info.cpu=cpu_i386) {$ifndef DISABLE_WIN64_SEH} or (target_info.system=system_x86_64_win64)