diff options
author | Juan M Gómez <info@jmgomez.me> | 2024-05-07 22:03:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-07 15:03:53 -0600 |
commit | 3b4078a7f8a3bfd4f0047ed0b843e5485b08ffde (patch) | |
tree | a1d73b8d7851d6416476ca4f0824c8ddd2921b66 | |
parent | 78d70d5fdf68fff8345b80ddc6419d5fbe8bd877 (diff) | |
download | Nim-3b4078a7f8a3bfd4f0047ed0b843e5485b08ffde.tar.gz |
Skips generic owner when mangling instances (#23563)
-rw-r--r-- | compiler/ccgutils.nim | 2 | ||||
-rw-r--r-- | tests/codegen/titaniummangle.nim | 9 |
2 files changed, 6 insertions, 5 deletions
diff --git a/compiler/ccgutils.nim b/compiler/ccgutils.nim index da55df45d..6b106984c 100644 --- a/compiler/ccgutils.nim +++ b/compiler/ccgutils.nim @@ -122,7 +122,7 @@ proc encodeSym*(m: BModule; s: PSym; makeUnique: bool = false): string = var name = s.name.s if makeUnique: name = makeUnique(m, s, name) - "N" & encodeName(s.owner.name.s) & encodeName(name) & "E" + "N" & encodeName(s.skipGenericOwner.name.s) & encodeName(name) & "E" proc encodeType*(m: BModule; t: PType): string = result = "" diff --git a/tests/codegen/titaniummangle.nim b/tests/codegen/titaniummangle.nim index 5ab4e3410..4b45e59ae 100644 --- a/tests/codegen/titaniummangle.nim +++ b/tests/codegen/titaniummangle.nim @@ -5,11 +5,11 @@ discard """ ccodecheck: "'_ZN14titaniummangle8testFuncE6stringN14titaniummangle3FooE'" ccodecheck: "'_ZN14titaniummangle8testFuncE3int7varargsI6stringE'" ccodecheck: "'_ZN14titaniummangle8testFuncEN14titaniummangle3BooE'" - ccodecheck: "'_ZN8testFunc8testFuncE8typeDescIN14titaniummangle17EnumAnotherSampleEE'" + ccodecheck: "'_ZN14titaniummangle8testFuncE8typeDescIN14titaniummangle17EnumAnotherSampleEE'" ccodecheck: "'_ZN14titaniummangle8testFuncE3ptrI14uncheckedArrayI3intEE'" ccodecheck: "'_ZN14titaniummangle8testFuncE3setIN14titaniummangle10EnumSampleEE'" ccodecheck: "'_ZN14titaniummangle8testFuncE4procI6string6stringE'" - ccodecheck: "'_ZN8testFunc8testFuncE3intN10Comparable10ComparableE'" + ccodecheck: "'_ZN14titaniummangle8testFuncE3intN10Comparable10ComparableE'" ccodecheck: "'_ZN14titaniummangle8testFuncE3int3int'" ccodecheck: "'_ZN14titaniummangle8testFuncEN14titaniummangle10EnumSampleE'" ccodecheck: "'_ZN14titaniummangle8testFuncEN14titaniummangle17EnumAnotherSampleE'" @@ -37,7 +37,6 @@ type Comparable = concept x, y (x < y) is bool -type Foo = object a: int32 b: int32 @@ -45,8 +44,10 @@ type FooTuple = tuple a: int b: int + Container[T] = object - data: T + data: T + Container2[T, T2] = object data: T data2: T2 |