summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorPMunch <peterme@peterme.net>2019-11-28 17:11:56 +0100
committerAndreas Rumpf <rumpf_a@web.de>2019-11-28 17:11:56 +0100
commitb662842bd04852a751993ed506f9e38155a4e4aa (patch)
treea8dad3312b8c79ed448dcea2ec316e1991d39ac0 /lib
parent010067f3cc43f24991731d644d1abc70a07d5f38 (diff)
downloadNim-b662842bd04852a751993ed506f9e38155a4e4aa.tar.gz
Fix for 16 bit platforms (#12760) [backend]
This fixes some tiny issues with using Nim on 16-bit platforms. Not
entirely sure why the AVR chip I was compiling for with "cpu = avr" was
detected as 16-bit, but that's probably another issue..
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/math.nim4
-rw-r--r--lib/pure/unicode.nim12
2 files changed, 9 insertions, 7 deletions
diff --git a/lib/pure/math.nim b/lib/pure/math.nim
index fcb090ca1..27e3e507d 100644
--- a/lib/pure/math.nim
+++ b/lib/pure/math.nim
@@ -87,7 +87,9 @@ proc fac*(n: int): int =
     doAssert fac(4) == 24
     doAssert fac(10) == 3628800
   const factTable =
-    when sizeof(int) == 4:
+    when sizeof(int) == 2:
+      createFactTable[5]()
+    elif sizeof(int) == 4:
       createFactTable[13]()
     else:
       createFactTable[21]()
diff --git a/lib/pure/unicode.nim b/lib/pure/unicode.nim
index ad754a07f..8d76cc787 100644
--- a/lib/pure/unicode.nim
+++ b/lib/pure/unicode.nim
@@ -914,12 +914,12 @@ proc size*(r: Rune): int {.noSideEffect.} =
     doAssert size(a[1]) == 2
 
   let v = r.uint32
-  if v <= 0x007F: result = 1
-  elif v <= 0x07FF: result = 2
-  elif v <= 0xFFFF: result = 3
-  elif v <= 0x1FFFFF: result = 4
-  elif v <= 0x3FFFFFF: result = 5
-  elif v <= 0x7FFFFFFF: result = 6
+  if v <= 0x007F'u32: result = 1
+  elif v <= 0x07FF'u32: result = 2
+  elif v <= 0xFFFF'u32: result = 3
+  elif v <= 0x1FFFFF'u32: result = 4
+  elif v <= 0x3FFFFFF'u32: result = 5
+  elif v <= 0x7FFFFFFF'u32: result = 6
   else: result = 1
 
 # --------- Private templates for different split separators -----------