diff --git a/compiler/ncgutil.pas b/compiler/ncgutil.pas index ac544bf1b2..b4d0063c24 100644 --- a/compiler/ncgutil.pas +++ b/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);