]> git.sur5r.net Git - cc65/commitdiff
Fixed a bug: To check for signed types use IsSignSigned, not !IsSignUnsigned.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 1 Jan 2012 18:26:39 +0000 (18:26 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 1 Jan 2012 18:26:39 +0000 (18:26 +0000)
The latter may be true for types and are neither signed nor unsigned.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5353 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/typeconv.c

index d26ba32b2e27079733bc273451a4be4dbf5840e3..ecde7349fbaac217d810ac5094d9f50f434dbb99 100644 (file)
@@ -128,7 +128,7 @@ static void DoConversion (ExprDesc* Expr, const Type* NewType)
             Expr->IVal &= (0xFFFFFFFFUL >> (32 - NewBits));
 
             /* If the new type is signed, sign extend the value */
-            if (!IsSignUnsigned (NewType)) {
+            if (IsSignSigned (NewType)) {
                 if (Expr->IVal & (0x01UL << (NewBits-1))) {
                     /* Beware: Use the safe shift routine here. */
                     Expr->IVal |= shl_l (~0UL, NewBits);