From 087e1719e45ae51b728aa8b15edd30d9ef757a98 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 19 Mar 2021 07:13:19 +0900 Subject: `Float#divmod` with zero should cause `ZeroDivisionError`; #5384 --- src/numeric.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/numeric.c b/src/numeric.c index c536f0614..74e3a8b82 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -375,13 +375,9 @@ flodivmod(mrb_state *mrb, double x, double y, mrb_float *divp, mrb_float *modp) goto exit; } if (y == 0.0) { - if (x == 0) div = NAN; - else if (x > 0.0) div = INFINITY; - else div = -INFINITY; /* x < 0.0 */ - mod = NAN; - goto exit; + int_zerodiv(mrb); } - if ((x == 0.0) || (isinf(y) && !isinf(x))) { + if (isinf(y) && !isinf(x)) { mod = x; } else { -- cgit v1.2.3