summaryrefslogtreecommitdiff
path: root/lib/nettle
diff options
context:
space:
mode:
authorIlya Tumaykin <itumaykin@gmail.com>2012-09-11 11:42:47 +0400
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2012-09-12 23:25:16 +0200
commit85f627caa4b623bf0d9166a48c5d634c9e076538 (patch)
tree9edd06864fdab0179a8507abb2503183dda43a6f /lib/nettle
parent7b3839b4fff469a341fbbc125fe72468af9b7df4 (diff)
downloadgnutls-85f627caa4b623bf0d9166a48c5d634c9e076538.tar.gz
Fix mpz_unitstbit compilation with GMP versions < 5.
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Diffstat (limited to 'lib/nettle')
-rw-r--r--lib/nettle/wmnaf.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/nettle/wmnaf.c b/lib/nettle/wmnaf.c
index 778518a922..b7eb092f68 100644
--- a/lib/nettle/wmnaf.c
+++ b/lib/nettle/wmnaf.c
@@ -33,19 +33,23 @@
#define ABS(x) ((x) >= 0 ? (x) : -(x))
+/* GMP lacks this typedef in versions prior to 5 */
+#if __GNU_MP__ < 5
+typedef unsigned long int mp_bitcnt_t;
+#endif
+
/*
* A local replacement for mpz_tstbit.
- * It is needed because for negative numbers original mpz_tstbit
- * returns an infinite number of `1`s after all bits of input number.
- * For positive numbers it returns zeros after all bits of input number.
+ * It is needed because original mpz_tstbit process negative numbers
+ * in a two-complement manner and we don't want it.
* This function mimics mpz_tstbit behavior for positive numbers in both cases.
*/
static int
-mpz_unitstbit (mpz_srcptr u, mp_bitcnt_t bit_index)
+mpz_unitstbit (mpz_t u, mp_bitcnt_t bit_index)
__GMP_NOTHROW
{
- mp_srcptr u_ptr = (u)->_mp_d;
- mp_size_t size = (u)->_mp_size;
+ mp_srcptr u_ptr = u->_mp_d;
+ mp_size_t size = u->_mp_size;
unsigned abs_size = ABS (size);
mp_size_t limb_index = bit_index / GMP_NUMB_BITS;
mp_srcptr p = u_ptr + limb_index;