From 69a5f5230c9d875e5ba4a2e5abecb9f95a2fb4bb Mon Sep 17 00:00:00 2001 From: sandeep Date: Thu, 18 May 2000 14:21:19 +0000 Subject: [PATCH] fixed (!(!(expr))) bug git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@250 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/SDCCast.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/SDCCast.c b/src/SDCCast.c index dc3a36e8..89cdcdab 100644 --- a/src/SDCCast.c +++ b/src/SDCCast.c @@ -2793,14 +2793,20 @@ ast *backPatchLabels (ast *tree, symbol *trueLabel, symbol *falseLabel ) /* change not */ if (IS_NOT(tree)) { + int wasnot = IS_NOT(tree->left); tree->left = backPatchLabels (tree->left,falseLabel,trueLabel); /* if the left is already a IFX */ if ( ! IS_IFX(tree->left) ) tree->left = newNode (IFX,tree->left,NULL); - tree->left->trueLabel = falseLabel ; - tree->left->falseLabel= trueLabel ; + if (wasnot) { + tree->left->trueLabel = trueLabel ; + tree->left->falseLabel= falseLabel ; + } else { + tree->left->trueLabel = falseLabel ; + tree->left->falseLabel= trueLabel ; + } return tree->left ; } -- 2.47.2