diff --git a/src/modules/gmpmod/mpz_glue.c b/src/modules/gmpmod/mpz_glue.c index c3eca5f260764430ab435e36acd7fb3e0c029316..c73f1c644a2c32c7ad8223b47c803c00b515795b 100644 --- a/src/modules/gmpmod/mpz_glue.c +++ b/src/modules/gmpmod/mpz_glue.c @@ -359,7 +359,7 @@ static void mpzmod_powm(INT32 args) error("Too few arguments to mpzmod->powm()\n"); tmp=get_tmp(); - mpz_powm(tmp, tmp, get_mpz(sp-args), get_mpz(sp+1-args)); + mpz_powm(tmp, THIS, get_mpz(sp-args), get_mpz(sp+1-args)); return_temporary(args); } diff --git a/src/modules/gmpmod/testsuite.in b/src/modules/gmpmod/testsuite.in index 0cca2dbfa8d6f37f1d1cc042c20d7e26dbffaaea..18143ee0274cd5a3e4105db70ed65845beffce76 100644 --- a/src/modules/gmpmod/testsuite.in +++ b/src/modules/gmpmod/testsuite.in @@ -25,6 +25,7 @@ cond( [[ master()->programs["/precompiled/mpz"] ]], test_eq((int)clone(MPZ,17),17) test_false(clone(MPZ,0)) test_true(clone(MPZ,1)) + test_eq(clone(MPZ,17)->powm(2,4711),290) define([[mpz_test_cmp]],[[ test_cmp(clone(MPZ,$1), $2)