diff --git a/compiler/symdef.pas b/compiler/symdef.pas index 892fc1dffd..d4cf10accb 100644 --- a/compiler/symdef.pas +++ b/compiler/symdef.pas @@ -5389,13 +5389,22 @@ implementation function tprocvardef.size : asizeint; + var + far_code_extra_bytes: integer = 0; + far_data_extra_bytes: integer = 0; begin +{$ifdef i8086} + if po_far in procoptions then + far_code_extra_bytes:=2; + if current_settings.x86memorymodel in x86_far_data_models then + far_data_extra_bytes:=2; +{$endif i8086} if ((po_methodpointer in procoptions) or is_nested_pd(self)) and not(po_addressonly in procoptions) then - size:=2*sizeof(pint) + size:=2*sizeof(pint)+far_code_extra_bytes+far_data_extra_bytes else - size:=sizeof(pint); + size:=sizeof(pint)+far_code_extra_bytes; end;