mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-02-26 08:33:14 +01:00
D2:
Applied function type from D1 frontend that got removed in D2, it's critical for member function type to be correct. Fixed a bunch of type discrepancies in druntime object.di vs. genobj.d . Disabled (#if 0) some potentally very large type dumps for -vv . Updated classinfo and typeinfo generation for D2, almost complete now. Added finer grained checks for vtbl type mismatching, aids debugging.
This commit is contained in:
@@ -646,16 +646,23 @@ void TypeInfoStructDeclaration::llvmDefine()
|
||||
b.push_uint(hasptrs);
|
||||
|
||||
#if DMDV2
|
||||
// just (void*)null for now
|
||||
// FIXME: just emit nulls for now
|
||||
|
||||
ClassDeclaration* tscd = Type::typeinfostruct;
|
||||
|
||||
assert(tscd->fields.dim == 10);
|
||||
|
||||
// const(MemberInfo[]) function(in char[]) xgetMembers;
|
||||
b.push_null_vp();
|
||||
VarDeclaration* xgetMembers = (VarDeclaration*)tscd->fields.data[7];
|
||||
b.push_null(xgetMembers->type);
|
||||
|
||||
//void function(void*) xdtor;
|
||||
b.push_null_vp();
|
||||
VarDeclaration* xdtor = (VarDeclaration*)tscd->fields.data[8];
|
||||
b.push_null(xdtor->type);
|
||||
|
||||
//void function(void*) xpostblit;
|
||||
b.push_null_vp();
|
||||
VarDeclaration* xpostblit = (VarDeclaration*)tscd->fields.data[9];
|
||||
b.push_null(xpostblit->type);
|
||||
#endif
|
||||
|
||||
// finish
|
||||
|
||||
Reference in New Issue
Block a user