This is the third bug in bug 3293. Hard to explain, but here is the test case: ---- struct bug3305(alias X = 0) { auto guard = bug3305b!(0).guard; } struct bug3305b(alias X = 0){ bug3305!(X) goo; auto guard = 0; } void test(){ bug3305!(0) a; } --- Segfaulting in expression.c, Expression::deref(), with a NULL type.
This is trivial. expression.c, line 1246. It's already an error, we just need to prevent it from crashing. Expression *Expression::deref() { //printf("Expression::deref()\n"); - if (type->ty == Treference) + if (type && type->ty == Treference) { Expression *e;
Fixed dmd 1.048 and 2.033