From 32788967837bef8be46d135c8d67a0e3e187ca7f Mon Sep 17 00:00:00 2001 From: CEL Dev Team Date: Mon, 6 Jul 2026 03:06:32 -0700 Subject: [PATCH] No public description PiperOrigin-RevId: 943161734 --- runtime/standard/arithmetic_functions.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/runtime/standard/arithmetic_functions.cc b/runtime/standard/arithmetic_functions.cc index a851ceb39..57be28cda 100644 --- a/runtime/standard/arithmetic_functions.cc +++ b/runtime/standard/arithmetic_functions.cc @@ -14,6 +14,7 @@ #include "runtime/standard/arithmetic_functions.h" +#include #include #include @@ -139,6 +140,17 @@ Value Div(double v0, double v1) { static_assert(std::numeric_limits::is_iec559, "Division by zero for doubles must be supported"); + if (v1 == 0.0) { + if (v0 == 0.0 || std::isnan(v0)) { + return DoubleValue(std::numeric_limits::quiet_NaN()); + } + double inf = std::numeric_limits::infinity(); + if (std::signbit(v0) != std::signbit(v1)) { + return DoubleValue(-inf); + } + return DoubleValue(inf); + } + // For double, division will result in +/- inf return DoubleValue(v0 / v1); }