Explorar el Código

* boolean or/and nodes might be swapped when they have no side effect, in case
of short boolean evaluation, firstcomplex is not called so this does not
hurt short boolean evaluation

git-svn-id: trunk@45403 -

florian hace 5 años
padre
commit
fcf2cd2bea
Se han modificado 1 ficheros con 2 adiciones y 1 borrados
  1. 2 1
      compiler/ncgutil.pas

+ 2 - 1
compiler/ncgutil.pas

@@ -191,7 +191,8 @@ implementation
       begin
          { always calculate boolean AND and OR from left to right }
          if (p.nodetype in [orn,andn]) and
-            is_boolean(p.left.resultdef) then
+            is_boolean(p.left.resultdef) and
+            (might_have_sideeffects(p.left) or might_have_sideeffects(p.right)) then
            begin
              if nf_swapped in p.flags then
                internalerror(200709253);