mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-02 14:39:32 +01:00
* handle records with size 0 as function results correctly
git-svn-id: trunk@26303 -
This commit is contained in:
parent
561ec1f782
commit
de3a116a28
@ -714,16 +714,25 @@ unit cpupara;
|
||||
begin
|
||||
paraloc^.loc:=LOC_REGISTER;
|
||||
paraloc^.register:=NR_FUNCTION_RETURN_REG;
|
||||
if (result.intsize<>3) then
|
||||
begin
|
||||
paraloc^.size:=retcgsize;
|
||||
paraloc^.def:=result.def;
|
||||
end
|
||||
else
|
||||
begin
|
||||
paraloc^.size:=OS_32;
|
||||
paraloc^.def:=u32inttype;
|
||||
end;
|
||||
case result.IntSize of
|
||||
0:
|
||||
begin
|
||||
paraloc^.loc:=LOC_VOID;
|
||||
paraloc^.register:=NR_NO;
|
||||
paraloc^.size:=OS_NO;
|
||||
paraloc^.def:=voidpointertype;
|
||||
end;
|
||||
3:
|
||||
begin
|
||||
paraloc^.size:=OS_32;
|
||||
paraloc^.def:=u32inttype;
|
||||
end;
|
||||
else
|
||||
begin
|
||||
paraloc^.size:=retcgsize;
|
||||
paraloc^.def:=result.def;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user