summaryrefslogtreecommitdiff
path: root/compiler/ncgadd.pas
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2006-05-30 13:02:36 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2006-05-30 13:02:36 +0000
commit5e5c12b0d32d72d6a4e14af6446816bfcc7f5b8b (patch)
treebed8010a7299d5fbcd66dfb48f25bd2f74b34bd4 /compiler/ncgadd.pas
parentbf681d562ef1b4c043bbc7805136faffe99e723a (diff)
downloadfpc-5e5c12b0d32d72d6a4e14af6446816bfcc7f5b8b.tar.gz
* fixed support for macpas & and | operators: they only work on booleans
now, and always perform short circuit boolean evaluation (also in {$b+}) git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@3745 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ncgadd.pas')
-rw-r--r--compiler/ncgadd.pas3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/ncgadd.pas b/compiler/ncgadd.pas
index 8611b7d934..e17947df83 100644
--- a/compiler/ncgadd.pas
+++ b/compiler/ncgadd.pas
@@ -379,7 +379,8 @@ interface
{ And,Or will only evaluate from left to right only the
needed nodes unless full boolean evaluation is enabled }
if (nodetype in [orn,andn]) and
- not(cs_full_boolean_eval in aktlocalswitches) then
+ (not(cs_full_boolean_eval in aktlocalswitches) or
+ (nf_short_bool in flags)) then
begin
location_reset(location,LOC_JUMP,OS_NO);
case nodetype of