summaryrefslogtreecommitdiff
path: root/mpq
diff options
context:
space:
mode:
Diffstat (limited to 'mpq')
-rw-r--r--mpq/cmp.c4
-rw-r--r--mpq/cmp_si.c3
-rw-r--r--mpq/cmp_ui.c3
3 files changed, 10 insertions, 0 deletions
diff --git a/mpq/cmp.c b/mpq/cmp.c
index 25193f742..16248e33d 100644
--- a/mpq/cmp.c
+++ b/mpq/cmp.c
@@ -37,6 +37,10 @@ mpq_cmp (const MP_RAT *op1, const MP_RAT *op2)
int cc;
TMP_DECL (marker);
+ /* need canonical signs to get right result */
+ ASSERT (den1_size > 0);
+ ASSERT (den2_size > 0);
+
if (num1_size == 0)
return -num2_size;
if (num2_size == 0)
diff --git a/mpq/cmp_si.c b/mpq/cmp_si.c
index 2fd33df06..bf79da34d 100644
--- a/mpq/cmp_si.c
+++ b/mpq/cmp_si.c
@@ -30,6 +30,9 @@ MA 02111-1307, USA. */
int
_mpq_cmp_si (mpq_srcptr q, long n, unsigned long d)
{
+ /* need canonical sign to get right result */
+ ASSERT (q->_mp_den._mp_size > 0);
+
if (q->_mp_num._mp_size >= 0)
{
if (n >= 0)
diff --git a/mpq/cmp_ui.c b/mpq/cmp_ui.c
index 4992252d8..b40628f4b 100644
--- a/mpq/cmp_ui.c
+++ b/mpq/cmp_ui.c
@@ -35,6 +35,9 @@ _mpq_cmp_ui (const MP_RAT *op1, unsigned long int num2, unsigned long int den2)
int cc;
TMP_DECL (marker);
+ /* need canonical sign to get right result */
+ ASSERT (den1_size > 0);
+
if (den2 == 0)
DIVIDE_BY_ZERO;