Thread overview
DMD 0.128 internal error e2ir.c 1786
Aug 04, 2005
Niko Korhonen
Aug 04, 2005
Deewiant
Aug 04, 2005
Niko Korhonen
Aug 06, 2005
Thomas Kühne
August 04, 2005
Trying to compile the attached D source code crashes the compiler with error message:

Internal error: e2ir.c 1786

The example file is a bit large, but I can't possibly reduce it any further still triggering the error.

-- 
Niko Korhonen
SW Developer


August 04, 2005
Niko Korhonen wrote:
> Trying to compile the attached D source code crashes the compiler with error message:
> 
> Internal error: e2ir.c 1786
> 
> The example file is a bit large, but I can't possibly reduce it any further still triggering the error.

Here's a much reduced version:

--
interface SomeInterface
{
}

void main()
{
	SomeInterface[] arr = new SomeInterface[1];

	if (arr[0] < arr[0])
	{
	}
}
--

Additional notes, in case they're of any help to anybody:
	Changing SomeInterface to a class makes it compile, changing to a
struct says that opCmp() is required.
	If there is no comparison of two array elements (which can be the same)
it works - just accessing them doesn't cause the error.
August 04, 2005
Deewiant wrote:
> Here's a much reduced version:

Ok, thanks! I couldn't bother :)

> Additional notes, in case they're of any help to anybody:
> 	Changing SomeInterface to a class makes it compile, changing to a
> struct says that opCmp() is required.
> 	If there is no comparison of two array elements (which can be the same)
> it works - just accessing them doesn't cause the error.

So it's interfaces again. Somehow I get the feeling that interfaces are very unwelcome citizens in D.

--
Niko Korhonen
SW Developer
August 06, 2005
Deewiant schrieb:

> Niko Korhonen wrote:
> 
>>Trying to compile the attached D source code crashes the compiler with error message:
>>
>>Internal error: e2ir.c 1786
>>
>>The example file is a bit large, but I can't possibly reduce it any further still triggering the error.
> 
> 
> Here's a much reduced version:
> 
> --
> interface SomeInterface
> {
> }
> 
> void main()
> {
> 	SomeInterface[] arr = new SomeInterface[1];
> 
> 	if (arr[0] < arr[0])
> 	{
> 	}
> }
> --
> 
> Additional notes, in case they're of any help to anybody:
> 	Changing SomeInterface to a class makes it compile, changing to a
> struct says that opCmp() is required.
> 	If there is no comparison of two array elements (which can be the same)
> it works - just accessing them doesn't cause the error.

Added to DStress as http://dstress.kuehne.cn/run/b/bug_e2ir_1786_A.d http://dstress.kuehne.cn/run/b/bug_e2ir_1786_B.d http://dstress.kuehne.cn/run/b/bug_e2ir_1786_C.d http://dstress.kuehne.cn/run/b/bug_e2ir_1786_D.d

Thomas