Browse Source

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

git-svn-id: trunk@26210 -
sergei 11 years ago
parent
commit
0e0273d53f
1 changed files with 1 additions and 12 deletions
  1. 1 12
      compiler/nflw.pas

+ 1 - 12
compiler/nflw.pas

@@ -1466,24 +1466,13 @@ implementation
       end;
       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;
     function tfornode.wrap_to_value:tnode;
       var
       var
         statements: tstatementnode;
         statements: tstatementnode;
         temp: ttempcreatenode;
         temp: ttempcreatenode;
-        allowreg: boolean;
       begin
       begin
-        allowreg:=not foreachnodestatic(t2,@has_exceptions,nil);
         result:=internalstatements(statements);
         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,temp);
         addstatement(statements,cassignmentnode.create(
         addstatement(statements,cassignmentnode.create(
           ctemprefnode.create(temp),
           ctemprefnode.create(temp),