mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 11:09:19 +02:00
* support subscripting record function results on ABI's that return
(some) records in registers (+ internalerror if unsupported record location). Fixes "make all" in top dir on darwin/x86. git-svn-id: trunk@2973 -
This commit is contained in:
parent
155df8d326
commit
2e41b63710
@ -302,7 +302,22 @@ implementation
|
|||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
location_copy(location,left.location);
|
begin
|
||||||
|
location_copy(location,left.location);
|
||||||
|
{ some abi's require that functions return (some) records in }
|
||||||
|
{ registers }
|
||||||
|
case location.loc of
|
||||||
|
LOC_REGISTER:
|
||||||
|
location_force_mem(current_asmdata.CurrAsmList,location);
|
||||||
|
LOC_REFERENCE,
|
||||||
|
LOC_CREFERENCE:
|
||||||
|
;
|
||||||
|
{ record regvars are not supported yet
|
||||||
|
LOC_CREGISTER: }
|
||||||
|
else
|
||||||
|
internalerror(2006031901);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
inc(location.reference.offset,vs.fieldoffset);
|
inc(location.reference.offset,vs.fieldoffset);
|
||||||
{ also update the size of the location }
|
{ also update the size of the location }
|
||||||
|
Loading…
Reference in New Issue
Block a user