fixed bug #532436
authorjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 28 Mar 2002 10:45:52 +0000 (10:45 +0000)
committerjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 28 Mar 2002 10:45:52 +0000 (10:45 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2004 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/SDCCval.c

index 02172a723a5688fd649c822f3c7cb2eca4507977..72c73a1888cc1d7e21dc2dfc1ed413326f2686c6 100644 (file)
@@ -946,6 +946,12 @@ valUnaryPM (value * val)
     }
   // -(unsigned 3) now really is signed
   SPEC_USIGN(val->etype)=0;
+  // -(unsigned char)135 now really is an int
+  if (SPEC_NOUN(val->etype) == V_CHAR) {
+    if (SPEC_CVAL(val->etype).v_int < -128) {
+      SPEC_NOUN(val->etype) = V_INT;
+    }
+  }
   return val;
 }