aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew J. Schorr <aschorr@telemetry-investments.com>2017-04-13 12:47:18 -0400
committerAndrew J. Schorr <aschorr@telemetry-investments.com>2017-04-13 12:47:18 -0400
commit3978dea8ddf29e8185cf61d5fba897d58439cade (patch)
tree56c4211aa3c7a38d2979cc600d830fc48b9fb115
parent3e6d7cb2ac0e05aaca43b923cc9e2b408f390d01 (diff)
downloadegawk-3978dea8ddf29e8185cf61d5fba897d58439cade.tar.gz
egawk-3978dea8ddf29e8185cf61d5fba897d58439cade.tar.bz2
egawk-3978dea8ddf29e8185cf61d5fba897d58439cade.zip
For intdiv mpfr division by zero, call fatal without further ado.
-rw-r--r--extension/ChangeLog5
-rw-r--r--extension/intdiv.c10
2 files changed, 6 insertions, 9 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog
index 784daf21..d8eb6187 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,8 @@
+2017-04-13 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * intdiv.c (do_intdiv): On a division by zero fatal error, there's
+ no need to clear the numerator and denominator and add a fake return.
+
2017-04-13 Arnold D. Robbins <arnold@skeeve.com>
* configure.ac: Alphabetize function list in AC_CHECK_FUNCS.
diff --git a/extension/intdiv.c b/extension/intdiv.c
index bde92893..e3dd0eef 100644
--- a/extension/intdiv.c
+++ b/extension/intdiv.c
@@ -161,16 +161,8 @@ do_intdiv(int nargs, awk_value_t *result, struct awk_ext_func *unused)
mpz_clear(numer);
return make_number(-1, result);
}
- if (mpz_sgn(denom) == 0) {
- if (numer == numer_tmp)
- mpz_clear(numer);
- if (denom == denom_tmp)
- mpz_clear(denom);
-
+ if (mpz_sgn(denom) == 0)
fatal(ext_id, _("intdiv: division by zero attempted"));
- // won't get here, but keep the compiler happy
- return make_number(-1, result);
- }
/* ask gawk to allocate return values for us */
quotient = get_mpz_ptr();