...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

dmd r627とdfl r97でdmdがクラッシュ

nextがnullになっていてアクセス違反で落ちてる.
何が原因だろう.
std.socket.dが怪しい?

type *TypeFunction::toCtype()
{   type *t;

    if (ctype)
        return ctype;

    if (1)
    {
        param_t *paramtypes;
        tym_t tyf;
        type *tp;

        paramtypes = NULL;
        size_t nparams = Parameter::dim(parameters);
        for (size_t i = 0; i < nparams; i++)
        {   Parameter *arg = Parameter::getNth(parameters, i);
            tp = arg->type->toCtype();
            if (arg->storageClass & (STCout | STCref))
            {   // C doesn't have reference types, so it's really a pointer
                // to the parameter type
                tp = type_allocn(TYref, tp);
            }
            param_append_type(&paramtypes,tp);
        }
        tyf = totym();
        t = type_alloc(tyf);
        t->Tflags |= TFprototype;
        if (varargs != 1)
            t->Tflags |= TFfixed;
        ctype = t;
        t->Tnext = next->toCtype(); // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< next == null
        t->Tnext->Tcount++;
        t->Tparamtypes = paramtypes;
    }
    ctype = t;
    return t;
}
+		next	0x00000000 {ty=??? mod=??? deco=??? ...}	Type *
+		this	0x05f92628 {parameters=??? varargs=??? isnothrow=??? ...}	TypeFunction *
>	dmd.exe!TypeFunction::toCtype()()  行 254 + 0x3 バイト	C++
 	dmd.exe!FuncDeclaration::toSymbol()()  行 359 + 0xe バイト	C++
 	dmd.exe!ClassDeclaration::toObjFile(int )()  行 793 + 0xb バイト	C++
 	dmd.exe!AttribDeclaration::toObjFile(int )()  行 242	C++
 	dmd.exe!Module::genobjfile(int )()  行 280	C++
 	dmd.exe!main()  行 1292	C++
 	dmd.exe!_mainCRTStartup()  + 0xa9 バイト	
 	kernel32.dll!7c817077() 	
 	[下のフレームは間違っているか、または見つかりません。kernel32.dll に対して読み込まれたシンボルはありません。]