|
@@ -189,7 +189,8 @@ implementation
|
|
stringdef :
|
|
stringdef :
|
|
result:=(tstringdef(def).stringtype in [st_shortstring,st_longstring]);
|
|
result:=(tstringdef(def).stringtype in [st_shortstring,st_longstring]);
|
|
procvardef :
|
|
procvardef :
|
|
- result:=not tprocvardef(def).is_addressonly;
|
|
|
|
|
|
+ { If we always push records by value, we have to handle methodpointers that way too. }
|
|
|
|
+ result:=false; {not tprocvardef(def).is_addressonly;}
|
|
setdef :
|
|
setdef :
|
|
result:=not(is_smallset(def));
|
|
result:=not(is_smallset(def));
|
|
end;
|
|
end;
|
|
@@ -346,6 +347,7 @@ implementation
|
|
alignment := 8
|
|
alignment := 8
|
|
else
|
|
else
|
|
alignment := 4;
|
|
alignment := 4;
|
|
|
|
+ //writeln('para: ',hp.Name,' typ=',hp.vardef.typ,' paracgsize=',paracgsize,' align=',hp.vardef.alignment);
|
|
hp.paraloc[side].reset;
|
|
hp.paraloc[side].reset;
|
|
hp.paraloc[side].Alignment:=alignment;
|
|
hp.paraloc[side].Alignment:=alignment;
|
|
if paracgsize=OS_NO then
|
|
if paracgsize=OS_NO then
|