First merge of 2.064 beta.

This corresponds to DMD commit a913ce4bc59a94a022a27e390fc841f4aededffb.

Doesn't build Phobos yet.
This commit is contained in:
David Nadlinger 2013-10-19 23:21:53 +02:00 committed by Kai Nacke
parent c400d180d2
commit cb341586e3
130 changed files with 13566 additions and 9190 deletions

View file

@ -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;