fix several ISO compat bugs (Paulo Moura).
This commit is contained in:
parent
1c3c0c6301
commit
93270c125a
10
C/arith2.c
10
C/arith2.c
@ -253,7 +253,7 @@ p_div2(Term t1, Term t2 USES_REGS) {
|
|||||||
/* two bignums */
|
/* two bignums */
|
||||||
return Yap_gmp_div2_big_big(t1, t2);
|
return Yap_gmp_div2_big_big(t1, t2);
|
||||||
case double_e:
|
case double_e:
|
||||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "mod/2");
|
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "div/2");
|
||||||
default:
|
default:
|
||||||
RERROR();
|
RERROR();
|
||||||
}
|
}
|
||||||
@ -282,7 +282,7 @@ p_rem(Term t1, Term t2 USES_REGS) {
|
|||||||
RINT(i1%i2);
|
RINT(i1%i2);
|
||||||
}
|
}
|
||||||
case (CELL)double_e:
|
case (CELL)double_e:
|
||||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "mod/2");
|
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "rem/2");
|
||||||
case (CELL)big_int_e:
|
case (CELL)big_int_e:
|
||||||
#ifdef USE_GMP
|
#ifdef USE_GMP
|
||||||
return Yap_gmp_rem_int_big(IntegerOfTerm(t1), t2);
|
return Yap_gmp_rem_int_big(IntegerOfTerm(t1), t2);
|
||||||
@ -292,7 +292,7 @@ p_rem(Term t1, Term t2 USES_REGS) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case (CELL)double_e:
|
case (CELL)double_e:
|
||||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t1, "mod/2");
|
return Yap_ArithError(TYPE_ERROR_INTEGER, t1, "rem/2");
|
||||||
case (CELL)big_int_e:
|
case (CELL)big_int_e:
|
||||||
#ifdef USE_GMP
|
#ifdef USE_GMP
|
||||||
switch (ETypeOfTerm(t2)) {
|
switch (ETypeOfTerm(t2)) {
|
||||||
@ -304,7 +304,7 @@ p_rem(Term t1, Term t2 USES_REGS) {
|
|||||||
/* two bignums */
|
/* two bignums */
|
||||||
return Yap_gmp_rem_big_big(t1, t2);
|
return Yap_gmp_rem_big_big(t1, t2);
|
||||||
case double_e:
|
case double_e:
|
||||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "mod/2");
|
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "rem/2");
|
||||||
default:
|
default:
|
||||||
RERROR();
|
RERROR();
|
||||||
}
|
}
|
||||||
@ -350,7 +350,7 @@ p_rdiv(Term t1, Term t2 USES_REGS) {
|
|||||||
case (CELL)big_int_e:
|
case (CELL)big_int_e:
|
||||||
return Yap_gmq_rdiv_big_big(t1, t2);
|
return Yap_gmq_rdiv_big_big(t1, t2);
|
||||||
case double_e:
|
case double_e:
|
||||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "mod/2");
|
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "rdiv/2");
|
||||||
default:
|
default:
|
||||||
RERROR();
|
RERROR();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user