next attempt to fix #4272
This commit is contained in:
parent
157cd6d8d6
commit
69966a7110
1 changed files with 27 additions and 27 deletions
|
|
@ -573,34 +573,34 @@ proc getTypeDescAux(m: BModule, typ: PType, check: var IntSet): Rope =
|
||||||
result = getTypeDescWeak(m, t.sons[0], check) & "*"
|
result = getTypeDescWeak(m, t.sons[0], check) & "*"
|
||||||
idTablePut(m.typeCache, t, result)
|
idTablePut(m.typeCache, t, result)
|
||||||
of tyRange, tyEnum:
|
of tyRange, tyEnum:
|
||||||
let orig = t
|
|
||||||
let t = if t.kind == tyRange: t.lastSon else: t
|
let t = if t.kind == tyRange: t.lastSon else: t
|
||||||
result = getTypeName(t)
|
result = cacheGetType(m.typeCache, t)
|
||||||
if not (isImportedCppType(t) or
|
if result == nil:
|
||||||
(sfImportc in t.sym.flags and t.sym.magic == mNone)):
|
result = getTypeName(t)
|
||||||
idTablePut(m.typeCache, t, result)
|
if not (isImportedCppType(t) or
|
||||||
if t != orig: idTablePut(m.typeCache, orig, result)
|
(sfImportc in t.sym.flags and t.sym.magic == mNone)):
|
||||||
var size: int
|
idTablePut(m.typeCache, t, result)
|
||||||
if firstOrd(t) < 0:
|
var size: int
|
||||||
addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result])
|
if firstOrd(t) < 0:
|
||||||
size = 4
|
addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result])
|
||||||
else:
|
size = 4
|
||||||
size = int(getSize(t))
|
else:
|
||||||
case size
|
size = int(getSize(t))
|
||||||
of 1: addf(m.s[cfsTypes], "typedef NU8 $1;$n", [result])
|
case size
|
||||||
of 2: addf(m.s[cfsTypes], "typedef NU16 $1;$n", [result])
|
of 1: addf(m.s[cfsTypes], "typedef NU8 $1;$n", [result])
|
||||||
of 4: addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result])
|
of 2: addf(m.s[cfsTypes], "typedef NU16 $1;$n", [result])
|
||||||
of 8: addf(m.s[cfsTypes], "typedef NI64 $1;$n", [result])
|
of 4: addf(m.s[cfsTypes], "typedef NI32 $1;$n", [result])
|
||||||
else: internalError(t.sym.info, "getTypeDescAux: enum")
|
of 8: addf(m.s[cfsTypes], "typedef NI64 $1;$n", [result])
|
||||||
let owner = hashOwner(t.sym)
|
else: internalError(t.sym.info, "getTypeDescAux: enum")
|
||||||
if not gDebugInfo.hasEnum(t.sym.name.s, t.sym.info.line, owner):
|
let owner = hashOwner(t.sym)
|
||||||
var vals: seq[(string, int)] = @[]
|
if not gDebugInfo.hasEnum(t.sym.name.s, t.sym.info.line, owner):
|
||||||
for i in countup(0, t.n.len - 1):
|
var vals: seq[(string, int)] = @[]
|
||||||
assert(t.n.sons[i].kind == nkSym)
|
for i in countup(0, t.n.len - 1):
|
||||||
let field = t.n.sons[i].sym
|
assert(t.n.sons[i].kind == nkSym)
|
||||||
vals.add((field.name.s, field.position.int))
|
let field = t.n.sons[i].sym
|
||||||
gDebugInfo.registerEnum(EnumDesc(size: size, owner: owner, id: t.sym.id,
|
vals.add((field.name.s, field.position.int))
|
||||||
name: t.sym.name.s, values: vals))
|
gDebugInfo.registerEnum(EnumDesc(size: size, owner: owner, id: t.sym.id,
|
||||||
|
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