+ support for recording an exception catching personality function for a

procdef for ABI-conformant exception handling

git-svn-id: trunk@35162 -
This commit is contained in:
Jonas Maebe 2016-12-18 13:57:45 +00:00
parent 4b9179636b
commit 6e05c78a54

View File

@ -701,6 +701,7 @@ interface
procstarttai,
procendtai : tai;
skpara: pointer;
personality: tprocdef;
forwarddef,
interfacedef : boolean;
hasforward : boolean;
@ -734,6 +735,8 @@ interface
procedure Setprocendtai(AValue: tai);
function Getskpara: pointer;
procedure Setskpara(AValue: pointer);
function Getpersonality: tprocdef;
procedure Setpersonality(AValue: tprocdef);
function Getforwarddef: boolean;
procedure Setforwarddef(AValue: boolean);
function Getinterfacedef: boolean;
@ -846,6 +849,8 @@ interface
property procendtai: tai read Getprocendtai write Setprocendtai;
{ optional parameter for the synthetic routine generation logic }
property skpara: pointer read Getskpara write Setskpara;
{ ABI-conformant exception handling personality function }
property personality: tprocdef read Getpersonality write Setpersonality;
{ true, if the procedure is only declared
(forward procedure) }
property forwarddef: boolean read Getforwarddef write Setforwarddef;
@ -5331,6 +5336,22 @@ implementation
end;
function tprocdef.Getpersonality: tprocdef;
begin
if not assigned(implprocdefinfo) then
internalerror(2016121701);
result:=implprocdefinfo^.personality;
end;
procedure tprocdef.Setpersonality(AValue: tprocdef);
begin
if not assigned(implprocdefinfo) then
internalerror(2016121702);
implprocdefinfo^.personality:=AValue;
end;
function tprocdef.Getforwarddef: boolean;
begin
if not assigned(implprocdefinfo) then