aboutsummaryrefslogtreecommitdiff
path: root/builtins/integers.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-08-13 14:13:02 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-08-13 14:13:02 -0400
commit5a0502bdf5da0b1cdb91fb1d0dfa08b4c4a4db0b (patch)
treed461fec6453e8e99cefabd712ee27091528731ea /builtins/integers.c
parent148782e61ba4efbf2981e7d9e18279e92054e149 (diff)
Fix some edge cases
Diffstat (limited to 'builtins/integers.c')
-rw-r--r--builtins/integers.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/builtins/integers.c b/builtins/integers.c
index 776fdc3d..53e38aab 100644
--- a/builtins/integers.c
+++ b/builtins/integers.c
@@ -23,7 +23,8 @@ public void Int$init_random(long seed)
public Int_t Int$from_i64(int64_t i)
{
- if (i == (int32_t)i) return (Int_t){.small=(i*4)+1};
+ int64_t z = i<<2;
+ if (z == (int32_t)z) return (Int_t){.small=z+1};
mpz_t result;
mpz_init_set_si(result, i);
return Int$from_mpz(result);