Bladeren bron

* create_for_in_loop: explicitely convert "for ... in [] do" to a nothing-node including an unreachable code warning (avoids code conversions that are for naught anyway)

git-svn-id: trunk@36096 -
svenbarth 8 jaren geleden
bovenliggende
commit
a8b1d340c7
1 gewijzigde bestanden met toevoegingen van 8 en 0 verwijderingen
  1. 8 0
      compiler/nflw.pas

+ 8 - 0
compiler/nflw.pas

@@ -872,6 +872,14 @@ implementation
                     hloopbody.free;
                   end;
               end
+            { "for x in [] do ..." always results in a never executed loop body }
+            else if (is_array_constructor(expr.resultdef) and
+                (tarraydef(expr.resultdef).elementdef=voidtype)) then
+              begin
+                if assigned(hloopbody) then
+                  MessagePos(hloopbody.fileinfo,cg_w_unreachable_code);
+                result:=cnothingnode.create;
+              end
             else
               begin
                 // search for operator first