* write_paralocs() takes a pcgpara instead of a tparavarsym as this is needed for the result location as well

git-svn-id: trunk@35287 -
This commit is contained in:
svenbarth 2017-01-13 16:20:30 +00:00
parent f905303c4a
commit cf18b7116e

View File

@ -28,7 +28,8 @@ interface
uses
cclasses,constexp,
aasmbase,aasmcnst,
symbase,symconst,symtype,symdef,symsym;
symbase,symconst,symtype,symdef,symsym,
parabase;
type
@ -60,7 +61,7 @@ interface
procedure write_header(tcb: ttai_typedconstbuilder; def: tdef; typekind: byte);
function write_methodkind(tcb:ttai_typedconstbuilder;def:tabstractprocdef):byte;
procedure write_callconv(tcb:ttai_typedconstbuilder;def:tabstractprocdef);
procedure write_paralocs(tcb:ttai_typedconstbuilder;parasym:tparavarsym);
procedure write_paralocs(tcb:ttai_typedconstbuilder;para:pcgpara);
procedure write_param_flag(tcb:ttai_typedconstbuilder;parasym:tparavarsym);
public
constructor create;
@ -86,7 +87,7 @@ implementation
symtable,
aasmtai,aasmdata,
defutil,
parabase,paramgr,
paramgr,
wpobase
;
@ -247,12 +248,12 @@ implementation
end;
procedure TRTTIWriter.write_paralocs(tcb:ttai_typedconstbuilder;parasym:tparavarsym);
procedure TRTTIWriter.write_paralocs(tcb:ttai_typedconstbuilder;para:pcgpara);
var
locs : trttiparalocs;
i : longint;
begin
locs:=paramanager.cgparalocs_to_rttiparalocs(parasym.paraloc[callerside].location);
locs:=paramanager.cgparalocs_to_rttiparalocs(para^.location);
if length(locs)>high(byte) then
internalerror(2017010601);
tcb.emit_ord_const(length(locs),u8inttype);