From 49312baab1ec7b8ed63f0d172e4adabf542a0111 Mon Sep 17 00:00:00 2001 From: florian Date: Tue, 19 May 2020 20:34:41 +0000 Subject: * exceptions are side effects which must be considered in boolean expressions git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45441 3ad0048d-3df7-0310-abae-a5850022a9f2 --- compiler/ncgutil.pas | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'compiler/ncgutil.pas') diff --git a/compiler/ncgutil.pas b/compiler/ncgutil.pas index 85f0eb4b96..e0eafd8af7 100644 --- a/compiler/ncgutil.pas +++ b/compiler/ncgutil.pas @@ -107,7 +107,7 @@ implementation defutil, procinfo,paramgr, dbgbase, - nbas,ncon,nld,nmem,nutils, + nadd,nbas,ncon,nld,nmem,nutils, tgobj,cgobj,hlcgobj,hlcgcpu {$ifdef powerpc} , cpupi @@ -192,7 +192,8 @@ implementation { always calculate boolean AND and OR from left to right } if (p.nodetype in [orn,andn]) and is_boolean(p.left.resultdef) and - (might_have_sideeffects(p.left) or might_have_sideeffects(p.right)) then + (might_have_sideeffects(p.left,[mhs_exceptions]) or might_have_sideeffects(p.right,[mhs_exceptions]) or + (nf_short_bool in taddnode(p).flags)) then begin if nf_swapped in p.flags then internalerror(200709253); -- cgit v1.2.1