summaryrefslogtreecommitdiff
path: root/storage/tokudb/tokudb_math.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/tokudb/tokudb_math.h')
-rw-r--r--storage/tokudb/tokudb_math.h42
1 files changed, 29 insertions, 13 deletions
diff --git a/storage/tokudb/tokudb_math.h b/storage/tokudb/tokudb_math.h
index c49af2a6a21..0338bf3871e 100644
--- a/storage/tokudb/tokudb_math.h
+++ b/storage/tokudb/tokudb_math.h
@@ -32,30 +32,34 @@ namespace tokudb {
// Overflow detection adapted from "Hackers Delight", Henry S. Warren
// Return a bit mask for bits 0 .. length_bits-1
-static uint64_t uint_mask(uint length_bits) __attribute__((unused));
+TOKUDB_UNUSED(static uint64_t uint_mask(uint length_bits));
static uint64_t uint_mask(uint length_bits) {
return length_bits == 64 ? ~0ULL : (1ULL<<length_bits)-1;
}
// Return the highest unsigned int with a given number of bits
-static uint64_t uint_high_endpoint(uint length_bits) __attribute__((unused));
+TOKUDB_UNUSED(static uint64_t uint_high_endpoint(uint length_bits));
static uint64_t uint_high_endpoint(uint length_bits) {
return uint_mask(length_bits);
}
// Return the lowest unsigned int with a given number of bits
-static uint64_t uint_low_endpoint(uint length_bits) __attribute__((unused));
-static uint64_t uint_low_endpoint(uint length_bits __attribute__((unused))) {
+TOKUDB_UNUSED(static uint64_t uint_low_endpoint(uint length_bits));
+static uint64_t uint_low_endpoint(TOKUDB_UNUSED(uint length_bits)) {
return 0;
}
// Add two unsigned integers with max maximum value.
// If there is an overflow then set the sum to the max.
// Return the sum and the overflow.
-static uint64_t uint_add(uint64_t x, uint64_t y, uint length_bits, bool *over) __attribute__((unused));
+TOKUDB_UNUSED(static uint64_t uint_add(
+ uint64_t x,
+ uint64_t y,
+ uint length_bits,
+ bool* over));
static uint64_t uint_add(uint64_t x, uint64_t y, uint length_bits, bool *over) {
uint64_t mask = uint_mask(length_bits);
- assert((x & ~mask) == 0 && (y & ~mask) == 0);
+ assert_always((x & ~mask) == 0 && (y & ~mask) == 0);
uint64_t s = (x + y) & mask;
*over = s < x; // check for overflow
return s;
@@ -64,30 +68,34 @@ static uint64_t uint_add(uint64_t x, uint64_t y, uint length_bits, bool *over) {
// Subtract two unsigned ints with max maximum value.
// If there is an over then set the difference to 0.
// Return the difference and the overflow.
-static uint64_t uint_sub(uint64_t x, uint64_t y, uint length_bits, bool *over) __attribute__((unused));
+TOKUDB_UNUSED(static uint64_t uint_sub(
+ uint64_t x,
+ uint64_t y,
+ uint length_bits,
+ bool* over));
static uint64_t uint_sub(uint64_t x, uint64_t y, uint length_bits, bool *over) {
uint64_t mask = uint_mask(length_bits);
- assert((x & ~mask) == 0 && (y & ~mask) == 0);
+ assert_always((x & ~mask) == 0 && (y & ~mask) == 0);
uint64_t s = (x - y) & mask;
*over = s > x; // check for overflow
return s;
}
// Return the highest int with a given number of bits
-static int64_t int_high_endpoint(uint length_bits) __attribute__((unused));
+TOKUDB_UNUSED(static int64_t int_high_endpoint(uint length_bits));
static int64_t int_high_endpoint(uint length_bits) {
return (1ULL<<(length_bits-1))-1;
}
// Return the lowest int with a given number of bits
-static int64_t int_low_endpoint(uint length_bits) __attribute__((unused));
+TOKUDB_UNUSED(static int64_t int_low_endpoint(uint length_bits));
static int64_t int_low_endpoint(uint length_bits) {
int64_t mask = uint_mask(length_bits);
return (1ULL<<(length_bits-1)) | ~mask;
}
// Sign extend to 64 bits an int with a given number of bits
-static int64_t int_sign_extend(int64_t n, uint length_bits) __attribute__((unused));
+TOKUDB_UNUSED(static int64_t int_sign_extend(int64_t n, uint length_bits));
static int64_t int_sign_extend(int64_t n, uint length_bits) {
if (n & (1ULL<<(length_bits-1)))
n |= ~uint_mask(length_bits);
@@ -99,7 +107,11 @@ static int64_t int_sign_extend(int64_t n, uint length_bits) {
// depending on the sign bit.
// Sign extend to 64 bits.
// Return the sum and the overflow.
-static int64_t int_add(int64_t x, int64_t y, uint length_bits, bool *over) __attribute__((unused));
+TOKUDB_UNUSED(static int64_t int_add(
+ int64_t x,
+ int64_t y,
+ uint length_bits,
+ bool* over));
static int64_t int_add(int64_t x, int64_t y, uint length_bits, bool *over) {
int64_t mask = uint_mask(length_bits);
int64_t n = (x + y) & mask;
@@ -114,7 +126,11 @@ static int64_t int_add(int64_t x, int64_t y, uint length_bits, bool *over) {
// depending on the sign bit.
// Sign extend to 64 bits.
// Return the sum and the overflow.
-static int64_t int_sub(int64_t x, int64_t y, uint length_bits, bool *over) __attribute__((unused));
+TOKUDB_UNUSED(static int64_t int_sub(
+ int64_t x,
+ int64_t y,
+ uint length_bits,
+ bool* over));
static int64_t int_sub(int64_t x, int64_t y, uint length_bits, bool *over) {
int64_t mask = uint_mask(length_bits);
int64_t n = (x - y) & mask;