diff --git a/compiler/psub.pas b/compiler/psub.pas index 396d03108c..f62c9006d0 100644 --- a/compiler/psub.pas +++ b/compiler/psub.pas @@ -1127,7 +1127,15 @@ implementation generate_parameter_info; if not(procdef.stack_tainting_parameter(calleeside)) and - not(has_assembler_child) {and (para_stack_size=0)} then + not(has_assembler_child) +{$ifdef m68k} + { parasize must be really zero, this means also that no result may be returned + in a parameter } + and not((current_procinfo.procdef.proccalloption in clearstack_pocalls) and + not(current_procinfo.procdef.generate_safecall_wrapper) and + paramanager.ret_in_param(current_procinfo.procdef.returndef,current_procinfo.procdef)) +{$endif m68k} + {and (para_stack_size=0)} then begin { Only need to set the framepointer } framepointer:=NR_STACK_POINTER_REG;