* Partially reverted r26192, preserving registers in presence of exceptions needs a different solution.

git-svn-id: trunk@26210 -
This commit is contained in:
sergei 2013-12-10 12:43:24 +00:00
parent a5ea0d2b4c
commit 0e0273d53f

View File

@ -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),