summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/ccgtypes.nim4
-rw-r--r--compiler/commands.nim1
2 files changed, 3 insertions, 2 deletions
diff --git a/compiler/ccgtypes.nim b/compiler/ccgtypes.nim
index bd3e6d40d..35d73aac0 100644
--- a/compiler/ccgtypes.nim
+++ b/compiler/ccgtypes.nim
@@ -125,7 +125,7 @@ proc typeName(typ: PType): Rope =
   let typ = typ.skipTypes(irrelevantForBackend)
   result =
     if typ.sym != nil and typ.kind in {tyObject, tyEnum}:
-      typ.sym.name.s.mangle.rope
+      rope($typ.kind & '_' & typ.sym.name.s.mangle)
     else:
       rope($typ.kind)
 
@@ -799,7 +799,7 @@ proc getTypeDescAux(m: BModule, origTyp: PType, check: var IntSet): Rope =
         add(m.s[cfsTypes], recdesc)
       elif tfIncompleteStruct notin t.flags: addAbiCheck(m, t, result)
   of tySet:
-    result = getTypeName(m, t.lastSon, hashType t.lastSon) & "_Set"
+    result = $t.kind & '_' & getTypeName(m, t.lastSon, hashType t.lastSon)
     m.typeCache[sig] = result
     if not isImportedType(t):
       let s = int(getSize(t))
diff --git a/compiler/commands.nim b/compiler/commands.nim
index e837ee922..9781a8af4 100644
--- a/compiler/commands.nim
+++ b/compiler/commands.nim
@@ -454,6 +454,7 @@ proc processSwitch(switch, arg: string, pass: TCmdLinePass, info: TLineInfo;
     of "native", "gdb":
       incl(gGlobalOptions, optCDebug)
       gOptions = gOptions + {optLineDir} - {optEndb}
+      defineSymbol("nimTypeNames", nil) # type names are used in gdb pretty printing
       undefSymbol("endb")
     else:
       localError(info, "expected endb|gdb but found " & arg)