* src/SDCCval.c: fixed bug #
1777758 - applied Maarten's patch
* support/regression/tests/bitwise.c: added regtest for bug #
1777758
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4926
4a8a32a2-be11-0410-ad9d-
d568d2c75423
2007-10-02 Borut Razem <borut.razem AT siol.net>
* src/SDCCval.h: unified double2ul macro for all platforms
2007-10-02 Borut Razem <borut.razem AT siol.net>
* src/SDCCval.h: unified double2ul macro for all platforms
+ * src/SDCCval.c: fixed bug #1777758 - applied Maarten's patch
+ * support/regression/tests/bitwise.c: added regtest for bug #1777758
2007-09-30 Borut Razem <borut.razem AT siol.net>
2007-09-30 Borut Razem <borut.razem AT siol.net>
- SPEC_CVAL (val->etype).v_uint = ((TYPE_TARGET_UINT) l) &
- (0xffffu >> (16 - SPEC_BLEN (val->etype)));
+ l &= (0xffffffffu >> (32 - SPEC_BLEN (val->etype)));
+ if (SPEC_USIGN (val->etype))
+ SPEC_CVAL (val->etype).v_uint = (TYPE_TARGET_UINT) l;
+ else
+ SPEC_CVAL (val->etype).v_int = (TYPE_TARGET_INT) l;
ASSERT(({type})(~left) == ({type})0xFFFFC208);
#endif
}
ASSERT(({type})(~left) == ({type})0xFFFFC208);
#endif
}
+
+static void
+testBug_1777758(void)
+{
+ char ep = -1;
+
+ ep &= ~0x80;
+
+ ASSERT(ep == 127);
+}