diff --git a/compiler/i8086/hlcgcpu.pas b/compiler/i8086/hlcgcpu.pas index 238fc44c51..1124384c31 100644 --- a/compiler/i8086/hlcgcpu.pas +++ b/compiler/i8086/hlcgcpu.pas @@ -249,14 +249,16 @@ implementation (size.typ=classrefdef) then size:=voidpointertype; - { procvars follow the default code pointer size for the current memory model } if size.typ=procvardef then if ((po_methodpointer in tprocvardef(size).procoptions) or is_nested_pd(tprocvardef(size))) and not(po_addressonly in tprocvardef(size).procoptions) then internalerror(2015120101) else - size:=voidcodepointertype; + if is_proc_far(tabstractprocdef(size)) then + size:=voidfarpointertype + else + size:=voidnearpointertype; if is_farpointer(size) or is_hugepointer(size) then Result:=cg.getintregister(list,OS_32)