diff options
| author | Feoramund <161657516+Feoramund@users.noreply.github.com> | 2025-06-10 08:34:07 -0400 |
|---|---|---|
| committer | Feoramund <161657516+Feoramund@users.noreply.github.com> | 2025-06-10 08:34:07 -0400 |
| commit | 4236b043e2cddcdb304812bcc0aa8f1d5a5ae27b (patch) | |
| tree | 3a84127a7a0a3a98be18f538ec790cf44ab71f43 /core/math | |
| parent | d08e14fc3c62511e31e08284f832531deb2f4beb (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.odin | 6 |
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 } |