From 24106ade8fee790fcfbab17d6c7825d79e05c7f3 Mon Sep 17 00:00:00 2001 From: Araq Date: Wed, 5 Dec 2018 09:43:34 +0100 Subject: [PATCH] hotfix: discriminants can be of size 8 bytes [backport] --- lib/core/typeinfo.nim | 1 + lib/system.nim | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/core/typeinfo.nim b/lib/core/typeinfo.nim index 14613c50df..cfb8f8f5d7 100644 --- a/lib/core/typeinfo.nim +++ b/lib/core/typeinfo.nim @@ -106,6 +106,7 @@ proc getDiscriminant(aa: pointer, n: ptr TNimNode): int = of 1: d = ze(cast[ptr int8](a +% n.offset)[]) of 2: d = ze(cast[ptr int16](a +% n.offset)[]) of 4: d = int(cast[ptr int32](a +% n.offset)[]) + of 8: d = int(cast[ptr int64](a +% n.offset)[]) else: assert(false) return d diff --git a/lib/system.nim b/lib/system.nim index 0bb53d9df9..ea767e27a2 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -3461,6 +3461,7 @@ when not defined(JS): #and not defined(nimscript): of 1: d = ze(cast[ptr int8](a +% n.offset)[]) of 2: d = ze(cast[ptr int16](a +% n.offset)[]) of 4: d = int(cast[ptr int32](a +% n.offset)[]) + of 8: d = int(cast[ptr int64](a +% n.offset)[]) else: sysAssert(false, "getDiscriminant: invalid n.typ.size") return d