Bug 10746 – Win64: corrupt debug info with very long symbols

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Windows
Creation time
2013-08-02T22:52:00Z
Last change time
2015-06-09T05:12:00Z
Keywords
pull, rejects-valid
Assigned to
nobody
Creator
r.sagitario

Comments

Comment #0 by r.sagitario — 2013-08-02T22:52:46Z
Here's some code to create a symbol name that is longer than 64kB: module test; template TypeTuple(TList...) { alias TList TypeTuple; } @property void assertCTFEable(alias dg)() { static assert({ dg(); return true; }()); dg(); } alias TypeTuple!(0,1,2,3,4,5,6,7,8,9) T10; alias TypeTuple!(T10,T10,T10,T10,T10,T10,T10,T10,T10,T10) T100; alias TypeTuple!(T100,T100,T100,T100,T100,T100,T100,T100,T100,T100) T1000; string to_string(string s) { return s; } void foo() { assertCTFEable!( //auto dg = ( { foreach (i; TypeTuple!(T100,T100,T100,T100,T100,T100,T100, T10,T10,T10,T10,T10,T10, 0)) { assert(to_string("hello world") == to_string("hello world")); } }); } void main() {} build with "dmd -g -m64 test.d" to get test.obj : fatal error LNK1103: debugging information corrupt; recompile module --- errorlevel 1103 or with a slightly longer symbol: LINK : fatal error LNK1318: Unexpected PDB error; RPC (23) '(0x000006BA)' --- errorlevel 1318 This is a reduced test case from the std.string unittests.
Comment #1 by r.sagitario — 2013-08-02T23:13:26Z
Comment #2 by github-bugzilla — 2013-08-03T19:31:16Z
Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/5fd4640afcccf08702bd21c881011309fa592542 Merge pull request #2447 from rainers/fix_10746 fix Issue 10746 - Win64: corrupt debug info with very long symbols
Comment #3 by github-bugzilla — 2013-08-03T19:33:32Z
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/9334e44fb0fe7c9f87abb9455afdb6dd7f479fa3 Merge pull request #2447 from rainers/fix_10746 fix Issue 10746 - Win64: corrupt debug info with very long symbols