aboutsummaryrefslogtreecommitdiffstats
path: root/zahl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--zahl-inlines.h14
-rw-r--r--zahl-internals.h1
2 files changed, 8 insertions, 7 deletions
diff --git a/zahl-inlines.h b/zahl-inlines.h
index 8ffa6cb..7c06270 100644
--- a/zahl-inlines.h
+++ b/zahl-inlines.h
@@ -134,15 +134,15 @@ zcmpi(z_t a, int64_t b)
} else {
if (zsignum(a) < 0)
return -1;
- libzahl_tmp_cmp->chars[0] = b;
+ libzahl_tmp_cmp->chars[0] = (zahl_char_t)b;
return +zcmpmag(a, libzahl_tmp_cmp);
}
}
-void zbset_impl_set(z_t a, z_t b, size_t bit);
-void zbset_impl_clear(z_t a, z_t b, size_t bit);
-void zbset_impl_flip(z_t a, z_t b, size_t bit);
+void zbset_impl_set(z_t a, size_t bit);
+void zbset_impl_clear(z_t a, size_t bit);
+void zbset_impl_flip(z_t a, size_t bit);
ZAHL_INLINE void
zbset(z_t a, z_t b, size_t bit, int action)
@@ -174,11 +174,11 @@ fallback:
#endif
if (action > 0)
- zbset_impl_set(a, b, bit);
+ zbset_impl_set(a, bit);
else if (action < 0)
- zbset_impl_flip(a, b, bit);
+ zbset_impl_flip(a, bit);
else
- zbset_impl_clear(a, b, bit);
+ zbset_impl_clear(a, bit);
}
diff --git a/zahl-internals.h b/zahl-internals.h
index 4d3389c..9ac29b2 100644
--- a/zahl-internals.h
+++ b/zahl-internals.h
@@ -27,6 +27,7 @@
#define ZAHL_FLOOR_BITS_TO_CHARS(bits) ((bits) >> ZAHL_LB_BITS_PER_CHAR)
#define ZAHL_CEILING_BITS_TO_CHARS(bits) (((bits) + (ZAHL_BITS_PER_CHAR - 1)) >> ZAHL_LB_BITS_PER_CHAR)
#define ZAHL_BITS_IN_LAST_CHAR(bits) ((bits) & (ZAHL_BITS_PER_CHAR - 1))
+#define ZAHL_TRUNCATE_TO_CHAR(bits) ((bits) & ~(size_t)(ZAHL_BITS_PER_CHAR - 1))
#define ZAHL_SET_SIGNUM(a, signum) ((a)->sign = (signum))