|
@@ -249,14 +249,16 @@ implementation
|
|
(size.typ=classrefdef) then
|
|
(size.typ=classrefdef) then
|
|
size:=voidpointertype;
|
|
size:=voidpointertype;
|
|
|
|
|
|
- { procvars follow the default code pointer size for the current memory model }
|
|
|
|
if size.typ=procvardef then
|
|
if size.typ=procvardef then
|
|
if ((po_methodpointer in tprocvardef(size).procoptions) or
|
|
if ((po_methodpointer in tprocvardef(size).procoptions) or
|
|
is_nested_pd(tprocvardef(size))) and
|
|
is_nested_pd(tprocvardef(size))) and
|
|
not(po_addressonly in tprocvardef(size).procoptions) then
|
|
not(po_addressonly in tprocvardef(size).procoptions) then
|
|
internalerror(2015120101)
|
|
internalerror(2015120101)
|
|
else
|
|
else
|
|
- size:=voidcodepointertype;
|
|
|
|
|
|
+ if is_proc_far(tabstractprocdef(size)) then
|
|
|
|
+ size:=voidfarpointertype
|
|
|
|
+ else
|
|
|
|
+ size:=voidnearpointertype;
|
|
|
|
|
|
if is_farpointer(size) or is_hugepointer(size) then
|
|
if is_farpointer(size) or is_hugepointer(size) then
|
|
Result:=cg.getintregister(list,OS_32)
|
|
Result:=cg.getintregister(list,OS_32)
|