Bug 13583 – Inconsistent naming of template arguments in debug symbols

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Windows
Creation time
2014-10-07T07:38:00Z
Last change time
2015-02-18T03:38:19Z
Keywords
pull, symdeb
Assigned to
nobody
Creator
r.sagitario

Comments

Comment #0 by r.sagitario — 2014-10-07T07:38:43Z
Compiling this code: /////////// class Token { string text; } class DList(T) { T x; } void replaceToken(DList!(Token) tokens) { } void main() { replaceToken(null); } //////////// with "dmd -g -m64 testcv.d" for win64, then dumping the debug info: "diadump testcv.exe >dia" yields ... Function : static, [00001080][0001:00000080], len = 0000000A, testcv.replaceToken Function attribute: Function info: FuncDebugStart : static, [00001088][0001:00000088] FuncDebugEnd : static, [00001088][0001:00000088] Data : rbp Relative, [00000010], Param, Type: class testcv.DList!(Token).DList *, tokens ... UserDefinedType: testcv.DList!(testcv.Token).DList BaseClass : object.Object, offset = 0x0 Data : this+0x10, Member, Type: class testcv.Token *, x UserDefinedType: testcv.DList!(Token).DList UserDefinedType: _M128A ... So, the function argument type is referred to as "testcv.DList!(Token).DList", while the full type description is "testcv.DList!(testcv.Token).DList". The full qualification of template arguments is sometimes missing.
Comment #1 by r.sagitario — 2014-10-07T07:50:35Z
Comment #2 by github-bugzilla — 2014-10-10T06:50:23Z
Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/43175e192a6f5e4f4d9c75afba6aacd71d8112f8 Merge pull request #4050 from rainers/issue_13583 Fix Issue 13583: Inconsistent naming of template arguments in debug symbols
Comment #3 by github-bugzilla — 2015-02-18T03:38:19Z