瀏覽代碼

* 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 5 年之前
父節點
當前提交
fcf2cd2bea
共有 1 個文件被更改,包括 2 次插入1 次删除
  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);