瀏覽代碼

* improved last commit, better handling of boolean expressions

git-svn-id: trunk@48885 -
florian 4 年之前
父節點
當前提交
f448603970
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      compiler/nadd.pas

+ 1 - 1
compiler/nadd.pas

@@ -1715,7 +1715,7 @@ implementation
              (left.resultdef.typ=orddef) and
              (left.nodetype=andn) and
              (right.nodetype=andn) and
-             not(is_boolean(resultdef) or (cs_full_boolean_eval in current_settings.localswitches)) and
+             not(is_boolean(resultdef) or not(might_have_sideeffects(self,[mhs_exceptions])) or not(doshortbooleval(self))) and
              { this test is not needed but it speeds up the test and allows to bail out early }
              ((taddnode(left).left.nodetype=notn) or (taddnode(left).right.nodetype=notn) or
               (taddnode(right).left.nodetype=notn) or (taddnode(right).right.nodetype=notn)