mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-05 23:50:23 +02:00
* Partially reverted r26192, preserving registers in presence of exceptions needs a different solution.
git-svn-id: trunk@26210 -
This commit is contained in:
parent
a5ea0d2b4c
commit
0e0273d53f
@ -1466,24 +1466,13 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function has_exceptions(var n: tnode; arg: pointer): foreachnoderesult;
|
||||
begin
|
||||
if (n.nodetype in [tryfinallyn,tryexceptn]) then
|
||||
result:=fen_norecurse_true
|
||||
else
|
||||
result:=fen_false;
|
||||
end;
|
||||
|
||||
|
||||
function tfornode.wrap_to_value:tnode;
|
||||
var
|
||||
statements: tstatementnode;
|
||||
temp: ttempcreatenode;
|
||||
allowreg: boolean;
|
||||
begin
|
||||
allowreg:=not foreachnodestatic(t2,@has_exceptions,nil);
|
||||
result:=internalstatements(statements);
|
||||
temp:=ctempcreatenode.create(t1.resultdef,t1.resultdef.size,tt_persistent,allowreg);
|
||||
temp:=ctempcreatenode.create(t1.resultdef,t1.resultdef.size,tt_persistent,true);
|
||||
addstatement(statements,temp);
|
||||
addstatement(statements,cassignmentnode.create(
|
||||
ctemprefnode.create(temp),
|
||||
|
Loading…
Reference in New Issue
Block a user