diff options
author | Kevin Ryde <user42@zip.com.au> | 2001-10-30 00:49:13 +0100 |
---|---|---|
committer | Kevin Ryde <user42@zip.com.au> | 2001-10-30 00:49:13 +0100 |
commit | da2d3e3a8e47d2b73e618b909484227fe3bc9daa (patch) | |
tree | cd0a88166ad49714d4c04399d1b771da27867950 | |
parent | dcec040de0c845f6fb13348cb62da0701bbf2814 (diff) | |
download | gmp-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.
-rw-r--r-- | mpq/cmp.c | 4 | ||||
-rw-r--r-- | mpq/cmp_si.c | 3 | ||||
-rw-r--r-- | mpq/cmp_ui.c | 3 |
3 files changed, 10 insertions, 0 deletions
@@ -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; |