mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-14 03:43:13 +01:00
First merge of 2.064 beta.
This corresponds to DMD commit a913ce4bc59a94a022a27e390fc841f4aededffb. Doesn't build Phobos yet.
This commit is contained in:
committed by
Kai Nacke
parent
c400d180d2
commit
cb341586e3
@@ -321,7 +321,7 @@ DValue* DtoDynamicCastObject(DValue* val, Type* _to)
|
||||
// Object _d_dynamic_cast(Object o, ClassInfo c)
|
||||
|
||||
DtoResolveClass(ClassDeclaration::object);
|
||||
DtoResolveClass(ClassDeclaration::classinfo);
|
||||
DtoResolveClass(Type::typeinfoclass);
|
||||
|
||||
llvm::Function* func = LLVM_D_GetRuntimeFunction(gIR->module, "_d_dynamic_cast");
|
||||
LLFunctionType* funcTy = func->getFunctionType();
|
||||
@@ -384,7 +384,7 @@ DValue* DtoDynamicCastInterface(DValue* val, Type* _to)
|
||||
// Object _d_interface_cast(void* p, ClassInfo c)
|
||||
|
||||
DtoResolveClass(ClassDeclaration::object);
|
||||
DtoResolveClass(ClassDeclaration::classinfo);
|
||||
DtoResolveClass(Type::typeinfoclass);
|
||||
|
||||
llvm::Function* func = LLVM_D_GetRuntimeFunction(gIR->module, "_d_interface_cast");
|
||||
LLFunctionType* funcTy = func->getFunctionType();
|
||||
@@ -467,7 +467,7 @@ LLValue* DtoVirtualFunctionPointer(DValue* inst, FuncDeclaration* fdecl, char* n
|
||||
{
|
||||
// sanity checks
|
||||
assert(fdecl->isVirtual());
|
||||
assert(!fdecl->isFinal());
|
||||
assert(!fdecl->isFinalFunc());
|
||||
assert(inst->getType()->toBasetype()->ty == Tclass);
|
||||
// 0 is always ClassInfo/Interface* unless it is a CPP interface
|
||||
assert(fdecl->vtblIndex > 0 || (fdecl->vtblIndex == 0 && fdecl->linkage == LINKcpp));
|
||||
@@ -650,7 +650,7 @@ LLConstant* DtoDefineClassInfo(ClassDeclaration* cd)
|
||||
IrAggr* ir = cd->ir.irAggr;
|
||||
assert(ir);
|
||||
|
||||
ClassDeclaration* cinfo = ClassDeclaration::classinfo;
|
||||
ClassDeclaration* cinfo = Type::typeinfoclass;
|
||||
|
||||
if (cinfo->fields.dim != 12)
|
||||
{
|
||||
@@ -659,7 +659,7 @@ LLConstant* DtoDefineClassInfo(ClassDeclaration* cd)
|
||||
}
|
||||
|
||||
// use the rtti builder
|
||||
RTTIBuilder b(ClassDeclaration::classinfo);
|
||||
RTTIBuilder b(cinfo);
|
||||
|
||||
LLConstant* c;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user