X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=support%2Fregression%2Ftests%2Fshifts.c;h=23a594d051682901dbd6793093d2601c90137f24;hb=310379d67c0559f33b1f2da2de2080c4d72ed553;hp=2cab46ac6b3145fd7fdb96f4e57bbdc78b939192;hpb=e9beab23defafa9f8504bb7fa175dda455b7765b;p=fw%2Fsdcc diff --git a/support/regression/tests/shifts.c b/support/regression/tests/shifts.c index 2cab46ac..23a594d0 100644 --- a/support/regression/tests/shifts.c +++ b/support/regression/tests/shifts.c @@ -1,6 +1,7 @@ /** Tests covering the shift operators. - type: char, int + sign: signed, unsigned + type: char, int, long storage: static, attr: volatile @@ -10,10 +11,10 @@ */ #include -static void +void testShiftClasses(void) { - {attr} {storage} {type} i, result; + {attr} {storage} {sign} {type} i, result; i = 30; ASSERT(i>>3 == 3); @@ -28,11 +29,25 @@ testShiftClasses(void) ASSERT(result == 120); } +void +testShiftRight(void) +{ + {attr} {storage} {type} i, result; + + i = -120; + ASSERT(i>>2 == -30); + + result = i; + result >>= 3; + ASSERT(result == -15); +} + /** PENDING: Disabled. */ static void testShiftByteMultiples(void) { #if 0 + /* PENDING */ {attr} {storage} {type} i; i = ({type}){vals}; @@ -50,8 +65,8 @@ testShiftByteMultiples(void) static void testShiftOne(void) { - {attr} {storage} {type} i; - {type} result; + {attr} {storage} {sign} {type} i; + {sign} {type} result; i = ({type}){vals};