diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2016-05-12 00:57:43 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2016-05-12 00:57:43 +0200 |
commit | 909a161ad23e7a693a8e6db9a8f4875684d4685c (patch) | |
tree | 9505c79de53d5cb856e73fdfaf45e181ecd622da /compiler | |
parent | 5bdde429e7d03ae72d252556d04c33aaf0617d45 (diff) | |
download | Nim-909a161ad23e7a693a8e6db9a8f4875684d4685c.tar.gz |
fixes #4146
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/ccgtypes.nim | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/compiler/ccgtypes.nim b/compiler/ccgtypes.nim index 195417342..08432e42a 100644 --- a/compiler/ccgtypes.nim +++ b/compiler/ccgtypes.nim @@ -570,30 +570,30 @@ proc getTypeDescAux(m: BModule, typ: PType, check: var IntSet): Rope = of tyRange, tyEnum: let t = if t.kind == tyRange: t.lastSon else: t result = getTypeName(t) - if isImportedCppType(t) or - (sfImportc in t.sym.flags and t.sym.magic == mNone): return - idTablePut(m.typeCache, t, result) - var size: int - if firstOrd(t) < 0: - addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result]) - size = 4 - else: - size = int(getSize(t)) - case size - of 1: addf(m.s[cfsTypes], "typedef NU8 $1;$n", [result]) - of 2: addf(m.s[cfsTypes], "typedef NU16 $1;$n", [result]) - of 4: addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result]) - of 8: addf(m.s[cfsTypes], "typedef NI64 $1;$n", [result]) - else: internalError(t.sym.info, "getTypeDescAux: enum") - let owner = hashOwner(t.sym) - if not gDebugInfo.hasEnum(t.sym.name.s, t.sym.info.line, owner): - var vals: seq[(string, int)] = @[] - for i in countup(0, t.n.len - 1): - assert(t.n.sons[i].kind == nkSym) - let field = t.n.sons[i].sym - vals.add((field.name.s, field.position.int)) - gDebugInfo.registerEnum(EnumDesc(size: size, owner: owner, id: t.sym.id, - name: t.sym.name.s, values: vals)) + if not (isImportedCppType(t) or + (sfImportc in t.sym.flags and t.sym.magic == mNone)): + idTablePut(m.typeCache, t, result) + var size: int + if firstOrd(t) < 0: + addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result]) + size = 4 + else: + size = int(getSize(t)) + case size + of 1: addf(m.s[cfsTypes], "typedef NU8 $1;$n", [result]) + of 2: addf(m.s[cfsTypes], "typedef NU16 $1;$n", [result]) + of 4: addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result]) + of 8: addf(m.s[cfsTypes], "typedef NI64 $1;$n", [result]) + else: internalError(t.sym.info, "getTypeDescAux: enum") + let owner = hashOwner(t.sym) + if not gDebugInfo.hasEnum(t.sym.name.s, t.sym.info.line, owner): + var vals: seq[(string, int)] = @[] + for i in countup(0, t.n.len - 1): + assert(t.n.sons[i].kind == nkSym) + let field = t.n.sons[i].sym + vals.add((field.name.s, field.position.int)) + gDebugInfo.registerEnum(EnumDesc(size: size, owner: owner, id: t.sym.id, + name: t.sym.name.s, values: vals)) of tyProc: result = getTypeName(t) idTablePut(m.typeCache, t, result) |