From: sandeep Date: Thu, 18 May 2000 14:21:19 +0000 (+0000) Subject: fixed (!(!(expr))) bug X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=69a5f5230c9d875e5ba4a2e5abecb9f95a2fb4bb;p=fw%2Fsdcc fixed (!(!(expr))) bug git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@250 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- 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 ; }