Fixed negative enum values not getting stringified.

This commit is contained in:
gmpreussner
2016-03-14 21:58:28 -04:00
parent 1073f9ec5a
commit e8ff987cef

View File

@@ -74,9 +74,9 @@ proc reprChar(x: char): string {.compilerRtl.} =
proc reprEnum(e: int, typ: PNimType): string {.compilerRtl.} =
# we read an 'int' but this may have been too large, so mask the other bits:
let e = if typ.size == 1: e and 0xff
elif typ.size == 2: e and 0xffff
elif typ.size == 4: e and 0xffffffff
let e = if typ.size == 1: int(int8(e))
elif typ.size == 2: int(int16(e))
elif typ.size == 4: int(int32(e))
else: e
# XXX we need a proper narrowing based on signedness here
#e and ((1 shl (typ.size*8)) - 1)