Explorar o código

* improved last commit, better handling of boolean expressions

git-svn-id: trunk@48885 -
florian %!s(int64=4) %!d(string=hai) anos
pai
achega
f448603970
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  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)