Fixed unary minus on unsigned expressions
authorjtvolpe <jtvolpe@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 20 Apr 2001 02:10:51 +0000 (02:10 +0000)
committerjtvolpe <jtvolpe@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 20 Apr 2001 02:10:51 +0000 (02:10 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@744 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/SDCCval.c

index 9b5512cee0a4e73e06558b590898ab1d2ea65f17..e70b7931b0a81203d8f84bae962653ba119517d6 100644 (file)
@@ -663,14 +663,14 @@ valUnaryPM (value * val)
       if (SPEC_LONG (val->etype))
        {
          if (SPEC_USIGN (val->etype))
-           SPEC_CVAL (val->etype).v_ulong = -SPEC_CVAL (val->etype).v_ulong;
+           SPEC_CVAL (val->etype).v_ulong = 0-SPEC_CVAL (val->etype).v_ulong;
          else
            SPEC_CVAL (val->etype).v_long = -SPEC_CVAL (val->etype).v_long;
        }
       else
        {
          if (SPEC_USIGN (val->etype))
-           SPEC_CVAL (val->etype).v_uint = -SPEC_CVAL (val->etype).v_uint;
+           SPEC_CVAL (val->etype).v_uint = 0-SPEC_CVAL (val->etype).v_uint;
          else
            SPEC_CVAL (val->etype).v_int = -SPEC_CVAL (val->etype).v_int;
        }