* fixed function return location for small records on darwin/i386 and

iphonesim/i386 when not using cdecl/cppdecl/mwpascal calling conventions

git-svn-id: trunk@22350 -
This commit is contained in:
Jonas Maebe 2012-09-06 21:41:42 +00:00
parent f2e1ec2771
commit 95c69f1f9e

View File

@ -127,24 +127,27 @@ unit cpupara;
system_i386_darwin,
system_i386_iphonesim :
begin
case def.typ of
recorddef :
begin
size := def.size;
if (size > 0) and
(size <= 8) and
{ only if size is a power of 2 }
((size and (size-1)) = 0) then
if calloption in cdecl_pocalls then
begin
case def.typ of
recorddef :
begin
result := false;
size:=def.size;
if (size>0) and
(size<=8) and
{ only if size is a power of 2 }
((size and (size-1)) = 0) then
begin
result:=false;
exit;
end;
end;
procvardef:
begin
result:=false;
exit;
end;
end;
procvardef:
begin
result:=false;
exit;
end;
end;
end;
end;