diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2006-05-30 13:02:36 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2006-05-30 13:02:36 +0000 |
commit | 5e5c12b0d32d72d6a4e14af6446816bfcc7f5b8b (patch) | |
tree | bed8010a7299d5fbcd66dfb48f25bd2f74b34bd4 /compiler/ncgadd.pas | |
parent | bf681d562ef1b4c043bbc7805136faffe99e723a (diff) | |
download | fpc-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.pas | 3 |
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 |