diff options
author | PMunch <peterme@peterme.net> | 2019-11-28 17:11:56 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-11-28 17:11:56 +0100 |
commit | b662842bd04852a751993ed506f9e38155a4e4aa (patch) | |
tree | a8dad3312b8c79ed448dcea2ec316e1991d39ac0 /lib | |
parent | 010067f3cc43f24991731d644d1abc70a07d5f38 (diff) | |
download | Nim-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.nim | 4 | ||||
-rw-r--r-- | lib/pure/unicode.nim | 12 |
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 ----------- |