* src/SDCCopt.c (killDeadCode): fixed bug #907733
[fw/sdcc] / src / SDCCval.c
index 96c962a5168666fb795e20001f2d3c4ac515eb31..6b18f5ea2815b08c7c1d0b3692e0989e3a1d8baf 100644 (file)
@@ -1574,7 +1574,7 @@ valCastLiteral (sym_link * dtype, double fval)
       SPEC_CVAL (val->etype).v_float = fval;
   else if (SPEC_NOUN (val->etype) == V_BIT ||
            SPEC_NOUN (val->etype) == V_SBIT)
-    SPEC_CVAL (val->etype).v_uint = l & 1;   
+    SPEC_CVAL (val->etype).v_uint = l ? 1 : 0;
   else if (SPEC_NOUN (val->etype) == V_BITFIELD)
     SPEC_CVAL (val->etype).v_uint = l &
                                    (0xffffu >> (16 - SPEC_BLEN (val->etype)));