Thread overview
D 2.066.1: Assertion failure: '0' on line 2022 in file 'mtype.c'
Nov 10, 2014
Andre
Nov 10, 2014
Jonathan M Davis
Nov 10, 2014
Daniel Murphy
Nov 11, 2014
Andre
Nov 11, 2014
Dicebot
November 10, 2014
Hi,

after the update from 2.066 to 2.066.1
DMD gives following output:

Assertion failure: '0' on line 2022 in file 'mtype.c'
abnormal program termination

Unfortunatelly I do not know how to create a reproducible
example as the error occurs in a huge application.

DMD doesn't give me more information. I try to find out more
(reproducible example).

Kind regards
André

November 10, 2014
On Monday, November 10, 2014 04:14:43 Andre via Digitalmars-d wrote:
> Unfortunatelly I do not know how to create a reproducible example as the error occurs in a huge application.
>
> DMD doesn't give me more information. I try to find out more
> (reproducible example).

Dustmite is your friend: https://github.com/CyberShadow/DustMite/wiki

- Jonathan M Davis

November 10, 2014
"Andre"  wrote in message news:qaknrsxlgbgzkhljvflj@forum.dlang.org...

> Hi,
>
> after the update from 2.066 to 2.066.1
> DMD gives following output:
>
> Assertion failure: '0' on line 2022 in file 'mtype.c'
> abnormal program termination
>
> Unfortunatelly I do not know how to create a reproducible
> example as the error occurs in a huge application.
>
> DMD doesn't give me more information. I try to find out more
> (reproducible example).
>
> Kind regards
> André

Based on the location of the error, I'd guess it's to do with passing a delegate to a templated function / as a template argument. (but it's possible it's not a delegate)

To find the error:
- Run dmd with '-v', it should tell you which function it was compiling when it crashed (the last one it lists).  Once you know the function it should be easier to determine which bit of code causes the crash.
- Or use dustmite to reduce the test case. 

November 11, 2014
I will create a issue for this. The minimized version is:

enum DummyStringEnum
{
	foo = "bar"
}

class Test
{
	@property DummyStringEnum e()
	{
		return DummyStringEnum.foo;
	}
}
	
void main()
{
	import std.json;
	JSONValue[string] jsPayload;
	jsPayload["A"] = __traits(getMember, new Test(), "e");
}

Kind regards
André


On Monday, 10 November 2014 at 12:34:11 UTC, Daniel Murphy wrote:
> "Andre"  wrote in message news:qaknrsxlgbgzkhljvflj@forum.dlang.org...
>
>
> Based on the location of the error, I'd guess it's to do with passing a delegate to a templated function / as a template argument. (but it's possible it's not a delegate)
>
> To find the error:
> - Run dmd with '-v', it should tell you which function it was compiling when it crashed (the last one it lists).  Once you know the function it should be easier to determine which bit of code causes the crash.
> - Or use dustmite to reduce the test case.

November 11, 2014
For the reference https://issues.dlang.org/show_bug.cgi?id=13714