* fixed (harmless) typecast errors when creating a string representation of

a procvardef
  * handle procdefs like procvardefs when getting their string representation
    in arbitrary expressions

git-svn-id: branches/hlcgllvm@28123 -
This commit is contained in:
Jonas Maebe 2014-07-01 16:30:55 +00:00
parent 0c10cbe63b
commit a0c39220b1

View File

@ -369,18 +369,20 @@ implementation
encodedstr:=encodedstr+']';
end;
end;
procdef,
procvardef :
begin
if tprocvardef(def).is_addressonly then
if (def.typ=procdef) or
tprocvardef(def).is_addressonly then
begin
llvmaddencodedproctype(tprocdef(def),'',lpd_procvar,encodedstr);
llvmaddencodedproctype(tabstractprocdef(def),'',lpd_procvar,encodedstr);
encodedstr:=encodedstr+'*';
end
else
begin
encodedstr:=encodedstr+'{';
{ code pointer }
llvmaddencodedproctype(tprocvardef(def),'',lpd_procvar,encodedstr);
llvmaddencodedproctype(tabstractprocdef(def),'',lpd_procvar,encodedstr);
{ data pointer (maybe todo: generate actual layout if
available) }
encodedstr:=encodedstr+'*, i8*}';
@ -415,11 +417,6 @@ implementation
undefineddef,
errordef :
internalerror(2013100604);
procdef :
begin
{ should be handled via llvmencodeproctype/llvmaddencodedproctype }
internalerror(2014012601);
end;
else
internalerror(2013100603);
end;