aboutsummaryrefslogtreecommitdiff
path: root/core/math
diff options
context:
space:
mode:
authorFeoramund <161657516+Feoramund@users.noreply.github.com>2025-06-10 08:34:07 -0400
committerFeoramund <161657516+Feoramund@users.noreply.github.com>2025-06-10 08:34:07 -0400
commit4236b043e2cddcdb304812bcc0aa8f1d5a5ae27b (patch)
tree3a84127a7a0a3a98be18f538ec790cf44ab71f43 /core/math
parentd08e14fc3c62511e31e08284f832531deb2f4beb (diff)
Move negation in `internal_rat_to_float` to end of procedure
This should cause a compiler error, due to the assignment to a named return value in a deferred block. Fixes #4565
Diffstat (limited to 'core/math')
-rw-r--r--core/math/big/rat.odin6
1 files changed, 3 insertions, 3 deletions
diff --git a/core/math/big/rat.odin b/core/math/big/rat.odin
index e0e58b80f..e84174d54 100644
--- a/core/math/big/rat.odin
+++ b/core/math/big/rat.odin
@@ -378,9 +378,6 @@ internal_rat_to_float :: proc($T: typeid, z: ^Rat, allocator := context.allocato
}
has_sign := a.sign != b.sign
- defer if has_sign {
- f = -builtin.abs(f)
- }
exp := alen - blen
a2, b2 := &Int{}, &Int{}
@@ -440,6 +437,9 @@ internal_rat_to_float :: proc($T: typeid, z: ^Rat, allocator := context.allocato
if math.is_inf(f, 0) {
exact = false
}
+ if has_sign {
+ f = -builtin.abs(f)
+ }
return
}