digitalmars.D - Mysterious OPTLINK crash on Win7 x64
I'm getting a mysterious OPTLINK crash on Windows 7 x64, DMD32 v2.060. The error is very sensitive to the actual code; I suspect some sort of limit is overflowing (perhaps a "maximum symbol name length" of some sort?). The code to reproduce it (... hopefully) is below: // dmd -property -vtls -w -wi ICE.d -g private import std.algorithm, std.range, std.regex; void foo() { "".match(regex("")); } auto parseInput() { int[int] g; auto items = g.keys.map!(l => g.keys.map!(ps => regex(""))())(); return (delegate(x) { struct S { } return items.map!(t => t)(); })(g.keys.filter!(k => k)().map!(p => g.keys.map!(p => p)())().array()); } void main() { parseInput(); } Ideas?
Oct 13 2012
Oh, the error is a message box: Title: Unexpected OPTLINK Termination at EIP=00428DA3 Text: EAX=00000890 EBX=00000861 ECX=0043F7B4 EDX=00000890 ESI=00253770 EDI=0044006A EBP=0018FF04 ESP=0018FEF8 First=00402000 And the OPTLINK version is: OPTLINK (R) for Win32 Release 8.00.12
Oct 13 2012
On Sunday, 14 October 2012 at 03:35:02 UTC, Mehrdad wrote:Oh, the error is a message box: Title: Unexpected OPTLINK Termination at EIP=00428DA3 Text: EAX=00000890 EBX=00000861 ECX=0043F7B4 EDX=00000890 ESI=00253770 EDI=0044006A EBP=0018FF04 ESP=0018FEF8 First=00402000 And the OPTLINK version is: OPTLINK (R) for Win32 Release 8.00.12I've seen similar OPTLINK crashes in two separate contexts (both required lots more code to trigger them tho). In one of those contexts, building DMD from the latest git head (so 2.061) fixed it (there was a commit targeting OPTLINK crashes) so you could give that a whirl.
Oct 13 2012