The codeview debug info emitted by dmd for long and ulong types are a bad delegate and dynamic-array of ints, respectively.
This is caused a bad check in cv4_typeidx() that will never use the basic types, because cv4_typidx(t->Tnext) never returns 0. Instead, t->Tnext should be tested: Index: cgcv.c =================================================================== --- cgcv.c (revision 201) +++ cgcv.c (working copy) @@ -1677,14 +1677,14 @@ switch (tym) { case TYllong: - if (next) + if (t->Tnext) goto Ldelegate; assert(dt); typidx = dt; break; case TYullong: - if (next) + if (t->Tnext) goto Ldarray; assert(dt); typidx = dt;
changelog 369
Fixed dmd 1.057 and 2.041