fixes #4146
This commit is contained in:
parent
5bdde429e7
commit
909a161ad2
1 changed files with 24 additions and 24 deletions
|
|
@ -570,30 +570,30 @@ proc getTypeDescAux(m: BModule, typ: PType, check: var IntSet): Rope =
|
||||||
of tyRange, tyEnum:
|
of tyRange, tyEnum:
|
||||||
let t = if t.kind == tyRange: t.lastSon else: t
|
let t = if t.kind == tyRange: t.lastSon else: t
|
||||||
result = getTypeName(t)
|
result = getTypeName(t)
|
||||||
if isImportedCppType(t) or
|
if not (isImportedCppType(t) or
|
||||||
(sfImportc in t.sym.flags and t.sym.magic == mNone): return
|
(sfImportc in t.sym.flags and t.sym.magic == mNone)):
|
||||||
idTablePut(m.typeCache, t, result)
|
idTablePut(m.typeCache, t, result)
|
||||||
var size: int
|
var size: int
|
||||||
if firstOrd(t) < 0:
|
if firstOrd(t) < 0:
|
||||||
addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result])
|
addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result])
|
||||||
size = 4
|
size = 4
|
||||||
else:
|
else:
|
||||||
size = int(getSize(t))
|
size = int(getSize(t))
|
||||||
case size
|
case size
|
||||||
of 1: addf(m.s[cfsTypes], "typedef NU8 $1;$n", [result])
|
of 1: addf(m.s[cfsTypes], "typedef NU8 $1;$n", [result])
|
||||||
of 2: addf(m.s[cfsTypes], "typedef NU16 $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 4: addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result])
|
||||||
of 8: addf(m.s[cfsTypes], "typedef NI64 $1;$n", [result])
|
of 8: addf(m.s[cfsTypes], "typedef NI64 $1;$n", [result])
|
||||||
else: internalError(t.sym.info, "getTypeDescAux: enum")
|
else: internalError(t.sym.info, "getTypeDescAux: enum")
|
||||||
let owner = hashOwner(t.sym)
|
let owner = hashOwner(t.sym)
|
||||||
if not gDebugInfo.hasEnum(t.sym.name.s, t.sym.info.line, owner):
|
if not gDebugInfo.hasEnum(t.sym.name.s, t.sym.info.line, owner):
|
||||||
var vals: seq[(string, int)] = @[]
|
var vals: seq[(string, int)] = @[]
|
||||||
for i in countup(0, t.n.len - 1):
|
for i in countup(0, t.n.len - 1):
|
||||||
assert(t.n.sons[i].kind == nkSym)
|
assert(t.n.sons[i].kind == nkSym)
|
||||||
let field = t.n.sons[i].sym
|
let field = t.n.sons[i].sym
|
||||||
vals.add((field.name.s, field.position.int))
|
vals.add((field.name.s, field.position.int))
|
||||||
gDebugInfo.registerEnum(EnumDesc(size: size, owner: owner, id: t.sym.id,
|
gDebugInfo.registerEnum(EnumDesc(size: size, owner: owner, id: t.sym.id,
|
||||||
name: t.sym.name.s, values: vals))
|
name: t.sym.name.s, values: vals))
|
||||||
of tyProc:
|
of tyProc:
|
||||||
result = getTypeName(t)
|
result = getTypeName(t)
|
||||||
idTablePut(m.typeCache, t, result)
|
idTablePut(m.typeCache, t, result)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue