www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Mysterious OPTLINK crash on Win7 x64

reply "Mehrdad" <wfunction hotmail.com> writes:
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
parent reply "Mehrdad" <wfunction hotmail.com> writes:
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
parent "cal" <callumenator gmail.com> writes:
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.12
I'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