From 09bd6c241887e577bd491a402f5b4350fe99162e Mon Sep 17 00:00:00 2001 From: Shen-Ta Hsieh Date: Fri, 18 Sep 2026 01:06:22 +0800 Subject: [PATCH] Clamp an overflow to the largest finite value in the add tests - IEEE 754-2019 7.4: an overflow clamps to the largest finite value in the toward zero mode, and in the directed mode which points at zero for the sign. - The 4 ddAdd cases had an infinity override. Boost.Decimal now clamps, so the original expected values apply again. Ref boostorg/decimal#1460 --- dectest/ddAdd.decTest | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/dectest/ddAdd.decTest b/dectest/ddAdd.decTest index f83f1ab..3981a0b 100644 --- a/dectest/ddAdd.decTest +++ b/dectest/ddAdd.decTest @@ -1233,11 +1233,8 @@ ddadd81509 add .2399 12345678901234.00 -> 12345678901234.23 Inexact Rou # I think this should be .24 since we are rounding down with a negative number #ddadd81511 add -.2399 -12345678901234.00 -> -12345678901234.23 Inexact Rounded -# We treat overflow as infinity instead of clamping -#ddadd81520 add 9999999999999999E+369 9E+369 -> 9.999999999999999E+384 Overflow Inexact Rounded -ddadd81520 add 9999999999999999E+369 9E+369 -> inf Overflow Inexact Rounded -#ddadd81521 add -9999999999999999E+369 -9E+369 -> -9.999999999999999E+384 Overflow Inexact Rounded -ddadd81521 add -9999999999999999E+369 -9E+369 -> -inf Overflow Inexact Rounded +ddadd81520 add 9999999999999999E+369 9E+369 -> 9.999999999999999E+384 Overflow Inexact Rounded +ddadd81521 add -9999999999999999E+369 -9E+369 -> -9.999999999999999E+384 Overflow Inexact Rounded rounding: ceiling ddadd81600 add .2300 12345678901234.00 -> 12345678901234.23 Rounded @@ -1253,9 +1250,7 @@ ddadd81609 add .2399 12345678901234.00 -> 12345678901234.24 Inexact Rou ddadd81611 add -.2399 -12345678901234.00 -> -12345678901234.23 Inexact Rounded ddadd81620 add 9999999999999999E+369 9E+369 -> Infinity Overflow Inexact Rounded -# We treat overflow as infinity instead of clamping -#ddadd81621 add -9999999999999999E+369 -9E+369 -> -9.999999999999999E+384 Overflow Inexact Rounded -ddadd81621 add -9999999999999999E+369 -9E+369 -> -inf Overflow Inexact Rounded +ddadd81621 add -9999999999999999E+369 -9E+369 -> -9.999999999999999E+384 Overflow Inexact Rounded rounding: floor ddadd81700 add .2300 12345678901234.00 -> 12345678901234.23 Rounded @@ -1270,9 +1265,7 @@ ddadd81708 add .2370 12345678901234.00 -> 12345678901234.23 Inexact Rou ddadd81709 add .2399 12345678901234.00 -> 12345678901234.23 Inexact Rounded ddadd81711 add -.2399 -12345678901234.00 -> -12345678901234.24 Inexact Rounded -# We treat overflow as infinity instead of clamping -#ddadd81720 add 9999999999999999E+369 9E+369 -> 9.999999999999999E+384 Overflow Inexact Rounded -ddadd81720 add 9999999999999999E+369 9E+369 -> inf Overflow Inexact Rounded +ddadd81720 add 9999999999999999E+369 9E+369 -> 9.999999999999999E+384 Overflow Inexact Rounded ddadd81721 add -9999999999999999E+369 -9E+369 -> -Infinity Overflow Inexact Rounded