* src/SDCCast.c (decorateType): fixed bug #898889, cast result of a literal complemen...
authorbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 11 Apr 2004 23:01:36 +0000 (23:01 +0000)
committerbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 11 Apr 2004 23:01:36 +0000 (23:01 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3285 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCast.c

index 73102d6405c859ad1350b4f76e08afd7b7260dfe..1961f6f3726dd9cb5449857a6fb73df40e700051 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
+
+       * src/SDCCast.c (decorateType): fixed bug #898889,
+       cast result of a literal complement too
+
 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
 
        * src/SDCCicode.c (geniCodeLogic): made it static,
index d32cace449739efcb32523d69973029ba01a5ca3..f44ae1cc744590b239bde7a01f464f7c1e3c8462 100644 (file)
@@ -3326,13 +3326,13 @@ decorateType (ast * tree, RESULT_TYPE resultType)
 
       /* if left is a literal then do it */
       if (IS_LITERAL (LTYPE (tree)))
-       {
-         tree->type = EX_VALUE;
-         tree->opval.val = valComplement (valFromType (LETYPE (tree)));
-         tree->left = NULL;
-         TETYPE (tree) = TTYPE (tree) = tree->opval.val->type;
-         return tree;
-       }
+        {
+          tree->type = EX_VALUE;
+          tree->opval.val = valComplement (valFromType (LETYPE (tree)));
+          tree->left = NULL;
+          TETYPE (tree) = TTYPE (tree) = tree->opval.val->type;
+          return addCast (tree, resultType, TRUE);
+        }
       tree->left = addCast (tree->left, resultType, TRUE);
       LRVAL (tree) = 1;
       COPYTYPE (TTYPE (tree), TETYPE (tree), LTYPE (tree));