summaryrefslogtreecommitdiff
path: root/mpq
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2001-10-30 00:49:13 +0100
committerKevin Ryde <user42@zip.com.au>2001-10-30 00:49:13 +0100
commitda2d3e3a8e47d2b73e618b909484227fe3bc9daa (patch)
treecd0a88166ad49714d4c04399d1b771da27867950 /mpq
parentdcec040de0c845f6fb13348cb62da0701bbf2814 (diff)
downloadgmp-da2d3e3a8e47d2b73e618b909484227fe3bc9daa.tar.gz
* mpq/cmp.c, mpq/cmp_si.c, mpq/cmp_ui.c, mpq/equal.c: Add ASSERTs for
canonical inputs, where correctness depends on it.
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;