mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-08 11:56:12 +03:00
First merge of 2.064 beta.
This corresponds to DMD commit a913ce4bc59a94a022a27e390fc841f4aededffb. Doesn't build Phobos yet.
This commit is contained in:
parent
c400d180d2
commit
cb341586e3
130 changed files with 13566 additions and 9190 deletions
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue