Use unsigned long long for the uint64_t type
authorJens Axboe <axboe@kernel.dk>
Mon, 21 Jan 2013 19:30:34 +0000 (12:30 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 21 Jan 2013 19:30:34 +0000 (12:30 -0700)
Signed-off-by: Jens Axboe <axboe@kernel.dk>
lib/hweight.c

index bc9b51b..2c819d6 100644 (file)
@@ -23,11 +23,11 @@ unsigned int hweight64(uint64_t w)
 #if BITS_PER_LONG == 32
        return hweight32((unsigned int)(w >> 32)) + hweight32((unsigned int)w);
 #else
-       uint64_t res = w - ((w >> 1) & 0x5555555555555555ul);
-       res = (res & 0x3333333333333333ul) + ((res >> 2) & 0x3333333333333333ul);
-       res = (res + (res >> 4)) & 0x0F0F0F0F0F0F0F0Ful;
+       uint64_t res = w - ((w >> 1) & 0x5555555555555555ULL);
+       res = (res & 0x3333333333333333ULL) + ((res >> 2) & 0x3333333333333333ULL);
+       res = (res + (res >> 4)) & 0x0F0F0F0F0F0F0F0FULL;
        res = res + (res >> 8);
        res = res + (res >> 16);
-       return (res + (res >> 32)) & 0x00000000000000FFul;
+       return (res + (res >> 32)) & 0x00000000000000FFULL;
 #endif
 }